diff -Nrc3pad gcc-3.2.2/gcc/testsuite/ChangeLog gcc-3.2.3/gcc/testsuite/ChangeLog *** gcc-3.2.2/gcc/testsuite/ChangeLog Wed Feb 5 03:01:22 2003 --- gcc-3.2.3/gcc/testsuite/ChangeLog Tue Apr 22 06:15:15 2003 *************** *** 1,3 **** --- 1,178 ---- + 2003-04-22 Release Manager + + * GCC 3.2.3 Released. + + 2003-04-16 Gabriel Dos Reis + Backport from mainline. + + 2003-03-17 Zack Weinberg + + * objc.dg/naming-1.m: Use "(parse|syntax) error". + * objc.dg/naming-2.m: Likewise. + + 2003-04-14 Hans-Peter Nilsson + + PR target/10377 + * gcc.dg/20030414-1.c: New test. + + 2003-04-12 Eric Botcazou + + * gcc.dg/ultrasp8.c: Fix for 32-bit Sparc. + + 2003-03-29 Kaveh R. Ghazi + + * gcc.c-torture/execute/20020307-2.x: New file, XFAIL mips-irix6. + + 2003-03-29 Arpad Beszedes + + PR middle-end/9967 + * gcc.c-torture/execute/stdio-opt-1.c: Adjust test for change to + builtin fputs. + + 2003-03-29 Mikulas Patocka + + * gcc.dg/20030323-1.c: New test. + + 2003-03-28 Eric Botcazou + + * gcc.dg/ultrasp8.c: New test. + + 2003-03-28 Eric Botcazou + + * gcc.dg/ultrasp7.c: New test. + + 2003-03-28 Eric Botcazou + + * gcc.dg/sparc-dwarf2.c: New test. + + 2003-03-26 Eric Botcazou + + * gcc.dg/ultrasp6.c: New test. + + 2003-03-25 Eric Botcazou + + * gcc.dg/i386-signbit-1.c: Tweak options. + * gcc.dg/i386-signbit-2.c: New test. + * gcc.dg/i386-signbit-3.c: New test. + + 2003-03-24 Jakub Jelinek + + * g++.dg/opt/rtti1.C: New test. + + 2003-03-23 Daniel Jacobowitz + + * gcc.c-torture/execute/20030224-2.c: New test. + + 2003-03-19 Eric Botcazou + + * gcc.dg/i386-signbit-1.c: New test. + + 2003-03-19 Jakub Jelinek + + * gcc.c-torture/execute/20030313-1.c: New test. + + 2003-03-19 Jakub Jelinek + + * gcc.dg/20030309-1.c: New test. + + 2003-03-16 Falk Hueffner + + * gcc.c-torture/execute/20030316-1.c: New test case. + + 2003-03-16 Kriang Lerdsuwanakij + + PR c++/6440 + * g++.dg/template/spec7.C: New test. + * g++.dg/template/spec8.C: Likewise. + + 2003-03-14 Eric Botcazou + + * gcc.c-torture/compile/20030314-1.c: New test. + + 2003-03-12 Eric Botcazou + + * gcc.dg/decl-3.c: New test. + + 2003-03-12 Eric Botcazou + + * gcc.dg/i386-loop-2.c: New test. + + 2003-03-09 Eric Botcazou + + * gcc.dg/i386-loop-1.c: New test. + + 2003-03-08 Hans-Peter Nilsson + + * gcc.dg/old-style-asm-1.c: Tweak to match mmix-knuth-mmixware. + + 2003-03-07 Eric Botcazou + + * gcc.c-torture/execute/20030307-1.c: New test. + + 2003-03-05 Eric Botcazou + + * gcc.c-torture/compile/20030305-1.c: New test. + + 2003-02-25 Franz Sirl + + PR target/9732 + * gcc.dg/20030225-1.c: New test. + + 2003-02-24 Rainer Orth + + * g++.dg/other/pragma-ep-1.C: Test for __PRAGMA_EXTERN_PREFIX. + * gcc.dg/pragma-ep-1.c: Likewise. + + 2003-02-24 Kriang Lerdsuwanakij + + PR c++/9602 + * g++.dg/template/friend16.C: New test. + + 2003-02-23 Hans-Peter Nilsson + + * gcc.dg/asmreg-1.c: New test. + + 2003-02-23 Kriang Lerdsuwanakij + + PR c++/7982 + * g++.dg/warn/implicit-typename1.C: New test. + + 2003-02-21 Glen Nakamura + + * gcc.c-torture/execute/20030221-1.c: New test. + + 2003-02-20 Randolph Chung + + * gcc.c-torture/compile/20030220-1.c: New test. + + 2003-02-19 Kriang Lerdsuwanakij + + PR c++/9459 + * g++.dg/ext/typeof4.C: New test. + + 2003-02-18 Jakub Jelinek + + * gcc.dg/20030217-1.c: New test. + + 2003-02-10 Eric Botcazou + Christian Ehrhardt + + * gcc.dg/decl-2.c: New test. + + 2003-02-06 Kaveh R. Ghazi + + * gcc.dg/20020430-1.c: Fix dg command typos. + * gcc.dg/20020503-1.c: Likewise. + + 2003-02-06 Eric Botcazou + + * gcc.c-torture/compile/20030206-1.c: New test. + + 2003-02-05 Kaveh R. Ghazi + + * gcc.c-torture/execute/20020227-1.x: Update specific XFAIL + conditions for SPARC targets. + 2003-02-05 Release Manager * GCC 3.2.2 Released. *************** Mon Mar 22 14:28:46 1993 Ian Lance Tayl *** 11900,11902 **** --- 12075,12078 ---- correspond to c-torture 1.11. * New file. + diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/ext/typeof4.C gcc-3.2.3/gcc/testsuite/g++.dg/ext/typeof4.C *** gcc-3.2.2/gcc/testsuite/g++.dg/ext/typeof4.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/g++.dg/ext/typeof4.C Wed Feb 19 15:28:31 2003 *************** *** 0 **** --- 1,13 ---- + // { dg-do compile } + // { dg-options "" } + + // Origin: Wolfgang Bangerth + + // PR c++/9459: typeof in return type of template function + + void foo (int) {} + void foo (double) {} + + template + typeof(foo(1)) + bar () { return foo(1); } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/opt/reload2.C gcc-3.2.3/gcc/testsuite/g++.dg/opt/reload2.C *** gcc-3.2.2/gcc/testsuite/g++.dg/opt/reload2.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/g++.dg/opt/reload2.C Thu Apr 10 22:17:36 2003 *************** *** 0 **** --- 1,42 ---- + // PR 10352 + // { dg-do compile } + // { dg-options -O2 } + + extern double fabs(double x); + + typedef struct { float x, y; } S; + typedef struct _T T; + + extern void fT( T *p ); + extern T *h(); + extern S g( ); + + static + int f(void) + { + T *t=0; + int c=0; + S s; + + const S exp_s = {0.,0.}; + + if(!(t = h())) + { + c++; + } + + if(!c) + { + s = g(); + if( (fabs( (s.x) - (exp_s.x) ) > 1 ) + || (fabs( (s.y) - (exp_s.y) ) > 1 ) ) + { + c++; + } + } + + if(t) + fT(t); + + return c; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/opt/rtti1.C gcc-3.2.3/gcc/testsuite/g++.dg/opt/rtti1.C *** gcc-3.2.2/gcc/testsuite/g++.dg/opt/rtti1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/g++.dg/opt/rtti1.C Mon Mar 24 11:33:50 2003 *************** *** 0 **** --- 1,20 ---- + // Test that typeid sees through references even when optimizing. + // { dg-do run } + // { dg-options "-O2" } + + #include + + struct A + { + virtual ~A() { } + }; + + class B : public A { }; + + int main () + { + B b; + A &aref = b; + + return typeid (aref) != typeid (b); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/other/pragma-ep-1.C gcc-3.2.3/gcc/testsuite/g++.dg/other/pragma-ep-1.C *** gcc-3.2.2/gcc/testsuite/g++.dg/other/pragma-ep-1.C Fri Mar 22 22:49:49 2002 --- gcc-3.2.3/gcc/testsuite/g++.dg/other/pragma-ep-1.C Mon Feb 24 18:46:26 2003 *************** *** 5,11 **** /* { dg-final { scan-assembler "four" } } */ /* { dg-final { scan-assembler-not "_four" } } */ ! #ifndef __EXTERN_PREFIX #error #endif --- 5,11 ---- /* { dg-final { scan-assembler "four" } } */ /* { dg-final { scan-assembler-not "_four" } } */ ! #ifndef __PRAGMA_EXTERN_PREFIX #error #endif diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/template/friend16.C gcc-3.2.3/gcc/testsuite/g++.dg/template/friend16.C *** gcc-3.2.2/gcc/testsuite/g++.dg/template/friend16.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/g++.dg/template/friend16.C Mon Feb 24 15:29:29 2003 *************** *** 0 **** --- 1,16 ---- + // { dg-do compile } + + // Origin: Wolfgang Bangerth + + // PR c++/9602: Inline friend/pure virtual tree data sharing in + // class template. + + template struct X { + void foo (X); + friend void bar () {} + }; + + template + void X::foo (X x) {} + + template struct X; diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/template/spec7.C gcc-3.2.3/gcc/testsuite/g++.dg/template/spec7.C *** gcc-3.2.2/gcc/testsuite/g++.dg/template/spec7.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/g++.dg/template/spec7.C Sun Mar 16 14:28:43 2003 *************** *** 0 **** --- 1,27 ---- + // { dg-do compile } + + // PR c++/6440: Specialization of member class template. + + template struct A + { + template struct B {}; + }; + + template<> template + struct A::B + { + void f(); + template void g(V); + }; + + template<> template<> template void A::B::g(V) + { + } + + A::B b; + + int h() + { + b.f(); + b.g(0); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/template/spec8.C gcc-3.2.3/gcc/testsuite/g++.dg/template/spec8.C *** gcc-3.2.2/gcc/testsuite/g++.dg/template/spec8.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/g++.dg/template/spec8.C Sun Mar 16 14:28:43 2003 *************** *** 0 **** --- 1,11 ---- + // { dg-do compile } + + // Specialization of member class template. + + template struct A + { + template struct B {}; + }; + + template <> template <> struct A::B {}; + template <> template struct A::B {}; // { dg-error "specialization" } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.dg/warn/implicit-typename1.C gcc-3.2.3/gcc/testsuite/g++.dg/warn/implicit-typename1.C *** gcc-3.2.2/gcc/testsuite/g++.dg/warn/implicit-typename1.C Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/g++.dg/warn/implicit-typename1.C Sun Feb 23 14:49:01 2003 *************** *** 0 **** --- 1,17 ---- + // The -pedantic option must be omitted to trigger the crash. + // { dg-do compile } + // { dg-options "" } + + // PR c++/7982: Crash warning about implicit typename. + // The base class refers to another typename, while the + // name lookup finds a template. + + template struct X {}; + + template struct C { + typedef typename T::X X; + }; + + template struct A : public C { + typedef X X; // { dg-warning "lookup|dependent base|typename" } + }; diff -Nrc3pad gcc-3.2.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-3.2.3/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog *** gcc-3.2.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed Feb 5 03:01:25 2003 --- gcc-3.2.3/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Tue Apr 22 06:15:19 2003 *************** *** 1,3 **** --- 1,7 ---- + 2003-04-22 Release Manager + + * GCC 3.2.3 Released. + 2003-02-05 Release Manager * GCC 3.2.2 Released. diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030206-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030206-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030206-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030206-1.c Thu Feb 6 10:59:21 2003 *************** *** 0 **** --- 1,14 ---- + /* PR c/9530 */ + /* Contributed by Volker Reichelt. */ + + /* Verify that the call to 'foo' is not turned + into a sibling call. */ + + void foo(float d); + + float bar(float d); + + float baz(float d) + { + foo(bar(d)); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030220-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030220-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030220-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030220-1.c Thu Feb 20 20:11:04 2003 *************** *** 0 **** --- 1,20 ---- + /* PR optimization/9768 */ + /* Originator: Randolph Chung */ + + inline int fixfloor (long x) + { + if (x >= 0) + return (x >> 16); + else + return ~((~x) >> 16); + } + + inline int fixtoi (long x) + { + return fixfloor(x) + ((x & 0x8000) >> 15); + } + + int foo(long x, long y) + { + return fixtoi(x*y); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030305-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030305-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030305-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030305-1.c Wed Mar 5 09:00:43 2003 *************** *** 0 **** --- 1,18 ---- + /* PR c/9799 */ + /* Verify that GCC doesn't crash on excess elements + in initializer for a flexible array member. */ + + typedef struct { + int aaa; + } s1_t; + + typedef struct { + int bbb; + s1_t s1_array[]; + } s2_t; + + static s2_t s2_array[]= { + { 1, 4 }, + { 2, 5 }, + { 3, 6 } + }; diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030314-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030314-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/compile/20030314-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/compile/20030314-1.c Fri Mar 14 14:59:34 2003 *************** *** 0 **** --- 1,18 ---- + /* PR optimization/8396 */ + /* Originator: */ + + /* Verify that the tree inliner doesn't mess up the types + when passing the value of read-only constant arguments. */ + + static inline bar(const short int xs, const short int xe) + { + if (xe && (xs < xe)) + ; + } + + void f() + { + short int xe; + + bar(0, xe); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20020227-1.x gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20020227-1.x *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20020227-1.x Thu Apr 25 18:44:37 2002 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20020227-1.x Thu Feb 6 00:39:12 2003 *************** *** 2,21 **** # been observed to fail on at least mips-irix6, alpha, ia64, hppa64, # sparc64/sparcv9 and mmix during April 2002. ! if { [istarget "*64*-*-*"] || [istarget "alpha*-*-*"] || [istarget "mmix-*-*"] ! || [istarget "sparcv9-*-*"] || [istarget "mips*-*-irix6*"] } { ! set torture_execute_xfail [istarget] ! } ! ! # Regular sparc- also fails with -m64. ! set torture_eval_before_execute { ! global compiler_conditional_xfail_data ! set compiler_conditional_xfail_data { ! "This test fails on 64-bit targets, see PR6221." \ ! { "sparc-*-*" } \ ! { "-m64" } \ ! { "" } } } return 0 --- 2,33 ---- # been observed to fail on at least mips-irix6, alpha, ia64, hppa64, # sparc64/sparcv9 and mmix during April 2002. ! if { [istarget "sparc64-*-*"] || [istarget "sparcv9-*-*"] } { ! # On sparc64/sparcv9 it doesn't fail at -O0/-O1, or at all with -m32. ! set torture_eval_before_execute { ! global compiler_conditional_xfail_data ! set compiler_conditional_xfail_data { ! "This test fails on 64-bit targets, see PR6221." \ ! { "*-*-*" } \ ! { "-O2" "-O3" "-Os" } \ ! { "-m32" } ! } } + } elseif { [istarget "sparc-*-*"] } { + # Regular sparc fails with -m64, but not with -O0/-O1. + set torture_eval_before_execute { + global compiler_conditional_xfail_data + set compiler_conditional_xfail_data { + "This test fails on 64-bit targets, see PR6221." \ + { "*-*-*" } \ + { "-m64" } \ + { "-O0" "-O1" } + } + } + } elseif { [istarget "*64*-*-*"] || [istarget "alpha*-*-*"] + || [istarget "mmix-*-*"] || [istarget "mips*-*-irix6*"] } { + # Other 64-bit targets fail at all optimization levels. + set torture_execute_xfail [istarget] } return 0 diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20020307-2.x gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20020307-2.x *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20020307-2.x Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20020307-2.x Sun Mar 30 04:45:07 2003 *************** *** 0 **** --- 1,7 ---- + # This doesn't work on MIPS Irix, see PR6222 + + if { [istarget "mips*-sgi-irix6*"] } { + set torture_execute_xfail [istarget] + } + + return 0 diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030221-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030221-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030221-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030221-1.c Fri Feb 21 08:18:06 2003 *************** *** 0 **** --- 1,17 ---- + /* PR optimization/8613 */ + /* Contributed by Glen Nakamura */ + + extern void abort (void); + + int main (void) + { + char buf[16] = "1234567890"; + char *p = buf; + + *p++ = (char) __builtin_strlen (buf); + + if ((buf[0] != 10) || (p - buf != 1)) + abort (); + + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030224-2.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030224-2.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030224-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030224-2.c Mon Mar 24 04:02:00 2003 *************** *** 0 **** --- 1,28 ---- + /* Make sure that we don't free any temp stack slots associated with + initializing marker before we're finished with them. */ + + extern void abort(); + + typedef struct { short v16; } __attribute__((packed)) jint16_t; + + struct node { + jint16_t magic; + jint16_t nodetype; + int totlen; + } __attribute__((packed)); + + struct node node, *node_p = &node; + + int main() + { + struct node marker = { + .magic = (jint16_t) {0x1985}, + .nodetype = (jint16_t) {0x2003}, + .totlen = node_p->totlen + }; + if (marker.magic.v16 != 0x1985) + abort(); + if (marker.nodetype.v16 != 0x2003) + abort(); + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030307-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030307-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030307-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030307-1.c Fri Mar 7 07:58:39 2003 *************** *** 0 **** --- 1,26 ---- + /* PR optimization/8726 */ + /* Originator: Paul Eggert */ + + /* Verify that GCC doesn't miscompile tail calls on Sparc. */ + + extern void abort(void); + + int fcntl_lock(int fd, int op, long long offset, long long count, int type); + + int vfswrap_lock(char *fsp, int fd, int op, long long offset, long long count, int type) + { + return fcntl_lock(fd, op, offset, count, type); + } + + int fcntl_lock(int fd, int op, long long offset, long long count, int type) + { + return type; + } + + int main(void) + { + if (vfswrap_lock (0, 1, 2, 3, 4, 5) != 5) + abort(); + + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030313-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030313-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030313-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030313-1.c Wed Mar 19 12:43:02 2003 *************** *** 0 **** --- 1,68 ---- + struct A + { + unsigned long p, q, r, s; + } x = { 13, 14, 15, 16 }; + + extern void abort (void); + extern void exit (int); + + static inline struct A * + bar (void) + { + struct A *r; + + switch (8) + { + case 2: + abort (); + break; + case 8: + r = &x; + break; + default: + abort (); + break; + } + return r; + } + + void + foo (unsigned long *x, int y) + { + if (y != 12) + abort (); + if (x[0] != 1 || x[1] != 11) + abort (); + if (x[2] != 2 || x[3] != 12) + abort (); + if (x[4] != 3 || x[5] != 13) + abort (); + if (x[6] != 4 || x[7] != 14) + abort (); + if (x[8] != 5 || x[9] != 15) + abort (); + if (x[10] != 6 || x[11] != 16) + abort (); + } + + int + main (void) + { + unsigned long a[40]; + int b = 0; + + a[b++] = 1; + a[b++] = 11; + a[b++] = 2; + a[b++] = 12; + a[b++] = 3; + a[b++] = bar()->p; + a[b++] = 4; + a[b++] = bar()->q; + a[b++] = 5; + a[b++] = bar()->r; + a[b++] = 6; + a[b++] = bar()->s; + foo (a, b); + exit (0); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030316-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030316-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/20030316-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/20030316-1.c Sun Mar 16 19:47:36 2003 *************** *** 0 **** --- 1,12 ---- + /* PR target/9164 */ + /* The comparison operand was sign extended erraneously. */ + + int + main (void) + { + long j = 0x40000000; + if ((unsigned int) (0x40000000 + j) < 0L) + abort (); + + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c *** gcc-3.2.2/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c Tue Jan 2 02:04:52 2001 --- gcc-3.2.3/gcc/testsuite/gcc.c-torture/execute/stdio-opt-1.c Sun Mar 30 04:42:18 2003 *************** int main() *** 54,60 **** return 0; } ! #ifdef __OPTIMIZE__ /* When optimizing, all the above cases should be transformed into something else. So any remaining calls to the original function should abort. */ --- 54,60 ---- return 0; } ! #if defined (__OPTIMIZE__) && ! defined (__OPTIMIZE_SIZE__) /* When optimizing, all the above cases should be transformed into something else. So any remaining calls to the original function should abort. */ diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/20020430-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/20020430-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/20020430-1.c Fri May 3 14:08:33 2002 --- gcc-3.2.3/gcc/testsuite/gcc.dg/20020430-1.c Fri Feb 7 04:01:18 2003 *************** *** 5,11 **** which left a reference to the deleted ADDR_VEC. */ /* { dg-do compile } */ ! /* { do-options "-O2 -frename-registers -fpic" } */ typedef unsigned long XID; typedef XID Window; --- 5,11 ---- which left a reference to the deleted ADDR_VEC. */ /* { dg-do compile } */ ! /* { dg-options "-O2 -frename-registers -fpic" } */ typedef unsigned long XID; typedef XID Window; diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/20020503-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/20020503-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/20020503-1.c Fri May 3 20:46:23 2002 --- gcc-3.2.3/gcc/testsuite/gcc.dg/20020503-1.c Fri Feb 7 04:01:18 2003 *************** *** 4,11 **** for leaf functions, the function was still leaf, but LEAF_REG_REMAP returned -1 for some registers (like %o0). */ /* { dg-do compile } */ ! /* { do-options "-O2 -g" } */ ! /* { do-options "-O2 -g -mflat" { target sparc*-*-* } } */ void foo (char *a, char *b, char *c, char *d) { --- 4,11 ---- for leaf functions, the function was still leaf, but LEAF_REG_REMAP returned -1 for some registers (like %o0). */ /* { dg-do compile } */ ! /* { dg-options "-O2 -g" } */ ! /* { dg-options "-O2 -g -mflat" { target sparc*-*-* } } */ void foo (char *a, char *b, char *c, char *d) { diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/20030217-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/20030217-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/20030217-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/20030217-1.c Tue Feb 18 23:43:55 2003 *************** *** 0 **** --- 1,18 ---- + /* Test whether denormal floating point constants in hexadecimal notation + are parsed correctly. */ + /* { dg-do run { target i?86-*-linux* x86_64-*-* } } */ + /* { dg-options "-std=c99" } */ + + long double d = 0x0.0000003ffffffff00000p-16357L; + long double e = 0x0.0000003ffffffff00000p-16356L; + + extern void abort (void); + extern void exit (int); + + int + main (void) + { + if (d != e / 2.0) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/20030225-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/20030225-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/20030225-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/20030225-1.c Tue Feb 25 23:24:08 2003 *************** *** 0 **** --- 1,103 ---- + /* PR target/9732 + This testcase segfaulted on PPC because PIC_OFFSET_TABLE_REGNUM was no + fixed register. + Distilled from the xvid sources by Guillaume Morin + and Benjamin Herrenschmidt . */ + /* { dg-do run } */ + /* { dg-options "-O2 -fPIC" } */ + /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* mmix-*-* } 0 } */ + + + extern void exit (int); + + #define W1 2841 /* 2048*sqrt(2)*cos(1*pi/16) */ + #define W2 2676 /* 2048*sqrt(2)*cos(2*pi/16) */ + #define W3 2408 /* 2048*sqrt(2)*cos(3*pi/16) */ + #define W5 1609 /* 2048*sqrt(2)*cos(5*pi/16) */ + #define W6 1108 /* 2048*sqrt(2)*cos(6*pi/16) */ + #define W7 565 /* 2048*sqrt(2)*cos(7*pi/16) */ + + + /* private data */ + static short iclip[1024]; /* clipping table */ + static short *iclp; + + void + idct_int32(short *const block) + { + static short *blk; + static long i; + static long X0, X1, X2, X3, X4, X5, X6, X7, X8; + + for (i = 0; i < 8; i++) /* idct columns */ + { + blk = block + i; + /* shortcut */ + if (! ((X1 = (blk[8 * 4] << 8)) | (X2 = blk[8 * 6]) + | (X3 = blk[8 * 2]) | (X4 = blk[8 * 1]) | (X5 = blk[8 * 7]) + | (X6 = blk[8 * 5]) | (X7 = blk[8 * 3]))) + { + blk[8 * 0] = blk[8 * 1] = blk[8 * 2] = + blk[8 * 3] = blk[8 * 4] = + blk[8 * 5] = blk[8 * 6] = blk[8 * 7] = + iclp[(blk[8 * 0] + 32) >> 6]; + continue; + } + X0 = (blk[8 * 0] << 8) + 8192; + + /* first stage */ + X8 = W7 * (X4 + X5) + 4; + X4 = (X8 + (W1 - W7) * X4) >> 3; + X5 = (X8 - (W1 + W7) * X5) >> 3; + X8 = W3 * (X6 + X7) + 4; + X6 = (X8 - (W3 - W5) * X6) >> 3; + X7 = (X8 - (W3 + W5) * X7) >> 3; + + /* second stage */ + X8 = X0 + X1; + X0 -= X1; + X1 = W6 * (X3 + X2) + 4; + X2 = (X1 - (W2 + W6) * X2) >> 3; + X3 = (X1 + (W2 - W6) * X3) >> 3; + X1 = X4 + X6; + X4 -= X6; + X6 = X5 + X7; + X5 -= X7; + + /* third stage */ + X7 = X8 + X3; + X8 -= X3; + X3 = X0 + X2; + X0 -= X2; + X2 = (181 * (X4 + X5) + 128) >> 8; + X4 = (181 * (X4 - X5) + 128) >> 8; + + /* fourth stage */ + blk[8 * 0] = iclp[(X7 + X1) >> 14]; + blk[8 * 1] = iclp[(X3 + X2) >> 14]; + blk[8 * 2] = iclp[(X0 + X4) >> 14]; + blk[8 * 3] = iclp[(X8 + X6) >> 14]; + blk[8 * 4] = iclp[(X8 - X6) >> 14]; + blk[8 * 5] = iclp[(X0 - X4) >> 14]; + blk[8 * 6] = iclp[(X3 - X2) >> 14]; + blk[8 * 7] = iclp[(X7 - X1) >> 14]; + } + } /* end function idct_int32(block) */ + + + int main(void) { + int i; + unsigned short tab[64]; + + for (i = 0 ; i < 64 ; ++i) + { + tab[i] = (1+(int) (65535)*8000/(2147483647+1.0)); + } + + iclp = iclip + 512; + for (i = -512; i < 512; i++) + iclp[i] = (i < -256) ? -256 : ((i > 255) ? 255 : i); + + idct_int32((short *) tab); + exit (0); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/20030309-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/20030309-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/20030309-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/20030309-1.c Wed Mar 19 12:38:12 2003 *************** *** 0 **** --- 1,42 ---- + /* { dg-do link } */ + /* { dg-options "-O2" } */ + + struct A0 { int x; }; + struct A1 { int x; int y[1]; }; + struct A2 { int x; int y[2]; }; + struct A3 { int x; int y[3]; }; + struct A4 { int x; int y[4]; }; + + void *s; + int u; + + int + main (void) + { + int x; + void *t = s; + + switch (u) + { + case 0: + x = ((struct A0 *) t)->x; + break; + case 1: + x = ((struct A1 *) t)->x; + break; + case 2: + x = ((struct A2 *) t)->x; + break; + case 3: + x = ((struct A3 *) t)->x; + break; + case 4: + x = ((struct A4 *) t)->x; + break; + default: + x = 0; + break; + } + + return x; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/20030323-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/20030323-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/20030323-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/20030323-1.c Sat Mar 29 10:29:33 2003 *************** *** 0 **** --- 1,24 ---- + /* { dg-do run } */ + + /* PR c/8224 */ + /* Contributed by Mikulas Patocka */ + + extern void abort (void); + + unsigned f (int x) + { + return (unsigned) (x / 2) / 2; + } + + unsigned f1 (int x) + { + unsigned xx = x / 2; + return xx / 2; + } + + int main () + { + if (f1 (-5) != f (-5)) + abort (); + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/20030414-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/20030414-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/20030414-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/20030414-1.c Mon Apr 14 14:08:36 2003 *************** *** 0 **** --- 1,39 ---- + /* PR target/10377 + Distilled by Hans-Peter Nilsson from ncurses-5.3 infocmp.c. + Copyright (C) 2003 Free Software Foundation. */ + + /* { dg-do assemble } */ + /* { dg-options "-O2 -fPIC" { target *-*-*gnu* } } */ + + extern int f2 (char *, char *); + extern char *ss[]; + extern char *cc; + void + f1 (char *dd, char *bb) + { + char *sp = bb + 1; + char *ap; + int i; + char *ee = 0; + char *cp; + + for (i = 0, cp = cc; i < 42; i++) + if (cp) + { + if (f2 (dd, "xx") || f2 (ss[i], "xx") || f2 (ss[i], "yy")) + if (bb < cp) + continue; + ee = ss[i]; + break; + } + + if (!ee) + for (ap = cc; *ap; ap++) + if (f2(ap, sp)) + { + ee = ap; + break; + } + + cc = ee; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/asmreg-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/asmreg-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/asmreg-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/asmreg-1.c Sun Feb 23 16:59:11 2003 *************** *** 0 **** --- 1,73 ---- + /* { dg-do compile { target cris-*-* } } */ + /* { dg-options "-O2" } */ + /* { dg-final { scan-assembler "\\\.ifnc \\\$r9-\\\$r10-\\\$r11-\\\$r12" } } */ + + /* Sanity check for asm register operands in syscall failed for + cris-axis-linux-gnu due to regmove bug. + Hans-Peter Nilsson . */ + + extern void lseek64 (int, long long, int); + extern int *__errno_location (void); + struct dirent64 + { + long long d_off; + unsigned short int d_reclen; + char d_name[256]; + }; + struct kernel_dirent64 + { + long long d_off; + unsigned short d_reclen; + char d_name[256]; + }; + + static inline int __attribute__ ((__always_inline__)) + __syscall_getdents64 (int fd, unsigned char * dirp, unsigned count) + { + register unsigned long __sys_res asm ("r10"); + register unsigned long __r10 __asm__ ("r10") = (unsigned long) fd; + register unsigned long __r11 __asm__ ("r11") = (unsigned long) dirp; + register unsigned long __r12 __asm__ ("r12") = (unsigned long) count; + register unsigned long __callno asm ("r9") = (220); + asm volatile (".ifnc %1-%0-%3-%4,$r9-$r10-$r11-$r12\n\t" + ".err\n\t" + ".endif\n\t" + "break 13" + : "=r" (__sys_res) + : "r" (__callno), "0" (__r10), "r" (__r11), "r" (__r12) + : "memory"); + if (__sys_res >= (unsigned long) -4096) + { + (*__errno_location ()) = - __sys_res; + __sys_res = -1; + } + return __sys_res; + } + + int + __getdents64 (int fd, char *buf, unsigned nbytes) + { + struct dirent64 *dp; + long long last_offset = -1; + int retval; + struct kernel_dirent64 *skdp, *kdp; + dp = (struct dirent64 *) buf; + skdp = kdp = __builtin_alloca (nbytes); + retval = __syscall_getdents64(fd, (char *)kdp, nbytes); + if (retval == -1) + return -1; + while ((char *) kdp < (char *) skdp + retval) + { + if ((char *) dp > buf + nbytes) + { + lseek64(fd, last_offset, 0); + break; + } + last_offset = kdp->d_off; + __builtin_memcpy (dp->d_name, kdp->d_name, kdp->d_reclen - 10); + dp = (struct dirent64 *) ((char *) dp + sizeof (*dp)); + kdp = (struct kernel_dirent64 *) (((char *) kdp) + kdp->d_reclen); + } + + return (char *) dp - buf; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/decl-2.c gcc-3.2.3/gcc/testsuite/gcc.dg/decl-2.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/decl-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/decl-2.c Mon Feb 10 13:01:50 2003 *************** *** 0 **** --- 1,10 ---- + /* PR c/7411 */ + /* Contributed by Christian Ehrhardt */ + /* { dg-do compile } */ + + void foo(void) + { + char c; /* { dg-error "previous declaration" } */ + int i; + int c = i; /* { dg-error "conflicting types" } */ + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/decl-3.c gcc-3.2.3/gcc/testsuite/gcc.dg/decl-3.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/decl-3.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/decl-3.c Wed Mar 12 10:04:52 2003 *************** *** 0 **** --- 1,5 ---- + /* PR c/9928 */ + /* { dg-do compile } */ + + enum { CODES }; /* { dg-error "previous declaration" } */ + enum { CODES }; /* { dg-error "conflicting types" } */ diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/i386-loop-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/i386-loop-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/i386-loop-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/i386-loop-1.c Sun Mar 9 15:51:41 2003 *************** *** 0 **** --- 1,105 ---- + /* PR optimization/9888 */ + /* { dg-do run { target i?86-*-* } } */ + /* { dg-options "-mcpu=k6 -O3" } */ + + /* Verify that GCC doesn't emit out of range 'loop' instructions. */ + + extern void abort (void); + extern void exit (int); + + + f1 (a) + long a; + { + int i; + for (i = 0; i < 10; i++) + { + if (--a == -1) + return i; + } + return -1; + } + + f2 (a) + long a; + { + int i; + for (i = 0; i < 10; i++) + { + if (--a != -1) + return i; + } + return -1; + } + + f3 (a) + long a; + { + int i; + for (i = 0; i < 10; i++) + { + if (--a == 0) + return i; + } + return -1; + } + + f4 (a) + long a; + { + int i; + for (i = 0; i < 10; i++) + { + if (--a != 0) + return i; + } + return -1; + } + + f5 (a) + long a; + { + int i; + for (i = 0; i < 10; i++) + { + if (++a == 0) + return i; + } + return -1; + } + + f6 (a) + long a; + { + int i; + for (i = 0; i < 10; i++) + { + if (++a != 0) + return i; + } + return -1; + } + + + int main() + { + if (f1 (5L) != 5) + abort (); + if (f2 (1L) != 0) + abort (); + if (f2 (0L) != 1) + abort (); + if (f3 (5L) != 4) + abort (); + if (f4 (1L) != 1) + abort (); + if (f4 (0L) != 0) + abort (); + if (f5 (-5L) != 4) + abort (); + if (f6 (-1L) != 1) + abort (); + if (f6 (0L) != 0) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/i386-loop-2.c gcc-3.2.3/gcc/testsuite/gcc.dg/i386-loop-2.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/i386-loop-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/i386-loop-2.c Wed Mar 12 09:42:00 2003 *************** *** 0 **** --- 1,80 ---- + /* PR optimization/9888 */ + /* Originator: Jim Bray */ + /* { dg-do run { target i?86-*-* } } */ + /* { dg-options "-mcpu=k6 -Os" } */ + + enum reload_type + { + RELOAD_FOR_INPUT, RELOAD_FOR_OUTPUT, RELOAD_FOR_INSN, + RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INPADDR_ADDRESS, + RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, + RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OPADDR_ADDR, + RELOAD_OTHER, RELOAD_FOR_OTHER_ADDRESS + }; + + #define FOO_SIZE 3 + + /* My results, varying with FOO_SIZE: + 30: asm error "value of ..fff77 too large: + 3 to 29: ....ff7d... + 1 to 2: no error. */ + + struct reload + { + int foo[FOO_SIZE]; + int opnum; + enum reload_type when_needed; + unsigned int optional:1; + unsigned int secondary_p:1; + }; + + #define N_RELOADS 2 + + struct reload rld[N_RELOADS]; + int n_reloads = N_RELOADS; + + int main(void) + { + int i; + + enum reload_type operand_type[1]; + + enum reload_type address_type[1]; + + int operand_reloadnum[1]; + int goal_alternative_matches[1]; + + for (i = 0; i < n_reloads; i++) + { + if (rld[i].secondary_p + && rld[i].when_needed == operand_type[rld[i].opnum]) + rld[i].when_needed = address_type[rld[i].opnum]; + + if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS + || rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS + || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS + || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS) + && (operand_reloadnum[rld[i].opnum] < 0 + || rld[operand_reloadnum[rld[i].opnum]].optional)) + { + + if (rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS + || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS) + rld[i].when_needed = RELOAD_FOR_OPADDR_ADDR; + else + rld[i].when_needed = RELOAD_FOR_OPERAND_ADDRESS; + } + + if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS + || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS) + && operand_reloadnum[rld[i].opnum] >= 0 + && (rld[operand_reloadnum[rld[i].opnum]].when_needed + == RELOAD_OTHER)) + rld[i].when_needed = RELOAD_FOR_OTHER_ADDRESS; + + if (goal_alternative_matches[rld[i].opnum] >= 0) + rld[i].opnum = goal_alternative_matches[rld[i].opnum]; + } + + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/i386-signbit-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/i386-signbit-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/i386-signbit-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/i386-signbit-1.c Tue Mar 25 10:42:14 2003 *************** *** 0 **** --- 1,28 ---- + /* PR optimization/8746 */ + /* { dg-do run { target i?86-*-* } } */ + /* { dg-options "-O1 -mcpu=i586" } */ + + extern void abort (void); + + unsigned char r0; + + int foo(int x) + { + unsigned char r = x&0xf0; + + if (!(r&0x80)) + { + r0 = r; + return 0; + } + else + return 1; + } + + int main(void) + { + if (foo(0x80) != 1) + abort(); + + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/i386-signbit-2.c gcc-3.2.3/gcc/testsuite/gcc.dg/i386-signbit-2.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/i386-signbit-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/i386-signbit-2.c Tue Mar 25 10:42:14 2003 *************** *** 0 **** --- 1,28 ---- + /* PR optimization/8746 */ + /* { dg-do run { target i?86-*-* } } */ + /* { dg-options "-O1 -mcpu=i586" } */ + + extern void abort (void); + + unsigned short r0; + + int foo(int x) + { + unsigned short r = x&0xf000; + + if (!(r&0x8000)) + { + r0 = r; + return 0; + } + else + return 1; + } + + int main(void) + { + if (foo(0x8000) != 1) + abort(); + + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/i386-signbit-3.c gcc-3.2.3/gcc/testsuite/gcc.dg/i386-signbit-3.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/i386-signbit-3.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/i386-signbit-3.c Tue Mar 25 10:42:14 2003 *************** *** 0 **** --- 1,32 ---- + /* PR optimization/8746 */ + /* { dg-do run { target i?86-*-* } } */ + /* { dg-options "-O1 -mcpu=i586" } */ + + extern void abort (void); + + volatile int j; + + void f0() { j=0; } + void f1() { j=1; } + + int foo(int x) + { + if ((short int)(x&0x8000) > (short int)0) + { + f0(); + return 0; + } + else + { + f1(); + return 1; + } + } + + int main(void) + { + if (foo(0x8000) != 1) + abort(); + + return 0; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/old-style-asm-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/old-style-asm-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/old-style-asm-1.c Thu Jan 9 13:18:46 2003 --- gcc-3.2.3/gcc/testsuite/gcc.dg/old-style-asm-1.c Sat Mar 8 14:04:35 2003 *************** void foo(int v) *** 16,19 **** asm ("dummy3"); } ! /* { dg-final { scan-assembler "L2" } } */ --- 16,27 ---- asm ("dummy3"); } ! /* The purpose of the test below is to check that there are two branches ! in the generated code, supposedly corresponding to the if-statements. ! Warning: this is fragile and assumes that one of the generated labels ! for the branches matches the string "L2", or as with ! mmix-knuth-mmixware, "L:2". That assumption is generally invalid, ! because for example it depends on the target macro ! ASM_GENERATE_INTERNAL_LABEL to generate a name matching this regexp (as ! with the default definition). */ ! /* { dg-final { scan-assembler "L(:)?2" } } */ diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/pragma-ep-1.c gcc-3.2.3/gcc/testsuite/gcc.dg/pragma-ep-1.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/pragma-ep-1.c Fri Mar 22 22:49:51 2002 --- gcc-3.2.3/gcc/testsuite/gcc.dg/pragma-ep-1.c Mon Feb 24 18:46:26 2003 *************** *** 5,11 **** /* { dg-final { scan-assembler "four" } } */ /* { dg-final { scan-assembler-not "_four" } } */ ! #ifndef __EXTERN_PREFIX #error #endif --- 5,11 ---- /* { dg-final { scan-assembler "four" } } */ /* { dg-final { scan-assembler-not "_four" } } */ ! #ifndef __PRAGMA_EXTERN_PREFIX #error #endif diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/sparc-dwarf2.c gcc-3.2.3/gcc/testsuite/gcc.dg/sparc-dwarf2.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/sparc-dwarf2.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/sparc-dwarf2.c Fri Mar 28 08:01:33 2003 *************** *** 0 **** --- 1,31 ---- + /* PR target/10114 */ + /* Originator: James Troup */ + /* { dg-do compile { target sparc-*-linux* } } */ + /* { dg-options "-g -O1" } */ + + extern __inline double sqrt (double __x) + { + register double __r; + __asm ("fsqrtd %1,%0" : "=f" (__r) : "f" (__x)); + return __r; + } + + static double our_skew, max_update_skew; + + static double Sqr(double x) + { + return x*x; + } + + void REF_SetReference(double skew) + { + double previous_skew, new_skew; + double old_weight, new_weight, sum_weight; + double delta_freq1, delta_freq2; + double skew1, skew2; + + previous_skew = our_skew; + skew1 = sqrt((Sqr(delta_freq1) * old_weight + Sqr(delta_freq2) * new_weight) / sum_weight); + skew2 = (previous_skew * old_weight + new_skew * new_weight) / sum_weight; + our_skew = skew1 + skew2; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/ultrasp6.c gcc-3.2.3/gcc/testsuite/gcc.dg/ultrasp6.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/ultrasp6.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/ultrasp6.c Wed Mar 26 07:58:49 2003 *************** *** 0 **** --- 1,150 ---- + /* PR target/7784 */ + /* Originator: Peter van Hoof */ + /* { dg-do compile { target sparc-*-* } } */ + /* { dg-options "-O2 -mcpu=ultrasparc" } */ + + typedef struct + { + float EnergyErg; + float ots; + } EmLine; + + extern const int ipH_LIKE ; + extern const int ipHYDROGEN ; + extern const int ipH1s; + extern const int ipH2s; + extern const int ipH2p; + + extern EmLine ****EmisLines; + + typedef struct + { + long n; + long s; + long l; + } Elevels; + + extern struct t_iso + { + float ***Pop2Ion; + long int numLevels[2][30L]; + } iso; + + extern struct t_LineSave + { + long int nsum; + long int ndsum; + long int nComment; + long int npxdd; + long int ipass; + char chHoldComments[10][200]; + } LineSave; + + extern struct t_hydro + { + int lgHydEmiss; + float **pestrk ; + } hydro; + + extern struct t_dense + { + double DensityLaw[10]; + float frad[500]; + float fhden[500]; + float den0; + double eden; + } dense; + + extern struct t_abund + { + float xIonFracs[30L +3][30L +1]; + } abund; + + extern struct t_CaseBHS + { + long int nDensity[2][8] , ntemp[2][8] , ncut[2][8] ; + int lgHCaseBOK[2][8]; + } CaseBHS ; + + extern struct t_smbeta + { + float SimHBeta, + cn4861, + cn1216, + sv4861, + sv1216; + } smbeta; + + extern struct t_phycon + { + float te; + } phycon; + + + extern struct t_sphere + { + int lgSphere; + float covgeo; + } sphere; + + void linadd(double xInten, float wavelength, char *chLab, char chInfo); + + extern struct t_radiusVar + { + int lgDrNeg; + double dVeff; + } radius; + + void lines_hydro(void) + { + long int i, nelem, ipHi, ipLo; + double hbetab, em , EmisFac, pump; + char chLabel[5]; + + linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][3]*hydro.pestrk[3][2]*3.025e-12, 6563,"Strk",'i'); + + linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][4]*hydro.pestrk[4][2]*4.084e-12, 4861,"Strk",'i'); + + linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][4]*hydro.pestrk[4][3]*1.059e-12, 18751,"Strk",'i'); + + linadd(abund.xIonFracs[ipHYDROGEN][1]*iso.Pop2Ion[ipH_LIKE][ipHYDROGEN][5]*hydro.pestrk[5][4]*4.900e-13, 40512,"Strk",'i'); + + ((void)((LineSave.ipass <1 || EmisLines[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].ots>= 0.) || (__assert("LineSave.ipass <1 || EmisLines[ipH_LIKE][ipHYDROGEN][ipH2p][ipH1s].ots>= 0.", "lines_hydro.c", 118), 0))); + + linadd(EmisLines[ipH_LIKE][ipHYDROGEN][3][ipH2s].ots*EmisLines[ipH_LIKE][ipHYDROGEN][3][ipH2s].EnergyErg, 6563,"Dest",'i'); + + linadd(EmisLines[ipH_LIKE][ipHYDROGEN][5][4].ots*EmisLines[ipH_LIKE][ipHYDROGEN][5][4].EnergyErg,40516, "Dest",'i'); + + smbeta.SimHBeta = smbeta.SimHBeta/(float)radius.dVeff*sphere.covgeo; + + linadd(smbeta.SimHBeta,4861,"Q(H)",'i'); + + smbeta.SimHBeta = smbeta.SimHBeta*(float)radius.dVeff/sphere.covgeo; + + for( nelem=0; nelem < 30L; nelem++ ) + { + int iCase; + for( iCase=0; iCase<2; ++iCase ) + { + char chAB[2]={'A','B'}; + char chLab[5]="Ca "; + + for( ipLo=1+iCase; ipLo<(((6)<(iso.numLevels[ipH_LIKE][nelem])) ? (6) : (5)); ++ipLo ) + { + for( ipHi=ipLo+1; ipHi< (((ipLo+5)<(iso.numLevels[ipH_LIKE][nelem])) ? (ipLo+5) : (iso.numLevels[ipH_LIKE][nelem])); ++ipHi ) + { + float wl; + + hbetab = HSRate( ipHi,ipLo , nelem+1, phycon.te , dense.eden, chAB[iCase] ); + if( hbetab<=0. ) + CaseBHS.lgHCaseBOK[iCase][nelem] = 0; + + if( !hydro.lgHydEmiss ) + hbetab *= abund.xIonFracs[nelem][nelem+1]*dense.eden; + + linadd(hbetab,wl,chLab,'i' ); + } + } + } + } + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/ultrasp7.c gcc-3.2.3/gcc/testsuite/gcc.dg/ultrasp7.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/ultrasp7.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/ultrasp7.c Fri Mar 28 08:55:04 2003 *************** *** 0 **** --- 1,49 ---- + /* PR c/8281 */ + /* Originator: TANIGUCHI Yasuaki */ + /* { dg-do compile { target sparc-*-* } } */ + /* { dg-options "-O2 -mcpu=ultrasparc -fPIC" } */ + + static const double bp = 1.0, dp_l[] = { 0.0 }; + + double __ieee754_pow(double x, double y) + { + union { + int lo; + double d; + }uz; + + double y1,t1,p_h,t,z; + double z_h,z_l,p_l; + double t2,r,s,u,v,w; + int i = 0; + + double s_h,t_h; + double s2,s_l,t_l; + + + v = 1.0/(v+bp); + uz.d = s_h = s = u*v; + uz.lo = 0; + s_h = uz.d; + uz.d = t_h; + uz.lo = 3; + t_h = uz.d; + s_l = v*((u-s_h*t_h)-s_h*t_l); + s2 = s*s; + r = s2* s2* (1.1+s2*(1.2+s2*(1.3+s2*(1.4+s2*(1.5+s2*1.6))))); + s2 = s_h*s_h; + uz.lo = 0; + t_h = uz.d; + t_l = r-((t_h-3.0)-s2); + v = s_l*t_h+t_l*s; + p_l = v-(p_h-u); + z_h = bp *p_h; + z_l = bp*p_h+p_l*1.0+dp_l[i]; + t = (double)i; + t1 = (((bp+z_l)+bp)+t); + t2 = z_l-(((t1-t)-bp)-z_h); + p_l = (y-y1)*t1+y*t2; + z = p_l+p_h; + + return s*z; + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/gcc.dg/ultrasp8.c gcc-3.2.3/gcc/testsuite/gcc.dg/ultrasp8.c *** gcc-3.2.2/gcc/testsuite/gcc.dg/ultrasp8.c Thu Jan 1 00:00:00 1970 --- gcc-3.2.3/gcc/testsuite/gcc.dg/ultrasp8.c Sat Apr 12 17:50:56 2003 *************** *** 0 **** --- 1,39 ---- + /* PR target/10067 */ + /* Originator: */ + /* { dg-do compile { target sparc*-*-* } } */ + /* { dg-options "-O2 -m64 -mtune=supersparc" { target sparc64-*-* } } */ + + struct _reent; + + extern unsigned long __malloc_trim_threshold; + extern unsigned long __malloc_top_pad; + + int _mallopt_r(struct _reent *reent_ptr, int param_number, int value) + { + __malloc_lock(reent_ptr); + + switch(param_number) + { + case -1: + __malloc_trim_threshold = value; + __malloc_unlock(reent_ptr); + return 1; + + case -2: + __malloc_top_pad = value; + __malloc_unlock(reent_ptr); + return 1; + + case -3: + __malloc_unlock(reent_ptr); + return 1; + + case -4: + __malloc_unlock(reent_ptr); + return value == 0; + + default: + __malloc_unlock(reent_ptr); + return 0; + } + } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/objc.dg/naming-1.m gcc-3.2.3/gcc/testsuite/objc.dg/naming-1.m *** gcc-3.2.2/gcc/testsuite/objc.dg/naming-1.m Wed Aug 1 08:15:11 2001 --- gcc-3.2.3/gcc/testsuite/objc.dg/naming-1.m Wed Apr 16 03:29:58 2003 *************** void foo(void) *** 17,21 **** void bar(void) { View *view; /* ok */ ! View = 1; /* { dg-error "parse error" } */ } --- 17,21 ---- void bar(void) { View *view; /* ok */ ! View = 1; /* { dg-error "(parse|syntax) error" } */ } diff -Nrc3pad gcc-3.2.2/gcc/testsuite/objc.dg/naming-2.m gcc-3.2.3/gcc/testsuite/objc.dg/naming-2.m *** gcc-3.2.2/gcc/testsuite/objc.dg/naming-2.m Wed Aug 1 08:15:11 2001 --- gcc-3.2.3/gcc/testsuite/objc.dg/naming-2.m Wed Apr 16 03:29:58 2003 *************** *** 4,10 **** @interface Foo @end ! float Foo; /* { dg-error "parse error before" } */ double Bar; @interface Bar --- 4,10 ---- @interface Foo @end ! float Foo; /* { dg-error "(parse|syntax) error before" } */ double Bar; @interface Bar