Changeset edbdbe6
- Timestamp:
- May 11, 2017, 5:39:06 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:
- 65aca88, ce206b4
- Parents:
- 9738e74
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/FixInit.cc
r9738e74 redbdbe6 656 656 unqExpr->set_result( maybeClone( unqExpr->get_expr()->get_result() ) ); 657 657 if ( unqCount[ unqExpr->get_id() ] == 0 ) { // insert destructor after the last use of the unique expression 658 stmtsToAdd .splice( stmtsToAddAfter.end(), dtors[ unqExpr->get_id() ] );658 stmtsToAddAfter.splice( stmtsToAddAfter.end(), dtors[ unqExpr->get_id() ] ); 659 659 } 660 660 if ( addDeref.count( unqExpr->get_id() ) ) { … … 668 668 stmtsToAdd.splice( stmtsToAdd.end(), fixer.stmtsToAdd ); 669 669 unqMap[unqExpr->get_id()] = unqExpr; 670 if ( unqCount[ unqExpr->get_id() ] == 0 ) { // insert destructor after the last use of the unique expression 671 stmtsToAddAfter.splice( stmtsToAddAfter.end(), dtors[ unqExpr->get_id() ] ); 672 } else { // remember dtors for last instance of unique expr 673 dtors[ unqExpr->get_id() ] = fixer.stmtsToAddAfter; 674 } 670 675 if ( UntypedExpr * deref = dynamic_cast< UntypedExpr * >( unqExpr->get_expr() ) ) { 671 if ( unqCount[ unqExpr->get_id() ] == 0 ) { // insert destructor after the last use of the unique expression672 stmtsToAdd.splice( stmtsToAddAfter.end(), dtors[ unqExpr->get_id() ] );673 } else { // remember dtors for last instance of unique expr674 dtors[ unqExpr->get_id() ] = fixer.stmtsToAddAfter;675 }676 676 // unique expression is now a dereference, because the inner expression is an lvalue returning function call. 677 677 // Normalize the expression by dereferencing the unique expression, rather than the inner expression
Note: See TracChangeset
for help on using the changeset viewer.