mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-30 12:07:40 +00:00
![]() [Debuginfo] Force enum `DISCR_*` to `static const u64` to allow for inspection via LLDB see [here](https://rust-lang.zulipchat.com/#narrow/channel/317568-t-compiler.2Fwg-debugging/topic/Revamping.20Debuginfo/near/486614878) for more info. This change mainly helps `*-msvc` debugged with LLDB. Currently, LLDB cannot inspect `static` struct fields, so the intended visualization for enums is only borderline functional, and niche enums with ranges of discriminant cannot be determined at all . LLDB *can* inspect `static const` values (though for whatever reason, non-enum/non-u64 consts don't work). This change adds the `LLVMRustDIBuilderCreateQualifiedType` to the rust FFI layer to wrap the discr type with a `const` modifier, as well as forcing all generated integer enum `DISCR_*` values to be u64's. Those values will only ever be used by debugger visualizers anyway, so it shouldn't be a huge deal, but I left a fixme comment for it just in case.. The `tag` also still properly reflects the discriminant type, so no information is lost. |
||
---|---|---|
.. | ||
back | ||
builder | ||
coverageinfo | ||
debuginfo | ||
llvm | ||
abi.rs | ||
allocator.rs | ||
asm.rs | ||
attributes.rs | ||
base.rs | ||
builder.rs | ||
callee.rs | ||
common.rs | ||
consts.rs | ||
context.rs | ||
declare.rs | ||
errors.rs | ||
intrinsic.rs | ||
lib.rs | ||
llvm_util.rs | ||
mono_item.rs | ||
type_.rs | ||
type_of.rs | ||
va_arg.rs | ||
value.rs |