Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/DeclarationNode.cc

    r2f0a0678 raf9da5f  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 22 08:39:29 2018
    13 // Update Count     : 1074
     12// Last Modified On : Wed May 16 09:37:17 2018
     13// Update Count     : 1070
    1414//
    1515
     
    3232#include "SynTree/Type.h"          // for Type, Type::StorageClasses, Type::...
    3333#include "TypeData.h"              // for TypeData, TypeData::Aggregate_t
    34 #include "TypedefTable.h"          // for TypedefTable
     34#include "TypedefTable.h"          // for TypedefTable, TypedefTable::kind_t...
    3535
    3636class Initializer;
     
    5454
    5555DeclarationNode::DeclarationNode() :
    56                 builtin( NoBuiltinType ),
    5756                type( nullptr ),
    5857                bitfieldWidth( nullptr ),
     
    102101        newnode->name = name ? new string( *name ) : nullptr;
    103102
    104         newnode->builtin = NoBuiltinType;
    105103        newnode->type = maybeClone( type );
    106104        newnode->storageClasses = storageClasses;
     
    181179        newnode->type->function.body = body;
    182180
     181        // ignore unnamed routine declarations: void p( int (*)(int) );
     182        if ( newnode->name ) {
     183                typedefTable.addToEnclosingScope( *newnode->name, TypedefTable::ID );
     184        } // if
     185
    183186        if ( ret ) {
    184187                newnode->type->base = ret->type;
     
    282285        newnode->name = name;
    283286        newnode->enumeratorValue.reset( constant );
     287        typedefTable.addToEnclosingScope( *newnode->name, TypedefTable::ID );
    284288        return newnode;
    285289} // DeclarationNode::newEnumConstant
     
    547551                                        type->aggregate.params = q->type->forall; // make polymorphic type
    548552                                        // change implicit typedef from TYPEDEFname to TYPEGENname
    549                                         typedefTable.changeKind( *type->aggregate.name, TYPEGENname );
     553                                        typedefTable.changeKind( *type->aggregate.name, TypedefTable::TG );
    550554                                } // if
    551555                        } else {                                                                        // not polymorphic
Note: See TracChangeset for help on using the changeset viewer.