Port fix for crash creating debug info for nameless types from mainline.
llvm-svn: 182566
diff --git a/dragonegg/src/Debug.cpp b/dragonegg/src/Debug.cpp
index 5c3d3c6..2302a9d 100644
--- a/dragonegg/src/Debug.cpp
+++ b/dragonegg/src/Debug.cpp
@@ -429,6 +429,8 @@
DIType DebugInfo::createBasicType(tree type) {
StringRef TypeName = GetNodeName(type);
+ if (TypeName.empty())
+ TypeName = "__unknown__";
uint64_t Size = NodeSizeInBits(type);
uint64_t Align = NodeAlignInBits(type);
diff --git a/dragonegg/test/compilator/local/c++/nameless-type.cpp b/dragonegg/test/compilator/local/c++/nameless-type.cpp
new file mode 100644
index 0000000..18faba9
--- /dev/null
+++ b/dragonegg/test/compilator/local/c++/nameless-type.cpp
@@ -0,0 +1,19 @@
+namespace std {
+ namespace decimal {
+ class decimal64 {
+ public:
+ typedef float __decfloat64 __attribute__ ((mode (DD)));
+ explicit decimal64 (int __r):__val (__r) {}
+ private:
+ __decfloat64 __val;
+ };
+ }
+}
+
+int bar (const std::decimal::decimal64 & x) { }
+
+int foo ()
+{
+ std::decimal::decimal64 x(0);
+ bar (x);
+}