Index: src/SymTab/ManglerCommon.cc
===================================================================
--- src/SymTab/ManglerCommon.cc	(revision e15853c01fea9920d1adec991c801c4361669db7)
+++ src/SymTab/ManglerCommon.cc	(revision f8de4e40d5bcd47b9d45d33c9ece4dfaf5a9329e)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:44:03 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Feb 14 08:12:17 2019
-// Update Count     : 25
+// Last Modified On : Thu Feb 14 17:06:37 2019
+// Update Count     : 26
 //
 
@@ -22,47 +22,7 @@
 		namespace Encoding {
 			const std::string manglePrefix = "_X";
-#if 0
-			const std::string basicTypes[] = {
-				"b",  // Bool
-				"c",  // Char
-				"a",  // SignedChar
-				"h",  // UnsignedChar
-				"s",  // ShortSignedInt
-				"t",  // ShortUnsignedInt
-				"i",  // SignedInt
-				"j",  // UnsignedInt
-				"l",  // LongSignedInt
-				"m",  // LongUnsignedInt
-				"x",  // LongLongSignedInt
-				"y",  // LongLongUnsignedInt
-				"f",  // Float
-				"d",  // Double
-				"e",  // LongDouble
-				"Cf", // FloatComplex
-				"Cd", // DoubleComplex
-				"Ce", // LongDoubleComplex
-				// Note: imaginary is not an overloadable type in C++
-				// "If", // FloatImaginary
-				// "Id", // DoubleImaginary
-				// "Ie", // LongDoubleImaginary
-				"n",  // SignedInt128
-				"o",  // UnsignedInt128
-				"Dq",  // Float80 -- TODO: itanium says Float80 and LongDouble both encode to "e", but doing this causes problems with constructing long double, because the cost tables are incorrect
-				"g",  // Float128
-				// "z",	// ellipsis
-				// "Dd" // # IEEE 754r decimal floating point (64 bits)
-				// "De" // # IEEE 754r decimal floating point (128 bits)
-				// "Df" // # IEEE 754r decimal floating point (32 bits)
-				// "Dh" // # IEEE 754r half-precision floating point (16 bits)
-				// "DF"N_ // # ISO/IEC TS 18661 binary floating point type _FloatN (N bits)
-				// "Di" // char32_t
-				// "Ds" // char16_t
-			};
-			static_assert(
-				sizeof(basicTypes)/sizeof(basicTypes[0]) == BasicType::NUMBER_OF_BASIC_TYPES,
-				"Each basic type kind should have a corresponding mangler letter"
-			);
-#endif
+
 			// GENERATED START, DO NOT EDIT
+			// GENERATED BY BasicTypes-gen.cc
 			// NOTES ON MANGLING:
 			// * Itanium spec says that Float80 encodes to "e" (like LongDouble), but the distinct lengths cause resolution problems.
@@ -118,4 +78,8 @@
 			}; // basicTypes
 			// GENERATED END
+			static_assert(
+				sizeof(basicTypes)/sizeof(basicTypes[0]) == BasicType::NUMBER_OF_BASIC_TYPES,
+				"Each basic type kind should have a corresponding mangler letter"
+			);
 
 			const std::map<int, std::string> qualifiers = {
