1. 10 11月, 2017 1 次提交
  2. 19 4月, 2017 1 次提交
  3. 11 4月, 2017 1 次提交
  4. 09 4月, 2017 1 次提交
  5. 18 11月, 2016 1 次提交
    • R
      Use llvm::Attribute API instead of "raw value" APIs, which will be removed in LLVM 4.0. · 30daedf6
      Robin Kruppe 提交于
      The librustc_llvm API remains mostly unchanged, except that llvm::Attribute is no longer a bitflag but represents only a *single* attribute.
      The ability to store many attributes in a small number of bits and modify them without interacting with LLVM is only used in rustc_trans::abi and closely related modules, and only attributes for function arguments are considered there.
      Thus rustc_trans::abi now has its own bit-packed representation of argument attributes, which are translated to rustc_llvm::Attribute when applying the attributes.
      30daedf6
  6. 25 9月, 2016 1 次提交
    • M
      Move ty_align and ty_size out of most C ABI code · dfe8bd10
      Mark-Simulacrum 提交于
      s390x's C ABI ty_align and ty_size are not moved because the
      implementation of ty_align varies in an atypical pattern: it calls
      ty_size for the llvm::Vector type kind. ty_size then cannot be moved
      since it indirectly calls ty_align through align.
      dfe8bd10
  7. 04 9月, 2016 1 次提交
  8. 05 4月, 2016 1 次提交
    • J
      Handle integer-extending for C ABI · 4815f7e6
      James Miller 提交于
      We need to supply sext/zext attributes to LLVM to ensure that arguments
      are extended to the appropriate width in the correct way.
      
      Most platforms extend integers less than 32 bits, though not all.
      4815f7e6
  9. 01 4月, 2016 1 次提交
  10. 27 3月, 2016 1 次提交
  11. 18 3月, 2016 6 次提交
  12. 17 10月, 2015 1 次提交
  13. 15 10月, 2015 1 次提交
  14. 09 7月, 2015 1 次提交
    • U
      Use vec![elt; n] where possible · 836f32e7
      Ulrik Sverdrup 提交于
      The common pattern `iter::repeat(elt).take(n).collect::<Vec<_>>()` is
      exactly equivalent to `vec![elt; n]`, do this replacement in the whole
      tree.
      
      (Actually, vec![] is smart enough to only call clone n - 1 times, while
      the former solution would call clone n times, and this fact is
      virtually irrelevant in practice.)
      836f32e7
  15. 06 5月, 2015 1 次提交
  16. 29 4月, 2015 1 次提交
  17. 15 4月, 2015 1 次提交
  18. 27 3月, 2015 1 次提交
  19. 06 2月, 2015 1 次提交
  20. 03 2月, 2015 2 次提交
  21. 01 2月, 2015 1 次提交
  22. 20 1月, 2015 1 次提交
  23. 16 1月, 2015 3 次提交
  24. 14 1月, 2015 1 次提交
  25. 08 1月, 2015 1 次提交
  26. 07 1月, 2015 1 次提交
  27. 06 1月, 2015 1 次提交
  28. 04 1月, 2015 1 次提交
  29. 31 12月, 2014 1 次提交
  30. 19 12月, 2014 1 次提交
  31. 14 12月, 2014 1 次提交
  32. 09 12月, 2014 1 次提交
    • N
      librustc: Make `Copy` opt-in. · 096a2860
      Niko Matsakis 提交于
      This change makes the compiler no longer infer whether types (structures
      and enumerations) implement the `Copy` trait (and thus are implicitly
      copyable). Rather, you must implement `Copy` yourself via `impl Copy for
      MyType {}`.
      
      A new warning has been added, `missing_copy_implementations`, to warn
      you if a non-generic public type has been added that could have
      implemented `Copy` but didn't.
      
      For convenience, you may *temporarily* opt out of this behavior by using
      `#![feature(opt_out_copy)]`. Note though that this feature gate will never be
      accepted and will be removed by the time that 1.0 is released, so you should
      transition your code away from using it.
      
      This breaks code like:
      
          #[deriving(Show)]
          struct Point2D {
              x: int,
              y: int,
          }
      
          fn main() {
              let mypoint = Point2D {
                  x: 1,
                  y: 1,
              };
              let otherpoint = mypoint;
              println!("{}{}", mypoint, otherpoint);
          }
      
      Change this code to:
      
          #[deriving(Show)]
          struct Point2D {
              x: int,
              y: int,
          }
      
          impl Copy for Point2D {}
      
          fn main() {
              let mypoint = Point2D {
                  x: 1,
                  y: 1,
              };
              let otherpoint = mypoint;
              println!("{}{}", mypoint, otherpoint);
          }
      
      This is the backwards-incompatible part of #13231.
      
      Part of RFC #3.
      
      [breaking-change]
      096a2860