nocode_wanted with while/for inside ({})
a test included.
This commit is contained in:
80
tests/tests2/82_nocode_wanted.c
Normal file
80
tests/tests2/82_nocode_wanted.c
Normal file
@ -0,0 +1,80 @@
|
||||
extern int printf(const char *format, ...);
|
||||
static void kb_wait_1(void)
|
||||
{
|
||||
unsigned long timeout = 2;
|
||||
do {
|
||||
(1 ?
|
||||
printf("timeout=%ld\n", timeout) :
|
||||
({
|
||||
while (1)
|
||||
printf("error\n");
|
||||
})
|
||||
);
|
||||
timeout--;
|
||||
} while (timeout);
|
||||
}
|
||||
static void kb_wait_2(void)
|
||||
{
|
||||
unsigned long timeout = 2;
|
||||
do {
|
||||
(1 ?
|
||||
printf("timeout=%ld\n", timeout) :
|
||||
({
|
||||
for (;;)
|
||||
printf("error\n");
|
||||
})
|
||||
);
|
||||
timeout--;
|
||||
} while (timeout);
|
||||
}
|
||||
static void kb_wait_3(void)
|
||||
{
|
||||
unsigned long timeout = 2;
|
||||
do {
|
||||
(1 ?
|
||||
printf("timeout=%ld\n", timeout) :
|
||||
({
|
||||
int i = 1;
|
||||
goto label;
|
||||
i = i + 2;
|
||||
label:
|
||||
i = i + 3;
|
||||
})
|
||||
);
|
||||
timeout--;
|
||||
} while (timeout);
|
||||
}
|
||||
static void kb_wait_4(void)
|
||||
{
|
||||
unsigned long timeout = 2;
|
||||
do {
|
||||
(1 ?
|
||||
printf("timeout=%ld\n", timeout) :
|
||||
({
|
||||
switch(timeout) {
|
||||
case 2:
|
||||
printf("timeout is 2");
|
||||
break;
|
||||
case 1:
|
||||
printf("timeout is 1");
|
||||
break;
|
||||
default:
|
||||
printf("timeout is 0?");
|
||||
break;
|
||||
};
|
||||
// return;
|
||||
})
|
||||
);
|
||||
timeout--;
|
||||
} while (timeout);
|
||||
}
|
||||
int main()
|
||||
{
|
||||
printf("begin\n");
|
||||
kb_wait_1();
|
||||
kb_wait_2();
|
||||
kb_wait_3();
|
||||
kb_wait_4();
|
||||
printf("end\n");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user