Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/ExpressionNode.cc

    rab57786 ra839867  
    1010// Created On       : Sat May 16 13:17:07 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun Aug 21 09:43:31 2016
    13 // Update Count     : 501
     12// Last Modified On : Thu Aug 25 21:39:40 2016
     13// Update Count     : 503
    1414//
    1515
     
    184184        "SizeOf", "AlignOf", "OffsetOf", "?+?", "?-?", "?*?", "?/?", "?%?", "||", "&&",
    185185        "?|?", "?&?", "?^?", "Cast", "?<<?", "?>>?", "?<?", "?>?", "?<=?", "?>=?", "?==?", "?!=?",
    186         "?=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",
     186        "?=?", "?@=?", "?*=?", "?/=?", "?%=?", "?+=?", "?-=?", "?<<=?", "?>>=?", "?&=?", "?^=?", "?|=?",
    187187        "?[?]", "...",
    188188        // monadic
     
    191191
    192192Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
    193         Type *targetType = decl_node->buildType();
     193        Type *targetType = maybeMoveBuildType( decl_node );
    194194        if ( dynamic_cast< VoidType * >( targetType ) ) {
    195195                delete targetType;
     
    221221}
    222222Expression *build_sizeOftype( DeclarationNode *decl_node ) {
    223         Expression* ret = new SizeofExpr( decl_node->buildType() );
    224         delete decl_node;
    225         return ret;
     223        return new SizeofExpr( maybeMoveBuildType( decl_node ) );
    226224}
    227225Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
     
    229227}
    230228Expression *build_alignOftype( DeclarationNode *decl_node ) {
    231         return new AlignofExpr( decl_node->buildType() );
     229        return new AlignofExpr( maybeMoveBuildType( decl_node) );
    232230}
    233231Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) {
    234         Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() );
    235         delete decl_node;
     232        Expression* ret = new UntypedOffsetofExpr( maybeMoveBuildType( decl_node ), member->get_name() );
    236233        delete member;
    237234        return ret;
     
    277274}
    278275Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) {
    279         return new AttrExpr( var, decl_node->buildType() );
     276        return new AttrExpr( var, maybeMoveBuildType( decl_node ) );
    280277}
    281278
     
    304301}
    305302Expression *build_typevalue( DeclarationNode *decl ) {
    306         return new TypeExpr( decl->buildType() );
     303        return new TypeExpr( maybeMoveBuildType( decl ) );
    307304}
    308305
Note: See TracChangeset for help on using the changeset viewer.