Changes in src/Parser/StatementNode.cc [2065609:a01f7c94]
- File:
-
- 1 edited
-
src/Parser/StatementNode.cc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/StatementNode.cc
r2065609 ra01f7c94 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.