Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r148f7290 r58dd019  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Oct  3 18:03:08 2016
    13 // Update Count     : 651
     12// Last Modified On : Tue Dec 13 14:43:38 2016
     13// Update Count     : 660
    1414//
    1515
     
    4848                type( nullptr ),
    4949                storageClass( NoStorageClass ),
     50                bitfieldWidth( nullptr ),
    5051                isInline( false ),
    5152                isNoreturn( false ),
    52                 bitfieldWidth( nullptr ),
    53                 initializer( nullptr ),
    5453                hasEllipsis( false ),
    5554                linkage( ::linkage ),
     55                asmName( nullptr ),
     56                initializer( nullptr ),
    5657                extension( false ) {
    5758
     
    7576        delete type;
    7677        delete bitfieldWidth;
     78        // asmName, no delete, passed to next stage
    7779        delete initializer;
    7880}
     
    9092        newnode->set_next( maybeClone( get_next() ) );
    9193        newnode->linkage = linkage;
     94        newnode->asmName = maybeClone( asmName );
    9295
    9396//      newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr;
     
    641644}
    642645
     646DeclarationNode * DeclarationNode::addAsmName( ConstantExpr * newname ) {
     647        assert( ! asmName );
     648        asmName = newname;
     649        return this;
     650}
     651
    643652DeclarationNode * DeclarationNode::addBitfield( ExpressionNode * size ) {
    644653        bitfieldWidth = size;
     
    947956
    948957        if ( type ) {
    949                 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 );
    950959        } // if
    951960
    952961        if ( ! isInline && ! isNoreturn ) {
    953962                assertf( name, "ObjectDecl are assumed to have names\n" );
    954                 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 );
    955964        } // if
    956965
Note: See TracChangeset for help on using the changeset viewer.