rust/tests/codegen/enum
Matthew Maurer d82219a4fa debuginfo: Set bitwidth appropriately in enum variant tags
Previously, we unconditionally set the bitwidth to 128-bits, the largest
an discrimnator would possibly be. Then, LLVM would cut down the constant by
chopping off leading zeroes before emitting the DWARF. LLVM only
supported 64-bit descriminators, so this would also have occasionally
resulted in truncated data (or an assert) if more than 64-bits were
used.

LLVM added support for 128-bit enumerators in llvm/llvm-project#125578

That patchset also trusts the constant to describe how wide the variant tag is.
As a result, we went from emitting tags that looked like:
DW_AT_discr_value     (0xfe)

(`form1`)

to emitting tags that looked like:
DW_AT_discr_value	(<0x10> fe ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 )

This makes the `DW_AT_discr_value` encode at the bitwidth of the tag,
which:
1. Is probably closer to our intentions in terms of describing the data.
2. Doesn't invoke the 128-bit support which may not be supported by all
   debuggers / downstream tools.
3. Will result in smaller debug information.
2025-02-12 18:01:42 +00:00
..
enum-bounds-check-derived-idx.rs
enum-bounds-check-issue-13926.rs
enum-bounds-check-issue-82871.rs
enum-bounds-check.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
enum-debug-clike.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
enum-debug-niche-2.rs debuginfo: Set bitwidth appropriately in enum variant tags 2025-02-12 18:01:42 +00:00
enum-debug-niche.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
enum-debug-tagged.rs Run rustfmt on tests/codegen/. 2024-05-31 15:56:43 +10:00
enum-discriminant-value.rs
enum-early-otherwise-branch.rs Update the minimum external LLVM to 18 2024-09-18 13:53:31 -07:00
enum-match.rs Add range attribute to scalar function results and arguments 2024-08-11 19:40:44 +02:00
enum-u128.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
unreachable_enum_default_branch.rs Simplify the canonical clone method to copy 2024-09-14 13:30:35 +08:00