Changes in src/SymTab/Mangler.cc [d1e0979:e73becf]
- File:
-
- 1 edited
-
src/SymTab/Mangler.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.cc
rd1e0979 re73becf 117 117 mangleName << declaration->get_name(); 118 118 } // if 119 mangleName << nameSeparator;119 mangleName << "__"; 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", // Bool 152 "c", // Char 153 "Sc", // SignedChar 154 "Uc", // UnsignedChar 155 "s", // ShortSignedInt 156 "Us", // ShortUnsignedInt 157 "i", // SignedInt 158 "Ui", // UnsignedInt 159 "l", // LongSignedInt 160 "Ul", // LongUnsignedInt 161 "q", // LongLongSignedInt 162 "Uq", // LongLongUnsignedInt 163 "f", // Float 164 "d", // Double 165 "r", // LongDouble 166 "Xf", // FloatComplex 167 "Xd", // DoubleComplex 168 "Xr", // LongDoubleComplex 169 "If", // FloatImaginary 170 "Id", // DoubleImaginary 171 "Ir", // LongDoubleImaginary 172 "w", // SignedInt128 173 "Uw", // UnsignedInt128 174 "x", // Float80 175 "y", // Float128 176 }; 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 150 182 printQualifiers( basicType ); 151 assert( basicType->get_kind() < numBtLetter);183 assert( basicType->get_kind() < sizeof(btLetter)/sizeof(btLetter[0]) ); 152 184 mangleName << btLetter[ basicType->get_kind() ]; 153 185 } … … 195 227 inFunctionType = true; 196 228 std::list< Type* > returnTypes = getTypes( functionType->returnVals ); 197 if (returnTypes.empty()) mangleName << "v"; 198 else acceptAll( returnTypes, *visitor ); 229 acceptAll( returnTypes, *visitor ); 199 230 mangleName << "_"; 200 231 std::list< Type* > paramTypes = getTypes( functionType->parameters );
Note:
See TracChangeset
for help on using the changeset viewer.