diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/20060904-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20060904-1.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20060904-1.c b/gcc/testsuite/gcc.c-torture/compile/20060904-1.c new file mode 100644 index 000000000..f9f768664 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20060904-1.c @@ -0,0 +1,27 @@ +/* PR rtl-optimization/27616 */ +/* Reported by Lee Ji Hwan <moonz@kaist.ac.kr> */ +/* Testcase by Andrew Pinski <pinskia@gcc.gnu.org> */ + +struct chunk_s +{ + unsigned int size; + int offset_next; +}; + +typedef struct chunk_s chunk_t; + +void foo(chunk_t *first) +{ + chunk_t *cur; + char *first0; + + do { + first0 = (char *) first; + cur = (chunk_t *) (first0 + first->offset_next); + if ((chunk_t *) (first0 + cur->offset_next) != first) + return ; + + first->offset_next = 0; + + } while (cur->size != 0); +} |