================
@@ -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
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to