Changes in src/Parser/ExpressionNode.cc [ac71a86:4f147cc]
- File:
-
- 1 edited
-
src/Parser/ExpressionNode.cc (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/ExpressionNode.cc
rac71a86 r4f147cc 183 183 184 184 Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) { 185 Type *targetType = decl_node->buildType();185 Type *targetType = maybeMoveBuildType( decl_node ); 186 186 if ( dynamic_cast< VoidType * >( targetType ) ) { 187 187 delete targetType; … … 213 213 } 214 214 Expression *build_sizeOftype( DeclarationNode *decl_node ) { 215 Expression* ret = new SizeofExpr( decl_node->buildType() ); 216 delete decl_node; 217 return ret; 215 return new SizeofExpr( maybeMoveBuildType( decl_node ) ); 218 216 } 219 217 Expression *build_alignOfexpr( ExpressionNode *expr_node ) { … … 221 219 } 222 220 Expression *build_alignOftype( DeclarationNode *decl_node ) { 223 return new AlignofExpr( decl_node->buildType() );221 return new AlignofExpr( maybeMoveBuildType( decl_node) ); 224 222 } 225 223 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) { 226 Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() ); 227 delete decl_node; 224 Expression* ret = new UntypedOffsetofExpr( maybeMoveBuildType( decl_node ), member->get_name() ); 228 225 delete member; 229 226 return ret; … … 269 266 } 270 267 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) { 271 return new AttrExpr( var, decl_node->buildType() );268 return new AttrExpr( var, maybeMoveBuildType( decl_node ) ); 272 269 } 273 270 … … 296 293 } 297 294 Expression *build_typevalue( DeclarationNode *decl ) { 298 return new TypeExpr( decl->buildType() );295 return new TypeExpr( maybeMoveBuildType( decl ) ); 299 296 } 300 297
Note:
See TracChangeset
for help on using the changeset viewer.