Changes in src/SymTab/Validate.cc [bd7e609:60c3b06c]
- File:
-
- 1 edited
-
src/SymTab/Validate.cc (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Validate.cc
rbd7e609 r60c3b06c 153 153 void previsit( ObjectDecl * object ); 154 154 void previsit( FunctionDecl * func ); 155 void previsit( StructDecl * aggrDecl );156 void previsit( UnionDecl * aggrDecl );157 155 }; 158 156 … … 272 270 acceptAll( translationUnit, epc ); // must happen before VerifyCtorDtorAssign, because void return objects should not exist 273 271 VerifyCtorDtorAssign::verify( translationUnit ); // must happen before autogen, because autogen examines existing ctor/dtors 274 ReturnChecker::checkFunctionReturns( translationUnit );275 InitTweak::fixReturnStatements( translationUnit ); // must happen before autogen276 272 Concurrency::applyKeywords( translationUnit ); 277 acceptAll( translationUnit, fpd ); // must happen before autogenerateRoutines, after Concurrency::applyKeywords because uniqueIds must be set on declaration before resolution278 273 autogenerateRoutines( translationUnit ); // moved up, used to be below compoundLiteral - currently needs EnumAndPointerDecay 279 274 Concurrency::implementMutexFuncs( translationUnit ); 280 275 Concurrency::implementThreadStarter( translationUnit ); 276 ReturnChecker::checkFunctionReturns( translationUnit ); 281 277 mutateAll( translationUnit, compoundliteral ); 278 acceptAll( translationUnit, fpd ); 282 279 ArrayLength::computeLength( translationUnit ); 283 acceptAll( translationUnit, finder ); // xxx - remove this pass soon280 acceptAll( translationUnit, finder ); 284 281 mutateAll( translationUnit, labelAddrFixer ); 285 282 } … … 372 369 DWTIterator begin( dwts.begin() ), end( dwts.end() ); 373 370 if ( begin == end ) return; 374 PassVisitor<FixFunction>fixer;371 FixFunction fixer; 375 372 DWTIterator i = begin; 376 373 *i = (*i)->acceptMutator( fixer ); 377 if ( fixer. pass.isVoid) {374 if ( fixer.get_isVoid() ) { 378 375 DWTIterator j = i; 379 376 ++i; … … 386 383 ++i; 387 384 for ( ; i != end; ++i ) { 388 PassVisitor<FixFunction>fixer;385 FixFunction fixer; 389 386 *i = (*i)->acceptMutator( fixer ); 390 if ( fixer. pass.isVoid) {387 if ( fixer.get_isVoid() ) { 391 388 throw SemanticError( "invalid type void in function type ", func ); 392 389 } // if … … 600 597 // apply FixFunction to every assertion to check for invalid void type 601 598 for ( DeclarationWithType *& assertion : type->assertions ) { 602 PassVisitor<FixFunction>fixer;599 FixFunction fixer; 603 600 assertion = assertion->acceptMutator( fixer ); 604 if ( fixer. pass.isVoid) {601 if ( fixer.get_isVoid() ) { 605 602 throw SemanticError( "invalid type void in assertion of function ", node ); 606 603 } // if … … 621 618 forallFixer( func->type->forall, func ); 622 619 func->fixUniqueId(); 623 }624 625 void ForallPointerDecay::previsit( StructDecl * aggrDecl ) {626 forallFixer( aggrDecl->parameters, aggrDecl );627 }628 629 void ForallPointerDecay::previsit( UnionDecl * aggrDecl ) {630 forallFixer( aggrDecl->parameters, aggrDecl );631 620 } 632 621
Note:
See TracChangeset
for help on using the changeset viewer.