Changes in src/Parser/ExpressionNode.cc [4f147cc:ab57786]
- File:
-
- 1 edited
-
src/Parser/ExpressionNode.cc (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.cc
r4f147cc rab57786 10 10 // Created On : Sat May 16 13:17:07 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Aug 16 00:09:20201613 // Update Count : 49512 // Last Modified On : Sun Aug 21 09:43:31 2016 13 // Update Count : 501 14 14 // 15 15 … … 120 120 } // if 121 121 122 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) ); 122 Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[Unsigned][size] ), str ) ); 123 delete &str; // created by lex 124 return ret; 123 125 } // build_constantInteger 124 126 … … 150 152 } // if 151 153 152 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) ); 154 Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, kind[complx][size] ), str ) ); 155 delete &str; // created by lex 156 return ret; 153 157 } // build_constantFloat 154 158 155 159 Expression *build_constantChar( const std::string & str ) { 156 return new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) ); 160 Expression * ret = new ConstantExpr( Constant( new BasicType( emptyQualifiers, BasicType::Char ), str ) ); 161 delete &str; // created by lex 162 return ret; 157 163 } // build_constantChar 158 164 … … 163 169 toString( str.size()+1-2 ) ) ), // +1 for '\0' and -2 for '"' 164 170 false, false ); 165 return new ConstantExpr( Constant( at, str ) ); 171 ConstantExpr * ret = new ConstantExpr( Constant( at, str ) ); 172 delete &str; // created by lex 173 return ret; 166 174 } // build_constantStr 167 175 … … 183 191 184 192 Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) { 185 Type *targetType = maybeMoveBuildType( decl_node);193 Type *targetType = decl_node->buildType(); 186 194 if ( dynamic_cast< VoidType * >( targetType ) ) { 187 195 delete targetType; … … 213 221 } 214 222 Expression *build_sizeOftype( DeclarationNode *decl_node ) { 215 return new SizeofExpr( maybeMoveBuildType( decl_node ) ); 223 Expression* ret = new SizeofExpr( decl_node->buildType() ); 224 delete decl_node; 225 return ret; 216 226 } 217 227 Expression *build_alignOfexpr( ExpressionNode *expr_node ) { … … 219 229 } 220 230 Expression *build_alignOftype( DeclarationNode *decl_node ) { 221 return new AlignofExpr( maybeMoveBuildType( decl_node) );231 return new AlignofExpr( decl_node->buildType() ); 222 232 } 223 233 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) { 224 Expression* ret = new UntypedOffsetofExpr( maybeMoveBuildType( decl_node ), member->get_name() ); 234 Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 235 delete decl_node; 225 236 delete member; 226 237 return ret; … … 266 277 } 267 278 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) { 268 return new AttrExpr( var, maybeMoveBuildType( decl_node) );279 return new AttrExpr( var, decl_node->buildType() ); 269 280 } 270 281 … … 293 304 } 294 305 Expression *build_typevalue( DeclarationNode *decl ) { 295 return new TypeExpr( maybeMoveBuildType( decl) );306 return new TypeExpr( decl->buildType() ); 296 307 } 297 308
Note:
See TracChangeset
for help on using the changeset viewer.