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