diff options
| author | zlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-14 19:43:18 +0000 |
|---|---|---|
| committer | zlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-14 19:43:18 +0000 |
| commit | 19dea2a2e4b74882562eb11aafa2d18eb0ffd534 (patch) | |
| tree | c1bbc54245e9d51f5e96f25dfcb2e996f82d9c85 | |
| parent | 05f60603b37485613dcd611acc86d7f28e02c1ce (diff) | |
| download | ppe42-gcc-19dea2a2e4b74882562eb11aafa2d18eb0ffd534.tar.gz ppe42-gcc-19dea2a2e4b74882562eb11aafa2d18eb0ffd534.zip | |
* gcc.c-torture/compile/20040214-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77821 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20040214-2.c | 57 |
2 files changed, 61 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b9613ad8cf5..91484231857 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-02-14 Josef Zlomek <zlomekj@suse.cz> + + * gcc.c-torture/compile/20040214-2.c: New test. + 2004-02-14 Andrew Pinski <pinskia@physics.uc.edu> PR c++/14116 diff --git a/gcc/testsuite/gcc.c-torture/compile/20040214-2.c b/gcc/testsuite/gcc.c-torture/compile/20040214-2.c new file mode 100644 index 00000000000..352d5a5d764 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20040214-2.c @@ -0,0 +1,57 @@ +/* http://gcc.gnu.org/ml/gcc-patches/2004-02/msg01307.html */ + +typedef struct xdef xdef; +struct xdef +{ + char xtyp; + xdef *next; + int y; +}; + +extern void b (); +extern void *foo (void *bar); +extern void *foo2 (void *bar1, void *bar2); +extern void *qwe; + +static void +c (xdef * xp) +{ + b (xp); +} +static void +a (xdef ** xpp) +{ + xdef *xp; + xp = *xpp; + + foo (xp); + xp = foo2 (xp, qwe); + b (xp->next); + foo (xp); + if (xp->y) + { + foo (xp); + if (xp) + { + xdef *p = foo2 (xp, qwe); + foo2 (xp, p); + xp = foo (p); + } + else + { + foo2 (foo(*xpp), *xpp); + } + } + *xpp = foo2 (xpp, qwe); +} + +void +b (xdef ** xpp) +{ + xdef *xp = *xpp; + if (!xp) + return; + if (xp->xtyp == 0) + a (xpp); + c (xp); +} |

