Changes in src/SymTab/Mangler.cc [89e6ffc:8bf784a]
- File:
-
- 1 edited
-
src/SymTab/Mangler.cc (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.cc
r89e6ffc r8bf784a 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Mangler.cc -- 7 // Mangler.cc -- 8 8 // 9 9 // Author : Richard C. Bilson … … 35 35 return mangler.get_mangleName(); 36 36 } 37 37 38 38 Mangler::Mangler( bool mangleOverridable, bool typeMode ) 39 39 : nextVarNum( 0 ), isTopLevel( true ), mangleOverridable( mangleOverridable ), typeMode( typeMode ) {} 40 40 41 41 Mangler::Mangler( const Mangler &rhs ) : mangleName() { 42 42 varNums = rhs.varNums; … … 115 115 "Ir", // LongDoubleImaginary 116 116 }; 117 117 118 118 printQualifiers( basicType ); 119 119 mangleName << btLetter[ basicType->get_kind() ]; … … 214 214 mangleName << "f"; 215 215 break; 216 case TypeDecl::Ttype: 217 mangleName << "tVARGS"; 218 break; 219 default: 220 assert( false ); 216 221 } // switch 217 222 mangleName << numStream.str(); … … 253 258 // skip if not including qualifiers 254 259 if ( typeMode ) return; 255 260 256 261 if ( ! type->get_forall().empty() ) { 257 262 std::list< std::string > assertionNames; 258 int tcount = 0, dcount = 0, fcount = 0 ;263 int tcount = 0, dcount = 0, fcount = 0, vcount = 0; 259 264 mangleName << "A"; 260 for ( std::list< TypeDecl* >::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) {265 for ( Type::ForallList::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) { 261 266 switch ( (*i)->get_kind() ) { 262 267 case TypeDecl::Any: … … 269 274 fcount++; 270 275 break; 276 case TypeDecl::Ttype: 277 vcount++; 278 break; 279 default: 280 assert( false ); 271 281 } // switch 272 282 varNums[ (*i )->get_name() ] = std::pair< int, int >( nextVarNum++, (int )(*i )->get_kind() ); … … 280 290 } // for 281 291 } // for 282 mangleName << tcount << "_" << dcount << "_" << fcount << "_" ;292 mangleName << tcount << "_" << dcount << "_" << fcount << "_" << vcount << "_"; 283 293 std::copy( assertionNames.begin(), assertionNames.end(), std::ostream_iterator< std::string >( mangleName, "" ) ); 284 294 mangleName << "_";
Note:
See TracChangeset
for help on using the changeset viewer.