about summary refs log tree commit diff
path: root/src/test/run-pass/auxiliary
AgeCommit message (Collapse)AuthorLines
2017-08-12Check #[thread_local] statics correctly in the compiler.Eduard-Mihai Burtescu-4/+7
2017-07-08Remove more anonymous trait method parametersVadim Petrochenkov-2/+2
2017-07-06remove associated_consts feature gateSean McArthur-1/+0
2017-07-05Switch to rust-lang-nursery/compiler-builtinsAlex Crichton-15/+0
This commit migrates the in-tree `libcompiler_builtins` to the upstream version at https://github.com/rust-lang-nursery/compiler-builtins. The upstream version has a number of intrinsics written in Rust and serves as an in-progress rewrite of compiler-rt into Rust. Additionally it also contains all the existing intrinsics defined in `libcompiler_builtins` for 128-bit integers. It's been the intention since the beginning to make this transition but previously it just lacked the manpower to get done. As this PR likely shows it wasn't a trivial integration! Some highlight changes are: * The PR rust-lang-nursery/compiler-builtins#166 contains a number of fixes across platforms and also some refactorings to make the intrinsics easier to read. The additional testing added there also fixed a number of integration issues when pulling the repository into this tree. * LTO with the compiler-builtins crate was fixed to link in the entire crate after the LTO process as these intrinsics are excluded from LTO. * Treatment of hidden symbols was updated as previously the `#![compiler_builtins]` crate would mark all symbol *imports* as hidden whereas it was only intended to mark *exports* as hidden.
2017-06-21Integrate jobserver support to parallel codegenAlex Crichton-1/+3
This commit integrates the `jobserver` crate into the compiler. The crate was previously integrated in to Cargo as part of rust-lang/cargo#4110. The purpose here is to two-fold: * Primarily the compiler can cooperate with Cargo on parallelism. When you run `cargo build -j4` then this'll make sure that the entire build process between Cargo/rustc won't use more than 4 cores, whereas today you'd get 4 rustc instances which may all try to spawn lots of threads. * Secondarily rustc/Cargo can now integrate with a foreign GNU `make` jobserver. This means that if you call cargo/rustc from `make` or another jobserver-compatible implementation it'll use foreign parallelism settings instead of creating new ones locally. As the number of parallel codegen instances in the compiler continues to grow over time with the advent of incremental compilation it's expected that this'll become more of a problem, so this is intended to nip concurrent concerns in the bud by having all the tools to cooperate! Note that while rustc has support for itself creating a jobserver it's far more likely that rustc will always use the jobserver configured by Cargo. Cargo today will now set a jobserver unconditionally for rustc to use.
2017-06-20Switch to the crates.io `getopts` crateAlex Crichton-7/+14
This commit deletes the in-tree `getopts` crate in favor of the crates.io-based `getopts` crate. The main difference here is with a new builder-style API, but otherwise everything else remains relatively standard.
2017-05-17Refactor: Move the mutable parts out of LintStore. Fix #42007.kennytm-0/+14
* #42007 happens because the Session LintStore is emptied when linting. * The Session LintStore is emptied because the checker (Early/LateContext) wants ownership. * The checker wants ownership because it wants to mutate the pass objects and lint levels. The ownership of the whole store is not essential, only the lint levels and pass objects need to be owned. Therefore, these parts are extracted out of the LintStore into a separate structure `LintSession`. The "check crates" methods can operate on `&mut LintSession` instead of `&mut LintStore`. This is a minor BREAKING CHANGE for lint writers since the `LintContext` trait is changed: the `mut_lints` and `level_stack` methods are removed. But no one outside of `librustc/lint/context.rs` is using these functions, so it should be safe.
2017-04-23rustc_const_eval: support all unit enum variants.Eduard-Mihai Burtescu-0/+26
2017-04-15Specialize Vec::from_elem<u8> to use calloc or memsetMatt Brubeck-0/+5
Fixes #38723.
2017-04-04cstore: return an immutable borrow from `visible_parent_map`Ariel Ben-Yehuda-0/+11
Fixes #41053.
2017-03-24update LLVM with fix for PR32379Ariel Ben-Yehuda-0/+15
Fixes #40593.
2017-03-17Fix regression when `include!()`ing a `macro_rules!` containing a `$crate::` ↵Jeffrey Seyfried-0/+11
path.
2017-02-25Rollup merge of #40064 - arielb1:virtual-enum, r=nikomatsakisEduard-Mihai Burtescu-0/+17
trans: don't ICE when trying to create ADT trans-items ADTs are translated in-place from rustc_trans::callee, so no trans-items are needed. This fix will be superseded by the shimmir branch, but I prefer not to backport that to beta. Fixes #39823. Beta-nominating because regression. r? @michaelwoerister
2017-02-23Add tests for lib defaultsPeter Wagenet-0/+15
2017-02-23trans: don't ICE when trying to create ADT trans-itemsAriel Ben-Yehuda-0/+17
ADTs are translated in-place from rustc_trans::callee, so no trans-items are needed. This fix will be superseded by the shimmir branch, but I prefer not to backport that to beta. Fixes #39823.
2017-01-30Merge ty::TyBox into ty::TyAdtVadim Petrochenkov-1/+1
2017-01-18Add regression test for debuginfo + LTOMichael Woerister-1/+40
2017-01-04Fix regression with duplicate `#[macro_export] macro_rules!`.Jeffrey Seyfried-0/+15
2016-12-29Change --crate-type metadata to --emit=metadataNick Cameron-1/+2
2016-12-17Auto merge of #38205 - jseyfried:fix_module_directory_regression, r=eddybbors-0/+12
macros: fix the expected paths for a non-inline module matched by an `item` fragment Fixes #38190. r? @nrc
2016-12-08Extend middle::reachable to also consider provided trait methods.Michael Woerister-0/+33
2016-12-07macros: fix the expected paths for a non-inline module matched by an `item` ↵Jeffrey Seyfried-0/+12
fragment.
2016-12-06Auto merge of #37973 - vadimcn:dllimport, r=alexcrichtonbors-6/+3
Implement RFC 1717 Implement the first two points from #37403. r? @alexcrichton
2016-12-01Remove the "linked_from" feature.Vadim Chugunov-3/+0
2016-12-01Fix rust_test_helpers linkage.Vadim Chugunov-3/+3
2016-11-30Add tests.Jeffrey Seyfried-2/+2
2016-11-28Refactor TyTrait to contain a interned ExistentialPredicate slice.Mark-Simulacrum-1/+1
Renames TyTrait to TyDynamic.
2016-11-23Rebasing and review changesNick Cameron-0/+36
2016-11-16rustc: Implement #[link(cfg(..))] and crt-staticAlex Crichton-0/+31
This commit is an implementation of [RFC 1721] which adds a new target feature to the compiler, `crt-static`, which can be used to select how the C runtime for a target is linked. Most targets dynamically linke the C runtime by default with the notable exception of some of the musl targets. [RFC 1721]: https://github.com/rust-lang/rfcs/blob/master/text/1721-crt-static.md This commit first adds the new target-feature, `crt-static`. If enabled, then the `cfg(target_feature = "crt-static")` will be available. Targets like musl will have this enabled by default. This feature can be controlled through the standard target-feature interface, `-C target-feature=+crt-static` or `-C target-feature=-crt-static`. Next this adds an gated and unstable `#[link(cfg(..))]` feature to enable the `crt-static` semantics we want with libc. The exact behavior of this attribute is a little squishy, but it's intended to be a forever-unstable implementation detail of the liblibc crate. Specifically the `#[link(cfg(..))]` annotation means that the `#[link]` directive is only active in a compilation unit if that `cfg` value is satisfied. For example when compiling an rlib, these directives are just encoded and ignored for dylibs, and all staticlibs are continued to be put into the rlib as usual. When placing that rlib into a staticlib, executable, or dylib, however, the `cfg` is evaluated *as if it were defined in the final artifact* and the library is decided to be linked or not. Essentially, what'll happen is: * On MSVC with `-C target-feature=-crt-static`, the `msvcrt.lib` library will be linked to. * On MSVC with `-C target-feature=+crt-static`, the `libcmt.lib` library will be linked to. * On musl with `-C target-feature=-crt-static`, the object files in liblibc.rlib are removed and `-lc` is passed instead. * On musl with `-C target-feature=+crt-static`, the object files in liblibc.rlib are used and `-lc` is not passed. This commit does **not** include an update to the liblibc module to implement these changes. I plan to do that just after the 1.14.0 beta release is cut to ensure we get ample time to test this feature. cc #37406
2016-11-08Partially stabilize RFC 1506 "Clarify relationships between ADTs"Vadim Petrochenkov-2/+0
2016-11-03use DefId's in const eval for cross-crate const fn'sTim Neumann-0/+18
2016-10-20test - Add missing ! to crate_type/crate_id attributesJohn Hodge-2/+2
2016-10-12tests for `#[may_dangle]` attribute.Felix S. Klock II-0/+61
2016-09-20rustc: don't recurse through nested items in decoded HIR fragments.Eduard Burtescu-2/+1
2016-09-13TypeIdHasher: Let projections be hashed implicitly by the visitor.Michael Woerister-0/+10
2016-09-08Refactor `TyStruct`/`TyEnum`/`TyUnion` into `TyAdt`Vadim Petrochenkov-2/+2
2016-08-24Remove drop flags from structs and enums implementing Drop.Eduard Burtescu-3/+0
2016-08-13Remove restrictions from tuple structs/variantsVadim Petrochenkov-0/+4
Hard errors are turned into feature gates
2016-08-06Rewrite TypeId computation to not miss anything and work cross-crate.Eduard Burtescu-18/+22
2016-07-31Don't gate methods `Fn(Mut,Once)::call(mut,once)` with feature ↵Vadim Petrochenkov-3/+0
`unboxed_closures` They are already gated with feature `fn_traits`
2016-07-12tyencode: Make sure that projection bounds are handled in stable order.Michael Woerister-0/+30
2016-07-05Just pass in NodeId to FunctionContext::new instead of looking it up.Luqman Aden-0/+26
2016-05-06s/aux/auxiliary, because windowsNiko Matsakis-0/+4753
For legacy reasons (presumably), Windows does not permit files name aux.