Changeset b617e4b for src/InitTweak
- Timestamp:
- Apr 14, 2016, 5:33:37 PM (8 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- dc2e7e0
- Parents:
- 356189a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/InitTweak/FixInit.cc
r356189a rb617e4b 10 10 // Created On : Wed Jan 13 16:29:30 2016 11 11 // Last Modified By : Rob Schluntz 12 // Last Modified On : Thu Apr 14 1 5:19:11 201612 // Last Modified On : Thu Apr 14 17:29:21 2016 13 13 // Update Count : 30 14 14 // … … 152 152 153 153 // resolve function call 154 Expression * newExpr = ResolvExpr::findVoidExpression( impCpCtorExpr->get_callExpr(), *this ); 154 ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( ResolvExpr::findVoidExpression( impCpCtorExpr->get_callExpr(), *this ) ); 155 assert( appExpr ); 155 156 delete impCpCtorExpr->get_callExpr(); 156 ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( newExpr );157 assert( appExpr );158 157 impCpCtorExpr->set_callExpr( appExpr ); 158 159 // Visitor::visit( impCpCtorExpr ); 159 160 160 161 // take each argument and attempt to copy construct it. … … 163 164 assert( ! arg->get_results().empty() ); 164 165 ObjectDecl * tmp = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 ); 166 tmp->get_type()->set_isConst( false ); 165 167 166 168 // create and resolve copy constructor … … 186 188 for ( Type * result : appExpr->get_results() ) { 187 189 ObjectDecl * ret = new ObjectDecl( retNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, result->clone(), new SingleInit( impCpCtorExpr->get_callExpr() ) ); 190 ret->get_type()->set_isConst( false ); 188 191 impCpCtorExpr->get_returnDecls().push_back( ret ); 189 192 impCpCtorExpr->get_dtors().push_front( makeCtorDtor( "^?{}", ret ) ); … … 195 198 impCpCtorExpr = dynamic_cast< ImplicitCopyCtorExpr * >( Mutator::mutate( impCpCtorExpr ) ); 196 199 assert( impCpCtorExpr ); 197 std::cerr << "Running FixCopyCtors on implicit copy ctor..." << std::endl;198 200 199 201 std::list< Expression * > & copyCtors = impCpCtorExpr->get_copyCtors();
Note: See TracChangeset
for help on using the changeset viewer.