diff -Nrc3pad gcc-3.3.3/gcc/testsuite/ChangeLog gcc-3.3.4/gcc/testsuite/ChangeLog *** gcc-3.3.3/gcc/testsuite/ChangeLog Sat Feb 14 20:19:09 2004 --- gcc-3.3.4/gcc/testsuite/ChangeLog Mon May 31 22:35:23 2004 *************** *** 1,3 **** --- 1,138 ---- + 2004-05-31 Release Manager + + * GCC 3.3.4 Released. + + 2004-05-31 Eric Botcazou + + Backport from mainline: + + 2004-03-26 James A. Morrison + + * gcc.dg/20001013-1.c: Run on 32-bit and 64-bit SPARC. + * gcc.dg/20001101-1.c: Likewise. + * gcc.dg/20001102-1.c: Likewise. + + 2004-03-22 Eric Botcazou + + * gcc.dg/ultrasp2.c: Do not pass -m64. Remove redundant lines. + * gcc.dg/ultrasp4.c: Likewise. + * gcc.dg/ultrasp8.c: Do not pass -m64. Add sparcv9-*-*. + + 2004-01-26 Eric Botcazou + + * gcc.dg/sparc-ret.c: Run only in 32-bit mode. Don't scan + the assembly output if -m64 is passed. + + 2004-05-31 Eric Botcazou + + * gcc.dg/sparc-trap-1.c: New test. + + 2004-05-26 Hans-Peter Nilsson + + PR optimization/15296 + * gcc.c-torture/execute/pr15296.c: New test. + + 2004-05-17 Volker Reichelt + + * gcc.dg/loop-4.c: New test. + + 2004-04-29 Matthias Klose + + Backport: + + 2004-03-04 Eric Botcazou + + * gcc.c-torture/compile/20040304-1.c: New test. + + 2004-04-20 Paul Brook + + PR 2123 + * g++.dg/expr/anew1.C: XFAIL and make reproducible. Call abort on + failure and exit(0) on success. + * g++.dg/expr/anew2.C: Ditto. + * g++.dg/expr/anew3.C: Ditto. + * g++.dg/expr/anew4.C: Ditto. + + 2004-04-01 Jakub Jelinek + + PR c++/14755 + * gcc.c-torture/execute/20040331-1.c: New test. + + 2004-04-01 Jakub Jelinek + + PR c/14069 + * gcc.dg/20040322-1.c: New test. + + Backport from mainline: + 2003-04-07 J"orn Rennecke + + * gcc.dg/noncompile/init-4.c: New test. + + 2004-03-25 Eric Botcazou + + * gcc.dg/20040127-1.c: New test. + * gcc.dg/20040127-2.c: New test. + + 2004-03-21 Roger Sayle + Kazu Hirata + + * gcc.c-torture/execute/20040307-1.c: New test case. + + 2004-03-21 Roger Sayle + + PR target/13889 + * gcc.c-torture/compile/pr13889.c: New test case. + + 2004-03-13 Eric Botcazou + + PR middle-end/14470 + * gcc.c-torture/execute/20040313-1.c: New test. + + 2004-03-13 Jakub Jelinek + + PR target/14533 + * gcc.dg/20040311-2.c: New test. + + 2004-03-10 Roger Sayle + + PR middle-end/14289 + * gcc.dg/pr14289-1.c: New test case. + * gcc.dg/pr14289-2.c: Likewise. + * gcc.dg/pr14289-3.c: Likewise. + + 2004-03-09 Giovanni Bajo + + PR c++/14409 + * g++.dg/template/spec12.C: New test. + + 2004-03-06 Ulrich Weigand + + * gcc.dg/20040306-1.c: New test. + + 2004-02-25 John David Anglin + + * g++.dg/opt/inline4.C (dg-final): Robustify regexp. + * g++.dg/opt/inline6.C (dg-final): Robustify regexp. + + 2004-02-23 Kriang Lerdsuwanakij + + PR c++/13635 + * g++.dg/template/spec11.C: New test. + + 2004-02-23 Giovanni Bajo + + PR c++/14250 + * g++.dg/other/switch1.C: New test. + + 2004-02-22 Jakub Jelinek + + * g++.dg/parse/init1.C: New test. + + 2004-02-22 Hans-Peter Nilsson + + PR target/14209 + * gcc.c-torture/execute/20040218-1.c: New test. + 2004-02-14 Release Manager * GCC 3.3.3 Released. diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/conversion/op2.C gcc-3.3.4/gcc/testsuite/g++.dg/conversion/op2.C *** gcc-3.3.3/gcc/testsuite/g++.dg/conversion/op2.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/conversion/op2.C Sun Feb 22 16:05:49 2004 *************** *** 0 **** --- 1,14 ---- + // PR c++/13907 + + struct A { + operator int & (); + operator const int & () const; + }; + + void f(int &); + void f(const int &); + + int main() { + const A x = A(); + f(x); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/eh/cond2.C gcc-3.3.4/gcc/testsuite/g++.dg/eh/cond2.C *** gcc-3.3.3/gcc/testsuite/g++.dg/eh/cond2.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/eh/cond2.C Sun Feb 22 17:02:12 2004 *************** *** 0 **** --- 1,19 ---- + // PR c++/14083 + + struct A { + A() throw() { } + A(const A&) throw() { } + }; + + struct X { + A a; + X(); + X& operator=(const X& __str); + }; + + bool operator==(const X& __lhs, const char* __rhs); + + int main() { + X x; + x=="" ? x : throw 1; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/eh/spec7.C gcc-3.3.4/gcc/testsuite/g++.dg/eh/spec7.C *** gcc-3.3.3/gcc/testsuite/g++.dg/eh/spec7.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/eh/spec7.C Wed Mar 17 18:19:31 2004 *************** *** 0 **** --- 1,35 ---- + // PR 14535 + // { dg-do run } + // { dg-options "-O -finline" } + // + // Original test case failure required that Raiser constructor be inlined. + + extern "C" void abort(); + bool destructor_called = false; + + struct B { + virtual void Run(){}; + }; + + struct D : public B { + virtual void Run() + { + struct O { + ~O() { destructor_called = true; }; + } o; + + struct Raiser { + Raiser() throw( int ) {throw 1;}; + } raiser; + }; + }; + + int main() { + try { + D d; + static_cast(d).Run(); + } catch (...) {} + + if (!destructor_called) + abort (); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew1.C gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew1.C *** gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew1.C Fri Jun 20 00:29:26 2003 --- gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew1.C Tue Apr 20 10:29:19 2004 *************** *** 1,12 **** ! // { dg-do run } // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern int* allocate(int n) { ! return new int[n](); } int main() --- 1,20 ---- ! // { dg-do run { xfail *-*-* } } ! // XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern + #include + #include + #include + int* allocate(int n) { ! void *p; ! p = malloc(n * sizeof (int)); ! memset (p, 0xff, n * sizeof(int)); ! return new (p) int[n](); } int main() *************** int main() *** 15,20 **** int* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i] != 0) ! return 1; ! return 0; } --- 23,28 ---- int* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i] != 0) ! abort (); ! exit (0); } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew2.C gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew2.C *** gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew2.C Fri Jun 20 00:29:26 2003 --- gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew2.C Tue Apr 20 10:29:19 2004 *************** *** 1,12 **** ! // { dg-do run } // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern double* allocate(int n) { ! return new double[n](); } int main() --- 1,20 ---- ! // { dg-do run { xfail *-*-* } } ! // XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern + #include + #include + #include + double* allocate(int n) { ! void *p; ! p = malloc(n * sizeof (double)); ! memset (p, 0xff, n * sizeof(double)); ! return new (p) double[n](); } int main() *************** int main() *** 15,20 **** double* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i] != 0.0) ! return 1; ! return 0; } --- 23,28 ---- double* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i] != 0.0) ! abort (); ! exit (0); } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew3.C gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew3.C *** gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew3.C Fri Jun 20 00:29:26 2003 --- gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew3.C Tue Apr 20 10:29:19 2004 *************** *** 1,8 **** ! // { dg-do run } // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern struct X { int a; --- 1,13 ---- ! // { dg-do run { xfail *-*-* } } ! // XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern + #include + #include + #include + struct X { int a; *************** struct X *** 11,17 **** X* allocate(int n) { ! return new X[n](); } int main() --- 16,25 ---- X* allocate(int n) { ! void *p; ! p = malloc(n * sizeof (X)); ! memset (p, 0xff, n * sizeof(X)); ! return new (p) X[n](); } int main() *************** int main() *** 20,25 **** X* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i].a != 0 || p[i].b != 0.0) ! return 1; ! return 0; } --- 28,33 ---- X* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i].a != 0 || p[i].b != 0.0) ! abort (); ! exit (0); } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew4.C gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew4.C *** gcc-3.3.3/gcc/testsuite/g++.dg/expr/anew4.C Fri Jun 20 00:29:26 2003 --- gcc-3.3.4/gcc/testsuite/g++.dg/expr/anew4.C Tue Apr 20 10:29:19 2004 *************** *** 1,8 **** ! // { dg-do run } // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern struct B { B(); --- 1,13 ---- ! // { dg-do run { xfail *-*-* } } ! // XFAILed until PR2123 is fixed // PR 11228: array operator new, with zero-initialization and a variable sized array. // Regression test for PR // Author: Matt Austern + #include + #include + #include + struct B { B(); *************** struct D : public B *** 23,29 **** D* allocate(int n) { ! return new D[n](); } int main() --- 28,37 ---- D* allocate(int n) { ! void *p; ! p = malloc(n * sizeof (D)); ! memset (p, 0xff, n * sizeof(D)); ! return new (p) D[n](); } int main() *************** int main() *** 32,37 **** D* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i].n != 137 || p[i].x != 0) ! return 1; ! return 0; } --- 40,45 ---- D* p = allocate(n); for (int i = 0; i < n; ++i) if (p[i].n != 137 || p[i].x != 0) ! abort (); ! exit (0); } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/expr/cond5.C gcc-3.3.4/gcc/testsuite/g++.dg/expr/cond5.C *** gcc-3.3.3/gcc/testsuite/g++.dg/expr/cond5.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/expr/cond5.C Sun May 16 22:52:19 2004 *************** *** 0 **** --- 1,3 ---- + void f() { + true ? throw 1 : (void)7; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/ext/anon-struct4.C gcc-3.3.4/gcc/testsuite/g++.dg/ext/anon-struct4.C *** gcc-3.3.3/gcc/testsuite/g++.dg/ext/anon-struct4.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/ext/anon-struct4.C Sat Mar 13 02:31:36 2004 *************** *** 0 **** --- 1,3 ---- + // PR c++/14401 + + struct { struct { int& i ; } bar ; } foo ; // { dg-error "" } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/init/ctor3.C gcc-3.3.4/gcc/testsuite/g++.dg/init/ctor3.C *** gcc-3.3.3/gcc/testsuite/g++.dg/init/ctor3.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/init/ctor3.C Sat Mar 13 02:31:36 2004 *************** *** 0 **** --- 1,6 ---- + // PR c++/14401 + + struct S { + S() {} // { dg-error "" } + const int i; + }; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/init/goto1.C gcc-3.3.4/gcc/testsuite/g++.dg/init/goto1.C *** gcc-3.3.3/gcc/testsuite/g++.dg/init/goto1.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/init/goto1.C Sat May 1 19:57:27 2004 *************** *** 0 **** --- 1,23 ---- + // PR c++/14724 + // { dg-do run } + + int j; + + template + struct C { + C() { ++j; } + ~C() { --j; } + }; + + int main(int, char **) { + { + int i = 0; + again: + C v; + if (++i < 10) + goto again; + } + + return j; + } + diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/init/ref11.C gcc-3.3.4/gcc/testsuite/g++.dg/init/ref11.C *** gcc-3.3.3/gcc/testsuite/g++.dg/init/ref11.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/init/ref11.C Sat Mar 13 02:00:57 2004 *************** *** 0 **** --- 1,13 ---- + // PR c++/14230 + + struct A { + A (); + A (const A&); + A& operator= (const A&); + }; + + struct D { + A a; + }; + + const A& z = D().a; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/init/static2.C gcc-3.3.4/gcc/testsuite/g++.dg/init/static2.C *** gcc-3.3.3/gcc/testsuite/g++.dg/init/static2.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/init/static2.C Thu Apr 1 21:48:06 2004 *************** *** 0 **** --- 1,25 ---- + // PR 14804 + // { dg-do run } + + struct A { + virtual void foo() = 0; + }; + + struct B : public A { + virtual void bar() = 0; + }; + + typedef void (A::*mfptr)(); + + struct D { + mfptr p; + }; + + static const D ds[] = { + { reinterpret_cast(&B::bar) }, + }; + + int main() + { + return 0; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/init/union1.C gcc-3.3.4/gcc/testsuite/g++.dg/init/union1.C *** gcc-3.3.3/gcc/testsuite/g++.dg/init/union1.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/init/union1.C Sat Mar 13 02:31:36 2004 *************** *** 0 **** --- 1,5 ---- + // PR c++/14401 + + union U { + int& i; // { dg-error "" } + }; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/lookup/enum2.C gcc-3.3.4/gcc/testsuite/g++.dg/lookup/enum2.C *** gcc-3.3.3/gcc/testsuite/g++.dg/lookup/enum2.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/lookup/enum2.C Sat Mar 13 03:15:57 2004 *************** *** 0 **** --- 1,5 ---- + // PR c++/14476 + + struct tree_common { + enum tree_code code : 8; // { dg-error "" } + }; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/opt/inline4.C gcc-3.3.4/gcc/testsuite/g++.dg/opt/inline4.C *** gcc-3.3.3/gcc/testsuite/g++.dg/opt/inline4.C Wed Jul 23 07:13:42 2003 --- gcc-3.3.4/gcc/testsuite/g++.dg/opt/inline4.C Wed Feb 25 21:01:19 2004 *************** void h() { *** 10,13 **** g<1000>(); } ! // { dg-final { scan-assembler-not "_Z1g" } } --- 10,13 ---- g<1000>(); } ! // { dg-final { scan-assembler-not "\n_?_Z1gILi\[0-9\]+EEvv\[: \t\n\]" } } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/opt/inline6.C gcc-3.3.4/gcc/testsuite/g++.dg/opt/inline6.C *** gcc-3.3.3/gcc/testsuite/g++.dg/opt/inline6.C Fri Jan 2 11:15:00 2004 --- gcc-3.3.4/gcc/testsuite/g++.dg/opt/inline6.C Wed Feb 25 21:01:19 2004 *************** *** 1,6 **** // PR c++/13081 // { dg-options "-O2" } ! // { dg-final { scan-assembler-not "foo" } } template T foo(T); --- 1,6 ---- // PR c++/13081 // { dg-options "-O2" } ! // { dg-final { scan-assembler-not "\n_?_Z3fooIlET_S0_\[: \t\n\]" } } template T foo(T); diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/opt/pr15054.C gcc-3.3.4/gcc/testsuite/g++.dg/opt/pr15054.C *** gcc-3.3.3/gcc/testsuite/g++.dg/opt/pr15054.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/opt/pr15054.C Sun May 16 20:27:22 2004 *************** *** 0 **** --- 1,36 ---- + // PR middle-end/15054 + // This used to abort due to overlapping stack temporaries. + + // { dg-do run } + // { dg-options "-O" } + + extern "C" void abort (void); + + struct pointer + { + void* ptr; + + pointer(void* x = 0) : ptr(x) {} + pointer(const pointer& x) : ptr(x.ptr) {} + }; + + struct element + { + int canary; + + element() : canary(123) { } + ~element() { pointer(); if (canary != 123) abort (); } + }; + + inline pointer + insert(const element& x) + { + return pointer(new element(x)); + } + + int + main (void) + { + insert(element()); + return 0; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/other/crash-2.C gcc-3.3.4/gcc/testsuite/g++.dg/other/crash-2.C *** gcc-3.3.3/gcc/testsuite/g++.dg/other/crash-2.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/other/crash-2.C Sun Feb 22 16:42:33 2004 *************** *** 0 **** --- 1,13 ---- + // { dg-do compile } + // { dg-options "-finline -finline-functions" } + // Contributed by Hans Buchmann + // PR c++/14033: ICE while inlining a function with incomplete parameter + + struct A; // { dg-error "forward declaration" } + void foo(A a) {} // { dg-error "incomplete" } + struct A {}; + + void bar(void) + { + foo(A()); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/other/profile1.C gcc-3.3.4/gcc/testsuite/g++.dg/other/profile1.C *** gcc-3.3.3/gcc/testsuite/g++.dg/other/profile1.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/other/profile1.C Wed Mar 3 00:48:54 2004 *************** *** 0 **** --- 1,51 ---- + // PR 11767 + // { dg-do run } + // { dg-options "-fnon-call-exceptions -fprofile-arcs" } + + #include + + typedef unsigned long ACE_UINT32; + extern "C" void abort(); + + static ACE_UINT32 const msc_maxCurrencyID = 9999; + + class ResourceBalanceType2 + { + public: + explicit ResourceBalanceType2( + ACE_UINT32 resourceBalanceTypeID, + ACE_UINT32 isoValue, + const std::string& rc_shortName, + const std::string& rc_symbol + ); + public: + const ACE_UINT32 mc_resBalTypeID; + const ACE_UINT32 mc_isoValue; + const std::string mc_shortName; + const std::string mc_symbol; + }; + + void f(){} + + ResourceBalanceType2::ResourceBalanceType2( + ACE_UINT32 resourceBalanceTypeID, + ACE_UINT32 isoValue, + const std::string& rc_shortName, + const std::string& rc_symbol) + : mc_resBalTypeID(resourceBalanceTypeID), + mc_isoValue(isoValue), + mc_shortName(rc_shortName), + mc_symbol(rc_symbol) + { + bool isGreater = (mc_isoValue > msc_maxCurrencyID); + f(); + bool temp = mc_isoValue > msc_maxCurrencyID; + if (!isGreater) abort(); + if (!temp) abort(); + } + + int main (int argc, char * argv[]) + { + ACE_UINT32 const mc_isoValue = 10000; + ResourceBalanceType2 rbResourceBalanceType2(3, mc_isoValue, "ATM", "M"); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/other/switch1.C gcc-3.3.4/gcc/testsuite/g++.dg/other/switch1.C *** gcc-3.3.3/gcc/testsuite/g++.dg/other/switch1.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/other/switch1.C Mon Feb 23 12:52:18 2004 *************** *** 0 **** --- 1,20 ---- + // { dg-do compile } + // Contributed by: Nick Savoiu + // PR c++/14250: Incomplete type in switch statement + + template + struct A { + operator int(); + }; + + struct C1 { + static A t1; + + void fun() + { + switch(t1) + { + default: break; + } + } + }; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/parse/init1.C gcc-3.3.4/gcc/testsuite/g++.dg/parse/init1.C *** gcc-3.3.3/gcc/testsuite/g++.dg/parse/init1.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/parse/init1.C Sun Feb 22 19:04:51 2004 *************** *** 0 **** --- 1,2 ---- + // { dg-do compile } + int i[8] = { [0] 3 }; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/template/defarg4.C gcc-3.3.4/gcc/testsuite/g++.dg/template/defarg4.C *** gcc-3.3.3/gcc/testsuite/g++.dg/template/defarg4.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/template/defarg4.C Sat May 1 20:27:40 2004 *************** *** 0 **** --- 1,14 ---- + // PR c++/14763 + + struct A { + int get() const {} + static A *foo(); + }; + + template struct S { + S(unsigned int = A::foo()->get()) ; + }; + + void foo() throw() { + S f; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/template/spec11.C gcc-3.3.4/gcc/testsuite/g++.dg/template/spec11.C *** gcc-3.3.3/gcc/testsuite/g++.dg/template/spec11.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/template/spec11.C Mon Feb 23 14:43:12 2004 *************** *** 0 **** --- 1,20 ---- + // { dg-do compile } + + // Origin: jhbrown@bluefinrobotics.com + + // PR c++/13635: ICE explicit specialization of member function template + + template + class bar { + public: + template + int func(baz *x); + }; + + template <> + template + int bar::func(baz *x) { return 5;} + + template <> + template <> + int bar::func(int *x) { return 5;} diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/template/spec12.C gcc-3.3.4/gcc/testsuite/g++.dg/template/spec12.C *** gcc-3.3.3/gcc/testsuite/g++.dg/template/spec12.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/template/spec12.C Tue Mar 9 16:23:45 2004 *************** *** 0 **** --- 1,18 ---- + // { dg-do compile } + // Contributed by: Wolfgang Bangerth + // PR c++/14409: Accepts invalid function signature for explicit instantiation + + struct X + { + template + void foo (U) {} + + template + void foo_const (U) const {} + }; + + template void X::foo (int); + template void X::foo_const (int) const; + + template void X::foo (int) const; // { dg-error "" } + template void X::foo_const (int); // { dg-error "" } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.dg/warn/conv2.C gcc-3.3.4/gcc/testsuite/g++.dg/warn/conv2.C *** gcc-3.3.3/gcc/testsuite/g++.dg/warn/conv2.C Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/g++.dg/warn/conv2.C Sun Feb 22 16:27:38 2004 *************** *** 0 **** --- 1,3 ---- + // PR c++/13932 + + int i = 1.; // { dg-warning "converting" } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-3.3.4/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog *** gcc-3.3.3/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Sat Feb 14 20:19:21 2004 --- gcc-3.3.4/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Mon May 31 22:35:30 2004 *************** *** 1,3 **** --- 1,7 ---- + 2004-05-31 Release Manager + + * GCC 3.3.4 Released. + 2004-02-14 Release Manager * GCC 3.3.3 Released. diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/compile/20040304-1.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/compile/20040304-1.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/compile/20040304-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/compile/20040304-1.c Thu Apr 29 04:54:39 2004 *************** *** 0 **** --- 1,45 ---- + /* PR optimization/14235 */ + /* Origin: */ + + typedef signed char int8_t; + typedef short int16_t; + typedef int int32_t; + typedef unsigned long long uint64_t; + + static const uint64_t LOW_BYTE_MASK = 0x00000000000000ffULL; + static const uint64_t HIGH_BYTE_MASK = 0x000000000000ff00ULL; + static const uint64_t WORD_MASK = 0x000000000000ffffULL; + static const uint64_t DWORD_MASK = 0x00000000ffffffffULL; + + extern uint64_t *srca_mask; + extern int *assert_thrown; + + void foo() + { + uint64_t tempA = 0; /* actually a bunch of code to set A */ + uint64_t tempB = 0; /* actually a bunch of code to set B */ + + /* cast A to right size */ + tempA = (((*srca_mask == LOW_BYTE_MASK) || + (*srca_mask == HIGH_BYTE_MASK)) ? + ((int8_t)tempA) : + ((*srca_mask == WORD_MASK) ? + ((int16_t)tempA) : + ((*srca_mask == DWORD_MASK) ? + ((int32_t)tempA) : + tempA))); + + /* cast B to right size */ + tempB = (((*srca_mask == LOW_BYTE_MASK) || + (*srca_mask == HIGH_BYTE_MASK)) ? + ((int8_t)tempB) : + ((*srca_mask == WORD_MASK) ? + ((int16_t)tempB) : + ((*srca_mask == DWORD_MASK) ? + ((int32_t)tempB) : + tempB))); + + if ((int) tempA > (int) tempB) { + *assert_thrown = 1; + } + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/compile/pr13889.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/compile/pr13889.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/compile/pr13889.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/compile/pr13889.c Sun Mar 21 16:29:02 2004 *************** *** 0 **** --- 1,7 ---- + /* PR target/13889 */ + struct { long long a; } *p; + void initNetFlowFunct(void) { + unsigned int b = (unsigned int)-1; + p->a = b; + } + diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040218-1.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040218-1.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040218-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040218-1.c Sun Feb 22 11:18:47 2004 *************** *** 0 **** --- 1,37 ---- + /* PR target/14209. Bug in cris.md, shrinking access size of + postincrement. + Origin: . */ + + long int xb (long int *y) __attribute__ ((__noinline__)); + long int xw (long int *y) __attribute__ ((__noinline__)); + short int yb (short int *y) __attribute__ ((__noinline__)); + + long int xb (long int *y) + { + long int xx = *y & 255; + return xx + y[1]; + } + + long int xw (long int *y) + { + long int xx = *y & 65535; + return xx + y[1]; + } + + short int yb (short int *y) + { + short int xx = *y & 255; + return xx + y[1]; + } + + int main (void) + { + long int y[] = {-1, 16000}; + short int yw[] = {-1, 16000}; + + if (xb (y) != 16255 + || xw (y) != 81535 + || yb (yw) != 16255) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040302-1.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040302-1.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040302-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040302-1.c Wed Mar 3 00:34:49 2004 *************** *** 0 **** --- 1,24 ---- + int code[]={0,0,0,0,1}; + + void foo(int x) { + volatile int b; + b = 0xffffffff; + } + + void bar(int *pc) { + static const void *l[] = {&&lab0, &&end}; + + foo(0); + goto *l[*pc]; + lab0: + foo(0); + pc++; + goto *l[*pc]; + end: + return; + } + + int main() { + bar(code); + return 0; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040307-1.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040307-1.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040307-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040307-1.c Sun Mar 21 18:52:42 2004 *************** *** 0 **** --- 1,25 ---- + int main() + { + int b = 0; + + struct { + unsigned int bit0:1; + unsigned int bit1:1; + unsigned int bit2:1; + unsigned int bit3:1; + unsigned int bit4:1; + unsigned int bit5:1; + unsigned int bit6:1; + unsigned int bit7:1; + } sdata = {0x01}; + + while ( sdata.bit0-- > 0 ) { + b++ ; + if ( b > 100 ) break; + } + + if (b != 1) + abort (); + return 0; + } + diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040313-1.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040313-1.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040313-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040313-1.c Sat Mar 13 18:32:24 2004 *************** *** 0 **** --- 1,17 ---- + /* PR middle-end/14470 */ + /* Origin: Lodewijk Voge */ + + extern void abort(void); + + int main() + { + int t[1025] = { 1024 }, d; + + d = 0; + d = t[d]++; + if (t[0] != 1025) + abort(); + if (d != 1024) + abort(); + return 0; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040331-1.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040331-1.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/20040331-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/20040331-1.c Thu Apr 1 16:27:06 2004 *************** *** 0 **** --- 1,12 ---- + /* PR c++/14755 */ + extern void abort (void); + extern void exit (int); + + int + main (void) + { + struct { int count: 31; } s = { 0 }; + while (s.count--) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/pr15296.c gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/pr15296.c *** gcc-3.3.3/gcc/testsuite/gcc.c-torture/execute/pr15296.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/pr15296.c Wed May 26 13:24:06 2004 *************** *** 0 **** --- 1,73 ---- + /* PR optimization/15296. The delayed-branch scheduler caused code that + SEGV:d for CRIS; a register was set to -1 in a delay-slot for the + fall-through code, while that register held a pointer used in code at + the branch target. */ + + typedef int __attribute__ ((mode (__pointer__))) intptr_t; + typedef intptr_t W; + union u0 + { + union u0 *r; + W i; + }; + struct s1 + { + union u0 **m0; + union u0 m1[4]; + }; + + void f (void *, struct s1 *, const union u0 *, W, W, W) + __attribute__ ((__noinline__)); + void g (void *, char *) __attribute__ ((__noinline__)); + + void + f (void *a, struct s1 *b, const union u0 *h, W v0, W v1, W v4) + { + union u0 *e = 0; + union u0 *k = 0; + union u0 **v5 = b->m0; + union u0 *c = b->m1; + union u0 **d = &v5[0]; + l0:; + if (v0 < v1) + goto l0; + if (v0 == 0) + goto l3; + v0 = v4; + if (v0 != 0) + goto l3; + c[0].r = *d; + v1 = -1; + e = c[0].r; + if (e != 0) + g (a, ""); + k = e + 3; + k->i = v1; + goto l4; + l3:; + c[0].i = v0; + e = c[1].r; + if (e != 0) + g (a, ""); + e = c[0].r; + if (e == 0) + g (a, ""); + k = e + 2; + k->r = c[1].r; + l4:; + } + + void g (void *a, char *b) { abort (); } + + int + main () + { + union u0 uv[] = {{ .i = 111 }, { .i = 222 }, { .i = 333 }, { .i = 444 }}; + struct s1 s = { 0, {{ .i = 555 }, { .i = 0 }, { .i = 999 }, { .i = 777 }}}; + f (0, &s, 0, 20000, 10000, (W) uv); + if (s.m1[0].i != (W) uv || s.m1[1].i != 0 || s.m1[2].i != 999 + || s.m1[3].i != 777 || uv[0].i != 111 || uv[1].i != 222 + || uv[2].i != 0 || uv[3].i != 444) + abort (); + exit (0); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20001013-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/20001013-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20001013-1.c Mon Mar 25 22:33:43 2002 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20001013-1.c Mon May 31 21:49:27 2004 *************** *** 1,7 **** ! /* ??? It'd be nice to run this for sparc32 as well, if we could know ! for sure that we're on an ultrasparc, rather than an older cpu. */ ! /* { dg-do run { target sparcv9-*-* sparc64-*-* } } */ ! /* { dg-options "-O2 -m32 -mcpu=ultrasparc -mvis" } */ int l; --- 1,5 ---- ! /* { dg-do run { target sparc*-*-* } } */ ! /* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */ int l; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20001101-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/20001101-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20001101-1.c Wed Mar 27 01:23:35 2002 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20001101-1.c Mon May 31 21:49:27 2004 *************** *** 1,7 **** ! /* ??? It'd be nice to run this for sparc32 as well, if we could know ! for sure that we're on an ultrasparc, rather than an older cpu. */ ! /* { dg-do run { target sparcv9-*-* sparc64-*-* } } */ ! /* { dg-options "-O2 -m32 -mcpu=ultrasparc -mvis" } */ int foo(double a, int b, int c, double *d, int h) { --- 1,5 ---- ! /* { dg-do run { target sparc*-*-* } } */ ! /* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */ int foo(double a, int b, int c, double *d, int h) { diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20001102-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/20001102-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20001102-1.c Wed Mar 27 01:23:35 2002 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20001102-1.c Mon May 31 21:49:27 2004 *************** *** 1,7 **** ! /* ??? It'd be nice to run this for sparc32 as well, if we could know ! for sure that we're on an ultrasparc, rather than an older cpu. */ ! /* { dg-do run { target sparcv9-*-* sparc64-*-* } } */ ! /* { dg-options "-O2 -m32 -mcpu=ultrasparc -mvis" } */ int foo(double a, int b, int c, double *d, int h) { --- 1,5 ---- ! /* { dg-do run { target sparc*-*-* } } */ ! /* { dg-options "-O2 -mcpu=ultrasparc -mvis" } */ int foo(double a, int b, int c, double *d, int h) { diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20040127-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/20040127-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20040127-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20040127-1.c Thu Mar 25 07:21:02 2004 *************** *** 0 **** --- 1,24 ---- + /* PR target/10904 */ + /* Origin: */ + + /* Verify that the register allocator correctly aligns + floating-point registers on SPARC64. */ + + /* { dg-do assemble } */ + /* { dg-options "-O2" } */ + + extern int foo1(); + extern int foo2(); + + void foo(int n, int b) + { + int i, a; + + foo1(); + + a = (long)(b * ((double) 0.1)); + + for (i=0; i < n; i++) { + foo2(a); + } + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20040127-2.c gcc-3.3.4/gcc/testsuite/gcc.dg/20040127-2.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20040127-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20040127-2.c Thu Mar 25 07:21:02 2004 *************** *** 0 **** --- 1,32 ---- + /* PR target/13058 */ + /* Origin: Lloyd Parkes */ + /* Reduced testcase by Falk Hueffner */ + + /* Verify that the register allocator correctly aligns + floating-point registers on SPARC64. */ + + /* { dg-do compile } */ + /* { dg-options "-O" } */ + + typedef struct { int ThumbnailSize; } ImageInfo_t; + + double ConvertAnyFormat(void) + { + return 0; + } + + void ProcessExifDir(ImageInfo_t *ImageInfoP, int NumDirEntries) + { + unsigned int ThumbnailSize; + + for (; NumDirEntries;) { + Get16u(); + switch (NumDirEntries) { + case 0x0201: + case 0x0202: + ThumbnailSize = ConvertAnyFormat(); + } + } + + ImageInfoP->ThumbnailSize = ThumbnailSize; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20040306-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/20040306-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20040306-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20040306-1.c Sun Mar 7 02:48:04 2004 *************** *** 0 **** --- 1,22 ---- + /* This used to ICE due to a reload bug on s390*. */ + + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + + typedef struct test + { + unsigned short pad; + unsigned char type[6]; + } t; + + extern void set (t *a, t *b, t *c, t *d, t *e, t *f, t *g, t *h, + t *i, t *j, t *k, t *l, t *m, t *n, t *o, t *p); + extern void use (t a, t b, t c, t d, t e, t f, t g, t h, + t i, t j, t k, t l, t m, t n, t o, t p); + void test (void) + { + t a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; + set (&a, &b, &c, &d, &e, &f, &g, &h, &i, &j, &k, &l, &m, &n, &o, &p); + use (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20040311-2.c gcc-3.3.4/gcc/testsuite/gcc.dg/20040311-2.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20040311-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20040311-2.c Sat Mar 13 11:26:34 2004 *************** *** 0 **** --- 1,36 ---- + /* PR target/14533 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -fpic" } */ + + void bar (char *, int); + + extern char b[]; + extern int d, e; + struct S + { + struct S *m; + int n; + } **g; + + void + foo (int x, char *y) + { + struct S *h; + int k = 1, l; + + again: + for (h = *g; h != (struct S *) g; h = h->m) + { + if (k == 0 && h->n & 0x100000); + l = y - b; + if (e) + bar (b, l); + if (d) + bar (b, l); + } + if (k) + { + k = 0; + goto again; + } + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/20040322-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/20040322-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/20040322-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/20040322-1.c Thu Apr 1 16:20:26 2004 *************** *** 0 **** --- 1,4 ---- + /* PR c/14069 */ + /* { dg-do compile } */ + struct S { int a; char b[]; char *c; }; /* { dg-error "error" "flexible array member not" } */ + struct S s = { .b = "foo", .c = .b }; /* { dg-error "error" "parse error before" } */ diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/const-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/const-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/const-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/const-1.c Sat Mar 13 00:30:53 2004 *************** *** 0 **** --- 1,56 ---- + /* PR optimization/13472 */ + /* Origin: */ + + /* Verify that the reload pass doesn't emit a store + to the .rodata section. */ + + /* { dg-do run } */ + /* { dg-options "-O2 -pedantic -march=i686" { target i686-*-* } } */ + + + #define MAX2(a,b) (((a)>(b)) ? (a) : (b)) + + const int q=0, p=0; + + typedef struct { + float a; + float b; + } F; + + F **E, *D, C = { 2.f, 1.f }; + + void G(float); + void H(void); + + int main(void) + { + D = &C; + E = &D; + + H(); + return 0; + } + + void H(void) + { + int i, l=1; + float b, o; + + if( l ) + { + b = 0.3f * MAX2(0.f,E[q][p].a - E[q][p].b); + o = E[q][p].a; + if( o > 1.e-36f ) + G(o); + E[q][p].a *= b; + } + else + b = 1.f; + for( i=q; i<2; ++i ) + ; + } + + void G(float o) + { + } + diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/gnu89-init-3.c gcc-3.3.4/gcc/testsuite/gcc.dg/gnu89-init-3.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/gnu89-init-3.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/gnu89-init-3.c Fri Mar 26 22:37:18 2004 *************** *** 0 **** --- 1,18 ---- + /* PR 11527 */ + /* { dg-do compile } */ + /* { dg-options "-std=gnu89" } */ + + typedef struct smrdd_memory_blocks_s + { + int blocks; + int block[]; + } smrdd_memory_blocks_t; + + const smrdd_memory_blocks_t smrdd_memory_blocks = + { + 3, + { + [5] = 5, + [1] = 2, + } + }; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/inline-5.c gcc-3.3.4/gcc/testsuite/gcc.dg/inline-5.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/inline-5.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/inline-5.c Fri Mar 12 22:45:04 2004 *************** *** 0 **** --- 1,13 ---- + /* PR middle-end/13448 */ + + /* { dg-options "-O3" } */ + + void funct (const int n) + { + n++; /* { dg-error "" } */ + } + + int main () { + funct (1); + return 0; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/loop-4.c gcc-3.3.4/gcc/testsuite/gcc.dg/loop-4.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/loop-4.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/loop-4.c Mon May 17 21:05:51 2004 *************** *** 0 **** --- 1,25 ---- + /* PR optimization/11841 */ + /* Originator: Andrey Panov */ + /* Reduced testcase by Volker Reichelt */ + + /* Verify that the (old) loop unroller doesn't wrongly mark a pseudo + referenced in a note as local. */ + + /* { dg-do run } */ + /* { dg-options "-O2 -funroll-loops" } */ + + int *a; + + int main() + { + double d[6]; + int i, j; + + for (i=0; i<4; ++i) + for (j=0; j<3; ++j) + d[i+j] = 0; + + a = &i; + + return 0; + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/noncompile/init-4.c gcc-3.3.4/gcc/testsuite/gcc.dg/noncompile/init-4.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/noncompile/init-4.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/noncompile/init-4.c Thu Apr 1 16:20:27 2004 *************** *** 0 **** --- 1,3 ---- + struct a { char *b; } c[D] /* { dg-error "undeclared" } */ + = /* { dg-error "storage size" } */ + { { "" } } ; /* { dg-warning "braces around scalar initializer|near" } */ diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/pr14289-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/pr14289-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/pr14289-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/pr14289-1.c Wed Mar 10 18:37:26 2004 *************** *** 0 **** --- 1,12 ---- + /* PR middle-end/14289 */ + /* { dg-do compile { target i?86-*-* } } */ + /* { dg-options "-O0" } */ + + register int a[2] asm("ebx"); + + void Nase(void) + { + int i=6; + a[i]=5; /* { dg-error "address of global" } */ + } + diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/pr14289-2.c gcc-3.3.4/gcc/testsuite/gcc.dg/pr14289-2.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/pr14289-2.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/pr14289-2.c Wed Mar 10 18:37:26 2004 *************** *** 0 **** --- 1,12 ---- + /* PR middle-end/14289 */ + /* { dg-do compile { target i?86-*-* } } */ + /* { dg-options "-O0" } */ + + static register int a[2] asm("ebx"); /* { dg-error "multiple storage" } */ + + void Nase(void) + { + int i=6; + a[i]=5; /* { dg-error "address of global" } */ + } + diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/pr14289-3.c gcc-3.3.4/gcc/testsuite/gcc.dg/pr14289-3.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/pr14289-3.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/pr14289-3.c Wed Mar 10 18:37:26 2004 *************** *** 0 **** --- 1,12 ---- + /* PR middle-end/14289 */ + /* { dg-do compile { target i?86-*-* } } */ + /* { dg-options "-O0" } */ + + extern register int a[2] asm("ebx"); /* { dg-error "multiple storage" } */ + + void Nase(void) + { + int i=6; + a[i]=5; /* { dg-error "address of global" } */ + } + diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/sparc-ret.c gcc-3.3.4/gcc/testsuite/gcc.dg/sparc-ret.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/sparc-ret.c Fri Dec 7 21:51:04 2001 --- gcc-3.3.4/gcc/testsuite/gcc.dg/sparc-ret.c Mon May 31 21:49:27 2004 *************** *** 3,10 **** Making sure that Ultrasparc return instructions do not read below the stack. */ ! /* { dg-do compile { target sparc*-*-* } } */ ! /* { dg-options "-mcpu=ultrasparc -O -m32" } */ int bar (int a, int b, int c, int d, int e, int f, int g, int h) --- 3,10 ---- Making sure that Ultrasparc return instructions do not read below the stack. */ ! /* { dg-do compile { target sparc-*-* } } */ ! /* { dg-options "-mcpu=ultrasparc -O" } */ int bar (int a, int b, int c, int d, int e, int f, int g, int h) *************** int bar (int a, int b, int c, int d, int *** 14,20 **** toto (&res); return h; } ! /* { dg-final { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*ld\[ \t\]*\\\[%sp\\+96\\\]" } } */ int bar2 () { --- 14,20 ---- toto (&res); return h; } ! /* { dg-final { global compiler_flags; if ![string match "*-m64 *" $compiler_flags] { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*ld\[ \t\]*\\\[%sp\\+96\\\]" } } } */ int bar2 () { *************** int bar2 () *** 23,27 **** toto (&res); return res; } ! /* { dg-final { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*nop" } } */ ! --- 23,26 ---- toto (&res); return res; } ! /* { dg-final { global compiler_flags; if ![string match "*-m64 *" $compiler_flags] { scan-assembler "return\[ \t\]*%i7\\+8\n\[^\n\]*nop" } } } */ diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/sparc-trap-1.c gcc-3.3.4/gcc/testsuite/gcc.dg/sparc-trap-1.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/sparc-trap-1.c Thu Jan 1 00:00:00 1970 --- gcc-3.3.4/gcc/testsuite/gcc.dg/sparc-trap-1.c Mon May 31 21:45:32 2004 *************** *** 0 **** --- 1,20 ---- + /* PR target/15693 */ + /* { dg-do compile { target sparc*-*-* } } */ + /* { dg-options "-O2" } */ + + /* This used to fail on SPARC at -O2 because the combiner + produces a compare insn that was not rematched by the + compare expander. */ + + static __inline__ __attribute__ ((always_inline)) + int page_mapping (unsigned flags) + { + if (1u & (flags >> 16)) + return 1; + return 0; + } + void install_page (unsigned flags) + { + if (__builtin_expect (!page_mapping (flags), 0)) + __builtin_trap (); + } diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/ultrasp2.c gcc-3.3.4/gcc/testsuite/gcc.dg/ultrasp2.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/ultrasp2.c Tue May 15 02:45:32 2001 --- gcc-3.3.4/gcc/testsuite/gcc.dg/ultrasp2.c Mon May 31 21:49:27 2004 *************** *** 4,13 **** /* { dg-do compile } */ /* { dg-options "" } */ ! /* { dg-options "-O0 -m64" { target sparc64-*-* } } */ ! /* { dg-options "-O0 -m64" { target sparcv9-*-* } } */ ! /* { dg-options "" { target sparc-*-solaris2.[0-6] } } */ ! /* { dg-options "" { target sparc-*-solaris2.[0-6].* } } */ short foo() { short i = (short)(1<<15); --- 4,10 ---- /* { dg-do compile } */ /* { dg-options "" } */ ! /* { dg-options "-O0" { target sparc64-*-* sparcv9-*-* } } */ short foo() { short i = (short)(1<<15); diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/ultrasp4.c gcc-3.3.4/gcc/testsuite/gcc.dg/ultrasp4.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/ultrasp4.c Wed Jan 16 17:44:24 2002 --- gcc-3.3.4/gcc/testsuite/gcc.dg/ultrasp4.c Mon May 31 21:49:27 2004 *************** *** 1,10 **** /* Simplified from PR target/5309. */ /* { dg-do compile } */ /* { dg-options "-O2" } */ ! /* { dg-options "-O2 -m64 -mcpu=ultrasparc" { target sparc64-*-* } } */ ! /* { dg-options "-O2 -m64 -mcpu=ultrasparc" { target sparcv9-*-* } } */ ! /* { dg-options "-O2" { target sparc-*-solaris2.[0-6] } } */ ! /* { dg-options "-O2" { target sparc-*-solaris2.[0-6].* } } */ long bar (unsigned int); long foo (long x, unsigned int y) --- 1,7 ---- /* Simplified from PR target/5309. */ /* { dg-do compile } */ /* { dg-options "-O2" } */ ! /* { dg-options "-O2 -mcpu=ultrasparc" { target sparc64-*-* sparcv9-*-* } } */ long bar (unsigned int); long foo (long x, unsigned int y) diff -Nrc3pad gcc-3.3.3/gcc/testsuite/gcc.dg/ultrasp8.c gcc-3.3.4/gcc/testsuite/gcc.dg/ultrasp8.c *** gcc-3.3.3/gcc/testsuite/gcc.dg/ultrasp8.c Sat Apr 12 17:47:30 2003 --- gcc-3.3.4/gcc/testsuite/gcc.dg/ultrasp8.c Mon May 31 21:49:27 2004 *************** *** 1,7 **** /* PR target/10067 */ /* Originator: */ /* { dg-do compile { target sparc*-*-* } } */ ! /* { dg-options "-O2 -m64 -mtune=supersparc" { target sparc64-*-* } } */ struct _reent; --- 1,7 ---- /* PR target/10067 */ /* Originator: */ /* { dg-do compile { target sparc*-*-* } } */ ! /* { dg-options "-O2 -mtune=supersparc" { target sparc64-*-* sparcv9-*-* } } */ struct _reent; diff -Nrc3pad gcc-3.3.3/gcc/testsuite/treelang/ChangeLog gcc-3.3.4/gcc/testsuite/treelang/ChangeLog *** gcc-3.3.3/gcc/testsuite/treelang/ChangeLog Sat Feb 14 20:19:26 2004 --- gcc-3.3.4/gcc/testsuite/treelang/ChangeLog Mon May 31 22:35:35 2004 *************** *** 1,3 **** --- 1,7 ---- + 2004-05-31 Release Manager + + * GCC 3.3.4 Released. + 2004-02-14 Release Manager * GCC 3.3.3 Released.