# 3 "msg_193.c"
extern void reachable(void);
extern void unreachable(void);
extern _Bool maybe(void);
void
test_statement(void)
{
reachable();
reachable();
}
void
test_compound_statement(void)
{
reachable();
{
reachable();
reachable();
}
reachable();
}
void
test_if_statement(void)
{
if (1)
reachable();
reachable();
if (0)
unreachable();
reachable();
}
void
test_if_compound_statement(void)
{
if (1) {
reachable();
}
if (1) {
{
{
reachable();
}
}
}
if (0) {
unreachable();
}
if (0) {
{
{
unreachable();
}
}
}
}
void
test_if_without_else(void)
{
if (1)
reachable();
reachable();
if (0)
unreachable();
reachable();
}
void
test_if_with_else(void)
{
if (1)
reachable();
else
unreachable();
reachable();
if (0)
unreachable();
else
reachable();
reachable();
}
void
test_if_else_if_else(void)
{
if (1)
reachable();
else if (1)
unreachable();
else
unreachable();
if (0)
unreachable();
else if (1)
reachable();
else
unreachable();
if (0)
unreachable();
else if (0)
unreachable();
else
reachable();
}
void
test_if_return(void)
{
if (1)
return;
unreachable();
}
void
test_if_else_return(void)
{
if (1)
reachable();
else
return;
reachable();
}
void
test_for_forever(void)
{
for (;;)
reachable();
unreachable();
}
void
test_for_true(void)
{
for (; 1;)
reachable();
unreachable();
}
void
test_for_false(void)
{
for (; 0;)
unreachable();
reachable();
}
void
test_for_break(void)
{
for (;;) {
reachable();
break;
unreachable();
}
reachable();
}
void
test_for_if_break(void)
{
for (;;) {
reachable();
if (0) {
unreachable();
break;
unreachable();
}
if (1) {
reachable();
break;
unreachable();
}
unreachable();
}
reachable();
}
void
test_for_continue(void)
{
for (;;) {
reachable();
continue;
unreachable();
}
unreachable();
}
void
test_for_if_continue(void)
{
for (;;) {
reachable();
if (0) {
unreachable();
continue;
unreachable();
}
if (1) {
reachable();
continue;
unreachable();
}
unreachable();
}
unreachable();
}
void
test_for_return(void)
{
for (;;) {
reachable();
return;
unreachable();
}
unreachable();
}
void
test_for_if_return(void)
{
for (;;) {
reachable();
if (0) {
unreachable();
return;
unreachable();
}
if (1) {
reachable();
return;
unreachable();
}
unreachable();
}
unreachable();
}
void
test_while_true(void)
{
while (1)
reachable();
unreachable();
}
void
test_while_false(void)
{
while (0)
unreachable();
reachable();
}
void
test_while_break(void)
{
while (1) {
reachable();
break;
unreachable();
}
reachable();
}
void
test_while_if_break(void)
{
while (1) {
reachable();
if (0) {
unreachable();
break;
unreachable();
}
if (1) {
reachable();
break;
unreachable();
}
unreachable();
}
reachable();
}
void
test_while_continue(void)
{
while (1) {
reachable();
continue;
unreachable();
}
unreachable();
}
void
test_while_if_continue(void)
{
while (1) {
reachable();
if (0) {
unreachable();
continue;
unreachable();
}
if (1) {
reachable();
continue;
unreachable();
}
unreachable();
}
unreachable();
}
void
test_while_return(void)
{
while (1) {
reachable();
return;
unreachable();
}
unreachable();
}
void
test_while_if_return(void)
{
while (1) {
reachable();
if (0) {
unreachable();
return;
unreachable();
}
if (1) {
reachable();
return;
unreachable();
}
unreachable();
}
unreachable();
}
void
test_do_while_true(void)
{
do {
reachable();
} while (1);
unreachable();
}
void
test_do_while_false(void)
{
do {
reachable();
} while (0);
reachable();
}
void
test_do_while_break(void)
{
do {
reachable();
break;
unreachable();
} while (1);
reachable();
}
void
test_do_while_if_break(void)
{
do {
reachable();
if (0) {
unreachable();
break;
unreachable();
}
if (1) {
reachable();
break;
unreachable();
}
unreachable();
} while (1);
reachable();
}
void
test_do_while_continue(void)
{
do {
reachable();
continue;
unreachable();
} while (1);
unreachable();
}
void
test_do_while_if_continue(void)
{
do {
reachable();
if (0) {
unreachable();
continue;
unreachable();
}
if (1) {
reachable();
continue;
unreachable();
}
unreachable();
} while (1);
unreachable();
}
void
test_do_while_return(void)
{
do {
reachable();
return;
unreachable();
} while (1);
unreachable();
}
void
test_do_while_if_return(void)
{
do {
reachable();
if (0) {
unreachable();
return;
unreachable();
}
if (1) {
reachable();
return;
unreachable();
}
unreachable();
} while (1);
unreachable();
}
void
test_if_nested(void)
{
if (0) {
if (1)
unreachable();
else
unreachable();
if (0)
unreachable();
else
unreachable();
unreachable();
}
reachable();
if (1) {
if (1)
reachable();
else
unreachable();
if (0)
unreachable();
else
reachable();
reachable();
}
reachable();
}
void
test_if_maybe(void)
{
if (maybe()) {
if (0)
unreachable();
else
reachable();
reachable();
}
reachable();
if (0) {
if (maybe())
unreachable();
else
unreachable();
unreachable();
}
reachable();
if (1) {
if (maybe())
reachable();
else
reachable();
reachable();
}
reachable();
}
void
test_goto_numbers_alphabetically(void)
{
goto one;
eight:
goto nine;
five:
return;
four:
goto five;
nine:
goto ten;
one:
goto two;
seven:
goto eight;
six:
goto seven;
ten:
return;
three:
goto four;
two:
goto three;
}
void
test_while_goto(void)
{
while (1) {
goto out;
break;
}
unreachable();
out:
reachable();
}
void
test_unreachable_label(void)
{
if (0)
goto unreachable;
goto reachable;
unreachable:
unreachable();
reachable:
reachable();
}
void
test_switch_case_default_break(int x)
{
switch (x) {
case 1:
break;
default:
break;
}
return;
}
void
test_switch_case_default_return(int x)
{
switch (x) {
case 1:
return;
default:
return;
}
return;
}
void
test_switch_default_case_break(int x)
{
switch (x) {
default:
break;
case 1:
break;
}
return;
}
void
test_switch_default_case_return(int x)
{
switch (x) {
default:
return;
case 1:
return;
}
return;
}
void
test_switch_default_return_case_break(int x)
{
switch (x) {
default:
return;
case 1:
break;
}
return;
}
void
test_switch_default_break_case_return(int x)
{
switch (x) {
default:
break;
case 1:
return;
}
return;
}
void
test_switch_case_return_default_none(int x)
{
switch (x) {
case 1:
return;
default:
;
}
return;
}
void
test_switch_default_none_case_return(int x)
{
switch (x) {
default:
;
case 1:
return;
}
return;
}
enum minimal_enum {
CONSTANT
};
void
test_switch_enum_exhaustive(enum minimal_enum x)
{
switch (x) {
case CONSTANT:
return;
}
return;
}
void suppressed(void);
void
lint_annotation_NOTREACHED(void)
{
if (0) {
unreachable();
}
if (0) {
suppressed();
}
if (0)
suppressed();
if (1) {
reachable();
}
if (1) {
suppressed();
}
if (1)
suppressed();
}
int
test_null_statement(void)
{
;;
for (int i = 0; i < 10; i++)
;
return 0;;
}
void
invalid_case_expression(void)
{
switch (4) {
case ~0.0:
;
}
}