[Lldb-commits] [lldb] [LLDB][NativePDB] Use typedef compiler type for typedef types (PR #156250)
via lldb-commits
lldb-commits at lists.llvm.org
Sun Aug 31 09:05:14 PDT 2025
================
@@ -0,0 +1,128 @@
+// REQUIRES: lld
+
+// Test that simple types can be found
+// RUN: %build --std=c++20 --nodefaultlib --arch=64 -o %t.exe -- %s
+// RUN: lldb-test symbols %t.exe | FileCheck %s
+
+bool *PB;
+bool &RB = *PB;
+bool *&RPB = PB;
+const bool &CRB = RB;
+bool *const BC = 0;
+const bool *const CBC = 0;
+
+long AL[2];
+
+const volatile short CVS = 0;
+const short CS = 0;
+volatile short VS;
+
+struct ReturnedStruct1 {};
+struct ReturnedStruct2 {};
+
+struct MyStruct {
+ static ReturnedStruct1 static_fn(char *) { return {}; }
+ ReturnedStruct2 const_member_fn(char *) const { return {}; }
+ void volatile_member_fn() volatile {};
+ void member_fn() {};
+};
+
+void (*PF)(int, bool *, const float, ...);
----------------
Nerixyz wrote:
Missing: Return types and parameters that are "simple" (i.e. `TypeIndex::isSimple()) aren't created as types, because they don't have a type record in the TPI stream. So here, we're missing a `Type` for `void`. Non-simple types are created, because they will have a type record.
In the DIA `typedefs.test` ([source](https://github.com/llvm/llvm-project/blob/d63dd5eed0ea2f34bcf8b178211f8771ea75dec7/lldb/test/Shell/SymbolFile/PDB/Inputs/SimpleTypesTest.cpp)), many simple types are only used in parameters. So the output of the native plugin is missing these.
https://github.com/llvm/llvm-project/pull/156250
More information about the lldb-commits
mailing list