Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r5bf685f rca9d65e  
    3535#include "Common/SemanticError.h"  // for SemanticError
    3636#include "Common/UniqueName.h"     // for UniqueName
    37 #include "Common/utility.h"        // for copy, spliceBegin
     37#include "Common/utility.h"        // for maybeClone
    3838#include "Parser/ExpressionNode.h" // for ExpressionNode
    3939#include "Parser/InitializerNode.h"// for InitializerNode
     
    4141#include "TypeData.h"              // for TypeData, TypeData::Aggregate_t
    4242#include "TypedefTable.h"          // for TypedefTable
     43
     44class Initializer;
    4345
    4446extern TypedefTable typedefTable;
     
    99101DeclarationNode * DeclarationNode::clone() const {
    100102        DeclarationNode * newnode = new DeclarationNode;
    101         newnode->set_next( maybeCopy( get_next() ) );
     103        newnode->set_next( maybeClone( get_next() ) );
    102104        newnode->name = name ? new string( *name ) : nullptr;
    103105
    104106        newnode->builtin = NoBuiltinType;
    105         newnode->type = maybeCopy( type );
     107        newnode->type = maybeClone( type );
    106108        newnode->inLine = inLine;
    107109        newnode->storageClasses = storageClasses;
    108110        newnode->funcSpecs = funcSpecs;
    109         newnode->bitfieldWidth = maybeCopy( bitfieldWidth );
    110         newnode->enumeratorValue.reset( maybeCopy( enumeratorValue.get() ) );
     111        newnode->bitfieldWidth = maybeClone( bitfieldWidth );
     112        newnode->enumeratorValue.reset( maybeClone( enumeratorValue.get() ) );
    111113        newnode->hasEllipsis = hasEllipsis;
    112114        newnode->linkage = linkage;
    113115        newnode->asmName = maybeCopy( asmName );
    114116        newnode->attributes = attributes;
    115         newnode->initializer = maybeCopy( initializer );
     117        newnode->initializer = maybeClone( initializer );
    116118        newnode->extension = extension;
    117         newnode->asmStmt = maybeCopy( asmStmt );
     119        newnode->asmStmt = maybeClone( asmStmt );
    118120        newnode->error = error;
    119121
    120122//      newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;
    121123        newnode->variable.tyClass = variable.tyClass;
    122         newnode->variable.assertions = maybeCopy( variable.assertions );
    123         newnode->variable.initializer = maybeCopy( variable.initializer );
    124 
    125         newnode->assert.condition = maybeCopy( assert.condition );
     124        newnode->variable.assertions = maybeClone( variable.assertions );
     125        newnode->variable.initializer = maybeClone( variable.initializer );
     126
     127        newnode->assert.condition = maybeClone( assert.condition );
    126128        newnode->assert.message = maybeCopy( assert.message );
    127129        return newnode;
     
    662664                                dst->base->aggInst.aggregate = src;
    663665                                if ( src->kind == TypeData::Aggregate ) {
    664                                         dst->base->aggInst.params = maybeCopy( src->aggregate.actuals );
     666                                        dst->base->aggInst.params = maybeClone( src->aggregate.actuals );
    665667                                } // if
    666668                                dst->base->qualifiers |= src->qualifiers;
     
    692694                                        if ( o->type->kind == TypeData::Aggregate ) {
    693695                                                type->aggInst.hoistType = o->type->aggregate.body;
    694                                                 type->aggInst.params = maybeCopy( o->type->aggregate.actuals );
     696                                                type->aggInst.params = maybeClone( o->type->aggregate.actuals );
    695697                                        } else {
    696698                                                type->aggInst.hoistType = o->type->enumeration.body;
     
    858860                                p->type->base->aggInst.aggregate = type;
    859861                                if ( type->kind == TypeData::Aggregate ) {
    860                                         p->type->base->aggInst.params = maybeCopy( type->aggregate.actuals );
     862                                        p->type->base->aggInst.params = maybeClone( type->aggregate.actuals );
    861863                                } // if
    862864                                p->type->base->qualifiers |= type->qualifiers;
     
    895897                        lastArray->base->aggInst.aggregate = type;
    896898                        if ( type->kind == TypeData::Aggregate ) {
    897                                 lastArray->base->aggInst.params = maybeCopy( type->aggregate.actuals );
     899                                lastArray->base->aggInst.params = maybeClone( type->aggregate.actuals );
    898900                        } // if
    899901                        lastArray->base->qualifiers |= type->qualifiers;
     
    948950DeclarationNode * DeclarationNode::cloneType( string * name ) {
    949951        DeclarationNode * newnode = newName( name );
    950         newnode->type = maybeCopy( type );
     952        newnode->type = maybeClone( type );
    951953        newnode->copySpecifiers( this );
    952954        return newnode;
     
    982984                } // if
    983985
    984                 newType->forall = maybeCopy( type->forall );
     986                newType->forall = maybeClone( type->forall );
    985987                if ( ! o->type ) {
    986988                        o->type = newType;
Note: See TracChangeset for help on using the changeset viewer.