Proper warnings for "risky" gotos.
This commit is contained in:
437
test/misc/goto.c
Normal file
437
test/misc/goto.c
Normal file
@@ -0,0 +1,437 @@
|
||||
void main () {
|
||||
goto end;
|
||||
{
|
||||
int a = 1;
|
||||
start:
|
||||
goto end;
|
||||
}
|
||||
goto start;
|
||||
end:;
|
||||
}
|
||||
|
||||
void f2 () {
|
||||
int a = 2;
|
||||
|
||||
l1:
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a;
|
||||
l2:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a;
|
||||
l3:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a;
|
||||
l4:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
l5:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
l6:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
l7:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a = 1;
|
||||
l8:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a = 1;
|
||||
l9:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a = 1;
|
||||
la:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
lb:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
lc:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
{
|
||||
int a = 1;
|
||||
ld:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a = 1;
|
||||
le:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
{
|
||||
int a = 1;
|
||||
lf:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
lg:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
lh:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
li:;
|
||||
goto l1;
|
||||
goto l2;
|
||||
goto l3;
|
||||
goto l4;
|
||||
goto l5;
|
||||
goto l6;
|
||||
goto l7;
|
||||
goto l8;
|
||||
goto l9;
|
||||
goto la;
|
||||
goto lb;
|
||||
goto lc;
|
||||
goto ld;
|
||||
goto le;
|
||||
goto lf;
|
||||
goto lg;
|
||||
goto lh;
|
||||
goto li;
|
||||
}
|
||||
|
||||
/* Structure of the above function.
|
||||
|
||||
void f2 () {
|
||||
int a = 2;
|
||||
|
||||
l1:
|
||||
{
|
||||
int a;
|
||||
l2:;
|
||||
{
|
||||
int a;
|
||||
l3:;
|
||||
{
|
||||
int a;
|
||||
l4:;
|
||||
}
|
||||
l5:;
|
||||
}
|
||||
l6:;
|
||||
}
|
||||
l7:;
|
||||
{
|
||||
int a = 1;
|
||||
l8:;
|
||||
{
|
||||
int a = 1;
|
||||
l9:;
|
||||
{
|
||||
int a = 1;
|
||||
la:;
|
||||
}
|
||||
lb:;
|
||||
}
|
||||
lc:;
|
||||
}
|
||||
{
|
||||
int a = 1;
|
||||
ld:;
|
||||
{
|
||||
int a = 1;
|
||||
le:;
|
||||
{
|
||||
int a = 1;
|
||||
lf:;
|
||||
}
|
||||
lg:;
|
||||
}
|
||||
lh:;
|
||||
}
|
||||
li:;
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user