Changes in / [79970ed:0555f4b]


Ignore:
Location:
src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r79970ed r0555f4b  
    5050        newnode->isInline = isInline;
    5151        newnode->isNoreturn = isNoreturn;
    52         newnode->bitfieldWidth = bitfieldWidth;
     52        newnode->bitfieldWidth = maybeClone( bitfieldWidth );
    5353        newnode->hasEllipsis = hasEllipsis;
    54         newnode->initializer = initializer;
     54        newnode->initializer = maybeClone( initializer );
    5555        newnode->set_next( maybeClone( get_next() ) );
    5656        newnode->linkage = linkage;
     
    804804                                        *out++ = decl;
    805805                                } // if
     806                                delete extr;
    806807                        } // if
    807808                        Declaration *decl = cur->build();
  • src/Parser/ParseNode.h

    r79970ed r0555f4b  
    109109        ExpressionNode( const ExpressionNode &other );
    110110        virtual ~ExpressionNode() {}
    111         virtual ExpressionNode *clone() const { assert( false ); return nullptr; }
     111        virtual ExpressionNode *clone() const { return expr ? new ExpressionNode( expr->clone() ) : nullptr; }
    112112
    113113        bool get_extension() const { return extension; }
  • src/Parser/StatementNode.cc

    r79970ed r0555f4b  
    4444                        agg = decl;
    4545                } // if
    46                 stmt.reset( new DeclStmt( noLabels, maybeBuild< Declaration >(agg) ) );
     46                stmt.reset( new DeclStmt( noLabels, maybeMoveBuild< Declaration >(agg) ) );
    4747        } else {
    4848                assert( false );
  • src/Parser/TypeData.cc

    r79970ed r0555f4b  
    182182                break;
    183183          case Array:
    184                 newtype->array->dimension = array->dimension;
     184                newtype->array->dimension = maybeClone( array->dimension );
    185185                newtype->array->isVarLen = array->isVarLen;
    186186                newtype->array->isStatic = array->isStatic;
  • src/SynTree/Initializer.cc

    r79970ed r0555f4b  
    4343
    4444SingleInit::~SingleInit() {
     45        delete value;
    4546        deleteAll(designators);
    4647}
Note: See TracChangeset for help on using the changeset viewer.