Changes in src/SymTab/Validate.cc [7abee38:7e08acf]
- File:
-
- 1 edited
-
src/SymTab/Validate.cc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Validate.cc
r7abee38 r7e08acf 49 49 #include "CodeGen/OperatorTable.h" // for isCtorDtor, isCtorDtorAssign 50 50 #include "ControlStruct/Mutate.h" // for ForExprMutator 51 #include "Common/Stats.h" // for Stats::Heap52 51 #include "Common/PassVisitor.h" // for PassVisitor, WithDeclsToAdd 53 52 #include "Common/ScopedMap.h" // for ScopedMap … … 304 303 PassVisitor<FixQualifiedTypes> fixQual; 305 304 306 Stats::Heap::newPass("validate-A");307 305 acceptAll( translationUnit, hoistDecls ); 308 306 ReplaceTypedef::replaceTypedef( translationUnit ); 309 307 ReturnTypeFixer::fix( translationUnit ); // must happen before autogen 310 308 acceptAll( translationUnit, epc ); // must happen before VerifyCtorDtorAssign, because void return objects should not exist; before LinkReferenceToTypes because it is an indexer and needs correct types for mangling 311 Stats::Heap::newPass("validate-B");312 309 acceptAll( translationUnit, lrt ); // must happen before autogen, because sized flag needs to propagate to generated functions 313 310 mutateAll( translationUnit, fixQual ); // must happen after LinkReferenceToTypes, because aggregate members are accessed 314 311 HoistStruct::hoistStruct( translationUnit ); // must happen after EliminateTypedef, so that aggregate typedefs occur in the correct order 315 312 EliminateTypedef::eliminateTypedef( translationUnit ); // 316 Stats::Heap::newPass("validate-C");317 313 acceptAll( translationUnit, genericParams ); // check as early as possible - can't happen before LinkReferenceToTypes 318 314 VerifyCtorDtorAssign::verify( translationUnit ); // must happen before autogen, because autogen examines existing ctor/dtors 319 315 ReturnChecker::checkFunctionReturns( translationUnit ); 320 316 InitTweak::fixReturnStatements( translationUnit ); // must happen before autogen 321 Stats::Heap::newPass("validate-D");322 317 Concurrency::applyKeywords( translationUnit ); 323 318 acceptAll( translationUnit, fpd ); // must happen before autogenerateRoutines, after Concurrency::applyKeywords because uniqueIds must be set on declaration before resolution 324 319 ControlStruct::hoistControlDecls( translationUnit ); // hoist initialization out of for statements; must happen before autogenerateRoutines 325 320 autogenerateRoutines( translationUnit ); // moved up, used to be below compoundLiteral - currently needs EnumAndPointerDecay 326 Stats::Heap::newPass("validate-E");327 321 Concurrency::implementMutexFuncs( translationUnit ); 328 322 Concurrency::implementThreadStarter( translationUnit ); 329 323 mutateAll( translationUnit, compoundliteral ); 330 324 ResolvExpr::resolveWithExprs( translationUnit ); // must happen before FixObjectType because user-code is resolved and may contain with variables 331 Stats::Heap::newPass("validate-F");332 325 FixObjectType::fix( translationUnit ); 333 326 ArrayLength::computeLength( translationUnit );
Note:
See TracChangeset
for help on using the changeset viewer.