Changes in src/ResolvExpr/Resolver.cc [eeaea53:1d2b64f]
- File:
-
- 1 edited
-
src/ResolvExpr/Resolver.cc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/ResolvExpr/Resolver.cc
reeaea53 r1d2b64f 404 404 template< typename AggrInst > 405 405 TypeSubstitution makeGenericSubstitutuion( AggrInst * inst ) { 406 assert( inst );407 assert( inst->get_baseParameters() );408 406 std::list< TypeDecl * > baseParams = *inst->get_baseParameters(); 409 407 std::list< Expression * > typeSubs = inst->get_parameters(); … … 446 444 447 445 void Resolver::resolveAggrInit( ReferenceToType * inst, InitIterator & init, InitIterator & initEnd ) { 446 448 447 if ( StructInstType * sit = dynamic_cast< StructInstType * >( inst ) ) { 449 448 TypeSubstitution sub = makeGenericSubstitutuion( sit ); 450 449 StructDecl * st = sit->get_baseStruct(); 451 if(st->get_members().empty()) return;452 450 // want to resolve each initializer to the members of the struct, 453 451 // but if there are more initializers than members we should stop … … 457 455 } 458 456 } else if ( UnionInstType * uit = dynamic_cast< UnionInstType * >( inst ) ) { 459 TypeSubstitution sub = makeGenericSubstitutuion( uit );457 TypeSubstitution sub = makeGenericSubstitutuion( sit ); 460 458 UnionDecl * un = uit->get_baseUnion(); 461 if(un->get_members().empty()) return;462 459 // only resolve to the first member of a union 463 460 resolveSingleAggrInit( *un->get_members().begin(), init, initEnd, sub );
Note:
See TracChangeset
for help on using the changeset viewer.