Changeset 4162aea9
- Timestamp:
- Jun 3, 2015, 11:09:48 PM (9 years ago)
- 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, with_gc
- Children:
- 1136d96
- Parents:
- 27de955
- Location:
- src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ControlStruct/ChooseMutator.cc
r27de955 r4162aea9 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue May 19 15:31:39201513 // Update Count : 211 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jun 03 15:30:20 2015 13 // Update Count : 5 14 14 // 15 15 … … 44 44 std::list< Statement * > &stmts = caseStmt->get_statements(); 45 45 46 // the difference between switch and choose is that switch has an implicit fallthrough 47 // to the next case, whereas choose has an implicit break at the end of the current case. 48 // thus to transform a choose statement into a switch, we only need to insert breaks at the 49 // end of any case that doesn't already end in a break and that doesn't end in a fallthru 50 46 51 if ( insideChoose ) { 47 52 BranchStmt *posBrk; -
src/ControlStruct/Mutate.cc
r27de955 r4162aea9 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Tue May 19 15:32:52201513 // Update Count : 211 // Last Modified By : Rob Schluntz 12 // Last Modified On : Wed Jun 03 23:08:43 2015 13 // Update Count : 5 14 14 // 15 15 … … 37 37 void mutate( std::list< Declaration * > translationUnit ) { 38 38 // ForExprMutator formut; 39 40 // normalizes label definitions and generates multi-level 41 // exit labels 39 42 LabelFixer lfix; 43 44 // transform choose statements into switch statements 40 45 ChooseMutator chmut; 46 47 // expand case ranges and turn fallthru into a null statement 41 48 CaseRangeMutator ranges; // has to run after ChooseMutator 49 42 50 //ExceptMutator exc; 43 51 // LabelTypeChecker lbl; -
src/examples/control_structures.c
r27de955 r4162aea9 18 18 L2: switch ( 3_333_333 ) { // underscores in constant 19 19 case 1,2,3: // 4~8, 4...8 not working 20 case 4~8: 20 21 L3: for ( ;; ) { 21 22 L4: for ( ;; ) {
Note: See TracChangeset
for help on using the changeset viewer.