diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /gcc/testsuite/g++.dg/diagnostic | |
download | cbb-gcc-4.6.4-upstream.tar.bz2 cbb-gcc-4.6.4-upstream.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
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.
Diffstat (limited to 'gcc/testsuite/g++.dg/diagnostic')
-rw-r--r-- | gcc/testsuite/g++.dg/diagnostic/aka1.C | 15 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/diagnostic/bitfld1.C | 13 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/diagnostic/bitfld2.C | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/diagnostic/method1.C | 20 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/diagnostic/parm1.C | 11 |
5 files changed, 68 insertions, 0 deletions
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<int> 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 <class T> +void +bar () +{ + A::foo ().anything; // { dg-error "request for member" } +} + +void +baz () +{ + bar <int> (); +} 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 <typename T> +void f(T t, int(*)[sizeof(t)]) +{ + struct A { void g() { + foo; // { dg-error "foo" } + } }; +} |