Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    rc0aa336 r6ef2d81  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Feb  6 16:01:29 2017
    13 // Update Count     : 739
     12// Last Modified On : Thu Feb  9 15:54:59 2017
     13// Update Count     : 742
    1414//
    1515
     
    5656                asmName( nullptr ),
    5757                initializer( nullptr ),
    58                 extension( false ) {
     58                extension( false ),
     59                asmStmt( nullptr ) {
    5960
    6061//      variable.name = nullptr;
     
    7778        delete type;
    7879        delete bitfieldWidth;
     80
     81        delete asmStmt;
    7982        // asmName, no delete, passed to next stage
    8083        delete initializer;
     
    98101        newnode->initializer = maybeClone( initializer );
    99102        newnode->extension = extension;
     103        newnode->asmStmt = maybeClone( asmStmt );
    100104        newnode->error = error;
    101105
     
    414418}
    415419
     420DeclarationNode * DeclarationNode::newAsmStmt( StatementNode * stmt ) {
     421        DeclarationNode * newnode = new DeclarationNode;
     422        newnode->asmStmt = stmt;
     423        return newnode;
     424}
     425
    416426void appendError( string & dst, const string & src ) {
    417427        if ( src.empty() ) return;
     
    495505                return this;
    496506        } // if
    497 
    498         checkQualifiers( q->type, type );
    499         addQualifiersToType( q->type, type );
    500507
    501508        if ( q->type->forall ) {
     
    513520                q->type->forall = nullptr;
    514521        } // if
     522
     523        checkQualifiers( q->type, type );
     524        addQualifiersToType( q->type, type );
     525
    515526        delete q;
    516527        return this;
     
    980991Declaration * DeclarationNode::build() const {
    981992        if ( ! error.empty() ) throw SemanticError( error + " in declaration of ", this );
     993
     994        if ( asmStmt ) {
     995                return new AsmDecl( safe_dynamic_cast<AsmStmt *>( asmStmt->build() ) );
     996        } // if
    982997
    983998//      if ( variable.name ) {
Note: See TracChangeset for help on using the changeset viewer.