-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Closed
Description
I've encountered what seems like a bug in this code:
llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
Lines 3140 to 3147 in fd78472
| if (encoding_mask & Type::eEncodingIsPointerUID) { | |
| is_static = false; | |
| if (encoding_mask & (1u << Type::eEncodingIsConstUID)) | |
| type_quals |= clang::Qualifiers::Const; | |
| if (encoding_mask & (1u << Type::eEncodingIsVolatileUID)) | |
| type_quals |= clang::Qualifiers::Volatile; | |
| } |
In my case, the entry for "this" looked like this:
0x000001a4: DW_TAG_formal_parameter
DW_AT_artificial (0x01)
DW_AT_type (0x000001e0 "WebAssemblyPtrWrapper<DerivedType>")
...
0x000001e0: DW_TAG_structure_type
DW_AT_name ("WebAssemblyPtrWrapper<DerivedType>")
DW_AT_byte_size (0x04)
And was still picked up, despite the seeming intention of filtering out non-pointer arguments.