diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/testsuite/gcc.dg/torture/pr47677.c | |
download | cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2 cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'gcc/testsuite/gcc.dg/torture/pr47677.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr47677.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr47677.c b/gcc/testsuite/gcc.dg/torture/pr47677.c new file mode 100644 index 000000000..bd9077863 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr47677.c @@ -0,0 +1,34 @@ +/* { dg-do compile } */ + +struct S { int s; int u; }; +extern int bar (void); +extern struct S *baz (void); + +void +foo (int x, struct S *y, char z, int *v, struct S *s) +{ + int c, d; + if (x & 2) + d = 1; + else + { + d = (x & 1) ? 11 : 0; + while ((c = (s->s != (s->u & 1) ? s->s : bar ())) != '\0'); + c = (s->s != '\\' && (s->u & 4) ? s->s : bar ()); + if (c == '<') + goto lab; + } + while ((c = ((s->u & 1) ? s->s : bar ())) != 0 + && ((d != 11 && d != 17) || (v[c] & 1) == 0)) + { + lab:; + switch (d) + { + case 14: + if (c == '}') + y = baz (); + d = y->s = z == '<' ? 17 : 11; + } + } +} + |