Changes in src/InitTweak/InitTweak.cc [a61ad31:65dc863]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/InitTweak.cc
ra61ad31 r65dc863 14 14 public: 15 15 bool hasDesignations = false; 16 virtual void visit( Designation * des ) { 17 if ( ! des->get_designators().empty() ) hasDesignations = true; 18 else Visitor::visit( des ); 19 } 16 template<typename Init> 17 void handleInit( Init * init ) { 18 if ( ! init->get_designators().empty() ) hasDesignations = true; 19 else Visitor::visit( init ); 20 } 21 virtual void visit( SingleInit * singleInit ) { handleInit( singleInit); } 22 virtual void visit( ListInit * listInit ) { handleInit( listInit); } 20 23 }; 21 24 … … 380 383 template<typename CallExpr> 381 384 Expression *& callArg( CallExpr * callExpr, unsigned int pos ) { 382 if ( pos >= callExpr->get_args().size() ) assertf( false, " getCallArg for argument that doesn't exist: (%u); %s.", pos, toString( callExpr ).c_str());385 if ( pos >= callExpr->get_args().size() ) assertf( false, "asking for argument that doesn't exist. Return NULL/throw exception?" ); 383 386 for ( Expression *& arg : callExpr->get_args() ) { 384 387 if ( pos == 0 ) return arg; … … 458 461 } else if ( ArrayType * arrayType = dynamic_cast< ArrayType * >( type ) ) { 459 462 return arrayType->get_base(); 460 } else if ( ReferenceType * refType = dynamic_cast< ReferenceType * >( type ) ) {461 return refType->get_base();462 463 } else { 463 464 return NULL; … … 545 546 if ( ftype->get_parameters().size() != 2 ) return 0; 546 547 547 Type * t1 = getPointerBase( ftype->get_parameters().front()->get_type());548 Type * t1 = ftype->get_parameters().front()->get_type(); 548 549 Type * t2 = ftype->get_parameters().back()->get_type(); 549 assert( t1 ); 550 551 if ( ResolvExpr::typesCompatibleIgnoreQualifiers( t1, t2, SymTab::Indexer() ) ) { 550 PointerType * ptrType = dynamic_cast< PointerType * > ( t1 ); 551 assert( ptrType ); 552 553 if ( ResolvExpr::typesCompatibleIgnoreQualifiers( ptrType->get_base(), t2, SymTab::Indexer() ) ) { 552 554 return function; 553 555 } else {
Note:
See TracChangeset
for help on using the changeset viewer.