[PATCH] D81905: Enhance Itanium demangler interface.
Konstantin Bobrovsky via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 2 18:22:10 PDT 2020
kbobrovs updated this revision to Diff 275270.
kbobrovs added a comment.
Added one more workaround needed to compile with MSVC++.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81905/new/
https://reviews.llvm.org/D81905
Files:
llvm/include/llvm/Demangle/ItaniumDemangle.h
Index: llvm/include/llvm/Demangle/ItaniumDemangle.h
===================================================================
--- llvm/include/llvm/Demangle/ItaniumDemangle.h
+++ llvm/include/llvm/Demangle/ItaniumDemangle.h
@@ -445,6 +445,14 @@
}
};
+#ifdef _MSC_VER
+// Workaround for MSVC++ bug (Version 2017, 15.8.9) - w/o this forward
+// declaration, the friend declaration in ObjCProtoName below has no effect
+// and leads to compilation error when ObjCProtoName::Protocol private field
+// is accessed in PointerType::printLeft.
+class PointerType;
+#endif // _MSC_VER
+
class ObjCProtoName : public Node {
const Node *Ty;
StringView Protocol;
@@ -1199,7 +1207,7 @@
template<typename Fn> void match(Fn F) const { F(Params); }
- NodeArray getParams() { return Params; }
+ const NodeArray &getParams() const { return Params; }
void printLeft(OutputStream &S) const override {
S += "<";
@@ -2057,6 +2065,9 @@
else
S << Integer;
}
+
+ // Retrieves the string view of the integer value this node represents.
+ const StringView &getIntegerValue() const { return Integer; }
};
class IntegerLiteral : public Node {
@@ -2085,6 +2096,13 @@
if (Type.size() <= 3)
S += Type;
}
+
+ // Retrieves the string view of the integer value represented by this node.
+ const StringView &getValue() const { return Value; }
+
+ // Retrieves the string view of the type string of the integer value this node
+ // represents.
+ const StringView &getType() const { return Type; }
};
template <class Float> struct FloatData;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D81905.275270.patch
Type: text/x-patch
Size: 1576 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200703/905d1b2d/attachment.bin>
More information about the llvm-commits
mailing list