summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/expr/cond1.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/expr/cond1.C')
-rw-r--r--gcc/testsuite/g++.dg/expr/cond1.C28
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/expr/cond1.C b/gcc/testsuite/g++.dg/expr/cond1.C
new file mode 100644
index 000000000..8fb3c0f4f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/cond1.C
@@ -0,0 +1,28 @@
+// { dg-do run }
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 17 Oct 2002 <nathan@codesourcery.com>
+
+// PR 7209. We didn't SAVE_EXPR in the right place
+
+char a[2][1][16]={
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}};
+
+int f() {return 0;}
+
+char * Foo (int d)
+{
+ char *c1;
+
+ c1=a[d==0 ? 0 : 1][f()];
+
+ return c1;
+}
+
+int main ()
+{
+ if (Foo (0) != (void *)a)
+ return 1;
+ return 0;
+}