Commit Graph

69961 Commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
33a205b56f rustc: collapse Layout::CEnum into Layout::General. 2017-11-19 02:14:30 +02:00
Eduard-Mihai Burtescu
658ebfc788 rustc: give Layout::CEnum a discriminant field like Layout::General. 2017-11-19 02:14:30 +02:00
Eduard-Mihai Burtescu
d318b9c27b rustc: move CEnum's signedness into Primitive::Int. 2017-11-19 02:14:30 +02:00
Eduard-Mihai Burtescu
61c2bd9ca4 rustc: use Primitive instead of Integer for CEnum and General discriminants. 2017-11-19 02:14:30 +02:00
Eduard-Mihai Burtescu
335bd8ea1b rustc: do not track non_zero in Layout. 2017-11-19 02:14:30 +02:00
Eduard-Mihai Burtescu
02276e9f49 rustc: collapse Layout::{Raw,StructWrapped}NullablePointer into one variant. 2017-11-19 02:14:30 +02:00
Eduard-Mihai Burtescu
caef91d7c6 rustc: introduce layout::Abi for reduced general ABI "passing style". 2017-11-19 02:14:30 +02:00
Eduard-Mihai Burtescu
1dc572b85e rustc: represent the discriminant as a field for Layout::{Raw,StructWrapped}NullablePointer. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
30710609c0 rustc_trans: treat General enums like unions. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
9a0efea4c2 rustc: pre-compute field placements out of Layout. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
8c4d5af52b rustc: remove Ty::layout and move everything to layout_of. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
8864668d53 rustc: re-complicate the TyLayout API and use better names. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
aa811d728a rustc: remove source field path from Layout::StructWrappedNullablePointer. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
bc8e1f7efa rustc: use an offset instead of a field path in Layout::StructWrappedNullablePointer. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
50a3fd0097 rustc: remove useless 0 prefix from Layout::StructWrappedNullablePointer's discrfield. 2017-11-19 02:14:29 +02:00
Eduard-Mihai Burtescu
44eef7c9ac rustc: do not inject discriminant fields into Layout::General's variants. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
8afa3a01e6 rustc_trans: always insert alignment padding, even before the first field. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
0a1fcc32a6 rustc_trans: use *[T; 0] for slice data pointers instead of *T. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
84b5a3d84d rustc_trans: remove the in_memory_type_of distinction. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
5b1fdaeb80 rustc_trans: use more of the trans::mir and ty::layout APIs throughout. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
260c41b4b8 rustc_trans: do not introspect LLVM aggregate field types. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
b8671bef97 rustc_trans: remove obsolete Type methods. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
386d59dc89 rustc_trans: use a predictable layout for constant ADTs. 2017-11-19 02:14:28 +02:00
Eduard-Mihai Burtescu
f44b099187 rustc_trans: avoid working with sizes/offsets and alignments as integers. 2017-11-19 02:14:24 +02:00
bors
6160040d85 Auto merge of #46039 - oli-obk:test_suggestions, r=petrochenkov
Remove left over dead code from suggestion diagnostic refactoring

More cleanups after #41876 and #45741
2017-11-18 20:52:19 +00:00
Eduard-Mihai Burtescu
9deea47c96 rustc_mir: always downcast enums, even if univariant. 2017-11-18 20:52:38 +02:00
bors
b1409af73d Auto merge of #46032 - KiChjang:ignore-borrowck-statics, r=nikomatsakis
Ignore borrowck for static lvalues and allow assignment to static muts

Fixes #45129.
Fixes #45641.
2017-11-18 17:30:26 +00:00
bors
1f491e07c9 Auto merge of #46009 - kennytm:fix-38878-again, r=alexcrichton
Fix #38878 again — restart linker when seeing SIGBUS in additional to SIGSEGV.

In https://github.com/rust-lang/rust/pull/45985#issuecomment-344586645 we see a linker crashed due to Bus Error (signal 10) on macOS. The error was not caught by #40422 since the PR only handles Segmentation Fault (signal 11). The crash log indicates the problem is the same as #38878, so we just amend #40422 to include SIGBUS as well.

(Additionally, modified how the crash logs are printed so that irrelevant logs are truly filtered out.)
2017-11-18 15:00:13 +00:00
Scott McMurray
cef45b3baf Undo the Sized specialization from Iterator::nth 2017-11-18 03:45:51 -08:00
bors
18250b0349 Auto merge of #46073 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 4 pull requests

- Successful merges: #45767, #46044, #46066, #46071
- Failed merges:
2017-11-18 11:38:06 +00:00
Guillaume Gomez
5f1c37a0fa Rollup merge of #46071 - LooMaclin:fix-46001, r=estebank
Remove return_ty from Mir

https://github.com/rust-lang/rust/issues/46001
2017-11-18 12:15:24 +01:00
Guillaume Gomez
1389b6203e Rollup merge of #46066 - GuillaumeGomez:primitive-search, r=QuietMisdreavus
Fix primitive types not showing up

Fixes #46017.

r? @QuietMisdreavus
2017-11-18 12:15:23 +01:00
Guillaume Gomez
c36228f696 Rollup merge of #46044 - collinanderson:py3, r=kennytm
fix some python3 incompatibilities
2017-11-18 12:15:22 +01:00
Guillaume Gomez
cdadb6c725 Rollup merge of #45767 - QuietMisdreavus:who-docs-the-doc-tool, r=frewsxcv
rustdoc book: talk about #![doc(test(no_crate_inject))] and #![doc(test(attr(...)))]

While investigating https://github.com/rust-lang/rust/issues/45750 i noticed that `#![doc(test(attr(...)))]` wasn't documented at all. Since this is useful for making your examples follow the same coding guidelines as your code, i wanted to add it to the Rustdoc Book. I also added `#![doc(test(no_crate_inject))]` since it's used in the same place and might be useful for macro-heavy crates. I added mentions for these to "The `doc` attribute" as well as "Documentation tests" since it's useful information in both places.

Technically the step reordering in the second commit is gated on https://github.com/rust-lang/rust/pull/45764, since before that lands attributes from the doctest come before the ones from `#![doc(test(attr(...)))]`.
2017-11-18 12:15:21 +01:00
bors
130eaaeaba Auto merge of #46000 - kennytm:fix-45640-extern-type-ice-in-rustdoc, r=QuietMisdreavus
Support `extern type` in rustdoc.

Fixes #45640.

(cc #43467)
2017-11-18 09:18:13 +00:00
loomaclin
0b508846ec Remove return_ty from Mir
https://github.com/rust-lang/rust/issues/46001
2017-11-18 10:27:24 +03:00
bors
859c716fbb Auto merge of #45999 - jseyfried:def_site_span, r=nrc
Rename `Span::default` -> `Span::def_site`

I think the explicitness here is warranted.
c.f. #45934
r? @nrc
2017-11-18 05:36:37 +00:00
bors
79a138594f Auto merge of #45989 - davidtwco:issue-45360, r=nikomatsakis
MIR-borrowck: emit "`foo` does not live long enough" instead of borrow errors

Fixes #45360. As of writing, contains deduplication of existing errors.

r? @nikomatsakis
2017-11-18 03:11:18 +00:00
bors
8752aeed3a Auto merge of #45899 - eddyb:meta-race, r=alexcrichton
rustc_trans: atomically write .rmeta outputs to avoid races.

Fixes #45841 in a similar vein to how LLVM writes archives: write a temporary file and then rename it.

r? @alexcrichton
2017-11-18 00:44:58 +00:00
Keith Yeung
f8ba371b1e Add run-pass test for assignment to static mut 2017-11-17 14:22:04 -08:00
Keith Yeung
c9d1db7bc5 Do not registor borrows for unsafe lvalues 2017-11-17 14:16:37 -08:00
bors
18d8acf41d Auto merge of #45853 - nikomatsakis:chalk-simplify-hr-lub-glb, r=arielb1
Simplify higher-ranked LUB/GLB

This is a better version of https://github.com/rust-lang/rust/pull/44211. It still makes higher-ranked LUB/GLB into a hard equality test, however, it does try to identify that something changed and issue a notice to the user. I wroteup https://github.com/rust-lang/rust/issues/45852 as a tracking issue for this change.

Currently, this moves straight to a hard-error, on the basis that the crater run in #44211 saw no impact. It might be good to retest -- or perhaps to try for a warning period. Trying to do the latter in a precise way would be somewhat painful, but an imprecise way might suffice -- that is, we could issue warning *whenever* a LUB/GLB operation succeeds that will later fail, even if it doesn't ultimately impact the type check. I could experiment with this.

~~I am *mildly* wary about landing this independently of other code that moves to a universe-based system. In particular, I was nervous that this change would make coherence accepts new pairs of impls that will later be errors. I have the code for the universe-based approach available, I hope to open an PR and run some tests on its impact very shortly.~~ @arielb1 points out that I was being silly.

r? @arielb1
2017-11-17 22:16:11 +00:00
Guillaume Gomez
955c054ab1 Fix primitive types not showing up 2017-11-17 22:33:02 +01:00
David Wood
a1d55be3e1
Fixed bug with the implementation that was suppressing expected errors from the same line in other tests. 2017-11-17 19:58:11 +00:00
Marc-Antoine Perennou
90e54f4340 update openssl{,-sys} to fix build with libressl 2.6.x
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2017-11-17 20:40:25 +01:00
Keith Yeung
3be597acf3 Allow assignment to static muts 2017-11-17 11:21:43 -08:00
Eduard-Mihai Burtescu
fab2532ef9 rustc_trans: move const & lvalue access helpers from adt. 2017-11-17 18:25:31 +02:00
David Wood
bf76ffe4e3
Corrected error output with many labels. 2017-11-17 16:20:34 +00:00
Niko Matsakis
9877fa048d use a BTreeMap instead of an FxHasMap for the skol regions
The ordering can affect error msg, and this map is not a high
performance pathway.
2017-11-17 10:32:53 -05:00
Niko Matsakis
ff8cd2e428 strip old lub-glb tests from librustc_driver
Good riddance.
2017-11-17 10:32:15 -05:00