Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Validate.cc

    r4e06c1e r74d1804  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 21:50:04 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 12 17:49:21 2016
    13 // Update Count     : 298
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed May 11 13:17:52 2016
     13// Update Count     : 297
    1414//
    1515
     
    7474                virtual void visit( CompoundStmt *compoundStmt );
    7575                virtual void visit( SwitchStmt *switchStmt );
     76                virtual void visit( ChooseStmt *chooseStmt );
     77                // virtual void visit( CaseStmt *caseStmt );
    7678          private:
    7779                HoistStruct();
     
    266268                addVisit( switchStmt, *this );
    267269        }
     270
     271        void HoistStruct::visit( ChooseStmt *switchStmt ) {
     272                addVisit( switchStmt, *this );
     273        }
     274
     275        // void HoistStruct::visit( CaseStmt *caseStmt ) {
     276        //      addVisit( caseStmt, *this );
     277        // }
    268278
    269279        void Pass1::visit( EnumDecl *enumDecl ) {
     
    541551                if ( StructInstType *aggDecl = dynamic_cast< StructInstType * >( tyDecl->get_base() ) ) {
    542552                        return new StructDecl( aggDecl->get_name() );
    543 //                      return aggDecl->get_baseStruct();
    544553                } else if ( UnionInstType *aggDecl = dynamic_cast< UnionInstType * >( tyDecl->get_base() ) ) {
    545554                        return new UnionDecl( aggDecl->get_name() );
     
    636645                } // if
    637646        }
    638 
    639647        Declaration *EliminateTypedef::mutate( StructDecl * structDecl ) {
    640648                addImplicitTypedef( structDecl );
     
    683691
    684692                Visitor::visit( funcDecl );
     693                // original idea: modify signature of ctor/dtors and insert appropriate return statements
     694                // to cause desired behaviour
     695                // new idea: add comma exprs to every ctor call to produce first parameter.
     696                // this requires some memoization of the first parameter, because it can be a
     697                // complicated expression with side effects (see: malloc). idea: add temporary variable
     698                // that is assigned address of constructed object in ctor argument position and
     699                // return the temporary. It should also be done after all implicit ctors are
     700                // added, so not in this pass!
    685701        }
    686702
Note: See TracChangeset for help on using the changeset viewer.