Changes in src/SymTab/Mangler.cc [e73becf:d1e0979]
- File:
-
- 1 edited
-
src/SymTab/Mangler.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.cc
re73becf rd1e0979 117 117 mangleName << declaration->get_name(); 118 118 } // if 119 mangleName << "__";119 mangleName << nameSeparator; 120 120 maybeAccept( declaration->get_type(), *visitor ); 121 121 if ( mangleOverridable && LinkageSpec::isOverridable( declaration->get_linkage() ) ) { … … 148 148 149 149 void Mangler::postvisit( BasicType * basicType ) { 150 static const char *btLetter[] = {151 "b", // Bool152 "c", // Char153 "Sc", // SignedChar154 "Uc", // UnsignedChar155 "s", // ShortSignedInt156 "Us", // ShortUnsignedInt157 "i", // SignedInt158 "Ui", // UnsignedInt159 "l", // LongSignedInt160 "Ul", // LongUnsignedInt161 "q", // LongLongSignedInt162 "Uq", // LongLongUnsignedInt163 "f", // Float164 "d", // Double165 "r", // LongDouble166 "Xf", // FloatComplex167 "Xd", // DoubleComplex168 "Xr", // LongDoubleComplex169 "If", // FloatImaginary170 "Id", // DoubleImaginary171 "Ir", // LongDoubleImaginary172 "w", // SignedInt128173 "Uw", // UnsignedInt128174 "x", // Float80175 "y", // Float128176 };177 static_assert(178 sizeof(btLetter)/sizeof(btLetter[0]) == BasicType::NUMBER_OF_BASIC_TYPES,179 "Each basic type kind should have a corresponding mangler letter"180 );181 182 150 printQualifiers( basicType ); 183 assert( basicType->get_kind() < sizeof(btLetter)/sizeof(btLetter[0]));151 assert( basicType->get_kind() < numBtLetter ); 184 152 mangleName << btLetter[ basicType->get_kind() ]; 185 153 } … … 227 195 inFunctionType = true; 228 196 std::list< Type* > returnTypes = getTypes( functionType->returnVals ); 229 acceptAll( returnTypes, *visitor ); 197 if (returnTypes.empty()) mangleName << "v"; 198 else acceptAll( returnTypes, *visitor ); 230 199 mangleName << "_"; 231 200 std::list< Type* > paramTypes = getTypes( functionType->parameters );
Note:
See TracChangeset
for help on using the changeset viewer.