[PATCH] D54667: [CodeView] Emit proper debug info for ref-qualified member functions
Reid Kleckner via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 19 12:03:07 PST 2018
rnk added inline comments.
================
Comment at: llvm/include/llvm/DebugInfo/CodeView/CodeView.h:362-364
CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(PointerOptions)
+enum class PointerQualifier : uint32_t {
----------------
Why should we separate these? I don't think the WinRT smart pointer bit really relates to ref qualifier overloading, does it? Since these are just more flags, grouping them together reduces the number of parameters we need to make pointer records.
================
Comment at: llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp:1717
- PointerRecord PR(PointeeTI, PK, PM, PO, Ty->getSizeInBits() / 8);
+ PointerRecord PR(PointeeTI, PK, PM, PO, PQ, Ty->getSizeInBits() / 8);
return TypeTable.writeLeafType(PR);
----------------
This constructor is getting pretty big at this point, for example.
================
Comment at: llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp:364
printTypeIndex("PointeeType", Ptr.getReferentType());
- W->printHex("PointerAttributes", uint32_t(Ptr.getOptions()));
W->printEnum("PtrType", unsigned(Ptr.getPointerKind()),
----------------
Most of the diff is updating tests to cope with this. You should be able to commit this one line change separately and fix up all the tests by deleting lines in test containing `PointerAttributes`.
https://reviews.llvm.org/D54667
More information about the llvm-commits
mailing list