Commit graph

53 commits

Author SHA1 Message Date
Oli Scherer
9b6f8e500c Add a test for OOB ranges 2022-11-25 08:39:50 +00:00
The 8472
a9128d8927 fix tests, update size asserts 2022-11-22 23:12:26 +01:00
Michael Benfield
1a08b96a0b Change name of "dataful" variant to "untagged"
This is in anticipation of a new enum layout, in which the niche
optimization may be applied even when multiple variants have data.
2022-09-07 20:12:45 +00:00
Fabian Wolff
e3c7e04a44 Warn about dead tuple struct fields 2022-08-03 12:17:23 +02:00
Ralf Jung
abd80d904b reorder fields in Laout debug output 2022-07-31 08:23:27 -04:00
Josh Stone
1e7e745572 Test another enum niche with multiple ZST alignments 2022-07-30 11:54:15 -07:00
Josh Stone
4a1e4ea32a Fix the size of niche enums with ZST alignment
For enums with an aligned ZST variant, like `[T; 0]`, the niche layout
was not computing a sufficient size to be consistent with alignment. Now
we pad that size up to the alignment, and also make sure to only use the
niche variant's ABI when the size and alignment still match.
2022-07-30 10:45:48 -07:00
Oli Scherer
519c07b3ce Limit test to x86 targets for reproducability 2022-07-13 10:11:35 +00:00
Oli Scherer
726919629e Always check Cell alongside with UnsafeCell 2022-07-12 07:29:36 +00:00
Oli Scherer
24e87965ae Use some more visible sigils than , 2022-07-12 07:22:52 +00:00
Oli Scherer
3338593afd Only check relative sizes on platform specific types 2022-07-11 15:41:38 +00:00
Oli Scherer
0318b70514 tidy 2022-07-11 14:35:04 +00:00
Oli Scherer
cdd6bba8f6 Simplify size checking 2022-07-11 14:23:32 +00:00
Oli Scherer
d935c70afa Don't allow accidental runtime-checks 2022-07-11 14:16:14 +00:00
Oli Scherer
8440208eb1 tidy 2022-07-11 11:07:03 +00:00
Oli Scherer
fcd7207d0e Make tests work on 32 bit and 64 bit 2022-07-11 10:43:47 +00:00
Oli Scherer
9a204509d2 Show sizes in error output 2022-07-11 10:34:01 +00:00
Oli Scherer
fef596f6a2 Rename assertion macro 2022-07-11 10:31:21 +00:00
Oli Scherer
af8536e32f Simplify assertion macro 2022-07-11 10:30:50 +00:00
Oli Scherer
3f4cf59323 Move checks to compile-time 2022-07-11 10:29:02 +00:00
Oli Scherer
984db78d77 Hide niches in SIMD types, too 2022-07-11 10:25:41 +00:00
Oli Scherer
69b1b3c011 Create a custom layout path for UnsafeCell instead of piggy backing on the layout_scalar_valid_range logic 2022-07-08 14:48:38 +00:00
Oli Scherer
4bfba76a3d Add tests for libstd types 2022-07-08 14:28:19 +00:00
Oli Scherer
2a899dc1cf UnsafeCell now has no niches, ever. 2022-07-07 10:46:22 +00:00
Ralf Jung
cedc428a5f fix the layout of repr(align) enums 2022-07-05 13:24:21 -04:00
Camille GILLOT
42e4eee893 Shorten def_span for more items. 2022-07-01 17:39:19 +02:00
Ralf Jung
2c11c3d86c make sure ScalarPair enums have ScalarPair variants; add some layout sanity checks 2022-05-09 17:46:35 +02:00
Ralf Jung
bd31ba045d make Size and Align debug-printing a bit more compact 2022-05-06 10:57:03 +02:00
Erik Desjardins
4dcc1aae0a normalize out pref_align (copied from another test) 2022-04-22 01:46:24 -04:00
Erik Desjardins
1bbae507d4 mark payload fields of ScalarPair enums as Scalar::Union when they're not always initialized 2022-04-18 21:43:20 -04:00
Oli Scherer
d32ce37a17 Mark scalar layout unions so that backends that do not support partially initialized scalars can special case them. 2022-04-05 13:18:21 +00:00
Esteban Kuber
8f433adf75 Align multiline messages to their label (add left margin) 2021-11-20 19:19:33 +00:00
Manish Goregaokar
fd116c806a Add c_enum_min_bits to target spec 2021-08-12 09:44:16 -07:00
Santiago Pastorino
38bdd0e019
Make all tests use type_alias_impl_trait feature instead of min 2021-07-27 12:33:02 -03:00
Camelid
c30eac51c4 Fix ICE during type layout when there's a [type error]
Based on estebank's [comment], except I used `delay_span_bug` because it
should work in more cases, and I think it expresses its intent more
clearly.

[comment]: https://github.com/rust-lang/rust/issues/84108#issuecomment-818916848
2021-04-13 19:20:55 -07:00
Oli Scherer
1f7df1956a Replace type_alias_impl_trait by min_type_alias_impl_trait with no actual changes in behaviour
This makes `type_alias_impl_trait` not actually do anything anymore
2021-03-15 17:32:43 +00:00
Simonas Kazlauskas
24c23f5404 Test hexagon-enum only when llvm target is present
See https://github.com/rust-lang/rust/pull/82379#issuecomment-783439754
2021-02-22 19:10:02 +02:00
Simonas Kazlauskas
7130e462ee Fix sizes of repr(C) enums on hexagon
Enums on hexagon use a smallest size (but at least 1 byte) that fits all
the enumeration values. This is unlike many other ABIs where enums are
at least 32 bits.
2021-02-22 01:05:17 +02:00
Bastian Kauschke
88584d5800 change error for LayoutErr::SizeOverflow 2020-11-18 11:38:30 +01:00
Ralf Jung
f7d745f33d tag/niche terminology cleanup 2020-05-30 13:55:25 +02:00
Ana-Maria Mihalache
8f081d5b2b rustc_target::abi: add Primitive variant to FieldsShape. 2020-04-16 15:15:51 +00:00
Ralf Jung
83fb0b1e8c tweak rustc_layout debug output 2020-04-06 09:22:48 +02:00
Ralf Jung
8f6c109371 also print type type 2020-04-05 17:13:30 +02:00
Ralf Jung
4a75883a78 also print rustc_layout on impl trait type aliases 2020-04-05 17:07:06 +02:00
Ana-Maria Mihalache
0f7840b89b Rename LayoutDetails to just Layout. 2020-03-25 15:06:48 +00:00
Ralf Jung
e548df7e36 normalize away preferred alignment 2020-03-21 10:07:44 +01:00
Ralf Jung
c62e36bf4c make rustc_layout also work for type definitions 2020-03-20 17:48:03 +01:00
Ralf Jung
d9f60bcf67 add a test for rustc_layout(debug) 2020-03-20 17:25:03 +01:00
Felix S. Klock II
3e047229ef Add repr(no_niche) to UnsafeCell. Fix #68303. 2020-02-10 14:44:12 -05:00
Eduard-Mihai Burtescu
8f81593d6c rustc_target: switch homogeneous_aggregate to returning Result. 2020-02-08 06:50:59 +02:00