From: Steve Ellcey Date: Mon, 14 Aug 2006 23:15:57 +0000 (+0000) Subject: re PR c++/28288 (ICE with min/max operator) X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9f4593a8563143a67df852e7264c82f8c839ef47;p=platform%2Fupstream%2Fgcc.git 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 --- 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 + + 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 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 */ -/* { 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) = 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 != 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 ? k; // { dg-warning "deprecated" } - i ?= j; // { dg-warning "deprecated" } -} - -struct S { - 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 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)