aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2006-08-14 23:15:57 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2006-08-14 23:15:57 +0000
commit9f4593a8563143a67df852e7264c82f8c839ef47 (patch)
tree037c92132b9ff04a802c1d4cf96c9a6cd9bb129c /gcc
parentb52dbbf86510c011400a97e204cf9384fef83b0c (diff)
downloadgcc-9f4593a8563143a67df852e7264c82f8c839ef47.zip
gcc-9f4593a8563143a67df852e7264c82f8c839ef47.tar.gz
gcc-9f4593a8563143a67df852e7264c82f8c839ef47.tar.bz2
re PR c++/28288 (ICE with min/max operator)
PR c++/28288 PR c++/14556 * g++.old-deja/g++.warn/compare1.C: Delete. * g++.dg/opt/pr7503-2.C: Delete. * g++.dg/opt/pr7503-3.C: Delete. * g++.dg/opt/pr7503-4.C: Delete. * g++.dg/opt/pr7503-5.C: Delete. * g++.dg/opt/max1.C: Delete. * g++.dg/warn/minmax.C: Delete. * g++.dg/expr/minmax.C: New test. From-SVN: r116141
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog13
-rw-r--r--gcc/testsuite/g++.dg/expr/minmax.C14
-rw-r--r--gcc/testsuite/g++.dg/opt/max1.C29
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-2.C79
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-3.C26
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-4.C81
-rw-r--r--gcc/testsuite/g++.dg/opt/pr7503-5.C81
-rw-r--r--gcc/testsuite/g++.dg/warn/minmax.C15
-rw-r--r--gcc/testsuite/g++.old-deja/g++.warn/compare1.C36
9 files changed, 27 insertions, 347 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 19b3349..6802b84 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,16 @@
+2006-08-14 Steve Ellcey <sje@cup.hp.com>
+
+ PR c++/28288
+ PR c++/14556
+ * g++.old-deja/g++.warn/compare1.C: Delete.
+ * g++.dg/opt/pr7503-2.C: Delete.
+ * g++.dg/opt/pr7503-3.C: Delete.
+ * g++.dg/opt/pr7503-4.C: Delete.
+ * g++.dg/opt/pr7503-5.C: Delete.
+ * g++.dg/opt/max1.C: Delete.
+ * g++.dg/warn/minmax.C: Delete.
+ * g++.dg/expr/minmax.C: New test.
+
2006-08-14 Richard Guenther <rguenther@suse.de>
PR testsuite/28703
diff --git a/gcc/testsuite/g++.dg/expr/minmax.C b/gcc/testsuite/g++.dg/expr/minmax.C
new file mode 100644
index 0000000..407a92b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/minmax.C
@@ -0,0 +1,14 @@
+// { dg-do compile }
+
+void f(void)
+{
+ int a, b;
+ (a >? b) = 1; // { dg-error "" }
+}
+
+
+void g(void)
+{
+ int a, b;
+ (a <? b) = 1; // { dg-error "" }
+}
diff --git a/gcc/testsuite/g++.dg/opt/max1.C b/gcc/testsuite/g++.dg/opt/max1.C
deleted file mode 100644
index 10a6e57..0000000
--- a/gcc/testsuite/g++.dg/opt/max1.C
+++ /dev/null
@@ -1,29 +0,0 @@
-/* PR middle-end/19068 */
-/* Test case by Andrew Pinski <pinskia@physics.uc.edu> */
-/* { dg-do run } */
-/* { dg-options "-O2 -Wno-deprecated" } */
-
-extern "C" void abort (void);
-
-long fff[10];
-
-void f(long a)
-{
- int i;
- a = *((long*)(a+1+sizeof(long))) >? *((long*)(a+1));
-
- for(i=0;i<10;i++)
- fff[i] = a;
-}
-
-int main(void)
-{
- int i;
- long a[2] = {10,5};
- f((long)(&a)-1);
- for(i = 0;i<10;i++)
- if (fff[i]!=10)
- abort ();
- return 0;
-}
-
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-2.C b/gcc/testsuite/g++.dg/opt/pr7503-2.C
deleted file mode 100644
index 02ce598..0000000
--- a/gcc/testsuite/g++.dg/opt/pr7503-2.C
+++ /dev/null
@@ -1,79 +0,0 @@
-// PR c++/7503
-// { dg-do run }
-// { dg-options "-O2 -Wno-deprecated" }
-
-extern "C" void abort();
-
-void test1a()
-{
- int A = 4;
- int B = 4;
-
- (A >? B) = 1;
- if (A != 1 || B != 4)
- abort ();
-}
-
-void test1b()
-{
- int A = 3;
- int B = 5;
-
- (A >? B) = 1;
- if (A != 3 || B != 1)
- abort ();
-}
-
-void test1c()
-{
- int A = 5;
- int B = 3;
-
- (A >? B) = 1;
- if (A != 1 || B != 3)
- abort ();
-}
-
-
-void test2a()
-{
- int A = 4;
- int B = 4;
-
- (A <? B) = 1;
- if (A != 1 || B != 4)
- abort ();
-}
-
-void test2b()
-{
- int A = 3;
- int B = 5;
-
- (A <? B) = 1;
- if (A != 1 || B != 5)
- abort ();
-}
-
-void test2c()
-{
- int A = 5;
- int B = 3;
-
- (A <? B) = 1;
- if (A != 5 || B != 1)
- abort ();
-}
-
-
-int main()
-{
- test1a();
- test1b();
- test1c();
- test2a();
- test2b();
- test2c();
- return 0;
-}
-
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-3.C b/gcc/testsuite/g++.dg/opt/pr7503-3.C
deleted file mode 100644
index dc71d20..0000000
--- a/gcc/testsuite/g++.dg/opt/pr7503-3.C
+++ /dev/null
@@ -1,26 +0,0 @@
-// PR c++/7503
-// { dg-do compile }
-// { dg-options "-O2 -Wno-deprecated" }
-
-extern int A, B;
-
-void test1()
-{
- (A++ <? B) = 0; // { dg-error "lvalue required" }
-}
-
-void test2()
-{
- (A <? B++) = 0; // { dg-error "lvalue required" }
-}
-
-void test3()
-{
- (A++ >? B) = 0; // { dg-error "lvalue required" }
-}
-
-void test4()
-{
- (A >? B++) = 0; // { dg-error "lvalue required" }
-}
-
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-4.C b/gcc/testsuite/g++.dg/opt/pr7503-4.C
deleted file mode 100644
index 7ed7094..0000000
--- a/gcc/testsuite/g++.dg/opt/pr7503-4.C
+++ /dev/null
@@ -1,81 +0,0 @@
-// PR c++/7503
-// { dg-do run }
-// { dg-options "-O2 -Wno-deprecated" }
-
-extern "C" void abort();
-
-void test1a()
-{
- int A = 4;
- int B = 4;
-
- A >?= B;
- if (A != 4 || B != 4)
- abort ();
-}
-
-void test1b()
-{
- int A = 3;
- int B = 5;
-
- A >?= B;
- if (A != 5 || B != 5)
- abort ();
-}
-
-void test1c()
-{
- int A = 5;
- int B = 3;
-
- A >?= B;
- if (A != 5 || B != 3)
- abort ();
-}
-
-
-void test2a()
-{
- int A = 4;
- int B = 4;
-
- A <?= B;
- if (A != 4 || B != 4)
- abort ();
-}
-
-void test2b()
-{
- int A = 3;
- int B = 5;
-
- A <?= B;
- if (A != 3 || B != 5)
- abort ();
-}
-
-void test2c()
-{
- int A = 5;
- int B = 3;
-
- A <?= B;
- if (A != 3 || B != 3)
- abort ();
-}
-
-
-int main()
-{
- test1a();
- test1b();
- test1c();
-
- test2a();
- test2b();
- test2c();
-
- return 0;
-}
-
diff --git a/gcc/testsuite/g++.dg/opt/pr7503-5.C b/gcc/testsuite/g++.dg/opt/pr7503-5.C
deleted file mode 100644
index 236ac93..0000000
--- a/gcc/testsuite/g++.dg/opt/pr7503-5.C
+++ /dev/null
@@ -1,81 +0,0 @@
-// PR c++/7503
-// { dg-do run }
-// { dg-options "-O2 -Wno-deprecated" }
-
-extern "C" void abort();
-
-void test1a()
-{
- int A = 4;
- int B = 4;
-
- A >?= B++;
- if (A != 4 || B != 5)
- abort ();
-}
-
-void test1b()
-{
- int A = 3;
- int B = 5;
-
- A >?= B++;
- if (A != 5 || B != 6)
- abort ();
-}
-
-void test1c()
-{
- int A = 5;
- int B = 3;
-
- A >?= B++;
- if (A != 5 || B != 4)
- abort ();
-}
-
-
-void test2a()
-{
- int A = 4;
- int B = 4;
-
- A <?= B++;
- if (A != 4 || B != 5)
- abort ();
-}
-
-void test2b()
-{
- int A = 3;
- int B = 5;
-
- A <?= B++;
- if (A != 3 || B != 6)
- abort ();
-}
-
-void test2c()
-{
- int A = 5;
- int B = 3;
-
- A <?= B++;
- if (A != 3 || B != 4)
- abort ();
-}
-
-
-int main()
-{
- test1a();
- test1b();
- test1c();
-
- test2a();
- test2b();
- test2c();
-
- return 0;
-}
-
diff --git a/gcc/testsuite/g++.dg/warn/minmax.C b/gcc/testsuite/g++.dg/warn/minmax.C
deleted file mode 100644
index 7431bfc..0000000
--- a/gcc/testsuite/g++.dg/warn/minmax.C
+++ /dev/null
@@ -1,15 +0,0 @@
-int i, j, k;
-
-void f() {
- i = j <? k; // { dg-warning "deprecated" }
- i = j >? k; // { dg-warning "deprecated" }
- i <?= j; // { dg-warning "deprecated" }
- i >?= j; // { dg-warning "deprecated" }
-}
-
-struct S {
- void operator<?(int); // { dg-warning "deprecated" }
- void operator>?(int); // { dg-warning "deprecated" }
- void operator<?=(int); // { dg-warning "deprecated" }
- void operator>?=(int); // { dg-warning "deprecated" }
-};
diff --git a/gcc/testsuite/g++.old-deja/g++.warn/compare1.C b/gcc/testsuite/g++.old-deja/g++.warn/compare1.C
deleted file mode 100644
index 7a23180..0000000
--- a/gcc/testsuite/g++.old-deja/g++.warn/compare1.C
+++ /dev/null
@@ -1,36 +0,0 @@
-// { dg-do assemble }
-// { dg-options "-ansi -pedantic-errors -Wsign-compare -Wno-deprecated" }
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-// Contributed by Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5/13/2001
-
-int foo(int x, int y, unsigned u)
-{
- /* A MAX_EXPR is non-negative if EITHER argument to the MAX_EXPR is
- determined to be non-negative. */
- if (u < (x >? -1)) // { dg-warning "" } signed and unsigned
- return x;
- if (u < (x >? 10))
- return x;
- if ((10 >? x) < u)
- return x;
- if (u < (x >? (y ? (x==y) : 10)))
- return x;
- if (((y ? 10 : (x==y)) >? x) < u)
- return x;
-
- /* A MIN_EXPR is non-negative if BOTH arguments to the MIN_EXPR are
- determined to be non-negative. */
- if (u < ((x?11:8) <? -1)) // { dg-warning "" } signed and unsigned
- return x;
- if (u < ((x?11:8) <? 10))
- return x;
- if ((10 <? (x?8:11)) < u)
- return x;
- if (u < ((x?11:(x==y)) <? 10))
- return x;
- if ((10 <? (x?(x==y):11)) < u)
- return x;
-
- return 0;
-}