[PATCH] D25578: [codeview] support emitting indirect virtual base class information
Bob Haarman via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 14 11:31:18 PDT 2016
inglorion added inline comments.
================
Comment at: include/llvm/DebugInfo/CodeView/TypeRecord.h:1197
explicit VirtualBaseClassRecord(TypeRecordKind Kind) : TypeRecord(Kind) {}
VirtualBaseClassRecord(MemberAccess Access, TypeIndex BaseType,
TypeIndex VBPtrType, uint64_t Offset, uint64_t Index)
----------------
zturner wrote:
> rnk wrote:
> > Can you remove this ctor? We appear to use the wrong kind in VirtualBaseClassRecord::deserialize.
> Remove which constructor? `deserialize` still needs to call this constructor right?
I think @rnk wants me to remove the constructor that does not take a Kind parameter, forcing callers to always specify if they want a VirtualBaseClass or an IndirectVirtualBaseClass. Makes sense, and I have updated the code to do that, which I'll send in the next version of this diff.
================
Comment at: test/DebugInfo/COFF/inheritance.ll:33
+; CHECK-NEXT: AccessSpecifier: Public (0x3)
+; CHECK-NEXT: BaseType: A ({{.*}})
+; CHECK-NEXT: VBPtrType: const int* ({{.*}})
----------------
zturner wrote:
> What does the `{{.*}}` syntax mean here?
The {{ and }} are used for regular expression matching. So this matches any sequence of characters enclosed by parentheses. It's the same matching we use in other clauses in the same file, where there needs to be something there, but we don't care about the exact value.
https://reviews.llvm.org/D25578
More information about the llvm-commits
mailing list