diff -Nrc3pad gcc-3.3.4/gcc/testsuite/ChangeLog gcc-3.3.5/gcc/testsuite/ChangeLog *** gcc-3.3.4/gcc/testsuite/ChangeLog 2004-05-31 22:35:23.000000000 +0000 --- gcc-3.3.5/gcc/testsuite/ChangeLog 2004-09-30 16:45:41.000000000 +0000 *************** *** 1,3 **** --- 1,32 ---- + 2004-09-30 Release Manager + + * GCC 3.3.5 Released. + + 2004-08-08 Roger Sayle + + PR middle-end/16790 + * gcc.c-torture/execute/pr16790-1.c: New test case. + + 2004-08-04 Ulrich Weigand + + Backport from mainline: + 2003-07-11 Jakub Jelinek + * gcc.dg/20030711-1.c: New test. + + 2004-07-24 Kriang Lerdsuwanakij + + PR c++/16175 + * g++.dg/template/ttp10.C: New test. + + 2004-06-28 Josef Zlomek + + PR c/15549 + Backport from mainline + 2003-08-19 Mark Mitchell + + PR c++/11946.C + * gcc.dg/c99-bool-1.c: Remove bogus warning. + 2004-05-31 Release Manager * GCC 3.3.4 Released. diff -Nrc3pad gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/pr16790-1.c gcc-3.3.5/gcc/testsuite/gcc.c-torture/execute/pr16790-1.c *** gcc-3.3.4/gcc/testsuite/gcc.c-torture/execute/pr16790-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.3.5/gcc/testsuite/gcc.c-torture/execute/pr16790-1.c 2004-08-08 18:55:34.000000000 +0000 *************** *** 0 **** --- 1,41 ---- + /* PR middle-end/16790. */ + + extern void abort (); + + static void test1(unsigned int u1) + { + unsigned int y_final_1; + signed short y_middle; + unsigned int y_final_2; + + y_final_1 = (unsigned int)( (signed short)(u1 * 2) * 3 ); + y_middle = (signed short)(u1 * 2); + y_final_2 = (unsigned int)( y_middle * 3 ); + + if (y_final_1 != y_final_2) + abort (); + } + + + static void test2(unsigned int u1) + { + unsigned int y_final_1; + signed short y_middle; + unsigned int y_final_2; + + y_final_1 = (unsigned int)( (signed short)(u1 << 1) * 3 ); + y_middle = (signed short)(u1 << 1); + y_final_2 = (unsigned int)( y_middle * 3 ); + + if (y_final_1 != y_final_2) + abort (); + } + + + int main() + { + test1(0x4000U); + test2(0x4000U); + return 0; + } + diff -Nrc3pad gcc-3.3.4/gcc/testsuite/gcc.dg/20030711-1.c gcc-3.3.5/gcc/testsuite/gcc.dg/20030711-1.c *** gcc-3.3.4/gcc/testsuite/gcc.dg/20030711-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.3.5/gcc/testsuite/gcc.dg/20030711-1.c 2004-08-03 20:06:58.000000000 +0000 *************** *** 0 **** --- 1,25 ---- + /* Test whether strncmp has not been "optimized" into memcmp + nor any code with memcmp semantics. */ + /* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* } } */ + /* { dg-options "-O2" } */ + #include + #include + + void __attribute__((noinline)) test (const char *p) + { + if (__builtin_strncmp (p, "abcdefghijklmnopq", 17) == 0) + abort (); + } + + int main (void) + { + char *p = mmap (NULL, 131072, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); + if (p == MAP_FAILED) + return 0; + if (munmap (p + 65536, 65536) < 0) + return 0; + __builtin_memcpy (p + 65536 - 5, "abcd", 5); + test (p + 65536 - 5); + return 0; + } diff -Nrc3pad gcc-3.3.4/gcc/testsuite/gcc.dg/c99-bool-1.c gcc-3.3.5/gcc/testsuite/gcc.dg/c99-bool-1.c *** gcc-3.3.4/gcc/testsuite/gcc.dg/c99-bool-1.c 2002-09-16 13:29:49.000000000 +0000 --- gcc-3.3.5/gcc/testsuite/gcc.dg/c99-bool-1.c 2004-06-28 08:03:47.000000000 +0000 *************** main (void) *** 228,236 **** abort (); if ((u |= 2) != 1) abort (); ! /* ??? A bit queer, since this gets optimized to ((u = (u != 3)) != 1) ! early in semantic analysis, which then yields the warning below. */ ! if ((u ^= 3) != 1) /* { dg-warning "always true due to limited range" } */ abort (); /* Test comma expressions. */ u = 1; --- 228,234 ---- abort (); if ((u |= 2) != 1) abort (); ! if ((u ^= 3) != 1) abort (); /* Test comma expressions. */ u = 1; diff -Nrc3pad gcc-3.3.4/gcc/testsuite/g++.dg/opt/nrv7.C gcc-3.3.5/gcc/testsuite/g++.dg/opt/nrv7.C *** gcc-3.3.4/gcc/testsuite/g++.dg/opt/nrv7.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.3.5/gcc/testsuite/g++.dg/opt/nrv7.C 2004-09-13 08:39:17.000000000 +0000 *************** *** 0 **** --- 1,13 ---- + // PR c++/15461 + + struct A { + int i; + }; + + inline A foo () { + int j = 1; + A a = { j }; + return a; + } + + A tv = foo(); diff -Nrc3pad gcc-3.3.4/gcc/testsuite/g++.dg/template/ttp10.C gcc-3.3.5/gcc/testsuite/g++.dg/template/ttp10.C *** gcc-3.3.4/gcc/testsuite/g++.dg/template/ttp10.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.3.5/gcc/testsuite/g++.dg/template/ttp10.C 2004-07-24 13:03:26.000000000 +0000 *************** *** 0 **** --- 1,21 ---- + // { dg-do compile } + + // Origin: Ivan Godard + // Wolfgang Bangerth + + // PR c++/16175: Missing cv qualifier in error message output + + template struct Template {}; + + template class D> + struct B { + static void foo1(const D *); // { dg-error "const" } + static void foo2(volatile D *);// { dg-error "volatile" } + }; + + class E : protected B