Changeset ed8a0d2 for src/SymTab
- Timestamp:
- May 2, 2017, 7:09:44 PM (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:
- 9042795
- Parents:
- 2055098
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Validate.cc
r2055098 red8a0d2 240 240 ReturnTypeFixer::fix( translationUnit ); // must happen before autogen 241 241 acceptAll( translationUnit, lrt ); // must happen before autogen, because sized flag needs to propagate to generated functions 242 acceptAll( translationUnit, epc ); // must happen before VerifyCtorDtorAssign, because void return objects should not exist 243 VerifyCtorDtorAssign::verify( translationUnit ); // must happen before autogen, because autogen examines existing ctor/dtors 242 244 Concurrency::applyKeywords( translationUnit ); 243 245 autogenerateRoutines( translationUnit ); // moved up, used to be below compoundLiteral - currently needs EnumAndPointerDecayPass 244 246 Concurrency::implementMutexFuncs( translationUnit ); 245 247 Concurrency::implementThreadStarter( translationUnit ); 246 acceptAll( translationUnit, epc );247 248 ReturnChecker::checkFunctionReturns( translationUnit ); 248 249 compoundliteral.mutateDeclarationList( translationUnit ); 249 250 acceptAll( translationUnit, pass3 ); 250 VerifyCtorDtorAssign::verify( translationUnit );251 251 ArrayLength::computeLength( translationUnit ); 252 252 } … … 817 817 throw SemanticError( "Constructors, destructors, and assignment functions require at least one parameter ", funcDecl ); 818 818 } 819 if ( ! dynamic_cast< PointerType * >( params.front()->get_type() ) ) { 819 PointerType * ptrType = dynamic_cast< PointerType * >( params.front()->get_type() ); 820 if ( ! ptrType || ptrType->is_array() ) { 820 821 throw SemanticError( "First parameter of a constructor, destructor, or assignment function must be a pointer ", funcDecl ); 821 822 }
Note: See TracChangeset
for help on using the changeset viewer.