Changeset 064cb18
- Timestamp:
- Feb 3, 2017, 4:02:13 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:
- dbe8f244
- Parents:
- a9fc180
- git-author:
- Rob Schluntz <rschlunt@…> (02/03/17 15:56:16)
- git-committer:
- Rob Schluntz <rschlunt@…> (02/03/17 16:02:13)
- Location:
- src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/GenPoly/Box.cc
ra9fc180 r064cb18 1307 1307 } 1308 1308 } 1309 // errors should have been caught by this point, remove initializers from parameters to allow correct codegen of default arguments 1310 for ( Declaration * param : functionDecl->get_functionType()->get_parameters() ) { 1311 if ( ObjectDecl * obj = dynamic_cast< ObjectDecl * >( param ) ) { 1312 delete obj->get_init(); 1313 obj->set_init( nullptr ); 1314 } 1315 } 1309 1316 return functionDecl; 1310 1317 } -
src/ResolvExpr/AlternativeFinder.cc
ra9fc180 r064cb18 403 403 // End of actuals - Handle default values 404 404 if ( SingleInit *si = dynamic_cast<SingleInit *>( defaultValue )) { 405 // so far, only constant expressions are accepted as default values 406 if ( ConstantExpr *cnstexpr = dynamic_cast<ConstantExpr *>( si->get_value()) ) { 407 if ( Constant *cnst = dynamic_cast<Constant *>( cnstexpr->get_constant() ) ) { 408 if ( unify( formalType, cnst->get_type(), resultEnv, resultNeed, resultHave, openVars, indexer ) ) { 409 // xxx - Don't know if this is right 410 *out++ = cnstexpr->clone(); 411 return true; 405 if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( si->get_value() ) ) { 406 // so far, only constant expressions are accepted as default values 407 if ( ConstantExpr *cnstexpr = dynamic_cast<ConstantExpr *>( castExpr->get_arg() ) ) { 408 if ( Constant *cnst = dynamic_cast<Constant *>( cnstexpr->get_constant() ) ) { 409 if ( unify( formalType, cnst->get_type(), resultEnv, resultNeed, resultHave, openVars, indexer ) ) { 410 *out++ = cnstexpr->clone(); 411 return true; 412 } // if 412 413 } // if 413 414 } // if 414 } // if415 } 415 416 } // if 416 417 return false; -
src/SymTab/Mangler.cc
ra9fc180 r064cb18 172 172 for ( std::list< Expression* >::const_iterator param = params.begin(); param != params.end(); ++param ) { 173 173 TypeExpr *paramType = dynamic_cast< TypeExpr* >( *param ); 174 assert (paramType && "Aggregate parameters should be type expressions");174 assertf(paramType, "Aggregate parameters should be type expressions: %s", toString(*param).c_str()); 175 175 maybeAccept( paramType->get_type(), *this ); 176 176 }
Note: See TracChangeset
for help on using the changeset viewer.