Changeset bee0694 for src/ControlStruct
- Timestamp:
- Jan 29, 2019, 4:15:27 PM (7 years ago)
- Branches:
- no_list
- Children:
- bbbc067
- Parents:
- 70a1c3ae
- Location:
- src/ControlStruct
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ControlStruct/LabelFixer.cc
r70a1c3ae rbee0694 50 50 // prune to at most one label definition for each statement 51 51 void LabelFixer::previsit( Statement *stmt ) { 52 std:: list< Label >&labels = stmt->get_labels();52 std::vector< Label > &labels = stmt->get_labels(); 53 53 54 54 if ( ! labels.empty() ) { … … 77 77 // sets the definition of the labelTable entry to be the provided 78 78 // statement for every label in the list parameter. Happens for every kind of statement 79 Label LabelFixer::setLabelsDef( std:: list< Label >&llabel, Statement *definition ) {79 Label LabelFixer::setLabelsDef( std::vector< Label > &llabel, Statement *definition ) { 80 80 assert( definition != 0 ); 81 81 assert( llabel.size() > 0 ); … … 83 83 Entry * e = new Entry( definition ); 84 84 85 for ( std:: list< Label >::iterator i = llabel.begin(); i != llabel.end(); i++ ) {85 for ( std::vector< Label > ::iterator i = llabel.begin(); i != llabel.end(); i++ ) { 86 86 Label & l = *i; 87 87 l.set_statement( definition ); // attach statement to the label to be used later -
src/ControlStruct/LabelFixer.h
r70a1c3ae rbee0694 46 46 void previsit( LabelAddressExpr *addrExpr ); 47 47 48 Label setLabelsDef( std:: list< Label >&, Statement *definition );48 Label setLabelsDef( std::vector< Label > &, Statement *definition ); 49 49 template< typename UsageNode > 50 50 void setLabelsUsg( Label, UsageNode *usage = 0 ); -
src/ControlStruct/MLEMutator.cc
r70a1c3ae rbee0694 70 70 if ( ! get_breakLabel().empty() ) { 71 71 std::list< Statement * >::iterator next = k+1; 72 std:: list<Label>ls; ls.push_back( get_breakLabel() );72 std::vector< Label > ls; ls.push_back( get_breakLabel() ); 73 73 kids.insert( next, new NullStmt( ls ) ); 74 74 set_breakLabel(""); … … 242 242 if ( e.isContUsed() ) { 243 243 // continue label goes in the body as the last statement 244 std:: list< Label >labels; labels.push_back( e.useContExit() );244 std::vector< Label > labels; labels.push_back( e.useContExit() ); 245 245 newBody->get_kids().push_back( new NullStmt( labels ) ); 246 246 } // if … … 336 336 assert( ! enclosingControlStructures.empty() ); 337 337 if ( enclosingControlStructures.back().isFallUsed() ) { 338 std:: list<Label>ls{ enclosingControlStructures.back().useFallExit() };338 std::vector< Label > ls{ enclosingControlStructures.back().useFallExit() }; 339 339 caseStmt->stmts.push_back( new NullStmt( ls ) ); 340 340 } // if … … 346 346 if ( enclosingControlStructures.back().isFallDefaultUsed() ) { 347 347 // add fallthrough default label if necessary 348 std:: list<Label>ls{ enclosingControlStructures.back().useFallDefaultExit() };348 std::vector< Label > ls{ enclosingControlStructures.back().useFallDefaultExit() }; 349 349 caseStmt->stmts.push_front( new NullStmt( ls ) ); 350 350 } // if
Note:
See TracChangeset
for help on using the changeset viewer.