================
@@ -2605,6 +2605,9 @@ CodeViewDebug::lowerRecordFieldList(const DICompositeType 
*Ty) {
       MemberBaseType = TypeTable.writeLeafType(BFR);
     }
     uint64_t MemberOffsetInBytes = MemberOffsetInBits / 8;
+    if (Ty->getName().find("<lambda") != std::string::npos) {
+      MemberName = "__this";
+    }
----------------
GkvJwa wrote:

Good, I tried patching it here and it also works, and the pdb compiled by msvc 
also has operators:
```
 0x465D | LF_FIELDLIST [size = 160, hash = 0x26758]
          - LF_ONEMETHOD [name = `operator()`]
            type = 0x4653, vftable offset = -1, attrs = public
          - LF_METHOD [name = `<lambda_1>`, # overloads = 2, overload list = 
0x4658]
          - LF_MEMBER [name = `__this`, Type = 0x464E, offset = 0, attrs = 
private]
          - LF_MEMBER [name = `aa`, Type = 0x0074 (int), offset = 8, attrs = 
private]
          - LF_MEMBER [name = `bb`, Type = 0x0074 (int), offset = 12, attrs = 
private]
          - LF_MEMBER [name = `cc`, Type = 0x0074 (int), offset = 16, attrs = 
private]
          - LF_ONEMETHOD [name = `operator=`]
            type = 0x465C, vftable offset = -1, attrs = public
          - LF_ONEMETHOD [name = `__autoclassinit2`]
```
Not sure what it means

https://github.com/llvm/llvm-project/pull/71564
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to