Changes in src/SymTab/Mangler.cc [8bf784a:89e6ffc]
- File:
-
- 1 edited
-
src/SymTab/Mangler.cc (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.cc
r8bf784a r89e6ffc 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 );221 216 } // switch 222 217 mangleName << numStream.str(); … … 258 253 // skip if not including qualifiers 259 254 if ( typeMode ) return; 260 255 261 256 if ( ! type->get_forall().empty() ) { 262 257 std::list< std::string > assertionNames; 263 int tcount = 0, dcount = 0, fcount = 0 , vcount = 0;258 int tcount = 0, dcount = 0, fcount = 0; 264 259 mangleName << "A"; 265 for ( Type::ForallList::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) {260 for ( std::list< TypeDecl* >::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) { 266 261 switch ( (*i)->get_kind() ) { 267 262 case TypeDecl::Any: … … 274 269 fcount++; 275 270 break; 276 case TypeDecl::Ttype:277 vcount++;278 break;279 default:280 assert( false );281 271 } // switch 282 272 varNums[ (*i )->get_name() ] = std::pair< int, int >( nextVarNum++, (int )(*i )->get_kind() ); … … 290 280 } // for 291 281 } // for 292 mangleName << tcount << "_" << dcount << "_" << fcount << "_" << vcount << "_";282 mangleName << tcount << "_" << dcount << "_" << fcount << "_"; 293 283 std::copy( assertionNames.begin(), assertionNames.end(), std::ostream_iterator< std::string >( mangleName, "" ) ); 294 284 mangleName << "_";
Note:
See TracChangeset
for help on using the changeset viewer.