Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/ControlStruct/LabelFixer.cc

    r1869adf r0a0a65b  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Rob Schluntz
    12 // Last Modified On : Wed Jun 24 16:24:34 2015
    13 // Update Count     : 141
     12// Last Modified On : Wed Jul 08 12:36:46 2015
     13// Update Count     : 145
    1414//
    1515
     
    6161
    6262        void LabelFixer::visit( FunctionDecl *functionDecl ) {
     63                // need to go into a nested function in a fresh state
     64                std::map < Label, Entry *> oldLabelTable = labelTable;
     65                labelTable.clear();
     66
    6367                maybeAccept( functionDecl->get_statements(), *this );
    6468
    6569                MLEMutator mlemut( resolveJumps(), generator );
    6670                functionDecl->acceptMutator( mlemut );
     71
     72                // and remember the outer function's labels when
     73                // returning to it
     74                labelTable = oldLabelTable;
    6775        }
    6876
Note: See TracChangeset for help on using the changeset viewer.