Changeset d0c91a6 for tests/fallthrough.cfa
- Timestamp:
- Jan 15, 2019, 4:16:15 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
- Children:
- c802eb88
- Parents:
- 5e49e47 (diff), c9aba81 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/fallthrough.cfa
r5e49e47 rd0c91a6 10 10 // Created On : Wed Mar 14 10:06:25 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Nov 8 09:09:09201813 // Update Count : 1612 // Last Modified On : Mon Dec 24 11:24:35 2018 13 // Update Count : 22 14 14 // 15 15 … … 18 18 void test(int choice) { 19 19 choose ( choice ) { 20 21 sout | "case 1" | endl;22 23 24 sout | "case 2" | endl;25 26 sout | "did not fallthru" | endl;27 28 29 30 sout | "case 3" | endl;31 32 33 34 sout | "common1" | endl;20 case 1: 21 sout | "case 1"; 22 fallthru; 23 case 2: 24 sout | "case 2"; 25 fallthru; 26 sout | "did not fallthru"; 27 if ( 7 ) fallthru common2; 28 fallthru common1; 29 case 3: 30 sout | "case 3"; 31 fallthru default; 32 fallthru common1; 33 common1: 34 sout | "common1"; 35 35 // break 36 37 sout | "case 4" | endl;38 39 40 sout | "case 5" | endl;41 42 43 44 sout | "case 6" | endl;45 46 47 sout | "common2" | endl;36 case 4: 37 sout | "case 4"; 38 fallthru common2; 39 case 5: 40 sout | "case 5"; 41 fallthru common2; 42 fallthru default; 43 case 6: 44 sout | "case 6"; 45 fallthru common2; 46 common2: 47 sout | "common2"; 48 48 // break 49 50 sout | "default" | endl;51 52 } 49 default: 50 sout | "default"; 51 fallthru; 52 } // choose 53 53 54 sout | endl;54 sout | nl; 55 55 56 56 switch ( choice ) { 57 57 case 1: 58 sout | "case 1" | endl;58 sout | "case 1"; 59 59 switch ( choice ) { 60 60 case 1: 61 sout | "case 1" | endl;61 sout | "case 1"; 62 62 for ( int i = 0; i < 4; i += 1 ) { 63 printf("%d\n", i);63 sout | i; 64 64 if ( i == 2 ) fallthru common; 65 65 } // for … … 67 67 break; 68 68 case 5: 69 sout | "case 5" | endl;69 sout | "case 5"; 70 70 if ( choice == 5 ) { 71 71 if ( choice != 5 ) { 72 sout | "error" | endl;72 sout | "error"; 73 73 } else { 74 sout | "check" | endl;74 sout | "check"; 75 75 fallthru common; 76 76 } // if 77 77 } // if 78 78 common: 79 printf( "common\n" );79 sout | "common"; 80 80 fallthru; 81 81 break; 82 82 default: 83 printf( "default\n" );83 sout | "default"; 84 84 fallthru; 85 85 } // switch … … 93 93 fallthru default; 94 94 choose ( 3 ) { 95 case 2: 96 for () { 97 choose ( 2 ) { 98 case 1: 99 // ERROR: default is later, but in a different switch 100 fallthru default; 101 // ERROR: common3 is later, but not at the same level as a case clause 102 fallthru common3; 103 } 104 common3: ; 95 case 2: 96 for () { 97 choose ( 2 ) { 98 case 1: 99 // ERROR: default is later, but in a different switch 100 fallthru default; 101 // ERROR: common3 is later, but not at the same level as a case clause 102 fallthru common3; 105 103 } 106 default: 107 case 1: 108 common4: 109 // ERROR: attempt to jump up with fallthrough 110 if ( 7 ) fallthru common4; 111 // ERROR: attempt to jump up with fallthrough 112 fallthru default; 113 } 104 common3: ; 105 } // for 106 default: 107 case 1: 108 common4: 109 // ERROR: attempt to jump up with fallthrough 110 if ( 7 ) fallthru common4; 111 // ERROR: attempt to jump up with fallthrough 112 fallthru default; 113 } // choose 114 114 #endif 115 115 } … … 117 117 int main() { 118 118 test( 1 ); 119 sout | endl;119 sout | nl; 120 120 test( 5 ); 121 121 }
Note:
See TracChangeset
for help on using the changeset viewer.