Changeset ce8c12f for src/InitTweak
- Timestamp:
- May 15, 2017, 11:30:26 AM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- d36c117
- Parents:
- 65aca88
- Location:
- src/InitTweak
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/InitTweak/FixInit.cc ¶
r65aca88 rce8c12f 400 400 401 401 bool ResolveCopyCtors::skipCopyConstruct( Type * type ) { 402 return dynamic_cast< VarArgsType * >( type ) || GenPoly::getFunctionType( type ) || Tuples::isTtype( type );402 return dynamic_cast< VarArgsType * >( type ) || dynamic_cast< ReferenceType * >( type ) || GenPoly::getFunctionType( type ) || Tuples::isTtype( type ); 403 403 } 404 404 -
TabularUnified src/InitTweak/GenInit.cc ¶
r65aca88 rce8c12f 243 243 std::list< DeclarationWithType * > & params = GenPoly::getFunctionType( dwt->get_type() )->get_parameters(); 244 244 assert( ! params.empty() ); 245 PointerType * type = safe_dynamic_cast< PointerType * >( params.front()->get_type() ); 246 managedTypes.insert( SymTab::Mangler::mangle( type->get_base() ) ); 245 Type * type = InitTweak::getPointerBase( params.front()->get_type() ); 246 assert( type ); 247 managedTypes.insert( SymTab::Mangler::mangle( type ) ); 247 248 } 248 249 } -
TabularUnified src/InitTweak/InitTweak.cc ¶
r65aca88 rce8c12f 461 461 } else if ( ArrayType * arrayType = dynamic_cast< ArrayType * >( type ) ) { 462 462 return arrayType->get_base(); 463 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * >( type ) ) { 464 return refType->get_base(); 463 465 } else { 464 466 return NULL; … … 544 546 if ( ftype->get_parameters().size() != 2 ) return 0; 545 547 546 Type * t1 = ftype->get_parameters().front()->get_type();548 Type * t1 = getPointerBase( ftype->get_parameters().front()->get_type() ); 547 549 Type * t2 = ftype->get_parameters().back()->get_type(); 548 PointerType * ptrType = dynamic_cast< PointerType * > ( t1 ); 549 assert( ptrType ); 550 551 if ( ResolvExpr::typesCompatibleIgnoreQualifiers( ptrType->get_base(), t2, SymTab::Indexer() ) ) { 550 assert( t1 ); 551 552 if ( ResolvExpr::typesCompatibleIgnoreQualifiers( t1, t2, SymTab::Indexer() ) ) { 552 553 return function; 553 554 } else {
Note: See TracChangeset
for help on using the changeset viewer.