modernc.org/ccgo/v3@v3.16.14/lib/testdata/tcc-0.9.27/tests/tests2/89_nocode_wanted.c (about) 1 extern int printf(const char *format, ...); 2 static void kb_wait_1(void) 3 { 4 unsigned long timeout = 2; 5 do { 6 (1 ? 7 printf("timeout=%ld\n", timeout) : 8 ({ 9 while (1) 10 printf("error\n"); 11 }) 12 ); 13 timeout--; 14 } while (timeout); 15 } 16 static void kb_wait_2(void) 17 { 18 unsigned long timeout = 2; 19 do { 20 (1 ? 21 printf("timeout=%ld\n", timeout) : 22 ({ 23 for (;;) 24 printf("error\n"); 25 }) 26 ); 27 timeout--; 28 } while (timeout); 29 } 30 static void kb_wait_2_1(void) 31 { 32 unsigned long timeout = 2; 33 do { 34 (1 ? 35 printf("timeout=%ld\n", timeout) : 36 ({ 37 do { 38 printf("error\n"); 39 } while (1); 40 }) 41 ); 42 timeout--; 43 } while (timeout); 44 } 45 static void kb_wait_2_2(void) 46 { 47 unsigned long timeout = 2; 48 do { 49 (1 ? 50 printf("timeout=%ld\n", timeout) : 51 ({ 52 label: 53 printf("error\n"); 54 goto label; 55 }) 56 ); 57 timeout--; 58 } while (timeout); 59 } 60 static void kb_wait_3(void) 61 { 62 unsigned long timeout = 2; 63 do { 64 (1 ? 65 printf("timeout=%ld\n", timeout) : 66 ({ 67 int i = 1; 68 goto label; 69 i = i + 2; 70 label: 71 i = i + 3; 72 }) 73 ); 74 timeout--; 75 } while (timeout); 76 } 77 static void kb_wait_4(void) 78 { 79 unsigned long timeout = 2; 80 do { 81 (1 ? 82 printf("timeout=%ld\n", timeout) : 83 ({ 84 switch(timeout) { 85 case 2: 86 printf("timeout is 2"); 87 break; 88 case 1: 89 printf("timeout is 1"); 90 break; 91 default: 92 printf("timeout is 0?"); 93 break; 94 }; 95 // return; 96 }) 97 ); 98 timeout--; 99 } while (timeout); 100 } 101 int main() 102 { 103 printf("begin\n"); 104 kb_wait_1(); 105 kb_wait_2(); 106 kb_wait_2_1(); 107 kb_wait_2_2(); 108 kb_wait_3(); 109 kb_wait_4(); 110 printf("end\n"); 111 return 0; 112 }