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);
+}