diff -Nrcpad gcc-3.4.4/gcc/testsuite/ChangeLog gcc-3.4.5/gcc/testsuite/ChangeLog *** gcc-3.4.4/gcc/testsuite/ChangeLog 2005-05-19 07:49:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/ChangeLog 2005-12-01 02:38:57.000000000 +0000 *************** *** 1,3 **** --- 1,415 ---- + 2005-11-30 Release Manager + + * GCC 3.4.5 released. + + 2005-11-30 Kaveh R. Ghazi + + Backport: + 2005-01-05 Kaveh R. Ghazi + * g++.old-deja/g++.pt/asm1.C, g++.old-deja/g++.pt/asm2.C, + gcc.dg/20011119-1.c: Bypass tests on x86 when using -fpic/-fPIC. + + 2005-11-28 Kean Johnston + * gcc.c-torture/compile/20000804-1.c: Skip if using -fPIC on X86. + * gcc.dg/clobbers.c: Ditto. + * gcc.dg/i386-cmov1.c: Make magic* static so it matches the test + regexp. + * gcc.dg/i386-mul.c: Ditto. + * gcc.dg/i386-ssetype-1.c: Ditto. + + 2005-11-30 Janis Johnson + + * lib/gcc-dg.exp (dg-skip-if): New. + + 2005-11-30 Kaveh R. Ghazi + + PR testsuite/19275 + Backport from mainline: + + * gcc.dg/20020919-1.c: Fix for x86 Darwin. + * gcc.dg/20020919-1.c: Remove unnecessary conditional. + + 2005-11-23 Jakub Jelinek + + PR c++/21983 + * g++.dg/warn/pr21983.C: New test. + + 2005-11-23 Alan Modra + + PR middle-end/24950 + Copy from trunk 2005-11-14 Dale Johannesen + * gcc.c-torture/execute/20051113-1.c: New. + + 2005-11-16 Volker Reichelt + + PR c++/23797 + Backport from mainline: + * g++.dg/parse/typename8.C: New test. + * g++.dg/parse/typename9.C: Likewise. + + 2005-11-15 Volker Reichelt + + Backport from mainline: + 2005-11-02 Mark Mitchell + + PR c++/19253 + * g++.dg/parse/typename10.C: New test. + + Backport from mainline: + 2005-10-08 James A. Morrison + + PR c++/22172 + * g++.dg/parse/crash30.C: New test. + + 2005-11-10 Uros Bizjak + + PR target/24315 + * gcc.dg/pr24315.c: New test. + + 2005-11-10 Uros Bizjak + + PR target/19340 + * gcc.dg/pr19340.c: New test. + + 2005-11-09 Uros Bizjak + + PR c/24101 + * gcc.dg/pr24101-1.i, gcc.dg/pr24101-2.i: New tests. + * gcc.dg/dg.exp: Run main loop also for *.i files. + + 2005-11-02 Josh Conner + + * g++.dg/crash38.C: moved into proper directory... + * g++.dg/template/crash42.C: ...here + + 2005-10-28 Josh Conner + + PR c++/22153 + * g++.dg/template/crash38.C: New test. + * g++.dg/parse/explicit1.C: Change expected errors. + + 2005-10-21 Eric Botcazou + + * gcc.c-torture/execute/20051021-1.c: New test. + + 2005-10-12 Paolo Bonzini + + PR c++/24052 + * g++.dg/ext/label5.C: New. + + 2005-10-11 Volker Reichelt + + Backport: + 2004-09-23 Andrew Pinski + PR c++/17618 + * g++.dg/lookup/crash5.C: New test. + + 2004-05-22 Wolfgang Bangerth + Roger Sayle + * g++.dg/lookup/forscope2.C: New test case. + + 2004-11-02 Mark Mitchell + PR c++/18177 + * g++.dg/conversion/const3.C: New test. + + 2005-10-08 Janis Johnson + + PR debug/24267 + * gcc.dg/debug/dwarf2/dwarf-altivec1.c: New test. + + PR target/18583 + * gcc.dg/altivec-pr18583.c: New test. + + 2005-09-21 Volker Reichelt + + PR c++/23965 + * g++.dg/template/error1.C: Reject "no matching function" message. + + 2005-09-21 Volker Reichelt + + PR c++/17609 + * g++.dg/lookup/error1.C: New test. + * g++.dg/lookup/ambig4.C: Tweak error messages. + * g++.dg/ext/stmtexpr4.C: Likewise. + * g++.dg/parse/error21.C: Tweak testcase. + + Backport: + 2004-03-02 Mark Mitchell + + * g++.dg/lookup/koenig1.C: Tweak error messages. + * g++.dg/lookup/used-before-declaration.C: Likewise. + * g++.dg/other/do1.C: Likewise. + * g++.dg/overload/koenig1.C: Likewise. + * g++.dg/parse/crash13.C: Likewise. + + 2005-09-17 Volker Reichelt + + PR c++/18368 + * g++.dg/other/semicolon.C: New test. + + 2005-09-17 Volker Reichelt + + PR c++/18803 + g++.dg/template/operator5.C: New test. + + PR c++/18445 + g++.dg/template/crash28.C: Remove. + + 2005-09-08 Craig Rodrigues + + Backport from mainline: + 2005-09-01 Craig Rodrigues + * gcc.dg/Wredundant-decls-2.c: New test to check that + -Wredundant-decls does not issue warning for a variable + definition following a declaration. + + 2005-09-06 Volker Reichelt + + Backport: + + 2004-12-14 Mark Mitchell + PR c++/18738 + * g++.dg/template/typename8.C: New test. + * g++.dg/parse/friend2.C: Tweak error message. + + 2005-09-03 Volker Reichelt + + Backport: + + 2005-08-26 Mark Mitchell + PR c++/19004 + * g++.dg/template/nontype13.C: New test. + + 2005-09-02 Richard Sandiford + + PR c/22061 + * gcc.c-torture/execute/pr22061-1.c, + * gcc.c-torture/execute/pr22061-2.c, + * gcc.c-torture/execute/pr22061-3.c, + * gcc.c-torture/execute/pr22061-4.c: New tests. + + 2005-09-02 Volker Reichelt + + PR c++/22233 + * g++.dg/template/param1.C: New test. + + 2005-09-02 Volker Reichelt + + Backport: + + 2004-11-25 Mark Mitchell + PR c++/18466 + * g++.dg/parse/qualified3.C: New test. + * g++.old-deja/g++.other/friend7.C: Remove bogus qualification. + + 2004-11-29 Ben Elliston + * g++.old-deja/g++.other/decl5.C: Remove remaining XFAILs. + + 2005-09-02 Volker Reichelt + + Backport: + + 2004-11-25 Mark Mitchell + PR c++/18445 + * g++.dg/template/crash28.C: New test. + + 2005-09-01 Jakub Jelinek + + PR rtl-optimization/23478 + * g++.dg/opt/pr23478.C: New test. + + 2005-09-01 Volker Reichelt + + Backport: + + 2004-11-27 Mark Mitchell + PR c++/18512 + * g++.dg/template/crash29.C: New test. + + 2005-09-01 Volker Reichelt + + Backport: + + 2004-11-25 Mark Mitchell + PR c++/18545 + * g++.dg/expr/return1.C: New test. + + 2005-09-01 Volker Reichelt + + Backport: + + 2005-02-22 Mark Mitchell + PR c++/20153 + * g++.dg/template/error17.C: New test. + + 2005-07-28 Mark Mitchell + PR c++/22545 + * g++.dg/expr/ptrmem7.C: New test. + + 2005-09-01 Volker Reichelt + + PR c++/13377 + * g++.dg/lookup/ambig4.C: New test. + * g++.dg/lookup/ambig5.C: New test. + + 2005-08-31 Volker Reichelt + + PR c++/23639 + * g++.dg/template/ttp5.C: Adjust error markers. + + 2005-08-08 Josh Conner + + PR rtl-optimization/23241 + * gcc.dg/char-compare.c: New test. + + 2005-08-08 Richard Sandiford + + PR middle-end/21964 + * gcc.c-torture/execute/pr21964-1.c: New test. + + 2005-08-08 Richard Sandiford + + PR c/22458 + * gcc.dg/pr22458-1.c: New test. + + 2005-08-03 Richard Sandiford + + PR target/18582 + * testsuite/gcc.dg/torture/pr18582-1.c: New test. + + 2005-08-02 Ian Lance Taylor + + PR pch/14400 + Backport from mainline: + + 2004-04-07 Ian Lance Taylor + + * gcc.dg/pch/pch.exp: Add largefile test. + + 2005-07-31 Richard Sandiford + + PR target/20621 + * gcc.c-torture/execute/pr20621-1.c: New test. + + 2005-07-28 Joseph S. Myers + + PR c/17188 + PR c/21899 + * gcc.dg/nested-redef-1.c, gcc.dg/pr17188-1.c: New tests. + * gcc.dg/decl-3.c: Adjust expected message. + + 2005-07-28 Joseph S. Myers + + PR c/21873 + * gcc.dg/init-excess-1.c: New test. + + 2005-07-28 Richard Sandiford + + PR c/20187 + * gcc.c-torture/execute/pr20187-1.c: New test. + + 2005-07-28 Giovanni Bajo + + Backport: + + 2004-09-16 Mark Mitchell + PR c++/16002 + * g++.dg/parse/error18.C: New test. + * g++.dg/parse/crash11.C: Adjust error markers. + + 2005-06-17 Geoffrey Keating + PR c++/17413 + * g++.dg/template/local5.C: New. + + 2004-11-02 Mark Mitchell + PR c++/18124 + * g++.dg/template/crash25.C: New test. + PR c++/18155 + * g++.dg/template/typedef2.C: New test. + * g++.dg/parse/crash13.C: Adjust error markers. + + 2004-12-21 Mark Mitchell + PR c++/18378 + * g++.dg/ext/packed8.C: New test. + + 2005-07-28 Richard Sandiford + + PR c/22589 + * gcc.c-torture/compile/pr22589-1.c: New test. + + 2005-07-25 Giovanni Bajo + + PR c++/19208 + * g++.dg/template/array11.C: New test. + + 2005-07-21 Janis Johnson + + PR target/20191 + * gcc.c-torture/compile/20050721-1.c: New test. + + 2005-07-21 Richard Sandiford + + PR rtl-optimization/22167 + * g++.dg/opt/pr22167.C: New test. + + 2005-07-05 Joseph S. Myers + + PR c/22308 + * gcc.dg/pr22308-1.c: New test. + + 2005-06-13 Nathan Sidwell + + PR c++/20789 + * g++.dg/init/member1.C: New. + * g++.dg/other/warning1.C: Adjust. + + 2005-06-08 Nathan Sidwell + + PR c++/21903 + * g++.dg/parse/defarg9.C: New. + + PR c++/19884 + * g++.old-deja/g++.oliva/template6.C: Add another case. + * g++.dg/template/explicit6.C: New. + + PR c++/19608 + * g++.dg/parse/local-class1.C: New. + + 2005-06-08 Eric Botcazou + + * gcc.dg/tls/debug-1.c: New test. + + 2005-06-08 Volker Reichelt + + PR c++/20563 + * g++.dg/ext/label4.C: New test. + + 2005-06-03 Mark Mitchell + + PR c++/21853 + * g++.dg/expr/static_cast6.C: New test. + + 2005-06-03 Mark Mitchell + + PR c++/21336 + * g++.dg/template/new2.C: New test. + + 2005-05-29 Eric Botcazou + + * gcc.dg/c99-math.h: New + * gcc.dg/c99-math-float-1.c: New test. + * gcc.dg/c99-math-double-1.c: Likewise. + * gcc.dg/c99-math-long-double-1.c: Likewise. + + 2005-05-25 Roger Sayle + + PR middle-end/21709 + * gcc.dg/pr21709-1.c: New test case. + + 2005-05-23 Ulrich Weigand + + * gcc.dg/20050510-1.c: New test. + 2005-05-19 Release Manager * GCC 3.4.4 released. diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/compile/20000804-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/compile/20000804-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/compile/20000804-1.c 2003-06-13 05:40:59.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/compile/20000804-1.c 2005-11-30 23:54:04.000000000 +0000 *************** *** 1,6 **** --- 1,7 ---- /* This does not work on m68hc11 or h8300 due to the use of an asm statement to force a 'long long' (64-bits) to go in a register. */ /* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */ + /* { dg-skip-if "" { i?86-*-* } { "-fpic" "-fPIC" } { "" } } */ /* Copyright (C) 2000, 2003 Free Software Foundation */ __complex__ long long f () diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/compile/20050721-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/compile/20050721-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/compile/20050721-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/compile/20050721-1.c 2005-07-21 21:57:05.000000000 +0000 *************** *** 0 **** --- 1,57 ---- + /* Test for PR target/20191. */ + + struct S1; + + struct S1 { + struct S1 *next; + float x; + }; + + struct S2 { + float y; + }; + + extern int func_ex1 (float); + + extern int f; + extern float n; + extern struct S1 *bp1; + extern struct S2 *bp2; + + inline float + func1 (int f, struct S2 *p2) + { + float a; + + if (f) + a = n >= p2->y ? n : p2->y; + else + a = n; + return a; + } + + inline float + func2 (struct S1 *p1, struct S2 *p2) + { + float a, b; + + if(n <= 1.0) + b = func1 (f, p2); + else + { + a = n <= p1->x ? 0.0 : p1->x; + b = a >= p2->y ? a : p2->y; + } + return(b); + } + + void + func3 (struct S1 *p) + { + float a = 0.0; + + if (f) + a = func2 (bp1, bp2); + if (func_ex1 (a)) + bp1 = p; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/compile/pr22589-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/compile/pr22589-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/compile/pr22589-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/compile/pr22589-1.c 2005-07-28 08:08:25.000000000 +0000 *************** *** 0 **** --- 1,4 ---- + int bar (char *foo) + { + return (long long) ((int) foo + 0) < 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/20051021-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/20051021-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/20051021-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/20051021-1.c 2005-10-21 17:26:56.000000000 +0000 *************** *** 0 **** --- 1,28 ---- + /* Verify that TRUTH_AND_EXPR is not wrongly changed to TRUTH_ANDIF_EXPR. */ + + extern void abort (void); + + int count = 0; + + int foo1(void) + { + count++; + return 0; + } + + int foo2(void) + { + count++; + return 0; + } + + int main(void) + { + if ((foo1() == 1) & (foo2() == 1)) + abort (); + + if (count != 2) + abort (); + + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/20051113-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/20051113-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/20051113-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/20051113-1.c 2005-11-23 12:07:14.000000000 +0000 *************** *** 0 **** --- 1,71 ---- + extern void *malloc(__SIZE_TYPE__); + extern void *memset(void *, int, __SIZE_TYPE__); + typedef struct + { + short a; + unsigned short b; + unsigned short c; + unsigned long long Count; + long long Count2; + } __attribute__((packed)) Struct1; + + typedef struct + { + short a; + unsigned short b; + unsigned short c; + unsigned long long d; + long long e; + long long f; + } __attribute__((packed)) Struct2; + + typedef union + { + Struct1 a; + Struct2 b; + } Union; + + typedef struct + { + int Count; + Union List[0]; + } __attribute__((packed)) Struct3; + + unsigned long long Sum (Struct3 *instrs) __attribute__((noinline)); + unsigned long long Sum (Struct3 *instrs) + { + unsigned long long count = 0; + int i; + + for (i = 0; i < instrs->Count; i++) { + count += instrs->List[i].a.Count; + } + return count; + } + long long Sum2 (Struct3 *instrs) __attribute__((noinline)); + long long Sum2 (Struct3 *instrs) + { + long long count = 0; + int i; + + for (i = 0; i < instrs->Count; i++) { + count += instrs->List[i].a.Count2; + } + return count; + } + main() { + Struct3 *p = malloc (sizeof (int) + 3 * sizeof(Struct1)); + memset(p, 0, sizeof(int) + 3*sizeof(Struct1)); + p->Count = 3; + p->List[0].a.Count = 555; + p->List[1].a.Count = 999; + p->List[2].a.Count = 0x101010101ULL; + p->List[0].a.Count2 = 555; + p->List[1].a.Count2 = 999; + p->List[2].a.Count2 = 0x101010101LL; + if (Sum(p) != 555 + 999 + 0x101010101ULL) + abort(); + if (Sum2(p) != 555 + 999 + 0x101010101LL) + abort(); + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr20187-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr20187-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr20187-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr20187-1.c 2005-07-28 16:34:42.000000000 +0000 *************** *** 0 **** --- 1,15 ---- + int a = 0x101; + int b = 0x100; + + int + test (void) + { + return (((unsigned char) (unsigned long long) ((a ? a : 1) & (a * b))) + ? 0 : 1); + } + + int + main (void) + { + return 1 - test (); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr20621-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr20621-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr20621-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr20621-1.c 2005-07-31 08:35:15.000000000 +0000 *************** *** 0 **** --- 1,6 ---- + /* When generating o32 MIPS PIC, main's $gp save slot was out of range + of a single load instruction. */ + struct big { int i[sizeof (int) >= 4 && sizeof (void *) >= 4 ? 0x4000 : 4]; }; + struct big gb; + int foo (struct big b, int x) { return b.i[x]; } + int main (void) { return foo (gb, 0) + foo (gb, 1); } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr21964-1.c 2005-08-08 07:49:09.000000000 +0000 *************** *** 0 **** --- 1,16 ---- + void + foo (int n, int m) + { + if (m == 0) + exit (0); + else if (n != 0) + abort (); + else + foo (n++, m - 1); + } + + int + main (void) + { + foo (0, 4); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-1.c 2005-09-02 12:34:58.000000000 +0000 *************** *** 0 **** --- 1,16 ---- + int N = 1; + void foo() {} /* Necessary to trigger the original ICE. */ + void bar (char a[2][N]) { a[1][0] = N; } + int + main (void) + { + void *x; + + N = 4; + x = alloca (2 * N); + memset (x, 0, 2 * N); + bar (x); + if (N[(char *) x] != N) + abort (); + exit (0); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-2.c 2005-09-02 12:34:58.000000000 +0000 *************** *** 0 **** --- 1,7 ---- + int *x; + static void bar (char a[2][(*x)++]) {} + int + main (void) + { + exit (0); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-3.c 2005-09-02 12:34:58.000000000 +0000 *************** *** 0 **** --- 1,18 ---- + void + bar (int N) + { + int foo (char a[2][++N]) { N += 4; return sizeof (a[0]); } + if (foo (0) != 2) + abort (); + if (foo (0) != 7) + abort (); + if (N != 11) + abort (); + } + + int + main() + { + bar (1); + exit (0); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c *** gcc-3.4.4/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.c-torture/execute/pr22061-4.c 2005-09-02 12:34:58.000000000 +0000 *************** *** 0 **** --- 1,22 ---- + void + bar (int N) + { + void foo (int a[2][N++]) {} + int a[2][N]; + foo (a); + int b[2][N]; + foo (b); + if (sizeof (a) != sizeof (int) * 2 * 1) + abort (); + if (sizeof (b) != sizeof (int) * 2 * 2) + abort (); + if (N != 3) + abort (); + } + + int + main (void) + { + bar (1); + exit (0); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/20011119-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/20011119-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/20011119-1.c 2001-11-21 00:04:47.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/20011119-1.c 2005-11-30 23:54:04.000000000 +0000 *************** *** 1,5 **** --- 1,6 ---- /* Test for reload failing to eliminate from argp to sp. */ /* { dg-do run { target i?86-*-* } } */ + /* { dg-skip-if "" { i?86-*-* } { "-m64" "-fpic" "-fPIC" } { "" } } */ /* { dg-options "-O2 -fomit-frame-pointer" } */ static int ustrsize (const char *s); diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/20020919-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/20020919-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/20020919-1.c 2002-10-02 08:26:39.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/20020919-1.c 2005-11-30 18:04:46.000000000 +0000 *************** *** 31,38 **** #elif defined (__i386__) # define REG1 "%eax" # define REG2 "%edx" ! # define REG3 "%ecx" ! # define REG4 "%ebx" #elif defined (__MMIX__) # define REG1 "$8" # define REG2 "$9" --- 31,39 ---- #elif defined (__i386__) # define REG1 "%eax" # define REG2 "%edx" ! /* On Darwin -fpic is on by default, so don't use %ebx. */ ! # define REG3 "%esi" ! # define REG4 "%edi" #elif defined (__MMIX__) # define REG1 "$8" # define REG2 "$9" diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/20050510-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/20050510-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/20050510-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/20050510-1.c 2005-05-23 17:04:39.000000000 +0000 *************** *** 0 **** --- 1,31 ---- + /* This used to abort due to incorrect loop iteration count computation. */ + + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + int test (unsigned char *data) + { + unsigned char *top; + unsigned char *bottom; + unsigned int i = 0; + + for (bottom = data, top = data + 36; + top > bottom; + bottom++, top--) + { + i++; + } + + return i; + } + + int main (void) + { + unsigned char buffer[36]; + + if (test (buffer) != 18) + abort (); + + exit (0); + } + diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/altivec-pr18583.c gcc-3.4.5/gcc/testsuite/gcc.dg/altivec-pr18583.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/altivec-pr18583.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/altivec-pr18583.c 2005-10-08 22:21:11.000000000 +0000 *************** *** 0 **** --- 1,8 ---- + /* { dg-do compile { target powerpc*-*-* } } */ + /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */ + /* { dg-options "-maltivec" } */ + + #include + + static const vector signed short c[1] = + {(const vector signed short){4095, 5681, 5351, 4816, 4095, 4816, 5351, 5681}}; diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math-double-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math-double-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math-double-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math-double-1.c 2005-05-29 20:45:43.000000000 +0000 *************** *** 0 **** --- 1,18 ---- + /* { dg-do run { target *-*-solaris2.1[0-9]* } } */ + /* { dg-options "-std=c99 -O" } */ + + #include + #include "c99-math.h" + + int main(void) + { + double nan = NAN; + double inf = INFINITY; + double huge = HUGE_VAL; + double norm = __DBL_MIN__; + double zero = 0.0; + + C99_MATH_TESTS (nan, inf, huge, norm, zero) + + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math-float-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math-float-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math-float-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math-float-1.c 2005-05-29 20:45:43.000000000 +0000 *************** *** 0 **** --- 1,18 ---- + /* { dg-do run { target *-*-solaris2.1[0-9]* } } */ + /* { dg-options "-std=c99 -O" } */ + + #include + #include "c99-math.h" + + int main(void) + { + float nan = NAN; + float inf = INFINITY; + float huge = HUGE_VALF; + float norm = __FLT_MIN__; + float zero = 0.0f; + + C99_MATH_TESTS (nan, inf, huge, norm, zero) + + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math.h gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math.h *** gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math.h 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math.h 2005-05-29 20:45:43.000000000 +0000 *************** *** 0 **** --- 1,111 ---- + #include + + extern void abort(void); + + #define C99_MATH_TESTS(nan, inf, huge, norm, zero) \ + { \ + if (fpclassify (nan) != FP_NAN) \ + abort (); \ + \ + if (fpclassify (inf) != FP_INFINITE) \ + abort (); \ + \ + if (fpclassify (huge) != FP_INFINITE) \ + abort (); \ + \ + if (fpclassify (norm) != FP_NORMAL) \ + abort (); \ + \ + if (fpclassify (zero) != FP_ZERO) \ + abort (); \ + \ + \ + if (!isnan (nan)) \ + abort (); \ + \ + if (isnan (inf)) \ + abort (); \ + \ + if (isnan (huge)) \ + abort (); \ + \ + if (isnan (norm)) \ + abort (); \ + \ + if (isnan (zero)) \ + abort (); \ + \ + \ + if (isinf (nan)) \ + abort (); \ + \ + if (!isinf (inf)) \ + abort (); \ + \ + if (!isinf (huge)) \ + abort (); \ + \ + if (isnan (norm)) \ + abort (); \ + \ + if (isinf (zero)) \ + abort (); \ + \ + \ + if (isfinite (nan)) \ + abort (); \ + \ + if (isfinite (inf)) \ + abort (); \ + \ + if (isfinite (huge)) \ + abort (); \ + \ + if (!isfinite (norm)) \ + abort (); \ + \ + if (!isfinite (zero)) \ + abort (); \ + \ + \ + if (isnormal (nan)) \ + abort (); \ + \ + if (isnormal (inf)) \ + abort (); \ + \ + if (isnormal (huge)) \ + abort (); \ + \ + if (!isnormal (norm)) \ + abort (); \ + \ + if (isnormal (zero)) \ + abort (); \ + \ + \ + if (signbit (norm)) \ + abort (); \ + \ + if (!signbit (-(norm))) \ + abort (); \ + \ + \ + if (!isgreater ((inf), (norm))) \ + abort (); \ + \ + if (!isgreaterequal ((inf), (huge))) \ + abort (); \ + \ + if (!isless ((norm), (inf))) \ + abort (); \ + \ + if (!islessequal ((huge), (inf))) \ + abort (); \ + \ + if (!islessgreater ((inf), (norm))) \ + abort (); \ + \ + if (!isunordered ((nan), (norm))) \ + abort (); \ + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math-long-double-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math-long-double-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/c99-math-long-double-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/c99-math-long-double-1.c 2005-05-29 20:45:43.000000000 +0000 *************** *** 0 **** --- 1,18 ---- + /* { dg-do run { target *-*-solaris2.1[0-9]* } } */ + /* { dg-options "-std=c99 -O" } */ + + #include + #include "c99-math.h" + + int main(void) + { + long double nan = NAN; + long double inf = INFINITY; + long double huge = HUGE_VALL; + long double norm = __LDBL_MIN__; + long double zero = 0.0l; + + C99_MATH_TESTS (nan, inf, huge, norm, zero) + + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/char-compare.c gcc-3.4.5/gcc/testsuite/gcc.dg/char-compare.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/char-compare.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/char-compare.c 2005-08-08 18:43:10.000000000 +0000 *************** *** 0 **** --- 1,23 ---- + /* PR rtl-optimization/23241 */ + /* Origin: Josh Conner */ + + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + extern void abort(void); + + struct fbs { + unsigned char uc; + } fbs1 = {255}; + + void fn(struct fbs *fbs_ptr) + { + if ((fbs_ptr->uc != 255) && (fbs_ptr->uc != 0)) + abort(); + } + + int main(void) + { + fn(&fbs1); + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/clobbers.c gcc-3.4.5/gcc/testsuite/gcc.dg/clobbers.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/clobbers.c 2000-05-23 19:30:44.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/clobbers.c 2005-11-30 23:54:04.000000000 +0000 *************** *** 1,6 **** --- 1,7 ---- /* Test asm clobbers on x86. */ /* { dg-do run { target i?86-*-* } } */ + /* { dg-skip-if "" { i?86-*-* } { "-fpic" "-fPIC" } { "" } } */ extern void abort (void); diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-altivec1.c gcc-3.4.5/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-altivec1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-altivec1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-altivec1.c 2005-10-08 22:24:50.000000000 +0000 *************** *** 0 **** --- 1,16 ---- + /* Verify that debug information does not have unknown names for + vector base types. */ + /* { dg-do compile { target powerpc*-*-* } } */ + /* { dg-options "-gdwarf-2 -maltivec" } */ + + __vector __bool vb; + __vector float vf; + __vector __pixel vp; + __vector signed char vsc; + __vector signed int vsi; + __vector signed short vss; + __vector unsigned char vuc; + __vector unsigned int vui; + __vector unsigned short vus; + + /* { dg-final { scan-assembler-not "__unknown__" } } */ diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/decl-3.c gcc-3.4.5/gcc/testsuite/gcc.dg/decl-3.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/decl-3.c 2004-01-11 01:18:58.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/decl-3.c 2005-07-28 23:01:29.000000000 +0000 *************** *** 2,5 **** /* { dg-do compile } */ enum { CODES }; /* { dg-error "previous definition" } */ ! enum { CODES }; /* { dg-error "conflicting types" } */ --- 2,5 ---- /* { dg-do compile } */ enum { CODES }; /* { dg-error "previous definition" } */ ! enum { CODES }; /* { dg-error "conflicting types|redeclaration of enumerator" } */ diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/dg.exp gcc-3.4.5/gcc/testsuite/gcc.dg/dg.exp *** gcc-3.4.4/gcc/testsuite/gcc.dg/dg.exp 2001-02-08 02:29:37.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/dg.exp 2005-11-09 07:51:51.000000000 +0000 *************** if ![info exists DEFAULT_CFLAGS] then { *** 29,35 **** dg-init # Main loop. ! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \ "" $DEFAULT_CFLAGS # All done. --- 29,35 ---- dg-init # Main loop. ! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cSi\]]] \ "" $DEFAULT_CFLAGS # All done. diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/i386-cmov1.c gcc-3.4.5/gcc/testsuite/gcc.dg/i386-cmov1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/i386-cmov1.c 2003-06-08 14:50:18.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/i386-cmov1.c 2005-11-30 23:54:04.000000000 +0000 *************** *** 9,23 **** /* Check code generation for several conditional moves doable by single arithmetics. */ ! int magic_namea; ! char magic_nameb; ! short magic_namec; ! int magic_named; ! char magic_namee; ! short magic_namef; unsigned int gen; ! m() { magic_namec=magic_namec>=0?0:-1; magic_namea=magic_namea>=0?0:-1; --- 9,23 ---- /* Check code generation for several conditional moves doable by single arithmetics. */ ! static int magic_namea; ! static char magic_nameb; ! static short magic_namec; ! static int magic_named; ! static char magic_namee; ! static short magic_namef; unsigned int gen; ! void m(void) { magic_namec=magic_namec>=0?0:-1; magic_namea=magic_namea>=0?0:-1; diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/i386-mul.c gcc-3.4.5/gcc/testsuite/gcc.dg/i386-mul.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/i386-mul.c 2003-06-08 14:50:18.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/i386-mul.c 2005-11-30 23:54:04.000000000 +0000 *************** *** 3,10 **** /* { dg-final { scan-assembler "and\[^\\n\]*magic" } } */ /* Should be done as "andw $32767, magic". */ ! unsigned short magic; ! t() { magic%=(unsigned short)0x8000U; } --- 3,10 ---- /* { dg-final { scan-assembler "and\[^\\n\]*magic" } } */ /* Should be done as "andw $32767, magic". */ ! static unsigned short magic; ! void t(void) { magic%=(unsigned short)0x8000U; } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/i386-ssetype-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/i386-ssetype-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/i386-ssetype-1.c 2003-06-08 14:50:18.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/i386-ssetype-1.c 2005-11-30 23:54:04.000000000 +0000 *************** *** 11,17 **** #include ! __m128d magic_a, magic_b; __m128d t1(void) --- 11,17 ---- #include ! static __m128d magic_a, magic_b; __m128d t1(void) diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/init-excess-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/init-excess-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/init-excess-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/init-excess-1.c 2005-07-28 22:56:03.000000000 +0000 *************** *** 0 **** --- 1,48 ---- + /* Test for various cases of excess initializers for empty objects: + bug 21873. Various versions of GCC ICE, hang or loop repeating + diagnostics on various of these tests. */ + /* Origin: Joseph Myers */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + struct s0 { }; + struct s1 { int a; }; + struct s2 { int a; int b; }; + + int a0[0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + int a1[0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + int a2[0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + int a3[1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + int a4[][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + int a5[][0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + int a6[][0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + int a7[][1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + + struct s0 b0[0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b1[0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b2[0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b3[1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b4[][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b5[][0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b6[][0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b7[][1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b8[1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s0 b9[] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + + struct s1 c0[0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s1 c1[0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s1 c2[0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s1 c3[1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s1 c4[][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s1 c5[][0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s1 c6[][0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s1 c7[][1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + + struct s2 d0[0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s2 d1[0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s2 d2[0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s2 d3[1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s2 d4[][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s2 d5[][0][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s2 d6[][0][1] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ + struct s2 d7[][1][0] = { 1, 2 }; /* { dg-warning "excess elements|near init" } */ diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/nested-redef-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/nested-redef-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/nested-redef-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/nested-redef-1.c 2005-07-28 23:01:29.000000000 +0000 *************** *** 0 **** --- 1,44 ---- + /* Test diagnosis of nested tag redefinitions. */ + /* Origin: Joseph Myers */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + struct s0 { + struct s0 { int a; } x; /* { dg-error "error: nested redefinition of `struct s0'" } */ + }; + + struct s1 { + const struct s1 { int b; } x; /* { dg-error "error: nested redefinition of `struct s1'" } */ + }; + + struct s2 { + struct s2 { int c; } *x; /* { dg-error "error: nested redefinition of `struct s2'" } */ + }; + + struct s3 { + struct s4 { + struct s5 { + struct s3 { int a; } **x; /* { dg-error "error: nested redefinition of `struct s3'" } */ + } y; + } z; + }; + + struct s6; + struct s6 { struct s6 *p; }; + + union u0 { + union u0 { int c; } *x; /* { dg-error "error: nested redefinition of `union u0'" } */ + }; + + enum e0 { + E0 = sizeof(enum e0 { E1 }) /* { dg-error "error: nested redefinition of `enum e0'" } */ + }; + + enum e1 { + E2 = sizeof(enum e2 { E2 }), /* { dg-error "error: redeclaration of enumerator `E2'" } */ + /* { dg-error "previous definition" "previous E2" { target *-*-* } 38 } */ + E3 + }; + + enum e3; + enum e3 { E4 = 0 }; diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pch/pch.exp gcc-3.4.5/gcc/testsuite/gcc.dg/pch/pch.exp *** gcc-3.4.4/gcc/testsuite/gcc.dg/pch/pch.exp 2003-06-04 15:32:08.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pch/pch.exp 2005-08-02 19:03:45.000000000 +0000 *************** foreach test [lsort [glob -nocomplain $s *** 37,42 **** --- 37,57 ---- dg-pch $subdir $test [concat [list {-O0 -g}] $torture_without_loops] ".h" } + set test "largefile.c" + set testh "largefile.hs" + set f [open $test w] + set v 0 + for { set v 0 } { $v < 10000 } { incr v } { + puts $f "#define MACRO_${v} \"1234567890\" \"$v\"" + } + puts $f "#include \"largefile.h\"" + close $f + set f [open $testh w] + close $f + dg-pch $subdir $test [concat [list {-O0 -g}] $torture_without_loops] ".h" + file delete $test + file delete $testh + set dg-do-what-default "$old_dg_do_what_default" # All done. diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr17188-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/pr17188-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr17188-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr17188-1.c 2005-07-28 23:01:29.000000000 +0000 *************** *** 0 **** --- 1,31 ---- + /* A redefinition of an empty struct should be diagnosed the same as a + redefinition of any other tag, but formerly only s2 and s4 were + diagnosed. Bug 17188. */ + /* Origin: Joseph Myers */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + struct s0 { }; + struct s0; + struct s0 { }; /* { dg-error "error: redefinition of `struct s0'" } */ + + struct s1 { }; + struct s1 { }; /* { dg-error "error: redefinition of `struct s1'" } */ + + struct s2 { int a : 1; }; + struct s2 { int a : 1; }; /* { dg-error "error: redefinition of `struct s2'" } */ + + struct s3 { }; + struct s3 { int a : 1; }; /* { dg-error "error: redefinition of `struct s3'" } */ + + struct s4 { int a : 1; }; + struct s4 { }; /* { dg-error "error: redefinition of `struct s4'" } */ + + struct s5 { int a : 1; }; + struct s5; + + struct s6; + struct s6 { int a : 1; }; + + struct s7; + struct s7 { }; diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr19340.c gcc-3.4.5/gcc/testsuite/gcc.dg/pr19340.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr19340.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr19340.c 2005-11-10 07:27:47.000000000 +0000 *************** *** 0 **** --- 1,26 ---- + /* { dg-do compile } */ + /* { dg-options "-O1 -fschedule-insns2 -fsched2-use-traces" } */ + + extern double f (double x); + + double g (int a) + { + int b, c, d, e = 0; + double h; + + for (d = 0; d < a; d++) + for (c = 0; c < a; c++) + b = 1; + + h = (double) e / (double) a; + + if (h) + { + h = 1.0 / h; + h = f (h); + } + else + h = 1.0; + + return h; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr21709-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/pr21709-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr21709-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr21709-1.c 2005-05-26 05:44:01.000000000 +0000 *************** *** 0 **** --- 1,6 ---- + /* PR middle-end/21709 */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + double _Complex f(void) { return 1.0iF / 0.0; } + diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr22308-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/pr22308-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr22308-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr22308-1.c 2005-07-05 21:19:16.000000000 +0000 *************** *** 0 **** --- 1,13 ---- + /* Bug 22308: C_TYPE_FIELDS_READONLY not updated on type variants. */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + struct foo s; + volatile struct foo t; + struct foo { const int z; }; + + void + bar (void) + { + t = s; /* { dg-error "error: assignment of read-only variable `t'" } */ + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr22458-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/pr22458-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr22458-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr22458-1.c 2005-08-08 07:42:37.000000000 +0000 *************** *** 0 **** --- 1,4 ---- + /* { dg-error "(parse|syntax) error" "" { target *-*-* } 0 } */ + void foo() + { + __PRETTY_FUNCTION__; diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr24101-1.i gcc-3.4.5/gcc/testsuite/gcc.dg/pr24101-1.i *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr24101-1.i 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr24101-1.i 2005-11-09 07:51:51.000000000 +0000 *************** *** 0 **** --- 1,4 ---- + /* { dg-do compile } */ + /* { dg-options "-ansi" } */ + + # 1 "/usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/include/stddef.h" 1 3 4 diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr24101-2.i gcc-3.4.5/gcc/testsuite/gcc.dg/pr24101-2.i *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr24101-2.i 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr24101-2.i 2005-11-09 07:51:51.000000000 +0000 *************** *** 0 **** --- 1,4 ---- + /* { dg-do compile } */ + /* { dg-options "-ansi" } */ + + # diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/pr24315.c gcc-3.4.5/gcc/testsuite/gcc.dg/pr24315.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/pr24315.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/pr24315.c 2005-11-10 07:27:47.000000000 +0000 *************** *** 0 **** --- 1,9 ---- + /* PR target/24315 */ + /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ + /* { dg-options "-O0 -fpeephole2" } */ + + void s48_double_to_bignum (int exponent) + { + long length = ((((exponent) + ((((sizeof (long)) * 8) - 2) - 1)) / + (((sizeof (long)) * 8) - 2))); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/tls/debug-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/tls/debug-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/tls/debug-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/tls/debug-1.c 2005-06-08 20:54:30.000000000 +0000 *************** *** 0 **** --- 1,4 ---- + /* { dg-do assemble } */ + /* { dg-options "-g" } */ + + __thread int i; diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/torture/pr18582-1.c gcc-3.4.5/gcc/testsuite/gcc.dg/torture/pr18582-1.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/torture/pr18582-1.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/torture/pr18582-1.c 2005-08-03 14:15:28.000000000 +0000 *************** *** 0 **** --- 1,37 ---- + /* { dg-do compile { target i?86-*-* } } */ + /* { dg-options "-msse3" } */ + typedef char v16qi __attribute__((vector_size (16))); + typedef int v4si __attribute__((vector_size (16))); + typedef float v4sf __attribute__((vector_size (16))); + typedef double v2df __attribute__((vector_size (16))); + + extern char ca[]; + extern int ia[]; + extern float fa[]; + extern double da[]; + + extern v16qi cva[]; + extern v4si iva[]; + extern v4sf fva[]; + extern v2df dva[]; + + void + foo (void) + { + cva[0] = __builtin_ia32_loaddqa (ca); + cva[0] = __builtin_ia32_loaddqu (ca); + cva[0] = __builtin_ia32_lddqu (ca); + + iva[0] = __builtin_ia32_loadd (ia); + + fva[0] = __builtin_ia32_loadaps (fa); + fva[0] = __builtin_ia32_loadups (fa); + fva[0] = __builtin_ia32_loadss (fa); + + dva[0] = __builtin_ia32_loadapd (da); + dva[0] = __builtin_ia32_loadupd (da); + dva[0] = __builtin_ia32_loadsd (da); + dva[0] = __builtin_ia32_loadpd1 (da); + dva[0] = __builtin_ia32_loadrpd (da); + dva[0] = __builtin_ia32_loadddup (da); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/gcc.dg/Wredundant-decls-2.c gcc-3.4.5/gcc/testsuite/gcc.dg/Wredundant-decls-2.c *** gcc-3.4.4/gcc/testsuite/gcc.dg/Wredundant-decls-2.c 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/gcc.dg/Wredundant-decls-2.c 2005-09-09 00:30:59.000000000 +0000 *************** *** 0 **** --- 1,27 ---- + /* Test for -Wredundant-decls warnings */ + /* { dg-do compile } */ + /* { dg-options "-Wredundant-decls" } */ + + int j = 5; /* { dg-warning "previous" } */ + int j; /* { dg-warning "redundant" } */ + + static int k; + static int k = 5; /* { dg-warning "previous" } */ + static int k; /* { dg-warning "redundant" } */ + + static int l = 5; /* { dg-warning "previous" } */ + static int l; /* { dg-warning "redundant" } */ + + static int m; /* { dg-warning "previous" } */ + static int m; /* { dg-warning "redundant" } */ + static int m = 5; + + int n; /* { dg-warning "previous" } */ + int n; /* { dg-warning "redundant" } */ + int n = 5; + + static int o; + static int o = 5; + + int p; + int p = 5; diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/conversion/const3.C gcc-3.4.5/gcc/testsuite/g++.dg/conversion/const3.C *** gcc-3.4.4/gcc/testsuite/g++.dg/conversion/const3.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/conversion/const3.C 2005-10-11 00:39:26.000000000 +0000 *************** *** 0 **** --- 1,7 ---- + // PR c++/18177 + + void foo() + { + X; // { dg-error "" } + const_cast(X); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/conversion/simd2.C gcc-3.4.5/gcc/testsuite/g++.dg/conversion/simd2.C *** gcc-3.4.4/gcc/testsuite/g++.dg/conversion/simd2.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/conversion/simd2.C 2005-06-11 00:16:02.000000000 +0000 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + + /* Test generic operations on vectors. */ + + int __attribute__((vector_size(16))) a, b, c; + int __attribute__((vector_size(8))) d; + void foo() + { + a = b ^ c; + a = b + c; + a = b - c; + a = b * c; + a = b / c; + a = -b; + a = d + b; /* { dg-error "can't convert between vector" } */ + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/eh/synth2.C gcc-3.4.5/gcc/testsuite/g++.dg/eh/synth2.C *** gcc-3.4.4/gcc/testsuite/g++.dg/eh/synth2.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/eh/synth2.C 2005-11-14 20:48:50.000000000 +0000 *************** *** 0 **** --- 1,24 ---- + // PR c++/24580 + // { dg-do run } + + struct vbase {}; + + struct foo : virtual vbase + { + foo() + { + throw "exception in foo ctor"; + } + }; + + struct bar : public foo {}; + + int main() + { + try + { + bar a; + } + catch ( ... ) { } + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/expr/ptrmem7.C gcc-3.4.5/gcc/testsuite/g++.dg/expr/ptrmem7.C *** gcc-3.4.4/gcc/testsuite/g++.dg/expr/ptrmem7.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/expr/ptrmem7.C 2005-09-01 11:47:42.000000000 +0000 *************** *** 0 **** --- 1,21 ---- + // PR c++/22545 + + struct A { + int member; + A() : member(13) {} + }; + + A a; + + struct B { + operator A*() { return &a; } + }; + + B b; + + int A::* member_pntr = &A::member; + + int main() + { + return b ->* member_pntr; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/expr/return1.C gcc-3.4.5/gcc/testsuite/g++.dg/expr/return1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/expr/return1.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/expr/return1.C 2005-09-01 15:06:16.000000000 +0000 *************** *** 0 **** --- 1,9 ---- + // PR c++/18545 + + struct A; + + A foo() + { // { dg-error "incomplete" } + A a; // { dg-error "incomplete" } + return a; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/expr/static_cast6.C gcc-3.4.5/gcc/testsuite/g++.dg/expr/static_cast6.C *** gcc-3.4.4/gcc/testsuite/g++.dg/expr/static_cast6.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/expr/static_cast6.C 2005-06-03 23:24:54.000000000 +0000 *************** *** 0 **** --- 1,15 ---- + // PR c++/21853 + + struct blah { + int a; + }; + + int main( int argc, char ** argv ) { + int blah::* ptdma = &blah::a; + + const void *ptdmv = static_cast< void * >( &ptdma ); + + int blah::* const ptdmb = * static_cast< int blah::* const * >( ptdmv ); + + return 0; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/ext/label4.C gcc-3.4.5/gcc/testsuite/g++.dg/ext/label4.C *** gcc-3.4.4/gcc/testsuite/g++.dg/ext/label4.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/ext/label4.C 2005-06-08 11:26:05.000000000 +0000 *************** *** 0 **** --- 1,6 ---- + // PR c++/20563: ICE (--enable-checking), infinite loop (--disable-checking) + // Origin: Giovanni Bajo + + // { dg-do compile } + + __label__ *l; // { dg-error "before" } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/ext/label5.C gcc-3.4.5/gcc/testsuite/g++.dg/ext/label5.C *** gcc-3.4.4/gcc/testsuite/g++.dg/ext/label5.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/ext/label5.C 2005-10-12 13:45:08.000000000 +0000 *************** *** 0 **** --- 1,7 ---- + // { dg-options "" } + // PR c++/24052 + + struct A { }; + int main() { b: A() && && b; } // { dg-error "A\\(\\) && && *b" } + + // { dg-error "candidate" "additional" { target *-*-* } 5 } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/ext/packed8.C gcc-3.4.5/gcc/testsuite/g++.dg/ext/packed8.C *** gcc-3.4.4/gcc/testsuite/g++.dg/ext/packed8.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/ext/packed8.C 2005-07-28 10:22:22.000000000 +0000 *************** *** 0 **** --- 1,20 ---- + // PR c++/18378 + + class A + { + public: + int i; + + A() {} + A(const A& a) { i = a.i; } + }; + + class B + { + A a __attribute__((packed)); + + public: + B() {} + A GetA() { return a; } // { dg-error "" } + }; + diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/ext/stmtexpr4.C gcc-3.4.5/gcc/testsuite/g++.dg/ext/stmtexpr4.C *** gcc-3.4.4/gcc/testsuite/g++.dg/ext/stmtexpr4.C 2005-03-21 15:34:56.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/ext/stmtexpr4.C 2005-09-21 15:08:00.000000000 +0000 *************** *** 4,8 **** void foo() { ! ({x;}); // { dg-error "undeclared" } } --- 4,8 ---- void foo() { ! ({x;}); // { dg-error "was not declared" } } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/init/member1.C gcc-3.4.5/gcc/testsuite/g++.dg/init/member1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/init/member1.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/init/member1.C 2005-06-13 17:20:28.000000000 +0000 *************** *** 0 **** --- 1,18 ---- + // Copyright (C) 2005 Free Software Foundation, Inc. + // Contributed by Nathan Sidwell 13 Jun 2005 + + // Origin: Ivan Godard + // Bug 20789: ICE on invalid + + template struct A; + + template struct B {}; + + template struct C + { + static const int i = A::i; // { dg-error "incomplete" } + static const int j = i; // { dg-error "initialized by a non-const" } + B b; // { dg-error "cannot be used as template arg" } + }; + + C c; diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/lookup/ambig4.C gcc-3.4.5/gcc/testsuite/g++.dg/lookup/ambig4.C *** gcc-3.4.4/gcc/testsuite/g++.dg/lookup/ambig4.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/lookup/ambig4.C 2005-09-21 15:08:00.000000000 +0000 *************** *** 0 **** --- 1,14 ---- + // PR c++/13377 + // Origin: Volker Reichelt + // { dg-do compile } + + namespace N + { + int i; // { dg-error "declared" } + } + + int i; // { dg-error "declared" } + + using namespace N; + + void foo() { i; } // { dg-error "in this scope|ambiguous" } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/lookup/ambig5.C gcc-3.4.5/gcc/testsuite/g++.dg/lookup/ambig5.C *** gcc-3.4.4/gcc/testsuite/g++.dg/lookup/ambig5.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/lookup/ambig5.C 2005-09-01 11:32:20.000000000 +0000 *************** *** 0 **** --- 1,13 ---- + // PR c++/13377 + // Origin: Boris Kolpackov + // { dg-do compile } + + namespace N + { + namespace M {} // { dg-error "declared" } + } + + namespace M {} // { dg-error "declared" } + + using namespace N; + using namespace M; // { dg-error "namespace-name|ambiguous" } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/lookup/crash5.C gcc-3.4.5/gcc/testsuite/g++.dg/lookup/crash5.C *** gcc-3.4.4/gcc/testsuite/g++.dg/lookup/crash5.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/lookup/crash5.C 2005-10-11 00:39:26.000000000 +0000 *************** *** 0 **** --- 1,9 ---- + // { dg-do compile } + // + // PR 17618 + + void foo() + { + p; // { dg-error "not declared" } + (void*) p; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/lookup/error1.C gcc-3.4.5/gcc/testsuite/g++.dg/lookup/error1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/lookup/error1.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/lookup/error1.C 2005-09-21 15:08:00.000000000 +0000 *************** *** 0 **** --- 1,9 ---- + // PR c++/17609 + // Origin: + // { dg-do compile } + + namespace N { int i; } + void foo() { i; } // { dg-error "not declared" } + + using namespace N; + void bar() { i; } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/lookup/forscope2.C gcc-3.4.5/gcc/testsuite/g++.dg/lookup/forscope2.C *** gcc-3.4.4/gcc/testsuite/g++.dg/lookup/forscope2.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/lookup/forscope2.C 2005-10-11 00:39:26.000000000 +0000 *************** *** 0 **** --- 1,9 ---- + // { dg-do compile } + + struct S { + void foo() { + for (_ptr; ;) {} // { dg-error "not declared" } + _ptr = 0; + } + }; + diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/lookup/koenig1.C gcc-3.4.5/gcc/testsuite/g++.dg/lookup/koenig1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/lookup/koenig1.C 2003-03-24 18:20:12.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/lookup/koenig1.C 2005-09-21 15:08:00.000000000 +0000 *************** class X; *** 9,13 **** void foo() { X x(1); // { dg-error "incomplete type" "" } ! bar(x); // { dg-error "undeclared" "" } } --- 9,13 ---- void foo() { X x(1); // { dg-error "incomplete type" "" } ! bar(x); // { dg-error "not declared" "" } } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/lookup/used-before-declaration.C gcc-3.4.5/gcc/testsuite/g++.dg/lookup/used-before-declaration.C *** gcc-3.4.4/gcc/testsuite/g++.dg/lookup/used-before-declaration.C 2003-11-10 08:32:16.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/lookup/used-before-declaration.C 2005-09-21 15:08:00.000000000 +0000 *************** *** 1,5 **** // Copyroght (C) 2003 Free Software Foundation // Origin: PR/12832, Jonathan Wakely ! void f() { g(); } // { dg-error "undeclared" "" } ! void g() { } // { dg-error "used" "" } --- 1,5 ---- // Copyroght (C) 2003 Free Software Foundation // Origin: PR/12832, Jonathan Wakely ! void f() { g(); } // { dg-error "not declared" "" } ! void g() { } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/opt/pr22167.C gcc-3.4.5/gcc/testsuite/g++.dg/opt/pr22167.C *** gcc-3.4.4/gcc/testsuite/g++.dg/opt/pr22167.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/opt/pr22167.C 2005-07-21 06:56:24.000000000 +0000 *************** *** 0 **** --- 1,32 ---- + // Derived from PR22167, which failed on some RISC targets. The call to + // foo() has two successors, one normal and one exceptional, and both + // successors use &a[0] and x. Expressions involving &a[0] can be hoisted + // before the call but those involving x cannot. + // { dg-options "-Os" } + // { dg-do run } + + int a[4]; + + struct S { + S() : x (0) {} + ~S() { a[0] = x; } + int x; + }; + + void + foo (int *x) + { + if (*x == 1) + throw 1; + *x = 1; + } + + int + main() + { + S s; + foo (&s.x); + if (a[0] == s.x) + a[0]++; + return a[0]; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/opt/pr23478.C gcc-3.4.5/gcc/testsuite/g++.dg/opt/pr23478.C *** gcc-3.4.4/gcc/testsuite/g++.dg/opt/pr23478.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/opt/pr23478.C 2005-09-01 20:51:09.000000000 +0000 *************** *** 0 **** --- 1,211 ---- + // PR rtl-optimization/23478 + // { dg-do run } + // { dg-options "-O2" } + + extern "C" void abort (); + bool tthrow; + struct C3 { int i; }; + class C14 {}; + struct C7 + { + virtual ~C7 (); + }; + + C7::~C7 () + { + asm volatile ("" : : : "memory"); + } + class C2 : public C7 {}; + + template class C13 + { + bool ma; + X *mb; + public: + explicit C13 (X *p = 0) throw () : ma (p != 0), mb (p) {} + ~C13 (); + }; + + template + C13::~C13 () + { + asm volatile ("" : : "r" (ma), "r" (mb) : "memory"); + } + + struct C1 + { + C1 (const C3 &, const C3 &, const C3 &, const C3 *&); + }; + + C1::C1 (const C3 &, const C3 &, const C3 &, const C3 *&) + { + if (!tthrow) + throw 24; + } + + struct C8 + { + struct C15 {}; + typedef C15 *C9; + virtual void f1 (C2 &, long *, void *, C3 &, void *, bool) = 0; + virtual C13 f3 () const = 0; + virtual ~C8 () {} + }; + + bool + xx14 () + { + bool b = false; + if (tthrow) + throw 6; + asm volatile ("" : : "r" (&b) : "memory"); + return b; + } + + bool + xx2 () + { + bool b = false; + if (tthrow) + throw 6; + asm volatile ("" : : "r" (&b) : "memory"); + return b; + } + + C13 + xx9 () + { + return C13(); + } + + C2 & + xx10 () + { + static C2 c2; + return c2; + } + + C3 & + xx12 () + { + static C3 c3 = { 1 }; + return c3; + } + + const C3 & + xx5 () + { + static const C3 c3 = { 2 }; + return c3; + } + + const C3 *& + xx4 () + { + static const C3 *p; + if (tthrow) + throw 6; + return p; + } + + long ll13; + + long + xx13 () + { + long ret; + asm volatile ("" : "=r" (ret) : "r" (ll13)); + return ret; + } + + void + xx15 (C3 &x, C13 &y) + { + asm volatile ("" : : "r" (&x), "r" (&y) : "memory"); + } + + long + xx16 (const void *x) + { + long ret; + asm volatile ("" : "=r" (ret) : "0" (1), "r" (x) : "memory"); + return ret; + } + + void + xx1 (C13 x) + { + asm volatile ("" : : "r" (&x) : "memory"); + if (tthrow) + throw 6; + } + + void + xx3 (const C7 *x) + { + if (x) + abort (); + } + + void + xx7 () + { + asm volatile ("" : : : "memory"); + } + + struct C5 + { + C13 f2 (C3 &v1, const void *v2, C8 *v6); + C7 *m2[2]; + long m1[2]; + }; + + C13 + C5::f2 (C3 &v1, const void *v2, C8 *v6) + { + C13 v13 = xx9 (); + C2 &v9 = xx10 (); + for (long i = 1; i < 2; i++) + xx3 (m2[i]); + const C3 &ld = xx5 (); + xx7 (); + if (xx2 ()) + throw ""; + xx4 (); + C3 &si = xx12 (); + for (long i = 0; i < xx16 (v2); ++i) + { + C13 sk (new C1 (xx5 (), ld, xx5 (), xx4 ())); + xx15 (si, sk); + } + long v4 = xx13 (); + for (long i = v4 - 1; i >= 0; --i) + m1[i] = i; + bool v8 = xx2 (); + for (long i = 0; i < 2 && !xx14 (); i++) + { + v6[i].f1 (v9, 0, __null, v1, __null, v8); + if (v8) + xx1 (v6[i].f3 ()); + } + return v13; + } + + int + main (void) + { + C5 c5 = { { __null, __null }, { 0, 0 } }; + bool seen = false; + try + { + c5.f2 (xx12 (), __null, __null); + } + catch (int n) + { + if (n != 24) + abort (); + seen = true; + } + if (!seen) + abort (); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/other/do1.C gcc-3.4.5/gcc/testsuite/g++.dg/other/do1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/other/do1.C 2002-12-28 07:48:07.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/other/do1.C 2005-09-21 15:08:00.000000000 +0000 *************** *** 8,13 **** void init () { do { } while (0) ! obj = 0; // { dg-error "expected|undeclared" "" } } --- 8,13 ---- void init () { do { } while (0) ! obj = 0; // { dg-error "expected|not declared" "" } } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/other/semicolon.C gcc-3.4.5/gcc/testsuite/g++.dg/other/semicolon.C *** gcc-3.4.4/gcc/testsuite/g++.dg/other/semicolon.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/other/semicolon.C 2005-09-17 21:57:26.000000000 +0000 *************** *** 0 **** --- 1,9 ---- + // PR c++/18368 + // Origin: Chris Lattner + // { dg-do compile } + + struct A + { + struct B { int i; } + void foo(); // { dg-error "two or more|return type" } + }; // { dg-error "semicolon is missing" "" { target *-*-* } 8 } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/other/warning1.C gcc-3.4.5/gcc/testsuite/g++.dg/other/warning1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/other/warning1.C 2002-10-05 12:28:16.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/other/warning1.C 2005-06-13 17:20:28.000000000 +0000 *************** extern "C" int printf(const char *, ...) *** 7,14 **** struct S { ! static const float inf = 1.0f / 0.0f; // { dg-warning "1.0|initialization" } ! static const float nan = 0.0f / 0.0f; // { dg-warning "0.0|initialization" } }; int main() --- 7,14 ---- struct S { ! static const float inf = 1.0f / 0.0f; // { dg-warning "1.0|initializ" } ! static const float nan = 0.0f / 0.0f; // { dg-warning "0.0|initializ" } }; int main() diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/overload/koenig1.C gcc-3.4.5/gcc/testsuite/g++.dg/overload/koenig1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/overload/koenig1.C 2003-03-13 20:43:47.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/overload/koenig1.C 2005-09-21 15:08:00.000000000 +0000 *************** void g () *** 13,18 **** { B *bp; N::A *ap; ! f (bp); // { dg-error "undeclared" } f (ap); } --- 13,18 ---- { B *bp; N::A *ap; ! f (bp); // { dg-error "not declared" } f (ap); } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/crash11.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/crash11.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/crash11.C 2003-08-08 19:54:14.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/crash11.C 2005-07-28 10:22:22.000000000 +0000 *************** struct C *** 30,34 **** }; int main() { ! typedef B::Template::Type Type; // { dg-error "init-declarator|;" } } --- 30,34 ---- }; int main() { ! typedef B::Template::Type Type; // { dg-error "initializer" } } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/crash13.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/crash13.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/crash13.C 2003-10-20 12:42:37.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/crash13.C 2005-09-21 15:08:00.000000000 +0000 *************** struct A *** 13,22 **** template void func(A::B* ) // { dg-error "variable|template|expression" } ! { // { dg-error ";" } } int main() { ! func(0); // { dg-error "undeclared|expression|;" } } --- 13,22 ---- template void func(A::B* ) // { dg-error "variable|template|expression" } ! { } int main() { ! func(0); // { dg-error "not declared|expression|;" } } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/crash30.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/crash30.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/crash30.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/crash30.C 2005-11-15 19:14:21.000000000 +0000 *************** *** 0 **** --- 1,18 ---- + // { dg-do compile } + namespace N { template struct A { operator int() const; }; } + namespace M { template struct A {}; } + namespace P { typedef int I; } + + template void foo() + { + +typename N::A<0>(); // { dg-bogus "expected" } + } + + template void bar() + { + +typename M::A<0>; // { dg-error "expected" } + } + + template void baz() { + typename P::I i; // { dg-bogus "expected" } + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/defarg9.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/defarg9.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/defarg9.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/defarg9.C 2005-06-09 07:46:23.000000000 +0000 *************** *** 0 **** --- 1,20 ---- + // Copyright (C) 2005 Free Software Foundation, Inc. + // Contributed by Nathan Sidwell 6 Jun 2005 + + // PR 21903:Reject legal with default arg confusion + // Origin: Wolfgang Bangerth + + + struct O { + template struct B { + void set (T, bool=true); + }; + + struct D : public B {}; + }; + + void x () + { + O::D d; + d.set(1); + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/error18.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/error18.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/error18.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/error18.C 2005-07-28 10:22:22.000000000 +0000 *************** *** 0 **** --- 1,7 ---- + // PR c++/16002 + + void f() + { + double Q *= 5.0; // { dg-error "initializer" } + } + diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/error21.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/error21.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/error21.C 2004-10-10 21:55:02.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/error21.C 2005-09-21 15:08:00.000000000 +0000 *************** void foo() *** 7,12 **** { // Check that we do not complain about an unused // compiler-generated variable. ! A& = a; // { dg-error "token|declarator|undeclared" } } --- 7,12 ---- { // Check that we do not complain about an unused // compiler-generated variable. ! A& = 1; // { dg-error "token|declarator" } } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/explicit1.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/explicit1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/explicit1.C 2003-12-29 10:16:31.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/explicit1.C 2005-10-28 18:47:28.000000000 +0000 *************** *** 7,11 **** struct foo { template void bar (T &t) {} ! template<> void bar(double &t) {} // { dg-error "explicit|non-namespace|member" } }; --- 7,11 ---- struct foo { template void bar (T &t) {} ! template<> void bar(double &t) {} // { dg-error "non-namespace|template|function" } }; diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/friend2.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/friend2.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/friend2.C 2003-01-29 14:25:06.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/friend2.C 2005-09-06 15:25:11.000000000 +0000 *************** namespace NS { *** 10,16 **** } template class X { ! friend class NS::C; // { dg-error "expected|friend" } }; X c; --- 10,16 ---- } template class X { ! friend class NS::C; // { dg-error "template|friend" } }; X c; diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/local-class1.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/local-class1.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/local-class1.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/local-class1.C 2005-06-09 07:46:23.000000000 +0000 *************** *** 0 **** --- 1,14 ---- + // Copyright (C) 2005 Free Software Foundation, Inc. + // Contributed by Nathan Sidwell 14 Feb 2005 + + // Origin: Jorn Wolfgang Rennecke + // Bug 19608: ICE on invalid + + + void f () + { + class c + { + friend void g () { } // { dg-error "local class definition" "" } + }; + } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/typename10.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/typename10.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/typename10.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/typename10.C 2005-11-15 19:14:21.000000000 +0000 *************** *** 0 **** --- 1,8 ---- + // PR c++/19253 + + namespace N { struct X; } + + template struct A + { + A a; // { dg-error "invalid|declaration" } + }; diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/typename8.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/typename8.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/typename8.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/typename8.C 2005-11-16 13:03:13.000000000 +0000 *************** *** 0 **** --- 1,11 ---- + // Copyright (C) 2005 Free Software Foundation, Inc. + // Contributed by Nathan Sidwell 12 Oct 2005 + + // PR 23797:ICE + // Origin: Volker Reichelt + + // { dg-options "-fpermissive -w" } + + struct A { typedef int X; }; + + int i = typename A::X(); diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/parse/typename9.C gcc-3.4.5/gcc/testsuite/g++.dg/parse/typename9.C *** gcc-3.4.4/gcc/testsuite/g++.dg/parse/typename9.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/parse/typename9.C 2005-11-16 13:03:13.000000000 +0000 *************** *** 0 **** --- 1,3 ---- + struct A { typedef int X; }; + + int i = typename A::X(); // { dg-error "typename" } diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/template/array11.C gcc-3.4.5/gcc/testsuite/g++.dg/template/array11.C *** gcc-3.4.4/gcc/testsuite/g++.dg/template/array11.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/template/array11.C 2005-07-25 21:13:18.000000000 +0000 *************** *** 0 **** --- 1,17 ---- + // { dg-do compile } + // Origin: Giovanni Bajo + // PR c++/19208: Fold dependent array domains + + template struct if_t { typedef int type; }; + template struct hhhh { static const bool value = true; }; + template struct gggg { static const bool value = hhhh::value; }; + template struct ffff { static const bool value = gggg::value; }; + template + struct bound_member_action + { + typedef char f[ffff::value ? 1 : 2]; + template + bound_member_action(CT i, typename if_t::type g) {} + }; + + bound_member_action a(0, 1); diff -Nrcpad gcc-3.4.4/gcc/testsuite/g++.dg/template/crash25.C gcc-3.4.5/gcc/testsuite/g++.dg/template/crash25.C *** gcc-3.4.4/gcc/testsuite/g++.dg/template/crash25.C 1970-01-01 00:00:00.000000000 +0000 --- gcc-3.4.5/gcc/testsuite/g++.dg/template/crash25.C 2005-07-28 10:22:22.000000000 +0000 *************** *** 0 **** --- 1,3 ---- + // PR c++/18124 + + template