Ignore:
Timestamp:
May 19, 2015, 4:58:14 PM (11 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, stuck-waitfor-destruct, with_gc
Children:
843054c2
Parents:
01aeade
Message:

licencing: sixth groups of files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • translator/SymTab/Validate.cc

    r01aeade ra08ba92  
    1010// Created On       : Sun May 17 21:50:04 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 17 21:53:16 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue May 19 16:50:09 2015
     13// Update Count     : 3
    1414//
    1515
     
    5757
    5858namespace SymTab {
    59     class HoistStruct : public Visitor {
    60       public:
     59        class HoistStruct : public Visitor {
     60          public:
    6161                static void hoistStruct( std::list< Declaration * > &translationUnit );
    6262 
     
    7474                virtual void visit( CaseStmt *caseStmt );
    7575                virtual void visit( CatchStmt *catchStmt );
    76       private:
     76          private:
    7777                HoistStruct();
    7878
     
    8181                std::list< Declaration * > declsToAdd;
    8282                bool inStruct;
    83     };
    84 
    85     class Pass1 : public Visitor {
     83        };
     84
     85        class Pass1 : public Visitor {
    8686                typedef Visitor Parent;
    8787                virtual void visit( EnumDecl *aggregateDecl );
    8888                virtual void visit( FunctionType *func );
    89     };
    90  
    91     class Pass2 : public Indexer {
     89        };
     90 
     91        class Pass2 : public Indexer {
    9292                typedef Indexer Parent;
    93       public:
     93          public:
    9494                Pass2( bool doDebug, const Indexer *indexer );
    95       private:
     95          private:
    9696                virtual void visit( StructInstType *structInst );
    9797                virtual void visit( UnionInstType *unionInst );
     
    107107                ForwardStructsType forwardStructs;
    108108                ForwardUnionsType forwardUnions;
    109     };
    110 
    111     class Pass3 : public Indexer {
     109        };
     110
     111        class Pass3 : public Indexer {
    112112                typedef Indexer Parent;
    113       public:
     113          public:
    114114                Pass3( const Indexer *indexer );
    115       private:
     115          private:
    116116                virtual void visit( ObjectDecl *object );
    117117                virtual void visit( FunctionDecl *func );
    118118
    119119                const Indexer *indexer;
    120     };
    121 
    122     class AddStructAssignment : public Visitor {
    123       public:
     120        };
     121
     122        class AddStructAssignment : public Visitor {
     123          public:
    124124                static void addStructAssignment( std::list< Declaration * > &translationUnit );
    125125
     
    145145
    146146                AddStructAssignment() : functionNesting( 0 ) {}
    147       private:
     147          private:
    148148                template< typename StmtClass > void visitStatement( StmtClass *stmt );
    149149 
     
    151151                std::set< std::string > structsDone;
    152152                unsigned int functionNesting;                   // current level of nested functions
    153     };
    154 
    155     class EliminateTypedef : public Mutator {
    156       public:
     153        };
     154
     155        class EliminateTypedef : public Mutator {
     156          public:
    157157                static void eliminateTypedef( std::list< Declaration * > &translationUnit );
    158       private:
     158          private:
    159159                virtual Declaration *mutate( TypedefDecl *typeDecl );
    160160                virtual TypeDecl *mutate( TypeDecl *typeDecl );
     
    166166 
    167167                std::map< std::string, TypedefDecl * > typedefNames;
    168     };
    169 
    170     void validate( std::list< Declaration * > &translationUnit, bool doDebug ) {
     168        };
     169
     170        void validate( std::list< Declaration * > &translationUnit, bool doDebug ) {
    171171                Pass1 pass1;
    172172                Pass2 pass2( doDebug, 0 );
     
    178178                AddStructAssignment::addStructAssignment( translationUnit );
    179179                acceptAll( translationUnit, pass3 );
    180     }
    181    
    182     void validateType( Type *type, const Indexer *indexer ) {
     180        }
     181       
     182        void validateType( Type *type, const Indexer *indexer ) {
    183183                Pass1 pass1;
    184184                Pass2 pass2( false, indexer );
     
    187187                type->accept( pass2 );
    188188                type->accept( pass3 );
    189     }
    190 
    191     template< typename Visitor >
    192     void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) {
     189        }
     190
     191        template< typename Visitor >
     192        void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) {
    193193                std::list< Declaration * >::iterator i = translationUnit.begin();
    194194                while ( i != translationUnit.end() ) {
     
    201201                        i = next;
    202202                } // while
    203     }
    204 
    205     void HoistStruct::hoistStruct( std::list< Declaration * > &translationUnit ) {
     203        }
     204
     205        void HoistStruct::hoistStruct( std::list< Declaration * > &translationUnit ) {
    206206                HoistStruct hoister;
    207207                acceptAndAdd( translationUnit, hoister, true );
    208     }
    209 
    210     HoistStruct::HoistStruct() : inStruct( false ) {
    211     }
    212 
    213     void filter( std::list< Declaration * > &declList, bool (*pred)( Declaration * ), bool doDelete ) {
     208        }
     209
     210        HoistStruct::HoistStruct() : inStruct( false ) {
     211        }
     212
     213        void filter( std::list< Declaration * > &declList, bool (*pred)( Declaration * ), bool doDelete ) {
    214214                std::list< Declaration * >::iterator i = declList.begin();
    215215                while ( i != declList.end() ) {
     
    224224                        i = next;
    225225                } // while
    226     }
    227 
    228     bool isStructOrUnion( Declaration *decl ) {
     226        }
     227
     228        bool isStructOrUnion( Declaration *decl ) {
    229229                return dynamic_cast< StructDecl * >( decl ) || dynamic_cast< UnionDecl * >( decl );
    230     }
    231 
    232     template< typename AggDecl >
    233     void HoistStruct::handleAggregate( AggDecl *aggregateDecl ) {
     230        }
     231
     232        template< typename AggDecl >
     233        void HoistStruct::handleAggregate( AggDecl *aggregateDecl ) {
    234234                if ( inStruct ) {
    235235                        // Add elements in stack order corresponding to nesting structure.
     
    243243                // Always remove the hoisted aggregate from the inner structure.
    244244                filter( aggregateDecl->get_members(), isStructOrUnion, false );
    245     }
    246 
    247     void HoistStruct::visit( StructDecl *aggregateDecl ) {
     245        }
     246
     247        void HoistStruct::visit( StructDecl *aggregateDecl ) {
    248248                handleAggregate( aggregateDecl );
    249     }
    250 
    251     void HoistStruct::visit( UnionDecl *aggregateDecl ) {
     249        }
     250
     251        void HoistStruct::visit( UnionDecl *aggregateDecl ) {
    252252                handleAggregate( aggregateDecl );
    253     }
    254 
    255     void HoistStruct::visit( CompoundStmt *compoundStmt ) {
     253        }
     254
     255        void HoistStruct::visit( CompoundStmt *compoundStmt ) {
    256256                addVisit( compoundStmt, *this );
    257     }
    258 
    259     void HoistStruct::visit( IfStmt *ifStmt ) {
     257        }
     258
     259        void HoistStruct::visit( IfStmt *ifStmt ) {
    260260                addVisit( ifStmt, *this );
    261     }
    262 
    263     void HoistStruct::visit( WhileStmt *whileStmt ) {
     261        }
     262
     263        void HoistStruct::visit( WhileStmt *whileStmt ) {
    264264                addVisit( whileStmt, *this );
    265     }
    266 
    267     void HoistStruct::visit( ForStmt *forStmt ) {
     265        }
     266
     267        void HoistStruct::visit( ForStmt *forStmt ) {
    268268                addVisit( forStmt, *this );
    269     }
    270 
    271     void HoistStruct::visit( SwitchStmt *switchStmt ) {
     269        }
     270
     271        void HoistStruct::visit( SwitchStmt *switchStmt ) {
    272272                addVisit( switchStmt, *this );
    273     }
    274 
    275     void HoistStruct::visit( ChooseStmt *switchStmt ) {
     273        }
     274
     275        void HoistStruct::visit( ChooseStmt *switchStmt ) {
    276276                addVisit( switchStmt, *this );
    277     }
    278 
    279     void HoistStruct::visit( CaseStmt *caseStmt ) {
     277        }
     278
     279        void HoistStruct::visit( CaseStmt *caseStmt ) {
    280280                addVisit( caseStmt, *this );
    281     }
    282 
    283     void HoistStruct::visit( CatchStmt *cathStmt ) {
     281        }
     282
     283        void HoistStruct::visit( CatchStmt *cathStmt ) {
    284284                addVisit( cathStmt, *this );
    285     }
    286 
    287     void Pass1::visit( EnumDecl *enumDecl ) {
     285        }
     286
     287        void Pass1::visit( EnumDecl *enumDecl ) {
    288288                // Set the type of each member of the enumeration to be EnumConstant
    289289 
     
    294294                } // for
    295295                Parent::visit( enumDecl );
    296     }
    297 
    298     namespace {
     296        }
     297
     298        namespace {
    299299                template< typename DWTIterator >
    300300                void fixFunctionList( DWTIterator begin, DWTIterator end, FunctionType *func ) {
     
    323323                        } // if
    324324                }
    325     }
    326 
    327     void Pass1::visit( FunctionType *func ) {
     325        }
     326
     327        void Pass1::visit( FunctionType *func ) {
    328328                // Fix up parameters and return types
    329329                fixFunctionList( func->get_parameters().begin(), func->get_parameters().end(), func );
    330330                fixFunctionList( func->get_returnVals().begin(), func->get_returnVals().end(), func );
    331331                Visitor::visit( func );
    332     }
    333 
    334     Pass2::Pass2( bool doDebug, const Indexer *other_indexer ) : Indexer( doDebug ) {
     332        }
     333
     334        Pass2::Pass2( bool doDebug, const Indexer *other_indexer ) : Indexer( doDebug ) {
    335335                if ( other_indexer ) {
    336336                        indexer = other_indexer;
     
    338338                        indexer = this;
    339339                } // if
    340     }
    341 
    342     void Pass2::visit( StructInstType *structInst ) {
     340        }
     341
     342        void Pass2::visit( StructInstType *structInst ) {
    343343                Parent::visit( structInst );
    344344                StructDecl *st = indexer->lookupStruct( structInst->get_name() );
     
    352352                        forwardStructs[ structInst->get_name() ].push_back( structInst );
    353353                } // if
    354     }
    355 
    356     void Pass2::visit( UnionInstType *unionInst ) {
     354        }
     355
     356        void Pass2::visit( UnionInstType *unionInst ) {
    357357                Parent::visit( unionInst );
    358358                UnionDecl *un = indexer->lookupUnion( unionInst->get_name() );
     
    365365                        forwardUnions[ unionInst->get_name() ].push_back( unionInst );
    366366                } // if
    367     }
    368 
    369     void Pass2::visit( ContextInstType *contextInst ) {
     367        }
     368
     369        void Pass2::visit( ContextInstType *contextInst ) {
    370370                Parent::visit( contextInst );
    371371                ContextDecl *ctx = indexer->lookupContext( contextInst->get_name() );
     
    383383                } // for
    384384                applySubstitution( ctx->get_parameters().begin(), ctx->get_parameters().end(), contextInst->get_parameters().begin(), ctx->get_members().begin(), ctx->get_members().end(), back_inserter( contextInst->get_members() ) );
    385     }
    386 
    387     void Pass2::visit( StructDecl *structDecl ) {
     385        }
     386
     387        void Pass2::visit( StructDecl *structDecl ) {
    388388                if ( ! structDecl->get_members().empty() ) {
    389389                        ForwardStructsType::iterator fwds = forwardStructs.find( structDecl->get_name() );
     
    396396                } // if
    397397                Indexer::visit( structDecl );
    398     }
    399 
    400     void Pass2::visit( UnionDecl *unionDecl ) {
     398        }
     399
     400        void Pass2::visit( UnionDecl *unionDecl ) {
    401401                if ( ! unionDecl->get_members().empty() ) {
    402402                        ForwardUnionsType::iterator fwds = forwardUnions.find( unionDecl->get_name() );
     
    409409                } // if
    410410                Indexer::visit( unionDecl );
    411     }
    412 
    413     void Pass2::visit( TypeInstType *typeInst ) {
     411        }
     412
     413        void Pass2::visit( TypeInstType *typeInst ) {
    414414                if ( NamedTypeDecl *namedTypeDecl = lookupType( typeInst->get_name() ) ) {
    415415                        if ( TypeDecl *typeDecl = dynamic_cast< TypeDecl * >( namedTypeDecl ) ) {
     
    417417                        } // if
    418418                } // if
    419     }
    420 
    421     Pass3::Pass3( const Indexer *other_indexer ) :  Indexer( false ) {
     419        }
     420
     421        Pass3::Pass3( const Indexer *other_indexer ) :  Indexer( false ) {
    422422                if ( other_indexer ) {
    423423                        indexer = other_indexer;
     
    425425                        indexer = this;
    426426                } // if
    427     }
    428 
    429     void forallFixer( Type *func ) {
     427        }
     428
     429        void forallFixer( Type *func ) {
    430430                // Fix up assertions
    431431                for ( std::list< TypeDecl * >::iterator type = func->get_forall().begin(); type != func->get_forall().end(); ++type ) {
     
    454454                        } // while
    455455                } // for
    456     }
    457 
    458     void Pass3::visit( ObjectDecl *object ) {
     456        }
     457
     458        void Pass3::visit( ObjectDecl *object ) {
    459459                forallFixer( object->get_type() );
    460460                if ( PointerType *pointer = dynamic_cast< PointerType * >( object->get_type() ) ) {
     
    463463                Parent::visit( object );
    464464                object->fixUniqueId();
    465     }
    466 
    467     void Pass3::visit( FunctionDecl *func ) {
     465        }
     466
     467        void Pass3::visit( FunctionDecl *func ) {
    468468                forallFixer( func->get_type() );
    469469                Parent::visit( func );
    470470                func->fixUniqueId();
    471     }
    472 
    473     static const std::list< std::string > noLabels;
    474 
    475     void AddStructAssignment::addStructAssignment( std::list< Declaration * > &translationUnit ) {
     471        }
     472
     473        static const std::list< std::string > noLabels;
     474
     475        void AddStructAssignment::addStructAssignment( std::list< Declaration * > &translationUnit ) {
    476476                AddStructAssignment visitor;
    477477                acceptAndAdd( translationUnit, visitor, false );
    478     }
    479 
    480     template< typename OutputIterator >
    481     void makeScalarAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, OutputIterator out ) {
     478        }
     479
     480        template< typename OutputIterator >
     481        void makeScalarAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, OutputIterator out ) {
    482482                ObjectDecl *obj = dynamic_cast<ObjectDecl *>( member );
    483483                // unnamed bit fields are not copied as they cannot be accessed
     
    497497 
    498498                *out++ = new ExprStmt( noLabels, assignExpr );
    499     }
    500 
    501     template< typename OutputIterator >
    502     void makeArrayAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, ArrayType *array, OutputIterator out ) {
     499        }
     500
     501        template< typename OutputIterator >
     502        void makeArrayAssignment( ObjectDecl *srcParam, ObjectDecl *dstParam, DeclarationWithType *member, ArrayType *array, OutputIterator out ) {
    503503                static UniqueName indexName( "_index" );
    504504 
     
    539539 
    540540                *out++ = new ForStmt( noLabels, initStmt, cond, inc, new ExprStmt( noLabels, assignExpr ) );
    541     }
    542 
    543     Declaration *makeStructAssignment( StructDecl *aggregateDecl, StructInstType *refType, unsigned int functionNesting ) {
     541        }
     542
     543        Declaration *makeStructAssignment( StructDecl *aggregateDecl, StructInstType *refType, unsigned int functionNesting ) {
    544544                FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    545545 
     
    570570 
    571571                return assignDecl;
    572     }
    573 
    574     Declaration *makeUnionAssignment( UnionDecl *aggregateDecl, UnionInstType *refType, unsigned int functionNesting ) {
     572        }
     573
     574        Declaration *makeUnionAssignment( UnionDecl *aggregateDecl, UnionInstType *refType, unsigned int functionNesting ) {
    575575                FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    576576 
     
    598598 
    599599                return assignDecl;
    600     }
    601 
    602     void AddStructAssignment::visit( StructDecl *structDecl ) {
     600        }
     601
     602        void AddStructAssignment::visit( StructDecl *structDecl ) {
    603603                if ( ! structDecl->get_members().empty() && structsDone.find( structDecl->get_name() ) == structsDone.end() ) {
    604604                        StructInstType *structInst = new StructInstType( Type::Qualifiers(), structDecl->get_name() );
     
    607607                        structsDone.insert( structDecl->get_name() );
    608608                } // if
    609     }
    610 
    611     void AddStructAssignment::visit( UnionDecl *unionDecl ) {
     609        }
     610
     611        void AddStructAssignment::visit( UnionDecl *unionDecl ) {
    612612                if ( ! unionDecl->get_members().empty() ) {
    613613                        UnionInstType *unionInst = new UnionInstType( Type::Qualifiers(), unionDecl->get_name() );
     
    615615                        declsToAdd.push_back( makeUnionAssignment( unionDecl, unionInst, functionNesting ) );
    616616                } // if
    617     }
    618 
    619     void AddStructAssignment::visit( TypeDecl *typeDecl ) {
     617        }
     618
     619        void AddStructAssignment::visit( TypeDecl *typeDecl ) {
    620620                CompoundStmt *stmts = 0;
    621621                TypeInstType *typeInst = new TypeInstType( Type::Qualifiers(), typeDecl->get_name(), false );
     
    636636                FunctionDecl *func = new FunctionDecl( "?=?", Declaration::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false );
    637637                declsToAdd.push_back( func );
    638     }
    639 
    640     void addDecls( std::list< Declaration * > &declsToAdd, std::list< Statement * > &statements, std::list< Statement * >::iterator i ) {
     638        }
     639
     640        void addDecls( std::list< Declaration * > &declsToAdd, std::list< Statement * > &statements, std::list< Statement * >::iterator i ) {
    641641                if ( ! declsToAdd.empty() ) {
    642642                        for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {
     
    645645                        declsToAdd.clear();
    646646                } // if
    647     }
    648 
    649     void AddStructAssignment::visit( FunctionType *) {
     647        }
     648
     649        void AddStructAssignment::visit( FunctionType *) {
    650650                // ensure that we don't add assignment ops for types defined as part of the function
    651     }
    652 
    653     void AddStructAssignment::visit( PointerType *) {
     651        }
     652
     653        void AddStructAssignment::visit( PointerType *) {
    654654                // ensure that we don't add assignment ops for types defined as part of the pointer
    655     }
    656 
    657     void AddStructAssignment::visit( ContextDecl *) {
     655        }
     656
     657        void AddStructAssignment::visit( ContextDecl *) {
    658658                // ensure that we don't add assignment ops for types defined as part of the context
    659     }
    660 
    661     template< typename StmtClass >
    662     inline void AddStructAssignment::visitStatement( StmtClass *stmt ) {
     659        }
     660
     661        template< typename StmtClass >
     662        inline void AddStructAssignment::visitStatement( StmtClass *stmt ) {
    663663                std::set< std::string > oldStructs = structsDone;
    664664                addVisit( stmt, *this );
    665665                structsDone = oldStructs;
    666     }
    667 
    668     void AddStructAssignment::visit( FunctionDecl *functionDecl ) {
     666        }
     667
     668        void AddStructAssignment::visit( FunctionDecl *functionDecl ) {
    669669                maybeAccept( functionDecl->get_functionType(), *this );
    670670                acceptAll( functionDecl->get_oldDecls(), *this );
     
    672672                maybeAccept( functionDecl->get_statements(), *this );
    673673                functionNesting -= 1;
    674     }
    675 
    676     void AddStructAssignment::visit( CompoundStmt *compoundStmt ) {
     674        }
     675
     676        void AddStructAssignment::visit( CompoundStmt *compoundStmt ) {
    677677                visitStatement( compoundStmt );
    678     }
    679 
    680     void AddStructAssignment::visit( IfStmt *ifStmt ) {
     678        }
     679
     680        void AddStructAssignment::visit( IfStmt *ifStmt ) {
    681681                visitStatement( ifStmt );
    682     }
    683 
    684     void AddStructAssignment::visit( WhileStmt *whileStmt ) {
     682        }
     683
     684        void AddStructAssignment::visit( WhileStmt *whileStmt ) {
    685685                visitStatement( whileStmt );
    686     }
    687 
    688     void AddStructAssignment::visit( ForStmt *forStmt ) {
     686        }
     687
     688        void AddStructAssignment::visit( ForStmt *forStmt ) {
    689689                visitStatement( forStmt );
    690     }
    691 
    692     void AddStructAssignment::visit( SwitchStmt *switchStmt ) {
     690        }
     691
     692        void AddStructAssignment::visit( SwitchStmt *switchStmt ) {
    693693                visitStatement( switchStmt );
    694     }
    695 
    696     void AddStructAssignment::visit( ChooseStmt *switchStmt ) {
     694        }
     695
     696        void AddStructAssignment::visit( ChooseStmt *switchStmt ) {
    697697                visitStatement( switchStmt );
    698     }
    699 
    700     void AddStructAssignment::visit( CaseStmt *caseStmt ) {
     698        }
     699
     700        void AddStructAssignment::visit( CaseStmt *caseStmt ) {
    701701                visitStatement( caseStmt );
    702     }
    703 
    704     void AddStructAssignment::visit( CatchStmt *cathStmt ) {
     702        }
     703
     704        void AddStructAssignment::visit( CatchStmt *cathStmt ) {
    705705                visitStatement( cathStmt );
    706     }
    707 
    708     bool isTypedef( Declaration *decl ) {
     706        }
     707
     708        bool isTypedef( Declaration *decl ) {
    709709                return dynamic_cast< TypedefDecl * >( decl );
    710     }
    711 
    712     void EliminateTypedef::eliminateTypedef( std::list< Declaration * > &translationUnit ) {
     710        }
     711
     712        void EliminateTypedef::eliminateTypedef( std::list< Declaration * > &translationUnit ) {
    713713                EliminateTypedef eliminator;
    714714                mutateAll( translationUnit, eliminator );
    715715                filter( translationUnit, isTypedef, true );
    716     }
    717 
    718     Type *EliminateTypedef::mutate( TypeInstType *typeInst ) {
     716        }
     717
     718        Type *EliminateTypedef::mutate( TypeInstType *typeInst ) {
    719719                std::map< std::string, TypedefDecl * >::const_iterator def = typedefNames.find( typeInst->get_name() );
    720720                if ( def != typedefNames.end() ) {
     
    725725                } // if
    726726                return typeInst;
    727     }
    728 
    729     Declaration *EliminateTypedef::mutate( TypedefDecl *tyDecl ) {
     727        }
     728
     729        Declaration *EliminateTypedef::mutate( TypedefDecl *tyDecl ) {
    730730                Declaration *ret = Mutator::mutate( tyDecl );
    731731                typedefNames[ tyDecl->get_name() ] = tyDecl;
     
    745745                        return ret;
    746746                } // if
    747     }
    748 
    749     TypeDecl *EliminateTypedef::mutate( TypeDecl *typeDecl ) {
     747        }
     748
     749        TypeDecl *EliminateTypedef::mutate( TypeDecl *typeDecl ) {
    750750                std::map< std::string, TypedefDecl * >::iterator i = typedefNames.find( typeDecl->get_name() );
    751751                if ( i != typedefNames.end() ) {
     
    753753                } // if
    754754                return typeDecl;
    755     }
    756 
    757     DeclarationWithType *EliminateTypedef::mutate( FunctionDecl *funcDecl ) {
     755        }
     756
     757        DeclarationWithType *EliminateTypedef::mutate( FunctionDecl *funcDecl ) {
    758758                std::map< std::string, TypedefDecl * > oldNames = typedefNames;
    759759                DeclarationWithType *ret = Mutator::mutate( funcDecl );
    760760                typedefNames = oldNames;
    761761                return ret;
    762     }
    763 
    764     ObjectDecl *EliminateTypedef::mutate( ObjectDecl *objDecl ) {
     762        }
     763
     764        ObjectDecl *EliminateTypedef::mutate( ObjectDecl *objDecl ) {
    765765                std::map< std::string, TypedefDecl * > oldNames = typedefNames;
    766766                ObjectDecl *ret = Mutator::mutate( objDecl );
    767767                typedefNames = oldNames;
    768768                return ret;
    769     }
    770 
    771     Expression *EliminateTypedef::mutate( CastExpr *castExpr ) {
     769        }
     770
     771        Expression *EliminateTypedef::mutate( CastExpr *castExpr ) {
    772772                std::map< std::string, TypedefDecl * > oldNames = typedefNames;
    773773                Expression *ret = Mutator::mutate( castExpr );
    774774                typedefNames = oldNames;
    775775                return ret;
    776     }
    777 
    778     CompoundStmt *EliminateTypedef::mutate( CompoundStmt *compoundStmt ) {
     776        }
     777
     778        CompoundStmt *EliminateTypedef::mutate( CompoundStmt *compoundStmt ) {
    779779                std::map< std::string, TypedefDecl * > oldNames = typedefNames;
    780780                CompoundStmt *ret = Mutator::mutate( compoundStmt );
     
    793793                typedefNames = oldNames;
    794794                return ret;
    795     }
     795        }
    796796} // namespace SymTab
    797797
Note: See TracChangeset for help on using the changeset viewer.