Commit 7a95dfa7 by Tom de Vries Committed by Tom de Vries

Remove superfluous "" in dg-(error|warning|message|bogus)

find $(find -type d -name testsuite) -type f \
     | xargs sed -ri 's#(dg-(error|warning|message|bogus).*)" "" \}#\1" }#'

2017-04-28  Tom de Vries  <tom@codesourcery.com>

	* g++.dg/abi/bitfield3.C: Remove superfluous "" in
	dg-(error|warning|message|bogus).
	* g++.dg/conversion/dr195-1.C: Same.
	* g++.dg/conversion/dr195.C: Same.
	* g++.dg/cpp0x/constexpr-reinterpret1.C: Same.
	* g++.dg/cpp0x/gen-attrs-14.C: Same.
	* g++.dg/cpp0x/inline-ns7.C: Same.
	* g++.dg/cpp0x/variadic105.C: Same.
	* g++.dg/cpp0x/variadic65.C: Same.
	* g++.dg/expr/call2.C: Same.
	* g++.dg/expr/member-of-incomplete-type-1.C: Same.
	* g++.dg/expr/pmf-1.C: Same.
	* g++.dg/ext/altivec-types-1.C: Same.
	* g++.dg/ext/altivec-types-2.C: Same.
	* g++.dg/ext/altivec-types-3.C: Same.
	* g++.dg/ext/attrib14.C: Same.
	* g++.dg/ext/complit1.C: Same.
	* g++.dg/ext/forscope2.C: Same.
	* g++.dg/ext/gnu-inline-global-reject.C: Same.
	* g++.dg/ext/label13.C: Same.
	* g++.dg/ext/member-attr.C: Same.
	* g++.dg/ext/visibility/anon7.C: Same.
	* g++.dg/ext/visibility/visibility-7.C: Same.
	* g++.dg/ext/vla2.C: Same.
	* g++.dg/inherit/access2.C: Same.
	* g++.dg/inherit/covariant12.C: Same.
	* g++.dg/inherit/covariant14.C: Same.
	* g++.dg/inherit/namespace-as-base.C: Same.
	* g++.dg/inherit/template-as-base.C: Same.
	* g++.dg/lookup/ambig1.C: Same.
	* g++.dg/lookup/ambig2.C: Same.
	* g++.dg/lookup/ambig3.C: Same.
	* g++.dg/lookup/class-member-1.C: Same.
	* g++.dg/lookup/conv-1.C: Same.
	* g++.dg/lookup/decl1.C: Same.
	* g++.dg/lookup/koenig1.C: Same.
	* g++.dg/lookup/scoped1.C: Same.
	* g++.dg/lookup/scoped2.C: Same.
	* g++.dg/lookup/two-stage4.C: Same.
	* g++.dg/lookup/used-before-declaration.C: Same.
	* g++.dg/lookup/using.C: Same.
	* g++.dg/lookup/using17.C: Same.
	* g++.dg/lookup/using2.C: Same.
	* g++.dg/other/abstract2.C: Same.
	* g++.dg/other/classkey1.C: Same.
	* g++.dg/other/component1.C: Same.
	* g++.dg/other/const1.C: Same.
	* g++.dg/other/const2.C: Same.
	* g++.dg/other/conversion1.C: Same.
	* g++.dg/other/do1.C: Same.
	* g++.dg/other/error1.C: Same.
	* g++.dg/other/error10.C: Same.
	* g++.dg/other/error3.C: Same.
	* g++.dg/other/error4.C: Same.
	* g++.dg/other/error5.C: Same.
	* g++.dg/other/error8.C: Same.
	* g++.dg/other/error9.C: Same.
	* g++.dg/other/field1.C: Same.
	* g++.dg/other/init1.C: Same.
	* g++.dg/other/ptrmem2.C: Same.
	* g++.dg/other/return1.C: Same.
	* g++.dg/overload/builtin3.C: Same.
	* g++.dg/overload/error1.C: Same.
	* g++.dg/overload/error2.C: Same.
	* g++.dg/overload/koenig2.C: Same.
	* g++.dg/overload/pmf1.C: Same.
	* g++.dg/parse/args1.C: Same.
	* g++.dg/parse/attr3.C: Same.
	* g++.dg/parse/constant4.C: Same.
	* g++.dg/parse/crash10.C: Same.
	* g++.dg/parse/crash18.C: Same.
	* g++.dg/parse/crash19.C: Same.
	* g++.dg/parse/crash20.C: Same.
	* g++.dg/parse/crash21.C: Same.
	* g++.dg/parse/crash22.C: Same.
	* g++.dg/parse/crash32.C: Same.
	* g++.dg/parse/decl-specifier-1.C: Same.
	* g++.dg/parse/error58.C: Same.
	* g++.dg/parse/local-class1.C: Same.
	* g++.dg/parse/non-dependent2.C: Same.
	* g++.dg/parse/parameter-declaration-1.C: Same.
	* g++.dg/parse/ptrmem2.C: Same.
	* g++.dg/parse/ptrmem3.C: Same.
	* g++.dg/parse/saved1.C: Same.
	* g++.dg/tc1/dr101.C: Same.
	* g++.dg/tc1/dr142.C: Same.
	* g++.dg/tc1/dr176.C: Same.
	* g++.dg/template/conv4.C: Same.
	* g++.dg/template/crash56.C: Same.
	* g++.dg/template/dependent-expr2.C: Same.
	* g++.dg/template/error1.C: Same.
	* g++.dg/template/error2.C: Same.
	* g++.dg/template/explicit6.C: Same.
	* g++.dg/template/init-list.C: Same.
	* g++.dg/template/local1.C: Same.
	* g++.dg/template/lookup2.C: Same.
	* g++.dg/template/meminit2.C: Same.
	* g++.dg/template/nontype25.C: Same.
	* g++.dg/template/ptrmem2.C: Same.
	* g++.dg/template/qualttp19.C: Same.
	* g++.dg/template/qualttp20.C: Same.
	* g++.dg/template/ttp3.C: Same.
	* g++.dg/template/unify4.C: Same.
	* g++.dg/template/unify6.C: Same.
	* g++.dg/template/unify7.C: Same.
	* g++.dg/template/warn1.C: Same.
	* g++.dg/tree-ssa/dom-invalid.C: Same.
	* g++.dg/ubsan/shift-1.C: Same.
	* g++.dg/warn/Wunused-2.C: Same.
	* g++.dg/warn/Wunused-4.C: Same.
	* g++.dg/warn/Wunused-6.C: Same.
	* g++.dg/warn/deprecated-6.C: Same.
	* g++.dg/warn/deprecated.C: Same.
	* g++.dg/warn/effc1.C: Same.
	* g++.dg/warn/effc3.C: Same.
	* g++.dg/warn/incomplete1.C: Same.
	* g++.dg/warn/inline1.C: Same.
	* g++.dg/warn/noeffect2.C: Same.
	* g++.dg/warn/noeffect4.C: Same.
	* g++.dg/warn/oldcast1.C: Same.
	* g++.dg/warn/sentinel.C: Same.
	* g++.dg/warn/unit-1.C: Same.
	* g++.old-deja/g++.pt/inherit2.C: Same.
	* g++.old-deja/g++.pt/overload8.C: Same.
	* gcc.dg/20000926-1.c: Same.
	* gcc.dg/20040223-1.c: Same.
	* gcc.dg/Warray-bounds-7.c: Same.
	* gcc.dg/alias-1.c: Same.
	* gcc.dg/alias-12.c: Same.
	* gcc.dg/alias-13.c: Same.
	* gcc.dg/alias-2.c: Same.
	* gcc.dg/array-13.c: Same.
	* gcc.dg/array-4.c: Same.
	* gcc.dg/attr-ifunc-2.c: Same.
	* gcc.dg/attr-invalid.c: Same.
	* gcc.dg/attr-noinline.c: Same.
	* gcc.dg/bitfld-2.c: Same.
	* gcc.dg/c90-const-expr-7.c: Same.
	* gcc.dg/c99-const-expr-7.c: Same.
	* gcc.dg/cpp/20000625-1.c: Same.
	* gcc.dg/cpp/charconst-4.c: Same.
	* gcc.dg/cpp/include2.c: Same.
	* gcc.dg/cpp/include2a.c: Same.
	* gcc.dg/decl-4.c: Same.
	* gcc.dg/deprecated-4.c: Same.
	* gcc.dg/deprecated.c: Same.
	* gcc.dg/dfp/altivec-types.c: Same.
	* gcc.dg/float-range-1.c: Same.
	* gcc.dg/pack-test-3.c: Same.
	* gcc.dg/pr11492.c: Same.
	* gcc.dg/pr15360-1.c: Same.
	* gcc.dg/pr37908.c: Same.
	* gcc.dg/pr53265.c: Same.
	* gcc.dg/pr57287-2.c: Same.
	* gcc.dg/pr57287.c: Same.
	* gcc.dg/redecl-1.c: Same.
	* gcc.dg/sync-3.c: Same.
	* gcc.dg/two-types-1.c: Same.
	* gcc.dg/two-types-2.c: Same.
	* gcc.dg/two-types-4.c: Same.
	* gcc.dg/two-types-5.c: Same.
	* gcc.dg/two-types-6.c: Same.
	* gcc.dg/two-types-7.c: Same.
	* gcc.dg/two-types-8.c: Same.
	* gcc.dg/two-types-9.c: Same.
	* gcc.dg/uninit-I.c: Same.
	* gcc.dg/uninit-pr19430.c: Same.
	* gcc.dg/visibility-7.c: Same.
	* gcc.dg/winline-10.c: Same.
	* gcc.dg/winline-2.c: Same.
	* gcc.dg/winline-3.c: Same.
	* gcc.dg/winline-9.c: Same.
	* gcc.target/i386/attr-returns_twice-1.c: Same.
	* gcc.target/i386/chkp-const-check-2.c: Same.
	* gcc.target/i386/chkp-label-address.c: Same.
	* gcc.target/i386/chkp-remove-bndint-2.c: Same.
	* gcc.target/i386/pr39162.c: Same.
	* gcc.target/i386/sse-5.c: Same.
	* gcc.target/powerpc/altivec-types-1.c: Same.
	* gcc.target/powerpc/altivec-types-2.c: Same.
	* gcc.target/powerpc/altivec-types-3.c: Same.
	* gcc.target/powerpc/float128-mix.c: Same.
	* gcc.target/powerpc/no-r11-3.c: Same.
	* gcc.target/spu/Wmain.c: Same.
	* gcc.target/spu/ea/errors2.c: Same.
	* gfortran.dg/assignment_1.f90: Same.
	* gfortran.dg/common_3.f90: Same.
	* gfortran.dg/der_io_1.f90: Same.
	* gfortran.dg/g77/20030326-1.f: Same.
	* gfortran.dg/g77/9263.f: Same.
	* gfortran.dg/g77/960317-1.f: Same.
	* gfortran.dg/g77/970625-2.f: Same.
	* gfortran.dg/g77/980615-0.f: Same.
	* gfortran.dg/g77/check0.f: Same.
	* gfortran.dg/g77/dnrm2.f: Same.
	* gfortran.dg/g77/pr9258.f: Same.
	* gfortran.dg/ichar_1.f90: Same.
	* gfortran.dg/interface_1.f90: Same.
	* gfortran.dg/namelist_1.f90: Same.
	* gfortran.dg/namelist_2.f90: Same.
	* gfortran.dg/namelist_3.f90: Same.
	* gfortran.dg/namelist_print_2.f: Same.
	* gfortran.dg/oldstyle_1.f90: Same.
	* gfortran.dg/runtime_warning_1.f90: Same.
	* gfortran.dg/underflow.f90: Same.
	* gnat.dg/specs/integer_value.ads: Same.
	* obj-c++.dg/fsf-package-0.m: Same.
	* objc.dg/two-types-1.m: Same.

From-SVN: r247389
parent b6dc26ba
2017-04-28 Tom de Vries <tom@codesourcery.com>
* g++.dg/abi/bitfield3.C: Remove superfluous "" in
dg-(error|warning|message|bogus).
* g++.dg/conversion/dr195-1.C: Same.
* g++.dg/conversion/dr195.C: Same.
* g++.dg/cpp0x/constexpr-reinterpret1.C: Same.
* g++.dg/cpp0x/gen-attrs-14.C: Same.
* g++.dg/cpp0x/inline-ns7.C: Same.
* g++.dg/cpp0x/variadic105.C: Same.
* g++.dg/cpp0x/variadic65.C: Same.
* g++.dg/expr/call2.C: Same.
* g++.dg/expr/member-of-incomplete-type-1.C: Same.
* g++.dg/expr/pmf-1.C: Same.
* g++.dg/ext/altivec-types-1.C: Same.
* g++.dg/ext/altivec-types-2.C: Same.
* g++.dg/ext/altivec-types-3.C: Same.
* g++.dg/ext/attrib14.C: Same.
* g++.dg/ext/complit1.C: Same.
* g++.dg/ext/forscope2.C: Same.
* g++.dg/ext/gnu-inline-global-reject.C: Same.
* g++.dg/ext/label13.C: Same.
* g++.dg/ext/member-attr.C: Same.
* g++.dg/ext/visibility/anon7.C: Same.
* g++.dg/ext/visibility/visibility-7.C: Same.
* g++.dg/ext/vla2.C: Same.
* g++.dg/inherit/access2.C: Same.
* g++.dg/inherit/covariant12.C: Same.
* g++.dg/inherit/covariant14.C: Same.
* g++.dg/inherit/namespace-as-base.C: Same.
* g++.dg/inherit/template-as-base.C: Same.
* g++.dg/lookup/ambig1.C: Same.
* g++.dg/lookup/ambig2.C: Same.
* g++.dg/lookup/ambig3.C: Same.
* g++.dg/lookup/class-member-1.C: Same.
* g++.dg/lookup/conv-1.C: Same.
* g++.dg/lookup/decl1.C: Same.
* g++.dg/lookup/koenig1.C: Same.
* g++.dg/lookup/scoped1.C: Same.
* g++.dg/lookup/scoped2.C: Same.
* g++.dg/lookup/two-stage4.C: Same.
* g++.dg/lookup/used-before-declaration.C: Same.
* g++.dg/lookup/using.C: Same.
* g++.dg/lookup/using17.C: Same.
* g++.dg/lookup/using2.C: Same.
* g++.dg/other/abstract2.C: Same.
* g++.dg/other/classkey1.C: Same.
* g++.dg/other/component1.C: Same.
* g++.dg/other/const1.C: Same.
* g++.dg/other/const2.C: Same.
* g++.dg/other/conversion1.C: Same.
* g++.dg/other/do1.C: Same.
* g++.dg/other/error1.C: Same.
* g++.dg/other/error10.C: Same.
* g++.dg/other/error3.C: Same.
* g++.dg/other/error4.C: Same.
* g++.dg/other/error5.C: Same.
* g++.dg/other/error8.C: Same.
* g++.dg/other/error9.C: Same.
* g++.dg/other/field1.C: Same.
* g++.dg/other/init1.C: Same.
* g++.dg/other/ptrmem2.C: Same.
* g++.dg/other/return1.C: Same.
* g++.dg/overload/builtin3.C: Same.
* g++.dg/overload/error1.C: Same.
* g++.dg/overload/error2.C: Same.
* g++.dg/overload/koenig2.C: Same.
* g++.dg/overload/pmf1.C: Same.
* g++.dg/parse/args1.C: Same.
* g++.dg/parse/attr3.C: Same.
* g++.dg/parse/constant4.C: Same.
* g++.dg/parse/crash10.C: Same.
* g++.dg/parse/crash18.C: Same.
* g++.dg/parse/crash19.C: Same.
* g++.dg/parse/crash20.C: Same.
* g++.dg/parse/crash21.C: Same.
* g++.dg/parse/crash22.C: Same.
* g++.dg/parse/crash32.C: Same.
* g++.dg/parse/decl-specifier-1.C: Same.
* g++.dg/parse/error58.C: Same.
* g++.dg/parse/local-class1.C: Same.
* g++.dg/parse/non-dependent2.C: Same.
* g++.dg/parse/parameter-declaration-1.C: Same.
* g++.dg/parse/ptrmem2.C: Same.
* g++.dg/parse/ptrmem3.C: Same.
* g++.dg/parse/saved1.C: Same.
* g++.dg/tc1/dr101.C: Same.
* g++.dg/tc1/dr142.C: Same.
* g++.dg/tc1/dr176.C: Same.
* g++.dg/template/conv4.C: Same.
* g++.dg/template/crash56.C: Same.
* g++.dg/template/dependent-expr2.C: Same.
* g++.dg/template/error1.C: Same.
* g++.dg/template/error2.C: Same.
* g++.dg/template/explicit6.C: Same.
* g++.dg/template/init-list.C: Same.
* g++.dg/template/local1.C: Same.
* g++.dg/template/lookup2.C: Same.
* g++.dg/template/meminit2.C: Same.
* g++.dg/template/nontype25.C: Same.
* g++.dg/template/ptrmem2.C: Same.
* g++.dg/template/qualttp19.C: Same.
* g++.dg/template/qualttp20.C: Same.
* g++.dg/template/ttp3.C: Same.
* g++.dg/template/unify4.C: Same.
* g++.dg/template/unify6.C: Same.
* g++.dg/template/unify7.C: Same.
* g++.dg/template/warn1.C: Same.
* g++.dg/tree-ssa/dom-invalid.C: Same.
* g++.dg/ubsan/shift-1.C: Same.
* g++.dg/warn/Wunused-2.C: Same.
* g++.dg/warn/Wunused-4.C: Same.
* g++.dg/warn/Wunused-6.C: Same.
* g++.dg/warn/deprecated-6.C: Same.
* g++.dg/warn/deprecated.C: Same.
* g++.dg/warn/effc1.C: Same.
* g++.dg/warn/effc3.C: Same.
* g++.dg/warn/incomplete1.C: Same.
* g++.dg/warn/inline1.C: Same.
* g++.dg/warn/noeffect2.C: Same.
* g++.dg/warn/noeffect4.C: Same.
* g++.dg/warn/oldcast1.C: Same.
* g++.dg/warn/sentinel.C: Same.
* g++.dg/warn/unit-1.C: Same.
* g++.old-deja/g++.pt/inherit2.C: Same.
* g++.old-deja/g++.pt/overload8.C: Same.
* gcc.dg/20000926-1.c: Same.
* gcc.dg/20040223-1.c: Same.
* gcc.dg/Warray-bounds-7.c: Same.
* gcc.dg/alias-1.c: Same.
* gcc.dg/alias-12.c: Same.
* gcc.dg/alias-13.c: Same.
* gcc.dg/alias-2.c: Same.
* gcc.dg/array-13.c: Same.
* gcc.dg/array-4.c: Same.
* gcc.dg/attr-ifunc-2.c: Same.
* gcc.dg/attr-invalid.c: Same.
* gcc.dg/attr-noinline.c: Same.
* gcc.dg/bitfld-2.c: Same.
* gcc.dg/c90-const-expr-7.c: Same.
* gcc.dg/c99-const-expr-7.c: Same.
* gcc.dg/cpp/20000625-1.c: Same.
* gcc.dg/cpp/charconst-4.c: Same.
* gcc.dg/cpp/include2.c: Same.
* gcc.dg/cpp/include2a.c: Same.
* gcc.dg/decl-4.c: Same.
* gcc.dg/deprecated-4.c: Same.
* gcc.dg/deprecated.c: Same.
* gcc.dg/dfp/altivec-types.c: Same.
* gcc.dg/float-range-1.c: Same.
* gcc.dg/pack-test-3.c: Same.
* gcc.dg/pr11492.c: Same.
* gcc.dg/pr15360-1.c: Same.
* gcc.dg/pr37908.c: Same.
* gcc.dg/pr53265.c: Same.
* gcc.dg/pr57287-2.c: Same.
* gcc.dg/pr57287.c: Same.
* gcc.dg/redecl-1.c: Same.
* gcc.dg/sync-3.c: Same.
* gcc.dg/two-types-1.c: Same.
* gcc.dg/two-types-2.c: Same.
* gcc.dg/two-types-4.c: Same.
* gcc.dg/two-types-5.c: Same.
* gcc.dg/two-types-6.c: Same.
* gcc.dg/two-types-7.c: Same.
* gcc.dg/two-types-8.c: Same.
* gcc.dg/two-types-9.c: Same.
* gcc.dg/uninit-I.c: Same.
* gcc.dg/uninit-pr19430.c: Same.
* gcc.dg/visibility-7.c: Same.
* gcc.dg/winline-10.c: Same.
* gcc.dg/winline-2.c: Same.
* gcc.dg/winline-3.c: Same.
* gcc.dg/winline-9.c: Same.
* gcc.target/i386/attr-returns_twice-1.c: Same.
* gcc.target/i386/chkp-const-check-2.c: Same.
* gcc.target/i386/chkp-label-address.c: Same.
* gcc.target/i386/chkp-remove-bndint-2.c: Same.
* gcc.target/i386/pr39162.c: Same.
* gcc.target/i386/sse-5.c: Same.
* gcc.target/powerpc/altivec-types-1.c: Same.
* gcc.target/powerpc/altivec-types-2.c: Same.
* gcc.target/powerpc/altivec-types-3.c: Same.
* gcc.target/powerpc/float128-mix.c: Same.
* gcc.target/powerpc/no-r11-3.c: Same.
* gcc.target/spu/Wmain.c: Same.
* gcc.target/spu/ea/errors2.c: Same.
* gfortran.dg/assignment_1.f90: Same.
* gfortran.dg/common_3.f90: Same.
* gfortran.dg/der_io_1.f90: Same.
* gfortran.dg/g77/20030326-1.f: Same.
* gfortran.dg/g77/9263.f: Same.
* gfortran.dg/g77/960317-1.f: Same.
* gfortran.dg/g77/970625-2.f: Same.
* gfortran.dg/g77/980615-0.f: Same.
* gfortran.dg/g77/check0.f: Same.
* gfortran.dg/g77/dnrm2.f: Same.
* gfortran.dg/g77/pr9258.f: Same.
* gfortran.dg/ichar_1.f90: Same.
* gfortran.dg/interface_1.f90: Same.
* gfortran.dg/namelist_1.f90: Same.
* gfortran.dg/namelist_2.f90: Same.
* gfortran.dg/namelist_3.f90: Same.
* gfortran.dg/namelist_print_2.f: Same.
* gfortran.dg/oldstyle_1.f90: Same.
* gfortran.dg/runtime_warning_1.f90: Same.
* gfortran.dg/underflow.f90: Same.
* gnat.dg/specs/integer_value.ads: Same.
* obj-c++.dg/fsf-package-0.m: Same.
* objc.dg/two-types-1.m: Same.
2017-04-28 Martin Liska <mliska@suse.cz> 2017-04-28 Martin Liska <mliska@suse.cz>
PR gcov-profile/79891 PR gcov-profile/79891
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
struct A struct A
{ {
char a; char a;
int b : 224; // { dg-warning "exceeds its type" "" } int b : 224; // { dg-warning "exceeds its type" }
char c; char c;
} a, a4[4]; } a, a4[4];
...@@ -39,7 +39,7 @@ struct D ...@@ -39,7 +39,7 @@ struct D
struct E struct E
{ {
char m; char m;
long long n : 160; // { dg-warning "exceeds its type" "" } long long n : 160; // { dg-warning "exceeds its type" }
char o; char o;
} e, e4[4]; } e, e4[4];
......
...@@ -29,6 +29,6 @@ void foo () ...@@ -29,6 +29,6 @@ void foo ()
po = reinterpret_cast <PO>(pf); po = reinterpret_cast <PO>(pf);
/* These will never be ok, as they are implicit. */ /* These will never be ok, as they are implicit. */
pv = pf; // { dg-error "invalid conversion" "" } pv = pf; // { dg-error "invalid conversion" }
pf = pv; // { dg-error "invalid conversion" "" } pf = pv; // { dg-error "invalid conversion" }
} }
...@@ -27,6 +27,6 @@ void foo () ...@@ -27,6 +27,6 @@ void foo ()
po = reinterpret_cast <PO>(pf); po = reinterpret_cast <PO>(pf);
/* These will never be ok, as they are implicit. */ /* These will never be ok, as they are implicit. */
pv = pf; // { dg-error "invalid conversion" "" } pv = pf; // { dg-error "invalid conversion" }
pf = pv; // { dg-error "invalid conversion" "" } pf = pv; // { dg-error "invalid conversion" }
} }
...@@ -16,7 +16,7 @@ public: ...@@ -16,7 +16,7 @@ public:
constexpr static Inner & getInner() constexpr static Inner & getInner()
/* I am surprised this is considered a constexpr */ /* I am surprised this is considered a constexpr */
{ return *((Inner *)4); } // { dg-error "reinterpret_cast" "" } { return *((Inner *)4); } // { dg-error "reinterpret_cast" }
}; };
B B::instance; B B::instance;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// The bogus attribute is ignored, but was in TYPE_ATTRIBUTES during // The bogus attribute is ignored, but was in TYPE_ATTRIBUTES during
// parsing of the class, causing some variants to have it and some not. // parsing of the class, causing some variants to have it and some not.
struct [[gnu::bogus]] A // { dg-warning "ignored" "" } struct [[gnu::bogus]] A // { dg-warning "ignored" }
{ {
virtual ~A(); virtual ~A();
void foo(const A&); void foo(const A&);
......
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
namespace foo { namespace foo {
inline namespace foo_impl { inline namespace foo_impl {
class T; // { dg-message "T" "" } class T; // { dg-message "T" }
} }
} }
namespace bar { namespace bar {
inline namespace bar_impl { inline namespace bar_impl {
class T; // { dg-message "T" "" } class T; // { dg-message "T" }
} }
using namespace foo; using namespace foo;
} }
...@@ -21,4 +21,4 @@ namespace baz { ...@@ -21,4 +21,4 @@ namespace baz {
foo::T *t1; foo::T *t1;
bar::T *t2; bar::T *t2;
baz::T *t3; // { dg-error "(ambiguous|does not name a type)" "" } baz::T *t3; // { dg-error "(ambiguous|does not name a type)" }
...@@ -20,6 +20,6 @@ struct call_sum { ...@@ -20,6 +20,6 @@ struct call_sum {
int main() { int main() {
// This shouldn't be an error; this is bug 35722. // This shouldn't be an error; this is bug 35722.
reverse<call_sum>(1,2); // { dg-bogus "no match" "" } reverse<call_sum>(1,2); // { dg-bogus "no match" }
// { dg-bogus "sorry, unimplemented" "candidate explanation" { target *-*-* } 6 } // { dg-bogus "sorry, unimplemented" "candidate explanation" { target *-*-* } 6 }
} }
...@@ -5,7 +5,7 @@ template<typename T1 = unused, typename T2 = unused, typename T3 = unused, ...@@ -5,7 +5,7 @@ template<typename T1 = unused, typename T2 = unused, typename T3 = unused,
struct tuple {}; struct tuple {};
template<typename... Args> template<typename... Args>
tuple<Args...> foo() { } // { dg-bogus "cannot expand" "" } tuple<Args...> foo() { } // { dg-bogus "cannot expand" }
int main() int main()
{ {
......
...@@ -10,5 +10,5 @@ class D; ...@@ -10,5 +10,5 @@ class D;
bool mm(D); bool mm(D);
void g(C& f) { void g(C& f) {
mm(f); // { dg-error "parameter" "" } mm(f); // { dg-error "parameter" }
} }
...@@ -7,6 +7,6 @@ struct A; ...@@ -7,6 +7,6 @@ struct A;
int main() int main()
{ {
A::g(); // { dg-error "incomplete" "" } A::g(); // { dg-error "incomplete" }
} }
...@@ -7,13 +7,13 @@ ...@@ -7,13 +7,13 @@
struct A struct A
{ {
void f(); void f();
void foo(void (A::*)(int)); // { dg-message "void A::foo|no known conversion" "" } void foo(void (A::*)(int)); // { dg-message "void A::foo|no known conversion" }
template<typename T> template<typename T>
void g(T); void g(T);
void h() void h()
{ {
void (A::*p)() = &A::f; void (A::*p)() = &A::f;
void (A::*q)() = &(A::f); // { dg-error "parenthesized" "" } void (A::*q)() = &(A::f); // { dg-error "parenthesized" }
foo(&g<int>); // { dg-error "no matching" "" } foo(&g<int>); // { dg-error "no matching" }
} }
}; };
...@@ -27,62 +27,62 @@ __vector float vf; ...@@ -27,62 +27,62 @@ __vector float vf;
/* These should be rejected as invalid AltiVec types. */ /* These should be rejected as invalid AltiVec types. */
__vector bool vb; /* { dg-error "AltiVec types" "" } */ __vector bool vb; /* { dg-error "AltiVec types" } */
__vector long long vll; /* { dg-error "AltiVec types" "" } */ __vector long long vll; /* { dg-error "AltiVec types" } */
__vector unsigned long long vull; /* { dg-error "AltiVec types" "" } */ __vector unsigned long long vull; /* { dg-error "AltiVec types" } */
__vector signed long long vsll; /* { dg-error "AltiVec types" "" } */ __vector signed long long vsll; /* { dg-error "AltiVec types" } */
__vector __bool long long vbll; /* { dg-error "AltiVec types" "" } */ __vector __bool long long vbll; /* { dg-error "AltiVec types" } */
__vector long long int vlli; /* { dg-error "AltiVec types" "" } */ __vector long long int vlli; /* { dg-error "AltiVec types" } */
__vector unsigned long long int vulli; /* { dg-error "AltiVec types" "" } */ __vector unsigned long long int vulli; /* { dg-error "AltiVec types" } */
__vector signed long long int vslli; /* { dg-error "AltiVec types" "" } */ __vector signed long long int vslli; /* { dg-error "AltiVec types" } */
__vector __bool long long int vblli; /* { dg-error "AltiVec types" "" } */ __vector __bool long long int vblli; /* { dg-error "AltiVec types" } */
__vector double vd1; /* { dg-error "AltiVec types" "" } */ __vector double vd1; /* { dg-error "AltiVec types" } */
__vector long double vld; /* { dg-error "AltiVec types" "" } */ __vector long double vld; /* { dg-error "AltiVec types" } */
__vector _Complex float vcf; /* { dg-error "AltiVec types" "" } */ __vector _Complex float vcf; /* { dg-error "AltiVec types" } */
__vector _Complex double vcd; /* { dg-error "AltiVec types" "" } */ __vector _Complex double vcd; /* { dg-error "AltiVec types" } */
__vector _Complex long double vcld; /* { dg-error "AltiVec types" "" } */ __vector _Complex long double vcld; /* { dg-error "AltiVec types" } */
__vector _Complex signed char vcsc; /* { dg-error "AltiVec types" "" } */ __vector _Complex signed char vcsc; /* { dg-error "AltiVec types" } */
__vector _Complex unsigned char vcuc; /* { dg-error "AltiVec types" "" } */ __vector _Complex unsigned char vcuc; /* { dg-error "AltiVec types" } */
__vector _Complex short vcss; /* { dg-error "AltiVec types" "" } */ __vector _Complex short vcss; /* { dg-error "AltiVec types" } */
__vector _Complex unsigned short vcus; /* { dg-error "AltiVec types" "" } */ __vector _Complex unsigned short vcus; /* { dg-error "AltiVec types" } */
__vector _Complex int vcsi; /* { dg-error "AltiVec types" "" } */ __vector _Complex int vcsi; /* { dg-error "AltiVec types" } */
__vector _Complex unsigned int vcui; /* { dg-error "AltiVec types" "" } */ __vector _Complex unsigned int vcui; /* { dg-error "AltiVec types" } */
__vector _Complex long vcsl; /* { dg-error "AltiVec types" "" } */ __vector _Complex long vcsl; /* { dg-error "AltiVec types" } */
__vector _Complex unsigned long vcul; /* { dg-error "AltiVec types" "" } */ __vector _Complex unsigned long vcul; /* { dg-error "AltiVec types" } */
__vector _Complex long long vcsll; /* { dg-error "AltiVec types" "" } */ __vector _Complex long long vcsll; /* { dg-error "AltiVec types" } */
__vector _Complex unsigned long long vcull; /* { dg-error "AltiVec types" "" } */ __vector _Complex unsigned long long vcull; /* { dg-error "AltiVec types" } */
__vector __complex float v_cf; /* { dg-error "AltiVec types" "" } */ __vector __complex float v_cf; /* { dg-error "AltiVec types" } */
__vector __complex double v_cd; /* { dg-error "AltiVec types" "" } */ __vector __complex double v_cd; /* { dg-error "AltiVec types" } */
__vector __complex long double v_cld; /* { dg-error "AltiVec types" "" } */ __vector __complex long double v_cld; /* { dg-error "AltiVec types" } */
__vector __complex signed char v_csc; /* { dg-error "AltiVec types" "" } */ __vector __complex signed char v_csc; /* { dg-error "AltiVec types" } */
__vector __complex unsigned char v_cuc; /* { dg-error "AltiVec types" "" } */ __vector __complex unsigned char v_cuc; /* { dg-error "AltiVec types" } */
__vector __complex short v_css; /* { dg-error "AltiVec types" "" } */ __vector __complex short v_css; /* { dg-error "AltiVec types" } */
__vector __complex unsigned short v_cus; /* { dg-error "AltiVec types" "" } */ __vector __complex unsigned short v_cus; /* { dg-error "AltiVec types" } */
__vector __complex int v_csi; /* { dg-error "AltiVec types" "" } */ __vector __complex int v_csi; /* { dg-error "AltiVec types" } */
__vector __complex unsigned int v_cui; /* { dg-error "AltiVec types" "" } */ __vector __complex unsigned int v_cui; /* { dg-error "AltiVec types" } */
__vector __complex long v_csl; /* { dg-error "AltiVec types" "" } */ __vector __complex long v_csl; /* { dg-error "AltiVec types" } */
__vector __complex unsigned long v_cul; /* { dg-error "AltiVec types" "" } */ __vector __complex unsigned long v_cul; /* { dg-error "AltiVec types" } */
__vector __complex long long v_csll; /* { dg-error "AltiVec types" "" } */ __vector __complex long long v_csll; /* { dg-error "AltiVec types" } */
__vector __complex unsigned long long v_cull; /* { dg-error "AltiVec types" "" } */ __vector __complex unsigned long long v_cull; /* { dg-error "AltiVec types" } */
/* These should be rejected because the component types are invalid. We /* These should be rejected because the component types are invalid. We
don't care about the actual error messages here. */ don't care about the actual error messages here. */
__vector __bool unsigned char vbuc; /* { dg-error "" "" } */ __vector __bool unsigned char vbuc; /* { dg-error "" } */
__vector __bool signed char vbsc; /* { dg-error "" "" } */ __vector __bool signed char vbsc; /* { dg-error "" } */
__vector __bool unsigned short vbuh; /* { dg-error "" "" } */ __vector __bool unsigned short vbuh; /* { dg-error "" } */
__vector __bool signed short vbsh; /* { dg-error "" "" } */ __vector __bool signed short vbsh; /* { dg-error "" } */
__vector __bool unsigned int vbui; /* { dg-error "" "" } */ __vector __bool unsigned int vbui; /* { dg-error "" } */
__vector __bool signed int vbsi; /* { dg-error "" "" } */ __vector __bool signed int vbsi; /* { dg-error "" } */
__vector __bool unsigned vbuj; /* { dg-error "" "" } */ __vector __bool unsigned vbuj; /* { dg-error "" } */
__vector __bool signed vbsj; /* { dg-error "" "" } */ __vector __bool signed vbsj; /* { dg-error "" } */
__vector signed float vsf; /* { dg-error "" "" } */ __vector signed float vsf; /* { dg-error "" } */
__vector unsigned float vuf; /* { dg-error "" "" } */ __vector unsigned float vuf; /* { dg-error "" } */
__vector short float vsf; /* { dg-error "" "" } */ __vector short float vsf; /* { dg-error "" } */
__vector signed double vsd; /* { dg-error "" "" } */ __vector signed double vsd; /* { dg-error "" } */
__vector unsigned double vud; /* { dg-error "" "" } */ __vector unsigned double vud; /* { dg-error "" } */
__vector short double vsd; /* { dg-error "" "" } */ __vector short double vsd; /* { dg-error "" } */
__vector __bool float vbf; /* { dg-error "" "" } */ __vector __bool float vbf; /* { dg-error "" } */
__vector __bool double vbd; /* { dg-error "" "" } */ __vector __bool double vbd; /* { dg-error "" } */
__vector __bool short float blf; /* { dg-error "" "" } */ __vector __bool short float blf; /* { dg-error "" } */
__vector __bool short double vlbd; /* { dg-error "" "" } */ __vector __bool short double vlbd; /* { dg-error "" } */
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
/* These should get warnings for 32-bit code. */ /* These should get warnings for 32-bit code. */
__vector long vl; /* { dg-warning "deprecated" "" } */ __vector long vl; /* { dg-warning "deprecated" } */
__vector unsigned long vul; /* { dg-warning "deprecated" "" } */ __vector unsigned long vul; /* { dg-warning "deprecated" } */
__vector signed long vsl; /* { dg-warning "deprecated" "" } */ __vector signed long vsl; /* { dg-warning "deprecated" } */
__vector __bool long int vbli; /* { dg-warning "deprecated" "" } */ __vector __bool long int vbli; /* { dg-warning "deprecated" } */
__vector long int vli; /* { dg-warning "deprecated" "" } */ __vector long int vli; /* { dg-warning "deprecated" } */
__vector unsigned long int vuli; /* { dg-warning "deprecated" "" } */ __vector unsigned long int vuli; /* { dg-warning "deprecated" } */
__vector signed long int vsli; /* { dg-warning "deprecated" "" } */ __vector signed long int vsli; /* { dg-warning "deprecated" } */
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
/* These should be rejected for 64-bit code. */ /* These should be rejected for 64-bit code. */
__vector long vl; /* { dg-error "invalid for 64" "" } */ __vector long vl; /* { dg-error "invalid for 64" } */
__vector unsigned long vul; /* { dg-error "invalid for 64" "" } */ __vector unsigned long vul; /* { dg-error "invalid for 64" } */
__vector signed long vsl; /* { dg-error "invalid for 64" "" } */ __vector signed long vsl; /* { dg-error "invalid for 64" } */
__vector __bool long int vbli; /* { dg-error "invalid for 64" "" } */ __vector __bool long int vbli; /* { dg-error "invalid for 64" } */
__vector long int vli; /* { dg-error "invalid for 64" "" } */ __vector long int vli; /* { dg-error "invalid for 64" } */
__vector unsigned long int vuli; /* { dg-error "invalid for 64" "" } */ __vector unsigned long int vuli; /* { dg-error "invalid for 64" } */
__vector signed long int vsli; /* { dg-error "invalid for 64" "" } */ __vector signed long int vsli; /* { dg-error "invalid for 64" } */
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// The bogus attribute is ignored, but was in TYPE_ATTRIBUTES during // The bogus attribute is ignored, but was in TYPE_ATTRIBUTES during
// parsing of the class, causing some variants to have it and some not. // parsing of the class, causing some variants to have it and some not.
struct __attribute__((bogus)) A // { dg-warning "ignored" "" } struct __attribute__((bogus)) A // { dg-warning "ignored" }
{ {
virtual ~A(); virtual ~A();
void foo(const A&); void foo(const A&);
......
...@@ -11,6 +11,6 @@ public: ...@@ -11,6 +11,6 @@ public:
}; };
Foo::Foo(int v0, int v1) Foo::Foo(int v0, int v1)
: val_((int[]) {v0, v1}) // { dg-error "" "" } : val_((int[]) {v0, v1}) // { dg-error "" }
{ {
} }
...@@ -16,12 +16,12 @@ struct A ...@@ -16,12 +16,12 @@ struct A
void Go( ) void Go( )
{ {
for (int i = 1;;) // { dg-warning "using obsolete binding" "" } for (int i = 1;;) // { dg-warning "using obsolete binding" }
{ {
switch (1) { switch (1) {
default: {} default: {}
} }
A d; A d;
} }
i; // { dg-warning "name lookup" "" } i; // { dg-warning "name lookup" }
} }
...@@ -10,47 +10,47 @@ ...@@ -10,47 +10,47 @@
#undef fn #undef fn
#define fn pfx(func_decl_inline_before) #define fn pfx(func_decl_inline_before)
decl(inline, fn) // { dg-message "previous" "" } decl(inline, fn) // { dg-message "previous" }
gnuindef(fn, 0) // { dg-error "redeclared" "" } gnuindef(fn, 0) // { dg-error "redeclared" }
#undef fn #undef fn
#define fn pfx(func_decl_inline_after) #define fn pfx(func_decl_inline_after)
gnuindef(fn, 0) // { dg-message "previous" "" } gnuindef(fn, 0) // { dg-message "previous" }
decl(inline, fn) // { dg-error "redeclared" "" } decl(inline, fn) // { dg-error "redeclared" }
#undef fn #undef fn
#define fn pfx(func_def_gnuin_redef) #define fn pfx(func_def_gnuin_redef)
gnuindef(fn, 0) // { dg-message "previous" "" } gnuindef(fn, 0) // { dg-message "previous" }
gnuindef(fn, 1) // { dg-error "redefinition" "" } gnuindef(fn, 1) // { dg-error "redefinition" }
#undef fn #undef fn
#define fn pfx(func_def_inline_redef) #define fn pfx(func_def_inline_redef)
def(inline, fn, 0) // { dg-message "previous" "" } def(inline, fn, 0) // { dg-message "previous" }
def(inline, fn, 1) // { dg-error "redefinition" "" } def(inline, fn, 1) // { dg-error "redefinition" }
#undef fn #undef fn
#define fn pfx(func_def_inline_after) #define fn pfx(func_def_inline_after)
gnuindef(fn, 0) // { dg-message "previous" "" } gnuindef(fn, 0) // { dg-message "previous" }
def(inline, fn, 1) // { dg-error "redeclare" "" } def(inline, fn, 1) // { dg-error "redeclare" }
#undef fn #undef fn
#define fn pfx(func_def_inline_before) #define fn pfx(func_def_inline_before)
def(inline, fn, 0) // { dg-message "previous" "" } def(inline, fn, 0) // { dg-message "previous" }
gnuindef(fn, 1) // { dg-error "redefinition" "" } gnuindef(fn, 1) // { dg-error "redefinition" }
#undef fn #undef fn
#define fn pfx(func_def_before) #define fn pfx(func_def_before)
def(, fn, 0) // { dg-message "previous" "" } def(, fn, 0) // { dg-message "previous" }
gnuindef(fn, 1) // { dg-error "redefinition" "" } gnuindef(fn, 1) // { dg-error "redefinition" }
#undef fn #undef fn
#define fn pfx(func_decl_static_inline_before) #define fn pfx(func_decl_static_inline_before)
decl(static inline, fn) // { dg-message "previous" "" } decl(static inline, fn) // { dg-message "previous" }
gnuindef(fn, 0) // { dg-error "redeclared" "" } gnuindef(fn, 0) // { dg-error "redeclared" }
#undef fn #undef fn
#define fn pfx(func_def_static_inline_after) #define fn pfx(func_def_static_inline_after)
decl(static, fn) decl(static, fn)
gnuindef(fn, 0) // { dg-message "previous" "" } gnuindef(fn, 0) // { dg-message "previous" }
decl(static, fn) decl(static, fn)
def(static inline, fn, 1) // { dg-error "redeclare" "" } def(static inline, fn, 1) // { dg-error "redeclare" }
...@@ -8,7 +8,7 @@ struct C ...@@ -8,7 +8,7 @@ struct C
C(); C();
}; };
C::C() // { dg-bogus "can never be copied" "" } C::C() // { dg-bogus "can never be copied" }
{ {
static void *labelref = &&label; static void *labelref = &&label;
goto *labelref; goto *labelref;
......
...@@ -9,6 +9,6 @@ ...@@ -9,6 +9,6 @@
class T { class T {
public: public:
__attribute__ ((garbage1)) void member1(int) {} /* { dg-warning "'garbage1' attribute directive ignored" "" } */ __attribute__ ((garbage1)) void member1(int) {} /* { dg-warning "'garbage1' attribute directive ignored" } */
void __attribute__ ((garbage2)) member2(int) {} /* { dg-warning "'garbage2' attribute directive ignored" "" } */ void __attribute__ ((garbage2)) member2(int) {} /* { dg-warning "'garbage2' attribute directive ignored" } */
}; };
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
namespace namespace
{ {
struct A { struct A {
static int bar (); // { dg-error "used but never defined" "" } static int bar (); // { dg-error "used but never defined" }
static int i; // { dg-error "used, but not defined" "" { xfail *-*-* } } static int i; // { dg-error "used, but not defined" "" { xfail *-*-* } }
static int j; static int j;
static int k; static int k;
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
extern int extern int
__attribute__((visibility ("hidden"))) __attribute__((visibility ("hidden")))
xyzzy; /* { dg-message "previous declaration" "" } */ xyzzy; /* { dg-message "previous declaration" } */
int int
__attribute__((visibility ("protected"))) __attribute__((visibility ("protected")))
xyzzy = 5; /* { dg-warning "visibility attribute ignored" "" } */ xyzzy = 5; /* { dg-warning "visibility attribute ignored" } */
...@@ -14,6 +14,6 @@ void bar(int i) ...@@ -14,6 +14,6 @@ void bar(int i)
{ {
char d[i] ; char d[i] ;
begin(d); // { dg-error "no matching function" "" } begin(d); // { dg-error "no matching function" }
// { dg-message "(candidate|valid template argument)" "candidate note" { target *-*-* } .-1 } // { dg-message "(candidate|valid template argument)" "candidate note" { target *-*-* } .-1 }
} }
...@@ -10,5 +10,5 @@ B b; ...@@ -10,5 +10,5 @@ B b;
void A::f () void A::f ()
{ {
A* ap = &b; // { dg-error "base|inherit" "" } A* ap = &b; // { dg-error "base|inherit" }
} }
...@@ -9,10 +9,10 @@ struct S; ...@@ -9,10 +9,10 @@ struct S;
struct B struct B
{ {
virtual T *Foo (); // { dg-error "overriding" "" } virtual T *Foo (); // { dg-error "overriding" }
}; };
struct D : B struct D : B
{ {
virtual S *Foo (); // { dg-error "invalid covariant" "" } virtual S *Foo (); // { dg-error "invalid covariant" }
}; };
...@@ -8,13 +8,13 @@ struct A; ...@@ -8,13 +8,13 @@ struct A;
struct B struct B
{ {
virtual A* foo(); // { dg-error "overriding" "" } virtual A* foo(); // { dg-error "overriding" }
}; };
namespace N namespace N
{ {
struct A : B struct A : B
{ {
virtual A* foo(); // { dg-error "invalid covariant" "" } virtual A* foo(); // { dg-error "invalid covariant" }
}; };
} }
...@@ -5,5 +5,5 @@ namespace Out { ...@@ -5,5 +5,5 @@ namespace Out {
} }
} }
class Klasse : public Out::In { // { dg-error ".*" "" } class Klasse : public Out::In { // { dg-error ".*" }
}; };
...@@ -6,4 +6,4 @@ namespace N ...@@ -6,4 +6,4 @@ namespace N
template<typename> struct X { }; template<typename> struct X { };
} }
struct A : N::X { }; // { dg-error "expected class-name" "" } struct A : N::X { }; // { dg-error "expected class-name" }
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
// Bug 16889:Undetected ambiguity. // Bug 16889:Undetected ambiguity.
struct B { struct B {
int f(); // { dg-message "int B::f" "" } int f(); // { dg-message "int B::f" }
}; };
struct B1 : virtual B {}; struct B1 : virtual B {};
struct B2 : B {}; struct B2 : B {};
struct BB : B1, B2 {}; struct BB : B1, B2 {};
int i = BB().f(); // { dg-error "ambiguous" "" } int i = BB().f(); // { dg-error "ambiguous" }
...@@ -7,11 +7,11 @@ ...@@ -7,11 +7,11 @@
// Bug 16889:Undetected ambiguity. // Bug 16889:Undetected ambiguity.
struct B { struct B {
int i; // { dg-message "int B::i" "" } int i; // { dg-message "int B::i" }
}; };
struct B1 : virtual B {}; struct B1 : virtual B {};
struct B2 : B {}; struct B2 : B {};
struct BB : B1, B2 {}; struct BB : B1, B2 {};
int i = BB().i; // { dg-error "ambiguous" "" } int i = BB().i; // { dg-error "ambiguous" }
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
// Follow on from Bug 16889:Undetected ambiguity. // Follow on from Bug 16889:Undetected ambiguity.
struct B { struct B {
int f(); // { dg-message "int B::f" "" } int f(); // { dg-message "int B::f" }
}; };
struct B1 : virtual B {}; struct B1 : virtual B {};
...@@ -15,4 +15,4 @@ struct B2 : B {}; ...@@ -15,4 +15,4 @@ struct B2 : B {};
struct B2_2 : B2 {}; struct B2_2 : B2 {};
struct BB : B1, B2_2 {}; struct BB : B1, B2_2 {};
int i = BB().f(); // { dg-error "ambiguous" "" } int i = BB().f(); // { dg-error "ambiguous" }
...@@ -7,5 +7,5 @@ struct A { }; ...@@ -7,5 +7,5 @@ struct A { };
int main() int main()
{ {
A a; A a;
a.i = 9; // { dg-error "no member" "" } a.i = 9; // { dg-error "no member" }
} }
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
struct A1 struct A1
{ {
operator int () const; // { dg-message "A1::operator" "" } operator int () const; // { dg-message "A1::operator" }
}; };
struct A2 struct A2
{ {
operator int () const; // { dg-message "A2::operator" "" } operator int () const; // { dg-message "A2::operator" }
}; };
struct B : A1, A2 struct B : A1, A2
...@@ -21,6 +21,6 @@ struct B : A1, A2 ...@@ -21,6 +21,6 @@ struct B : A1, A2
int Foo (B const &b) int Foo (B const &b)
{ {
return b; // { dg-error "ambiguous" "" } return b; // { dg-error "ambiguous" }
} }
...@@ -21,12 +21,12 @@ C2<X>::operator C1<Y>() ...@@ -21,12 +21,12 @@ C2<X>::operator C1<Y>()
struct A struct A
{ {
operator int (); // { dg-error "operator" "" } operator int (); // { dg-error "operator" }
operator float (); // { dg-error "operator" "" } operator float (); // { dg-error "operator" }
operator float () const; // { dg-error "operator" "" } operator float () const; // { dg-error "operator" }
template <typename T> operator T * (); // { dg-error "candidates" "" } template <typename T> operator T * (); // { dg-error "candidates" }
}; };
A::operator short () { // { dg-error "prototype for" "" } A::operator short () { // { dg-error "prototype for" }
return 0; return 0;
} }
...@@ -8,6 +8,6 @@ ...@@ -8,6 +8,6 @@
class X; class X;
void foo() { void foo() {
X x(1); // { dg-error "incomplete type" "" } X x(1); // { dg-error "incomplete type" }
bar(x); // { dg-error "3:'bar' was not declared" "" } bar(x); // { dg-error "3:'bar' was not declared" }
} }
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
struct A struct A
{ {
static int i1; static int i1;
int i2; // { dg-message "declared" "" } int i2; // { dg-message "declared" }
static void f1 (); static void f1 ();
void f2 (); void f2 ();
}; };
...@@ -15,7 +15,7 @@ struct C: public B ...@@ -15,7 +15,7 @@ struct C: public B
void g () void g ()
{ {
::A::i1 = 1; ::A::i1 = 1;
::A::i2 = 1; // { dg-error "(access)|(context)" "" } ::A::i2 = 1; // { dg-error "(access)|(context)" }
::A::f1 (); ::A::f1 ();
::A::f2 (); // { dg-error "" } ::A::f2 (); // { dg-error "" }
} }
......
...@@ -13,7 +13,7 @@ struct Derived : Base ...@@ -13,7 +13,7 @@ struct Derived : Base
{ {
void Foo () void Foo ()
{ {
Base::Baz (); // { dg-error "is not a member" "" } Base::Baz (); // { dg-error "is not a member" }
} }
}; };
...@@ -8,7 +8,7 @@ template<typename T> bool operator==(wrap<T>, wrap<T>); ...@@ -8,7 +8,7 @@ template<typename T> bool operator==(wrap<T>, wrap<T>);
template<typename T> template<typename T>
void g(T, wrap<wrap<int> > x) void g(T, wrap<wrap<int> > x)
{ {
bool b = x == x; // { dg-bogus "" "" } bool b = x == x; // { dg-bogus "" }
} }
template<typename T> void operator==(wrap<wrap<T> >, wrap<wrap<T> >); template<typename T> void operator==(wrap<wrap<T> >, wrap<wrap<T> >);
......
// Copyroght (C) 2003 Free Software Foundation // Copyroght (C) 2003 Free Software Foundation
// Origin: PR/12832, Jonathan Wakely <redi@gcc.gnu.org> // Origin: PR/12832, Jonathan Wakely <redi@gcc.gnu.org>
void f() { g(); } // { dg-error "12:'g' was not declared" "" } void f() { g(); } // { dg-error "12:'g' was not declared" }
void g() { } void g() { }
...@@ -17,7 +17,7 @@ struct Derived : Base { ...@@ -17,7 +17,7 @@ struct Derived : Base {
int main() int main()
{ {
Derived d; Derived d;
X x = d.f(); // { dg-bogus "Y" "" } X x = d.f(); // { dg-bogus "Y" }
} }
...@@ -11,4 +11,4 @@ struct S {}; // { dg-message "candidates are: struct S" "candidate 1" } ...@@ -11,4 +11,4 @@ struct S {}; // { dg-message "candidates are: struct S" "candidate 1" }
using namespace M; using namespace M;
struct S s; // { dg-error "reference to 'S' is ambiguous|invalid type in declaration" "" } struct S s; // { dg-error "reference to 'S' is ambiguous|invalid type in declaration" }
...@@ -24,9 +24,9 @@ namespace N ...@@ -24,9 +24,9 @@ namespace N
template<int> void f() {} template<int> void f() {}
} }
using N; // { dg-error "(using-declaration)|(nested-name)" "" } using N; // { dg-error "(using-declaration)|(nested-name)" }
using ::N; // { dg-error "using-declaration" "" } using ::N; // { dg-error "using-declaration" }
using N::f< 0 >; // { dg-error "using-declaration" "" } using N::f< 0 >; // { dg-error "using-declaration" }
struct A { struct A {
template <class T> void f(T); template <class T> void f(T);
...@@ -39,7 +39,7 @@ struct B : A { ...@@ -39,7 +39,7 @@ struct B : A {
}; };
struct C : A { struct C : A {
using A::f<double>; // { dg-error "using-declaration" "" } using A::f<double>; // { dg-error "using-declaration" }
using A::X<int>; // { dg-error "using-declaration" "" } using A::X<int>; // { dg-error "using-declaration" }
}; };
...@@ -42,7 +42,7 @@ namespace N2 { ...@@ -42,7 +42,7 @@ namespace N2 {
} }
namespace N3 { namespace N3 {
struct X { // { dg-message "note" "" } struct X { // { dg-message "note" }
virtual void xfunc(void) = 0; // { dg-message "note" } virtual void xfunc(void) = 0; // { dg-message "note" }
}; };
void g(X parm13); // { dg-error "abstract" } void g(X parm13); // { dg-error "abstract" }
......
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
// PR 775. Some mismatches which were broken. // PR 775. Some mismatches which were broken.
template <class T> struct A {}; template <class T> struct A {};
union A<int> a; // { dg-error "'union' tag" "" } union A<int> a; // { dg-error "'union' tag" }
template <> union A<float> {}; // { dg-error "'union' tag" "" } template <> union A<float> {}; // { dg-error "'union' tag" }
struct B {}; struct B {};
union B b; // { dg-error "'union' tag" "" } union B b; // { dg-error "'union' tag" }
union C {}; union C {};
class C c; // { dg-error "'class' tag" "" } class C c; // { dg-error "'class' tag" }
...@@ -19,11 +19,11 @@ void Foo () { ...@@ -19,11 +19,11 @@ void Foo () {
(c.f<int>) (2); (c.f<int>) (2);
c.g; // { dg-error "statement cannot resolve" "" } c.g; // { dg-error "statement cannot resolve" }
c.f; // { dg-error "statement cannot resolve" "" } c.f; // { dg-error "statement cannot resolve" }
c.f<int>; // { dg-error "statement cannot resolve" "" } c.f<int>; // { dg-error "statement cannot resolve" }
c.g == 1; // { dg-error "invalid" "" } c.g == 1; // { dg-error "invalid" }
c.f == 1; // { dg-error "invalid" "" } c.f == 1; // { dg-error "invalid" }
c.f<int> == 1; // { dg-error "invalid" "" } c.f<int> == 1; // { dg-error "invalid" }
} }
...@@ -13,5 +13,5 @@ struct Foo ...@@ -13,5 +13,5 @@ struct Foo
void Foo::Modify(unsigned j) const void Foo::Modify(unsigned j) const
{ {
Foo::i = j; // { dg-error "assignment of member" "" } Foo::i = j; // { dg-error "assignment of member" }
} }
...@@ -12,7 +12,7 @@ struct foo ...@@ -12,7 +12,7 @@ struct foo
void bad () void bad ()
{ {
this->*(bars[0].b) = 42; // { dg-bogus "read-only" "" } this->*(bars[0].b) = 42; // { dg-bogus "read-only" }
} }
}; };
......
...@@ -13,5 +13,5 @@ int main() ...@@ -13,5 +13,5 @@ int main()
{ {
long long m; long long m;
(void (QObject::*)()) m; // { dg-error "invalid cast" "" } (void (QObject::*)()) m; // { dg-error "invalid cast" }
} }
...@@ -8,6 +8,6 @@ ...@@ -8,6 +8,6 @@
void init () void init ()
{ {
do { } while (0) do { } while (0)
obj = 0; // { dg-error "expected|not declared" "" } obj = 0; // { dg-error "expected|not declared" }
} }
...@@ -10,6 +10,6 @@ class foo { ...@@ -10,6 +10,6 @@ class foo {
int fudge[40]; int fudge[40];
int bar [40]; int bar [40];
inline int access(int i) { inline int access(int i) {
return bar(i); // { dg-error "cannot be used as a function" "" } return bar(i); // { dg-error "cannot be used as a function" }
} }
}; };
...@@ -10,5 +10,5 @@ void foo(const A<N> &a) ...@@ -10,5 +10,5 @@ void foo(const A<N> &a)
void bar() void bar()
{ {
foo(A<0>()); // { dg-message "required from here" "" } foo(A<0>()); // { dg-message "required from here" }
} }
...@@ -3,4 +3,4 @@ ...@@ -3,4 +3,4 @@
void (*g() throw())(); // { dg-message "g\\(\\) throw" "" { target { ! c++1z } } } void (*g() throw())(); // { dg-message "g\\(\\) throw" "" { target { ! c++1z } } }
// { dg-message "g\\(\\) noexcept" "" { target c++1z } .-1 } // { dg-message "g\\(\\) noexcept" "" { target c++1z } .-1 }
void (*g())(); // { dg-error "" "" } void (*g())(); // { dg-error "" }
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
struct Wrapper {}; struct Wrapper {};
void Foo(int const &); // { dg-message "in passing" "" } void Foo(int const &); // { dg-message "in passing" }
void Baz () void Baz ()
{ {
Foo (Wrapper ()); // { dg-error "Wrapper" "" } Foo (Wrapper ()); // { dg-error "Wrapper" }
} }
...@@ -7,7 +7,7 @@ template <typename T> struct S { ...@@ -7,7 +7,7 @@ template <typename T> struct S {
}; };
template <typename T> struct S2 : S<T> { template <typename T> struct S2 : S<T> {
using S<T>::operator typename S<T>::I*; // { dg-error "operator S\\<int\\>" "" } using S<T>::operator typename S<T>::I*; // { dg-error "operator S\\<int\\>" }
}; };
template struct S2<int>; // { dg-message "required" "" } template struct S2<int>; // { dg-message "required" }
...@@ -18,5 +18,5 @@ void tfoo(void) ...@@ -18,5 +18,5 @@ void tfoo(void)
int alpha; // { dg-error "" "" { xfail *-*-* } } int alpha; // { dg-error "" "" { xfail *-*-* } }
int beta; int beta;
}; // { dg-bogus "" "misplaced position of the declaration" { xfail *-*-* } } }; // { dg-bogus "" "misplaced position of the declaration" { xfail *-*-* } }
double alpha; // { dg-error "" "" } double alpha; // { dg-error "" }
} }
...@@ -14,7 +14,7 @@ struct B ...@@ -14,7 +14,7 @@ struct B
struct C : public B, public A struct C : public B, public A
{ {
C () // { dg-warning "when initialized" "" } C () // { dg-warning "when initialized" }
: A(), B() // { dg-warning "base .\[AB\]." "" } : A(), B() // { dg-warning "base .\[AB\]." }
{ } { }
}; };
...@@ -7,19 +7,19 @@ ...@@ -7,19 +7,19 @@
struct test struct test
{ {
char test; // { dg-error "with same name as class" "" } char test; // { dg-error "with same name as class" }
test(); test();
}; };
template <typename T> struct X template <typename T> struct X
{ {
char X; // { dg-error "with same name as class" "" } char X; // { dg-error "with same name as class" }
X (); X ();
}; };
template <> struct X<int> { template <> struct X<int> {
char X; // { dg-error "with same name as class" "" } char X; // { dg-error "with same name as class" }
X(); X();
}; };
X<float> i; // { dg-message "required from" "" } X<float> i; // { dg-message "required from" }
...@@ -17,7 +17,7 @@ struct B : A ...@@ -17,7 +17,7 @@ struct B : A
class T class T
{ {
typedef int Foo; typedef int Foo;
T () : Foo () {} // { dg-error "T::Foo' is not" "" } T () : Foo () {} // { dg-error "T::Foo' is not" }
}; };
struct S : B struct S : B
......
...@@ -19,7 +19,7 @@ template<class T> int f2(T x); ...@@ -19,7 +19,7 @@ template<class T> int f2(T x);
int D::Foo () int D::Foo ()
{ {
f1( &D::m); // { dg-error "cannot create pointer to ref" "" } f1( &D::m); // { dg-error "cannot create pointer to ref" }
f1( &(D::m)); // ok f1( &(D::m)); // ok
f2( &D::s); // ok f2( &D::s); // ok
f2( &(D::s)); // ok f2( &(D::s)); // ok
...@@ -28,7 +28,7 @@ int D::Foo () ...@@ -28,7 +28,7 @@ int D::Foo ()
int Foo () int Foo ()
{ {
f1( &D::m); // { dg-error "cannot create pointer to ref" "" } f1( &D::m); // { dg-error "cannot create pointer to ref" }
f1( &(D::m)); // { dg-error "non-static" } f1( &(D::m)); // { dg-error "non-static" }
f2( &D::s); // ok f2( &D::s); // ok
f2( &(D::s)); // ok f2( &(D::s)); // ok
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
struct wxString; struct wxString;
struct wxString* wxGetEmptyString(); struct wxString* wxGetEmptyString();
struct wxString GetHeader() // { dg-error "return type" "" } struct wxString GetHeader() // { dg-error "return type" }
{ {
return *wxGetEmptyString(); return *wxGetEmptyString();
} }
......
...@@ -6,5 +6,5 @@ namespace std { ...@@ -6,5 +6,5 @@ namespace std {
} }
using std::fabs; using std::fabs;
double (*p) (double) = &fabs; // { dg-bogus "is ambiguous" "" } double (*p) (double) = &fabs; // { dg-bogus "is ambiguous" }
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
struct S struct S
{ {
void f () {} // { dg-error "with" "" } void f () {} // { dg-error "with" }
int f () { return 0; } // { dg-error "overloaded" "" } int f () { return 0; } // { dg-error "overloaded" }
}; };
...@@ -6,6 +6,6 @@ ...@@ -6,6 +6,6 @@
struct A struct A
{ {
void foo(); // { dg-error "with" "" } void foo(); // { dg-error "with" }
virtual void foo(); // { dg-error "cannot be overloaded" "" } virtual void foo(); // { dg-error "cannot be overloaded" }
}; };
...@@ -11,5 +11,5 @@ void anyfunc(int x); ...@@ -11,5 +11,5 @@ void anyfunc(int x);
void Foo () void Foo ()
{ {
anyfunc (&dummy<>); // { dg-error "cannot resolve overload" "" } anyfunc (&dummy<>); // { dg-error "cannot resolve overload" }
} }
...@@ -17,5 +17,5 @@ void f (C) {} // even though this would be well-formed ...@@ -17,5 +17,5 @@ void f (C) {} // even though this would be well-formed
int main () int main ()
{ {
f (aip); // { dg-error "'A' is an inaccessible base of 'B'|conversion" "" } f (aip); // { dg-error "'A' is an inaccessible base of 'B'|conversion" }
} }
...@@ -8,5 +8,5 @@ ...@@ -8,5 +8,5 @@
void Foo (int) void Foo (int)
{ {
Foo(2 2); // { dg-error "expected" "" } Foo(2 2); // { dg-error "expected" }
} }
...@@ -4,10 +4,10 @@ enum __attribute__ ((deprecated)) E { e }; ...@@ -4,10 +4,10 @@ enum __attribute__ ((deprecated)) E { e };
struct S { enum __attribute__ ((deprecated)) F { f = e }; }; struct S { enum __attribute__ ((deprecated)) F { f = e }; };
int main () { int main () {
E x; // { dg-warning "'E' is deprecated" "" } E x; // { dg-warning "'E' is deprecated" }
x = e; x = e;
S::F y; // { dg-warning "'F' is deprecated" "" } S::F y; // { dg-warning "'F' is deprecated" }
y = S::f; y = S::f;
return x + y; return x + y;
......
...@@ -18,7 +18,7 @@ void Foo () ...@@ -18,7 +18,7 @@ void Foo ()
static const unsigned J = X<T>::J; // { dg-message "not initialized with a constant expression" } static const unsigned J = X<T>::J; // { dg-message "not initialized with a constant expression" }
Y<J> j; // { dg-error "constant|template argument" "" } Y<J> j; // { dg-error "constant|template argument" }
} }
struct A struct A
...@@ -34,7 +34,7 @@ template <typename> struct X ...@@ -34,7 +34,7 @@ template <typename> struct X
void Baz () void Baz ()
{ {
Foo<int> (); // { dg-message "required" "" } Foo<int> (); // { dg-message "required" }
} }
...@@ -10,4 +10,4 @@ ...@@ -10,4 +10,4 @@
class class
{ {
typename:: typename::
; // { dg-error "" "" } ; // { dg-error "" }
...@@ -4,4 +4,4 @@ ...@@ -4,4 +4,4 @@
// PR 18095: ICE // PR 18095: ICE
// Origin: Volker Reichelt <reichelt@gcc.gnu.org> // Origin: Volker Reichelt <reichelt@gcc.gnu.org>
struct A // { dg-error "expected" "" } struct A // { dg-error "expected" }
...@@ -4,4 +4,4 @@ ...@@ -4,4 +4,4 @@
// PR 18095: ICE // PR 18095: ICE
// Origin: Volker Reichelt <reichelt@gcc.gnu.org> // Origin: Volker Reichelt <reichelt@gcc.gnu.org>
struct A {} // { dg-error "expected" "" } struct A {} // { dg-error "expected" }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
template<typename T> struct A template<typename T> struct A
{ {
typedef typename T::X Y; // { dg-error "not a class" "" } typedef typename T::X Y; // { dg-error "not a class" }
}; };
A<int>::Y y; // { dg-message "required from here" "" } A<int>::Y y; // { dg-message "required from here" }
namespace N namespace N
{ {
struct A; // { dg-message "previous declaration" "" } struct A; // { dg-message "previous declaration" }
} }
template<int I> template<int I>
struct N::A {}; // { dg-error "redeclared" "" } struct N::A {}; // { dg-error "redeclared" }
...@@ -13,8 +13,8 @@ namespace N ...@@ -13,8 +13,8 @@ namespace N
using namespace N; using namespace N;
int A::i; // { dg-message "ambiguous|declared here" "" } int A::i; // { dg-message "ambiguous|declared here" }
int A::i; // { dg-message "ambiguous|redefinition of" "" } int A::i; // { dg-message "ambiguous|redefinition of" }
namespace N namespace N
{ {
......
...@@ -9,5 +9,5 @@ struct Ast ...@@ -9,5 +9,5 @@ struct Ast
void void
Ast::accept (Visitor& v) Ast::accept (Visitor& v)
{ {
v (*this); // { dg-error "no match for call" "" } v (*this); // { dg-error "no match for call" }
} }
...@@ -8,7 +8,7 @@ namespace N ...@@ -8,7 +8,7 @@ namespace N
struct X { }; struct X { };
} }
N::X X; // { dg-error "" "" } N::X X; // { dg-error "" }
int main() int main()
{ {
......
...@@ -4,4 +4,4 @@ ...@@ -4,4 +4,4 @@
struct A; struct A;
void foo (); void foo ();
void f() { alignas (foo (A)); } // { dg-error "expected" "" } void f() { alignas (foo (A)); } // { dg-error "expected" }
...@@ -9,6 +9,6 @@ void f () ...@@ -9,6 +9,6 @@ void f ()
{ {
class c class c
{ {
friend void g () { } // { dg-error "local class" "" } friend void g () { } // { dg-error "local class" }
}; };
} }
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
template <class T> template <class T>
struct Foo { struct Foo {
int j; // we never see this one. int j; // we never see this one.
int k; // { dg-message "Foo" "" } int k; // { dg-message "Foo" }
}; };
struct Baz struct Baz
{ {
int j; int j;
int k; // { dg-message "candidates" "" } int k; // { dg-message "candidates" }
}; };
...@@ -23,7 +23,7 @@ template <class T> ...@@ -23,7 +23,7 @@ template <class T>
struct Bar : public Foo<T>, Baz { struct Bar : public Foo<T>, Baz {
int baz () { return j; } // binds to Baz::j int baz () { return j; } // binds to Baz::j
int foo () { return this->k; } // { dg-error "request for member" "" } int foo () { return this->k; } // { dg-error "request for member" }
}; };
int main() int main()
...@@ -31,7 +31,7 @@ int main() ...@@ -31,7 +31,7 @@ int main()
Bar<int> bar; Bar<int> bar;
bar.baz (); bar.baz ();
bar.foo (); // { dg-message "required" "" } bar.foo (); // { dg-message "required" }
return 0; return 0;
} }
...@@ -3,4 +3,4 @@ ...@@ -3,4 +3,4 @@
// { dg-do compile } // { dg-do compile }
struct { struct {
a(void = 0; a(0), a(0) // { dg-error "" "" } a(void = 0; a(0), a(0) // { dg-error "" }
...@@ -8,4 +8,4 @@ ...@@ -8,4 +8,4 @@
namespace A {} namespace A {}
int A::* p; // { dg-error "is a namespace" "" } int A::* p; // { dg-error "is a namespace" }
...@@ -7,5 +7,5 @@ ...@@ -7,5 +7,5 @@
template<typename> struct A template<typename> struct A
{ {
int A<0>::* p; // { dg-error "(type/value mismatch)|(expected)" "" } int A<0>::* p; // { dg-error "(type/value mismatch)|(expected)" }
}; };
// Test that the parser doesn't go into an infinite loop from ignoring the // Test that the parser doesn't go into an infinite loop from ignoring the
// PRE_PARSED_FUNCTION_DECL token. // PRE_PARSED_FUNCTION_DECL token.
class C { static void* operator new(size_t); }; // { dg-error "" "" } class C { static void* operator new(size_t); }; // { dg-error "" }
void* C::operator new(size_t) { return 0; } // { dg-error "" "" } void* C::operator new(size_t) { return 0; } // { dg-error "" }
class D { D(int i): integer(i){}}; // { dg-error "" "" } class D { D(int i): integer(i){}}; // { dg-error "" }
...@@ -17,10 +17,10 @@ namespace Test1 { ...@@ -17,10 +17,10 @@ namespace Test1 {
namespace Test2 { namespace Test2 {
typedef unsigned int X; // { dg-bogus "X" "" } typedef unsigned int X; // { dg-bogus "X" }
extern "C" int f2(); extern "C" int f2();
namespace N { namespace N {
typedef unsigned int X; // { dg-bogus "X" "" } typedef unsigned int X; // { dg-bogus "X" }
extern "C" int f2(); extern "C" int f2();
} }
using namespace N; using namespace N;
......
...@@ -16,17 +16,17 @@ class DD: public D { ...@@ -16,17 +16,17 @@ class DD: public D {
}; };
void DD::f() { void DD::f() {
mi = 3; // { dg-error "within this context" "" } mi = 3; // { dg-error "within this context" }
si = 3; // { dg-error "within this context" "" } si = 3; // { dg-error "within this context" }
::B b; ::B b;
b.mi = 3; b.mi = 3;
b.si = 3; b.si = 3;
::B::si = 3; ::B::si = 3;
::B* bp1 = this; // { dg-error "inaccessible base" "" } ::B* bp1 = this; // { dg-error "inaccessible base" }
::B* bp2 = (::B*)this; ::B* bp2 = (::B*)this;
bp2->mi = 3; bp2->mi = 3;
B b2; // { dg-error "within this context" "" } B b2; // { dg-error "within this context" }
B::si = 3; // { dg-error "within this context" "" } B::si = 3; // { dg-error "within this context" }
} }
...@@ -6,7 +6,7 @@ namespace N1 { ...@@ -6,7 +6,7 @@ namespace N1 {
template <class T> struct Base { template <class T> struct Base {
Base* p; Base* p;
Base<T*>* p2; Base<T*>* p2;
::Base* p3; // { dg-error "" "" } ::Base* p3; // { dg-error "" }
}; };
template <class T> struct Derived: public Base<T> { template <class T> struct Derived: public Base<T> {
...@@ -22,7 +22,7 @@ namespace N1 { ...@@ -22,7 +22,7 @@ namespace N1 {
namespace N2 { namespace N2 {
template <class T> struct Base {}; template <class T> struct Base {};
template <class T> struct Derived: public Base<T> { template <class T> struct Derived: public Base<T> {
typename Derived::template Base<double>* p1; // { dg-bogus "" "" } typename Derived::template Base<double>* p1; // { dg-bogus "" }
}; };
template struct Derived<void>; template struct Derived<void>;
......
...@@ -21,7 +21,7 @@ struct D ...@@ -21,7 +21,7 @@ struct D
{ {
int Foo () int Foo ()
{ {
return operator int (); // { dg-error "not defined" "" } return operator int (); // { dg-error "not defined" }
} }
}; };
...@@ -12,5 +12,5 @@ namespace N ...@@ -12,5 +12,5 @@ namespace N
template<typename T> void g (N::A *p) template<typename T> void g (N::A *p)
{ {
(void) A (p); // { dg-message "" "" } (void) A (p); // { dg-message "" }
} }
...@@ -18,6 +18,6 @@ struct B ...@@ -18,6 +18,6 @@ struct B
{ {
bool bar(A& a) bool bar(A& a)
{ {
return a.foo == 0; // { dg-error "" "" } return a.foo == 0; // { dg-error "" }
} }
}; };
...@@ -8,6 +8,6 @@ ...@@ -8,6 +8,6 @@
template <class T> void make_pair(T x); template <class T> void make_pair(T x);
void foo(){ void foo(){
struct fps_chan_ID fps; // { dg-error "incomplete" "" } struct fps_chan_ID fps; // { dg-error "incomplete" }
make_pair(fps); // { dg-bogus "no matching function" "" } make_pair(fps); // { dg-bogus "no matching function" }
} }
...@@ -13,16 +13,16 @@ template<class T> struct X ...@@ -13,16 +13,16 @@ template<class T> struct X
template<class T > template<class T >
struct Derived struct Derived
{ {
class Nested : public X<T> // { dg-message "required" "" } class Nested : public X<T> // { dg-message "required" }
{ {
}; };
Nested m; // { dg-message "required" "" } Nested m; // { dg-message "required" }
void Foo (); void Foo ();
}; };
void Foo (Derived<void> &x) void Foo (Derived<void> &x)
{ {
x.Foo (); // { dg-message "required" "" } x.Foo (); // { dg-message "required" }
} }
...@@ -5,4 +5,4 @@ ...@@ -5,4 +5,4 @@
// Bug 19895: ICE on invalid // Bug 19895: ICE on invalid
struct A; struct A;
template A<>::A(); // { dg-error "(not a template)|(explicit qualification)" "" } template A<>::A(); // { dg-error "(not a template)|(explicit qualification)" }
...@@ -12,6 +12,6 @@ struct Derived : Base<T> { ...@@ -12,6 +12,6 @@ struct Derived : Base<T> {
}; };
template<typename T> template<typename T>
Derived<T>::Derived() : Base(4) { } // { dg-error "have any field" "" } Derived<T>::Derived() : Base(4) { } // { dg-error "have any field" }
...@@ -14,7 +14,7 @@ template<class T> void A::f() ...@@ -14,7 +14,7 @@ template<class T> void A::f()
struct B struct B
{ {
void g() {} void g() {}
static int x; // { dg-error "static.*int A::f\\(\\)::B::x" "" } static int x; // { dg-error "static.*int A::f\\(\\)::B::x" }
}; };
} }
......
...@@ -9,10 +9,10 @@ struct B {}; ...@@ -9,10 +9,10 @@ struct B {};
template <typename T> void Bar () template <typename T> void Bar ()
{ {
T::foo (); // { dg-error "is not a member of" "" } T::foo (); // { dg-error "is not a member of" }
} }
void Foo () void Foo ()
{ {
Bar<B> (); // { dg-message "required" "" } Bar<B> (); // { dg-message "required" }
} }
...@@ -14,7 +14,7 @@ struct A : typename O<T>::template I<int> { // { dg-error "keyword 'typename' ...@@ -14,7 +14,7 @@ struct A : typename O<T>::template I<int> { // { dg-error "keyword 'typename'
template <typename T> template <typename T>
struct B : O<T>::template I<int> { struct B : O<T>::template I<int> {
B() : O<T>::I<int>() // { dg-error "used as template|it is a template" "" } B() : O<T>::I<int>() // { dg-error "used as template|it is a template" }
{} {}
}; };
......
...@@ -7,7 +7,7 @@ template<const A* a> class C {}; ...@@ -7,7 +7,7 @@ template<const A* a> class C {};
template<const B* b> class D {}; template<const B* b> class D {};
template<B* b> class E {}; template<B* b> class E {};
template<const B* b> void f(D<b> &, C<static_cast<const A*>(b)> &) {} // { dg-error "" "" } template<const B* b> void f(D<b> &, C<static_cast<const A*>(b)> &) {} // { dg-error "" }
template<const B* b> void g(D<b> &, E<const_cast<B*>(b)> &) {} // { dg-error "" "" { target { ! c++11 } } } template<const B* b> void g(D<b> &, E<const_cast<B*>(b)> &) {} // { dg-error "" "" { target { ! c++11 } } }
B b; B b;
......
...@@ -11,5 +11,5 @@ template <typename T> T A::* Foo (); // { dg-error "reference" } ...@@ -11,5 +11,5 @@ template <typename T> T A::* Foo (); // { dg-error "reference" }
void Baz () void Baz ()
{ {
Foo <int &> (); // { dg-error "no matching function" "" } Foo <int &> (); // { dg-error "no matching function" }
} }
...@@ -26,7 +26,7 @@ int main() ...@@ -26,7 +26,7 @@ int main()
// Two typedefs lead to the instant. of the less spec. ("wrong") template // Two typedefs lead to the instant. of the less spec. ("wrong") template
typedef int& r_type; typedef int& r_type;
typedef const r_type cr_type; typedef const r_type cr_type;
call_traits<cr_type>::type_less_spec var = num; // { dg-error "" "" } call_traits<cr_type>::type_less_spec var = num; // { dg-error "" }
// The explicit type leads to the instantiation of the "correct" one // The explicit type leads to the instantiation of the "correct" one
call_traits<const int&>::type_more_spec var2 = num; call_traits<const int&>::type_more_spec var2 = num;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment