Changes in src/Parser/DeclarationNode.cc [5bf685f:ca9d65e]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r5bf685f rca9d65e 35 35 #include "Common/SemanticError.h" // for SemanticError 36 36 #include "Common/UniqueName.h" // for UniqueName 37 #include "Common/utility.h" // for copy, spliceBegin37 #include "Common/utility.h" // for maybeClone 38 38 #include "Parser/ExpressionNode.h" // for ExpressionNode 39 39 #include "Parser/InitializerNode.h"// for InitializerNode … … 41 41 #include "TypeData.h" // for TypeData, TypeData::Aggregate_t 42 42 #include "TypedefTable.h" // for TypedefTable 43 44 class Initializer; 43 45 44 46 extern TypedefTable typedefTable; … … 99 101 DeclarationNode * DeclarationNode::clone() const { 100 102 DeclarationNode * newnode = new DeclarationNode; 101 newnode->set_next( maybeC opy( get_next() ) );103 newnode->set_next( maybeClone( get_next() ) ); 102 104 newnode->name = name ? new string( *name ) : nullptr; 103 105 104 106 newnode->builtin = NoBuiltinType; 105 newnode->type = maybeC opy( type );107 newnode->type = maybeClone( type ); 106 108 newnode->inLine = inLine; 107 109 newnode->storageClasses = storageClasses; 108 110 newnode->funcSpecs = funcSpecs; 109 newnode->bitfieldWidth = maybeC opy( bitfieldWidth );110 newnode->enumeratorValue.reset( maybeC opy( enumeratorValue.get() ) );111 newnode->bitfieldWidth = maybeClone( bitfieldWidth ); 112 newnode->enumeratorValue.reset( maybeClone( enumeratorValue.get() ) ); 111 113 newnode->hasEllipsis = hasEllipsis; 112 114 newnode->linkage = linkage; 113 115 newnode->asmName = maybeCopy( asmName ); 114 116 newnode->attributes = attributes; 115 newnode->initializer = maybeC opy( initializer );117 newnode->initializer = maybeClone( initializer ); 116 118 newnode->extension = extension; 117 newnode->asmStmt = maybeC opy( asmStmt );119 newnode->asmStmt = maybeClone( asmStmt ); 118 120 newnode->error = error; 119 121 120 122 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; 121 123 newnode->variable.tyClass = variable.tyClass; 122 newnode->variable.assertions = maybeC opy( variable.assertions );123 newnode->variable.initializer = maybeC opy( variable.initializer );124 125 newnode->assert.condition = maybeC opy( assert.condition );124 newnode->variable.assertions = maybeClone( variable.assertions ); 125 newnode->variable.initializer = maybeClone( variable.initializer ); 126 127 newnode->assert.condition = maybeClone( assert.condition ); 126 128 newnode->assert.message = maybeCopy( assert.message ); 127 129 return newnode; … … 662 664 dst->base->aggInst.aggregate = src; 663 665 if ( src->kind == TypeData::Aggregate ) { 664 dst->base->aggInst.params = maybeC opy( src->aggregate.actuals );666 dst->base->aggInst.params = maybeClone( src->aggregate.actuals ); 665 667 } // if 666 668 dst->base->qualifiers |= src->qualifiers; … … 692 694 if ( o->type->kind == TypeData::Aggregate ) { 693 695 type->aggInst.hoistType = o->type->aggregate.body; 694 type->aggInst.params = maybeC opy( o->type->aggregate.actuals );696 type->aggInst.params = maybeClone( o->type->aggregate.actuals ); 695 697 } else { 696 698 type->aggInst.hoistType = o->type->enumeration.body; … … 858 860 p->type->base->aggInst.aggregate = type; 859 861 if ( type->kind == TypeData::Aggregate ) { 860 p->type->base->aggInst.params = maybeC opy( type->aggregate.actuals );862 p->type->base->aggInst.params = maybeClone( type->aggregate.actuals ); 861 863 } // if 862 864 p->type->base->qualifiers |= type->qualifiers; … … 895 897 lastArray->base->aggInst.aggregate = type; 896 898 if ( type->kind == TypeData::Aggregate ) { 897 lastArray->base->aggInst.params = maybeC opy( type->aggregate.actuals );899 lastArray->base->aggInst.params = maybeClone( type->aggregate.actuals ); 898 900 } // if 899 901 lastArray->base->qualifiers |= type->qualifiers; … … 948 950 DeclarationNode * DeclarationNode::cloneType( string * name ) { 949 951 DeclarationNode * newnode = newName( name ); 950 newnode->type = maybeC opy( type );952 newnode->type = maybeClone( type ); 951 953 newnode->copySpecifiers( this ); 952 954 return newnode; … … 982 984 } // if 983 985 984 newType->forall = maybeC opy( type->forall );986 newType->forall = maybeClone( type->forall ); 985 987 if ( ! o->type ) { 986 988 o->type = newType;
Note:
See TracChangeset
for help on using the changeset viewer.