From 554fd8c5195424bdbcabf5de30fdc183aba391bd Mon Sep 17 00:00:00 2001 From: upstream source tree Date: Sun, 15 Mar 2015 20:14:05 -0400 Subject: obtained gcc-4.6.4.tar.bz2 from upstream website; verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository. --- gcc/testsuite/g++.dg/diagnostic/aka1.C | 15 +++++++++++++++ gcc/testsuite/g++.dg/diagnostic/bitfld1.C | 13 +++++++++++++ gcc/testsuite/g++.dg/diagnostic/bitfld2.C | 9 +++++++++ gcc/testsuite/g++.dg/diagnostic/method1.C | 20 ++++++++++++++++++++ gcc/testsuite/g++.dg/diagnostic/parm1.C | 11 +++++++++++ 5 files changed, 68 insertions(+) create mode 100644 gcc/testsuite/g++.dg/diagnostic/aka1.C create mode 100644 gcc/testsuite/g++.dg/diagnostic/bitfld1.C create mode 100644 gcc/testsuite/g++.dg/diagnostic/bitfld2.C create mode 100644 gcc/testsuite/g++.dg/diagnostic/method1.C create mode 100644 gcc/testsuite/g++.dg/diagnostic/parm1.C (limited to 'gcc/testsuite/g++.dg/diagnostic') diff --git a/gcc/testsuite/g++.dg/diagnostic/aka1.C b/gcc/testsuite/g++.dg/diagnostic/aka1.C new file mode 100644 index 000000000..37f8df939 --- /dev/null +++ b/gcc/testsuite/g++.dg/diagnostic/aka1.C @@ -0,0 +1,15 @@ +// Basic test for typedef stripping in diagnostics. + +struct A { + void f(); +}; + +void A::f() { + // We don't want an aka for the injected-class-name. + A a = 0; // { dg-error "type .A. requested" } +} + +typedef A B; + +// We do want an aka for a real typedef. +B b = 0; // { dg-error "B .aka A." } diff --git a/gcc/testsuite/g++.dg/diagnostic/bitfld1.C b/gcc/testsuite/g++.dg/diagnostic/bitfld1.C new file mode 100644 index 000000000..f75df38a4 --- /dev/null +++ b/gcc/testsuite/g++.dg/diagnostic/bitfld1.C @@ -0,0 +1,13 @@ +// PR c++/46001 +// { dg-do compile } + +struct S +{ + char *p; + unsigned char f : 1; +}; + +struct S s; +void *a = s.p | s.f; // { dg-error "unsigned char:1" } + +// { dg-bogus "__java_boolean" "" { target *-*-* } 11 } diff --git a/gcc/testsuite/g++.dg/diagnostic/bitfld2.C b/gcc/testsuite/g++.dg/diagnostic/bitfld2.C new file mode 100644 index 000000000..10b7d9cea --- /dev/null +++ b/gcc/testsuite/g++.dg/diagnostic/bitfld2.C @@ -0,0 +1,9 @@ +// PR c++/33840 +// { dg-do compile } + +template struct A +{ + struct {} : 2; // { dg-error "expected ';' after struct" } +}; +// { dg-error "ISO C.. forbids declaration" "" { target *-*-* } 6 } +// { dg-error "ISO C.. prohibits anonymous" "" { target *-*-* } 6 } diff --git a/gcc/testsuite/g++.dg/diagnostic/method1.C b/gcc/testsuite/g++.dg/diagnostic/method1.C new file mode 100644 index 000000000..8e1225d07 --- /dev/null +++ b/gcc/testsuite/g++.dg/diagnostic/method1.C @@ -0,0 +1,20 @@ +// PR c++/44627 +// { dg-do compile } + +struct A +{ + A *foo (); +}; + +template +void +bar () +{ + A::foo ().anything; // { dg-error "request for member" } +} + +void +baz () +{ + bar (); +} diff --git a/gcc/testsuite/g++.dg/diagnostic/parm1.C b/gcc/testsuite/g++.dg/diagnostic/parm1.C new file mode 100644 index 000000000..2e553e2d4 --- /dev/null +++ b/gcc/testsuite/g++.dg/diagnostic/parm1.C @@ -0,0 +1,11 @@ +// PR c++/44366 +// While printing the operand of sizeof We were trying to print f as the +// scope of t, causing infinite recursion. + +template +void f(T t, int(*)[sizeof(t)]) +{ + struct A { void g() { + foo; // { dg-error "foo" } + } }; +} -- cgit v1.2.3