Changeset 66f8528 for src/Parser/DeclarationNode.cc
- Timestamp:
- Dec 15, 2016, 5:16:42 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 43385ca, f7ff3fb
- Parents:
- 5802a4f (diff), 596f987b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Parser/DeclarationNode.cc
r5802a4f r66f8528 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08 201613 // Update Count : 6 5112 // Last Modified On : Tue Dec 13 14:43:38 2016 13 // Update Count : 660 14 14 // 15 15 … … 48 48 type( nullptr ), 49 49 storageClass( NoStorageClass ), 50 bitfieldWidth( nullptr ), 50 51 isInline( false ), 51 52 isNoreturn( false ), 52 bitfieldWidth( nullptr ),53 initializer( nullptr ),54 53 hasEllipsis( false ), 55 54 linkage( ::linkage ), 55 asmName( nullptr ), 56 initializer( nullptr ), 56 57 extension( false ) { 57 58 … … 75 76 delete type; 76 77 delete bitfieldWidth; 78 // asmName, no delete, passed to next stage 77 79 delete initializer; 78 80 } … … 90 92 newnode->set_next( maybeClone( get_next() ) ); 91 93 newnode->linkage = linkage; 94 newnode->asmName = maybeClone( asmName ); 92 95 93 96 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; … … 283 286 DeclarationNode * newnode = new DeclarationNode; 284 287 newnode->type = nullptr; 285 assert( ! newnode->name ); 288 assert( ! newnode->name ); 286 289 // newnode->variable.name = name; 287 290 newnode->name = name; … … 372 375 newnode->type = new TypeData( TypeData::Builtin ); 373 376 newnode->builtin = bt; 377 newnode->type->builtintype = newnode->builtin; 374 378 return newnode; 375 379 } // DeclarationNode::newBuiltinType … … 640 644 } 641 645 646 DeclarationNode * DeclarationNode::addAsmName( ConstantExpr * newname ) { 647 assert( ! asmName ); 648 asmName = newname; 649 return this; 650 } 651 642 652 DeclarationNode * DeclarationNode::addBitfield( ExpressionNode * size ) { 643 653 bitfieldWidth = size; … … 946 956 947 957 if ( type ) { 948 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );958 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 949 959 } // if 950 960 951 961 if ( ! isInline && ! isNoreturn ) { 952 962 assertf( name, "ObjectDecl are assumed to have names\n" ); 953 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_ extension( extension );963 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_asmName( asmName )->set_extension( extension ); 954 964 } // if 955 965
Note:
See TracChangeset
for help on using the changeset viewer.