diff options
author | Dave Lee <davelee.com@gmail.com> | 2025-08-05 21:23:46 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-05 21:23:46 -0700 |
commit | 2959051e655a5c77401285a68bab2027aa958b88 (patch) | |
tree | 66a5341ddaf4673324b27c35a98242a0e23221d8 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 3339a0045d66c0e56081b699b8535aecfb95ef85 (diff) | |
download | llvm-2959051e655a5c77401285a68bab2027aa958b88.zip llvm-2959051e655a5c77401285a68bab2027aa958b88.tar.gz llvm-2959051e655a5c77401285a68bab2027aa958b88.tar.bz2 |
[lldb] Preserve original symbol of Mangled function names (#152201)
Fixes a bug that surfaces in frame recognizers.
Details about the bug:
A new frame recognizer is configured to match a specific symbol
(`swift_willThrow`). This is an `extern "C"` symbol defined in a C++
source file. When Swift is built with debug info, the function
`ParseFunctionFromDWARF` will use the debug info to construct a function
name that looks like a C++ declaration (`::swift_willThrow(void *,
SwiftError**)`). The `Mangled` instance will have this string as its
`m_demangled` field, and have _no_ string for its `m_mangled` field.
The result is the frame recognizer would not match the symbol to the
name (`swift_willThrow` != `::swift_willThrow(void *, SwiftError**)`.
By changing `ParseFunctionFromDWARF` to assign both a demangled name and
a mangled, frame recognizers can successfully match symbols in this
configuration.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions