Changes in src/GenPoly/Lvalue.cc [cf16f94:f8b961b]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/GenPoly/Lvalue.cc
rcf16f94 rf8b961b 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 15 15:33:13 201513 // Update Count : 312 // Last Modified On : Tue May 19 07:41:33 2015 13 // Update Count : 1 14 14 // 15 15 … … 35 35 const std::list<Label> noLabels; 36 36 37 /// Replace uses of lvalue returns with appropriate pointers 37 38 class Pass1 : public Mutator { 38 39 public: … … 46 47 }; 47 48 49 /// Replace declarations of lvalue returns with appropriate pointers 48 50 class Pass2 : public Visitor { 49 51 public: … … 120 122 if ( retval && retStmt->get_expr() ) { 121 123 assert( ! retStmt->get_expr()->get_results().empty() ); 124 while ( CastExpr *castExpr = dynamic_cast< CastExpr* >( retStmt->get_expr() ) ) { 125 retStmt->set_expr( castExpr->get_arg() ); 126 retStmt->get_expr()->set_env( castExpr->get_env() ); 127 castExpr->set_env( 0 ); 128 castExpr->set_arg( 0 ); 129 delete castExpr; 130 } // while 122 131 if ( retStmt->get_expr()->get_results().front()->get_isLvalue() ) { 123 // ***** Code Removal ***** because casts may be stripped already124 125 // strip casts because not allowed to take address of cast126 // while ( CastExpr *castExpr = dynamic_cast< CastExpr* >( retStmt->get_expr() ) ) {127 // retStmt->set_expr( castExpr->get_arg() );128 // retStmt->get_expr()->set_env( castExpr->get_env() );129 // castExpr->set_env( 0 );130 // castExpr->set_arg( 0 );131 // delete castExpr;132 // } // while133 132 retStmt->set_expr( new AddressExpr( retStmt->get_expr()->acceptMutator( *this ) ) ); 134 133 } else {
Note:
See TracChangeset
for help on using the changeset viewer.