Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    rac71a86 r4f147cc  
    183183
    184184Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
    185         Type *targetType = decl_node->buildType();
     185        Type *targetType = maybeMoveBuildType( decl_node );
    186186        if ( dynamic_cast< VoidType * >( targetType ) ) {
    187187                delete targetType;
     
    213213}
    214214Expression *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 ) );
    218216}
    219217Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
     
    221219}
    222220Expression *build_alignOftype( DeclarationNode *decl_node ) {
    223         return new AlignofExpr( decl_node->buildType() );
     221        return new AlignofExpr( maybeMoveBuildType( decl_node) );
    224222}
    225223Expression *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() );
    228225        delete member;
    229226        return ret;
     
    269266}
    270267Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) {
    271         return new AttrExpr( var, decl_node->buildType() );
     268        return new AttrExpr( var, maybeMoveBuildType( decl_node ) );
    272269}
    273270
     
    296293}
    297294Expression *build_typevalue( DeclarationNode *decl ) {
    298         return new TypeExpr( decl->buildType() );
     295        return new TypeExpr( maybeMoveBuildType( decl ) );
    299296}
    300297
Note: See TracChangeset for help on using the changeset viewer.