Changes in src/Parser/StatementNode.cc [7ecbb7e:ac71a86]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/StatementNode.cc
r7ecbb7e rac71a86 44 44 agg = decl; 45 45 } // if 46 stmt = new DeclStmt( noLabels, maybeBuild< Declaration >(agg) );46 stmt.reset( new DeclStmt( noLabels, maybeBuild< Declaration >(agg) ) ); 47 47 } else { 48 48 assert( false ); … … 56 56 StatementNode *node = dynamic_cast< StatementNode * >(curr); 57 57 assert( node ); 58 assert( dynamic_cast< CaseStmt * >(node->stmt ) );58 assert( dynamic_cast< CaseStmt * >(node->stmt.get()) ); 59 59 prev = curr; 60 60 } // for … … 64 64 buildMoveList( stmt, stmts ); 65 65 // splice any new Statements to end of current Statements 66 CaseStmt * caseStmt = dynamic_cast< CaseStmt * >(node->stmt );66 CaseStmt * caseStmt = dynamic_cast< CaseStmt * >(node->stmt.get()); 67 67 caseStmt->get_statements().splice( caseStmt->get_statements().end(), stmts ); 68 68 return this; … … 153 153 std::list< Expression * > exps; 154 154 buildMoveList( ctl, exps ); 155 return new ReturnStmt( noLabels, exps.size() > 0 ? exps.back() : nullptr, true ); 155 assertf( exps.size() < 2, "This means we are leaking memory"); 156 return new ReturnStmt( noLabels, !exps.empty() ? exps.back() : nullptr, true ); 156 157 } 157 158
Note:
See TracChangeset
for help on using the changeset viewer.