about summary refs log tree commit diff
path: root/src/test/auxiliary
AgeCommit message (Collapse)AuthorLines
2015-08-03syntax: Implement #![no_core]Alex Crichton-4/+1
This commit is an implementation of [RFC 1184][rfc] which tweaks the behavior of the `#![no_std]` attribute and adds a new `#![no_core]` attribute. The `#![no_std]` attribute now injects `extern crate core` at the top of the crate as well as the libcore prelude into all modules (in the same manner as the standard library's prelude). The `#![no_core]` attribute disables both std and core injection. [rfc]: https://github.com/rust-lang/rfcs/pull/1184
2015-08-03Auto merge of #27210 - vadimcn:win64-eh-pers, r=alexcrichtonbors-0/+3
After this change, the only remaining symbol we are pulling from libgcc on Win64 is `__chkstk_ms` - the stack probing routine.
2015-07-30Implement Win64 eh_personality natively.Vadim Chugunov-0/+3
2015-07-29Feature gate associated type defaultsBrian Anderson-0/+2
There are multiple issues with them as designed and implemented. cc #27364
2015-07-28Auto merge of #27234 - oli-obk:move_get_name_get_ident_to_impl, r=eddybbors-11/+7
this has quite some fallout. but also made lots of stuff more readable imo [breaking-change] for plugin authors
2015-07-28remove `get_ident` and `get_name`, make `as_str` soundOliver Schneider-11/+7
2015-07-28Auto merge of #27330 - alexcrichton:reenable-lto-syntax-extension, r=huonwbors-0/+36
The functionality this was testing was removed somewhere along the line, and this commit restores what it was testing. Closes #20586
2015-07-27test: Fix lto-syntax-extensionAlex Crichton-0/+36
The functionality this was testing was removed somewhere along the line, and this commit restores what it was testing. Closes #20586
2015-07-26Revert "trans: Be a little more picky about dllimport"Alex Crichton-15/+0
This reverts commit a0efd3a3d99a98e3399a4f07abe6a67cf0660335.
2015-07-25Add cross-crate error message testsJared Roesch-0/+19
2015-07-21trans: Be a little more picky about dllimportAlex Crichton-0/+15
Currently you can hit a link error on MSVC by only referencing static items from a crate (no functions for example) and then link to the crate statically (as all Rust crates do 99% of the time). A detailed investigation can be found [on github][details], but the tl;dr is that we need to stop applying dllimport so aggressively. This commit alters the application of dllimport on constants to only cases where the crate the constant originated from will be linked as a dylib in some output crate type. That way if we're just linking rlibs (like the motivation for this issue) we won't use dllimport. For the compiler, however, (which has lots of dylibs) we'll use dllimport. [details]: https://github.com/rust-lang/rust/issues/26591#issuecomment-123513631 cc #26591
2015-07-20Add test of cross-crate impl formattingWilliam Throwe-0/+15
2015-07-10Change some instances of .connect() to .join()Wesley Wiser-1/+1
2015-07-08trans: Link rlibs to dylibs with --whole-archiveAlex Crichton-0/+59
This commit starts passing the `--whole-archive` flag (`-force_load` on OSX) to the linker when linking rlibs into dylibs. The primary purpose of this commit is to ensure that the linker doesn't strip out objects from an archive when creating a dynamic library. Information on how this can go wrong can be found in issues #14344 and #25185. The unfortunate part about passing this flag to the linker is that we have to preprocess the rlib to remove the metadata and compressed bytecode found within. This means that creating a dylib will now take longer to link as we've got to copy around the input rlibs to a temporary location, modify them, and then invoke the linker. This isn't done for executables, however, so the "hello world" compile time is not affected. This fix was instigated because of the previous commit where rlibs may not contain multiple object files instead of one due to codegen units being greater than one. That change prevented the main distribution from being compiled with more than one codegen-unit and this commit fixes that. Closes #14344 Closes #25185
2015-07-07Auto merge of #26747 - huonw:stability-issue, r=alexcrichtonbors-0/+20
This takes an issue number and points people to it in the printed error message. This commit does not make it an error to have no `issue` field.
2015-07-06rustc: implement `unstable(issue = "nnn")`.Huon Wilson-0/+20
This takes an issue number and points people to it in the printed error message. This commit does not make it an error to have no `issue` field.
2015-07-03After inferring regions, scan for any bounds that are due to a lifetimeNiko Matsakis-0/+21
bound that is likely to change. In that case, it will change to 'static, so then scan down the graph to see whether there are any hard constraints that would prevent 'static from being a valid value here. Report a warning.
2015-06-30Actually encode default associated typesAriel Ben-Yehuda-0/+16
Fixes #26636
2015-06-25test: Use liblibc in lang-item-publicAlex Crichton-28/+7
Makes this test case more robust by using standard libraries to ensure the binary can be built.
2015-06-17Fallout in tests and docs from feature renamingsAlex Crichton-1/+1
2015-06-17Auto merge of #26025 - alexcrichton:update-llvm, r=brsonbors-1/+1
This commit updates the LLVM submodule in use to the current HEAD of the LLVM repository. This is primarily being done to start picking up unwinding support for MSVC, which is currently unimplemented in the revision of LLVM we are using. Along the way a few changes had to be made: * As usual, lots of C++ debuginfo bindings in LLVM changed, so there were some significant changes to our RustWrapper.cpp * As usual, some pass management changed in LLVM, so clang was re-scrutinized to ensure that we're doing the same thing as clang. * Some optimization options are now passed directly into the `PassManagerBuilder` instead of through CLI switches to LLVM. * The `NoFramePointerElim` option was removed from LLVM, favoring instead the `no-frame-pointer-elim` function attribute instead. * The `LoopVectorize` option of the LLVM optimization passes has been disabled as it causes a divide-by-zero exception to happen in LLVM for zero-sized types. This is reported as https://llvm.org/bugs/show_bug.cgi?id=23763 Additionally, LLVM has picked up some new optimizations which required fixing an existing soundness hole in the IR we generate. It appears that the current LLVM we use does not expose this hole. When an enum is moved, the previous slot in memory is overwritten with a bit pattern corresponding to "dropped". When the drop glue for this slot is run, however, the switch on the discriminant can often start executing the `unreachable` block of the switch due to the discriminant now being outside the normal range. This was patched over locally for now by having the `unreachable` block just change to a `ret void`.
2015-06-16rustc: Update LLVMAlex Crichton-1/+1
This commit updates the LLVM submodule in use to the current HEAD of the LLVM repository. This is primarily being done to start picking up unwinding support for MSVC, which is currently unimplemented in the revision of LLVM we are using. Along the way a few changes had to be made: * As usual, lots of C++ debuginfo bindings in LLVM changed, so there were some significant changes to our RustWrapper.cpp * As usual, some pass management changed in LLVM, so clang was re-scrutinized to ensure that we're doing the same thing as clang. * Some optimization options are now passed directly into the `PassManagerBuilder` instead of through CLI switches to LLVM. * The `NoFramePointerElim` option was removed from LLVM, favoring instead the `no-frame-pointer-elim` function attribute instead. Additionally, LLVM has picked up some new optimizations which required fixing an existing soundness hole in the IR we generate. It appears that the current LLVM we use does not expose this hole. When an enum is moved, the previous slot in memory is overwritten with a bit pattern corresponding to "dropped". When the drop glue for this slot is run, however, the switch on the discriminant can often start executing the `unreachable` block of the switch due to the discriminant now being outside the normal range. This was patched over locally for now by having the `unreachable` block just change to a `ret void`.
2015-06-13Use `assert_eq!` instead of `assert!` in testspetrochenkov-8/+8
2015-06-12Cleanup: rename middle::ty::sty and its variants.Eli Friedman-17/+17
Use camel-case naming, and use names which actually make sense in modern Rust.
2015-05-29New tests for cross-crate usages of const fn and so forthNiko Matsakis-0/+16
2015-05-29add const_fn featuresNiko Matsakis-0/+2
2015-05-27Auto merge of #25790 - eddyb:oh-snap-ctfe-arrived, r=alexcrichtonbors-2/+2
2015-05-27Use `const fn` to abstract away the contents of UnsafeCell & friends.Eduard Burtescu-2/+2
2015-05-26Auto merge of #24657 - aochagavia:rustdoc, r=alexcrichtonbors-0/+1
Fixes #24575 Fixes #25673 r? @alexcrichton
2015-05-26rustc_back: Don't pass 'u' to ar invocationsAlex Crichton-0/+32
This flag indicates that when files are being replaced or added to archives (the `r` flag) that the new file should not be inserted if it is not newer than the file that already exists in the archive. The compiler never actually has a use case of *not* wanting to insert a file because it already exists, and this causes rlibs to not be updated in some cases when the compiler was re-run too quickly. Closes #18913
2015-05-25Rustdoc: ignore deref-inherited static methodsAdolfo OchagavĂ­a-0/+1
Fixes #24575
2015-05-24Auto merge of #25168 - Manishearth:register_attr, r=eddybbors-0/+30
This lets plugin authors opt attributes out of the `custom_attribute` and `unused_attribute` checks. cc @thepowersgang
2015-05-22Let MultiItemDecorator take `&Annotatable` (fixes #25683)Manish Goregaokar-5/+5
2015-05-17Allow #[derive()] to generate unsafe methodsManish Goregaokar-0/+2
2015-05-15Auto merge of #25399 - kballard:crate-attributes-cfg_attr, r=alexcrichtonbors-0/+16
Stripping unconfigured items prior to collecting crate metadata means we can say things like `#![cfg_attr(foo, crate_type="lib")]`. Fixes #25347.
2015-05-14Move configuration 1 phase before crate metadata collectionKevin Ballard-0/+16
Stripping unconfigured items prior to collecting crate metadata means we can say things like `#![cfg_attr(foo, crate_type="lib")]`. Fixes #25347.
2015-05-13Unignore some tests in stage1Tamir Duberstein-1/+0
We don't have any pending snapshot-requiring changes. Tests which continue to be ignored are those that are broken by codegen changes.
2015-05-13Remove errant lineTamir Duberstein-2/+0
2015-05-13RebasingNick Cameron-18/+10
2015-05-12Merge branch 'master' intoNick Cameron-287/+95
2015-05-09Remove auxiliary files not used since eb4d39eCarol Nichols-40/+0
2015-05-09Remove auxiliary file not used since 17da4c7Carol Nichols-27/+0
2015-05-09Remove auxiliary files not used since 812637eCarol Nichols-164/+0
2015-05-08Remove references to deprecated `extern crate "foo" as bar` syntaxCarol Nichols-64/+0
This syntax was removed in b24a3b8 but references remained in the grammar, the reference, rustdoc generation, and some auxiliary test files that don't seem to have been used since 812637e.
2015-05-07test for register_attribute()Manish Goregaokar-0/+30
2015-05-05test: update run-pass tests to not use mutable transmutingSean McArthur-2/+2
2015-05-02Add regression test for #19163Johannes Oertel-0/+16
Closes #19163.
2015-05-02Rename AstBuilder::expr_int -> AstBuilder::expr_isizeManish Goregaokar-3/+4
2015-05-01Add test for custom deriving plugins which rely on field attributesManish Goregaokar-0/+86
2015-05-01Get tests passingNick Cameron-76/+26