Changeset 78a0b88 for src/Parser
- Timestamp:
- Sep 1, 2017, 3:33:25 PM (7 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:
- bc3127d
- Parents:
- e8ccca3 (diff), a01f7c94 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- src/Parser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.cc
re8ccca3 r78a0b88 360 360 Expression * build_unary_ptr( OperKinds op, ExpressionNode * expr_node ) { 361 361 std::list< Expression * > args; 362 args.push_back( maybeMoveBuild< Expression >(expr_node) ); // xxx 362 args.push_back( maybeMoveBuild< Expression >(expr_node) ); // xxx -- this is exactly the same as the val case now, refactor this code. 363 363 return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args ); 364 364 } // build_unary_ptr -
src/Parser/StatementNode.cc
re8ccca3 r78a0b88 99 99 } // if 100 100 101 Expression * cond = ctl->condition ? maybeMoveBuild< Expression >(ctl->condition) : new VariableExpr( dynamic_cast<DeclarationWithType *>( dynamic_cast<DeclStmt *>( init.back() )->decl ) ); 101 Expression * cond = nullptr; 102 if ( ctl->condition ) { 103 // compare the provided condition against 0 104 cond = notZeroExpr( maybeMoveBuild< Expression >(ctl->condition) ); 105 } else { 106 for ( Statement * stmt : init ) { 107 // build the && of all of the declared variables compared against 0 108 DeclStmt * declStmt = safe_dynamic_cast< DeclStmt * >( stmt ); 109 DeclarationWithType * dwt = safe_dynamic_cast< DeclarationWithType * >( declStmt->decl ); 110 Expression * nze = notZeroExpr( new VariableExpr( dwt ) ); 111 cond = cond ? new LogicalExpr( cond, nze, true ) : nze; 112 } 113 } 102 114 delete ctl; 103 return new IfStmt( noLabels, notZeroExpr( cond ), thenb, elseb, init );115 return new IfStmt( noLabels, cond, thenb, elseb, init ); 104 116 } 105 117
Note: See TracChangeset
for help on using the changeset viewer.