aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2007-10-19 11:38:55 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2007-10-19 11:38:55 +0000
commit0eaf8b066cb91813974be215cb81f5defc09f94f (patch)
treeb43ee1fa240ee956db3572ae222db8a7712c0bf2
parent1a8076fc5ed412f28e469fecb567dd223070b19d (diff)
downloadgcc-0eaf8b066cb91813974be215cb81f5defc09f94f.zip
gcc-0eaf8b066cb91813974be215cb81f5defc09f94f.tar.gz
gcc-0eaf8b066cb91813974be215cb81f5defc09f94f.tar.bz2
20071018-1.c: New testcase.
2007-10-19 Richard Guenther <rguenther@suse.de> * gcc.c-torture/execute/20071018-1.c: New testcase. From-SVN: r129485
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20071018-1.c31
2 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a22c812..fb172cd 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,9 @@
2007-10-19 Richard Guenther <rguenther@suse.de>
+ * gcc.c-torture/execute/20071018-1.c: New testcase.
+
+2007-10-19 Richard Guenther <rguenther@suse.de>
+
PR middle-end/32921
* gfortran.dg/pr32921.f: New testcase.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20071018-1.c b/gcc/testsuite/gcc.c-torture/execute/20071018-1.c
new file mode 100644
index 0000000..ae13c73
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20071018-1.c
@@ -0,0 +1,31 @@
+extern void abort(void);
+
+struct foo {
+ int rank;
+ char *name;
+};
+
+struct mem {
+ struct foo *x[4];
+};
+
+void __attribute__((noinline)) bar(struct foo **f)
+{
+ *f = __builtin_malloc(sizeof(struct foo));
+}
+struct foo * foo(int rank)
+{
+ void *x = __builtin_malloc(sizeof(struct mem));
+ struct mem *as = x;
+ struct foo **upper = &as->x[rank * 8 - 1];
+ *upper = 0;
+ bar(upper);
+ return *upper;
+}
+
+int main()
+{
+ if (foo(0) == 0)
+ abort ();
+ return 0;
+}