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;
......
...@@ -16,7 +16,7 @@ struct AS ...@@ -16,7 +16,7 @@ struct AS
template <typename T> struct B1 : T template <typename T> struct B1 : T
{ {
typedef typename T::L __restrict__ r;// { dg-error "'__restrict__' qualifiers cannot" "" } typedef typename T::L __restrict__ r;// { dg-error "'__restrict__' qualifiers cannot" }
typedef typename T::myT __restrict__ p; typedef typename T::myT __restrict__ p;
// The following are DR 295 dependent // The following are DR 295 dependent
...@@ -32,5 +32,5 @@ template <typename T> struct B2 : T ...@@ -32,5 +32,5 @@ template <typename T> struct B2 : T
myconst b; myconst b;
}; };
B1<AS> b1; // { dg-message "required" "" } B1<AS> b1; // { dg-message "required" }
B2<AS> b2; B2<AS> b2;
...@@ -14,7 +14,7 @@ class OUTER { ...@@ -14,7 +14,7 @@ class OUTER {
template <class T> template <class T>
class List { }; class List { };
vector<class List> data; // { dg-error "invalid|required|ISO C" "" } vector<class List> data; // { dg-error "invalid|required|ISO C" }
}; };
template <class T> template <class T>
...@@ -23,4 +23,4 @@ class List { }; ...@@ -23,4 +23,4 @@ class List { };
// This next line should just do a lookup of 'class List', and then // This next line should just do a lookup of 'class List', and then
// get a type/value mismatch. Instead we try and push 'class List' // get a type/value mismatch. Instead we try and push 'class List'
// into the global namespace and get a redeclaration error. // into the global namespace and get a redeclaration error.
vector<class List > data; // { dg-error "invalid|required|declaration" "" } vector<class List > data; // { dg-error "invalid|required|declaration" }
...@@ -15,4 +15,4 @@ struct A { int i; }; ...@@ -15,4 +15,4 @@ struct A { int i; };
static void f (int A::* pmi) { } static void f (int A::* pmi) { }
int main () { f (null); } // { dg-error "cannot convert" "" } int main () { f (null); } // { dg-error "cannot convert" }
...@@ -18,6 +18,6 @@ void Bar () ...@@ -18,6 +18,6 @@ void Bar ()
Foo3 (&Baz); Foo3 (&Baz);
Foo3 (&Baz, &Baz); // { dg-error "no matching function" "" } Foo3 (&Baz, &Baz); // { dg-error "no matching function" }
// { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 } // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
} }
...@@ -10,6 +10,6 @@ int &f (); ...@@ -10,6 +10,6 @@ int &f ();
int main() int main()
{ {
Foo (f); Foo (f);
Baz (f); // { dg-error "no matching function" "" } Baz (f); // { dg-error "no matching function" }
// { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 } // { dg-message "(candidate|incompatible cv-qualifiers)" "candidate note" { target *-*-* } .-1 }
} }
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
template <class T> void Foo(T i) template <class T> void Foo(T i)
{ {
i++, i++; i++, i++;
i, i++; // { dg-warning "left operand" "" } i, i++; // { dg-warning "left operand" }
i++, i; // { dg-warning "right operand" "" } i++, i; // { dg-warning "right operand" }
for (;; --i, ++i) for (;; --i, ++i)
; ;
} }
......
...@@ -49,4 +49,4 @@ main () ...@@ -49,4 +49,4 @@ main ()
{ {
E e; E e;
e.bar (); e.bar ();
} // { dg-message "note: file" "" } } // { dg-message "note: file" }
...@@ -8,10 +8,10 @@ foo (int x) ...@@ -8,10 +8,10 @@ foo (int x)
/* None of the following should pass. */ /* None of the following should pass. */
switch (x) switch (x)
{ {
case 1 >> -1: /* { dg-error "operand of shift" "" } */ case 1 >> -1: /* { dg-error "operand of shift" } */
case -1 >> -1: /* { dg-error "operand of shift" "" } */ case -1 >> -1: /* { dg-error "operand of shift" } */
case 1 << -1: /* { dg-error "operand of shift" "" } */ case 1 << -1: /* { dg-error "operand of shift" } */
case -1 << -1: /* { dg-error "operand of shift" "" } */ case -1 << -1: /* { dg-error "operand of shift" } */
return 1; return 1;
} }
return 0; return 0;
...@@ -23,8 +23,8 @@ bar (int x) ...@@ -23,8 +23,8 @@ bar (int x)
/* None of the following should pass. */ /* None of the following should pass. */
switch (x) switch (x)
{ {
case -1 >> 200: /* { dg-error "operand of shift" "" } */ case -1 >> 200: /* { dg-error "operand of shift" } */
case 1 << 200: /* { dg-error "operand of shift" "" } */ case 1 << 200: /* { dg-error "operand of shift" } */
return 1; return 1;
} }
return 0; return 0;
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
// { dg-options "-Wunused -O3" } // { dg-options "-Wunused -O3" }
static const int i = 0; static const int i = 0;
static void f() { } /* { dg-warning "defined but not used" "" } */ static void f() { } /* { dg-warning "defined but not used" } */
static inline void g() { } static inline void g() { }
...@@ -10,11 +10,11 @@ ...@@ -10,11 +10,11 @@
struct C1 { struct C1 {
// Only use in-charge ctor // Only use in-charge ctor
C1(int bi) {} // { dg-warning "unused parameter" "" } C1(int bi) {} // { dg-warning "unused parameter" }
}; };
struct C2 { struct C2 {
// Only use base ctor // Only use base ctor
C2(int bi) {} // { dg-warning "unused parameter" "" } C2(int bi) {} // { dg-warning "unused parameter" }
}; };
struct D : C2 struct D : C2
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
void foo() void foo()
{ {
if (false) if (false)
if (int i=0) // { dg-warning "unused" "" } if (int i=0) // { dg-warning "unused" }
int j=0; // { dg-warning "unused" "" } int j=0; // { dg-warning "unused" }
} }
...@@ -5,17 +5,17 @@ ...@@ -5,17 +5,17 @@
typedef int INT1 __attribute__((deprecated("Please avoid INT1"))); typedef int INT1 __attribute__((deprecated("Please avoid INT1")));
typedef INT1 INT2 __attribute__ ((__deprecated__("Please avoid INT2"))); typedef INT1 INT2 __attribute__ ((__deprecated__("Please avoid INT2")));
typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
INT1a should_not_be_deprecated; INT1a should_not_be_deprecated;
INT1 f1(void) __attribute__ ((deprecated("Please avoid f1"))); INT1 f1(void) __attribute__ ((deprecated("Please avoid f1")));
INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
INT2 f3(void) __attribute__ ((__deprecated__("Please avoid f3"))); INT2 f3(void) __attribute__ ((__deprecated__("Please avoid f3")));
INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated: Please avoid INT2" "" } */ INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated: Please avoid INT2" } */
int f5(INT2 x); /* { dg-warning "'INT2' is deprecated" "" } */ int f5(INT2 x); /* { dg-warning "'INT2' is deprecated" } */
int f6(INT2 x) __attribute__ ((__deprecated__("Please avoid f6"))); int f6(INT2 x) __attribute__ ((__deprecated__("Please avoid f6")));
typedef enum Color {red, green, blue} Color __attribute__((deprecated("Please avoid Color"))); typedef enum Color {red, green, blue} Color __attribute__((deprecated("Please avoid Color")));
...@@ -23,7 +23,7 @@ typedef enum Color {red, green, blue} Color __attribute__((deprecated("Please av ...@@ -23,7 +23,7 @@ typedef enum Color {red, green, blue} Color __attribute__((deprecated("Please av
int g1; int g1;
int g2 __attribute__ ((deprecated("Please avoid g2"))); int g2 __attribute__ ((deprecated("Please avoid g2")));
int g3 __attribute__ ((__deprecated__("Please avoid g3"))); int g3 __attribute__ ((__deprecated__("Please avoid g3")));
Color k; /* { dg-warning "'Color' is deprecated: Please avoid Color" "" } */ Color k; /* { dg-warning "'Color' is deprecated: Please avoid Color" } */
typedef struct { typedef struct {
int field1; int field1;
...@@ -44,13 +44,13 @@ typedef struct { ...@@ -44,13 +44,13 @@ typedef struct {
int func1() int func1()
{ {
INT1 w; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 w; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
int x __attribute__ ((deprecated("Please avoid x"))); int x __attribute__ ((deprecated("Please avoid x")));
int y __attribute__ ((__deprecated__("Please avoid y"))); int y __attribute__ ((__deprecated__("Please avoid y")));
int z; int z;
int (*pf)() = f1; /* { dg-warning "'INT1 f1\\(\\)' is deprecated: Please avoid f1" "" } */ int (*pf)() = f1; /* { dg-warning "'INT1 f1\\(\\)' is deprecated: Please avoid f1" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated: Please avoid x" "" } */ z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated: Please avoid x" } */
/* { dg-warning "'y' is deprecated: Please avoid y" "y" { target *-*-* } .-1 } */ /* { dg-warning "'y' is deprecated: Please avoid y" "y" { target *-*-* } .-1 } */
/* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } .-2 } */ /* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } .-2 } */
/* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } .-3 } */ /* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } .-3 } */
...@@ -62,34 +62,34 @@ int func2(S1 *p) ...@@ -62,34 +62,34 @@ int func2(S1 *p)
S1 lp; S1 lp;
if (p->field1) if (p->field1)
return p->field2; /* { dg-warning "'S1::field2' is deprecated: Please avoid field2" "" } */ return p->field2; /* { dg-warning "'S1::field2' is deprecated: Please avoid field2" } */
else if (lp.field4) /* { dg-warning "'S1::field4' is deprecated: Please avoid field4" "" } */ else if (lp.field4) /* { dg-warning "'S1::field4' is deprecated: Please avoid field4" } */
return p->field3; return p->field3;
p->u1.field5 = g1 + p->field7; p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'S1::u2' is deprecated: Please avoid u2" "" } */ p->u2.field9; /* { dg-warning "'S1::u2' is deprecated: Please avoid u2" } */
return p->u1.field6 + p->field8; /* { dg-warning "'S1::<unnamed union>::field6' is deprecated: Please avoid field6" "" } */ return p->u1.field6 + p->field8; /* { dg-warning "'S1::<unnamed union>::field6' is deprecated: Please avoid field6" } */
/* { dg-warning "'S1::field8' is deprecated: Please avoid field8" "field8" { target *-*-* } .-1 } */ /* { dg-warning "'S1::field8' is deprecated: Please avoid field8" "field8" { target *-*-* } .-1 } */
} }
struct SS1 { struct SS1 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
} __attribute__ ((deprecated("Please avoid SS1"))); } __attribute__ ((deprecated("Please avoid SS1")));
struct SS1 *p1; /* { dg-warning "'SS1' is deprecated: Please avoid SS1" "" } */ struct SS1 *p1; /* { dg-warning "'SS1' is deprecated: Please avoid SS1" } */
struct __attribute__ ((__deprecated__("Please avoid SS2"))) SS2 { struct __attribute__ ((__deprecated__("Please avoid SS2"))) SS2 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
}; };
struct SS2 *p2; /* { dg-warning "'SS2' is deprecated: Please avoid SS2" "" } */ struct SS2 *p2; /* { dg-warning "'SS2' is deprecated: Please avoid SS2" } */
class T { class T {
public: public:
void member1(int) __attribute__ ((deprecated("Please avoid member1"))); void member1(int) __attribute__ ((deprecated("Please avoid member1")));
void member2(INT1) __attribute__ ((__deprecated__("Please avoid member2"))); /* { dg-warning "'INT1' is deprecated" "" } */ void member2(INT1) __attribute__ ((__deprecated__("Please avoid member2"))); /* { dg-warning "'INT1' is deprecated" } */
int member3(T *); int member3(T *);
int x; int x;
} __attribute__ ((deprecated("Please avoid T"))); } __attribute__ ((deprecated("Please avoid T")));
...@@ -100,11 +100,11 @@ inline void T::member1(int) {} ...@@ -100,11 +100,11 @@ inline void T::member1(int) {}
int T::member3(T *p) // { dg-warning "'T' is deprecated: Please avoid T" } int T::member3(T *p) // { dg-warning "'T' is deprecated: Please avoid T" }
{ {
p->member1(1); /* { dg-warning "'void T::member1\\(int\\)' is deprecated: Please avoid member1" "" } */ p->member1(1); /* { dg-warning "'void T::member1\\(int\\)' is deprecated: Please avoid member1" } */
(*p).member1(2); /* { dg-warning "'void T::member1\\(int\\)' is deprecated: Please avoid member1" "" } */ (*p).member1(2); /* { dg-warning "'void T::member1\\(int\\)' is deprecated: Please avoid member1" } */
p->member2(1); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated: Please avoid member2" "" } */ p->member2(1); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated: Please avoid member2" } */
(*p).member2(2); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated: Please avoid member2" "" } */ (*p).member2(2); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated: Please avoid member2" } */
p->member3(p); p->member3(p);
(*p).member3(p); (*p).member3(p);
return f1(); /* { dg-warning "'INT1 f1\\(\\)' is deprecated: Please avoid f1" "" } */ return f1(); /* { dg-warning "'INT1 f1\\(\\)' is deprecated: Please avoid f1" } */
} }
...@@ -6,18 +6,18 @@ ...@@ -6,18 +6,18 @@
typedef int INT1 __attribute__((deprecated)); typedef int INT1 __attribute__((deprecated));
typedef INT1 INT2 __attribute__ ((__deprecated__)); typedef INT1 INT2 __attribute__ ((__deprecated__));
typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated" "" } */ typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated" } */
typedef INT1 INT1b __attribute__ ((deprecated)); typedef INT1 INT1b __attribute__ ((deprecated));
INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated" } */
INT1a should_not_be_deprecated; INT1a should_not_be_deprecated;
INT1 f1(void) __attribute__ ((deprecated)); INT1 f1(void) __attribute__ ((deprecated));
INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated" "" } */ INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated" } */
INT2 f3(void) __attribute__ ((__deprecated__)); INT2 f3(void) __attribute__ ((__deprecated__));
INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated" "" } */ INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated" } */
int f5(INT2 x); /* { dg-warning "'INT2' is deprecated" "" } */ int f5(INT2 x); /* { dg-warning "'INT2' is deprecated" } */
int f6(INT2 x) __attribute__ ((__deprecated__)); int f6(INT2 x) __attribute__ ((__deprecated__));
typedef enum Color {red, green, blue} Color __attribute__((deprecated)); typedef enum Color {red, green, blue} Color __attribute__((deprecated));
...@@ -25,7 +25,7 @@ typedef enum Color {red, green, blue} Color __attribute__((deprecated)); ...@@ -25,7 +25,7 @@ typedef enum Color {red, green, blue} Color __attribute__((deprecated));
int g1; int g1;
int g2 __attribute__ ((deprecated)); int g2 __attribute__ ((deprecated));
int g3 __attribute__ ((__deprecated__)); int g3 __attribute__ ((__deprecated__));
Color k; /* { dg-warning "'Color' is deprecated" "" } */ Color k; /* { dg-warning "'Color' is deprecated" } */
typedef struct { typedef struct {
int field1; int field1;
...@@ -46,13 +46,13 @@ typedef struct { ...@@ -46,13 +46,13 @@ typedef struct {
int func1() int func1()
{ {
INT1 w; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 w; /* { dg-warning "'INT1' is deprecated" } */
int x __attribute__ ((deprecated)); int x __attribute__ ((deprecated));
int y __attribute__ ((__deprecated__)); int y __attribute__ ((__deprecated__));
int z; int z;
int (*pf)() = f1; /* { dg-warning "'INT1 f1\\(\\)' is deprecated" "" } */ int (*pf)() = f1; /* { dg-warning "'INT1 f1\\(\\)' is deprecated" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" "" } */ z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" } */
/* { dg-warning "'y' is deprecated" "y" { target *-*-* } .-1 } */ /* { dg-warning "'y' is deprecated" "y" { target *-*-* } .-1 } */
/* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } .-2 } */ /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } .-2 } */
/* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } .-3 } */ /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } .-3 } */
...@@ -64,36 +64,36 @@ int func2(S1 *p) ...@@ -64,36 +64,36 @@ int func2(S1 *p)
S1 lp; S1 lp;
if (p->field1) if (p->field1)
return p->field2; /* { dg-warning "'S1::field2' is deprecated" "" } */ return p->field2; /* { dg-warning "'S1::field2' is deprecated" } */
else if (lp.field4) /* { dg-warning "'S1::field4' is deprecated" "" } */ else if (lp.field4) /* { dg-warning "'S1::field4' is deprecated" } */
return p->field3; return p->field3;
p->u1.field5 = g1 + p->field7; p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'S1::u2' is deprecated" "" } */ p->u2.field9; /* { dg-warning "'S1::u2' is deprecated" } */
return p->u1.field6 + p->field8; /* { dg-warning "'S1::<unnamed union>::field6' is deprecated" "" } */ return p->u1.field6 + p->field8; /* { dg-warning "'S1::<unnamed union>::field6' is deprecated" } */
/* { dg-warning "'S1::field8' is deprecated" "field8" { target *-*-* } .-1 } */ /* { dg-warning "'S1::field8' is deprecated" "field8" { target *-*-* } .-1 } */
} }
struct SS1 { struct SS1 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated" } */
} __attribute__ ((deprecated)); } __attribute__ ((deprecated));
struct SS1 *p1; /* { dg-warning "'SS1' is deprecated" "" } */ struct SS1 *p1; /* { dg-warning "'SS1' is deprecated" } */
struct __attribute__ ((__deprecated__)) SS2 { struct __attribute__ ((__deprecated__)) SS2 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated" } */
}; };
struct SS2 *p2; /* { dg-warning "'SS2' is deprecated" "" } */ struct SS2 *p2; /* { dg-warning "'SS2' is deprecated" } */
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
class T { class T {
public: public:
void member1(int) __attribute__ ((deprecated)); void member1(int) __attribute__ ((deprecated));
void member2(INT1) __attribute__ ((__deprecated__)); /* { dg-warning "'INT1' is deprecated" "" } */ void member2(INT1) __attribute__ ((__deprecated__)); /* { dg-warning "'INT1' is deprecated" } */
int member3(T *); int member3(T *);
int x; int x;
} __attribute__ ((deprecated)); } __attribute__ ((deprecated));
...@@ -104,13 +104,13 @@ inline void T::member1(int) {} ...@@ -104,13 +104,13 @@ inline void T::member1(int) {}
int T::member3(T *p) // { dg-warning "'T' is deprecated" } int T::member3(T *p) // { dg-warning "'T' is deprecated" }
{ {
p->member1(1); /* { dg-warning "'void T::member1\\(int\\)' is deprecated" "" } */ p->member1(1); /* { dg-warning "'void T::member1\\(int\\)' is deprecated" } */
(*p).member1(2); /* { dg-warning "'void T::member1\\(int\\)' is deprecated" "" } */ (*p).member1(2); /* { dg-warning "'void T::member1\\(int\\)' is deprecated" } */
p->member2(1); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated" "" } */ p->member2(1); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated" } */
(*p).member2(2); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated" "" } */ (*p).member2(2); /* { dg-warning "'void T::member2\\(INT1\\)' is deprecated" } */
p->member3(p); p->member3(p);
(*p).member3(p); (*p).member3(p);
return f1(); /* { dg-warning "'INT1 f1\\(\\)' is deprecated" "" } */ return f1(); /* { dg-warning "'INT1 f1\\(\\)' is deprecated" } */
} }
#endif #endif
......
...@@ -10,7 +10,7 @@ class A ...@@ -10,7 +10,7 @@ class A
{ {
public: public:
A & operator+=( int ); A & operator+=( int );
A & operator+( int ); // { dg-warning ".* should return by value" "" } A & operator+( int ); // { dg-warning ".* should return by value" }
A operator+=( float ); A operator+=( float );
A operator+( float ); A operator+( float );
}; };
...@@ -28,20 +28,20 @@ struct B { ...@@ -28,20 +28,20 @@ struct B {
// We should emit a warning for these // We should emit a warning for these
struct C1 { // { dg-warning "" "" } struct C1 { // { dg-warning "" }
int *ptr; int *ptr;
C1(); C1();
~C1(); ~C1();
}; };
struct C2 { // { dg-warning "" "" } struct C2 { // { dg-warning "" }
int *ptr; int *ptr;
C2(); C2();
C2(const C2&); C2(const C2&);
~C2(); ~C2();
}; };
struct C3 { // { dg-warning "" "" } struct C3 { // { dg-warning "" }
int *ptr; int *ptr;
C3(); C3();
~C3(); ~C3();
......
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
// (But the deletion does not constitute an ill-formed program. So the // (But the deletion does not constitute an ill-formed program. So the
// program should nevertheless compile, but it should give a warning.) // program should nevertheless compile, but it should give a warning.)
class A; // { dg-message "forward declaration of 'class A'" "" } class A; // { dg-message "forward declaration of 'class A'" }
A *a; // { dg-warning "'a' has incomplete type" "" } A *a; // { dg-warning "'a' has incomplete type" }
int int
main (int argc, char **argv) main (int argc, char **argv)
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
// PR 4803. Used inline functions must have a definition. // PR 4803. Used inline functions must have a definition.
inline void Foo1 (); // { dg-warning "inline function" "" } inline void Foo1 (); // { dg-warning "inline function" }
inline void Bar1 (); inline void Bar1 ();
template <typename T> inline void Foo2(T); // { dg-warning "inline function" "" } template <typename T> inline void Foo2(T); // { dg-warning "inline function" }
template <typename T> inline void Bar2(T); template <typename T> inline void Bar2(T);
void Baz () void Baz ()
......
...@@ -10,11 +10,11 @@ ...@@ -10,11 +10,11 @@
extern "C" void FormatDisk(); extern "C" void FormatDisk();
template <class T> template <class T>
struct C { struct C {
C(){ FormatDisk(), 0; } // { dg-warning "right operand of comma" "" } C(){ FormatDisk(), 0; } // { dg-warning "right operand of comma" }
}; };
template struct C<int>; // { dg-message "required" } template struct C<int>; // { dg-message "required" }
template <class T> template <class T>
void f() { FormatDisk(), 0; } // { dg-warning "right operand of comma" "" } void f() { FormatDisk(), 0; } // { dg-warning "right operand of comma" }
template void f<int> (); // { dg-message "required" } template void f<int> (); // { dg-message "required" }
void g() { FormatDisk(), 0; } // { dg-warning "right operand of comma" "" } void g() { FormatDisk(), 0; } // { dg-warning "right operand of comma" }
...@@ -79,10 +79,10 @@ template<int I> void Foo (X &x) ...@@ -79,10 +79,10 @@ template<int I> void Foo (X &x)
reinterpret_cast<int> (x.Foo ()); // { dg-error "invalid cast" } reinterpret_cast<int> (x.Foo ()); // { dg-error "invalid cast" }
const_cast<X &> (x.Foo ()); // { dg-warning "not used" } const_cast<X &> (x.Foo ()); // { dg-warning "not used" }
reinterpret_cast<int *> (&x);// { dg-warning "no effect" "" } reinterpret_cast<int *> (&x);// { dg-warning "no effect" }
const_cast<X &> (x); // { dg-warning "no effect" "" } const_cast<X &> (x); // { dg-warning "no effect" }
sizeof (x++); // { dg-warning "no effect" "" } sizeof (x++); // { dg-warning "no effect" }
__alignof__ (x++); // { dg-warning "no effect" "" } __alignof__ (x++); // { dg-warning "no effect" }
} }
template void Foo<4> (X&); // { dg-message "required" } template void Foo<4> (X&); // { dg-message "required" }
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
void foo () void foo ()
{ {
int i; int i;
float f = (float)i; // { dg-warning "use of old-style cast" "" } float f = (float)i; // { dg-warning "use of old-style cast" }
(void)i; (void)i;
} }
......
...@@ -4,8 +4,8 @@ extern void ex (int i, ...) __attribute__ ((__sentinel__(0))); ...@@ -4,8 +4,8 @@ extern void ex (int i, ...) __attribute__ ((__sentinel__(0)));
void f() void f()
{ {
ex (1, 0); /* { dg-warning "missing sentinel in function call" "" } */ ex (1, 0); /* { dg-warning "missing sentinel in function call" } */
ex (1, 0L); /* { dg-warning "missing sentinel in function call" "" } */ ex (1, 0L); /* { dg-warning "missing sentinel in function call" } */
ex (1, (void *)0); ex (1, (void *)0);
ex (1, __null); /* { dg-bogus "sentinel" } */ ex (1, __null); /* { dg-bogus "sentinel" } */
} }
...@@ -5,6 +5,6 @@ struct a { int mode; }; ...@@ -5,6 +5,6 @@ struct a { int mode; };
int sys_msgctl (void) int sys_msgctl (void)
{ {
struct a setbuf; struct a setbuf;
return setbuf.mode; /* { dg-warning "'setbuf.a::mode' is used" "" } */ return setbuf.mode; /* { dg-warning "'setbuf.a::mode' is used" } */
} }
...@@ -24,8 +24,8 @@ template <class T> class B ...@@ -24,8 +24,8 @@ template <class T> class B
static T value_AC; static T value_AC;
}; };
template <typename T> T B<T>::valueA_AA; template <typename T> T B<T>::valueA_AA;
template <typename T> T B<T>::valueA_AC;// { dg-message "" "" } private - template <typename T> T B<T>::valueA_AC;// { dg-message "" } private -
template <typename T> T B<T>::value_AC; // { dg-bogus "" "" } - template <typename T> T B<T>::value_AC; // { dg-bogus "" } -
// this one is a friend // this one is a friend
template <class T> struct A<T>::AA template <class T> struct A<T>::AA
...@@ -41,7 +41,7 @@ template <class T> struct A<T>::AC ...@@ -41,7 +41,7 @@ template <class T> struct A<T>::AC
{ {
T M () T M ()
{ {
return B<T>::valueA_AC; // { dg-error "" "" } within this context - return B<T>::valueA_AC; // { dg-error "" } within this context -
} }
}; };
...@@ -50,7 +50,7 @@ struct AC ...@@ -50,7 +50,7 @@ struct AC
{ {
int M () int M ()
{ {
return B<int>::value_AC; // { dg-bogus "" "" } - return B<int>::value_AC; // { dg-bogus "" } -
} }
}; };
......
...@@ -7,6 +7,6 @@ struct baz; ...@@ -7,6 +7,6 @@ struct baz;
void operator*(baz&, double); void operator*(baz&, double);
template <class T> inline T operator*(double s, const T &p) template <class T> inline T operator*(double s, const T &p)
; // { dg-bogus "" "" } - must have argument of class type - ; // { dg-bogus "" } - must have argument of class type -
void m(baz& a) { a * .5; } void m(baz& a) { a * .5; }
...@@ -22,6 +22,6 @@ struct PLAYBOOK playbook = ...@@ -22,6 +22,6 @@ struct PLAYBOOK playbook =
{ {
"BookName", "BookName",
{ {
{ 1, "PName0" }, /* { dg-warning "(excess elements)|(near initialization)" "" } */ { 1, "PName0" }, /* { dg-warning "(excess elements)|(near initialization)" } */
} }
}; };
...@@ -7,13 +7,13 @@ ...@@ -7,13 +7,13 @@
int * f( int a) int * f( int a)
{ {
return &a;/* { dg-warning "address" "" } */ return &a;/* { dg-warning "address" } */
} }
int * g() int * g()
{ {
int b = 0; int b = 0;
return &b;/* { dg-warning "address" "" } */ return &b;/* { dg-warning "address" } */
} }
struct ll struct ll
...@@ -23,7 +23,7 @@ struct ll ...@@ -23,7 +23,7 @@ struct ll
int *h(struct ll c) int *h(struct ll c)
{ {
return &c.i;/* { dg-warning "address" "" } */ return &c.i;/* { dg-warning "address" } */
} }
...@@ -31,11 +31,11 @@ struct ll d; ...@@ -31,11 +31,11 @@ struct ll d;
int *i() int *i()
{ {
return &d.i;/* { dg-bogus "address" "" } */ return &d.i;/* { dg-bogus "address" } */
} }
int *j(struct ll *c) int *j(struct ll *c)
{ {
return &c->i; /* { dg-bogus "address" "" } */ return &c->i; /* { dg-bogus "address" } */
} }
...@@ -7,7 +7,7 @@ int main() ...@@ -7,7 +7,7 @@ int main()
{ {
p = ""; p = "";
if (p[0] == 0 if (p[0] == 0
|| (p[0] == '_' && p[1] == 0)) /* { dg-bogus "array bounds" "" } */ || (p[0] == '_' && p[1] == 0)) /* { dg-bogus "array bounds" } */
return 0; return 0;
return 1; return 1;
} }
...@@ -19,9 +19,9 @@ YYSTYPE ...@@ -19,9 +19,9 @@ YYSTYPE
addSibMacro( addSibMacro(
YYSTYPE list ) YYSTYPE list )
{ {
tDefEntry** ppT = (tDefEntry**)&list; // { dg-warning "type-punned pointer will" "" } tDefEntry** ppT = (tDefEntry**)&list; // { dg-warning "type-punned pointer will" }
struct incomplete *p = (struct incomplete *)&list; // { dg-warning "type-punning to incomplete" "" } struct incomplete *p = (struct incomplete *)&list; // { dg-warning "type-punning to incomplete" }
return list; return list;
} }
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-alias "" } */ /* { dg-require-alias "" } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
static void f (void) __attribute__((alias("f"))); // { dg-error "part of alias cycle" "" } static void f (void) __attribute__((alias("f"))); // { dg-error "part of alias cycle" }
void g () void g ()
{ {
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-require-alias "" } */ /* { dg-require-alias "" } */
/* { dg-options "-O2" } */ /* { dg-options "-O2" } */
static void f (void) __attribute__((alias("g"))); static void g (void) __attribute__((alias("f"))); // { dg-error "part of alias cycle" "" } static void f (void) __attribute__((alias("g"))); static void g (void) __attribute__((alias("f"))); // { dg-error "part of alias cycle" }
void h () void h ()
{ {
......
...@@ -11,6 +11,6 @@ struct foo { ...@@ -11,6 +11,6 @@ struct foo {
int int
sub1 (long long int foobar) sub1 (long long int foobar)
{ {
struct foo *tmp = (struct foo *) &foobar; // { dg-warning "type-punned pointer will" "" } struct foo *tmp = (struct foo *) &foobar; // { dg-warning "type-punned pointer will" }
return tmp->i; return tmp->i;
} }
...@@ -15,7 +15,7 @@ struct g { int w; T0 x; }; ...@@ -15,7 +15,7 @@ struct g { int w; T0 x; };
static struct f f = { 4, { 0, 1, 2, 3 } }; static struct f f = { 4, { 0, 1, 2, 3 } };
static int junk1[] = { -1, -1, -1, -1 }; static int junk1[] = { -1, -1, -1, -1 };
static struct g g = { 4, { 0, 1, 2, 3 } }; /* { dg-warning "(excess elements)|(near initialization)" "" } */ static struct g g = { 4, { 0, 1, 2, 3 } }; /* { dg-warning "(excess elements)|(near initialization)" } */
static int junk2[] = { -1, -1, -1, -1 }; static int junk2[] = { -1, -1, -1, -1 };
int main() int main()
......
...@@ -12,7 +12,7 @@ struct g { int w; int x[0]; }; ...@@ -12,7 +12,7 @@ struct g { int w; int x[0]; };
static struct f f = { 4, { 0, 1, 2, 3 } }; static struct f f = { 4, { 0, 1, 2, 3 } };
static int junk1[] = { -1, -1, -1, -1 }; static int junk1[] = { -1, -1, -1, -1 };
static struct g g = { 4, { 0, 1, 2, 3 } }; /* { dg-warning "(excess elements)|(near initialization)" "" } */ static struct g g = { 4, { 0, 1, 2, 3 } }; /* { dg-warning "(excess elements)|(near initialization)" } */
static int junk2[] = { -1, -1, -1, -1 }; static int junk2[] = { -1, -1, -1, -1 };
int main() int main()
......
...@@ -7,22 +7,22 @@ static void *resolver () ...@@ -7,22 +7,22 @@ static void *resolver ()
extern int magic (void) /* { dg-message "previous definition" } */ extern int magic (void) /* { dg-message "previous definition" } */
__attribute__ ((ifunc ("resolver"))); __attribute__ ((ifunc ("resolver")));
extern int magic (void) /* { dg-error "redefinition" "" } */ extern int magic (void) /* { dg-error "redefinition" } */
__attribute__ ((alias ("resolver"))); __attribute__ ((alias ("resolver")));
extern int spell (void) /* { dg-message "previous definition" } */ extern int spell (void) /* { dg-message "previous definition" } */
{ {
return 0; return 0;
} }
extern int spell (void) /* { dg-error "redefinition" "" } */ extern int spell (void) /* { dg-error "redefinition" } */
__attribute__ ((ifunc ("resolver"))); __attribute__ ((ifunc ("resolver")));
extern int mantra (void) /* { dg-message "previous definition" } */ extern int mantra (void) /* { dg-message "previous definition" } */
__attribute__ ((alias ("resolver"))); __attribute__ ((alias ("resolver")));
extern int mantra (void) /* { dg-error "redefinition" "" } */ extern int mantra (void) /* { dg-error "redefinition" } */
__attribute__ ((ifunc ("resolver"))); __attribute__ ((ifunc ("resolver")));
extern int saying (void) /* { dg-error "weak .* cannot be defined" "" } */ extern int saying (void) /* { dg-error "weak .* cannot be defined" } */
__attribute__ ((weak,ifunc ("resolver"))); __attribute__ ((weak,ifunc ("resolver")));
extern int maxim (void) /* { dg-error "indirect function .* cannot be declared weak" "" } */ extern int maxim (void) /* { dg-error "indirect function .* cannot be declared weak" } */
__attribute__ ((ifunc ("resolver"),weak)); __attribute__ ((ifunc ("resolver"),weak));
...@@ -9,25 +9,25 @@ ...@@ -9,25 +9,25 @@
#define AT noinline #define AT noinline
typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" "" } */ typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" } */
typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" "" } */ typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" } */
struct ATSYM(struct) { struct ATSYM(struct) {
char dummy ATTR; /* { dg-warning "attribute ignored" "" } */ char dummy ATTR; /* { dg-warning "attribute ignored" } */
} ATTR; /* { dg-warning "does not apply to types" "" } */ } ATTR; /* { dg-warning "does not apply to types" } */
int ATSYM(var) ATTR; /* { dg-warning "attribute ignored" "" } */ int ATSYM(var) ATTR; /* { dg-warning "attribute ignored" } */
int ATSYM(fn_knrarg) (arg) int ATSYM(fn_knrarg) (arg)
int arg ATTR; /* { dg-warning "attribute ignored" "" } */ int arg ATTR; /* { dg-warning "attribute ignored" } */
{ return 0; } { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" "" } */ int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
int ATSYM(fn_vars) (void) { int ATSYM(fn_vars) (void) {
static int svar ATTR; /* { dg-warning "attribute ignored" "" } */ static int svar ATTR; /* { dg-warning "attribute ignored" } */
auto int lvar ATTR; /* { dg-warning "attribute ignored" "" } */ auto int lvar ATTR; /* { dg-warning "attribute ignored" } */
return 0; return 0;
} }
...@@ -42,20 +42,20 @@ typedef int (*ATSYM(fntype))(void) ATTR; /* used attribute is no ...@@ -42,20 +42,20 @@ typedef int (*ATSYM(fntype))(void) ATTR; /* used attribute is no
longer ignored. */ longer ignored. */
struct ATSYM(struct) { struct ATSYM(struct) {
char dummy ATTR; /* { dg-warning "attribute ignored" "" } */ char dummy ATTR; /* { dg-warning "attribute ignored" } */
} ATTR; /* { dg-warning "does not apply to types" "" } */ } ATTR; /* { dg-warning "does not apply to types" } */
int ATSYM(var) ATTR; int ATSYM(var) ATTR;
int ATSYM(fn_knrarg) (arg) int ATSYM(fn_knrarg) (arg)
int arg ATTR; /* { dg-warning "attribute ignored" "" } */ int arg ATTR; /* { dg-warning "attribute ignored" } */
{ return 0; } { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" "" } */ int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
int ATSYM(fn_vars) (void) { int ATSYM(fn_vars) (void) {
static int svar ATTR; static int svar ATTR;
auto int lvar ATTR; /* { dg-warning "attribute ignored" "" } */ auto int lvar ATTR; /* { dg-warning "attribute ignored" } */
return 0; return 0;
} }
...@@ -66,19 +66,19 @@ int ATSYM(fn_vars) (void) { ...@@ -66,19 +66,19 @@ int ATSYM(fn_vars) (void) {
#undef AT #undef AT
#define AT weak #define AT weak
typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" "" } */ typedef int ATSYM(type) ATTR; /* { dg-warning "attribute ignored" } */
typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" "" } */ typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute ignored" } */
struct ATSYM(struct) { struct ATSYM(struct) {
char dummy ATTR; /* { dg-warning "attribute ignored" "" } */ char dummy ATTR; /* { dg-warning "attribute ignored" } */
}; };
int ATSYM(fn_knrarg) (arg) int ATSYM(fn_knrarg) (arg)
int arg ATTR; /* { dg-warning "attribute ignored" "" } */ int arg ATTR; /* { dg-warning "attribute ignored" } */
{ return 0; } { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" "" } */ int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ignored" } */
/* PR target/28648 */ /* PR target/28648 */
...@@ -87,16 +87,16 @@ int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ign ...@@ -87,16 +87,16 @@ int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute ign
#undef AT #undef AT
#define AT dllimport #define AT dllimport
typedef int ATSYM(type) ATTR; /* { dg-warning "attribute |directive ignored" "" } */ typedef int ATSYM(type) ATTR; /* { dg-warning "attribute |directive ignored" } */
typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute |directive ignored" "" } */ typedef int (*ATSYM(fntype))(void) ATTR; /* { dg-warning "attribute |directive ignored" } */
struct ATSYM(struct) { struct ATSYM(struct) {
char dummy ATTR; /* { dg-warning "attribute |directive ignored" "" } */ char dummy ATTR; /* { dg-warning "attribute |directive ignored" } */
}; };
int ATSYM(fn_knrarg) (arg) int ATSYM(fn_knrarg) (arg)
int arg ATTR; /* { dg-warning "attribute |directive ignored" "" } */ int arg ATTR; /* { dg-warning "attribute |directive ignored" } */
{ return 0; } { return 0; }
int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute |directive ignored" "" } */ int ATSYM(fn_isoarg) (int arg ATTR) { return 0; } /* { dg-warning "attribute |directive ignored" } */
...@@ -3,45 +3,45 @@ ...@@ -3,45 +3,45 @@
extern int t(); extern int t();
static inline void __attribute__((__noinline__)) function_definition(void) {t();} /* { dg-warning "inline function \[^\n\]* given attribute noinline" "" } */ static inline void __attribute__((__noinline__)) function_definition(void) {t();} /* { dg-warning "inline function \[^\n\]* given attribute noinline" } */
static inline void __attribute__((__noinline__)) function_declaration_both_before(void); /* { dg-warning "inline function \[^\n\]* given attribute noinline" "" } */ static inline void __attribute__((__noinline__)) function_declaration_both_before(void); /* { dg-warning "inline function \[^\n\]* given attribute noinline" } */
static void function_declaration_both_before(void) {t();} static void function_declaration_both_before(void) {t();}
static void function_declaration_both_after(void); static void function_declaration_both_after(void);
static inline void __attribute__((__noinline__)) function_declaration_both_after(void); /* { dg-warning "(inline function \[^\n\]* given attribute noinline|declared inline after its definition)" "" } */ static inline void __attribute__((__noinline__)) function_declaration_both_after(void); /* { dg-warning "(inline function \[^\n\]* given attribute noinline|declared inline after its definition)" } */
static void function_declaration_both_after(void) {t();} static void function_declaration_both_after(void) {t();}
static void function_declaration_noinline_before(void) __attribute__((__noinline__)); /* { dg-message "note: previous declaration" "" } */ static void function_declaration_noinline_before(void) __attribute__((__noinline__)); /* { dg-message "note: previous declaration" } */
static inline void function_declaration_noinline_before(void) {t();} /* { dg-warning "follows declaration with attribute noinline" "" } */ static inline void function_declaration_noinline_before(void) {t();} /* { dg-warning "follows declaration with attribute noinline" } */
static inline void function_declaration_noinline_after(void) {t();} /* { dg-message "note: previous definition" "" } */ static inline void function_declaration_noinline_after(void) {t();} /* { dg-message "note: previous definition" } */
static void function_declaration_noinline_after(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" "" } */ static void function_declaration_noinline_after(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" } */
static inline void function_declaration_inline_before(void); /* { dg-message "note: previous declaration" "" } */ static inline void function_declaration_inline_before(void); /* { dg-message "note: previous declaration" } */
static void __attribute__((__noinline__)) function_declaration_inline_before(void) {t();} /* { dg-warning "follows inline declaration" "" } */ static void __attribute__((__noinline__)) function_declaration_inline_before(void) {t();} /* { dg-warning "follows inline declaration" } */
static inline void function_declaration_inline_noinline_before(void); /* { dg-message "note: previous declaration" "" } */ static inline void function_declaration_inline_noinline_before(void); /* { dg-message "note: previous declaration" } */
static void function_declaration_inline_noinline_before(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" "" } */ static void function_declaration_inline_noinline_before(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" } */
static void function_declaration_inline_noinline_before(void) {t();} static void function_declaration_inline_noinline_before(void) {t();}
static inline void function_declaration_inline_noinline_after(void); static inline void function_declaration_inline_noinline_after(void);
static void function_declaration_inline_noinline_after(void) {t();} /* { dg-message "note: previous definition" "" } */ static void function_declaration_inline_noinline_after(void) {t();} /* { dg-message "note: previous definition" } */
static void function_declaration_inline_noinline_after(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" "" } */ static void function_declaration_inline_noinline_after(void) __attribute__((__noinline__)); /* { dg-warning "follows inline declaration" } */
static void function_declaration_noinline_inline_before(void) __attribute__((__noinline__)); /* { dg-message "note: previous declaration" "" } */ static void function_declaration_noinline_inline_before(void) __attribute__((__noinline__)); /* { dg-message "note: previous declaration" } */
static inline void function_declaration_noinline_inline_before(void); /* { dg-warning "follows declaration with attribute noinline" "" } */ static inline void function_declaration_noinline_inline_before(void); /* { dg-warning "follows declaration with attribute noinline" } */
static void function_declaration_noinline_inline_before(void) {t();} static void function_declaration_noinline_inline_before(void) {t();}
......
...@@ -11,13 +11,13 @@ struct bf ...@@ -11,13 +11,13 @@ struct bf
int b: 2; int b: 2;
}; };
struct bf p = {4, 0}; /* { dg-warning "truncated" "" } */ struct bf p = {4, 0}; /* { dg-warning "truncated" } */
struct bf q = {0, 2}; /* { dg-warning "overflow" "" } */ struct bf q = {0, 2}; /* { dg-warning "overflow" } */
struct bf r = {3, -2}; /* { dg-bogus "(truncated|overflow)" } */ struct bf r = {3, -2}; /* { dg-bogus "(truncated|overflow)" } */
void foo () void foo ()
{ {
p.a = 4, p.b = 0; /* { dg-warning "truncated" "" } */ p.a = 4, p.b = 0; /* { dg-warning "truncated" } */
q.a = 0, q.b = 2; /* { dg-warning "overflow" "" } */ q.a = 0, q.b = 2; /* { dg-warning "overflow" } */
r.a = 3, r.b = -2; /* { dg-bogus "(truncated|overflow)" } */ r.a = 3, r.b = -2; /* { dg-bogus "(truncated|overflow)" } */
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
int a = DBL_MAX; /* { dg-warning "overflow in implicit constant conversion" } */ int a = DBL_MAX; /* { dg-warning "overflow in implicit constant conversion" } */
/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
int b = (int) DBL_MAX; /* { dg-error "overflow" "" } */ int b = (int) DBL_MAX; /* { dg-error "overflow" } */
unsigned int c = -1.0; /* { dg-warning "overflow in implicit constant conversion" } */ unsigned int c = -1.0; /* { dg-warning "overflow in implicit constant conversion" } */
/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
unsigned int d = (unsigned)-1.0; /* { dg-error "overflow" } */ unsigned int d = (unsigned)-1.0; /* { dg-error "overflow" } */
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
int a = DBL_MAX; /* { dg-warning "overflow in implicit constant conversion" } */ int a = DBL_MAX; /* { dg-warning "overflow in implicit constant conversion" } */
/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
int b = (int) DBL_MAX; /* { dg-error "overflow" "" } */ int b = (int) DBL_MAX; /* { dg-error "overflow" } */
unsigned int c = -1.0; /* { dg-warning "overflow in implicit constant conversion" } */ unsigned int c = -1.0; /* { dg-warning "overflow in implicit constant conversion" } */
/* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */ /* { dg-error "overflow in constant expression" "constant" { target *-*-* } .-1 } */
unsigned int d = (unsigned)-1.0; /* { dg-error "overflow" } */ unsigned int d = (unsigned)-1.0; /* { dg-error "overflow" } */
......
...@@ -12,6 +12,6 @@ main(void) ...@@ -12,6 +12,6 @@ main(void)
{ {
goto socket; goto socket;
ENTRY(socket) /* { dg-error "valid preprocessing token" "" } */ ENTRY(socket) /* { dg-error "valid preprocessing token" } */
return 0; return 0;
} }
...@@ -38,7 +38,7 @@ extern void abort (void); ...@@ -38,7 +38,7 @@ extern void abort (void);
# error Charconst incorrectly sign-extended # error Charconst incorrectly sign-extended
#endif #endif
#if LONG_CHARCONST != SHORT_CHARCONST /* { dg-warning "too long" "" } */ #if LONG_CHARCONST != SHORT_CHARCONST /* { dg-warning "too long" } */
# error Overly long charconst truncates wrongly for preprocessor # error Overly long charconst truncates wrongly for preprocessor
#endif #endif
...@@ -46,7 +46,7 @@ int main () ...@@ -46,7 +46,7 @@ int main ()
{ {
if (POS_CHARCONST < 0) if (POS_CHARCONST < 0)
abort (); abort ();
if (LONG_CHARCONST != SHORT_CHARCONST) /* { dg-warning "too long" "" } */ if (LONG_CHARCONST != SHORT_CHARCONST) /* { dg-warning "too long" } */
abort (); abort ();
return 0; return 0;
} }
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
/* Source: Neil Booth, 4 Nov 2000. */ /* Source: Neil Booth, 4 Nov 2000. */
#include <silly\>> /* { dg-error "extra tokens" "" } */ #include <silly\>> /* { dg-error "extra tokens" } */
/* These error is No such file or directory, just once. However, this /* These error is No such file or directory, just once. However, this
message is locale-dependent, so don't test for it. */ message is locale-dependent, so don't test for it. */
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
/* Source: Neil Booth, 4 Nov 2000. */ /* Source: Neil Booth, 4 Nov 2000. */
#include "silly\"" /* { dg-error "extra tokens" "" } */ #include "silly\"" /* { dg-error "extra tokens" } */
/* These error is No such file or directory, just once. However, this /* These error is No such file or directory, just once. However, this
message is locale-dependent, so don't test for it. */ message is locale-dependent, so don't test for it. */
......
/* Redeclaration of parameters is an error. PR 13728. */ /* Redeclaration of parameters is an error. PR 13728. */
/* { dg-do compile } */ /* { dg-do compile } */
void f (int fred, /* { dg-message "note: previous definition" "" } */ void f (int fred, /* { dg-message "note: previous definition" } */
int fred); /* { dg-error "redefinition of parameter" "" } */ int fred); /* { dg-error "redefinition of parameter" } */
void f2 (int fred, /* { dg-message "note: previous definition" "" } */ void f2 (int fred, /* { dg-message "note: previous definition" } */
int fred) /* { dg-error "redefinition of parameter" "" } */ int fred) /* { dg-error "redefinition of parameter" } */
{ {
} }
...@@ -5,26 +5,26 @@ ...@@ -5,26 +5,26 @@
typedef int INT1 __attribute__((deprecated("Please avoid INT1"))); typedef int INT1 __attribute__((deprecated("Please avoid INT1")));
typedef INT1 INT2 __attribute__ ((__deprecated__("Please avoid INT2"))); typedef INT1 INT2 __attribute__ ((__deprecated__("Please avoid INT2")));
typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
typedef INT1 INT1b __attribute__ ((deprecated("Please avoid INT1b"))); typedef INT1 INT1b __attribute__ ((deprecated("Please avoid INT1b")));
INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
INT1a should_not_be_deprecated; INT1a should_not_be_deprecated;
INT1 f1(void) __attribute__ ((deprecated("Please avoid f1"))); INT1 f1(void) __attribute__ ((deprecated("Please avoid f1")));
INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
INT2 f3(void) __attribute__ ((__deprecated__("Please avoid f3"))); INT2 f3(void) __attribute__ ((__deprecated__("Please avoid f3")));
INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated: Please avoid INT2" "" } */ INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated: Please avoid INT2" } */
int f5(INT2 x); /* { dg-warning "'INT2' is deprecated: Please avoid INT2" "" } */ int f5(INT2 x); /* { dg-warning "'INT2' is deprecated: Please avoid INT2" } */
int f6(INT2 x) __attribute__ ((__deprecated__("Please avoid f6"))); /* { dg-warning "'INT2' is deprecated: Please avoid INT2" "" } */ int f6(INT2 x) __attribute__ ((__deprecated__("Please avoid f6"))); /* { dg-warning "'INT2' is deprecated: Please avoid INT2" } */
typedef enum {red, green, blue} Color __attribute__((deprecated("Please avoid Color"))); typedef enum {red, green, blue} Color __attribute__((deprecated("Please avoid Color")));
int g1; int g1;
int g2 __attribute__ ((deprecated("Please avoid g2"))); int g2 __attribute__ ((deprecated("Please avoid g2")));
int g3 __attribute__ ((__deprecated__("Please avoid g3"))); int g3 __attribute__ ((__deprecated__("Please avoid g3")));
Color k; /* { dg-warning "'Color' is deprecated: Please avoid Color" "" } */ Color k; /* { dg-warning "'Color' is deprecated: Please avoid Color" } */
typedef struct { typedef struct {
int field1; int field1;
...@@ -45,17 +45,17 @@ typedef struct { ...@@ -45,17 +45,17 @@ typedef struct {
int func1() int func1()
{ {
INT1 w; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 w; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
int x __attribute__ ((deprecated("Avoid x"))); int x __attribute__ ((deprecated("Avoid x")));
int y __attribute__ ((__deprecated__("Bad y"))); int y __attribute__ ((__deprecated__("Bad y")));
int z; int z;
int (*pf)() = f1; /* { dg-warning "'f1' is deprecated: Please avoid f1" "" } */ int (*pf)() = f1; /* { dg-warning "'f1' is deprecated: Please avoid f1" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated: Avoid x" "" } */ z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated: Avoid x" } */
/* { dg-warning "'y' is deprecated: Bad y" "y" { target *-*-* } .-1 } */ /* { dg-warning "'y' is deprecated: Bad y" "y" { target *-*-* } .-1 } */
/* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } .-2 } */ /* { dg-warning "'g2' is deprecated: Please avoid g2" "g2" { target *-*-* } .-2 } */
/* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } .-3 } */ /* { dg-warning "'g3' is deprecated: Please avoid g3" "g3" { target *-*-* } .-3 } */
return f1(); /* { dg-warning "'f1' is deprecated: Please avoid f1" "" } */ return f1(); /* { dg-warning "'f1' is deprecated: Please avoid f1" } */
} }
int func2(S1 *p) int func2(S1 *p)
...@@ -63,26 +63,26 @@ int func2(S1 *p) ...@@ -63,26 +63,26 @@ int func2(S1 *p)
S1 lp; S1 lp;
if (p->field1) if (p->field1)
return p->field2; /* { dg-warning "'field2' is deprecated: Please avoid field2" "" } */ return p->field2; /* { dg-warning "'field2' is deprecated: Please avoid field2" } */
else if (lp.field4) /* { dg-warning "'field4' is deprecated: Please avoid field4" "" } */ else if (lp.field4) /* { dg-warning "'field4' is deprecated: Please avoid field4" } */
return p->field3; return p->field3;
p->u1.field5 = g1 + p->field7; p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'u2' is deprecated: Please avoid u2" "" } */ p->u2.field9; /* { dg-warning "'u2' is deprecated: Please avoid u2" } */
return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated: Please avoid field6" "" } */ return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated: Please avoid field6" } */
/* { dg-warning "'field8' is deprecated: Please avoid field8" "field8" { target *-*-* } .-1 } */ /* { dg-warning "'field8' is deprecated: Please avoid field8" "field8" { target *-*-* } .-1 } */
} }
struct SS1 { struct SS1 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
} __attribute__ ((deprecated("Please avoid SS1"))); } __attribute__ ((deprecated("Please avoid SS1")));
struct SS1 *p1; /* { dg-warning "'SS1' is deprecated: Please avoid SS1" "" } */ struct SS1 *p1; /* { dg-warning "'SS1' is deprecated: Please avoid SS1" } */
struct __attribute__ ((__deprecated__("Please avoid SS2"))) SS2 { struct __attribute__ ((__deprecated__("Please avoid SS2"))) SS2 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated: Please avoid INT1" } */
}; };
struct SS2 *p2; /* { dg-warning "'SS2' is deprecated: Please avoid SS2" "" } */ struct SS2 *p2; /* { dg-warning "'SS2' is deprecated: Please avoid SS2" } */
...@@ -6,26 +6,26 @@ ...@@ -6,26 +6,26 @@
typedef int INT1 __attribute__((deprecated)); typedef int INT1 __attribute__((deprecated));
typedef INT1 INT2 __attribute__ ((__deprecated__)); typedef INT1 INT2 __attribute__ ((__deprecated__));
typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated" "" } */ typedef INT1 INT1a; /* { dg-warning "'INT1' is deprecated" } */
typedef INT1 INT1b __attribute__ ((deprecated)); typedef INT1 INT1b __attribute__ ((deprecated));
INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 should_be_unavailable; /* { dg-warning "'INT1' is deprecated" } */
INT1a should_not_be_deprecated; INT1a should_not_be_deprecated;
INT1 f1(void) __attribute__ ((deprecated)); INT1 f1(void) __attribute__ ((deprecated));
INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated" "" } */ INT1 f2(void) { return 0; } /* { dg-warning "'INT1' is deprecated" } */
INT2 f3(void) __attribute__ ((__deprecated__)); INT2 f3(void) __attribute__ ((__deprecated__));
INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated" "" } */ INT2 f4(void) { return 0; } /* { dg-warning "'INT2' is deprecated" } */
int f5(INT2 x); /* { dg-warning "'INT2' is deprecated" "" } */ int f5(INT2 x); /* { dg-warning "'INT2' is deprecated" } */
int f6(INT2 x) __attribute__ ((__deprecated__)); /* { dg-warning "'INT2' is deprecated" "" } */ int f6(INT2 x) __attribute__ ((__deprecated__)); /* { dg-warning "'INT2' is deprecated" } */
typedef enum {red, green, blue} Color __attribute__((deprecated)); typedef enum {red, green, blue} Color __attribute__((deprecated));
int g1; int g1;
int g2 __attribute__ ((deprecated)); int g2 __attribute__ ((deprecated));
int g3 __attribute__ ((__deprecated__)); int g3 __attribute__ ((__deprecated__));
Color k; /* { dg-warning "'Color' is deprecated" "" } */ Color k; /* { dg-warning "'Color' is deprecated" } */
typedef struct { typedef struct {
int field1; int field1;
...@@ -46,13 +46,13 @@ typedef struct { ...@@ -46,13 +46,13 @@ typedef struct {
int func1() int func1()
{ {
INT1 w; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 w; /* { dg-warning "'INT1' is deprecated" } */
int x __attribute__ ((deprecated)); int x __attribute__ ((deprecated));
int y __attribute__ ((__deprecated__)); int y __attribute__ ((__deprecated__));
int z; int z;
int (*pf)() = f1; /* { dg-warning "'f1' is deprecated" "" } */ int (*pf)() = f1; /* { dg-warning "'f1' is deprecated" } */
z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" "" } */ z = w + x + y + g1 + g2 + g3; /* { dg-warning "'x' is deprecated" } */
/* { dg-warning "'y' is deprecated" "y" { target *-*-* } .-1 } */ /* { dg-warning "'y' is deprecated" "y" { target *-*-* } .-1 } */
/* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } .-2 } */ /* { dg-warning "'g2' is deprecated" "g2" { target *-*-* } .-2 } */
/* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } .-3 } */ /* { dg-warning "'g3' is deprecated" "g3" { target *-*-* } .-3 } */
...@@ -64,29 +64,29 @@ int func2(S1 *p) ...@@ -64,29 +64,29 @@ int func2(S1 *p)
S1 lp; S1 lp;
if (p->field1) if (p->field1)
return p->field2; /* { dg-warning "'field2' is deprecated" "" } */ return p->field2; /* { dg-warning "'field2' is deprecated" } */
else if (lp.field4) /* { dg-warning "'field4' is deprecated" "" } */ else if (lp.field4) /* { dg-warning "'field4' is deprecated" } */
return p->field3; return p->field3;
p->u1.field5 = g1 + p->field7; p->u1.field5 = g1 + p->field7;
p->u2.field9; /* { dg-warning "'u2' is deprecated" "" } */ p->u2.field9; /* { dg-warning "'u2' is deprecated" } */
return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated" "" } */ return p->u1.field6 + p->field8; /* { dg-warning "'field6' is deprecated" } */
/* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } .-1 } */ /* { dg-warning "'field8' is deprecated" "field8" { target *-*-* } .-1 } */
} }
struct SS1 { struct SS1 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated" } */
} __attribute__ ((deprecated)); } __attribute__ ((deprecated));
struct SS1 *p1; /* { dg-warning "'SS1' is deprecated" "" } */ struct SS1 *p1; /* { dg-warning "'SS1' is deprecated" } */
struct __attribute__ ((__deprecated__)) SS2 { struct __attribute__ ((__deprecated__)) SS2 {
int x; int x;
INT1 y; /* { dg-warning "'INT1' is deprecated" "" } */ INT1 y; /* { dg-warning "'INT1' is deprecated" } */
}; };
struct SS2 *p2; /* { dg-warning "'SS2' is deprecated" "" } */ struct SS2 *p2; /* { dg-warning "'SS2' is deprecated" } */
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
...@@ -104,13 +104,13 @@ inline void T::member1(int) {} ...@@ -104,13 +104,13 @@ inline void T::member1(int) {}
int T::member2(T *p) int T::member2(T *p)
{ {
p->member1(1); /* { xxdg-warning "'member1' is deprecated" "" } */ p->member1(1); /* { xxdg-warning "'member1' is deprecated" } */
(*p).member1(2); /* { xxdg-warning "'member1' is deprecated" "" } */ (*p).member1(2); /* { xxdg-warning "'member1' is deprecated" } */
p->member2(1); /* { xxdg-warning "'member2' is deprecated" "" } */ p->member2(1); /* { xxdg-warning "'member2' is deprecated" } */
(*p).member2(2); /* { xxdg-warning "'member2' is deprecated" "" } */ (*p).member2(2); /* { xxdg-warning "'member2' is deprecated" } */
p->member3(p); p->member3(p);
(*p).member3(p); (*p).member3(p);
return f1(); /* { xxdg-warning "'f1' is deprecated" "" } */ return f1(); /* { xxdg-warning "'f1' is deprecated" } */
} }
#endif #endif
......
...@@ -4,6 +4,6 @@ ...@@ -4,6 +4,6 @@
/* GNU extension: PowerPC AltiVec Built-in Functions. /* GNU extension: PowerPC AltiVec Built-in Functions.
These should be rejected as invalid AltiVec types. */ These should be rejected as invalid AltiVec types. */
__vector _Decimal32 vd32; /* { dg-error "AltiVec types" "" } */ __vector _Decimal32 vd32; /* { dg-error "AltiVec types" } */
__vector _Decimal64 vd64; /* { dg-error "AltiVec types" "" } */ __vector _Decimal64 vd64; /* { dg-error "AltiVec types" } */
__vector _Decimal128 vd128; /* { dg-error "AltiVec types" "" } */ __vector _Decimal128 vd128; /* { dg-error "AltiVec types" } */
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
void void
f (void) f (void)
{ {
float a = 1e+100000000f; /* { dg-warning "floating constant exceeds range of 'float'" "" } */ float a = 1e+100000000f; /* { dg-warning "floating constant exceeds range of 'float'" } */
double b = 1e+100000000; /* { dg-warning "floating constant exceeds range of 'double'" } */ double b = 1e+100000000; /* { dg-warning "floating constant exceeds range of 'double'" } */
long double c = 1e+100000000l; /* { dg-warning "floating constant exceeds range of 'long double'" } */ long double c = 1e+100000000l; /* { dg-warning "floating constant exceeds range of 'long double'" } */
} }
...@@ -33,12 +33,12 @@ int ary2[sizeof (struct p2) == sizeof (p2_t1) ? 1 : -1]; ...@@ -33,12 +33,12 @@ int ary2[sizeof (struct p2) == sizeof (p2_t1) ? 1 : -1];
int ary3[sizeof (struct p1) == sizeof (struct p2) ? 1 : -1]; int ary3[sizeof (struct p1) == sizeof (struct p2) ? 1 : -1];
/* not ok */ /* not ok */
typedef struct u1 __attribute__ ((packed)) u1_t1; /* { dg-warning "attribute ignored" "" }*/ typedef struct u1 __attribute__ ((packed)) u1_t1; /* { dg-warning "attribute ignored" }*/
typedef struct u1 u1_t2 __attribute__ ((packed)); /* { dg-warning "attribute ignored" "" }*/ typedef struct u1 u1_t2 __attribute__ ((packed)); /* { dg-warning "attribute ignored" }*/
typedef struct p3 { typedef struct p3 {
char field1; char field1;
short field2; short field2;
int field3; int field3;
} p3_t1 __attribute__ ((packed)); /* { dg-warning "attribute ignored" "" }*/ } p3_t1 __attribute__ ((packed)); /* { dg-warning "attribute ignored" }*/
...@@ -5,7 +5,7 @@ int main( void ) ...@@ -5,7 +5,7 @@ int main( void )
{ {
unsigned int a; unsigned int a;
unsigned char b; unsigned char b;
for ( a = 0, b = 2; a > b * 100; a++ ) /* { dg-bogus "comparison between signed and unsigned integer" "" } */ for ( a = 0, b = 2; a > b * 100; a++ ) /* { dg-bogus "comparison between signed and unsigned integer" } */
{ ; } { ; }
return 0; return 0;
......
...@@ -15,10 +15,10 @@ extern int b = 1; /* { dg-warning "initialized and declared" "extern init warnin ...@@ -15,10 +15,10 @@ extern int b = 1; /* { dg-warning "initialized and declared" "extern init warnin
static int b; static int b;
static int b; static int b;
static int c; /* { dg-message "note: previous declaration" "" } */ static int c; /* { dg-message "note: previous declaration" } */
int c; /* { dg-error "non-static" "correct error" } */ int c; /* { dg-error "non-static" "correct error" } */
static int d; /* { dg-message "note: previous declaration" "" } */ static int d; /* { dg-message "note: previous declaration" } */
int d = 1; /* { dg-error "non-static" "correct error" } */ int d = 1; /* { dg-error "non-static" "correct error" } */
void foo (void) { extern int e = 1; } /* { dg-error "has both" "extern init in function" } */ void foo (void) { extern int e = 1; } /* { dg-error "has both" "extern init in function" } */
...@@ -16,7 +16,7 @@ int main (void) ...@@ -16,7 +16,7 @@ int main (void)
xLoc = xIn = ~ (1 << i); xLoc = xIn = ~ (1 << i);
xExpect = ~ (xIn & 0x7F); xExpect = ~ (xIn & 0x7F);
xOut = __sync_nand_and_fetch (&xLoc, 0x7F); /* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" } */ xOut = __sync_nand_and_fetch (&xLoc, 0x7F); /* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" } */
if (xOut != xExpect) if (xOut != xExpect)
abort (); abort ();
......
...@@ -50,9 +50,9 @@ fn4 (void) ...@@ -50,9 +50,9 @@ fn4 (void)
unsigned int *a[32], *o, i; unsigned int *a[32], *o, i;
bar (a); bar (a);
for (i = 0; i <= sizeof (a) / sizeof (a[0]); i++) /* { dg-message "note: within this loop" "" } */ for (i = 0; i <= sizeof (a) / sizeof (a[0]); i++) /* { dg-message "note: within this loop" } */
{ {
o = a[i]; /* { dg-warning "32 invokes undefined behavior" "" } */ o = a[i]; /* { dg-warning "32 invokes undefined behavior" } */
bar (o); bar (o);
} }
} }
...@@ -86,7 +86,7 @@ fn7 (void) ...@@ -86,7 +86,7 @@ fn7 (void)
{ {
int a[16], b, c; int a[16], b, c;
bar (a); bar (a);
for (b = a[c = 0]; c < 16; b = a[++c]) /* { dg-warning "15 invokes undefined behavior" "" } */ for (b = a[c = 0]; c < 16; b = a[++c]) /* { dg-warning "15 invokes undefined behavior" } */
baz (b); baz (b);
} }
......
...@@ -26,7 +26,7 @@ int baz (void) ...@@ -26,7 +26,7 @@ int baz (void)
if (!varseen) if (!varseen)
varseen = 1; varseen = 1;
jmp_buf *buf = bar (); /* { dg-bogus "may be used uninitialized" "" } */ jmp_buf *buf = bar (); /* { dg-bogus "may be used uninitialized" } */
setjmp (*buf); setjmp (*buf);
} }
......
...@@ -18,7 +18,7 @@ void enumerate_locals (int indent) ...@@ -18,7 +18,7 @@ void enumerate_locals (int indent)
if (local_indent != 8) if (local_indent != 8)
{ {
setjmp (buf); setjmp (buf);
bar (local_indent); /* { dg-bogus "may be used uninitialized" "" } */ bar (local_indent); /* { dg-bogus "may be used uninitialized" } */
} }
} }
foo (1); foo (1);
......
...@@ -75,7 +75,7 @@ void test5(void) ...@@ -75,7 +75,7 @@ void test5(void)
/* Extern then static, both at file scope. */ /* Extern then static, both at file scope. */
extern int test6(int); /* { dg-message "note: previous" "" } */ extern int test6(int); /* { dg-message "note: previous" } */
static int test6(int x) /* { dg-error "follows non-static" } */ static int test6(int x) /* { dg-error "follows non-static" } */
{ return x; } { return x; }
...@@ -84,7 +84,7 @@ static int test6(int x) /* { dg-error "follows non-static" } */ ...@@ -84,7 +84,7 @@ static int test6(int x) /* { dg-error "follows non-static" } */
void prime7(void) void prime7(void)
{ {
extern int test7(int); /* { dg-message "note: previous" "" } */ extern int test7(int); /* { dg-message "note: previous" } */
} }
static int test7(int x) /* { dg-error "follows non-static" } */ static int test7(int x) /* { dg-error "follows non-static" } */
...@@ -94,7 +94,7 @@ static int test7(int x) /* { dg-error "follows non-static" } */ ...@@ -94,7 +94,7 @@ static int test7(int x) /* { dg-error "follows non-static" } */
void prime8(void) void prime8(void)
{ {
test8(); /* { dg-message "note: previous" "" } */ test8(); /* { dg-message "note: previous" } */
/* { dg-warning "implicit" "implicit" { target *-*-* } .-1 } */ /* { dg-warning "implicit" "implicit" { target *-*-* } .-1 } */
} }
......
...@@ -31,7 +31,7 @@ do_qi (void) ...@@ -31,7 +31,7 @@ do_qi (void)
abort (); abort ();
if (__sync_fetch_and_xor(AI+10, 9) != 0) if (__sync_fetch_and_xor(AI+10, 9) != 0)
abort (); abort ();
if (__sync_fetch_and_nand(AI+11, 7) != (char)-1) /* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" } */ if (__sync_fetch_and_nand(AI+11, 7) != (char)-1) /* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" } */
abort (); abort ();
if (__sync_add_and_fetch(AI+12, 1) != 1) if (__sync_add_and_fetch(AI+12, 1) != 1)
...@@ -44,7 +44,7 @@ do_qi (void) ...@@ -44,7 +44,7 @@ do_qi (void)
abort (); abort ();
if (__sync_xor_and_fetch(AI+16, 9) != 9) if (__sync_xor_and_fetch(AI+16, 9) != 9)
abort (); abort ();
if (__sync_nand_and_fetch(AI+17, 7) != (char)~7) /* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" } */ if (__sync_nand_and_fetch(AI+17, 7) != (char)~7) /* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" } */
abort (); abort ();
} }
......
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
/* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ /* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */
typedef int x, y; typedef int x, y;
x y z; /* { dg-error "" "" } */ x y z; /* { dg-error "" } */
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
/* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ /* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */
typedef int x, y; typedef int x, y;
x struct f z; /* { dg-error "two or more " "" } */ x struct f z; /* { dg-error "two or more " } */
...@@ -5,5 +5,5 @@ int f() ...@@ -5,5 +5,5 @@ int f()
{ {
struct f { struct f {
} }
int z; /* { dg-error "expected ';', identifier or " "" } */ int z; /* { dg-error "expected ';', identifier or " } */
} }
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
/* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ /* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */
struct f {} struct f {}
struct g {} /* { dg-error "expected ';', identifier or " "" } */ struct g {} /* { dg-error "expected ';', identifier or " } */
int f(); /* { dg-error "expected ';', identifier or " "" } */ int f(); /* { dg-error "expected ';', identifier or " } */
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
/* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ /* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */
struct s { struct s {
struct f {} /* dg-warning "does not declare anything" "" } */ struct f {} /* dg-warning "does not declare anything" } */
struct g {} x; /* { dg-error "expected ';', identifier or " "" } */ struct g {} x; /* { dg-error "expected ';', identifier or " } */
}; };
...@@ -3,6 +3,6 @@ ...@@ -3,6 +3,6 @@
struct s { struct s {
struct f {} struct f {}
enum a { X } /* { dg-error "expected ';', identifier or " "" } */ enum a { X } /* { dg-error "expected ';', identifier or " } */
struct g {} /* { dg-error "expected identifier " "" } */ struct g {} /* { dg-error "expected identifier " } */
}; /* { dg-warning "no semicolon" "" } */ }; /* { dg-warning "no semicolon" } */
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
/* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ /* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */
enum x { XYZ } enum x { XYZ }
struct g { enum x a; }; /* { dg-error "expected ';', identifier or " "" } */ struct g { enum x a; }; /* { dg-error "expected ';', identifier or " } */
int f(struct g *x) int f(struct g *x)
{ {
return x->a == XYZ; /* { dg-bogus " has no member " "" } */ return x->a == XYZ; /* { dg-bogus " has no member " } */
} }
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
/* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */ /* { dg-options "-std=gnu89" } // suppress default -pedantic-errors */
struct f {} struct f {}
static int a, b; /* { dg-error "expected ';', identifier or " "" } */ static int a, b; /* { dg-error "expected ';', identifier or " } */
int f() int f()
{ {
return a - b; /* { dg-bogus "invalid operands " "" } */ return a - b; /* { dg-bogus "invalid operands " } */
} }
...@@ -4,5 +4,5 @@ ...@@ -4,5 +4,5 @@
int sys_msgctl (void) int sys_msgctl (void)
{ {
struct { int mode; } setbuf; struct { int mode; } setbuf;
return setbuf.mode; /* { dg-warning "'setbuf\.mode' is used" "" } */ return setbuf.mode; /* { dg-warning "'setbuf\.mode' is used" } */
} }
...@@ -29,7 +29,7 @@ void frob(int *pi); ...@@ -29,7 +29,7 @@ void frob(int *pi);
int main(void) int main(void)
{ {
int i; int i;
printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" "" } */ printf("i = %d\n", i); /* { dg-warning "'i' is used uninitialized in this function" } */
frob(&i); frob(&i);
return 0; return 0;
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
extern int extern int
__attribute__((visibility ("hidden"))) __attribute__((visibility ("hidden")))
xyzzy; /* { dg-message "note: previous declaration" "" } */ xyzzy; /* { dg-message "note: previous declaration" } */
int int
__attribute__((visibility ("protected"))) __attribute__((visibility ("protected")))
xyzzy = 5; /* { dg-warning "different visibility" "" } */ xyzzy = 5; /* { dg-warning "different visibility" } */
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
struct s { int a; }; struct s { int a; };
inline void f (x) /* { dg-warning "inlining .* mismatched arg" "" } */ inline void f (x) /* { dg-warning "inlining .* mismatched arg" } */
int x; int x;
{ {
asm (""); asm ("");
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-Winline -O2 -fgnu89-inline" } */ /* { dg-options "-Winline -O2 -fgnu89-inline" } */
inline int q(void); /* { dg-warning "body not available" "" } */ inline int q(void); /* { dg-warning "body not available" } */
inline int t(void) inline int t(void)
{ {
return q(); /* { dg-message "called from here" } */ return q(); /* { dg-message "called from here" } */
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/* { dg-options "-Winline -O2 --param max-inline-insns-single=1 --param inline-min-speedup=100 -fgnu89-inline" } */ /* { dg-options "-Winline -O2 --param max-inline-insns-single=1 --param inline-min-speedup=100 -fgnu89-inline" } */
void big (void); void big (void);
inline int q(void) /* { dg-warning "max-inline-insns-single" "" } */ inline int q(void) /* { dg-warning "max-inline-insns-single" } */
{ {
big(); big();
big(); big();
......
...@@ -10,7 +10,7 @@ int aa (void) ...@@ -10,7 +10,7 @@ int aa (void)
test(t); test(t);
} }
static inline static inline
int bb (void) /* { dg-warning "large-stack-frame" "" } */ int bb (void) /* { dg-warning "large-stack-frame" } */
{ {
char t[100]; char t[100];
test(t); test(t);
......
...@@ -7,7 +7,7 @@ void g(int); ...@@ -7,7 +7,7 @@ void g(int);
int int
main (void) main (void)
{ {
register int reg asm ("esi") = 1; /* { dg-warning "might be clobbered" "" } */ register int reg asm ("esi") = 1; /* { dg-warning "might be clobbered" } */
if (!newsetjmp ()) if (!newsetjmp ())
{ {
......
...@@ -4,5 +4,5 @@ ...@@ -4,5 +4,5 @@
int test (int *p) int test (int *p)
{ {
p = (int *)__builtin___bnd_set_ptr_bounds (p, sizeof (int)); p = (int *)__builtin___bnd_set_ptr_bounds (p, sizeof (int));
return *(p + 1); /* { dg-warning "memory access check always fail" "" } */ return *(p + 1); /* { dg-warning "memory access check always fail" } */
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <stdio.h> #include <stdio.h>
static int f1 () /* { dg-warning "function cannot be instrumented" "" } */ static int f1 () /* { dg-warning "function cannot be instrumented" } */
{ {
static int array = &&label_B - &&label_A; static int array = &&label_B - &&label_A;
......
...@@ -12,5 +12,5 @@ struct S ...@@ -12,5 +12,5 @@ struct S
int test (struct S *ps) int test (struct S *ps)
{ {
int *pi = &ps->b; int *pi = &ps->b;
return *(pi + 1); /* { dg-warning "memory access check always fail" "" } */ return *(pi + 1); /* { dg-warning "memory access check always fail" } */
} }
...@@ -8,7 +8,7 @@ typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__)); ...@@ -8,7 +8,7 @@ typedef long long __m256i __attribute__ ((__vector_size__ (32), __may_alias__));
extern __m256i y; extern __m256i y;
void void
bar (__m256i x) /* { dg-warning "AVX" "" } */ bar (__m256i x) /* { dg-warning "AVX" } */
{ {
y = x; y = x;
} }
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
typedef double v2df __attribute__ ((vector_size (16))); typedef double v2df __attribute__ ((vector_size (16)));
v2df p; v2df p;
void q(v2df t) /* { dg-warning "SSE" "" } */ void q(v2df t) /* { dg-warning "SSE" } */
{ {
p=t; p=t;
} }
...@@ -28,64 +28,64 @@ __vector _Bool vb; ...@@ -28,64 +28,64 @@ __vector _Bool vb;
/* These should be rejected as invalid AltiVec types. */ /* These should be rejected as invalid 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 "" } */
/* { dg-message "note: previous" "prev vsf" { target *-*-* } 79 } */ /* { dg-message "note: previous" "prev vsf" { target *-*-* } 79 } */
/* { dg-message "note: previous" "prev vsd" { target *-*-* } 82 } */ /* { dg-message "note: previous" "prev vsd" { target *-*-* } 82 } */
...@@ -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" } */
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
/* Test to make sure that __float128 and long double cannot be combined together. */ /* Test to make sure that __float128 and long double cannot be combined together. */
__float128 add (__float128 a, long double b) __float128 add (__float128 a, long double b)
{ {
return a+b; /* { dg-error "__float128 and long double cannot be used in the same expression" "" } */ return a+b; /* { dg-error "__float128 and long double cannot be used in the same expression" } */
} }
__ibm128 sub (long double a, __float128 b) __ibm128 sub (long double a, __float128 b)
{ {
return a-b; /* { dg-error "__float128 and long double cannot be used in the same expression" "" } */ return a-b; /* { dg-error "__float128 and long double cannot be used in the same expression" } */
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
extern void ext_call (int (func) (void)); extern void ext_call (int (func) (void));
int int
outer_func (int init) /* { dg-error "-mno-pointers-to-nested-functions option" "" } */ outer_func (int init) /* { dg-error "-mno-pointers-to-nested-functions option" } */
{ {
int value = init; int value = init;
......
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-Wmain -mstdmain" } */ /* { dg-options "-Wmain -mstdmain" } */
int main (void *wrong)/* { dg-warning "first argument of 'main' should be 'int'" "" } */ int main (void *wrong)/* { dg-warning "first argument of 'main' should be 'int'" } */
{ {
/* { dg-warning "'main' takes only zero or two arguments" "" { target *-*-* } 4 } */ /* { dg-warning "'main' takes only zero or two arguments" "" { target *-*-* } 4 } */
} }
...@@ -60,7 +60,7 @@ struct foo ea_struct3 = { ...@@ -60,7 +60,7 @@ struct foo ea_struct3 = {
struct foo ea_struct4 = { struct foo ea_struct4 = {
40, 40,
(__ea char *)lm_str, /* { dg-error "(initializer element is not constant)|(near initialization)" "" } */ (__ea char *)lm_str, /* { dg-error "(initializer element is not constant)|(near initialization)" } */
41, 41,
}; };
......
...@@ -12,7 +12,7 @@ integer, target :: t, s ...@@ -12,7 +12,7 @@ integer, target :: t, s
t = 1 t = 1
p => s p => s
! We didn't dereference the pointer in the following line. ! We didn't dereference the pointer in the following line.
p = f() ! { dg-warning "POINTER-valued function" "" } p = f() ! { dg-warning "POINTER-valued function" }
p = p+1 p = p+1
if (p.ne.2) call abort() if (p.ne.2) call abort()
if (p.ne.s) call abort() if (p.ne.s) call abort()
......
! { dg-do compile } ! { dg-do compile }
! Check that equivalences match common block layout. ! Check that equivalences match common block layout.
program common_3 program common_3
common /block/ a, b, c, d ! { dg-error "not match ordering" "" } common /block/ a, b, c, d ! { dg-error "not match ordering" }
integer a, b, c, d, n integer a, b, c, d, n
dimension n(4) dimension n(4)
equivalence (a, n(1)) equivalence (a, n(1))
......
...@@ -11,7 +11,7 @@ program der_io_1 ...@@ -11,7 +11,7 @@ program der_io_1
v%p => i v%p => i
i = 42 i = 42
write (unit=s, fmt='(I2)') v ! { dg-error "POINTER components" "" } write (unit=s, fmt='(I2)') v ! { dg-error "POINTER components" }
if (s .ne. '42') call abort () if (s .ne. '42') call abort ()
end program end program
...@@ -6,5 +6,5 @@ ...@@ -6,5 +6,5 @@
! For gfortran, see PR 13490 ! For gfortran, see PR 13490
! !
integer c integer c
c = -2147483648_4 / (-1) ! { dg-error "too big for its kind" "" } c = -2147483648_4 / (-1) ! { dg-error "too big for its kind" }
end end
...@@ -3,9 +3,9 @@ C { dg-do compile } ...@@ -3,9 +3,9 @@ C { dg-do compile }
PARAMETER (P=10) PARAMETER (P=10)
INTEGER C(10),D(10),E(10),F(10) INTEGER C(10),D(10),E(10),F(10)
C TERMINAL NOT INTEGER C TERMINAL NOT INTEGER
DATA (C(I),I=1,P) /10*10/ ! { dg-error "End expression in DO loop" "" } DATA (C(I),I=1,P) /10*10/ ! { dg-error "End expression in DO loop" }
C START NOT INTEGER C START NOT INTEGER
DATA (D(I),I=Q,10) /10*10/ ! { dg-error "Start expression in DO loop" "" } DATA (D(I),I=Q,10) /10*10/ ! { dg-error "Start expression in DO loop" }
C INCREMENT NOT INTEGER C INCREMENT NOT INTEGER
DATA (E(I),I=1,10,Q) /10*10/ ! { dg-error "Step expression in DO loop" "" } DATA (E(I),I=1,10,Q) /10*10/ ! { dg-error "Step expression in DO loop" }
END END
...@@ -14,7 +14,7 @@ C ...@@ -14,7 +14,7 @@ C
SUBROUTINE QUICK SUBROUTINE QUICK
SAVE SAVE
C C
ASSIGN 101 TO JUMP ! { dg-warning "Deleted feature: ASSIGN" "" } ASSIGN 101 TO JUMP ! { dg-warning "Deleted feature: ASSIGN" }
101 Continue 101 Continue
C C
RETURN RETURN
......
...@@ -52,22 +52,22 @@ ...@@ -52,22 +52,22 @@
LOGICAL REAL LOGICAL REAL
REAL LOGICAL REAL LOGICAL
INTEGER INTEGER, STOP, RETURN, GO TO INTEGER INTEGER, STOP, RETURN, GO TO
ASSIGN 9 TO STOP ! { dg-warning "ASSIGN" "" } ASSIGN 9 TO STOP ! { dg-warning "ASSIGN" }
ASSIGN = 9 + LOGICAL ASSIGN = 9 + LOGICAL
ASSIGN 7 TO RETURN ! { dg-warning "ASSIGN" "" } ASSIGN 7 TO RETURN ! { dg-warning "ASSIGN" }
ASSIGN 9 TO GO TO ! { dg-warning "ASSIGN" "" } ASSIGN 9 TO GO TO ! { dg-warning "ASSIGN" }
GO TO = 5 GO TO = 5
STOP = 8 STOP = 8
IF (.NOT.REAL) GOTO STOP ! { dg-warning "Assigned GOTO" "" } IF (.NOT.REAL) GOTO STOP ! { dg-warning "Assigned GOTO" }
IF (LOGICAL.GT.INTEGER) THEN IF (LOGICAL.GT.INTEGER) THEN
IF = LOGICAL +5 IF = LOGICAL +5
IF (LOGICAL.EQ.5) ASSIGN 5 TO IF ! { dg-warning "ASSIGN" "" } IF (LOGICAL.EQ.5) ASSIGN 5 TO IF ! { dg-warning "ASSIGN" }
INTEGER=IF INTEGER=IF
ELSE ELSE
IF (ASSIGN.GT.STOP) ASSIGN 9 TO GOTO ! { dg-warning "ASSIGN" "" } IF (ASSIGN.GT.STOP) ASSIGN 9 TO GOTO ! { dg-warning "ASSIGN" }
ELSE = GO TO ELSE = GO TO
END IF = ELSE + GO TO END IF = ELSE + GO TO
IF (.NOT.REAL.AND.GOTO.GT.ELSE) GOTO RETURN ! { dg-warning "Assigned GOTO" "" } IF (.NOT.REAL.AND.GOTO.GT.ELSE) GOTO RETURN ! { dg-warning "Assigned GOTO" }
END IF END IF
5 CONTINUE 5 CONTINUE
7 LOGICAL=LOGICAL+STOP 7 LOGICAL=LOGICAL+STOP
......
...@@ -8,5 +8,5 @@ c { dg-do compile } ...@@ -8,5 +8,5 @@ c { dg-do compile }
CaLL foo(W) CaLL foo(W)
END END
SUBROUTINE foo(W) SUBROUTINE foo(W)
yy(I)=A(I)Q(X) ! { dg-error "Unclassifiable statement" "" } yy(I)=A(I)Q(X) ! { dg-error "Unclassifiable statement" }
c { dg-error "end of file" "end of file" { target *-*-* } 0 } c { dg-error "end of file" "end of file" { target *-*-* } 0 }
...@@ -8,7 +8,7 @@ CCC * stmt.c (check_seenlabel): When search for line number note for ...@@ -8,7 +8,7 @@ CCC * stmt.c (check_seenlabel): When search for line number note for
CCC warning, handle case where there is no such note. CCC warning, handle case where there is no such note.
logical l(10) logical l(10)
integer i(10) integer i(10)
goto (10,20),l ! { dg-error "Selection expression in computed GOTO" "" } goto (10,20),l ! { dg-error "Selection expression in computed GOTO" }
goto (10,20),i ! { dg-error "Selection expression in computed GOTO" "" } goto (10,20),i ! { dg-error "Selection expression in computed GOTO" }
10 stop 10 stop
20 end 20 end
...@@ -33,21 +33,21 @@ c current Netlib BLAS.) ...@@ -33,21 +33,21 @@ c current Netlib BLAS.)
if(n .gt. 0 .and. incx.gt.0) go to 10 if(n .gt. 0 .and. incx.gt.0) go to 10
dnrm2 = zero dnrm2 = zero
go to 300 go to 300
10 assign 30 to next ! { dg-warning "ASSIGN" "" } 10 assign 30 to next ! { dg-warning "ASSIGN" }
sum = zero sum = zero
i = 1 i = 1
ix = 1 ix = 1
20 go to next,(30, 50, 70, 110) ! { dg-warning "Assigned GOTO" "" } 20 go to next,(30, 50, 70, 110) ! { dg-warning "Assigned GOTO" }
30 if( dabs(dx(i)) .gt. cutlo) go to 85 30 if( dabs(dx(i)) .gt. cutlo) go to 85
assign 50 to next ! { dg-warning "ASSIGN" "" } assign 50 to next ! { dg-warning "ASSIGN" }
xmax = zero xmax = zero
50 if( dx(i) .eq. zero) go to 200 50 if( dx(i) .eq. zero) go to 200
if( dabs(dx(i)) .gt. cutlo) go to 85 if( dabs(dx(i)) .gt. cutlo) go to 85
assign 70 to next ! { dg-warning "ASSIGN" "" } assign 70 to next ! { dg-warning "ASSIGN" }
go to 105 go to 105
100 continue 100 continue
ix = j ix = j
assign 110 to next ! { dg-warning "ASSIGN" "" } assign 110 to next ! { dg-warning "ASSIGN" }
sum = (sum / dx(i)) / dx(i) sum = (sum / dx(i)) / dx(i)
105 xmax = dabs(dx(i)) 105 xmax = dabs(dx(i))
go to 115 go to 115
......
...@@ -5,14 +5,14 @@ C { dg-do compile } ...@@ -5,14 +5,14 @@ C { dg-do compile }
SUBROUTINE FOO (B) SUBROUTINE FOO (B)
10 CALL BAR (A) 10 CALL BAR (A)
ASSIGN 20 TO M !{ dg-warning "Deleted feature: ASSIGN" "" } ASSIGN 20 TO M !{ dg-warning "Deleted feature: ASSIGN" }
IF (100.LT.A) GOTO 10 IF (100.LT.A) GOTO 10
GOTO 40 GOTO 40
C C
20 IF (B.LT.ABS(A)) GOTO 10 20 IF (B.LT.ABS(A)) GOTO 10
ASSIGN 30 TO M !{ dg-warning "Deleted feature: ASSIGN" "" } ASSIGN 30 TO M !{ dg-warning "Deleted feature: ASSIGN" }
GOTO 40 GOTO 40
C C
30 ASSIGN 10 TO M !{ dg-warning "Deleted feature: ASSIGN" "" } 30 ASSIGN 10 TO M !{ dg-warning "Deleted feature: ASSIGN" }
40 GOTO M,(10,20,30) !{ dg-warning "Deleted feature: Assigned GOTO" "" } 40 GOTO M,(10,20,30) !{ dg-warning "Deleted feature: Assigned GOTO" }
END END
...@@ -45,23 +45,23 @@ program ichar_1 ...@@ -45,23 +45,23 @@ program ichar_1
g2(1,1) = 'a' g2(1,1) = 'a'
if (ichar(g2(1,1)) /= 97) call abort if (ichar(g2(1,1)) /= 97) call abort
i = ichar(c) ! { dg-error "must be of length one" "" } i = ichar(c) ! { dg-error "must be of length one" }
i = ichar(c(:)) ! { dg-error "must be of length one" "" } i = ichar(c(:)) ! { dg-error "must be of length one" }
i = ichar(s2) ! { dg-error "must be of length one" "" } i = ichar(s2) ! { dg-error "must be of length one" }
i = ichar(c(1:2)) ! { dg-error "must be of length one" "" } i = ichar(c(1:2)) ! { dg-error "must be of length one" }
i = ichar(c(1:)) ! { dg-error "must be of length one" "" } i = ichar(c(1:)) ! { dg-error "must be of length one" }
i = ichar('abc') ! { dg-error "must be of length one" "" } i = ichar('abc') ! { dg-error "must be of length one" }
! ichar and iachar use the same checking routines. DO a couple of tests to ! ichar and iachar use the same checking routines. DO a couple of tests to
! make sure it's not totally broken. ! make sure it's not totally broken.
if (ichar(c(3:3)) /= 97) call abort if (ichar(c(3:3)) /= 97) call abort
i = ichar(c) ! { dg-error "must be of length one" "" } i = ichar(c) ! { dg-error "must be of length one" }
i = ichar(dt%addr(1:1)) i = ichar(dt%addr(1:1))
i = ichar(dt%addr) ! { dg-error "must be of length one" "" } i = ichar(dt%addr) ! { dg-error "must be of length one" }
i = ichar(dt%addr(1:2)) ! { dg-error "must be of length one" "" } i = ichar(dt%addr(1:2)) ! { dg-error "must be of length one" }
i = ichar(dt%addr(1:)) ! { dg-error "must be of length one" "" } i = ichar(dt%addr(1:)) ! { dg-error "must be of length one" }
i = ichar(dt1%addr(1:1)) i = ichar(dt1%addr(1:1))
i = ichar(dt1%addr) i = ichar(dt1%addr)
......
...@@ -32,7 +32,7 @@ module z ...@@ -32,7 +32,7 @@ module z
contains contains
real function f(a) ! { dg-warning "in generic interface" "" } real function f(a) ! { dg-warning "in generic interface" }
real a real a
f = a f = a
end function end function
......
...@@ -3,5 +3,5 @@ ...@@ -3,5 +3,5 @@
module namelist_1 module namelist_1
public public
integer,private :: x integer,private :: x
namelist /n/ x ! { dg-error "cannot be member of PUBLIC namelist" "" } namelist /n/ x ! { dg-error "cannot be member of PUBLIC namelist" }
end module end module
...@@ -3,5 +3,5 @@ ...@@ -3,5 +3,5 @@
subroutine namelist_2(x) subroutine namelist_2(x)
integer,intent(in) :: x integer,intent(in) :: x
namelist /n/ x namelist /n/ x
read(*,n) ! { dg-error "is INTENT" "" } read(*,n) ! { dg-error "is INTENT" }
end subroutine namelist_2 end subroutine namelist_2
...@@ -4,5 +4,5 @@ ...@@ -4,5 +4,5 @@
program namelist_3 program namelist_3
integer,pointer :: x integer,pointer :: x
allocate (x) allocate (x)
namelist /n/ x ! { dg-error "NAMELIST attribute with POINTER attribute" "" } namelist /n/ x ! { dg-error "NAMELIST attribute with POINTER attribute" }
end program namelist_3 end program namelist_3
...@@ -9,5 +9,5 @@ ...@@ -9,5 +9,5 @@
real x real x
namelist /mynml/ x namelist /mynml/ x
x = 1 x = 1
print mynml ! { dg-error "PRINT namelist.*extension" "" } print mynml ! { dg-error "PRINT namelist.*extension" }
end end
! { dg-do run } ! { dg-do run }
integer i, j /1/, g/2/, h ! { dg-warning "" "" } integer i, j /1/, g/2/, h ! { dg-warning "" }
integer k, l(3) /2*2,1/ ! { dg-warning "" "" } integer k, l(3) /2*2,1/ ! { dg-warning "" }
real pi /3.1416/, e ! { dg-warning "" "" } real pi /3.1416/, e ! { dg-warning "" }
if (j /= 1) call abort () if (j /= 1) call abort ()
if (g /= 2) call abort () if (g /= 2) call abort ()
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
! !
character(5) c character(5) c
open (42,status='scratch') open (42,status='scratch')
write (42,'(A,$)') 'abc' ! { dg-warning ".*descriptor" "" } write (42,'(A,$)') 'abc' ! { dg-warning ".*descriptor" }
write (42,'(A)') 'de' write (42,'(A)') 'de'
rewind (42) rewind (42)
read (42,'(A)') c read (42,'(A)') c
......
! { dg-do compile } ! { dg-do compile }
program a program a
real x real x
x = tiny(x) / huge(x) ! { dg-warning "Arithmetic underflow" "" } x = tiny(x) / huge(x) ! { dg-warning "Arithmetic underflow" }
end program a end program a
-- { dg-do compile } -- { dg-do compile }
package Integer_Value is package Integer_Value is
X : constant Integer := X : constant Integer :=
Integer'Integer_Value (12.8); -- { dg-error "fixed-point type" "" } Integer'Integer_Value (12.8); -- { dg-error "fixed-point type" }
end Integer_Value; end Integer_Value;
...@@ -32,5 +32,5 @@ void foo (void) ...@@ -32,5 +32,5 @@ void foo (void)
a->v2 = 1; a->v2 = 1;
a->v3 = [a value] - a->v2; /* { dg-warning ".v3. is @protected" } */ a->v3 = [a value] - a->v2; /* { dg-warning ".v3. is @protected" } */
a->v4 = a->v3 - 1; /* { dg-warning ".v4. is @private" } */ a->v4 = a->v3 - 1; /* { dg-warning ".v4. is @private" } */
/* { dg-warning ".v3. is @protected" "" } */ /* { dg-warning ".v3. is @protected" } */
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
@interface foo @interface foo
struct f {} struct f {}
struct g { int a; }; /* { dg-error "expected ';', identifier or " "" } */ struct g { int a; }; /* { dg-error "expected ';', identifier or " } */
- (struct f *) a; - (struct f *) a;
- (struct g *) b; - (struct g *) b;
...@@ -11,5 +11,5 @@ struct g { int a; }; /* { dg-error "expected ';', identifier or " "" } */ ...@@ -11,5 +11,5 @@ struct g { int a; }; /* { dg-error "expected ';', identifier or " "" } */
int f(struct g *x) int f(struct g *x)
{ {
return x->a; /* { dg-bogus " has no member " "" } */ return x->a; /* { dg-bogus " has no member " } */
} }
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