aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20060904-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20060904-1.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20060904-1.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20060904-1.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/20060904-1.c
new file mode 100644
index 000000000..f9f768664
--- /dev/null
+++ b/gcc-4.9/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);
+}