about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/Linker.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-01-04 23:56:29 +0000
committerbors <bors@rust-lang.org>2025-01-04 23:56:29 +0000
commit3dc3c524f77366f64088b49c80d11586b9a086bf (patch)
treee3d33433ec5e08010344baa4e17fd55871af7140 /compiler/rustc_llvm/llvm-wrapper/Linker.cpp
parent1891c28669863bf7ed3ef8f43f2d3fa546f34861 (diff)
parenta1191e30b6cfdad8e5763eae808e138818d9b56d (diff)
downloadrust-3dc3c524f77366f64088b49c80d11586b9a086bf.tar.gz
rust-3dc3c524f77366f64088b49c80d11586b9a086bf.zip
Auto merge of #133990 - Walnut356:static_const, r=workingjubilee
[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.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/Linker.cpp')
0 files changed, 0 insertions, 0 deletions