aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/Shell/ScriptInterpreter/Lua
diff options
context:
space:
mode:
authornerix <nerixdev@outlook.de>2025-08-06 04:57:26 +0200
committerGitHub <noreply@github.com>2025-08-05 19:57:26 -0700
commit2d4e5c4e1f0ee00cc668b5f012d718e750a99cc7 (patch)
treec0c2dcf641dfc15841a50231bdf5f3e406f2c6b4 /lldb/test/Shell/ScriptInterpreter/Lua
parent7b8dea265e72c3037b6b1e54d5ab51b7e14f328b (diff)
downloadllvm-main.zip
llvm-main.tar.gz
llvm-main.tar.bz2
[LLDB][NativePDB] Use undecorated name for types if UniqueName isn't mangled (#152114)HEADmain
Languages other than C/C++ don't necessarily emit mangled names in the `UniqueName` field of type records. Rust specifically emits a unique ID that doesn't contain the name. For example, `(i32, i32)` is emitted as ```llvm !266 = !DICompositeType( tag: DW_TAG_structure_type, name: "tuple$<i32,i32>", file: !9, size: 64, align: 32, elements: !267, templateParams: !17, identifier: "19122721b0632fe96c0dd37477674472" ) ``` which results in ``` 0x1091 | LF_STRUCTURE [size = 72, hash = 0x1AC67] `tuple$<i32,i32>` unique name: `19122721b0632fe96c0dd37477674472` vtable: <no type>, base list: <no type>, field list: 0x1090 options: has unique name, sizeof 8 ``` In C++ with Clang and MSVC, a structure similar to this would result in ``` 0x136F | LF_STRUCTURE [size = 44, hash = 0x30BE2] `MyTuple` unique name: `.?AUMyTuple@@` vtable: <no type>, base list: <no type>, field list: 0x136E options: has unique name, sizeof 8 ``` With this PR, if a `UniqueName` is encountered that couldn't be parsed, it will fall back to using the undecorated (→ do the same as if the unique name is empty/unavailable). I'm not sure how to test this. Maybe compiling the LLVM IR that rustc emits? Fixes #152051.
Diffstat (limited to 'lldb/test/Shell/ScriptInterpreter/Lua')
0 files changed, 0 insertions, 0 deletions