From 199db659d0af9e43608fee9862ede41658f2ca52 Mon Sep 17 00:00:00 2001 From: Roger Sayle Date: Sun, 19 Dec 2004 20:11:15 +0000 Subject: [PATCH] re PR middle-end/19068 ([3.3 only] Wrong code for MIN_EXPR and MAX_EXPR) PR middle-end/19068 * g++.dg/opt/max1.C: New test case. From-SVN: r92388 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/opt/max1.C | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 gcc/testsuite/g++.dg/opt/max1.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ab2a082c44a..2de4305e817 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-12-19 Roger Sayle + + PR middle-end/19068 + * g++.dg/opt/max1.C: New test case. + 2004-12-18 Eric Botcazou * gcc.dg/fdata-sections-1.c: New test. diff --git a/gcc/testsuite/g++.dg/opt/max1.C b/gcc/testsuite/g++.dg/opt/max1.C new file mode 100644 index 00000000000..714116bfb03 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/max1.C @@ -0,0 +1,29 @@ +/* PR middle-end/19068 */ +/* Test case by Andrew Pinski */ +/* { dg-do run } */ +/* { dg-options "-O2" } */ + +extern "C" void abort (void); + +long fff[10]; + +void f(long a) +{ + int i; + a = *((long*)(a+5)) >? *((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; +} + -- 2.30.2