Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    r4f147cc rab57786  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Aug 16 00:09:20 2016
    13 // Update Count     : 495
     12// Last Modified On : Sun Aug 21 09:43:31 2016
     13// Update Count     : 501
    1414//
    1515
     
    120120        } // if
    121121
    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;
    123125} // build_constantInteger
    124126
     
    150152        } // if
    151153
    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;
    153157} // build_constantFloat
    154158
    155159Expression *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;
    157163} // build_constantChar
    158164
     
    163169                                                                                        toString( str.size()+1-2 ) ) ),  // +1 for '\0' and -2 for '"'
    164170                                                                   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;
    166174} // build_constantStr
    167175
     
    183191
    184192Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
    185         Type *targetType = maybeMoveBuildType( decl_node );
     193        Type *targetType = decl_node->buildType();
    186194        if ( dynamic_cast< VoidType * >( targetType ) ) {
    187195                delete targetType;
     
    213221}
    214222Expression *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;
    216226}
    217227Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
     
    219229}
    220230Expression *build_alignOftype( DeclarationNode *decl_node ) {
    221         return new AlignofExpr( maybeMoveBuildType( decl_node) );
     231        return new AlignofExpr( decl_node->buildType() );
    222232}
    223233Expression *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;
    225236        delete member;
    226237        return ret;
     
    266277}
    267278Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) {
    268         return new AttrExpr( var, maybeMoveBuildType( decl_node ) );
     279        return new AttrExpr( var, decl_node->buildType() );
    269280}
    270281
     
    293304}
    294305Expression *build_typevalue( DeclarationNode *decl ) {
    295         return new TypeExpr( maybeMoveBuildType( decl ) );
     306        return new TypeExpr( decl->buildType() );
    296307}
    297308
Note: See TracChangeset for help on using the changeset viewer.