diff options
Diffstat (limited to 'gcc/testsuite')
321 files changed, 2797 insertions, 1384 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 849db2e2df6..247d214cb47 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,406 @@ +2008-09-18 Bob Wilson <bob.wilson@acm.org> + + * gcc.c-torture/compile/pr11832.c: xfail on xtensa*-*-*. + * gcc.c-torture/compile/pr33009.c: Likewise. + +2008-09-18 Janis Johnson <janis187@us.ibm.com> + + PR testsuite/25241 + * lib/g++.exp (g++_init): Enable overrides of dg-error, dg-warning + for C++ tests. + * g++.dg/conversion/ambig1.C: Clean up dg-error/dg-warning; use + dg-message for notes. + * g++.dg/conversion/simd1.C: Ditto. + * g++.dg/conversion/simd3.C: Ditto. + * g++.dg/cpp0x/rv2n.C: Ditto. + * g++.dg/cpp0x/rv3n.C: Ditto. + * g++.dg/cpp0x/rv4n.C: Ditto. + * g++.dg/cpp0x/rv5n.C: Ditto. + * g++.dg/cpp0x/rv6n.C: Ditto. + * g++.dg/cpp0x/rv7n.C: Ditto. + * g++.dg/cpp0x/variadic36.C: Ditto. + * g++.dg/cpp0x/variadic59.C: Ditto. + * g++.dg/cpp0x/variadic71.C: Ditto. + * g++.dg/cpp0x/variadic-ex13.C: Ditto. + * g++.dg/expr/cond9.C: Ditto. + * g++.dg/expr/pmf-1.C: Ditto. + * g++.dg/ext/case-range2.C: Ditto. + * g++.dg/ext/case-range3.C: Ditto. + * g++.dg/ext/is_class_error2.C: Ditto. + * g++.dg/ext/label5.C: Ditto. + * g++.dg/ext/pr27019.C: Ditto. + * g++.dg/gomp/pr26690-1.C: Ditto. + * g++.dg/gomp/pr26690-2.C: Ditto. + * g++.dg/gomp/pr34694.C: Ditto. + * g++.dg/gomp/tpl-parallel-2.C: Ditto. + * g++.dg/inherit/base3.C: Ditto. + * g++.dg/inherit/using6.C: Ditto. + * g++.dg/init/brace6.C: Ditto. + * g++.dg/init/ctor4.C: Ditto. + * g++.dg/lookup/conv-1.C: Ditto. + * g++.dg/lookup/new1.C: Ditto. + * g++.dg/lookup/scoped6.C: Ditto. + * g++.dg/lookup/using7.C: Ditto. + * g++.dg/lookup/using9.C: Ditto. + * g++.dg/other/abstract1.C: Ditto. + * g++.dg/other/abstract2.C: Ditto. + * g++.dg/other/anon5.C: Ditto. + * g++.dg/other/crash-4.C: Ditto. + * g++.dg/other/error10.C: Ditto. + * g++.dg/other/error13.C: Ditto. + * g++.dg/other/error20.C: Ditto. + * g++.dg/other/error5.C: Ditto. + * g++.dg/other/field1.C: Ditto. + * g++.dg/other/offsetof5.C: Ditto. + * g++.dg/other/semicolon.C: Ditto. + * g++.dg/overload/ambig1.C: Ditto. + * g++.dg/overload/arg3.C: Ditto. + * g++.dg/overload/builtin1.C: Ditto. + * g++.dg/overload/copy1.C: Ditto. + * g++.dg/overload/new1.C: Ditto. + * g++.dg/overload/template4.C: Ditto. + * g++.dg/overload/using2.C: Ditto. + * g++.dg/parse/bitfield2.C: Ditto. + * g++.dg/parse/constant4.C: Ditto. + * g++.dg/parse/crash20.C: Ditto. + * g++.dg/parse/crash36.C: Ditto. + * g++.dg/parse/crash5.C: Ditto. + * g++.dg/parse/error11.C: Ditto. + * g++.dg/parse/error12.C: Ditto. + * g++.dg/parse/error19.C: Ditto. + * g++.dg/parse/error28.C: Ditto. + * g++.dg/parse/friend5.C: Ditto. + * g++.dg/parse/invalid-op1.C: Ditto. + * g++.dg/parse/missing-template1.C: Ditto. + * g++.dg/parse/non-dependent2.C: Ditto. + * g++.dg/parse/ret-type2.C: Ditto. + * g++.dg/parse/specialization1.C: Ditto. + * g++.dg/parse/template18.C: Ditto. + * g++.dg/parse/template3.C: Ditto. + * g++.dg/parse/template9.C: Ditto. + * g++.dg/tc1/dr108.C: Ditto. + * g++.dg/tc1/dr152.C: Ditto. + * g++.dg/tc1/dr166.C: Ditto. + * g++.dg/template/access11.C: Ditto. + * g++.dg/template/access2.C: Ditto. + * g++.dg/template/access3.C: Ditto. + * g++.dg/template/access7.C: Ditto. + * g++.dg/template/copy1.C: Ditto. + * g++.dg/template/crash13.C: Ditto. + * g++.dg/template/crash37.C: Ditto. + * g++.dg/template/crash40.C: Ditto. + * g++.dg/template/crash58.C: Ditto. + * g++.dg/template/ctor5.C: Ditto. + * g++.dg/template/dependent-expr5.C: Ditto. + * g++.dg/template/eh2.C: Ditto. + * g++.dg/template/error2.C: Ditto. + * g++.dg/template/error33.C: Ditto. + * g++.dg/template/error4.C: Ditto. + * g++.dg/template/friend31.C: Ditto. + * g++.dg/template/friend32.C: Ditto. + * g++.dg/template/instantiate1.C: Ditto. + * g++.dg/template/instantiate3.C: Ditto. + * g++.dg/template/instantiate5.C: Ditto. + * g++.dg/template/instantiate7.C: Ditto. + * g++.dg/template/local6.C: Ditto. + * g++.dg/template/lookup2.C: Ditto. + * g++.dg/template/member5.C: Ditto. + * g++.dg/template/memfriend15.C: Ditto. + * g++.dg/template/memfriend16.C: Ditto. + * g++.dg/template/memfriend17.C: Ditto. + * g++.dg/template/memfriend7.C: Ditto. + * g++.dg/template/meminit1.C: Ditto. + * g++.dg/template/nested3.C: Ditto. + * g++.dg/template/new3.C: Ditto. + * g++.dg/template/nontype12.C: Ditto. + * g++.dg/template/nontype13.C: Ditto. + * g++.dg/template/nontype6.C: Ditto. + * g++.dg/template/non-type-template-argument-1.C: Ditto. + * g++.dg/template/overload9.C: Ditto. + * g++.dg/template/ptrmem15.C: Ditto. + * g++.dg/template/ptrmem17.C: Ditto. + * g++.dg/template/ptrmem4.C: Ditto. + * g++.dg/template/ptrmem6.C: Ditto. + * g++.dg/template/ptrmem8.C: Ditto. + * g++.dg/template/qualified-id1.C: Ditto. + * g++.dg/template/qualttp20.C: Ditto. + * g++.dg/template/qualttp3.C: Ditto. + * g++.dg/template/qualttp4.C: Ditto. + * g++.dg/template/qualttp5.C: Ditto. + * g++.dg/template/qualttp6.C: Ditto. + * g++.dg/template/qualttp7.C: Ditto. + * g++.dg/template/qualttp8.C: Ditto. + * g++.dg/template/recurse.C: Ditto. + * g++.dg/template/sfinae10.C: Ditto. + * g++.dg/template/sfinae3.C: Ditto. + * g++.dg/template/spec22.C: Ditto. + * g++.dg/template/spec23.C: Ditto. + * g++.dg/template/static9.C: Ditto. + * g++.dg/template/template-id-2.C: Ditto. + * g++.dg/template/typename2.C: Ditto. + * g++.dg/template/typename4.C: Ditto. + * g++.dg/template/using14.C: Ditto. + * g++.dg/template/using2.C: Ditto. + * g++.dg/template/warn1.C: Ditto. + * g++.dg/warn/incomplete1.C: Ditto. + * g++.dg/warn/noeffect2.C: Ditto. + * g++.dg/warn/noeffect4.C: Ditto. + * g++.dg/warn/pr8570.C: Ditto. + * g++.dg/warn/Wparentheses-13.C: Ditto. + * g++.dg/warn/Wparentheses-15.C: Ditto. + * g++.dg/warn/Wparentheses-16.C: Ditto. + * g++.dg/warn/Wparentheses-17.C: Ditto. + * g++.dg/warn/Wparentheses-18.C: Ditto. + * g++.dg/warn/Wparentheses-19.C: Ditto. + * g++.dg/warn/Wparentheses-20.C: Ditto. + * g++.dg/warn/Wparentheses-23.C: Ditto. + * g++.dg/warn/Wstrict-aliasing-3.C: Ditto. + * g++.old-deja/g++.benjamin/15799.C: Ditto. + * g++.old-deja/g++.benjamin/15800-1.C: Ditto. + * g++.old-deja/g++.benjamin/16077.C: Ditto. + * g++.old-deja/g++.bob/inherit2.C: Ditto. + * g++.old-deja/g++.brendan/ambiguity1.C: Ditto. + * g++.old-deja/g++.brendan/crash29.C: Ditto. + * g++.old-deja/g++.brendan/crash48.C: Ditto. + * g++.old-deja/g++.brendan/crash56.C: Ditto. + * g++.old-deja/g++.brendan/cvt3.C: Ditto. + * g++.old-deja/g++.brendan/overload1.C: Ditto. + * g++.old-deja/g++.brendan/overload4.C: Ditto. + * g++.old-deja/g++.brendan/overload9.C: Ditto. + * g++.old-deja/g++.bugs/900127_01.C: Ditto. + * g++.old-deja/g++.bugs/900205_04.C: Ditto. + * g++.old-deja/g++.bugs/900330_02.C: Ditto. + * g++.old-deja/g++.bugs/900404_03.C: Ditto. + * g++.old-deja/g++.bugs/900514_03.C: Ditto. + * g++.old-deja/g++.eh/ctor1.C: Ditto. + * g++.old-deja/g++.eh/spec6.C: Ditto. + * g++.old-deja/g++.ext/overload1.C: Ditto. + * g++.old-deja/g++.jason/conversion11.C: Ditto. + * g++.old-deja/g++.jason/crash3.C: Ditto. + * g++.old-deja/g++.jason/lineno3.C: Ditto. + * g++.old-deja/g++.jason/lineno4.C: Ditto. + * g++.old-deja/g++.jason/opeq3.C: Ditto. + * g++.old-deja/g++.jason/overload16.C: Ditto. + * g++.old-deja/g++.jason/overload28.C: Ditto. + * g++.old-deja/g++.jason/pmf5.C: Ditto. + * g++.old-deja/g++.jason/scoping10.C: Ditto. + * g++.old-deja/g++.jason/template30.C: Ditto. + * g++.old-deja/g++.jason/temporary2.C: Ditto. + * g++.old-deja/g++.jason/tredecl4.C: Ditto. + * g++.old-deja/g++.law/arg11.C: Ditto. + * g++.old-deja/g++.law/arg1.C: Ditto. + * g++.old-deja/g++.law/arm9.C: Ditto. + * g++.old-deja/g++.law/ctors11.C: Ditto. + * g++.old-deja/g++.law/ctors17.C: Ditto. + * g++.old-deja/g++.law/ctors5.C: Ditto. + * g++.old-deja/g++.law/ctors9.C: Ditto. + * g++.old-deja/g++.law/enum4.C: Ditto. + * g++.old-deja/g++.law/missed-error2.C: Ditto. + * g++.old-deja/g++.law/operators9.C: Ditto. + * g++.old-deja/g++.mike/net22.C: Ditto. + * g++.old-deja/g++.mike/net2.C: Ditto. + * g++.old-deja/g++.mike/p11110.C: Ditto. + * g++.old-deja/g++.mike/p1989.C: Ditto. + * g++.old-deja/g++.mike/p2431.C: Ditto. + * g++.old-deja/g++.mike/p438.C: Ditto. + * g++.old-deja/g++.mike/p807a.C: Ditto. + * g++.old-deja/g++.mike/p9068.C: Ditto. + * g++.old-deja/g++.niklas/t120.C: Ditto. + * g++.old-deja/g++.niklas/t121.C: Ditto. + * g++.old-deja/g++.niklas/t128.C: Ditto. + * g++.old-deja/g++.ns/overload2.C: Ditto. + * g++.old-deja/g++.ns/template13.C: Ditto. + * g++.old-deja/g++.ns/using12.C: Ditto. + * g++.old-deja/g++.oliva/delete1.C: Ditto. + * g++.old-deja/g++.oliva/overload1.C: Ditto. + * g++.old-deja/g++.other/crash24.C: Ditto. + * g++.old-deja/g++.other/crash25.C: Ditto. + * g++.old-deja/g++.other/decl3.C: Ditto. + * g++.old-deja/g++.other/expr1.C: Ditto. + * g++.old-deja/g++.other/overcnv2.C: Ditto. + * g++.old-deja/g++.other/overload11.C: Ditto. + * g++.old-deja/g++.other/pmf3.C: Ditto. + * g++.old-deja/g++.other/ptrmem7.C: Ditto. + * g++.old-deja/g++.other/vaarg3.C: Ditto. + * g++.old-deja/g++.other/volatile1.C: Ditto. + * g++.old-deja/g++.pt/assign1.C: Ditto. + * g++.old-deja/g++.pt/auto_ptr.C: Ditto. + * g++.old-deja/g++.pt/const2.C: Ditto. + * g++.old-deja/g++.pt/crash10.C: Ditto. + * g++.old-deja/g++.pt/crash20.C: Ditto. + * g++.old-deja/g++.pt/crash36.C: Ditto. + * g++.old-deja/g++.pt/crash38.C: Ditto. + * g++.old-deja/g++.pt/derived3.C: Ditto. + * g++.old-deja/g++.pt/error2.C: Ditto. + * g++.old-deja/g++.pt/explicit34.C: Ditto. + * g++.old-deja/g++.pt/explicit70.C: Ditto. + * g++.old-deja/g++.pt/friend23.C: Ditto. + * g++.old-deja/g++.pt/ptrmem10.C: Ditto. + * g++.old-deja/g++.pt/redecl1.C: Ditto. + * g++.old-deja/g++.pt/spec35.C: Ditto. + * g++.old-deja/g++.pt/t05.C: Ditto. + * g++.old-deja/g++.pt/typename3.C: Ditto. + * g++.old-deja/g++.pt/typename6.C: Ditto. + * g++.old-deja/g++.pt/unify8.C: Ditto. + * g++.old-deja/g++.pt/vaarg3.C: Ditto. + * g++.old-deja/g++.robertl/eb109.C: Ditto. + * g++.old-deja/g++.robertl/eb131.C: Ditto. + * g++.old-deja/g++.robertl/eb22.C: Ditto. + * g++.old-deja/g++.robertl/eb44.C: Ditto. + * g++.old-deja/g++.robertl/eb4.C: Ditto. + * g++.old-deja/g++.robertl/eb69.C: Ditto. + * g++.dg/parse/constructor1.C: Remove "error" from dg-error, preserving + column number. + * g++.dg/parse/error10.C: Ditto. + * g++.dg/parse/error13.C: Ditto. + * g++.dg/parse/error14.C: Ditto. + * g++.dg/parse/error15.C: Ditto. + * g++.dg/parse/error16.C: Ditto. + * g++.dg/parse/error17.C: Ditto. + * g++.dg/parse/error18.C: Ditto. + * g++.dg/parse/error1.C: Ditto. + * g++.dg/parse/error20.C: Ditto. + * g++.dg/parse/error21.C: Ditto. + * g++.dg/parse/error22.C: Ditto. + * g++.dg/parse/error23.C: Ditto. + * g++.dg/parse/error24.C: Ditto. + * g++.dg/parse/error25.C: Ditto. + * g++.dg/parse/error26.C: Ditto. + * g++.dg/parse/error27.C: Ditto. + * g++.dg/parse/error29.C: Ditto. + * g++.dg/parse/error2.C: Ditto. + * g++.dg/parse/error30.C: Ditto. + * g++.dg/parse/error31.C: Ditto. + * g++.dg/parse/error3.C: Ditto. + * g++.dg/parse/error4.C: Ditto. + * g++.dg/parse/error5.C: Ditto. + * g++.dg/parse/error6.C: Ditto. + * g++.dg/parse/error7.C: Ditto. + * g++.dg/parse/error8.C: Ditto. + * g++.dg/parse/error9.C: Ditto. + * g++.dg/parse/error-column.C: Ditto. + * g++.dg/template/crash80.C: Ditto. + * g++.dg/template/friend44.C: Ditto. + * g++.dg/warn/pr26785.C: Ditto. + * g++.old-deja/g++.brendan/crash16.C: Ditto. + +2008-09-18 H.J. Lu <hongjiu.lu@intel.com> + + PR target/37394 + * g++.dg/other/pr37394.C: New. + +2008-09-18 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/35945 + * gfortran.dg/host_assoc_types_2.f90: New test. + + PR fortran/36700 + * gfortran.dg/host_assoc_call_2.f90: New test. + +2008-09-18 DJ Delorie <dj@redhat.com> + + * gcc.c-torture/execute/20060420-1.c: Fix alignment logic. + +2008-09-18 Simon Baldwin <simonb@google.com> + + * gcc.dg/builtin-redefine.c: New. + +2008-09-18 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/37258 + * gcc.c-torture/compile/pr37258.c: New testcase. + +2008-09-18 Andrew MacLeod <amacleod@redhat.com> + + PR tree-optimization/37102 + * gcc.c-torture/execute/pr37102.c: New Test. + +2008-09-18 Richard Guenther <rguenther@suse.de> + + PR middle-end/37284 + * g++.dg/tree-ssa/pr37284.C: New testcase. + +2008-09-18 Daniel Kraft <d@domob.eu> + + PR fortran/37507 + * gfortran.dg/allocate_error_1.f90: New test. + * gfortran.dg/deallocate_error_1.f90: New test. + * gfortran.dg/deallocate_error_2.f90: New test. + +2008-09-18 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/37456 + * testsuite/g++.dg/torture/pr37456.C: New testcase. + +2008-09-18 Uros Bizjak <ubizjak@gmail.com> + + PR rtl-optimization/37544 + * gcc.dg/pr37544.c: New test. + +2008-09-17 Janis Johnson <janis187@us.ibm.com> + + PR testsuite/25241 + * g++.old-deja/g++.brendan/crash7.C: Remove "error" or "warning" from + message for dg-error/dg-warning. + * g++.old-deja/g++.jason/crash11.C: Ditto. + * g++.old-deja/g++.oliva/template1.C: Ditto. + * g++.old-deja/g++.benjamin/tem03.C: Ditto. + * g++.dg/rtti/no-rtti.C: Ditto. + * g++.dg/cpp/pedantic-errors.C: Ditto. + * g++.dg/cpp/string-2.C: Ditto. + * g++.dg/ext/fpreg1.C: Ditto. + * g++.dg/ext/altivec-types-1.C: Ditto. + * g++.dg/warn/write-strings-default.C: Ditto. + * g++.dg/warn/Wvla-2.C: Ditto. + * g++.dg/warn/register-var-1.C: Ditto. + * g++.dg/warn/deprecated-3.C: Ditto. + * g++.dg/warn/pr30551-2.C: Ditto. + * g++.dg/warn/overflow-warn-1.C: Ditto. + * g++.dg/warn/pr30551.C: Ditto. + * g++.dg/warn/pointer-integer-comparison.C: Ditto. + * g++.dg/warn/pr12242.C: Ditto. + * g++.dg/warn/write-strings.C: Ditto. + * g++.dg/warn/overflow-warn-3.C: Ditto. + * g++.dg/warn/overflow-warn-4.C: Ditto. + * g++.dg/warn/overflow-warn-6.C: Ditto. + * g++.dg/parse/crash43.C: Ditto. + * g++.dg/parse/crash44.C: Ditto. + * g++.dg/parse/offsetof8.C: Ditto. + * g++.dg/gomp/pr35158.C: Ditto. + * g++.dg/template/crash81.C: Ditto. + +2008-09-18 Paul Thomas <pault@gcc.gnu.org> + + PR fortran/37274 + * gfortran.dg/used_types_22.f90: New test. + * gfortran.dg/used_types_23.f90: New test. + + PR fortran/36374 + * gfortran.dg/generic_17.f90: New test. + * gfortran.dg/ambiguous_specific_2.f90: New test. + * gfortran.dg/generic_actual_arg.f90: Add test for case that is + not ambiguous. + + PR fortran/36454 + * gfortran.dg/access_spec_3.f90: New test. + +2008-09-17 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/specs/static_initializer3.ads: New test. + +2008-09-17 Jakub Jelinek <jakub@redhat.com> + + PR c++/37552 + * g++.dg/parse/crash49.C: New test. + + PR preprocessor/37324 + * lib/target-supports.exp + (check_effective_target_wchar_t_char16_t_compatible, + check_effective_target_wchar_t_char32_t_compatible): New. + * gcc.dg/utf-array.c: Use __CHAR{16,32}_TYPE__ macros in typedefs. + Only require from incompatible errors for char{16,32}_t vs. wchar_t + initializations if those types are indeed incompatible. + 2008-09-16 Janis Johnson <janis187@us.ibm.com> PR testsuite/25241 diff --git a/gcc/testsuite/g++.dg/conversion/ambig1.C b/gcc/testsuite/g++.dg/conversion/ambig1.C index 42ac4038ec6..1db1667073f 100644 --- a/gcc/testsuite/g++.dg/conversion/ambig1.C +++ b/gcc/testsuite/g++.dg/conversion/ambig1.C @@ -1,8 +1,8 @@ // PR c++/19787 struct H { - operator char(); // { dg-error "" } - operator short(); // { dg-error "" } + operator char(); // { dg-message "note" } + operator short(); // { dg-message "note" } }; -int const& ref = H(); // { dg-error "" } +int const& ref = H(); // { dg-error "ambiguous" } diff --git a/gcc/testsuite/g++.dg/conversion/simd1.C b/gcc/testsuite/g++.dg/conversion/simd1.C index 0a5302d1bde..06cdc1ab341 100644 --- a/gcc/testsuite/g++.dg/conversion/simd1.C +++ b/gcc/testsuite/g++.dg/conversion/simd1.C @@ -5,9 +5,9 @@ #define vector __attribute__((vector_size(16))) -vector signed int vld (int a1, const vector signed int *a2) { return *a2; } /* { dg-error "vld" } */ +vector signed int vld (int a1, const vector signed int *a2) { return *a2; } /* { dg-message "vld" } */ /* { dg-warning "vector returned by ref" "" { target { powerpc*-*-linux* && ilp32 } } 8 } */ -vector signed short vld (int a1, const vector signed short *a2) { return *a2; } /* { dg-error "vld" } */ +vector signed short vld (int a1, const vector signed short *a2) { return *a2; } /* { dg-message "vld" } */ extern int i; extern vector signed short vss; diff --git a/gcc/testsuite/g++.dg/conversion/simd3.C b/gcc/testsuite/g++.dg/conversion/simd3.C index cdc2ed68a3b..7aea5449d38 100644 --- a/gcc/testsuite/g++.dg/conversion/simd3.C +++ b/gcc/testsuite/g++.dg/conversion/simd3.C @@ -10,6 +10,6 @@ unsigned int __attribute__((vector_size(16))) e; void foo() { b + d; /* { dg-error "invalid operands to binary" } */ - d += e; /* { dg-error "use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts.*cannot convert 'unsigned int __vector__' to 'int __vector__' in assignment" } */ + d += e; /* { dg-message "use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts.*cannot convert 'unsigned int __vector__' to 'int __vector__' in assignment" } */ d2 += d; } diff --git a/gcc/testsuite/g++.dg/cpp/pedantic-errors.C b/gcc/testsuite/g++.dg/cpp/pedantic-errors.C index 1684749b282..0c6045af8d1 100644 --- a/gcc/testsuite/g++.dg/cpp/pedantic-errors.C +++ b/gcc/testsuite/g++.dg/cpp/pedantic-errors.C @@ -2,4 +2,4 @@ /* { dg-options "-std=c++98 -pedantic-errors" } */ #if 1 -#endif 1 /* { dg-error "error: extra tokens at end of #endif directive" } */ +#endif 1 /* { dg-error "extra tokens at end of #endif directive" } */ diff --git a/gcc/testsuite/g++.dg/cpp/string-2.C b/gcc/testsuite/g++.dg/cpp/string-2.C index 137c3de1931..f7148623152 100644 --- a/gcc/testsuite/g++.dg/cpp/string-2.C +++ b/gcc/testsuite/g++.dg/cpp/string-2.C @@ -3,4 +3,4 @@ // { dg-do compile } // { dg-options "" } -const char *s = "\q"; // { dg-warning "warning: unknown escape sequence" } +const char *s = "\q"; // { dg-warning "unknown escape sequence" } diff --git a/gcc/testsuite/g++.dg/cpp0x/rv2n.C b/gcc/testsuite/g++.dg/cpp0x/rv2n.C index df35358a6c1..a4c11c60e2d 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv2n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv2n.C @@ -30,8 +30,8 @@ const volatile A cv_source(); // 2 at a time -one sink_2_12( A&); // { dg-error "" } -two sink_2_12(const A&); // { dg-error "" } +one sink_2_12( A&); // { dg-message "candidates" } +two sink_2_12(const A&); // { dg-message "note" } int test2_12() { @@ -46,8 +46,8 @@ int test2_12() return 0; } -one sink_2_13( A&); // { dg-error "" } -three sink_2_13(volatile A&); // { dg-error "" } +one sink_2_13( A&); // { dg-message "candidates" } +three sink_2_13(volatile A&); // { dg-message "note" } int test2_13() { @@ -64,8 +64,8 @@ int test2_13() return 0; } -one sink_2_14( A&); // { dg-error "" } -four sink_2_14(const volatile A&); // { dg-error "" } +one sink_2_14( A&); // { dg-message "candidates" } +four sink_2_14(const volatile A&); // { dg-message "note" } int test2_14() { @@ -80,8 +80,8 @@ int test2_14() return 0; } -one sink_2_15( A&); // { dg-error "" } -five sink_2_15( A&&); // { dg-error "" } +one sink_2_15( A&); // { dg-message "candidates" } +five sink_2_15( A&&); // { dg-message "note" } int test2_15() { @@ -98,8 +98,8 @@ int test2_15() return 0; } -one sink_2_16( A&); // { dg-error "" } -six sink_2_16(const A&&); // { dg-error "" } +one sink_2_16( A&); // { dg-message "candidates" } +six sink_2_16(const A&&); // { dg-message "note" } int test2_16() { @@ -114,8 +114,8 @@ int test2_16() return 0; } -one sink_2_17( A&); // { dg-error "" } -seven sink_2_17(volatile A&&); // { dg-error "" } +one sink_2_17( A&); // { dg-message "candidates" } +seven sink_2_17(volatile A&&); // { dg-message "note" } int test2_17() { @@ -130,8 +130,8 @@ int test2_17() return 0; } -two sink_2_23(const A&); // { dg-error "" } -three sink_2_23(volatile A&); // { dg-error "" } +two sink_2_23(const A&); // { dg-message "candidates" } +three sink_2_23(volatile A&); // { dg-message "note" } int test2_23() { @@ -146,8 +146,8 @@ int test2_23() return 0; } -two sink_2_24(const A&); // { dg-error "" } -four sink_2_24(const volatile A&); // { dg-error "" } +two sink_2_24(const A&); // { dg-message "candidates" } +four sink_2_24(const volatile A&); // { dg-message "note" } int test2_24() { @@ -160,8 +160,8 @@ int test2_24() return 0; } -three sink_2_34(volatile A&); // { dg-error "" } -four sink_2_34(const volatile A&); // { dg-error "" } +three sink_2_34(volatile A&); // { dg-message "candidate" } +four sink_2_34(const volatile A&); // { dg-message "note" } int test2_34() { @@ -176,8 +176,8 @@ int test2_34() return 0; } -two sink_2_25(const A&); // { dg-error "" } -five sink_2_25( A&&); // { dg-error "" } +two sink_2_25(const A&); // { dg-message "candidate" } +five sink_2_25( A&&); // { dg-message "note" } int test2_25() { @@ -192,8 +192,8 @@ int test2_25() return 0; } -two sink_2_26(const A&); // { dg-error "" } -six sink_2_26(const A&&); // { dg-error "" } +two sink_2_26(const A&); // { dg-message "candidate" } +six sink_2_26(const A&&); // { dg-message "note" } int test2_26() { @@ -208,8 +208,8 @@ int test2_26() return 0; } -two sink_2_27(const A&); // { dg-error "" } -seven sink_2_27(volatile A&&); // { dg-error "" } +two sink_2_27(const A&); // { dg-message "candidate" } +seven sink_2_27(volatile A&&); // { dg-message "note" } int test2_27() { @@ -222,8 +222,8 @@ int test2_27() return 0; } -three sink_2_35(volatile A&); // { dg-error "" } -five sink_2_35( A&&); // { dg-error "" } +three sink_2_35(volatile A&); // { dg-message "candidate" } +five sink_2_35( A&&); // { dg-message "note" } int test2_35() { @@ -239,8 +239,8 @@ int test2_35() return 0; } -three sink_2_36(volatile A&); // { dg-error "" } -six sink_2_36(const A&&); // { dg-error "" } +three sink_2_36(volatile A&); // { dg-message "candidate" } +six sink_2_36(const A&&); // { dg-message "note" } int test2_36() { @@ -254,8 +254,8 @@ int test2_36() return 0; } -three sink_2_37(volatile A&); // { dg-error "" } -seven sink_2_37(volatile A&&); // { dg-error "" } +three sink_2_37(volatile A&); // { dg-message "candidate" } +seven sink_2_37(volatile A&&); // { dg-message "note" } int test2_37() { @@ -270,8 +270,8 @@ int test2_37() return 0; } -four sink_2_45(const volatile A&); // { dg-error "" } -five sink_2_45( A&&); // { dg-error "" } +four sink_2_45(const volatile A&); // { dg-message "candidate" } +five sink_2_45( A&&); // { dg-message "note" } int test2_45() { @@ -285,8 +285,8 @@ int test2_45() return 0; } -four sink_2_46(const volatile A&); // { dg-error "" } -six sink_2_46(const A&&); // { dg-error "" } +four sink_2_46(const volatile A&); // { dg-message "candidate" } +six sink_2_46(const A&&); // { dg-message "note" } int test2_46() { @@ -299,8 +299,8 @@ int test2_46() return 0; } -four sink_2_47(const volatile A&); // { dg-error "" } -seven sink_2_47(volatile A&&); // { dg-error "" } +four sink_2_47(const volatile A&); // { dg-message "candidate" } +seven sink_2_47(volatile A&&); // { dg-message "note" } int test2_47() { @@ -313,8 +313,8 @@ int test2_47() return 0; } -five sink_2_56( A&&); // { dg-error "" } -six sink_2_56(const A&&); // { dg-error "" } +five sink_2_56( A&&); // { dg-message "candidate" } +six sink_2_56(const A&&); // { dg-message "note" } int test2_56() { @@ -329,8 +329,8 @@ int test2_56() return 0; } -five sink_2_57( A&&); // { dg-error "" } -seven sink_2_57(volatile A&&); // { dg-error "" } +five sink_2_57( A&&); // { dg-message "candidate" } +seven sink_2_57(volatile A&&); // { dg-message "note" } int test2_57() { @@ -345,8 +345,8 @@ int test2_57() return 0; } -six sink_2_67(const A&&); // { dg-error "" } -seven sink_2_67(volatile A&&); // { dg-error "" } +six sink_2_67(const A&&); // { dg-message "candidate" } +seven sink_2_67(volatile A&&); // { dg-message "note" } int test2_67() { diff --git a/gcc/testsuite/g++.dg/cpp0x/rv3n.C b/gcc/testsuite/g++.dg/cpp0x/rv3n.C index e04ef4fee34..84675b37fee 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv3n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv3n.C @@ -30,9 +30,9 @@ const volatile A cv_source(); // 3 at a time -one sink_3_123( A&); // { dg-error "" } -two sink_3_123(const A&); // { dg-error "" } -three sink_3_123(volatile A&); // { dg-error "" } +one sink_3_123( A&); // { dg-message "candidates" } +two sink_3_123(const A&); // { dg-message "note" } +three sink_3_123(volatile A&); // { dg-message "note" } int test3_123() { @@ -46,13 +46,13 @@ int test3_123() return 0; } -one sink_3_125( A&); // { dg-error "" } -two sink_3_125(const A&); // { dg-error "" } -five sink_3_125( A&&); // { dg-error "" } +one sink_3_125( A&); // { dg-message "candidates" } +two sink_3_125(const A&); // { dg-message "note" } +five sink_3_125( A&&); // { dg-message "note" } -one sink_3_124( A&); // { dg-error "" } -two sink_3_124(const A&); // { dg-error "" } -four sink_3_124(const volatile A&); // { dg-error "" } +one sink_3_124( A&); // { dg-message "candidates" } +two sink_3_124(const A&); // { dg-message "note" } +four sink_3_124(const volatile A&); // { dg-message "note" } int test3_124() { @@ -78,9 +78,9 @@ int test3_125() return 0; } -one sink_3_126( A&); // { dg-error "" } -two sink_3_126(const A&); // { dg-error "" } -six sink_3_126(const A&&); // { dg-error "" } +one sink_3_126( A&); // { dg-message "candidates" } +two sink_3_126(const A&); // { dg-message "note" } +six sink_3_126(const A&&); // { dg-message "note" } int test3_126() { @@ -95,9 +95,9 @@ int test3_126() return 0; } -one sink_3_127( A&); // { dg-error "" } -two sink_3_127(const A&); // { dg-error "" } -seven sink_3_127(volatile A&&); // { dg-error "" } +one sink_3_127( A&); // { dg-message "candidates" } +two sink_3_127(const A&); // { dg-message "note" } +seven sink_3_127(volatile A&&); // { dg-message "note" } int test3_127() { @@ -110,9 +110,9 @@ int test3_127() return 0; } -one sink_3_134( A&); // { dg-error "" } -three sink_3_134(volatile A&); // { dg-error "" } -four sink_3_134(const volatile A&); // { dg-error "" } +one sink_3_134( A&); // { dg-message "candidates" } +three sink_3_134(volatile A&); // { dg-message "note" } +four sink_3_134(const volatile A&); // { dg-message "note" } int test3_134() { @@ -127,9 +127,9 @@ int test3_134() return 0; } -one sink_3_135( A&); // { dg-error "" } -three sink_3_135(volatile A&); // { dg-error "" } -five sink_3_135( A&&); // { dg-error "" } +one sink_3_135( A&); // { dg-message "candidates" } +three sink_3_135(volatile A&); // { dg-message "note" } +five sink_3_135( A&&); // { dg-message "note" } int test3_135() { @@ -145,9 +145,9 @@ int test3_135() return 0; } -one sink_3_136( A&); // { dg-error "" } -three sink_3_136(volatile A&); // { dg-error "" } -six sink_3_136(const A&&); // { dg-error "" } +one sink_3_136( A&); // { dg-message "candidates" } +three sink_3_136(volatile A&); // { dg-message "note" } +six sink_3_136(const A&&); // { dg-message "note" } int test3_136() { @@ -161,9 +161,9 @@ int test3_136() return 0; } -one sink_3_137( A&); // { dg-error "" } -three sink_3_137(volatile A&); // { dg-error "" } -seven sink_3_137(volatile A&&); // { dg-error "" } +one sink_3_137( A&); // { dg-message "candidates" } +three sink_3_137(volatile A&); // { dg-message "note" } +seven sink_3_137(volatile A&&); // { dg-message "note" } int test3_137() { @@ -178,9 +178,9 @@ int test3_137() return 0; } -one sink_3_145( A&); // { dg-error "" } -four sink_3_145(const volatile A&); // { dg-error "" } -five sink_3_145( A&&); // { dg-error "" } +one sink_3_145( A&); // { dg-message "candidates" } +four sink_3_145(const volatile A&); // { dg-message "note" } +five sink_3_145( A&&); // { dg-message "note" } int test3_145() { @@ -194,9 +194,9 @@ int test3_145() return 0; } -one sink_3_146( A&); // { dg-error "" } -four sink_3_146(const volatile A&); // { dg-error "" } -six sink_3_146(const A&&); // { dg-error "" } +one sink_3_146( A&); // { dg-message "candidates" } +four sink_3_146(const volatile A&); // { dg-message "note" } +six sink_3_146(const A&&); // { dg-message "note" } int test3_146() { @@ -209,9 +209,9 @@ int test3_146() return 0; } -one sink_3_147( A&); // { dg-error "" } -four sink_3_147(const volatile A&); // { dg-error "" } -seven sink_3_147(volatile A&&); // { dg-error "" } +one sink_3_147( A&); // { dg-message "candidates" } +four sink_3_147(const volatile A&); // { dg-message "note" } +seven sink_3_147(volatile A&&); // { dg-message "note" } int test3_147() { @@ -224,9 +224,9 @@ int test3_147() return 0; } -one sink_3_156( A&); // { dg-error "" } -five sink_3_156( A&&); // { dg-error "" } -six sink_3_156(const A&&); // { dg-error "" } +one sink_3_156( A&); // { dg-message "candidates" } +five sink_3_156( A&&); // { dg-message "note" } +six sink_3_156(const A&&); // { dg-message "note" } int test3_156() { @@ -241,9 +241,9 @@ int test3_156() return 0; } -one sink_3_157( A&); // { dg-error "" } -five sink_3_157( A&&); // { dg-error "" } -seven sink_3_157(volatile A&&); // { dg-error "" } +one sink_3_157( A&); // { dg-message "candidates" } +five sink_3_157( A&&); // { dg-message "note" } +seven sink_3_157(volatile A&&); // { dg-message "note" } int test3_157() { @@ -258,9 +258,9 @@ int test3_157() return 0; } -one sink_3_167( A&); // { dg-error "" } -six sink_3_167(const A&&); // { dg-error "" } -seven sink_3_167(volatile A&&); // { dg-error "" } +one sink_3_167( A&); // { dg-message "candidates" } +six sink_3_167(const A&&); // { dg-message "note" } +seven sink_3_167(volatile A&&); // { dg-message "note" } int test3_167() { @@ -274,9 +274,9 @@ int test3_167() return 0; } -two sink_3_234(const A&); // { dg-error "" } -three sink_3_234(volatile A&); // { dg-error "" } -four sink_3_234(const volatile A&); // { dg-error "" } +two sink_3_234(const A&); // { dg-message "candidates" } +three sink_3_234(volatile A&); // { dg-message "note" } +four sink_3_234(const volatile A&); // { dg-message "note" } int test3_234() { @@ -290,9 +290,9 @@ int test3_234() return 0; } -two sink_3_235(const A&); // { dg-error "" } -three sink_3_235(volatile A&); // { dg-error "" } -five sink_3_235( A&&); // { dg-error "" } +two sink_3_235(const A&); // { dg-message "candidates" } +three sink_3_235(volatile A&); // { dg-message "note" } +five sink_3_235( A&&); // { dg-message "note" } int test3_235() { @@ -307,9 +307,9 @@ int test3_235() return 0; } -two sink_3_236(const A&); // { dg-error "" } -three sink_3_236(volatile A&); // { dg-error "" } -six sink_3_236(const A&&); // { dg-error "" } +two sink_3_236(const A&); // { dg-message "candidates" } +three sink_3_236(volatile A&); // { dg-message "note" } +six sink_3_236(const A&&); // { dg-message "note" } int test3_236() { @@ -324,9 +324,9 @@ int test3_236() return 0; } -two sink_3_237(const A&); // { dg-error "" } -three sink_3_237(volatile A&); // { dg-error "" } -seven sink_3_237(volatile A&&); // { dg-error "" } +two sink_3_237(const A&); // { dg-message "candidates" } +three sink_3_237(volatile A&); // { dg-message "note" } +seven sink_3_237(volatile A&&); // { dg-message "note" } int test3_237() { @@ -340,9 +340,9 @@ int test3_237() return 0; } -two sink_3_238(const A&); // { dg-error "" } -three sink_3_238(volatile A&); // { dg-error "" } -eight sink_3_238(const volatile A&&); // { dg-error "" } +two sink_3_238(const A&); // { dg-message "candidates" } +three sink_3_238(volatile A&); // { dg-message "note" } +eight sink_3_238(const volatile A&&); // { dg-message "note" } int test3_238() { @@ -354,9 +354,9 @@ int test3_238() return 0; } -two sink_3_245(const A&); // { dg-error "" } -four sink_3_245(const volatile A&); // { dg-error "" } -five sink_3_245( A&&); // { dg-error "" } +two sink_3_245(const A&); // { dg-message "candidates" } +four sink_3_245(const volatile A&); // { dg-message "note" } +five sink_3_245( A&&); // { dg-message "note" } int test3_245() { @@ -369,9 +369,9 @@ int test3_245() return 0; } -two sink_3_246(const A&); // { dg-error "" } -four sink_3_246(const volatile A&); // { dg-error "" } -six sink_3_246(const A&&); // { dg-error "" } +two sink_3_246(const A&); // { dg-message "candidates" } +four sink_3_246(const volatile A&); // { dg-message "note" } +six sink_3_246(const A&&); // { dg-message "note" } int test3_246() { @@ -384,9 +384,9 @@ int test3_246() return 0; } -two sink_3_247(const A&); // { dg-error "" } -four sink_3_247(const volatile A&); // { dg-error "" } -seven sink_3_247(volatile A&&); // { dg-error "" } +two sink_3_247(const A&); // { dg-message "candidates" } +four sink_3_247(const volatile A&); // { dg-message "note" } +seven sink_3_247(volatile A&&); // { dg-message "note" } int test3_247() { @@ -398,9 +398,9 @@ int test3_247() return 0; } -two sink_3_256(const A&); // { dg-error "" } -five sink_3_256( A&&); // { dg-error "" } -six sink_3_256(const A&&); // { dg-error "" } +two sink_3_256(const A&); // { dg-message "candidates" } +five sink_3_256( A&&); // { dg-message "note" } +six sink_3_256(const A&&); // { dg-message "note" } int test3_256() { @@ -415,9 +415,9 @@ int test3_256() return 0; } -two sink_3_257(const A&); // { dg-error "" } -five sink_3_257( A&&); // { dg-error "" } -seven sink_3_257(volatile A&&); // { dg-error "" } +two sink_3_257(const A&); // { dg-message "candidates" } +five sink_3_257( A&&); // { dg-message "note" } +seven sink_3_257(volatile A&&); // { dg-message "note" } int test3_257() { @@ -430,9 +430,9 @@ int test3_257() return 0; } -two sink_3_267(const A&); // { dg-error "" } -six sink_3_267(const A&&); // { dg-error "" } -seven sink_3_267(volatile A&&); // { dg-error "" } +two sink_3_267(const A&); // { dg-message "candidates" } +six sink_3_267(const A&&); // { dg-message "note" } +seven sink_3_267(volatile A&&); // { dg-message "note" } int test3_267() { @@ -446,9 +446,9 @@ int test3_267() return 0; } -three sink_3_345(volatile A&); // { dg-error "" } -four sink_3_345(const volatile A&); // { dg-error "" } -five sink_3_345( A&&); // { dg-error "" } +three sink_3_345(volatile A&); // { dg-message "candidates" } +four sink_3_345(const volatile A&); // { dg-message "note" } +five sink_3_345( A&&); // { dg-message "note" } int test3_345() { @@ -462,9 +462,9 @@ int test3_345() return 0; } -three sink_3_346(volatile A&); // { dg-error "" } -four sink_3_346(const volatile A&); // { dg-error "" } -six sink_3_346(const A&&); // { dg-error "" } +three sink_3_346(volatile A&); // { dg-message "candidates" } +four sink_3_346(const volatile A&); // { dg-message "note" } +six sink_3_346(const A&&); // { dg-message "note" } int test3_346() { @@ -477,9 +477,9 @@ int test3_346() return 0; } -three sink_3_347(volatile A&); // { dg-error "" } -four sink_3_347(const volatile A&); // { dg-error "" } -seven sink_3_347(volatile A&&); // { dg-error "" } +three sink_3_347(volatile A&); // { dg-message "candidates" } +four sink_3_347(const volatile A&); // { dg-message "note" } +seven sink_3_347(volatile A&&); // { dg-message "note" } int test3_347() { @@ -492,9 +492,9 @@ int test3_347() return 0; } -three sink_3_356(volatile A&); // { dg-error "" } -five sink_3_356( A&&); // { dg-error "" } -six sink_3_356(const A&&); // { dg-error "" } +three sink_3_356(volatile A&); // { dg-message "candidates" } +five sink_3_356( A&&); // { dg-message "note" } +six sink_3_356(const A&&); // { dg-message "note" } int test3_356() { @@ -508,9 +508,9 @@ int test3_356() return 0; } -three sink_3_357(volatile A&); // { dg-error "" } -five sink_3_357( A&&); // { dg-error "" } -seven sink_3_357(volatile A&&); // { dg-error "" } +three sink_3_357(volatile A&); // { dg-message "candidates" } +five sink_3_357( A&&); // { dg-message "note" } +seven sink_3_357(volatile A&&); // { dg-message "note" } int test3_357() { @@ -525,9 +525,9 @@ int test3_357() return 0; } -three sink_3_367(volatile A&); // { dg-error "" } -six sink_3_367(const A&&); // { dg-error "" } -seven sink_3_367(volatile A&&); // { dg-error "" } +three sink_3_367(volatile A&); // { dg-message "candidates" } +six sink_3_367(const A&&); // { dg-message "note" } +seven sink_3_367(volatile A&&); // { dg-message "note" } int test3_367() { @@ -541,9 +541,9 @@ int test3_367() return 0; } -four sink_3_456(const volatile A&); // { dg-error "" } -five sink_3_456( A&&); // { dg-error "" } -six sink_3_456(const A&&); // { dg-error "" } +four sink_3_456(const volatile A&); // { dg-message "candidates" } +five sink_3_456( A&&); // { dg-message "note" } +six sink_3_456(const A&&); // { dg-message "note" } int test3_456() { @@ -556,9 +556,9 @@ int test3_456() return 0; } -four sink_3_457(const volatile A&); // { dg-error "" } -five sink_3_457( A&&); // { dg-error "" } -seven sink_3_457(volatile A&&); // { dg-error "" } +four sink_3_457(const volatile A&); // { dg-message "candidates" } +five sink_3_457( A&&); // { dg-message "note" } +seven sink_3_457(volatile A&&); // { dg-message "note" } int test3_457() { @@ -571,9 +571,9 @@ int test3_457() return 0; } -four sink_3_467(const volatile A&); // { dg-error "" } -six sink_3_467(const A&&); // { dg-error "" } -seven sink_3_467(volatile A&&); // { dg-error "" } +four sink_3_467(const volatile A&); // { dg-message "candidates" } +six sink_3_467(const A&&); // { dg-message "note" } +seven sink_3_467(volatile A&&); // { dg-message "note" } int test3_467() { @@ -586,9 +586,9 @@ int test3_467() return 0; } -five sink_3_567( A&&); // { dg-error "" } -six sink_3_567(const A&&); // { dg-error "" } -seven sink_3_567(volatile A&&); // { dg-error "" } +five sink_3_567( A&&); // { dg-message "candidates" } +six sink_3_567(const A&&); // { dg-message "note" } +seven sink_3_567(volatile A&&); // { dg-message "note" } int test3_567() { @@ -601,9 +601,9 @@ int test3_567() return 0; } -six sink_3_678(const A&&); // { dg-error "" } -seven sink_3_678(volatile A&&); // { dg-error "" } -eight sink_3_678(const volatile A&&); // { dg-error "" } +six sink_3_678(const A&&); // { dg-message "candidates" } +seven sink_3_678(volatile A&&); // { dg-message "note" } +eight sink_3_678(const volatile A&&); // { dg-message "note" } int test3_678() { diff --git a/gcc/testsuite/g++.dg/cpp0x/rv4n.C b/gcc/testsuite/g++.dg/cpp0x/rv4n.C index 302ab8eedcc..b88e3f77061 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv4n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv4n.C @@ -30,10 +30,10 @@ const volatile A cv_source(); // 4 at a time -one sink_4_1234( A&); // { dg-error "" } -two sink_4_1234(const A&); // { dg-error "" } -three sink_4_1234(volatile A&); // { dg-error "" } -four sink_4_1234(const volatile A&); // { dg-error "" } +one sink_4_1234( A&); // { dg-message "candidates" } +two sink_4_1234(const A&); // { dg-message "note" } +three sink_4_1234(volatile A&); // { dg-message "note" } +four sink_4_1234(const volatile A&); // { dg-message "note" } int test4_1234() { @@ -46,10 +46,10 @@ int test4_1234() return 0; } -one sink_4_1235( A&); // { dg-error "" } -two sink_4_1235(const A&); // { dg-error "" } -three sink_4_1235(volatile A&); // { dg-error "" } -five sink_4_1235( A&&); // { dg-error "" } +one sink_4_1235( A&); // { dg-message "candidates" } +two sink_4_1235(const A&); // { dg-message "note" } +three sink_4_1235(volatile A&); // { dg-message "note" } +five sink_4_1235( A&&); // { dg-message "note" } int test4_1235() { @@ -63,10 +63,10 @@ int test4_1235() return 0; } -one sink_4_1236( A&); // { dg-error "" } -two sink_4_1236(const A&); // { dg-error "" } -three sink_4_1236(volatile A&); // { dg-error "" } -six sink_4_1236(const A&&); // { dg-error "" } +one sink_4_1236( A&); // { dg-message "candidates" } +two sink_4_1236(const A&); // { dg-message "note" } +three sink_4_1236(volatile A&); // { dg-message "note" } +six sink_4_1236(const A&&); // { dg-message "note" } int test4_1236() { @@ -80,10 +80,10 @@ int test4_1236() return 0; } -one sink_4_1237( A&); // { dg-error "" } -two sink_4_1237(const A&); // { dg-error "" } -three sink_4_1237(volatile A&); // { dg-error "" } -seven sink_4_1237(volatile A&&); // { dg-error "" } +one sink_4_1237( A&); // { dg-message "candidates" } +two sink_4_1237(const A&); // { dg-message "note" } +three sink_4_1237(volatile A&); // { dg-message "note" } +seven sink_4_1237(volatile A&&); // { dg-message "note" } int test4_1237() { @@ -96,10 +96,10 @@ int test4_1237() return 0; } -one sink_4_1245( A&); // { dg-error "" } -two sink_4_1245(const A&); // { dg-error "" } -four sink_4_1245(const volatile A&); // { dg-error "" } -five sink_4_1245( A&&); // { dg-error "" } +one sink_4_1245( A&); // { dg-message "candidates" } +two sink_4_1245(const A&); // { dg-message "note" } +four sink_4_1245(const volatile A&); // { dg-message "note" } +five sink_4_1245( A&&); // { dg-message "note" } int test4_1245() { @@ -112,10 +112,10 @@ int test4_1245() return 0; } -one sink_4_1246( A&); // { dg-error "" } -two sink_4_1246(const A&); // { dg-error "" } -four sink_4_1246(const volatile A&); // { dg-error "" } -six sink_4_1246(const A&&); // { dg-error "" } +one sink_4_1246( A&); // { dg-message "candidates" } +two sink_4_1246(const A&); // { dg-message "note" } +four sink_4_1246(const volatile A&); // { dg-message "note" } +six sink_4_1246(const A&&); // { dg-message "note" } int test4_1246() { @@ -128,10 +128,10 @@ int test4_1246() return 0; } -one sink_4_1247( A&); // { dg-error "" } -two sink_4_1247(const A&); // { dg-error "" } -four sink_4_1247(const volatile A&); // { dg-error "" } -seven sink_4_1247(volatile A&&); // { dg-error "" } +one sink_4_1247( A&); // { dg-message "candidates" } +two sink_4_1247(const A&); // { dg-message "note" } +four sink_4_1247(const volatile A&); // { dg-message "note" } +seven sink_4_1247(volatile A&&); // { dg-message "note" } int test4_1247() { @@ -143,10 +143,10 @@ int test4_1247() return 0; } -one sink_4_1256( A&); // { dg-error "" } -two sink_4_1256(const A&); // { dg-error "" } -five sink_4_1256( A&&); // { dg-error "" } -six sink_4_1256(const A&&); // { dg-error "" } +one sink_4_1256( A&); // { dg-message "candidates" } +two sink_4_1256(const A&); // { dg-message "note" } +five sink_4_1256( A&&); // { dg-message "note" } +six sink_4_1256(const A&&); // { dg-message "note" } int test4_1256() { @@ -161,10 +161,10 @@ int test4_1256() return 0; } -one sink_4_1257( A&); // { dg-error "" } -two sink_4_1257(const A&); // { dg-error "" } -five sink_4_1257( A&&); // { dg-error "" } -seven sink_4_1257(volatile A&&); // { dg-error "" } +one sink_4_1257( A&); // { dg-message "candidates" } +two sink_4_1257(const A&); // { dg-message "note" } +five sink_4_1257( A&&); // { dg-message "note" } +seven sink_4_1257(volatile A&&); // { dg-message "note" } int test4_1257() { @@ -177,10 +177,10 @@ int test4_1257() return 0; } -one sink_4_1267( A&); // { dg-error "" } -two sink_4_1267(const A&); // { dg-error "" } -six sink_4_1267(const A&&); // { dg-error "" } -seven sink_4_1267(volatile A&&); // { dg-error "" } +one sink_4_1267( A&); // { dg-message "candidates" } +two sink_4_1267(const A&); // { dg-message "note" } +six sink_4_1267(const A&&); // { dg-message "note" } +seven sink_4_1267(volatile A&&); // { dg-message "note" } int test4_1267() { @@ -194,10 +194,10 @@ int test4_1267() return 0; } -one sink_4_1345( A&); // { dg-error "" } -three sink_4_1345(volatile A&); // { dg-error "" } -four sink_4_1345(const volatile A&); // { dg-error "" } -five sink_4_1345( A&&); // { dg-error "" } +one sink_4_1345( A&); // { dg-message "candidates" } +three sink_4_1345(volatile A&); // { dg-message "note" } +four sink_4_1345(const volatile A&); // { dg-message "note" } +five sink_4_1345( A&&); // { dg-message "note" } int test4_1345() { @@ -211,10 +211,10 @@ int test4_1345() return 0; } -one sink_4_1346( A&); // { dg-error "" } -three sink_4_1346(volatile A&); // { dg-error "" } -four sink_4_1346(const volatile A&); // { dg-error "" } -six sink_4_1346(const A&&); // { dg-error "" } +one sink_4_1346( A&); // { dg-message "candidates" } +three sink_4_1346(volatile A&); // { dg-message "note" } +four sink_4_1346(const volatile A&); // { dg-message "note" } +six sink_4_1346(const A&&); // { dg-message "note" } int test4_1346() { @@ -227,10 +227,10 @@ int test4_1346() return 0; } -one sink_4_1347( A&); // { dg-error "" } -three sink_4_1347(volatile A&); // { dg-error "" } -four sink_4_1347(const volatile A&); // { dg-error "" } -seven sink_4_1347(volatile A&&); // { dg-error "" } +one sink_4_1347( A&); // { dg-message "candidates" } +three sink_4_1347(volatile A&); // { dg-message "note" } +four sink_4_1347(const volatile A&); // { dg-message "note" } +seven sink_4_1347(volatile A&&); // { dg-message "note" } int test4_1347() { @@ -243,10 +243,10 @@ int test4_1347() return 0; } -one sink_4_1356( A&); // { dg-error "" } -three sink_4_1356(volatile A&); // { dg-error "" } -five sink_4_1356( A&&); // { dg-error "" } -six sink_4_1356(const A&&); // { dg-error "" } +one sink_4_1356( A&); // { dg-message "candidates" } +three sink_4_1356(volatile A&); // { dg-message "note" } +five sink_4_1356( A&&); // { dg-message "note" } +six sink_4_1356(const A&&); // { dg-message "note" } int test4_1356() { @@ -260,10 +260,10 @@ int test4_1356() return 0; } -one sink_4_1357( A&); // { dg-error "" } -three sink_4_1357(volatile A&); // { dg-error "" } -five sink_4_1357( A&&); // { dg-error "" } -seven sink_4_1357(volatile A&&); // { dg-error "" } +one sink_4_1357( A&); // { dg-message "candidates" } +three sink_4_1357(volatile A&); // { dg-message "note" } +five sink_4_1357( A&&); // { dg-message "note" } +seven sink_4_1357(volatile A&&); // { dg-message "note" } int test4_1357() { @@ -278,10 +278,10 @@ int test4_1357() return 0; } -one sink_4_1367( A&); // { dg-error "" } -three sink_4_1367(volatile A&); // { dg-error "" } -six sink_4_1367(const A&&); // { dg-error "" } -seven sink_4_1367(volatile A&&); // { dg-error "" } +one sink_4_1367( A&); // { dg-message "candidates" } +three sink_4_1367(volatile A&); // { dg-message "note" } +six sink_4_1367(const A&&); // { dg-message "note" } +seven sink_4_1367(volatile A&&); // { dg-message "note" } int test4_1367() { @@ -295,10 +295,10 @@ int test4_1367() return 0; } -one sink_4_1456( A&); // { dg-error "" } -four sink_4_1456(const volatile A&); // { dg-error "" } -five sink_4_1456( A&&); // { dg-error "" } -six sink_4_1456(const A&&); // { dg-error "" } +one sink_4_1456( A&); // { dg-message "candidates" } +four sink_4_1456(const volatile A&); // { dg-message "note" } +five sink_4_1456( A&&); // { dg-message "note" } +six sink_4_1456(const A&&); // { dg-message "note" } int test4_1456() { @@ -311,10 +311,10 @@ int test4_1456() return 0; } -one sink_4_1457( A&); // { dg-error "" } -four sink_4_1457(const volatile A&); // { dg-error "" } -five sink_4_1457( A&&); // { dg-error "" } -seven sink_4_1457(volatile A&&); // { dg-error "" } +one sink_4_1457( A&); // { dg-message "candidates" } +four sink_4_1457(const volatile A&); // { dg-message "note" } +five sink_4_1457( A&&); // { dg-message "note" } +seven sink_4_1457(volatile A&&); // { dg-message "note" } int test4_1457() { @@ -327,10 +327,10 @@ int test4_1457() return 0; } -one sink_4_1467( A&); // { dg-error "" } -four sink_4_1467(const volatile A&); // { dg-error "" } -six sink_4_1467(const A&&); // { dg-error "" } -seven sink_4_1467(volatile A&&); // { dg-error "" } +one sink_4_1467( A&); // { dg-message "candidates" } +four sink_4_1467(const volatile A&); // { dg-message "note" } +six sink_4_1467(const A&&); // { dg-message "note" } +seven sink_4_1467(volatile A&&); // { dg-message "note" } int test4_1467() { @@ -343,10 +343,10 @@ int test4_1467() return 0; } -one sink_4_1567( A&); // { dg-error "" } -five sink_4_1567( A&&); // { dg-error "" } -six sink_4_1567(const A&&); // { dg-error "" } -seven sink_4_1567(volatile A&&); // { dg-error "" } +one sink_4_1567( A&); // { dg-message "candidates" } +five sink_4_1567( A&&); // { dg-message "note" } +six sink_4_1567(const A&&); // { dg-message "note" } +seven sink_4_1567(volatile A&&); // { dg-message "note" } int test4_1567() { @@ -360,9 +360,9 @@ int test4_1567() } one sink_4_1678( A&); -six sink_4_1678(const A&&); // { dg-error "" } -seven sink_4_1678(volatile A&&); // { dg-error "" } -eight sink_4_1678(const volatile A&&); // { dg-error "" } +six sink_4_1678(const A&&); // { dg-message "candidates" } +seven sink_4_1678(volatile A&&); // { dg-message "note" } +eight sink_4_1678(const volatile A&&); // { dg-message "note" } int test4_1678() { @@ -374,10 +374,10 @@ int test4_1678() return 0; } -two sink_4_2345(const A&); // { dg-error "" } -three sink_4_2345(volatile A&); // { dg-error "" } -four sink_4_2345(const volatile A&); // { dg-error "" } -five sink_4_2345( A&&); // { dg-error "" } +two sink_4_2345(const A&); // { dg-message "candidates" } +three sink_4_2345(volatile A&); // { dg-message "note" } +four sink_4_2345(const volatile A&); // { dg-message "note" } +five sink_4_2345( A&&); // { dg-message "note" } int test4_2345() { @@ -391,10 +391,10 @@ int test4_2345() return 0; } -two sink_4_2346(const A&); // { dg-error "" } -three sink_4_2346(volatile A&); // { dg-error "" } -four sink_4_2346(const volatile A&); // { dg-error "" } -six sink_4_2346(const A&&); // { dg-error "" } +two sink_4_2346(const A&); // { dg-message "candidates" } +three sink_4_2346(volatile A&); // { dg-message "note" } +four sink_4_2346(const volatile A&); // { dg-message "note" } +six sink_4_2346(const A&&); // { dg-message "note" } int test4_2346() { @@ -408,10 +408,10 @@ int test4_2346() return 0; } -two sink_4_2347(const A&); // { dg-error "" } -three sink_4_2347(volatile A&); // { dg-error "" } -four sink_4_2347(const volatile A&); // { dg-error "" } -seven sink_4_2347(volatile A&&); // { dg-error "" } +two sink_4_2347(const A&); // { dg-message "candidates" } +three sink_4_2347(volatile A&); // { dg-message "note" } +four sink_4_2347(const volatile A&); // { dg-message "note" } +seven sink_4_2347(volatile A&&); // { dg-message "note" } int test4_2347() { @@ -424,10 +424,10 @@ int test4_2347() return 0; } -two sink_4_2348(const A&); // { dg-error "" } -three sink_4_2348(volatile A&); // { dg-error "" } -four sink_4_2348(const volatile A&); // { dg-error "" } -eight sink_4_2348(const volatile A&&); // { dg-error "" } +two sink_4_2348(const A&); // { dg-message "candidates" } +three sink_4_2348(volatile A&); // { dg-message "note" } +four sink_4_2348(const volatile A&); // { dg-message "note" } +eight sink_4_2348(const volatile A&&); // { dg-message "note" } int test4_2348() { @@ -439,10 +439,10 @@ int test4_2348() return 0; } -two sink_4_2356(const A&); // { dg-error "" } -three sink_4_2356(volatile A&); // { dg-error "" } -five sink_4_2356( A&&); // { dg-error "" } -six sink_4_2356(const A&&); // { dg-error "" } +two sink_4_2356(const A&); // { dg-message "candidates" } +three sink_4_2356(volatile A&); // { dg-message "note" } +five sink_4_2356( A&&); // { dg-message "note" } +six sink_4_2356(const A&&); // { dg-message "note" } int test4_2356() { @@ -457,10 +457,10 @@ int test4_2356() return 0; } -two sink_4_2357(const A&); // { dg-error "" } -three sink_4_2357(volatile A&); // { dg-error "" } -five sink_4_2357( A&&); // { dg-error "" } -seven sink_4_2357(volatile A&&); // { dg-error "" } +two sink_4_2357(const A&); // { dg-message "candidates" } +three sink_4_2357(volatile A&); // { dg-message "note" } +five sink_4_2357( A&&); // { dg-message "note" } +seven sink_4_2357(volatile A&&); // { dg-message "note" } int test4_2357() { @@ -474,10 +474,10 @@ int test4_2357() return 0; } -two sink_4_2358(const A&); // { dg-error "" } -three sink_4_2358(volatile A&); // { dg-error "" } -five sink_4_2358( A&&); // { dg-error "" } -eight sink_4_2358(const volatile A&&); // { dg-error "" } +two sink_4_2358(const A&); // { dg-message "candidates" } +three sink_4_2358(volatile A&); // { dg-message "note" } +five sink_4_2358( A&&); // { dg-message "note" } +eight sink_4_2358(const volatile A&&); // { dg-message "note" } int test4_2358() { @@ -489,10 +489,10 @@ int test4_2358() return 0; } -two sink_4_2367(const A&); // { dg-error "" } -three sink_4_2367(volatile A&); // { dg-error "" } -six sink_4_2367(const A&&); // { dg-error "" } -seven sink_4_2367(volatile A&&); // { dg-error "" } +two sink_4_2367(const A&); // { dg-message "candidates" } +three sink_4_2367(volatile A&); // { dg-message "note" } +six sink_4_2367(const A&&); // { dg-message "note" } +seven sink_4_2367(volatile A&&); // { dg-message "note" } int test4_2367() { @@ -507,10 +507,10 @@ int test4_2367() return 0; } -two sink_4_2368(const A&); // { dg-error "" } -three sink_4_2368(volatile A&); // { dg-error "" } -six sink_4_2368(const A&&); // { dg-error "" } -eight sink_4_2368(const volatile A&&); // { dg-error "" } +two sink_4_2368(const A&); // { dg-message "candidates" } +three sink_4_2368(volatile A&); // { dg-message "note" } +six sink_4_2368(const A&&); // { dg-message "note" } +eight sink_4_2368(const volatile A&&); // { dg-message "note" } int test4_2368() { @@ -522,10 +522,10 @@ int test4_2368() return 0; } -two sink_4_2378(const A&); // { dg-error "" } -three sink_4_2378(volatile A&); // { dg-error "" } -seven sink_4_2378(volatile A&&); // { dg-error "" } -eight sink_4_2378(const volatile A&&); // { dg-error "" } +two sink_4_2378(const A&); // { dg-message "candidates" } +three sink_4_2378(volatile A&); // { dg-message "note" } +seven sink_4_2378(volatile A&&); // { dg-message "note" } +eight sink_4_2378(const volatile A&&); // { dg-message "note" } int test4_2378() { @@ -537,10 +537,10 @@ int test4_2378() return 0; } -two sink_4_2456(const A&); // { dg-error "" } -four sink_4_2456(const volatile A&); // { dg-error "" } -five sink_4_2456( A&&); // { dg-error "" } -six sink_4_2456(const A&&); // { dg-error "" } +two sink_4_2456(const A&); // { dg-message "candidates" } +four sink_4_2456(const volatile A&); // { dg-message "note" } +five sink_4_2456( A&&); // { dg-message "note" } +six sink_4_2456(const A&&); // { dg-message "note" } int test4_2456() { @@ -553,10 +553,10 @@ int test4_2456() return 0; } -two sink_4_2457(const A&); // { dg-error "" } -four sink_4_2457(const volatile A&); // { dg-error "" } -five sink_4_2457( A&&); // { dg-error "" } -seven sink_4_2457(volatile A&&); // { dg-error "" } +two sink_4_2457(const A&); // { dg-message "candidates" } +four sink_4_2457(const volatile A&); // { dg-message "note" } +five sink_4_2457( A&&); // { dg-message "note" } +seven sink_4_2457(volatile A&&); // { dg-message "note" } int test4_2457() { @@ -568,10 +568,10 @@ int test4_2457() return 0; } -two sink_4_2467(const A&); // { dg-error "" } -four sink_4_2467(const volatile A&); // { dg-error "" } -six sink_4_2467(const A&&); // { dg-error "" } -seven sink_4_2467(volatile A&&); // { dg-error "" } +two sink_4_2467(const A&); // { dg-message "candidates" } +four sink_4_2467(const volatile A&); // { dg-message "note" } +six sink_4_2467(const A&&); // { dg-message "note" } +seven sink_4_2467(volatile A&&); // { dg-message "note" } int test4_2467() { @@ -584,10 +584,10 @@ int test4_2467() return 0; } -two sink_4_2567(const A&); // { dg-error "" } -five sink_4_2567( A&&); // { dg-error "" } -six sink_4_2567(const A&&); // { dg-error "" } -seven sink_4_2567(volatile A&&); // { dg-error "" } +two sink_4_2567(const A&); // { dg-message "candidates" } +five sink_4_2567( A&&); // { dg-message "note" } +six sink_4_2567(const A&&); // { dg-message "note" } +seven sink_4_2567(volatile A&&); // { dg-message "note" } int test4_2567() { @@ -600,10 +600,10 @@ int test4_2567() return 0; } -two sink_4_2678(const A&); // { dg-error "" } -six sink_4_2678(const A&&); // { dg-error "" } -seven sink_4_2678(volatile A&&); // { dg-error "" } -eight sink_4_2678(const volatile A&&); // { dg-error "" } +two sink_4_2678(const A&); // { dg-message "candidates" } +six sink_4_2678(const A&&); // { dg-message "note" } +seven sink_4_2678(volatile A&&); // { dg-message "note" } +eight sink_4_2678(const volatile A&&); // { dg-message "note" } int test4_2678() { @@ -615,10 +615,10 @@ int test4_2678() return 0; } -three sink_4_3456(volatile A&); // { dg-error "" } -four sink_4_3456(const volatile A&); // { dg-error "" } -five sink_4_3456( A&&); // { dg-error "" } -six sink_4_3456(const A&&); // { dg-error "" } +three sink_4_3456(volatile A&); // { dg-message "candidates" } +four sink_4_3456(const volatile A&); // { dg-message "note" } +five sink_4_3456( A&&); // { dg-message "note" } +six sink_4_3456(const A&&); // { dg-message "note" } int test4_3456() { @@ -631,10 +631,10 @@ int test4_3456() return 0; } -three sink_4_3457(volatile A&); // { dg-error "" } -four sink_4_3457(const volatile A&); // { dg-error "" } -five sink_4_3457( A&&); // { dg-error "" } -seven sink_4_3457(volatile A&&); // { dg-error "" } +three sink_4_3457(volatile A&); // { dg-message "candidates" } +four sink_4_3457(const volatile A&); // { dg-message "note" } +five sink_4_3457( A&&); // { dg-message "note" } +seven sink_4_3457(volatile A&&); // { dg-message "note" } int test4_3457() { @@ -647,10 +647,10 @@ int test4_3457() return 0; } -three sink_4_3467(volatile A&); // { dg-error "" } -four sink_4_3467(const volatile A&); // { dg-error "" } -six sink_4_3467(const A&&); // { dg-error "" } -seven sink_4_3467(volatile A&&); // { dg-error "" } +three sink_4_3467(volatile A&); // { dg-message "candidates" } +four sink_4_3467(const volatile A&); // { dg-message "note" } +six sink_4_3467(const A&&); // { dg-message "note" } +seven sink_4_3467(volatile A&&); // { dg-message "note" } int test4_3467() { @@ -663,10 +663,10 @@ int test4_3467() return 0; } -three sink_4_3567(volatile A&); // { dg-error "" } -five sink_4_3567( A&&); // { dg-error "" } -six sink_4_3567(const A&&); // { dg-error "" } -seven sink_4_3567(volatile A&&); // { dg-error "" } +three sink_4_3567(volatile A&); // { dg-message "candidates" } +five sink_4_3567( A&&); // { dg-message "note" } +six sink_4_3567(const A&&); // { dg-message "note" } +seven sink_4_3567(volatile A&&); // { dg-message "note" } int test4_3567() { @@ -680,9 +680,9 @@ int test4_3567() } three sink_4_3678(volatile A&); -six sink_4_3678(const A&&); // { dg-error "" } -seven sink_4_3678(volatile A&&); // { dg-error "" } -eight sink_4_3678(const volatile A&&); // { dg-error "" } +six sink_4_3678(const A&&); // { dg-message "candidates" } +seven sink_4_3678(volatile A&&); // { dg-message "note" } +eight sink_4_3678(const volatile A&&); // { dg-message "note" } int test4_3678() { @@ -694,10 +694,10 @@ int test4_3678() return 0; } -four sink_4_4567(const volatile A&); // { dg-error "" } -five sink_4_4567( A&&); // { dg-error "" } -six sink_4_4567(const A&&); // { dg-error "" } -seven sink_4_4567(volatile A&&); // { dg-error "" } +four sink_4_4567(const volatile A&); // { dg-message "candidates" } +five sink_4_4567( A&&); // { dg-message "note" } +six sink_4_4567(const A&&); // { dg-message "note" } +seven sink_4_4567(volatile A&&); // { dg-message "note" } int test4_4567() { @@ -710,9 +710,9 @@ int test4_4567() } four sink_4_4678(const volatile A&); -six sink_4_4678(const A&&); // { dg-error "" } -seven sink_4_4678(volatile A&&); // { dg-error "" } -eight sink_4_4678(const volatile A&&); // { dg-error "" } +six sink_4_4678(const A&&); // { dg-message "candidates" } +seven sink_4_4678(volatile A&&); // { dg-message "note" } +eight sink_4_4678(const volatile A&&); // { dg-message "note" } int test4_4678() { diff --git a/gcc/testsuite/g++.dg/cpp0x/rv5n.C b/gcc/testsuite/g++.dg/cpp0x/rv5n.C index 715716e45ee..14128b2aa36 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv5n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv5n.C @@ -30,11 +30,11 @@ const volatile A cv_source(); // 5 at a time -one sink_5_12345( A&); // { dg-error "" } -two sink_5_12345(const A&); // { dg-error "" } -three sink_5_12345(volatile A&); // { dg-error "" } -four sink_5_12345(const volatile A&); // { dg-error "" } -five sink_5_12345( A&&); // { dg-error "" } +one sink_5_12345( A&); // { dg-message "candidates" } +two sink_5_12345(const A&); // { dg-message "note" } +three sink_5_12345(volatile A&); // { dg-message "note" } +four sink_5_12345(const volatile A&); // { dg-message "note" } +five sink_5_12345( A&&); // { dg-message "note" } int test5_12345() { @@ -47,11 +47,11 @@ int test5_12345() return 0; } -one sink_5_12346( A&); // { dg-error "" } -two sink_5_12346(const A&); // { dg-error "" } -three sink_5_12346(volatile A&); // { dg-error "" } -four sink_5_12346(const volatile A&); // { dg-error "" } -six sink_5_12346(const A&&); // { dg-error "" } +one sink_5_12346( A&); // { dg-message "candidates" } +two sink_5_12346(const A&); // { dg-message "note" } +three sink_5_12346(volatile A&); // { dg-message "note" } +four sink_5_12346(const volatile A&); // { dg-message "note" } +six sink_5_12346(const A&&); // { dg-message "note" } int test5_12346() { @@ -64,11 +64,11 @@ int test5_12346() return 0; } -one sink_5_12347( A&); // { dg-error "" } -two sink_5_12347(const A&); // { dg-error "" } -three sink_5_12347(volatile A&); // { dg-error "" } -four sink_5_12347(const volatile A&); // { dg-error "" } -seven sink_5_12347(volatile A&&); // { dg-error "" } +one sink_5_12347( A&); // { dg-message "candidates" } +two sink_5_12347(const A&); // { dg-message "note" } +three sink_5_12347(volatile A&); // { dg-message "note" } +four sink_5_12347(const volatile A&); // { dg-message "note" } +seven sink_5_12347(volatile A&&); // { dg-message "note" } int test5_12347() { @@ -80,11 +80,11 @@ int test5_12347() return 0; } -one sink_5_12356( A&); // { dg-error "" } -two sink_5_12356(const A&); // { dg-error "" } -three sink_5_12356(volatile A&); // { dg-error "" } -five sink_5_12356( A&&); // { dg-error "" } -six sink_5_12356(const A&&); // { dg-error "" } +one sink_5_12356( A&); // { dg-message "candidates" } +two sink_5_12356(const A&); // { dg-message "note" } +three sink_5_12356(volatile A&); // { dg-message "note" } +five sink_5_12356( A&&); // { dg-message "note" } +six sink_5_12356(const A&&); // { dg-message "note" } int test5_12356() { @@ -98,11 +98,11 @@ int test5_12356() return 0; } -one sink_5_12357( A&); // { dg-error "" } -two sink_5_12357(const A&); // { dg-error "" } -three sink_5_12357(volatile A&); // { dg-error "" } -five sink_5_12357( A&&); // { dg-error "" } -seven sink_5_12357(volatile A&&); // { dg-error "" } +one sink_5_12357( A&); // { dg-message "candidates" } +two sink_5_12357(const A&); // { dg-message "note" } +three sink_5_12357(volatile A&); // { dg-message "note" } +five sink_5_12357( A&&); // { dg-message "note" } +seven sink_5_12357(volatile A&&); // { dg-message "note" } int test5_12357() { @@ -115,11 +115,11 @@ int test5_12357() return 0; } -one sink_5_12367( A&); // { dg-error "" } -two sink_5_12367(const A&); // { dg-error "" } -three sink_5_12367(volatile A&); // { dg-error "" } -six sink_5_12367(const A&&); // { dg-error "" } -seven sink_5_12367(volatile A&&); // { dg-error "" } +one sink_5_12367( A&); // { dg-message "candidates" } +two sink_5_12367(const A&); // { dg-message "note" } +three sink_5_12367(volatile A&); // { dg-message "note" } +six sink_5_12367(const A&&); // { dg-message "note" } +seven sink_5_12367(volatile A&&); // { dg-message "note" } int test5_12367() { @@ -133,11 +133,11 @@ int test5_12367() return 0; } -one sink_5_12456( A&); // { dg-error "" } -two sink_5_12456(const A&); // { dg-error "" } -four sink_5_12456(const volatile A&); // { dg-error "" } -five sink_5_12456( A&&); // { dg-error "" } -six sink_5_12456(const A&&); // { dg-error "" } +one sink_5_12456( A&); // { dg-message "candidates" } +two sink_5_12456(const A&); // { dg-message "note" } +four sink_5_12456(const volatile A&); // { dg-message "note" } +five sink_5_12456( A&&); // { dg-message "note" } +six sink_5_12456(const A&&); // { dg-message "note" } int test5_12456() { @@ -150,11 +150,11 @@ int test5_12456() return 0; } -one sink_5_12457( A&); // { dg-error "" } -two sink_5_12457(const A&); // { dg-error "" } -four sink_5_12457(const volatile A&); // { dg-error "" } -five sink_5_12457( A&&); // { dg-error "" } -seven sink_5_12457(volatile A&&); // { dg-error "" } +one sink_5_12457( A&); // { dg-message "candidates" } +two sink_5_12457(const A&); // { dg-message "note" } +four sink_5_12457(const volatile A&); // { dg-message "note" } +five sink_5_12457( A&&); // { dg-message "note" } +seven sink_5_12457(volatile A&&); // { dg-message "note" } int test5_12457() { @@ -166,11 +166,11 @@ int test5_12457() return 0; } -one sink_5_12467( A&); // { dg-error "" } -two sink_5_12467(const A&); // { dg-error "" } -four sink_5_12467(const volatile A&); // { dg-error "" } -six sink_5_12467(const A&&); // { dg-error "" } -seven sink_5_12467(volatile A&&); // { dg-error "" } +one sink_5_12467( A&); // { dg-message "candidates" } +two sink_5_12467(const A&); // { dg-message "note" } +four sink_5_12467(const volatile A&); // { dg-message "note" } +six sink_5_12467(const A&&); // { dg-message "note" } +seven sink_5_12467(volatile A&&); // { dg-message "note" } int test5_12467() { @@ -183,11 +183,11 @@ int test5_12467() return 0; } -one sink_5_12567( A&); // { dg-error "" } -two sink_5_12567(const A&); // { dg-error "" } -five sink_5_12567( A&&); // { dg-error "" } -six sink_5_12567(const A&&); // { dg-error "" } -seven sink_5_12567(volatile A&&); // { dg-error "" } +one sink_5_12567( A&); // { dg-message "candidates" } +two sink_5_12567(const A&); // { dg-message "note" } +five sink_5_12567( A&&); // { dg-message "note" } +six sink_5_12567(const A&&); // { dg-message "note" } +seven sink_5_12567(volatile A&&); // { dg-message "note" } int test5_12567() { @@ -201,10 +201,10 @@ int test5_12567() } one sink_5_12678( A&); -two sink_5_12678(const A&); // { dg-error "" } -six sink_5_12678(const A&&); // { dg-error "" } -seven sink_5_12678(volatile A&&); // { dg-error "" } -eight sink_5_12678(const volatile A&&); // { dg-error "" } +two sink_5_12678(const A&); // { dg-message "candidates" } +six sink_5_12678(const A&&); // { dg-message "note" } +seven sink_5_12678(volatile A&&); // { dg-message "note" } +eight sink_5_12678(const volatile A&&); // { dg-message "note" } int test5_12678() { @@ -216,11 +216,11 @@ int test5_12678() return 0; } -one sink_5_13456( A&); // { dg-error "" } -three sink_5_13456(volatile A&); // { dg-error "" } -four sink_5_13456(const volatile A&); // { dg-error "" } -five sink_5_13456( A&&); // { dg-error "" } -six sink_5_13456(const A&&); // { dg-error "" } +one sink_5_13456( A&); // { dg-message "candidates" } +three sink_5_13456(volatile A&); // { dg-message "note" } +four sink_5_13456(const volatile A&); // { dg-message "note" } +five sink_5_13456( A&&); // { dg-message "note" } +six sink_5_13456(const A&&); // { dg-message "note" } int test5_13456() { @@ -233,11 +233,11 @@ int test5_13456() return 0; } -one sink_5_13457( A&); // { dg-error "" } -three sink_5_13457(volatile A&); // { dg-error "" } -four sink_5_13457(const volatile A&); // { dg-error "" } -five sink_5_13457( A&&); // { dg-error "" } -seven sink_5_13457(volatile A&&); // { dg-error "" } +one sink_5_13457( A&); // { dg-message "candidates" } +three sink_5_13457(volatile A&); // { dg-message "note" } +four sink_5_13457(const volatile A&); // { dg-message "note" } +five sink_5_13457( A&&); // { dg-message "note" } +seven sink_5_13457(volatile A&&); // { dg-message "note" } int test5_13457() { @@ -250,11 +250,11 @@ int test5_13457() return 0; } -one sink_5_13467( A&); // { dg-error "" } -three sink_5_13467(volatile A&); // { dg-error "" } -four sink_5_13467(const volatile A&); // { dg-error "" } -six sink_5_13467(const A&&); // { dg-error "" } -seven sink_5_13467(volatile A&&); // { dg-error "" } +one sink_5_13467( A&); // { dg-message "candidates" } +three sink_5_13467(volatile A&); // { dg-message "note" } +four sink_5_13467(const volatile A&); // { dg-message "note" } +six sink_5_13467(const A&&); // { dg-message "note" } +seven sink_5_13467(volatile A&&); // { dg-message "note" } int test5_13467() { @@ -267,11 +267,11 @@ int test5_13467() return 0; } -one sink_5_13567( A&); // { dg-error "" } -three sink_5_13567(volatile A&); // { dg-error "" } -five sink_5_13567( A&&); // { dg-error "" } -six sink_5_13567(const A&&); // { dg-error "" } -seven sink_5_13567(volatile A&&); // { dg-error "" } +one sink_5_13567( A&); // { dg-message "candidates" } +three sink_5_13567(volatile A&); // { dg-message "note" } +five sink_5_13567( A&&); // { dg-message "note" } +six sink_5_13567(const A&&); // { dg-message "note" } +seven sink_5_13567(volatile A&&); // { dg-message "note" } int test5_13567() { @@ -286,9 +286,9 @@ int test5_13567() one sink_5_13678( A&); three sink_5_13678(volatile A&); -six sink_5_13678(const A&&); // { dg-error "" } -seven sink_5_13678(volatile A&&); // { dg-error "" } -eight sink_5_13678(const volatile A&&); // { dg-error "" } +six sink_5_13678(const A&&); // { dg-message "candidates" } +seven sink_5_13678(volatile A&&); // { dg-message "note" } +eight sink_5_13678(const volatile A&&); // { dg-message "note" } int test5_13678() { @@ -300,11 +300,11 @@ int test5_13678() return 0; } -one sink_5_14567( A&); // { dg-error "" } -four sink_5_14567(const volatile A&); // { dg-error "" } -five sink_5_14567( A&&); // { dg-error "" } -six sink_5_14567(const A&&); // { dg-error "" } -seven sink_5_14567(volatile A&&); // { dg-error "" } +one sink_5_14567( A&); // { dg-message "candidates" } +four sink_5_14567(const volatile A&); // { dg-message "note" } +five sink_5_14567( A&&); // { dg-message "note" } +six sink_5_14567(const A&&); // { dg-message "note" } +seven sink_5_14567(volatile A&&); // { dg-message "note" } int test5_14567() { @@ -318,9 +318,9 @@ int test5_14567() one sink_5_14678( A&); four sink_5_14678(const volatile A&); -six sink_5_14678(const A&&); // { dg-error "" } -seven sink_5_14678(volatile A&&); // { dg-error "" } -eight sink_5_14678(const volatile A&&); // { dg-error "" } +six sink_5_14678(const A&&); // { dg-message "candidates" } +seven sink_5_14678(volatile A&&); // { dg-message "note" } +eight sink_5_14678(const volatile A&&); // { dg-message "note" } int test5_14678() { @@ -332,11 +332,11 @@ int test5_14678() return 0; } -two sink_5_23456(const A&); // { dg-error "" } -three sink_5_23456(volatile A&); // { dg-error "" } -four sink_5_23456(const volatile A&); // { dg-error "" } -five sink_5_23456( A&&); // { dg-error "" } -six sink_5_23456(const A&&); // { dg-error "" } +two sink_5_23456(const A&); // { dg-message "candidates" } +three sink_5_23456(volatile A&); // { dg-message "note" } +four sink_5_23456(const volatile A&); // { dg-message "note" } +five sink_5_23456( A&&); // { dg-message "note" } +six sink_5_23456(const A&&); // { dg-message "note" } int test5_23456() { @@ -350,11 +350,11 @@ int test5_23456() return 0; } -two sink_5_23457(const A&); // { dg-error "" } -three sink_5_23457(volatile A&); // { dg-error "" } -four sink_5_23457(const volatile A&); // { dg-error "" } -five sink_5_23457( A&&); // { dg-error "" } -seven sink_5_23457(volatile A&&); // { dg-error "" } +two sink_5_23457(const A&); // { dg-message "candidates" } +three sink_5_23457(volatile A&); // { dg-message "note" } +four sink_5_23457(const volatile A&); // { dg-message "note" } +five sink_5_23457( A&&); // { dg-message "note" } +seven sink_5_23457(volatile A&&); // { dg-message "note" } int test5_23457() { @@ -367,11 +367,11 @@ int test5_23457() return 0; } -two sink_5_23458(const A&); // { dg-error "" } -three sink_5_23458(volatile A&); // { dg-error "" } -four sink_5_23458(const volatile A&); // { dg-error "" } -five sink_5_23458( A&&); // { dg-error "" } -eight sink_5_23458(const volatile A&&); // { dg-error "" } +two sink_5_23458(const A&); // { dg-message "candidates" } +three sink_5_23458(volatile A&); // { dg-message "note" } +four sink_5_23458(const volatile A&); // { dg-message "note" } +five sink_5_23458( A&&); // { dg-message "note" } +eight sink_5_23458(const volatile A&&); // { dg-message "note" } int test5_23458() { @@ -383,11 +383,11 @@ int test5_23458() return 0; } -two sink_5_23467(const A&); // { dg-error "" } -three sink_5_23467(volatile A&); // { dg-error "" } -four sink_5_23467(const volatile A&); // { dg-error "" } -six sink_5_23467(const A&&); // { dg-error "" } -seven sink_5_23467(volatile A&&); // { dg-error "" } +two sink_5_23467(const A&); // { dg-message "candidates" } +three sink_5_23467(volatile A&); // { dg-message "note" } +four sink_5_23467(const volatile A&); // { dg-message "note" } +six sink_5_23467(const A&&); // { dg-message "note" } +seven sink_5_23467(volatile A&&); // { dg-message "note" } int test5_23467() { @@ -401,11 +401,11 @@ int test5_23467() return 0; } -two sink_5_23468(const A&); // { dg-error "" } -three sink_5_23468(volatile A&); // { dg-error "" } -four sink_5_23468(const volatile A&); // { dg-error "" } -six sink_5_23468(const A&&); // { dg-error "" } -eight sink_5_23468(const volatile A&&); // { dg-error "" } +two sink_5_23468(const A&); // { dg-message "candidates" } +three sink_5_23468(volatile A&); // { dg-message "note" } +four sink_5_23468(const volatile A&); // { dg-message "note" } +six sink_5_23468(const A&&); // { dg-message "note" } +eight sink_5_23468(const volatile A&&); // { dg-message "note" } int test5_23468() { @@ -417,11 +417,11 @@ int test5_23468() return 0; } -two sink_5_23478(const A&); // { dg-error "" } -three sink_5_23478(volatile A&); // { dg-error "" } -four sink_5_23478(const volatile A&); // { dg-error "" } -seven sink_5_23478(volatile A&&); // { dg-error "" } -eight sink_5_23478(const volatile A&&); // { dg-error "" } +two sink_5_23478(const A&); // { dg-message "candidates" } +three sink_5_23478(volatile A&); // { dg-message "note" } +four sink_5_23478(const volatile A&); // { dg-message "note" } +seven sink_5_23478(volatile A&&); // { dg-message "note" } +eight sink_5_23478(const volatile A&&); // { dg-message "note" } int test5_23478() { @@ -433,11 +433,11 @@ int test5_23478() return 0; } -two sink_5_23567(const A&); // { dg-error "" } -three sink_5_23567(volatile A&); // { dg-error "" } -five sink_5_23567( A&&); // { dg-error "" } -six sink_5_23567(const A&&); // { dg-error "" } -seven sink_5_23567(volatile A&&); // { dg-error "" } +two sink_5_23567(const A&); // { dg-message "candidates" } +three sink_5_23567(volatile A&); // { dg-message "note" } +five sink_5_23567( A&&); // { dg-message "note" } +six sink_5_23567(const A&&); // { dg-message "note" } +seven sink_5_23567(volatile A&&); // { dg-message "note" } int test5_23567() { @@ -451,11 +451,11 @@ int test5_23567() return 0; } -two sink_5_23568(const A&); // { dg-error "" } -three sink_5_23568(volatile A&); // { dg-error "" } -five sink_5_23568( A&&); // { dg-error "" } -six sink_5_23568(const A&&); // { dg-error "" } -eight sink_5_23568(const volatile A&&); // { dg-error "" } +two sink_5_23568(const A&); // { dg-message "candidates" } +three sink_5_23568(volatile A&); // { dg-message "note" } +five sink_5_23568( A&&); // { dg-message "note" } +six sink_5_23568(const A&&); // { dg-message "note" } +eight sink_5_23568(const volatile A&&); // { dg-message "note" } int test5_23568() { @@ -467,11 +467,11 @@ int test5_23568() return 0; } -two sink_5_23578(const A&); // { dg-error "" } -three sink_5_23578(volatile A&); // { dg-error "" } -five sink_5_23578( A&&); // { dg-error "" } -seven sink_5_23578(volatile A&&); // { dg-error "" } -eight sink_5_23578(const volatile A&&); // { dg-error "" } +two sink_5_23578(const A&); // { dg-message "candidates" } +three sink_5_23578(volatile A&); // { dg-message "note" } +five sink_5_23578( A&&); // { dg-message "note" } +seven sink_5_23578(volatile A&&); // { dg-message "note" } +eight sink_5_23578(const volatile A&&); // { dg-message "note" } int test5_23578() { @@ -483,11 +483,11 @@ int test5_23578() return 0; } -two sink_5_23678(const A&); // { dg-error "" } -three sink_5_23678(volatile A&); // { dg-error "" } -six sink_5_23678(const A&&); // { dg-error "" } -seven sink_5_23678(volatile A&&); // { dg-error "" } -eight sink_5_23678(const volatile A&&); // { dg-error "" } +two sink_5_23678(const A&); // { dg-message "candidates" } +three sink_5_23678(volatile A&); // { dg-message "note" } +six sink_5_23678(const A&&); // { dg-message "note" } +seven sink_5_23678(volatile A&&); // { dg-message "note" } +eight sink_5_23678(const volatile A&&); // { dg-message "note" } int test5_23678() { @@ -500,11 +500,11 @@ int test5_23678() return 0; } -two sink_5_24567(const A&); // { dg-error "" } -four sink_5_24567(const volatile A&); // { dg-error "" } -five sink_5_24567( A&&); // { dg-error "" } -six sink_5_24567(const A&&); // { dg-error "" } -seven sink_5_24567(volatile A&&); // { dg-error "" } +two sink_5_24567(const A&); // { dg-message "candidates" } +four sink_5_24567(const volatile A&); // { dg-message "note" } +five sink_5_24567( A&&); // { dg-message "note" } +six sink_5_24567(const A&&); // { dg-message "note" } +seven sink_5_24567(volatile A&&); // { dg-message "note" } int test5_24567() { @@ -516,11 +516,11 @@ int test5_24567() return 0; } -two sink_5_24678(const A&); // { dg-error "" } +two sink_5_24678(const A&); // { dg-message "candidates" } four sink_5_24678(const volatile A&); -six sink_5_24678(const A&&); // { dg-error "" } -seven sink_5_24678(volatile A&&); // { dg-error "" } -eight sink_5_24678(const volatile A&&); // { dg-error "" } +six sink_5_24678(const A&&); // { dg-message "note" } +seven sink_5_24678(volatile A&&); // { dg-message "note" } +eight sink_5_24678(const volatile A&&); // { dg-message "note" } int test5_24678() { @@ -532,11 +532,11 @@ int test5_24678() return 0; } -three sink_5_34567(volatile A&); // { dg-error "" } -four sink_5_34567(const volatile A&); // { dg-error "" } -five sink_5_34567( A&&); // { dg-error "" } -six sink_5_34567(const A&&); // { dg-error "" } -seven sink_5_34567(volatile A&&); // { dg-error "" } +three sink_5_34567(volatile A&); // { dg-message "candidates" } +four sink_5_34567(const volatile A&); // { dg-message "note" } +five sink_5_34567( A&&); // { dg-message "note" } +six sink_5_34567(const A&&); // { dg-message "note" } +seven sink_5_34567(volatile A&&); // { dg-message "note" } int test5_34567() { @@ -550,9 +550,9 @@ int test5_34567() three sink_5_34678(volatile A&); four sink_5_34678(const volatile A&); -six sink_5_34678(const A&&); // { dg-error "" } -seven sink_5_34678(volatile A&&); // { dg-error "" } -eight sink_5_34678(const volatile A&&); // { dg-error "" } +six sink_5_34678(const A&&); // { dg-message "candidates" } +seven sink_5_34678(volatile A&&); // { dg-message "note" } +eight sink_5_34678(const volatile A&&); // { dg-message "note" } int test5_34678() { diff --git a/gcc/testsuite/g++.dg/cpp0x/rv6n.C b/gcc/testsuite/g++.dg/cpp0x/rv6n.C index 9a925ef0c61..040c0f6c3e8 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv6n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv6n.C @@ -30,12 +30,12 @@ const volatile A cv_source(); // 6 at a time -one sink_6_123456( A&); // { dg-error "" } -two sink_6_123456(const A&); // { dg-error "" } -three sink_6_123456(volatile A&); // { dg-error "" } -four sink_6_123456(const volatile A&); // { dg-error "" } -five sink_6_123456( A&&); // { dg-error "" } -six sink_6_123456(const A&&); // { dg-error "" } +one sink_6_123456( A&); // { dg-message "candidates" } +two sink_6_123456(const A&); // { dg-message "note" } +three sink_6_123456(volatile A&); // { dg-message "note" } +four sink_6_123456(const volatile A&); // { dg-message "note" } +five sink_6_123456( A&&); // { dg-message "note" } +six sink_6_123456(const A&&); // { dg-message "note" } int test6_123456() { @@ -48,12 +48,12 @@ int test6_123456() return 0; } -one sink_6_123457( A&); // { dg-error "" } -two sink_6_123457(const A&); // { dg-error "" } -three sink_6_123457(volatile A&); // { dg-error "" } -four sink_6_123457(const volatile A&); // { dg-error "" } -five sink_6_123457( A&&); // { dg-error "" } -seven sink_6_123457(volatile A&&); // { dg-error "" } +one sink_6_123457( A&); // { dg-message "candidates" } +two sink_6_123457(const A&); // { dg-message "note" } +three sink_6_123457(volatile A&); // { dg-message "note" } +four sink_6_123457(const volatile A&); // { dg-message "note" } +five sink_6_123457( A&&); // { dg-message "note" } +seven sink_6_123457(volatile A&&); // { dg-message "note" } int test6_123457() { @@ -65,12 +65,12 @@ int test6_123457() return 0; } -two sink_6_235678(const A&); // { dg-error "" } -three sink_6_235678(volatile A&); // { dg-error "" } -five sink_6_235678( A&&); // { dg-error "" } -six sink_6_235678(const A&&); // { dg-error "" } -seven sink_6_235678(volatile A&&); // { dg-error "" } -eight sink_6_235678(const volatile A&&); // { dg-error "" } +two sink_6_235678(const A&); // { dg-message "candidates" } +three sink_6_235678(volatile A&); // { dg-message "note" } +five sink_6_235678( A&&); // { dg-message "note" } +six sink_6_235678(const A&&); // { dg-message "note" } +seven sink_6_235678(volatile A&&); // { dg-message "note" } +eight sink_6_235678(const volatile A&&); // { dg-message "note" } int test6_235678() { @@ -82,12 +82,12 @@ int test6_235678() return 0; } -two sink_6_234678(const A&); // { dg-error "" } -three sink_6_234678(volatile A&); // { dg-error "" } -four sink_6_234678(const volatile A&); // { dg-error "" } -six sink_6_234678(const A&&); // { dg-error "" } -seven sink_6_234678(volatile A&&); // { dg-error "" } -eight sink_6_234678(const volatile A&&); // { dg-error "" } +two sink_6_234678(const A&); // { dg-message "candidates" } +three sink_6_234678(volatile A&); // { dg-message "note" } +four sink_6_234678(const volatile A&); // { dg-message "note" } +six sink_6_234678(const A&&); // { dg-message "note" } +seven sink_6_234678(volatile A&&); // { dg-message "note" } +eight sink_6_234678(const volatile A&&); // { dg-message "note" } int test6_234678() { @@ -100,12 +100,12 @@ int test6_234678() return 0; } -two sink_6_234578(const A&); // { dg-error "" } -three sink_6_234578(volatile A&); // { dg-error "" } -four sink_6_234578(const volatile A&); // { dg-error "" } -five sink_6_234578( A&&); // { dg-error "" } -seven sink_6_234578(volatile A&&); // { dg-error "" } -eight sink_6_234578(const volatile A&&); // { dg-error "" } +two sink_6_234578(const A&); // { dg-message "candidates" } +three sink_6_234578(volatile A&); // { dg-message "note" } +four sink_6_234578(const volatile A&); // { dg-message "note" } +five sink_6_234578( A&&); // { dg-message "note" } +seven sink_6_234578(volatile A&&); // { dg-message "note" } +eight sink_6_234578(const volatile A&&); // { dg-message "note" } int test6_234578() { @@ -117,12 +117,12 @@ int test6_234578() return 0; } -two sink_6_234568(const A&); // { dg-error "" } -three sink_6_234568(volatile A&); // { dg-error "" } -four sink_6_234568(const volatile A&); // { dg-error "" } -five sink_6_234568( A&&); // { dg-error "" } -six sink_6_234568(const A&&); // { dg-error "" } -eight sink_6_234568(const volatile A&&); // { dg-error "" } +two sink_6_234568(const A&); // { dg-message "candidates" } +three sink_6_234568(volatile A&); // { dg-message "note" } +four sink_6_234568(const volatile A&); // { dg-message "note" } +five sink_6_234568( A&&); // { dg-message "note" } +six sink_6_234568(const A&&); // { dg-message "note" } +eight sink_6_234568(const volatile A&&); // { dg-message "note" } int test6_234568() { @@ -134,12 +134,12 @@ int test6_234568() return 0; } -two sink_6_234567(const A&); // { dg-error "" } -three sink_6_234567(volatile A&); // { dg-error "" } -four sink_6_234567(const volatile A&); // { dg-error "" } -five sink_6_234567( A&&); // { dg-error "" } -six sink_6_234567(const A&&); // { dg-error "" } -seven sink_6_234567(volatile A&&); // { dg-error "" } +two sink_6_234567(const A&); // { dg-message "candidates" } +three sink_6_234567(volatile A&); // { dg-message "note" } +four sink_6_234567(const volatile A&); // { dg-message "note" } +five sink_6_234567( A&&); // { dg-message "note" } +six sink_6_234567(const A&&); // { dg-message "note" } +seven sink_6_234567(volatile A&&); // { dg-message "note" } int test6_234567() { @@ -155,9 +155,9 @@ int test6_234567() one sink_6_134678( A&); three sink_6_134678(volatile A&); four sink_6_134678(const volatile A&); -six sink_6_134678(const A&&); // { dg-error "" } -seven sink_6_134678(volatile A&&); // { dg-error "" } -eight sink_6_134678(const volatile A&&); // { dg-error "" } +six sink_6_134678(const A&&); // { dg-message "candidates" } +seven sink_6_134678(volatile A&&); // { dg-message "note" } +eight sink_6_134678(const volatile A&&); // { dg-message "note" } int test6_134678() { @@ -170,11 +170,11 @@ int test6_134678() } one sink_6_124678( A&); -two sink_6_124678(const A&); // { dg-error "" } +two sink_6_124678(const A&); // { dg-message "candidates" } four sink_6_124678(const volatile A&); -six sink_6_124678(const A&&); // { dg-error "" } -seven sink_6_124678(volatile A&&); // { dg-error "" } -eight sink_6_124678(const volatile A&&); // { dg-error "" } +six sink_6_124678(const A&&); // { dg-message "note" } +seven sink_6_124678(volatile A&&); // { dg-message "note" } +eight sink_6_124678(const volatile A&&); // { dg-message "note" } int test6_124678() { @@ -187,11 +187,11 @@ int test6_124678() } one sink_6_123678( A&); -two sink_6_123678(const A&); // { dg-error "" } +two sink_6_123678(const A&); // { dg-message "candidates" } three sink_6_123678(volatile A&); -six sink_6_123678(const A&&); // { dg-error "" } -seven sink_6_123678(volatile A&&); // { dg-error "" } -eight sink_6_123678(const volatile A&&); // { dg-error "" } +six sink_6_123678(const A&&); // { dg-message "note" } +seven sink_6_123678(volatile A&&); // { dg-message "note" } +eight sink_6_123678(const volatile A&&); // { dg-message "note" } int test6_123678() { @@ -203,12 +203,12 @@ int test6_123678() return 0; } -one sink_6_123567( A&); // { dg-error "" } -two sink_6_123567(const A&); // { dg-error "" } -three sink_6_123567(volatile A&); // { dg-error "" } -five sink_6_123567( A&&); // { dg-error "" } -six sink_6_123567(const A&&); // { dg-error "" } -seven sink_6_123567(volatile A&&); // { dg-error "" } +one sink_6_123567( A&); // { dg-message "candidates" } +two sink_6_123567(const A&); // { dg-message "note" } +three sink_6_123567(volatile A&); // { dg-message "note" } +five sink_6_123567( A&&); // { dg-message "note" } +six sink_6_123567(const A&&); // { dg-message "note" } +seven sink_6_123567(volatile A&&); // { dg-message "note" } int test6_123567() { @@ -221,12 +221,12 @@ int test6_123567() return 0; } -one sink_6_123467( A&); // { dg-error "" } -two sink_6_123467(const A&); // { dg-error "" } -three sink_6_123467(volatile A&); // { dg-error "" } -four sink_6_123467(const volatile A&); // { dg-error "" } -six sink_6_123467(const A&&); // { dg-error "" } -seven sink_6_123467(volatile A&&); // { dg-error "" } +one sink_6_123467( A&); // { dg-message "candidates" } +two sink_6_123467(const A&); // { dg-message "note" } +three sink_6_123467(volatile A&); // { dg-message "note" } +four sink_6_123467(const volatile A&); // { dg-message "note" } +six sink_6_123467(const A&&); // { dg-message "note" } +seven sink_6_123467(volatile A&&); // { dg-message "note" } int test6_123467() { @@ -239,12 +239,12 @@ int test6_123467() return 0; } -one sink_6_124567( A&); // { dg-error "" } -two sink_6_124567(const A&); // { dg-error "" } -four sink_6_124567(const volatile A&); // { dg-error "" } -five sink_6_124567( A&&); // { dg-error "" } -six sink_6_124567(const A&&); // { dg-error "" } -seven sink_6_124567(volatile A&&); // { dg-error "" } +one sink_6_124567( A&); // { dg-message "candidates" } +two sink_6_124567(const A&); // { dg-message "note" } +four sink_6_124567(const volatile A&); // { dg-message "note" } +five sink_6_124567( A&&); // { dg-message "note" } +six sink_6_124567(const A&&); // { dg-message "note" } +seven sink_6_124567(volatile A&&); // { dg-message "note" } int test6_124567() { @@ -256,12 +256,12 @@ int test6_124567() return 0; } -one sink_6_134567( A&); // { dg-error "" } -three sink_6_134567(volatile A&); // { dg-error "" } -four sink_6_134567(const volatile A&); // { dg-error "" } -five sink_6_134567( A&&); // { dg-error "" } -six sink_6_134567(const A&&); // { dg-error "" } -seven sink_6_134567(volatile A&&); // { dg-error "" } +one sink_6_134567( A&); // { dg-message "candidates" } +three sink_6_134567(volatile A&); // { dg-message "note" } +four sink_6_134567(const volatile A&); // { dg-message "note" } +five sink_6_134567( A&&); // { dg-message "note" } +six sink_6_134567(const A&&); // { dg-message "note" } +seven sink_6_134567(volatile A&&); // { dg-message "note" } int test6_134567() { diff --git a/gcc/testsuite/g++.dg/cpp0x/rv7n.C b/gcc/testsuite/g++.dg/cpp0x/rv7n.C index acd884bdde4..9d81bd5d722 100644 --- a/gcc/testsuite/g++.dg/cpp0x/rv7n.C +++ b/gcc/testsuite/g++.dg/cpp0x/rv7n.C @@ -1,6 +1,6 @@ // I, Howard Hinnant, hereby place this code in the public domain. -// Test overlaod resolution among referece types +// Test overload resolution among reference types // { dg-do compile } // { dg-options "-std=c++0x" } @@ -30,13 +30,13 @@ const volatile A cv_source(); // 7 at a time -one sink_7_1234567( A&); // { dg-error "" } -two sink_7_1234567(const A&); // { dg-error "" } -three sink_7_1234567(volatile A&); // { dg-error "" } -four sink_7_1234567(const volatile A&); // { dg-error "" } -five sink_7_1234567( A&&); // { dg-error "" } -six sink_7_1234567(const A&&); // { dg-error "" } -seven sink_7_1234567(volatile A&&); // { dg-error "" } +one sink_7_1234567( A&); // { dg-message "candidates" } +two sink_7_1234567(const A&); // { dg-message "note" } +three sink_7_1234567(volatile A&); // { dg-message "note" } +four sink_7_1234567(const volatile A&); // { dg-message "note" } +five sink_7_1234567( A&&); // { dg-message "note" } +six sink_7_1234567(const A&&); // { dg-message "note" } +seven sink_7_1234567(volatile A&&); // { dg-message "note" } int test7_1234567() { @@ -48,13 +48,13 @@ int test7_1234567() return 0; } -two sink_7_2345678(const A&); // { dg-error "" } -three sink_7_2345678(volatile A&); // { dg-error "" } -four sink_7_2345678(const volatile A&); // { dg-error "" } -five sink_7_2345678( A&&); // { dg-error "" } -six sink_7_2345678(const A&&); // { dg-error "" } -seven sink_7_2345678(volatile A&&); // { dg-error "" } -eight sink_7_2345678(const volatile A&&); // { dg-error "" } +two sink_7_2345678(const A&); // { dg-message "candidates" } +three sink_7_2345678(volatile A&); // { dg-message "note" } +four sink_7_2345678(const volatile A&); // { dg-message "note" } +five sink_7_2345678( A&&); // { dg-message "note" } +six sink_7_2345678(const A&&); // { dg-message "note" } +seven sink_7_2345678(volatile A&&); // { dg-message "note" } +eight sink_7_2345678(const volatile A&&); // { dg-message "note" } int test7_2345678() { @@ -67,12 +67,12 @@ int test7_2345678() } one sink_7_1234678( A&); -two sink_7_1234678(const A&); // { dg-error "" } +two sink_7_1234678(const A&); // { dg-message "candidates" } three sink_7_1234678(volatile A&); four sink_7_1234678(const volatile A&); -six sink_7_1234678(const A&&); // { dg-error "" } -seven sink_7_1234678(volatile A&&); // { dg-error "" } -eight sink_7_1234678(const volatile A&&); // { dg-error "" } +six sink_7_1234678(const A&&); // { dg-message "note" } +seven sink_7_1234678(volatile A&&); // { dg-message "note" } +eight sink_7_1234678(const volatile A&&); // { dg-message "note" } int test7_1234678() { diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C b/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C index f1cce3a4363..b742cb1d369 100644 --- a/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C +++ b/gcc/testsuite/g++.dg/cpp0x/variadic-ex13.C @@ -34,6 +34,6 @@ template<typename... Args> void g(Args... args) f(const_cast<const Args*>(&args)...); // okay: ``Args'' and ``args'' are expanded f(5 ...); // { dg-error "contains no argument packs" } f(args); // { dg-error "parameter packs not expanded" } - // { dg-error "args" "" { target *-*-* } 36 } + // { dg-message "args" "note" { target *-*-* } 36 } f(h(args...) + args...); // okay: first ``args'' expanded within h, second ``args'' expanded within f. } diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic36.C b/gcc/testsuite/g++.dg/cpp0x/variadic36.C index 370d475eb6d..90636020401 100644 --- a/gcc/testsuite/g++.dg/cpp0x/variadic36.C +++ b/gcc/testsuite/g++.dg/cpp0x/variadic36.C @@ -11,5 +11,5 @@ struct tuple_base { }; template<typename... Values> struct tuple : tuple_base<Values> { }; // { dg-error "packs not expanded" } -// { dg-error "args" "" { target *-*-* } 5 } -// { dg-error "Values" "" { target *-*-* } 12 } +// { dg-message "args" "note" { target *-*-* } 5 } +// { dg-message "Values" "note" { target *-*-* } 12 } diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic59.C b/gcc/testsuite/g++.dg/cpp0x/variadic59.C index f0730d33baf..6d6e52f9319 100644 --- a/gcc/testsuite/g++.dg/cpp0x/variadic59.C +++ b/gcc/testsuite/g++.dg/cpp0x/variadic59.C @@ -1,4 +1,4 @@ // { dg-options "-std=gnu++0x" } template<class T, typename... VarArgs> void print(T t, VarArgs args); // { dg-error "packs not expanded" } -// { dg-error "VarArgs" "" { target *-*-* } 3 } +// { dg-message "VarArgs" "note" { target *-*-* } 3 } diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic71.C b/gcc/testsuite/g++.dg/cpp0x/variadic71.C index d4219dace83..bea3cc34631 100644 --- a/gcc/testsuite/g++.dg/cpp0x/variadic71.C +++ b/gcc/testsuite/g++.dg/cpp0x/variadic71.C @@ -9,4 +9,4 @@ struct push_front<list<Elements...>, Head> { typedef list<Head, Elements> type; // { dg-error "parameter packs not expanded" } }; -// { dg-error "Elements" "" { target *-*-* } 9 } +// { dg-message "Elements" "note" { target *-*-* } 9 } diff --git a/gcc/testsuite/g++.dg/expr/cond9.C b/gcc/testsuite/g++.dg/expr/cond9.C index 9e8f08c1d6b..e71a84ba43e 100644 --- a/gcc/testsuite/g++.dg/expr/cond9.C +++ b/gcc/testsuite/g++.dg/expr/cond9.C @@ -1,7 +1,7 @@ // PR c++/27666 -struct A { // { dg-error "A" } - A(int); // { dg-error "A" } +struct A { // { dg-message "A" } + A(int); // { dg-message "A" } }; void foo(volatile A a) { diff --git a/gcc/testsuite/g++.dg/expr/pmf-1.C b/gcc/testsuite/g++.dg/expr/pmf-1.C index 9bb8a037d75..8f6426b401b 100644 --- a/gcc/testsuite/g++.dg/expr/pmf-1.C +++ b/gcc/testsuite/g++.dg/expr/pmf-1.C @@ -7,13 +7,13 @@ struct A { void f(); - void foo(void (A::*)(int)); // { dg-error "candidate" "" } + void foo(void (A::*)(int)); // { dg-message "candidate" "" } template<typename T> void g(T); void h() { void (A::*p)() = &A::f; void (A::*q)() = &(A::f); // { dg-error "parenthesized" "" } - foo(&g<int>); // { dg-error "" "" } + foo(&g<int>); // { dg-error "no matching" "" } } }; diff --git a/gcc/testsuite/g++.dg/ext/altivec-types-1.C b/gcc/testsuite/g++.dg/ext/altivec-types-1.C index 9e9ca96e8c6..d322e5ebe97 100644 --- a/gcc/testsuite/g++.dg/ext/altivec-types-1.C +++ b/gcc/testsuite/g++.dg/ext/altivec-types-1.C @@ -68,21 +68,21 @@ __vector __complex unsigned long long v_cull; /* { dg-error "AltiVec types" "" } /* These should be rejected because the component types are invalid. We don't care about the actual error messages here. */ -__vector __bool unsigned char vbuc; /* { dg-error "error" "" } */ -__vector __bool signed char vbsc; /* { dg-error "error" "" } */ -__vector __bool unsigned short vbuh; /* { dg-error "error" "" } */ -__vector __bool signed short vbsh; /* { dg-error "error" "" } */ -__vector __bool unsigned int vbui; /* { dg-error "error" "" } */ -__vector __bool signed int vbsi; /* { dg-error "error" "" } */ -__vector __bool unsigned vbuj; /* { dg-error "error" "" } */ -__vector __bool signed vbsj; /* { dg-error "error" "" } */ -__vector signed float vsf; /* { dg-error "error" "" } */ -__vector unsigned float vuf; /* { dg-error "error" "" } */ -__vector short float vsf; /* { dg-error "error" "" } */ -__vector signed double vsd; /* { dg-error "error" "" } */ -__vector unsigned double vud; /* { dg-error "error" "" } */ -__vector short double vsd; /* { dg-error "error" "" } */ -__vector __bool float vbf; /* { dg-error "error" "" } */ -__vector __bool double vbd; /* { dg-error "error" "" } */ -__vector __bool short float blf; /* { dg-error "error" "" } */ -__vector __bool short double vlbd; /* { dg-error "error" "" } */ +__vector __bool unsigned char vbuc; /* { dg-error "" "" } */ +__vector __bool signed char vbsc; /* { dg-error "" "" } */ +__vector __bool unsigned short vbuh; /* { dg-error "" "" } */ +__vector __bool signed short vbsh; /* { dg-error "" "" } */ +__vector __bool unsigned int vbui; /* { dg-error "" "" } */ +__vector __bool signed int vbsi; /* { dg-error "" "" } */ +__vector __bool unsigned vbuj; /* { dg-error "" "" } */ +__vector __bool signed vbsj; /* { dg-error "" "" } */ +__vector signed float vsf; /* { dg-error "" "" } */ +__vector unsigned float vuf; /* { dg-error "" "" } */ +__vector short float vsf; /* { dg-error "" "" } */ +__vector signed double vsd; /* { dg-error "" "" } */ +__vector unsigned double vud; /* { dg-error "" "" } */ +__vector short double vsd; /* { dg-error "" "" } */ +__vector __bool float vbf; /* { dg-error "" "" } */ +__vector __bool double vbd; /* { dg-error "" "" } */ +__vector __bool short float blf; /* { dg-error "" "" } */ +__vector __bool short double vlbd; /* { dg-error "" "" } */ diff --git a/gcc/testsuite/g++.dg/ext/case-range2.C b/gcc/testsuite/g++.dg/ext/case-range2.C index 33befbd588a..de1f2a7e763 100644 --- a/gcc/testsuite/g++.dg/ext/case-range2.C +++ b/gcc/testsuite/g++.dg/ext/case-range2.C @@ -11,7 +11,7 @@ T f2 (T i) { switch (i) { - case low ... high : return i + 1; // { dg-error "" } + case low ... high : return i + 1; // { dg-error "previously" } case 5 : return i + 2; // { dg-error "duplicate" } default : return 0; } @@ -20,8 +20,8 @@ T f2 (T i) int f (int i) { switch (i) { - case 1 ... 10: return i + 1; // { dg-error "" } + case 1 ... 10: return i + 1; // { dg-error "first entry" } case 3 ... 5 : return i + 3; // { dg-error "duplicate" } - default: return f2 (i); // { dg-error "" } + default: return f2 (i); // { dg-message "instantiated" } } } diff --git a/gcc/testsuite/g++.dg/ext/case-range3.C b/gcc/testsuite/g++.dg/ext/case-range3.C index 569ce627455..5a09c12d61d 100644 --- a/gcc/testsuite/g++.dg/ext/case-range3.C +++ b/gcc/testsuite/g++.dg/ext/case-range3.C @@ -9,7 +9,7 @@ T f2 (T i) { switch (i) { - case low ... high : return i + 1; // { dg-error "non-standard" } + case low ... high : return i + 1; // { dg-warning "non-standard" } default : return 0; } } @@ -17,7 +17,7 @@ T f2 (T i) int f (int i) { switch (i) { - case 1 ... 10: return i + 1; // { dg-error "non-standard" } - default: return f2 (i); // { dg-error "" } + case 1 ... 10: return i + 1; // { dg-warning "non-standard" } + default: return f2 (i); // { dg-message "instantiated" } } } diff --git a/gcc/testsuite/g++.dg/ext/fpreg1.C b/gcc/testsuite/g++.dg/ext/fpreg1.C index 72b81134fb8..c5170a4a4b6 100644 --- a/gcc/testsuite/g++.dg/ext/fpreg1.C +++ b/gcc/testsuite/g++.dg/ext/fpreg1.C @@ -8,7 +8,7 @@ double d; // Default initialized __fpreg is OK. __fpreg fpreg, fpreg2; // But explicitly zero-initialized is an invalid conversion. -__fpreg fi = 0; // { dg-error "error: invalid conversion to '__fpreg'" } +__fpreg fi = 0; // { dg-error "invalid conversion to '__fpreg'" } __fpreg f0 (__fpreg); int f1 (__float80); @@ -36,47 +36,47 @@ f (void) d = sizeof (fpreg); (void)(fpreg, fpreg); // Invalid operations. - ++fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - --fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg++; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg--; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = -fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = ~fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = !fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = *fpreg; // { dg-error "error: invalid type argument" } - if (fpreg) // { dg-error "error: invalid conversion from '__fpreg'" } + ++fpreg; // { dg-error "invalid operation on '__fpreg'" } + --fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg++; // { dg-error "invalid operation on '__fpreg'" } + fpreg--; // { dg-error "invalid operation on '__fpreg'" } + fpreg = -fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg = ~fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = !fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = *fpreg; // { dg-error "invalid type argument" } + if (fpreg) // { dg-error "invalid conversion from '__fpreg'" } return; - d = fpreg; // { dg-error "error: invalid conversion from '__fpreg'" } - d = (double) fpreg; // { dg-error "error: invalid conversion from '__fpreg'" } - fpreg = (__fpreg) d; // { dg-error "error: invalid conversion to '__fpreg'" } - fpreg = fpreg * fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = fpreg / fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = fpreg % fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = fpreg + fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = fpreg - fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = fpreg << fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - fpreg = fpreg >> fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg < fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg > fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg <= fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg >= fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg == fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg != fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg & fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg ^ fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg | fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg && fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = fpreg || fpreg; // { dg-error "error: invalid operation on '__fpreg'" } - d = (fpreg ? 1 : 2); // { dg-error "error: invalid conversion from '__fpreg'" } - fpreg = (d ? fpreg : d); // { dg-error "error: invalid conversion to '__fpreg'" } - fpreg *= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg /= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg %= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg += fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg -= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg <<= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg >>= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg &= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg ^= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } - fpreg |= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" } + d = fpreg; // { dg-error "invalid conversion from '__fpreg'" } + d = (double) fpreg; // { dg-error "invalid conversion from '__fpreg'" } + fpreg = (__fpreg) d; // { dg-error "invalid conversion to '__fpreg'" } + fpreg = fpreg * fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg = fpreg / fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg = fpreg % fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg = fpreg + fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg = fpreg - fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg = fpreg << fpreg; // { dg-error "invalid operation on '__fpreg'" } + fpreg = fpreg >> fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg < fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg > fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg <= fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg >= fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg == fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg != fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg & fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg ^ fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg | fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg && fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = fpreg || fpreg; // { dg-error "invalid operation on '__fpreg'" } + d = (fpreg ? 1 : 2); // { dg-error "invalid conversion from '__fpreg'" } + fpreg = (d ? fpreg : d); // { dg-error "invalid conversion to '__fpreg'" } + fpreg *= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg /= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg %= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg += fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg -= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg <<= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg >>= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg &= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg ^= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } + fpreg |= fpreg; // { dg-error "invalid operation on '__fpreg'|in evaluation" } } diff --git a/gcc/testsuite/g++.dg/ext/is_class_error2.C b/gcc/testsuite/g++.dg/ext/is_class_error2.C index 9f19d624534..8649dc4410f 100644 --- a/gcc/testsuite/g++.dg/ext/is_class_error2.C +++ b/gcc/testsuite/g++.dg/ext/is_class_error2.C @@ -13,7 +13,7 @@ template<int> void foo() __is_abstract(int)(); // { dg-error "'__is_abstract\\(int\\)' cannot be used" } __is_base_of(int, float)(); // { dg-error "'__is_base_of\\(int, float\\)' cannot be used" } __is_class(int)(); // { dg-error "'__is_class\\(int\\)' cannot be used" } - __is_convertible_to(int, float)(); // { dg-error "unimplemented" } + __is_convertible_to(int, float)(); // { dg-message "unimplemented" } __is_empty(int)(); // { dg-error "'__is_empty\\(int\\)' cannot be used" } __is_enum(int)(); // { dg-error "'__is_enum\\(int\\)' cannot be used" } __is_pod(int)(); // { dg-error "'__is_pod\\(int\\)' cannot be used" } diff --git a/gcc/testsuite/g++.dg/ext/label5.C b/gcc/testsuite/g++.dg/ext/label5.C index 0032b0f8e67..9c5a24e5803 100644 --- a/gcc/testsuite/g++.dg/ext/label5.C +++ b/gcc/testsuite/g++.dg/ext/label5.C @@ -4,4 +4,4 @@ struct A { }; int main() { b: A() && && b; } // { dg-error "A\\(\\) && && *b" } -// { dg-error "candidate" "additional" { target *-*-* } 5 } +// { dg-message "candidate" "additional" { target *-*-* } 5 } diff --git a/gcc/testsuite/g++.dg/ext/pr27019.C b/gcc/testsuite/g++.dg/ext/pr27019.C index d7644180c29..c96d51c14ec 100644 --- a/gcc/testsuite/g++.dg/ext/pr27019.C +++ b/gcc/testsuite/g++.dg/ext/pr27019.C @@ -8,4 +8,4 @@ struct A int z[1]; }; -A a = { z:{} }; // { dg-error "unimplemented" } +A a = { z:{} }; // { dg-message "unimplemented" } diff --git a/gcc/testsuite/g++.dg/gomp/pr26690-1.C b/gcc/testsuite/g++.dg/gomp/pr26690-1.C index 9efd8d45ee9..3b7a4f8d572 100644 --- a/gcc/testsuite/g++.dg/gomp/pr26690-1.C +++ b/gcc/testsuite/g++.dg/gomp/pr26690-1.C @@ -2,8 +2,8 @@ // { dg-do compile } struct A -{ // { dg-error "A::A\\(const A&\\)" } - A (int); // { dg-error "candidates" } +{ // { dg-message "A::A\\(const A&\\)" } + A (int); // { dg-message "candidates" } }; void diff --git a/gcc/testsuite/g++.dg/gomp/pr26690-2.C b/gcc/testsuite/g++.dg/gomp/pr26690-2.C index 4ebf677cd08..5d29f322c9d 100644 --- a/gcc/testsuite/g++.dg/gomp/pr26690-2.C +++ b/gcc/testsuite/g++.dg/gomp/pr26690-2.C @@ -3,8 +3,8 @@ struct A { - A (int x = 6); // { dg-error "A::A\\(int\\)" } - A (long long x = 12LL); // { dg-error "candidates" } + A (int x = 6); // { dg-message "A::A\\(int\\)" } + A (long long x = 12LL); // { dg-message "candidates" } }; void diff --git a/gcc/testsuite/g++.dg/gomp/pr34694.C b/gcc/testsuite/g++.dg/gomp/pr34694.C index 5b98bd2a9a7..c225e154523 100644 --- a/gcc/testsuite/g++.dg/gomp/pr34694.C +++ b/gcc/testsuite/g++.dg/gomp/pr34694.C @@ -9,7 +9,7 @@ foo () { #pragma omp parallel { - int j; // { dg-warning "note: 'j' was declared here" } + int j; // { dg-message "note: 'j' was declared here" } i = j; // { dg-warning "is used uninitialized" } } } diff --git a/gcc/testsuite/g++.dg/gomp/pr35158.C b/gcc/testsuite/g++.dg/gomp/pr35158.C index 933eba1ab2c..9577cd236fc 100644 --- a/gcc/testsuite/g++.dg/gomp/pr35158.C +++ b/gcc/testsuite/g++.dg/gomp/pr35158.C @@ -5,7 +5,7 @@ int main(int argc, char *argv[]) { #pragma omp parallel for - for (int i(0) ; // { dg-error "error: parenthesized initialization is not allowed in OpenMP 'for' loop" } + for (int i(0) ; // { dg-error "parenthesized initialization is not allowed in OpenMP 'for' loop" } i < 10 ; i++) ; diff --git a/gcc/testsuite/g++.dg/gomp/tpl-parallel-2.C b/gcc/testsuite/g++.dg/gomp/tpl-parallel-2.C index 3f2e3bb6211..2dceb093287 100644 --- a/gcc/testsuite/g++.dg/gomp/tpl-parallel-2.C +++ b/gcc/testsuite/g++.dg/gomp/tpl-parallel-2.C @@ -17,4 +17,4 @@ void S<T>::test() template struct S<int>; template struct S<long>; -template struct S<float>; // { dg-error "instantiated from here" } +template struct S<float>; // { dg-message "instantiated from here" } diff --git a/gcc/testsuite/g++.dg/inherit/using6.C b/gcc/testsuite/g++.dg/inherit/using6.C index 46c23ce582e..7bdfc3405c1 100644 --- a/gcc/testsuite/g++.dg/inherit/using6.C +++ b/gcc/testsuite/g++.dg/inherit/using6.C @@ -12,4 +12,4 @@ template <typename T> struct TPL : A }; TPL<int> i; -TPL<float> j; // { dg-error "instantiated" } +TPL<float> j; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/init/brace6.C b/gcc/testsuite/g++.dg/init/brace6.C index 066d1ba65ff..bff89daa2f2 100644 --- a/gcc/testsuite/g++.dg/init/brace6.C +++ b/gcc/testsuite/g++.dg/init/brace6.C @@ -6,7 +6,7 @@ struct A { }; struct B { - B(const B&); // { dg-error "candidate" } + B(const B&); // { dg-message "candidate" } int b; }; diff --git a/gcc/testsuite/g++.dg/init/ctor4.C b/gcc/testsuite/g++.dg/init/ctor4.C index 70643ec4e10..0671dd8537d 100644 --- a/gcc/testsuite/g++.dg/init/ctor4.C +++ b/gcc/testsuite/g++.dg/init/ctor4.C @@ -16,5 +16,5 @@ foo::foo() { int main(int argc, char **argv) { - bar x; // { dg-error "synthesized" } + bar x; // { dg-message "synthesized" } } diff --git a/gcc/testsuite/g++.dg/lookup/conv-1.C b/gcc/testsuite/g++.dg/lookup/conv-1.C index 6a595f71997..b861c6036df 100644 --- a/gcc/testsuite/g++.dg/lookup/conv-1.C +++ b/gcc/testsuite/g++.dg/lookup/conv-1.C @@ -7,12 +7,12 @@ struct A1 { - operator int () const; // { dg-error "A1::operator" "" } + operator int () const; // { dg-message "A1::operator" "" } }; struct A2 { - operator int () const; // { dg-error "A2::operator" "" } + operator int () const; // { dg-message "A2::operator" "" } }; struct B : A1, A2 diff --git a/gcc/testsuite/g++.dg/lookup/friend13.C b/gcc/testsuite/g++.dg/lookup/friend13.C new file mode 100644 index 00000000000..bec71df37b2 --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/friend13.C @@ -0,0 +1,6 @@ +// PR c++/37558 + +class Foo { + friend class Bar; + friend void func(const class Bar*); +}; diff --git a/gcc/testsuite/g++.dg/lookup/new1.C b/gcc/testsuite/g++.dg/lookup/new1.C index ae1121339cf..b29aa46ce42 100644 --- a/gcc/testsuite/g++.dg/lookup/new1.C +++ b/gcc/testsuite/g++.dg/lookup/new1.C @@ -10,4 +10,4 @@ int main() { return 0; } -// { dg-error "candidate" "" { target *-*-* } 0 } +// { dg-message "candidate" "" { target *-*-* } 0 } diff --git a/gcc/testsuite/g++.dg/lookup/scoped6.C b/gcc/testsuite/g++.dg/lookup/scoped6.C index d9566a7e099..b83b08fe94f 100644 --- a/gcc/testsuite/g++.dg/lookup/scoped6.C +++ b/gcc/testsuite/g++.dg/lookup/scoped6.C @@ -10,7 +10,7 @@ public: class Bar { Foo<int> foo_; public: - Bar() {} // { dg-error "instantiated" } + Bar() {} // { dg-message "instantiated" } }; template class Foo<int>; diff --git a/gcc/testsuite/g++.dg/lookup/using7.C b/gcc/testsuite/g++.dg/lookup/using7.C index e62d3f310ac..b250c5823f5 100644 --- a/gcc/testsuite/g++.dg/lookup/using7.C +++ b/gcc/testsuite/g++.dg/lookup/using7.C @@ -4,8 +4,9 @@ template <typename T, bool=T::X> struct A }; template <typename T> struct B : A<T> -{ // { dg-error "" } - using A<T>::i; // { dg-error "" } +{ // { dg-error "incomplete" } + using A<T>::i; // { dg-error "incomplete" "incomplete" } + // { dg-error "using" "using" { target *-*-* } 8 } }; -B<void> b; // { dg-error "" } +B<void> b; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/lookup/using9.C b/gcc/testsuite/g++.dg/lookup/using9.C index c62267519b0..7c3b30d8873 100644 --- a/gcc/testsuite/g++.dg/lookup/using9.C +++ b/gcc/testsuite/g++.dg/lookup/using9.C @@ -4,14 +4,14 @@ // an ambiguous overload set to be created. namespace B { - void f(int); // { dg-error "note" } - void f(double); // { dg-error "note" } + void f(int); // { dg-message "candidates" } + void f(double); // { dg-message "note" } } namespace C { - void f(int); // { dg-error "note" } - void f(double); // { dg-error "note" } - void f(char); // { dg-error "note" } + void f(int); // { dg-message "note" } + void f(double); // { dg-message "note" } + void f(char); // { dg-message "note" } } void h() diff --git a/gcc/testsuite/g++.dg/other/abstract1.C b/gcc/testsuite/g++.dg/other/abstract1.C index 86962c7bc3a..8406f8a25d7 100644 --- a/gcc/testsuite/g++.dg/other/abstract1.C +++ b/gcc/testsuite/g++.dg/other/abstract1.C @@ -5,7 +5,7 @@ // c++/9256: Make sure that a pointer to an array of abstract elements // cannot be created, not even during template substitution (DR337). -struct Abstract { virtual void f() = 0; }; // { dg-error "" } +struct Abstract { virtual void f() = 0; }; // { dg-message "note" } struct Complete { void f(); }; @@ -35,7 +35,7 @@ template <class T> struct K { T (*a)[2]; // { dg-error "abstract class type" } }; -template struct K<Abstract>; // { dg-error "from here" } +template struct K<Abstract>; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/other/abstract2.C b/gcc/testsuite/g++.dg/other/abstract2.C index d242ffdc0b3..b79493285c2 100644 --- a/gcc/testsuite/g++.dg/other/abstract2.C +++ b/gcc/testsuite/g++.dg/other/abstract2.C @@ -19,22 +19,22 @@ namespace N1 { void g(X (*parm6)[2]); // { dg-error "abstract" } }; - struct X { // { dg-error "note" } - virtual void xfunc(void) = 0; // { dg-error "note" } + struct X { // { dg-message "note" } + virtual void xfunc(void) = 0; // { dg-message "note" } }; } namespace N2 { - struct X1 { // { dg-error "note" } - virtual void xfunc(void) = 0; // { dg-error "note" } + struct X1 { // { dg-message "note" } + virtual void xfunc(void) = 0; // { dg-message "note" } void g(X1 parm7); // { dg-error "abstract" } void g(X1 parm8[2]); // { dg-error "abstract" } void g(X1 (*parm9)[2]); // { dg-error "abstract" } }; template <int N> - struct X2 { // { dg-error "note" } - virtual void xfunc(void) = 0; // { dg-error "note" } + struct X2 { // { dg-message "note" } + virtual void xfunc(void) = 0; // { dg-message "note" } void g(X2 parm10); // { dg-error "abstract" } void g(X2 parm11[2]); // { dg-error "abstract" } void g(X2 (*parm12)[2]); // { dg-error "abstract" } @@ -42,8 +42,8 @@ namespace N2 { } namespace N3 { - struct X { // { dg-error "note" "" } - virtual void xfunc(void) = 0; // { dg-error "note" } + struct X { // { dg-message "note" "" } + virtual void xfunc(void) = 0; // { dg-message "note" } }; void g(X parm13); // { dg-error "abstract" } void g(X parm14[2]); // { dg-error "abstract" } diff --git a/gcc/testsuite/g++.dg/other/anon5.C b/gcc/testsuite/g++.dg/other/anon5.C index a82d3f7b50e..53cf9e33c12 100644 --- a/gcc/testsuite/g++.dg/other/anon5.C +++ b/gcc/testsuite/g++.dg/other/anon5.C @@ -11,7 +11,7 @@ namespace { const bool &f() { - return c::t; // { dg-error "undefined" "undefined" { target *-*-* } 0 } + return c::t; // { dg-message "undefined" "undefined" { target *-*-* } 0 } // Some targets report the error for the previous line, others // don't give line number inforamtion for it, so use line 0. } diff --git a/gcc/testsuite/g++.dg/other/crash-4.C b/gcc/testsuite/g++.dg/other/crash-4.C index a37b8b2f020..bc2c457f1b4 100644 --- a/gcc/testsuite/g++.dg/other/crash-4.C +++ b/gcc/testsuite/g++.dg/other/crash-4.C @@ -22,5 +22,5 @@ struct b struct c { b bb; - c(const b& __a): bb(__a) {} // { dg-error "synthesized" "" { target { ! default_packed } } } + c(const b& __a): bb(__a) {} // { dg-message "synthesized" "" { target { ! default_packed } } } }; diff --git a/gcc/testsuite/g++.dg/other/error10.C b/gcc/testsuite/g++.dg/other/error10.C index d8025801f13..9e6da6529aa 100644 --- a/gcc/testsuite/g++.dg/other/error10.C +++ b/gcc/testsuite/g++.dg/other/error10.C @@ -10,6 +10,6 @@ void foo(const A<N> &a) void bar() { - foo(A<0>()); // { dg-error "instantiated from here" "" } + foo(A<0>()); // { dg-message "instantiated from here" "" } } diff --git a/gcc/testsuite/g++.dg/other/error13.C b/gcc/testsuite/g++.dg/other/error13.C index 037e28866e1..d3b1eabc0b2 100644 --- a/gcc/testsuite/g++.dg/other/error13.C +++ b/gcc/testsuite/g++.dg/other/error13.C @@ -1,10 +1,10 @@ //PR c++/28258 struct A -{ // { dg-error "" } +{ // { dg-message "note" } A(void x); // { dg-error "invalid use|incomplete type|candidates" } }; struct B : A {}; // { dg-error "no matching function for call" } -B b; // { dg-error "synthesized method" } +B b; // { dg-message "synthesized method" } diff --git a/gcc/testsuite/g++.dg/other/error20.C b/gcc/testsuite/g++.dg/other/error20.C index 3c8e8f22aaf..50a4495cff9 100644 --- a/gcc/testsuite/g++.dg/other/error20.C +++ b/gcc/testsuite/g++.dg/other/error20.C @@ -2,7 +2,7 @@ // { dg-do compile } struct A -{ // { dg-error "candidates" } +{ // { dg-message "candidates" } virtual A foo (); }; diff --git a/gcc/testsuite/g++.dg/other/error5.C b/gcc/testsuite/g++.dg/other/error5.C index 552f7bf27b5..c7a142fb57d 100644 --- a/gcc/testsuite/g++.dg/other/error5.C +++ b/gcc/testsuite/g++.dg/other/error5.C @@ -10,4 +10,4 @@ template <typename T> struct S2 : S<T> { using S<T>::operator typename S<T>::I*; // { dg-error "operator S\\<int\\>" "" } }; -template struct S2<int>; // { dg-error "instantiated" "" } +template struct S2<int>; // { dg-message "instantiated" "" } diff --git a/gcc/testsuite/g++.dg/other/field1.C b/gcc/testsuite/g++.dg/other/field1.C index 3afe3d908de..61a9df69563 100644 --- a/gcc/testsuite/g++.dg/other/field1.C +++ b/gcc/testsuite/g++.dg/other/field1.C @@ -22,4 +22,4 @@ template <> struct X<int> { X(); }; -X<float> i; // { dg-error "instantiated from" "" } +X<float> i; // { dg-message "instantiated from" "" } diff --git a/gcc/testsuite/g++.dg/other/offsetof5.C b/gcc/testsuite/g++.dg/other/offsetof5.C index 97dd5e93710..3c484338055 100644 --- a/gcc/testsuite/g++.dg/other/offsetof5.C +++ b/gcc/testsuite/g++.dg/other/offsetof5.C @@ -19,4 +19,4 @@ struct S static const int j = offsetof (S, i); // { dg-warning "invalid access|offsetof" } }; -int k = S<int>::j; // { dg-warning "instantiated from here" } +int k = S<int>::j; // { dg-message "instantiated from here" } diff --git a/gcc/testsuite/g++.dg/other/pr37394.C b/gcc/testsuite/g++.dg/other/pr37394.C new file mode 100644 index 00000000000..7b5772e8efb --- /dev/null +++ b/gcc/testsuite/g++.dg/other/pr37394.C @@ -0,0 +1,12 @@ +// Origin: Martin Michlmayr <tbm@cyrius.com> +// { dg-do compile { target ia64-*-* } } +// { dg-options "-O -fschedule-insns2" } + +struct _Words +{ + void *_M_pword; + _Words (): + _M_pword (0) + { + } +} _M_word_zero; diff --git a/gcc/testsuite/g++.dg/other/semicolon.C b/gcc/testsuite/g++.dg/other/semicolon.C index 542d3b7b554..efbae8b7021 100644 --- a/gcc/testsuite/g++.dg/other/semicolon.C +++ b/gcc/testsuite/g++.dg/other/semicolon.C @@ -5,6 +5,7 @@ struct A { - struct B { int i; } // { dg-error "3: error: new types may not be defined in a return type|note: \\(perhaps a semicolon is missing" } - void foo(); // { dg-error "12: error: two or more|return type" } + struct B { int i; } // { dg-error "3:new types may not be defined in a return type" } + // { dg-message "perhaps a semicolon is missing" "note" { target *-*-* } 8 } + void foo(); // { dg-error "12:two or more" } }; diff --git a/gcc/testsuite/g++.dg/overload/ambig1.C b/gcc/testsuite/g++.dg/overload/ambig1.C index 2adc78c795a..21948bf3146 100644 --- a/gcc/testsuite/g++.dg/overload/ambig1.C +++ b/gcc/testsuite/g++.dg/overload/ambig1.C @@ -14,8 +14,8 @@ struct B B(int); }; -void f(A); // { dg-error "" "candidate" } -void f(B); // { dg-error "" "candidate" } +void f(A); // { dg-message "note" "candidate" } +void f(B); // { dg-message "note" "candidate" } int main() { diff --git a/gcc/testsuite/g++.dg/overload/arg3.C b/gcc/testsuite/g++.dg/overload/arg3.C index 1778ce5a43c..8ece6a6f3ca 100644 --- a/gcc/testsuite/g++.dg/overload/arg3.C +++ b/gcc/testsuite/g++.dg/overload/arg3.C @@ -10,13 +10,14 @@ struct A {}; struct B : A { - B(int); // { dg-error "" "" } - B(B&); // { dg-error "" "" } + B(int); // { dg-message "B::B" "" } + B(B&); // { dg-message "candidates" "" } }; void foo(B); void bar() { - foo(0); // { dg-error "no matching function|initializing" "" } + foo(0); // { dg-error "no matching function" "no matching" } + // { dg-error "initializing" "initializing" { target *-*-* } 21 } } diff --git a/gcc/testsuite/g++.dg/overload/builtin1.C b/gcc/testsuite/g++.dg/overload/builtin1.C index 9f66e336065..652b8e1b760 100644 --- a/gcc/testsuite/g++.dg/overload/builtin1.C +++ b/gcc/testsuite/g++.dg/overload/builtin1.C @@ -7,10 +7,11 @@ struct A { operator B (); }; -void operator+ (B, B); // { dg-error "" "candidate" } +void operator+ (B, B); // { dg-message "operator" "operator" } int main () { A a; - a + a; // { dg-error "" "ambiguous" } + a + a; // { dg-error "ambiguous" "ambiguous" } + // { dg-message "candidates" "candidates" { target *-*-* } 15 } } diff --git a/gcc/testsuite/g++.dg/overload/copy1.C b/gcc/testsuite/g++.dg/overload/copy1.C index 87f8317acbe..6a774c6770b 100644 --- a/gcc/testsuite/g++.dg/overload/copy1.C +++ b/gcc/testsuite/g++.dg/overload/copy1.C @@ -4,8 +4,8 @@ struct A; struct B { - B (A const &); // { dg-warning "note" } - B (B &); // { dg-warning "note" } + B (A const &); // { dg-message "note" } + B (B &); // { dg-message "note" } }; struct A @@ -16,5 +16,6 @@ struct A B f (B const& b) { - return b; // { dg-error "" } + return b; // { dg-error "matching" "matching" } + // { dg-error "initializing" "initializing" { target *-*-* } 19 } } diff --git a/gcc/testsuite/g++.dg/overload/new1.C b/gcc/testsuite/g++.dg/overload/new1.C index 7f8935895c9..89282faf66c 100644 --- a/gcc/testsuite/g++.dg/overload/new1.C +++ b/gcc/testsuite/g++.dg/overload/new1.C @@ -16,6 +16,6 @@ void f(X *x = new X[4]); // { dg-error "" } void f(X *x = new (3) X(6)); // { dg-error "" } void f(X *x = new (2) X[10]); // { dg-error "" } -// { dg-error "candidate" "" { target *-*-* } 00 } +// { dg-message "candidate" "" { target *-*-* } 00 } void f(X *x = new X[10][5]); // { dg-error "" } diff --git a/gcc/testsuite/g++.dg/overload/template4.C b/gcc/testsuite/g++.dg/overload/template4.C index 4c3ca05e6c2..6638dc9d246 100644 --- a/gcc/testsuite/g++.dg/overload/template4.C +++ b/gcc/testsuite/g++.dg/overload/template4.C @@ -3,14 +3,14 @@ namespace { - template <int> void foo (...); // { dg-error "" "candidate" } - template <int> void bar (int, ...); // { dg-error "" "candidate" } - void baz (...); // { dg-error "" "candidate" } + template <int> void foo (...); // { dg-message "foo" } + template <int> void bar (int, ...); // { dg-message "bar" } + void baz (...); // { dg-message "baz" } } -template <int> void foo (...); // { dg-error "" "candidate" } -template <int> void bar (int, ...); // { dg-error "" "candidate" } -void baz (...); // { dg-error "" "candidate" } +template <int> void foo (...); // { dg-message "candidate" } +template <int> void bar (int, ...); // { dg-message "candidate" } +void baz (...); // { dg-message "candidate" } void test () diff --git a/gcc/testsuite/g++.dg/overload/using2.C b/gcc/testsuite/g++.dg/overload/using2.C index 2ecb5fad6b0..54b12219bd8 100644 --- a/gcc/testsuite/g++.dg/overload/using2.C +++ b/gcc/testsuite/g++.dg/overload/using2.C @@ -20,21 +20,21 @@ namespace std { extern "C" void *malloc (__SIZE_TYPE__) throw () __attribute__((malloc)); void abort (void) throw (); // these aren't - void _exit (int) throw (); // { dg-error "std::_exit" } + void _exit (int) throw (); // { dg-message "std::_exit" } extern "C" void c1 (void) throw (); - void C1 (void) throw (); // { dg-error "std::C1" } + void C1 (void) throw (); // { dg-message "std::C1" } extern "C" void c2 (void) throw (); void C2 (void) throw (); extern "C" void c3 (void) throw (); - void C3 (void) throw (); // { dg-error "std::C3" } + void C3 (void) throw (); // { dg-message "std::C3" } } namespace other { extern "C" void c3 (void) throw (); - void C3 (void) throw (); // { dg-error "other::C3" } + void C3 (void) throw (); // { dg-message "other::C3" } } using std::exit; @@ -46,10 +46,12 @@ using std::C1; extern "C" void *malloc (__SIZE_TYPE__) throw () __attribute__((malloc)); void abort (void) throw (); - void _exit (int) throw (); // { dg-error "conflicts|void _exit" } + void _exit (int) throw (); // { dg-error "conflicts" "conflicts" } + // { dg-message "void _exit" "_exit" { target *-*-* } 49 } extern "C" void c1 (void) throw (); - void C1 (void) throw (); // { dg-error "conflicts|void C1" } + void C1 (void) throw (); // { dg-error "conflicts" "conflicts" } + // { dg-message "void C1" "C1" { target *-*-* } 53 } extern "C" void c2 (void) throw (); void C2 (void) throw (); diff --git a/gcc/testsuite/g++.dg/parse/bitfield2.C b/gcc/testsuite/g++.dg/parse/bitfield2.C index 49aace1dc76..a04d2adf8f3 100644 --- a/gcc/testsuite/g++.dg/parse/bitfield2.C +++ b/gcc/testsuite/g++.dg/parse/bitfield2.C @@ -22,7 +22,7 @@ struct D T t : 3; // { dg-error "non-integral type" } }; -D<double> d; // { dg-error "instantiated" } +D<double> d; // { dg-message "instantiated" } template <typename T> struct E diff --git a/gcc/testsuite/g++.dg/parse/constant4.C b/gcc/testsuite/g++.dg/parse/constant4.C index 65c84d94a13..d69f60ba8ca 100644 --- a/gcc/testsuite/g++.dg/parse/constant4.C +++ b/gcc/testsuite/g++.dg/parse/constant4.C @@ -34,7 +34,7 @@ template <typename> struct X void Baz () { - Foo<int> (); // { dg-error "instantiated" "" } + Foo<int> (); // { dg-message "instantiated" "" } } diff --git a/gcc/testsuite/g++.dg/parse/constructor1.C b/gcc/testsuite/g++.dg/parse/constructor1.C index 8f222f80b10..1796531487c 100644 --- a/gcc/testsuite/g++.dg/parse/constructor1.C +++ b/gcc/testsuite/g++.dg/parse/constructor1.C @@ -1,7 +1,8 @@ // { dg-do compile } // { dg-options "-fshow-column" } -ACE_Process_Descriptor::ACE_Process_Descriptor () : // { dg-error "" } - process_ (0) // { dg-error "3: error: only constructors take base initializers" } +ACE_Process_Descriptor::ACE_Process_Descriptor () : // { dg-error "declared" "declared" } + // { dg-error "no type" "no type" { target *-*-* } 4 } + process_ (0) // { dg-error "3: only constructors take base initializers" } { } diff --git a/gcc/testsuite/g++.dg/parse/crash20.C b/gcc/testsuite/g++.dg/parse/crash20.C index b39e572c39a..d04869fa7af 100644 --- a/gcc/testsuite/g++.dg/parse/crash20.C +++ b/gcc/testsuite/g++.dg/parse/crash20.C @@ -11,4 +11,4 @@ template<typename T> struct A typedef typename T::X Y; // { dg-error "not a class" "" } }; -A<int>::Y y; // { dg-error "instantiated from here" "" } +A<int>::Y y; // { dg-message "instantiated from here" "" } diff --git a/gcc/testsuite/g++.dg/parse/crash36.C b/gcc/testsuite/g++.dg/parse/crash36.C index 1397e87d256..6f5c86734a8 100644 --- a/gcc/testsuite/g++.dg/parse/crash36.C +++ b/gcc/testsuite/g++.dg/parse/crash36.C @@ -2,9 +2,10 @@ // { dg-do compile } // { dg-options "-std=c++98" } -template <typename... T> struct A // { dg-error "variadic templates" } +template <typename... T> struct A // { dg-warning "variadic templates" } { - static T &t; // { dg-error "not expanded with|T" } + static T &t; // { dg-error "not expanded with" "not expanded" } + // { dg-message "T" "T" { target *-*-* } 7 } static const int i = sizeof (++t); // { dg-error "was not declared in this scope" } }; diff --git a/gcc/testsuite/g++.dg/parse/crash44.C b/gcc/testsuite/g++.dg/parse/crash44.C index abdf827cd4d..41947b7d14f 100644 --- a/gcc/testsuite/g++.dg/parse/crash44.C +++ b/gcc/testsuite/g++.dg/parse/crash44.C @@ -8,7 +8,7 @@ struct test { int main(void) { struct test foo = { - once: PTHREAD_ONCE_INITIALIZER // { dg-error "error: 'PTHREAD_ONCE_INITIALIZER' was not declared in this scope" } + once: PTHREAD_ONCE_INITIALIZER // { dg-error "'PTHREAD_ONCE_INITIALIZER' was not declared in this scope" } }; return 0; diff --git a/gcc/testsuite/g++.dg/parse/crash49.C b/gcc/testsuite/g++.dg/parse/crash49.C new file mode 100644 index 00000000000..07d7c3b2f95 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/crash49.C @@ -0,0 +1,10 @@ +// PR c++/37552 +// { dg-do compile } + +extern struct A a[1]; // { dg-error "forward declaration" } + +void +foo () +{ + a[0]; // { dg-error "invalid use of incomplete type" } +} diff --git a/gcc/testsuite/g++.dg/parse/crash5.C b/gcc/testsuite/g++.dg/parse/crash5.C index 3a4185b7e6c..acf9e9d4bba 100644 --- a/gcc/testsuite/g++.dg/parse/crash5.C +++ b/gcc/testsuite/g++.dg/parse/crash5.C @@ -1,13 +1,13 @@ // { dg-options "-w" } -class QString { // { dg-error "" } - QString (const QString & a); // { dg-error "" } +class QString { // { dg-error "previous definition" } + QString (const QString & a); // { dg-message "candidates" } }; -class QString { }; // { dg-error "" } +class QString { }; // { dg-error "redefinition" } const QString q () { - QString z; // { dg-error "" } + QString z; // { dg-error "matching" } int x; - return x ? QString () : QString (); // { dg-error "" } + return x ? QString () : QString (); // { dg-error "matching" } } diff --git a/gcc/testsuite/g++.dg/parse/error-column.C b/gcc/testsuite/g++.dg/parse/error-column.C index 812a499ff4d..18dc4633a5d 100644 --- a/gcc/testsuite/g++.dg/parse/error-column.C +++ b/gcc/testsuite/g++.dg/parse/error-column.C @@ -5,5 +5,5 @@ void foo () { - cout << "blah"; // { dg-error "3: error: 'cout'" } + cout << "blah"; // { dg-error "3:'cout'" } } diff --git a/gcc/testsuite/g++.dg/parse/error1.C b/gcc/testsuite/g++.dg/parse/error1.C index 60e7d6587b3..1f8bb37732c 100644 --- a/gcc/testsuite/g++.dg/parse/error1.C +++ b/gcc/testsuite/g++.dg/parse/error1.C @@ -3,5 +3,5 @@ struct INCOMPLETE; template <int> struct X { static INCOMPLETE value; }; -template <> INCOMPLETE X<1>::value = 0; // { dg-error "30: error: variable 'INCOMPLETE X<1>::value' has initializer but incomplete type" } +template <> INCOMPLETE X<1>::value = 0; // { dg-error "30:variable 'INCOMPLETE X<1>::value' has initializer but incomplete type" } diff --git a/gcc/testsuite/g++.dg/parse/error10.C b/gcc/testsuite/g++.dg/parse/error10.C index 6e46922a115..8301172adbe 100644 --- a/gcc/testsuite/g++.dg/parse/error10.C +++ b/gcc/testsuite/g++.dg/parse/error10.C @@ -15,5 +15,5 @@ template <typename T> void foo() } // Here, columns nums are not very accurate either. Still acceptable though -// { dg-error "30: error: invalid type in declaration before ';' token" "" { target *-*-* } { 14 } } -// { dg-error "30: error: two or more data types in declaration of 'e4'" "" { target *-*-* } { 14 } } +// { dg-error "30:invalid type in declaration before ';' token" "" { target *-*-* } 14 } +// { dg-error "30:two or more data types in declaration of 'e4'" "" { target *-*-* } 14 } diff --git a/gcc/testsuite/g++.dg/parse/error11.C b/gcc/testsuite/g++.dg/parse/error11.C index f7093a8f987..39039a880b1 100644 --- a/gcc/testsuite/g++.dg/parse/error11.C +++ b/gcc/testsuite/g++.dg/parse/error11.C @@ -16,45 +16,56 @@ struct Foo }; void method(void) { - typename Foo<::B>::template Nested<::B> n; // { dg-error "17: error: '<::' cannot begin|17: note: '<:' is an alternate spelling|39: error: '<::' cannot begin|39: note: '<:' is an alternate" } + typename Foo<::B>::template Nested<::B> n; // { dg-error "17:'<::' cannot begin" "17-begin" } +// { dg-message "17:'<:' is an alternate spelling" "17-alt" { target *-*-* } 19 } +// { dg-error "39:'<::' cannot begin" "39-begin" { target *-*-* } 19 } +// { dg-message "39:'<:' is an alternate spelling" "39-alt" { target *-*-* } 19 } n.template Nested<B>::method(); - n.template Nested<::B>::method(); // { dg-error "22: error: '<::' cannot begin|22: note: '<:' is an alternate" } + n.template Nested<::B>::method(); // { dg-error "22:'<::' cannot begin" "error" } +// { dg-message "22:'<:' is an alternate" "note" { target *-*-* } 24 } Nested<B>::method(); - Nested<::B>::method(); // { dg-error "11: error: '<::' cannot begin|11: note: '<:' is an alternate" } + Nested<::B>::method(); // { dg-error "11:'<::' cannot begin" "error" } +// { dg-message "11:'<:' is an alternate" "note" { target *-*-* } 27 } } }; template <int N> struct Foo2 {}; -template struct Foo2<::B>; // { dg-error "21: error: '<::' cannot begin|21: note: '<:' is an alternate|25: error: type/value mismatch|25: error: expected a constant" } +template struct Foo2<::B>; // { dg-error "21:'<::' cannot begin" "begin" } +// { dg-message "21:'<:' is an alternate" "alt" { target *-*-* } 33 } +// { dg-message "25:type/value mismatch" "mismatch" { target *-*-* } 33 } +// { dg-error "25:expected a constant" "const" { target *-*-* } 33 } int value = 0; void func(void) { - Foo<::B> f; // { dg-error "cannot begin|alternate spelling" } + Foo<::B> f; // { dg-error "cannot begin" "begin" } +// { dg-message "alternate spelling" "alt" { target *-*-* } 42 } f.Foo<B>::method(); - f.Foo<::B>::method(); // { dg-error "8: error|8: note" } + f.Foo<::B>::method(); // { dg-error "8:cannot begin" "begin" } +// { dg-message "8:alternate spelling" "alt" { target *-*-* } 45 } // Check cases where we the token sequence is the correct one, but there // was no digraph or whitespaces in the middle, so we should not emit // the special error message. Foo<: :B> k2; // { dg-bogus "cannot begin|alternate spelling" "smart error should not be triggered here" } Foo[:B> k1; // { dg-bogus "cannot begin|alternate spelling" "smart error should not be triggered here" } -// { dg-error "6: error: missing template arguments before" "" { target *-*-* } { 41 } } -// { dg-error "9: error: expected primary-expression before ':' token" "" { target *-*-* } 41 } -// { dg-error "9: error: expected '\]' before ':' token" "" { target *-*-* } 41 } -// { dg-error "9: error: expected ';' before ':' token" "" { target *-*-* } 41 } -// { dg-error "6: error: missing template arguments before" "" { target *-*-* } 42 } -// { dg-error "7: error: expected primary-expression before ':' token" "" { target *-*-* } 42 } -// { dg-error "7: error: expected '\]' before ':' token" "" { target *-*-* } 42 } -// { dg-error "7: error: expected ';' before ':' token" "" { target *-*-* } 42 } +// { dg-error "6:missing template arguments before" "template" { target *-*-* } { 51 } } +// { dg-error "9:expected primary-expression before ':' token" "primary" { target *-*-* } 51 } +// { dg-error "9:expected '\]' before ':' token" "backslash" { target *-*-* } 51 } +// { dg-error "9:expected ';' before ':' token" "semicolon" { target *-*-* } 51 } +// { dg-error "6:missing template arguments before" "template" { target *-*-* } 52 } +// { dg-error "7:expected primary-expression before ':' token" "primary" { target *-*-* } 52 } +// { dg-error "7:expected '\]' before ':' token" "backslash" { target *-*-* } 52 } +// { dg-error "7:expected ';' before ':' token" "semicolon" { target *-*-* } 52 } // int Foo[2]; Foo[::value] = 0; } -template struct Foo<::B>; // { dg-error "20: error: '<::' cannot begin|20: note: '<:' is an alternate" } +template struct Foo<::B>; // { dg-error "20:'<::' cannot begin" "begin" } +// { dg-message "20:is an alternate" "alt" { target *-*-* } 66 } // On the first error message, an additional note about the use of // -fpermissive should be present -// { dg-error "17: note: \\(if you use '-fpermissive' G\\+\\+ will accept your code\\)" "-fpermissive" { target *-*-* } 19 } +// { dg-message "17:\\(if you use '-fpermissive' G\\+\\+ will accept your code\\)" "-fpermissive" { target *-*-* } 19 } diff --git a/gcc/testsuite/g++.dg/parse/error12.C b/gcc/testsuite/g++.dg/parse/error12.C index b0025885bf4..3ebcf389413 100644 --- a/gcc/testsuite/g++.dg/parse/error12.C +++ b/gcc/testsuite/g++.dg/parse/error12.C @@ -9,5 +9,5 @@ template <class A> struct Foo {}; Foo<::B> foo; // { dg-bogus "error" "error in place of warning" } -// { dg-error "4: warning: '<::' cannot begin a template-argument list" "warning <::" { target *-*-* } 11 } -// { dg-error "4: note: '<:' is an alternate spelling for '.'. Insert whitespace between '<' and '::'" "note <:" { target *-*-* } 11 } +// { dg-warning "4: '<::' cannot begin a template-argument list" "warning <::" { target *-*-* } 11 } +// { dg-message "4:'<:' is an alternate spelling for '.'. Insert whitespace between '<' and '::'" "note <:" { target *-*-* } 11 } diff --git a/gcc/testsuite/g++.dg/parse/error13.C b/gcc/testsuite/g++.dg/parse/error13.C index 94ddae89705..9bce98d7fc8 100644 --- a/gcc/testsuite/g++.dg/parse/error13.C +++ b/gcc/testsuite/g++.dg/parse/error13.C @@ -1,14 +1,14 @@ // { dg-options "-fshow-column" } // PR c++/13975 -public: // { dg-error "1: error: expected unqualified-id before 'public'" } +public: // { dg-error "1:expected unqualified-id before 'public'" } int i; -protected: // { dg-error "1: error: expected unqualified-id before 'protected'" } +protected: // { dg-error "1:expected unqualified-id before 'protected'" } int j; -private: // { dg-error "1: error: expected unqualified-id before 'private'" } +private: // { dg-error "1:expected unqualified-id before 'private'" } int k; diff --git a/gcc/testsuite/g++.dg/parse/error14.C b/gcc/testsuite/g++.dg/parse/error14.C index 906b98f87e2..9e672c286b2 100644 --- a/gcc/testsuite/g++.dg/parse/error14.C +++ b/gcc/testsuite/g++.dg/parse/error14.C @@ -19,5 +19,8 @@ struct X Zinc<int>( //); // } -}; // { dg-error "2: error: expected '.' at end of input|1: error: expected primary-expression before '.' token|1: error: expected ';' before '.' token|1: error: expected unqualified-id at end of input" } +}; // { dg-error "2:expected '.' at end of input" "at end of input" } + // { dg-error "1:expected primary-expression before '.' token" "primary" { target *-*-* } 22 } + // { dg-error "1:expected ';' before '.' token" "semicolon" { target *-*-* } 22 } + // { dg-error "1:expected unqualified-id at end of input" "unqual" { target *-*-* } 22 } diff --git a/gcc/testsuite/g++.dg/parse/error15.C b/gcc/testsuite/g++.dg/parse/error15.C index 5d30b554369..c5d3d3d7d67 100644 --- a/gcc/testsuite/g++.dg/parse/error15.C +++ b/gcc/testsuite/g++.dg/parse/error15.C @@ -10,29 +10,32 @@ namespace N int K; } -N::A f2; // { dg-error "1: error: invalid use of template-name 'N::A' without an argument list" } -N::INVALID f3; // { dg-error "1: error: 'INVALID' in namespace 'N' does not name a type" } -N::C::INVALID f4; // { dg-error "1: error: 'INVALID' in class 'N::C' does not name a type" } -N::K f6; // { dg-error "1: error: 'K' in namespace 'N' does not name a type" } -typename N::A f7; // { dg-error "1: error: using 'typename' outside of template|13: error: invalid use of template-name 'N::A' without an argument list|17: error: invalid type in declaration before ';' token" } +N::A f2; // { dg-error "1:invalid use of template-name 'N::A' without an argument list" } +N::INVALID f3; // { dg-error "1:'INVALID' in namespace 'N' does not name a type" } +N::C::INVALID f4; // { dg-error "1:'INVALID' in class 'N::C' does not name a type" } +N::K f6; // { dg-error "1:'K' in namespace 'N' does not name a type" } +typename N::A f7; // { dg-error "1:using 'typename' outside of template" "1" } +// { dg-error "13:invalid use of template-name 'N::A' without an argument list" "13" { target *-*-* } 17 } +// { dg-error "17:invalid type in declaration before ';' token" "17" { target *-*-* } 17 } struct B { - N::A f2; // { dg-error "3: error: invalid use of template-name 'N::A' without an argument list" } - N::INVALID f3; // { dg-error "3: error: 'INVALID' in namespace 'N' does not name a type" } - N::C::INVALID f4; // { dg-error "3: error: 'INVALID' in class 'N::C' does not name a type" } - N::K f6; // { dg-error "3: error: 'K' in namespace 'N' does not name a type" } - typename N::A f7; // { dg-error "3: error: using 'typename' outside of template|15: error: invalid use of template-name 'N::A' without an argument list" } + N::A f2; // { dg-error "3:invalid use of template-name 'N::A' without an argument list" } + N::INVALID f3; // { dg-error "3:'INVALID' in namespace 'N' does not name a type" } + N::C::INVALID f4; // { dg-error "3:'INVALID' in class 'N::C' does not name a type" } + N::K f6; // { dg-error "3:'K' in namespace 'N' does not name a type" } + typename N::A f7; // { dg-error "3:using 'typename' outside of template" } +// { dg-error "15:invalid use of template-name 'N::A' without an argument list" "15" { target *-*-* } 27 } }; template <int> struct C { - N::A f2; // { dg-error "3: error: invalid use of template-name 'N::A' without an argument list" } - N::INVALID f3; // { dg-error "3: error: 'INVALID' in namespace 'N' does not name a type" } - N::C::INVALID f4; // { dg-error "3: error: 'INVALID' in class 'N::C' does not name a type" } - N::K f6; // { dg-error "3: error: 'K' in namespace 'N' does not name a type" } - typename N::A f7; // { dg-error "15: error: invalid use of template-name 'N::A' without an argument list" } + N::A f2; // { dg-error "3:invalid use of template-name 'N::A' without an argument list" } + N::INVALID f3; // { dg-error "3:'INVALID' in namespace 'N' does not name a type" } + N::C::INVALID f4; // { dg-error "3:'INVALID' in class 'N::C' does not name a type" } + N::K f6; // { dg-error "3:'K' in namespace 'N' does not name a type" } + typename N::A f7; // { dg-error "15:invalid use of template-name 'N::A' without an argument list" } }; // { dg-bogus "bogus excess errors in declaration" "bogus excess errors in declaration" { target *-*-* } 17 } diff --git a/gcc/testsuite/g++.dg/parse/error16.C b/gcc/testsuite/g++.dg/parse/error16.C index ddc302c7cd6..ba9aacc26e3 100644 --- a/gcc/testsuite/g++.dg/parse/error16.C +++ b/gcc/testsuite/g++.dg/parse/error16.C @@ -3,7 +3,7 @@ struct A { - struct B {}; // { dg-error "12: error: previous definition of 'struct A::B'" } + struct B {}; // { dg-error "12:previous definition of 'struct A::B'" } }; -struct A::B{}; // { dg-error "11: error: redefinition of 'struct A::B'" } +struct A::B{}; // { dg-error "11:redefinition of 'struct A::B'" } diff --git a/gcc/testsuite/g++.dg/parse/error17.C b/gcc/testsuite/g++.dg/parse/error17.C index defd708982d..4cd4044e3d0 100644 --- a/gcc/testsuite/g++.dg/parse/error17.C +++ b/gcc/testsuite/g++.dg/parse/error17.C @@ -2,8 +2,10 @@ // PR c++/16965 template <typename T> struct B { - static int Bar(T); // { dg-error "14: error: candidates are: |14: error: " } + static int Bar(T); // { dg-error "14:candidates are: " "1" } + // { dg-error "14:with T = int" "2" { target *-*-* } 5 } }; struct D : B<int>, B<char> {}; -int i2 = D::Bar(2); // { dg-error "13: error: reference to 'Bar' is ambiguous|10: error: reference to 'Bar' is ambiguous" } +int i2 = D::Bar(2); // { dg-error "13:reference to 'Bar' is ambiguous" } +// { dg-error "10:reference to 'Bar' is ambiguous" "2" { target *-*-* } 10 } diff --git a/gcc/testsuite/g++.dg/parse/error18.C b/gcc/testsuite/g++.dg/parse/error18.C index 926af11eb6a..b5e722221b9 100644 --- a/gcc/testsuite/g++.dg/parse/error18.C +++ b/gcc/testsuite/g++.dg/parse/error18.C @@ -3,6 +3,6 @@ void f() { - double Q *= 5.0; // { dg-error "12: error: expected initializer before '..' token" } + double Q *= 5.0; // { dg-error "12:expected initializer before '..' token" } } diff --git a/gcc/testsuite/g++.dg/parse/error19.C b/gcc/testsuite/g++.dg/parse/error19.C index b22156a5d71..5582891c974 100644 --- a/gcc/testsuite/g++.dg/parse/error19.C +++ b/gcc/testsuite/g++.dg/parse/error19.C @@ -2,7 +2,7 @@ // PR C++/17867 struct A -{ // { dg-error "1: note: candidates are:" } +{ // { dg-message "1:candidates are:" } A(int); }; @@ -10,5 +10,5 @@ const A& foo(); void bar() { - foo()=A(0); // { dg-error "12: error: no match for 'operator='" } + foo()=A(0); // { dg-error "12:no match for 'operator='" } } diff --git a/gcc/testsuite/g++.dg/parse/error2.C b/gcc/testsuite/g++.dg/parse/error2.C index 075dcc2b0d1..619f89421d9 100644 --- a/gcc/testsuite/g++.dg/parse/error2.C +++ b/gcc/testsuite/g++.dg/parse/error2.C @@ -8,8 +8,8 @@ int func(double); template <int> struct Foo {}; -Foo<func(g)> f; // { dg-error "5: error: 'int func.double.' cannot appear in a constant-expression" "" { target *-*-* } { 11 } } -// { dg-error "10: error: 'g' cannot appear in a constant-expression" "" { target *-*-* } { 11 } } -// { dg-error "11: error: a function call cannot appear in a constant-expression" "" { target *-*-* } { 11 } } -// { dg-error "12: error: template argument 1 is invalid" "" { target *-*-* } { 11 } } -// { dg-error "15: error: invalid type in declaration before ';' token" "" { target *-*-* } { 11 } } +Foo<func(g)> f; // { dg-error "5:'int func.double.' cannot appear in a constant-expression" "" { target *-*-* } 11 } +// { dg-error "10:'g' cannot appear in a constant-expression" "" { target *-*-* } 11 } +// { dg-error "11:a function call cannot appear in a constant-expression" "" { target *-*-* } 11 } +// { dg-error "12:template argument 1 is invalid" "" { target *-*-* } 11 } +// { dg-error "15:invalid type in declaration before ';' token" "" { target *-*-* } 11 } diff --git a/gcc/testsuite/g++.dg/parse/error20.C b/gcc/testsuite/g++.dg/parse/error20.C index 9564fab757b..d2f9353a7cc 100644 --- a/gcc/testsuite/g++.dg/parse/error20.C +++ b/gcc/testsuite/g++.dg/parse/error20.C @@ -12,7 +12,7 @@ struct C { }; int main() { C c; - A(c.p.i); // { dg-error "9: error: request for member 'i' in 'c.C::p', which is of non-class type 'B" } + A(c.p.i); // { dg-error "9:request for member 'i' in 'c.C::p', which is of non-class type 'B" } return 0; } diff --git a/gcc/testsuite/g++.dg/parse/error21.C b/gcc/testsuite/g++.dg/parse/error21.C index f60bf2b9c54..469e5fb4e1c 100644 --- a/gcc/testsuite/g++.dg/parse/error21.C +++ b/gcc/testsuite/g++.dg/parse/error21.C @@ -7,6 +7,7 @@ void foo() { // Check that we do not complain about an unused // compiler-generated variable. - A& = a; // { dg-error "6: error: expected unqualified-id before '=' token|8: error: 'a' was not declared in this scope" } + A& = a; // { dg-error "6:expected unqualified-id before '=' token" "6" } + // { dg-error "8:'a' was not declared in this scope" "8" { target *-*-* } 10 } } diff --git a/gcc/testsuite/g++.dg/parse/error22.C b/gcc/testsuite/g++.dg/parse/error22.C index 30141219abc..29552c67a6e 100644 --- a/gcc/testsuite/g++.dg/parse/error22.C +++ b/gcc/testsuite/g++.dg/parse/error22.C @@ -2,5 +2,5 @@ // PR c++/15786 struct A { - void foo(bar* p); /* { dg-error "12: error: 'bar' has not been declared" } */ + void foo(bar* p); /* { dg-error "12:'bar' has not been declared" } */ }; diff --git a/gcc/testsuite/g++.dg/parse/error23.C b/gcc/testsuite/g++.dg/parse/error23.C index 21b24349608..9c19b562c6d 100644 --- a/gcc/testsuite/g++.dg/parse/error23.C +++ b/gcc/testsuite/g++.dg/parse/error23.C @@ -5,5 +5,5 @@ struct QChar { QChar( char c ); QChar( const QChar& c ); //following column number is not accurate enough but will make it for now - static const ; // { dg-error "10: error: declaration does not declare anything" } + static const ; // { dg-error "10:declaration does not declare anything" } }; diff --git a/gcc/testsuite/g++.dg/parse/error24.C b/gcc/testsuite/g++.dg/parse/error24.C index e341c341291..c8ab6d9921a 100644 --- a/gcc/testsuite/g++.dg/parse/error24.C +++ b/gcc/testsuite/g++.dg/parse/error24.C @@ -2,7 +2,7 @@ // PR c++/19395 struct A { - typedef int ::X; // { dg-error "17: error: typedef name may not be a nested-name-specifier" } + typedef int ::X; // { dg-error "17:typedef name may not be a nested-name-specifier" } }; diff --git a/gcc/testsuite/g++.dg/parse/error25.C b/gcc/testsuite/g++.dg/parse/error25.C index b5cb57ee1f0..a0fd24c3a6f 100644 --- a/gcc/testsuite/g++.dg/parse/error25.C +++ b/gcc/testsuite/g++.dg/parse/error25.C @@ -9,10 +9,10 @@ class foo { virtual void bar1 () = 0; - virtual void bar2 () = __null; // { dg-error "32: error: invalid pure specifier" } - virtual void bar3 () = 4; // { dg-error "27: error: invalid pure specifier" } - virtual void bar4 () = A::f; // { dg-error "27: error: invalid pure specifier" } - virtual void bar5 () = 0l; // { dg-error "28: error: invalid pure specifier" } - virtual void bar6 () = 00; // { dg-error "28: error: invalid pure specifier" } - virtual void bar7 () = 0x0; // { dg-error "29: error: invalid pure specifier" } + virtual void bar2 () = __null; // { dg-error "32:invalid pure specifier" } + virtual void bar3 () = 4; // { dg-error "27:invalid pure specifier" } + virtual void bar4 () = A::f; // { dg-error "27:invalid pure specifier" } + virtual void bar5 () = 0l; // { dg-error "28:invalid pure specifier" } + virtual void bar6 () = 00; // { dg-error "28:invalid pure specifier" } + virtual void bar7 () = 0x0; // { dg-error "29:invalid pure specifier" } }; diff --git a/gcc/testsuite/g++.dg/parse/error26.C b/gcc/testsuite/g++.dg/parse/error26.C index 81f7ba6d382..befaf3bb3b8 100644 --- a/gcc/testsuite/g++.dg/parse/error26.C +++ b/gcc/testsuite/g++.dg/parse/error26.C @@ -3,10 +3,12 @@ void foo() { - if (({int c[2];})) ; // { dg-error "7: error: ISO C.. forbids|20: error: could not convert" } + if (({int c[2];})) ; // { dg-error "7:ISO C.. forbids" "7" } + // { dg-error "20:could not convert" "20" { target *-*-* } 6 } } void bar() { - if (({})); // { dg-error "7: error: ISO C.. forbids|11: error: could not convert" } + if (({})); // { dg-error "7:ISO C.. forbids" "7" } + // { dg-error "11:could not convert" "11" { target *-*-* } 12 } } diff --git a/gcc/testsuite/g++.dg/parse/error27.C b/gcc/testsuite/g++.dg/parse/error27.C index f1fd5376e59..c07d1d3a758 100644 --- a/gcc/testsuite/g++.dg/parse/error27.C +++ b/gcc/testsuite/g++.dg/parse/error27.C @@ -1,8 +1,8 @@ // { dg-options "-fshow-column -ansi -pedantic-errors -Wno-long-long" } // PR c++/20152 -struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "24: error: previous definition of 'struct KrSelectionMode'" } -struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "52: error: previous definition of 'struct KrKDESelectionMode'" } -struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "8: error: redefinition of 'struct KrSelectionMode'" } -struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "8: error: redefinition of 'struct KrKDESelectionMode'" } +struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "24:previous definition of 'struct KrSelectionMode'" } +struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "52:previous definition of 'struct KrKDESelectionMode'" } +struct KrSelectionMode { virtual void init() = 0; }; // { dg-error "8:redefinition of 'struct KrSelectionMode'" } +struct KrKDESelectionMode : public KrSelectionMode { void init() { } }; // { dg-error "8:redefinition of 'struct KrKDESelectionMode'" } KrKDESelectionMode krKDESelectionMode; diff --git a/gcc/testsuite/g++.dg/parse/error28.C b/gcc/testsuite/g++.dg/parse/error28.C index 7162afa3a02..50ad960e09e 100644 --- a/gcc/testsuite/g++.dg/parse/error28.C +++ b/gcc/testsuite/g++.dg/parse/error28.C @@ -2,10 +2,10 @@ // PR c++/21908 struct virt { virt () {} virt (int i) {} }; -struct der : public virtual virt { // { dg-error "34: note: der::der" } - der (int i) : virt(i) {} // { dg-error "3: note: candidates are: der" } +struct der : public virtual virt { // { dg-message "34:der::der" } + der (int i) : virt(i) {} // { dg-message "3:candidates are: der" } }; struct top : public der { top () {} // { dg-bogus "der\\(const" } }; -// { dg-error "10: error: no matching function for call to 'der" "" { target *-*-* } 9 } +// { dg-error "10:no matching function for call to 'der" "" { target *-*-* } 9 } diff --git a/gcc/testsuite/g++.dg/parse/error29.C b/gcc/testsuite/g++.dg/parse/error29.C index fcd091b0b65..2c3a3a7f288 100644 --- a/gcc/testsuite/g++.dg/parse/error29.C +++ b/gcc/testsuite/g++.dg/parse/error29.C @@ -7,7 +7,7 @@ struct A { void operator delete(void *); }; struct B { - friend void A::foo() {} // { dg-error "22: error: cannot define member function 'A::foo' within 'B'" } - friend void A::operator delete(void*) {} // { dg-error "39: error: cannot define member function 'A::operator delete' within 'B'" } - friend A::A() {} // { dg-error "15: error: cannot define member function 'A::A' within 'B'" } + friend void A::foo() {} // { dg-error "22:cannot define member function 'A::foo' within 'B'" } + friend void A::operator delete(void*) {} // { dg-error "39:cannot define member function 'A::operator delete' within 'B'" } + friend A::A() {} // { dg-error "15:cannot define member function 'A::A' within 'B'" } }; diff --git a/gcc/testsuite/g++.dg/parse/error3.C b/gcc/testsuite/g++.dg/parse/error3.C index 2856850fb76..55ae024d412 100644 --- a/gcc/testsuite/g++.dg/parse/error3.C +++ b/gcc/testsuite/g++.dg/parse/error3.C @@ -5,5 +5,5 @@ static void InstantiateConstraint(const float&, unsigned, void(*AddFunction)(const TYPE&,bool&, char*, char*, unsigned*)); -// { dg-error "64: error: expected ',' or '...' before '&' token" "" { target *-*-* } { 5 } } -// { dg-error "60: error: ISO C\\+\\+ forbids declaration of 'TYPE' with no type" "" { target *-*-* } { 5 } } +// { dg-error "64:expected ',' or '...' before '&' token" "" { target *-*-* } { 5 } } +// { dg-error "60:ISO C\\+\\+ forbids declaration of 'TYPE' with no type" "" { target *-*-* } { 5 } } diff --git a/gcc/testsuite/g++.dg/parse/error30.C b/gcc/testsuite/g++.dg/parse/error30.C index 5c52d1ee67a..26c55c49c68 100644 --- a/gcc/testsuite/g++.dg/parse/error30.C +++ b/gcc/testsuite/g++.dg/parse/error30.C @@ -8,5 +8,5 @@ struct A A(int); }; -A a = -A(); // { dg-error "10: error: no match for.*operator-.*in.*-A\\(\\)" } -A b = -A(5); // { dg-error "11: error: no match for.*operator-.*in.*-A\\(5\\)" } +A a = -A(); // { dg-error "10:no match for.*operator-.*in.*-A\\(\\)" } +A b = -A(5); // { dg-error "11:no match for.*operator-.*in.*-A\\(5\\)" } diff --git a/gcc/testsuite/g++.dg/parse/error31.C b/gcc/testsuite/g++.dg/parse/error31.C index d354cc3e0dd..e3928522711 100644 --- a/gcc/testsuite/g++.dg/parse/error31.C +++ b/gcc/testsuite/g++.dg/parse/error31.C @@ -6,7 +6,7 @@ template<typename T> class foo{ }; int main() { foo<int> i; // this column number is not accurate yet, but that will make it for now. - foo<foo<int> j; // { dg-error "18: error: template argument 1 is invalid" } + foo<foo<int> j; // { dg-error "18:template argument 1 is invalid" } int k; int l; foo<int> m; diff --git a/gcc/testsuite/g++.dg/parse/error4.C b/gcc/testsuite/g++.dg/parse/error4.C index 790e5c9a40b..792bf4dc063 100644 --- a/gcc/testsuite/g++.dg/parse/error4.C +++ b/gcc/testsuite/g++.dg/parse/error4.C @@ -7,4 +7,4 @@ struct X { int); }; -// { dg-error "4: error: 'itn' has not been declared" "" { target *-*-* } { 6 } } +// { dg-error "4:'itn' has not been declared" "" { target *-*-* } 6 } diff --git a/gcc/testsuite/g++.dg/parse/error5.C b/gcc/testsuite/g++.dg/parse/error5.C index 8c9a039ac3c..6ebb087306b 100644 --- a/gcc/testsuite/g++.dg/parse/error5.C +++ b/gcc/testsuite/g++.dg/parse/error5.C @@ -3,17 +3,17 @@ class Foo { int foo() return 0; } }; -// { dg-error "30: error: expected identifier before numeric constant" "" { target *-*-* } { 4 } } +// { dg-error "30:expected identifier before numeric constant" "" { target *-*-* } 4 } -// { dg-error "23: error: named return values are no longer supported" "" { target *-*-* } { 4 } } +// { dg-error "23:named return values are no longer supported" "" { target *-*-* } 4 } // the column number info of this error output is still wrong because the error // message has been generated by cp_parser_error() which does not // necessarily allow accurate column number display. At some point, we will // need make cp_parser_error() report more accurate column numbers. -// { dg-error "30: error: expected '\{' at end of input" "" { target *-*-* } { 4 } } +// { dg-error "30:expected '\{' at end of input" "" { target *-*-* } 4 } -// { dg-error "35: error: expected unqualified-id before '\}' token" "" {target *-*-* } { 4 } } +// { dg-error "35:expected unqualified-id before '\}' token" "" {target *-*-* } 4 } -// { dg-error "35: error: expected declaration before '\}' token" "" {target *-*-* } { 4 } } +// { dg-error "35:expected declaration before '\}' token" "" {target *-*-* } 4 } diff --git a/gcc/testsuite/g++.dg/parse/error6.C b/gcc/testsuite/g++.dg/parse/error6.C index cd1b6b8cd33..81e04e21722 100644 --- a/gcc/testsuite/g++.dg/parse/error6.C +++ b/gcc/testsuite/g++.dg/parse/error6.C @@ -5,7 +5,7 @@ int f(int not) { return 1-not; } -// { dg-error "11: error: expected ',' or '...' before '!' token" "" { target *-*-* } { 4 } } +// { dg-error "11:expected ',' or '...' before '!' token" "" { target *-*-* } 4 } -// { dg-error "15: error: expected primary\\-expression before ';' token" "" { target *-*-* } { 5 } } +// { dg-error "15:expected primary\\-expression before ';' token" "" { target *-*-* } 5 } diff --git a/gcc/testsuite/g++.dg/parse/error7.C b/gcc/testsuite/g++.dg/parse/error7.C index f71c9aa9fa0..78b7caac9cd 100644 --- a/gcc/testsuite/g++.dg/parse/error7.C +++ b/gcc/testsuite/g++.dg/parse/error7.C @@ -4,4 +4,4 @@ void f(int x int y); -// { dg-error "8: error: expected ',' or '...' before 'int'" "" { target *-*-* } { 5 } } +// { dg-error "8:expected ',' or '...' before 'int'" "" { target *-*-* } 5 } diff --git a/gcc/testsuite/g++.dg/parse/error8.C b/gcc/testsuite/g++.dg/parse/error8.C index a399cfe63f7..ba572b0db7d 100644 --- a/gcc/testsuite/g++.dg/parse/error8.C +++ b/gcc/testsuite/g++.dg/parse/error8.C @@ -4,7 +4,7 @@ struct A { friend typename struct B; }; -// { dg-error "19: error: using 'typename' outside of template" "" { target *-*-* } { 4 } } -// { dg-error "28: error: expected nested-name-specifier before 'struct'" "" { target *-*-* } { 4 } } -// { dg-error "35: error: multiple types in one declaration" "" { target *-*-* } { 4 } } -// { dg-error "12: error: friend declaration does not name a class or function" "" { target *-*-* } { 4 } } +// { dg-error "19:using 'typename' outside of template" "" { target *-*-* } 4 } +// { dg-error "28:expected nested-name-specifier before 'struct'" "" { target *-*-* } 4 } +// { dg-error "35:multiple types in one declaration" "" { target *-*-* } 4 } +// { dg-error "12:friend declaration does not name a class or function" "" { target *-*-* } 4 } diff --git a/gcc/testsuite/g++.dg/parse/error9.C b/gcc/testsuite/g++.dg/parse/error9.C index c1be6979b47..b16c84e81ff 100644 --- a/gcc/testsuite/g++.dg/parse/error9.C +++ b/gcc/testsuite/g++.dg/parse/error9.C @@ -5,5 +5,5 @@ enum { FOO = 1, BAR = 2 }; int a[] = { FOO: 1, BAR: 2 }; // the following 2 column locations are still not accurate enough -// { dg-error "28: error: name 'FOO' used in a GNU-style designated initializer for an array" "" { target *-*-* } { 5 } } -// { dg-error "28: error: name 'BAR' used in a GNU-style designated initializer for an array" "" { target *-*-* } { 5 } } +// { dg-error "28:name 'FOO' used in a GNU-style designated initializer for an array" "" { target *-*-* } 5 } +// { dg-error "28:name 'BAR' used in a GNU-style designated initializer for an array" "" { target *-*-* } 5 } diff --git a/gcc/testsuite/g++.dg/parse/friend5.C b/gcc/testsuite/g++.dg/parse/friend5.C index 5e23f457829..ec134c26ea9 100644 --- a/gcc/testsuite/g++.dg/parse/friend5.C +++ b/gcc/testsuite/g++.dg/parse/friend5.C @@ -3,5 +3,6 @@ extern "C" struct A { friend void foo(int) {} // { dg-error "declaration" } - friend void foo() {} // { dg-error "foo" } + friend void foo() {} // { dg-error "foo" "err" } + // { dg-warning "already a friend" "warn" { target *-*-* } 6 } }; diff --git a/gcc/testsuite/g++.dg/parse/invalid-op1.C b/gcc/testsuite/g++.dg/parse/invalid-op1.C index 37e480983f8..0b75d079135 100644 --- a/gcc/testsuite/g++.dg/parse/invalid-op1.C +++ b/gcc/testsuite/g++.dg/parse/invalid-op1.C @@ -6,8 +6,9 @@ template <int I> struct A { template <int> struct B { - enum { e = I * A<I-1>::B }; // { dg-error "" } + enum { e = I * A<I-1>::B }; // { dg-error "dependent-name" "depname" } + // { dg-message "note" "note" { target *-*-* } 9 } }; }; -A<0>::B<0> a; // { dg-error "instantiated" } +A<0>::B<0> a; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/parse/missing-template1.C b/gcc/testsuite/g++.dg/parse/missing-template1.C index 40f8502be37..e5e03146dbb 100644 --- a/gcc/testsuite/g++.dg/parse/missing-template1.C +++ b/gcc/testsuite/g++.dg/parse/missing-template1.C @@ -12,7 +12,9 @@ template <typename T> struct A template <typename T> void foo() { - typedef typename A<T>::B<T>::X Y; // { dg-error "" } + typedef typename A<T>::B<T>::X Y; // { dg-error "non-template" "non" } + // { dg-error "not declare" "decl" { target *-*-* } 15 } + // { dg-message "note" "note" { target *-*-* } 15 } } void bar() diff --git a/gcc/testsuite/g++.dg/parse/non-dependent2.C b/gcc/testsuite/g++.dg/parse/non-dependent2.C index ef75c17aef3..4df2da7faf4 100644 --- a/gcc/testsuite/g++.dg/parse/non-dependent2.C +++ b/gcc/testsuite/g++.dg/parse/non-dependent2.C @@ -8,14 +8,14 @@ template <class T> struct Foo { int j; // we never see this one. - int k; // { dg-error "" "" } + int k; // { dg-error "Foo" "" } }; struct Baz { int j; - int k; // { dg-error "" "" } + int k; // { dg-error "candidates" "" } }; @@ -31,7 +31,7 @@ int main() Bar<int> bar; bar.baz (); - bar.foo (); // { dg-error "instantiated" "" } + bar.foo (); // { dg-message "instantiated" "" } return 0; } diff --git a/gcc/testsuite/g++.dg/parse/offsetof8.C b/gcc/testsuite/g++.dg/parse/offsetof8.C index 9add91e3768..e613ddcbb9a 100644 --- a/gcc/testsuite/g++.dg/parse/offsetof8.C +++ b/gcc/testsuite/g++.dg/parse/offsetof8.C @@ -12,5 +12,5 @@ struct B void foo() { - __builtin_offsetof(B, a[0]); /* { dg-error "error: cannot apply 'offsetof' when 'operator\\\[\\\]' is overloaded" } */ + __builtin_offsetof(B, a[0]); /* { dg-error "cannot apply 'offsetof' when 'operator\\\[\\\]' is overloaded" } */ } diff --git a/gcc/testsuite/g++.dg/parse/ret-type2.C b/gcc/testsuite/g++.dg/parse/ret-type2.C index 2e8fa36ec0c..35638c28afc 100644 --- a/gcc/testsuite/g++.dg/parse/ret-type2.C +++ b/gcc/testsuite/g++.dg/parse/ret-type2.C @@ -1,5 +1,10 @@ -struct S {} f(); // { dg-error "" } -struct T {} *g(); // { dg-error "" } -struct U {} h() {} // { dg-error "" } -struct V {} *i() {} // { dg-error "" } -struct W {} (*p) (); // { dg-error "" } +struct S {} f(); // { dg-error "return" "err" } +// { dg-message "note" "note" { target *-*-* } 1 } +struct T {} *g(); // { dg-error "return" } +// { dg-message "note" "note" { target *-*-* } 3 } +struct U {} h() {} // { dg-error "return" } +// { dg-message "note" "note" { target *-*-* } 5 } +struct V {} *i() {} // { dg-error "return" } +// { dg-message "note" "note" { target *-*-* } 7 } +struct W {} (*p) (); // { dg-error "return" } +// { dg-message "note" "note" { target *-*-* } 9 } diff --git a/gcc/testsuite/g++.dg/parse/specialization1.C b/gcc/testsuite/g++.dg/parse/specialization1.C index 7378570d65d..8a47f177205 100644 --- a/gcc/testsuite/g++.dg/parse/specialization1.C +++ b/gcc/testsuite/g++.dg/parse/specialization1.C @@ -3,4 +3,5 @@ // { dg-do compile } template <typename T> class A; -template <typename T> class A<T>::B; // { dg-error "declaration" } +template <typename T> class A<T>::B; // { dg-error "declaration" "err" } +// { dg-warning "declaration" "warn" { target *-*-* } 6 } diff --git a/gcc/testsuite/g++.dg/parse/template18.C b/gcc/testsuite/g++.dg/parse/template18.C index 532f9a48971..98209b2449c 100644 --- a/gcc/testsuite/g++.dg/parse/template18.C +++ b/gcc/testsuite/g++.dg/parse/template18.C @@ -49,4 +49,4 @@ template<int I> void f2() A::template B<I>::template b2<double>(0); } -template void f2<0>(); // { dg-error "instantiated" } +template void f2<0>(); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/parse/template3.C b/gcc/testsuite/g++.dg/parse/template3.C index 290721eaa53..d10d46d8133 100644 --- a/gcc/testsuite/g++.dg/parse/template3.C +++ b/gcc/testsuite/g++.dg/parse/template3.C @@ -13,5 +13,7 @@ struct X : Outer<b>::template Inner<T> {}; template <bool b, typename T> -struct Y : Outer<b>::Inner<T> {}; // { dg-error "" "" } +struct Y : Outer<b>::Inner<T> {}; // { dg-error "used as template" "temp" } +// { dg-error "expected" "exp" { target *-*-* } 16 } +// { dg-message "note" "note" { target *-*-* } 16 } diff --git a/gcc/testsuite/g++.dg/parse/template9.C b/gcc/testsuite/g++.dg/parse/template9.C index 90ce9fe61ac..17b7da91f37 100644 --- a/gcc/testsuite/g++.dg/parse/template9.C +++ b/gcc/testsuite/g++.dg/parse/template9.C @@ -1,5 +1,6 @@ template <typename T> void f() { - g(); // { dg-error "" } - h(3); // { dg-error "" } + g(); // { dg-error "must be available" "err" } + // { dg-message "note" "note" { target *-*-* } 3 } + h(3); // { dg-error "must be available" } } diff --git a/gcc/testsuite/g++.dg/rtti/no-rtti.C b/gcc/testsuite/g++.dg/rtti/no-rtti.C index ca9cb72fdff..fdf2e605274 100644 --- a/gcc/testsuite/g++.dg/rtti/no-rtti.C +++ b/gcc/testsuite/g++.dg/rtti/no-rtti.C @@ -14,5 +14,5 @@ A* f(); int main() { - B* b = dynamic_cast<B*>(f()); // { dg-error "error: " } + B* b = dynamic_cast<B*>(f()); // { dg-error "" } } diff --git a/gcc/testsuite/g++.dg/tc1/dr108.C b/gcc/testsuite/g++.dg/tc1/dr108.C index 6b567a9fad5..43bae15eaf1 100644 --- a/gcc/testsuite/g++.dg/tc1/dr108.C +++ b/gcc/testsuite/g++.dg/tc1/dr108.C @@ -7,9 +7,7 @@ template <class T> struct S { typedef int X; }; struct I2 : public I1 { - X x; // { dg-error "does not name a type" } + X x; // { dg-error "does not name a type" "name" } + // { dg-message "note" "note" { target *-*-* } 10 } }; }; - -// Additional notes on the same line are allowed -// { dg-error "" "additional" { target *-*-* } 10 } diff --git a/gcc/testsuite/g++.dg/tc1/dr152.C b/gcc/testsuite/g++.dg/tc1/dr152.C index 1b6dd870d18..a635213b3a7 100644 --- a/gcc/testsuite/g++.dg/tc1/dr152.C +++ b/gcc/testsuite/g++.dg/tc1/dr152.C @@ -11,7 +11,8 @@ namespace N1 { int foo() { X x; - f(x); // { dg-error "" "" } + f(x); // { dg-error "matching" "matching" } + // { dg-error "initializing" "initializing" { target *-*-* } 14 } } } @@ -29,8 +30,9 @@ namespace N2 { int foo() { X<T> x; - N2::f(x); // { dg-error "" "" } + N2::f(x); // { dg-error "matching" "matching" } + // { dg-error "initializing " initializing" { target *-*-* } 33 } } - template int foo<float>(); // { dg-error "instantiated from here" } + template int foo<float>(); // { dg-message "instantiated from here" } } diff --git a/gcc/testsuite/g++.dg/tc1/dr166.C b/gcc/testsuite/g++.dg/tc1/dr166.C index cc4631a5f38..8c142906a56 100644 --- a/gcc/testsuite/g++.dg/tc1/dr166.C +++ b/gcc/testsuite/g++.dg/tc1/dr166.C @@ -32,7 +32,7 @@ namespace N { template <> void f<double>(double ) { M::B::x = 0; - M::f<long>(0); // { dg-error "instantiated" } + M::f<long>(0); // { dg-message "instantiated" } } void g(void) @@ -47,7 +47,7 @@ namespace N { template <> void f<int>(int ) { - N::f<long>(0); // { dg-error "instantiated" } + N::f<long>(0); // { dg-message "instantiated" } M::A::x = 0; M::B::x = 0; // { dg-error "within this context" } } diff --git a/gcc/testsuite/g++.dg/template/access11.C b/gcc/testsuite/g++.dg/template/access11.C index f061f6616eb..4c8dce521a8 100644 --- a/gcc/testsuite/g++.dg/template/access11.C +++ b/gcc/testsuite/g++.dg/template/access11.C @@ -21,4 +21,4 @@ template <typename T> struct X::Y { typename T::X x; // { dg-error "this context" } }; -template struct X::Y<A>; // { dg-error "instantiated" } +template struct X::Y<A>; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/access2.C b/gcc/testsuite/g++.dg/template/access2.C index 9da8ecf58bf..c5e3f110395 100644 --- a/gcc/testsuite/g++.dg/template/access2.C +++ b/gcc/testsuite/g++.dg/template/access2.C @@ -15,6 +15,6 @@ class B { int main() { - A<B> ab; // { dg-error "instantiated" } - ab.f(); // { dg-error "instantiated" } + A<B> ab; // { dg-message "instantiated" } + ab.f(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/access3.C b/gcc/testsuite/g++.dg/template/access3.C index e8ee1041d13..c7a155e8ba6 100644 --- a/gcc/testsuite/g++.dg/template/access3.C +++ b/gcc/testsuite/g++.dg/template/access3.C @@ -13,5 +13,5 @@ class B { int main() { - A<B> ab; // { dg-error "instantiated" } + A<B> ab; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/access7.C b/gcc/testsuite/g++.dg/template/access7.C index 92d4c68db39..412ad00c0b7 100644 --- a/gcc/testsuite/g++.dg/template/access7.C +++ b/gcc/testsuite/g++.dg/template/access7.C @@ -14,5 +14,5 @@ typename A::T* f (A) { // { dg-error "this context" } } void g () { - f (S<int> ()); // { dg-error "context|instantiated" } + f (S<int> ()); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/copy1.C b/gcc/testsuite/g++.dg/template/copy1.C index 3b45cc08386..e56545332ae 100644 --- a/gcc/testsuite/g++.dg/template/copy1.C +++ b/gcc/testsuite/g++.dg/template/copy1.C @@ -6,9 +6,9 @@ struct A { - A(A&); // { dg-error "candidate" "" } + A(A&); // { dg-message "candidate" } template <class T> A(T); }; -A a = 0; // { dg-error "no matching function|initializing" "" } +A a = 0; // { dg-error "no matching function" } diff --git a/gcc/testsuite/g++.dg/template/crash13.C b/gcc/testsuite/g++.dg/template/crash13.C index 50ec37f2eae..0518666d1e5 100644 --- a/gcc/testsuite/g++.dg/template/crash13.C +++ b/gcc/testsuite/g++.dg/template/crash13.C @@ -15,4 +15,4 @@ template <typename T> struct C X::Y; // { dg-error "not a base type" } }; -C<void> c; // { dg-error "instantiated" } +C<void> c; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/crash37.C b/gcc/testsuite/g++.dg/template/crash37.C index 0d837bd132d..8af516018f7 100644 --- a/gcc/testsuite/g++.dg/template/crash37.C +++ b/gcc/testsuite/g++.dg/template/crash37.C @@ -11,7 +11,7 @@ struct coperator_stack struct helper {}; template<class F> -void bla(F f) // { dg-error "candidates" } +void bla(F f) // { dg-message "candidates" } { } @@ -20,7 +20,7 @@ struct definition { definition() { - bla(coperator_stack::push3<helper>); // { dg-error "" } + bla(coperator_stack::push3<helper>); // { dg-error "matching" } } }; diff --git a/gcc/testsuite/g++.dg/template/crash40.C b/gcc/testsuite/g++.dg/template/crash40.C index 716b4a26137..45123dd0d05 100644 --- a/gcc/testsuite/g++.dg/template/crash40.C +++ b/gcc/testsuite/g++.dg/template/crash40.C @@ -7,4 +7,4 @@ template<typename T> void foo() T::~T(); // { dg-error "member" } } -template void foo<A>(); // { dg-error "instantiated" } +template void foo<A>(); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/crash58.C b/gcc/testsuite/g++.dg/template/crash58.C index af2172c6732..5194ee263c0 100644 --- a/gcc/testsuite/g++.dg/template/crash58.C +++ b/gcc/testsuite/g++.dg/template/crash58.C @@ -1,6 +1,6 @@ //PR 26938 -template<int, int = 0> struct A; // { dg-error "previous declaration" } +template<int, int = 0> struct A; // { dg-message "previous declaration" } template<int> struct A // { dg-error "template" } { diff --git a/gcc/testsuite/g++.dg/template/crash81.C b/gcc/testsuite/g++.dg/template/crash81.C index f2b76744f33..849470a5e88 100644 --- a/gcc/testsuite/g++.dg/template/crash81.C +++ b/gcc/testsuite/g++.dg/template/crash81.C @@ -2,5 +2,7 @@ struct A { - template<T::X> struct X; // { dg-error "error: 'T' has not been declared|error: declaration of 'template<int X> struct A::X'|error: shadows template parm 'int X'" } + template<T::X> struct X; // { dg-error "'T' has not been declared" "T" } + // { dg-error "declaration of 'template<int X> struct A::X'" "A::X" { target *-*-* } 5 } + // { dg-error "shadows template parm 'int X'" "shadow" { target *-*-* } 5 } }; diff --git a/gcc/testsuite/g++.dg/template/ctor5.C b/gcc/testsuite/g++.dg/template/ctor5.C index 18e55d179fa..6938b36b62f 100644 --- a/gcc/testsuite/g++.dg/template/ctor5.C +++ b/gcc/testsuite/g++.dg/template/ctor5.C @@ -5,4 +5,4 @@ template<typename T> struct A A() : T(0) {} // { dg-error "base" } }; -A<int*> a; // { dg-error "instantiated" } +A<int*> a; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/dependent-expr5.C b/gcc/testsuite/g++.dg/template/dependent-expr5.C index 023f433da5d..64e86c7289f 100644 --- a/gcc/testsuite/g++.dg/template/dependent-expr5.C +++ b/gcc/testsuite/g++.dg/template/dependent-expr5.C @@ -7,14 +7,14 @@ template<class F> void bind(F f) {} template<class F> void bindm(F f) {} -template<class F, class T> void bindm(F (T::*f)(void)) {} // { dg-error "note" } +template<class F, class T> void bindm(F (T::*f)(void)) {} // { dg-message "note" } template<class F> void bindn(F f) {} template<class F, class T> void bindn(F (*f)(T)) {} template<class F> void bindb(F f) {} -template<class F, class T> void bindb(F (*f)(T)) {} // { dg-error "note" } -template<class F, class T> void bindb(F (T::*f)(void)) {} // { dg-error "note" } +template<class F, class T> void bindb(F (*f)(T)) {} // { dg-message "note" } +template<class F, class T> void bindb(F (T::*f)(void)) {} // { dg-message "note" } struct foo { static int baist; diff --git a/gcc/testsuite/g++.dg/template/eh2.C b/gcc/testsuite/g++.dg/template/eh2.C index 8ec767d3933..d2c049c8a06 100644 --- a/gcc/testsuite/g++.dg/template/eh2.C +++ b/gcc/testsuite/g++.dg/template/eh2.C @@ -7,4 +7,4 @@ template<typename T> struct A void foo() throw(typename T::X); // { dg-error "not a class" } }; -A<void> a; // { dg-error "instantiated" } +A<void> a; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/error2.C b/gcc/testsuite/g++.dg/template/error2.C index 0f3e975cd4f..86486a2e7f2 100644 --- a/gcc/testsuite/g++.dg/template/error2.C +++ b/gcc/testsuite/g++.dg/template/error2.C @@ -7,22 +7,24 @@ template<class T> struct X { - T m; // { dg-error "" "" } + T m; // { dg-error "as type 'void'" "void" } + // { dg-error "incomplete type" "incomplate" { target *-*-* } 10 } + // { dg-error "invalid" "invalid" { target *-*-* } 10 } }; template<class T > struct Derived { class Nested : public X<T> - { // { dg-error "instantiated" "" } + { // { dg-message "instantiated" "" } }; - Nested m; // { dg-error "instantiated" "" } + Nested m; // { dg-message "instantiated" "" } void Foo (); }; void Foo (Derived<void> &x) { - x.Foo (); // { dg-error "instantiated" "" } + x.Foo (); // { dg-message "instantiated" "" } } diff --git a/gcc/testsuite/g++.dg/template/error33.C b/gcc/testsuite/g++.dg/template/error33.C index e1ac82210bf..b6a2a8ae820 100644 --- a/gcc/testsuite/g++.dg/template/error33.C +++ b/gcc/testsuite/g++.dg/template/error33.C @@ -6,6 +6,7 @@ template<int> struct A A() { ++i; } }; -template<int> int A<0>::i(0); // { dg-error "template" } +template<int> int A<0>::i(0); // { dg-error "template" "error" } +// { dg-message "note" "note" { target *-*-* } 9 } A<0> a; diff --git a/gcc/testsuite/g++.dg/template/error4.C b/gcc/testsuite/g++.dg/template/error4.C index a3196ee8e77..12942fcb773 100644 --- a/gcc/testsuite/g++.dg/template/error4.C +++ b/gcc/testsuite/g++.dg/template/error4.C @@ -5,4 +5,5 @@ template<class T> struct C1 }; template<class T, class U> -void foo(typename C1<T>::C2<U>::Type *) { } // { dg-error "template" } +void foo(typename C1<T>::C2<U>::Type *) { } // { dg-error "template" "error " } +// { dg-message "note" "note" { target *-*-* } 8 } diff --git a/gcc/testsuite/g++.dg/template/friend31.C b/gcc/testsuite/g++.dg/template/friend31.C index 222ce238d78..5e60540b693 100644 --- a/gcc/testsuite/g++.dg/template/friend31.C +++ b/gcc/testsuite/g++.dg/template/friend31.C @@ -5,7 +5,7 @@ // PR c++/15410: Declaration of friend class template with wrong // template parameter. -template <typename T, typename U> struct F; // { dg-error "previous declaration" } +template <typename T, typename U> struct F; // { dg-message "previous declaration" } class W { diff --git a/gcc/testsuite/g++.dg/template/friend32.C b/gcc/testsuite/g++.dg/template/friend32.C index 4ce2ba3f2cc..81e6390d798 100644 --- a/gcc/testsuite/g++.dg/template/friend32.C +++ b/gcc/testsuite/g++.dg/template/friend32.C @@ -17,5 +17,5 @@ template<class T> class B int f () { - B<int> b; // { dg-error "instantiated" } + B<int> b; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/friend44.C b/gcc/testsuite/g++.dg/template/friend44.C index 04d68c3e0f0..814fec1d5f7 100644 --- a/gcc/testsuite/g++.dg/template/friend44.C +++ b/gcc/testsuite/g++.dg/template/friend44.C @@ -3,7 +3,7 @@ template<int> struct A { - friend int foo(); // { dg-error "14: error: new declaration" } + friend int foo(); // { dg-error "14:new declaration" } }; -void foo() { A<0> a; } // { dg-error "6: error: ambiguates old declaration" } +void foo() { A<0> a; } // { dg-error "6:ambiguates old declaration" } diff --git a/gcc/testsuite/g++.dg/template/instantiate1.C b/gcc/testsuite/g++.dg/template/instantiate1.C index 0c739d0f615..828f2e9c564 100644 --- a/gcc/testsuite/g++.dg/template/instantiate1.C +++ b/gcc/testsuite/g++.dg/template/instantiate1.C @@ -9,11 +9,11 @@ template <class T> struct X { }; template <class T> struct Y { - X<T> x; // { dg-error "instantiated" } + X<T> x; // { dg-message "instantiated" } }; template <class T> struct Z { // { dg-error "declaration" } - Y<Z<T> > y; // { dg-error "instantiated" } + Y<Z<T> > y; // { dg-message "instantiated" } }; struct ZZ : Z<int> diff --git a/gcc/testsuite/g++.dg/template/instantiate3.C b/gcc/testsuite/g++.dg/template/instantiate3.C index 4644fd02b55..de3d3a084c9 100644 --- a/gcc/testsuite/g++.dg/template/instantiate3.C +++ b/gcc/testsuite/g++.dg/template/instantiate3.C @@ -14,4 +14,4 @@ struct ACE_Cleanup_Adapter TYPE object_; // { dg-error "incomplete type" } }; -template class ACE_Cleanup_Adapter<ACE_Null_Mutex>; // { dg-error "instantiated from here" } +template class ACE_Cleanup_Adapter<ACE_Null_Mutex>; // { dg-message "instantiated from here" } diff --git a/gcc/testsuite/g++.dg/template/instantiate5.C b/gcc/testsuite/g++.dg/template/instantiate5.C index 8d076356294..70ed2b059f9 100644 --- a/gcc/testsuite/g++.dg/template/instantiate5.C +++ b/gcc/testsuite/g++.dg/template/instantiate5.C @@ -13,7 +13,7 @@ int baz() { return A<0>::i; } struct B { - static void foo (int); // { dg-error "candidates" } + static void foo (int); // { dg-message "candidates" } }; template <typename T> struct C @@ -21,4 +21,4 @@ template <typename T> struct C virtual void bar() const { T::foo(); } // { dg-error "no matching function" } }; -C<B> c; // { dg-error "instantiated" } +C<B> c; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/instantiate7.C b/gcc/testsuite/g++.dg/template/instantiate7.C index 14a1a33cf21..2e54106ffdd 100644 --- a/gcc/testsuite/g++.dg/template/instantiate7.C +++ b/gcc/testsuite/g++.dg/template/instantiate7.C @@ -7,4 +7,4 @@ template<typename T> struct A template<T&> struct B; // { dg-error "reference to void" } }; -A<void> a; // { dg-error "instantiated" } +A<void> a; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/local6.C b/gcc/testsuite/g++.dg/template/local6.C index 3472f59a7d7..7094e7480d8 100644 --- a/gcc/testsuite/g++.dg/template/local6.C +++ b/gcc/testsuite/g++.dg/template/local6.C @@ -1,10 +1,10 @@ template <class T> struct PCVector2 -{ // { dg-error "" } +{ // { dg-message "candidates" } template <class T2> PCVector2(const PCVector2<T> &cv) ; PCVector2<T> operator- (const PCVector2<T> &ov) const { - return PCVector2<T>(ov.xFIELD, ov.yFIELD); // { dg-error "" } + return PCVector2<T>(ov.xFIELD, ov.yFIELD); // { dg-error "matching" } } T xFIELD, yFIELD; @@ -15,5 +15,5 @@ void findIntersection( PCVector2<double>& p0, PCVector2<double>& p1); void findIntersection( PCVector2<double>& p0, PCVector2<double>& p1) { - PCVector2<double> e = p1 - p0; // { dg-error "" } + PCVector2<double> e = p1 - p0; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/lookup2.C b/gcc/testsuite/g++.dg/template/lookup2.C index 493b807aec9..15ab352682f 100644 --- a/gcc/testsuite/g++.dg/template/lookup2.C +++ b/gcc/testsuite/g++.dg/template/lookup2.C @@ -14,5 +14,5 @@ template <typename T> void Bar () void Foo () { - Bar<B> (); // { dg-error "instantiated" "" } + Bar<B> (); // { dg-message "instantiated" "" } } diff --git a/gcc/testsuite/g++.dg/template/member5.C b/gcc/testsuite/g++.dg/template/member5.C index 45dcd6c6c66..ba6a9705bee 100644 --- a/gcc/testsuite/g++.dg/template/member5.C +++ b/gcc/testsuite/g++.dg/template/member5.C @@ -27,6 +27,7 @@ struct S { template< typename _A > void S::foo() {} -template void S::foo< 0 >(); // { dg-error "no definition available|instantiated from here" } +template void S::foo< 0 >(); // { dg-error "no definition available" "no def" } + // { dg-message "instantiated" "instantiated" { target *-*-* } 30 } } diff --git a/gcc/testsuite/g++.dg/template/memfriend15.C b/gcc/testsuite/g++.dg/template/memfriend15.C index 08db7aef655..c12ec4b5af2 100644 --- a/gcc/testsuite/g++.dg/template/memfriend15.C +++ b/gcc/testsuite/g++.dg/template/memfriend15.C @@ -30,5 +30,5 @@ template<class T> void A<T>::B2::f() int main() { A<int>::B2 b1; - b1.f(); // { dg-error "instantiated" } + b1.f(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/memfriend16.C b/gcc/testsuite/g++.dg/template/memfriend16.C index a4eeafd79fe..2827ef3f7a1 100644 --- a/gcc/testsuite/g++.dg/template/memfriend16.C +++ b/gcc/testsuite/g++.dg/template/memfriend16.C @@ -30,5 +30,5 @@ template<class T> template <class U> void A<T>::B2<U>::f() int main() { A<int>::B2<int> b1; - b1.f(); // { dg-error "instantiated" } + b1.f(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/memfriend17.C b/gcc/testsuite/g++.dg/template/memfriend17.C index fd26bc0171e..5e163fa477a 100644 --- a/gcc/testsuite/g++.dg/template/memfriend17.C +++ b/gcc/testsuite/g++.dg/template/memfriend17.C @@ -43,4 +43,4 @@ void A<T>::B::func2(void) (void)F2<T*>::foo; } -template class A<int>; // { dg-error "instantiated" } +template class A<int>; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/memfriend7.C b/gcc/testsuite/g++.dg/template/memfriend7.C index aed029500af..1583646c0df 100644 --- a/gcc/testsuite/g++.dg/template/memfriend7.C +++ b/gcc/testsuite/g++.dg/template/memfriend7.C @@ -116,18 +116,18 @@ template <> void A<char>::j<0>() int main() { A<int *> a1; - a1.f(0); // { dg-error "instantiated" } - a1.g<char>(); // { dg-error "instantiated" } - a1.g<int>(); // { dg-error "instantiated" } - a1.h(); // { dg-error "instantiated" } - a1.i('a'); // { dg-error "instantiated" } - a1.j<1>(); // { dg-error "instantiated" } + a1.f(0); // { dg-message "instantiated" } + a1.g<char>(); // { dg-message "instantiated" } + a1.g<int>(); // { dg-message "instantiated" } + a1.h(); // { dg-message "instantiated" } + a1.i('a'); // { dg-message "instantiated" } + a1.j<1>(); // { dg-message "instantiated" } A<char> a2; a2.f(0); - a2.g<char>(); // { dg-error "instantiated" } + a2.g<char>(); // { dg-message "instantiated" } a2.g<int>(); a2.h(); a2.i('a'); - a2.j<1>(); // { dg-error "instantiated" } + a2.j<1>(); // { dg-message "instantiated" } a2.j<0>(); } diff --git a/gcc/testsuite/g++.dg/template/meminit1.C b/gcc/testsuite/g++.dg/template/meminit1.C index 077bf60cb80..6fd024a2633 100644 --- a/gcc/testsuite/g++.dg/template/meminit1.C +++ b/gcc/testsuite/g++.dg/template/meminit1.C @@ -5,4 +5,4 @@ struct S S() : S() {} // { dg-error "base" } }; -S<int> s; // { dg-error "instantiated" } +S<int> s; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/nested3.C b/gcc/testsuite/g++.dg/template/nested3.C index 0094783166a..1ae4bf7647d 100644 --- a/gcc/testsuite/g++.dg/template/nested3.C +++ b/gcc/testsuite/g++.dg/template/nested3.C @@ -5,24 +5,27 @@ class A { int _k; }; T1 _t1; - T2 _t2; // { dg-error "instantiated" } + T2 _t2; // { dg-message "instantiated" } }; template <class U> -class B { // { dg-error "" } +class B { // { dg-error "declaration" } class SubB1 { - B _i; // { dg-error "" } + B _i; // { dg-error "incomplete type" } }; class SubB2 { int _j; }; - A<U,SubB1>::SubA<SubB2> _a; // { dg-error "" } + A<U,SubB1>::SubA<SubB2> _a; // { dg-error "not a base type" "not base" } + // { dg-message "note" "note" { target *-*-* } 20 } + // { dg-message "instantiated" "inst" { target *-*-* } 20 } + // { dg-error "non-template" "non-template" { target *-*-* } 20 } }; int main() { - B<char> objB; // { dg-error "instantiated" } + B<char> objB; // { dg-message "instantiated" } return 0; } diff --git a/gcc/testsuite/g++.dg/template/new3.C b/gcc/testsuite/g++.dg/template/new3.C index c6c108903e1..50be5f1c3ba 100644 --- a/gcc/testsuite/g++.dg/template/new3.C +++ b/gcc/testsuite/g++.dg/template/new3.C @@ -1,4 +1,4 @@ -extern void *operator new(__SIZE_TYPE__); // { dg-error "candidate" } +extern void *operator new(__SIZE_TYPE__); // { dg-message "candidate" } template <class T > struct C diff --git a/gcc/testsuite/g++.dg/template/non-type-template-argument-1.C b/gcc/testsuite/g++.dg/template/non-type-template-argument-1.C index 9d400d5b104..41243649a11 100644 --- a/gcc/testsuite/g++.dg/template/non-type-template-argument-1.C +++ b/gcc/testsuite/g++.dg/template/non-type-template-argument-1.C @@ -9,4 +9,4 @@ template <typename T> struct D C<T::X> c; // { dg-error "parsed as a non-type|if a type is meant" } }; -D<B> d; // { dg-error "instantiated from here" } +D<B> d; // { dg-message "instantiated from here" } diff --git a/gcc/testsuite/g++.dg/template/nontype12.C b/gcc/testsuite/g++.dg/template/nontype12.C index 0200e870b95..a290ec337ea 100644 --- a/gcc/testsuite/g++.dg/template/nontype12.C +++ b/gcc/testsuite/g++.dg/template/nontype12.C @@ -9,7 +9,7 @@ template<typename T> struct A }; A<char> a1; -A<double> a2; // { dg-error "instantiated" } +A<double> a2; // { dg-message "instantiated" } template<typename T> struct B { @@ -27,9 +27,9 @@ template<typename T> struct C template<T> int foo(); // { dg-error "double" } }; -template<typename T> int baz(T) { C<T> c; } // { dg-error "instantiated" } +template<typename T> int baz(T) { C<T> c; } // { dg-message "instantiated" } void foobar() { - baz(1.2); // { dg-error "instantiated" } + baz(1.2); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/nontype13.C b/gcc/testsuite/g++.dg/template/nontype13.C index 9b76d1aa65a..6fffb8d8e53 100644 --- a/gcc/testsuite/g++.dg/template/nontype13.C +++ b/gcc/testsuite/g++.dg/template/nontype13.C @@ -24,6 +24,6 @@ struct Dummy int main() { Dummy<int> d; - d.tester<true> (); // { dg-error "instantiated" } + d.tester<true> (); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/nontype6.C b/gcc/testsuite/g++.dg/template/nontype6.C index 298ce82591c..97b093ae551 100644 --- a/gcc/testsuite/g++.dg/template/nontype6.C +++ b/gcc/testsuite/g++.dg/template/nontype6.C @@ -12,8 +12,8 @@ struct A template <class T> void func(void) { - (void)A<T>::type(); // { dg-error "if a type is meant" } -// { dg-error "parsed as a non-type" "non-type" { target *-*-* } 15 } + (void)A<T>::type(); // { dg-error "non-type" "non-type" } +// { dg-message "if a type" "note" { target *-*-* } 15 } } -template void func<float>(void); // { dg-error "instantiated from here" } +template void func<float>(void); // { dg-message "instantiated from here" } diff --git a/gcc/testsuite/g++.dg/template/overload9.C b/gcc/testsuite/g++.dg/template/overload9.C index bc73c41fc88..cef8ebe9fc8 100644 --- a/gcc/testsuite/g++.dg/template/overload9.C +++ b/gcc/testsuite/g++.dg/template/overload9.C @@ -7,7 +7,7 @@ template <typename T> A<T>& operator<<(A<T>&, const B<T>&); template <typename T> struct A { - A<T>& operator<<(A<T>& (*)(A<T>&)); // { dg-error "candidate" } + A<T>& operator<<(A<T>& (*)(A<T>&)); // { dg-message "candidate" } }; template <typename T> A<T>& foo(A<T>&); diff --git a/gcc/testsuite/g++.dg/template/ptrmem15.C b/gcc/testsuite/g++.dg/template/ptrmem15.C index 553d2953fd9..b52ff89174a 100644 --- a/gcc/testsuite/g++.dg/template/ptrmem15.C +++ b/gcc/testsuite/g++.dg/template/ptrmem15.C @@ -6,4 +6,4 @@ template<typename T> struct A T A::* p; // { dg-error "void" } }; -A<void> a; // { dg-error "instantiated" } +A<void> a; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/ptrmem17.C b/gcc/testsuite/g++.dg/template/ptrmem17.C index 154f17a8d86..a79e3c882fa 100644 --- a/gcc/testsuite/g++.dg/template/ptrmem17.C +++ b/gcc/testsuite/g++.dg/template/ptrmem17.C @@ -7,4 +7,4 @@ template<int> struct A ~A() { &A::i; } // { dg-error "reference" } }; -A<0> a; // { dg-error "instantiated" } +A<0> a; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/ptrmem4.C b/gcc/testsuite/g++.dg/template/ptrmem4.C index db80eecf830..0ea73a13106 100644 --- a/gcc/testsuite/g++.dg/template/ptrmem4.C +++ b/gcc/testsuite/g++.dg/template/ptrmem4.C @@ -6,7 +6,7 @@ // Pointer to member function template argument deduction ICE. -template <class CONT> void queryAliases(CONT& fill_me); // { dg-error "candidates" } +template <class CONT> void queryAliases(CONT& fill_me); // { dg-message "candidates" } struct SpyExample { @@ -16,5 +16,5 @@ struct SpyExample void SpyExample::ready() { - queryAliases(inputs); // { dg-error "" } + queryAliases(inputs); // { dg-error "matching" } } diff --git a/gcc/testsuite/g++.dg/template/ptrmem6.C b/gcc/testsuite/g++.dg/template/ptrmem6.C index 0d7dec21981..a355cfe8939 100644 --- a/gcc/testsuite/g++.dg/template/ptrmem6.C +++ b/gcc/testsuite/g++.dg/template/ptrmem6.C @@ -4,7 +4,7 @@ void g(int S::**); template <typename T> void f (int T::* volatile *p) { - g(p); // { dg-error "" } + g(p); // { dg-error "conversion" } } -template void f(int S::* volatile *); // { dg-error "instantiated" } +template void f(int S::* volatile *); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/ptrmem8.C b/gcc/testsuite/g++.dg/template/ptrmem8.C index 588ac1fc50a..e25b4084129 100644 --- a/gcc/testsuite/g++.dg/template/ptrmem8.C +++ b/gcc/testsuite/g++.dg/template/ptrmem8.C @@ -15,6 +15,10 @@ template <int (D::*fun)() const> int Get(); int main () { - Get<&B::I>(); // { dg-error "" } - Get<&D::I>(); // { dg-error "" } + Get<&B::I>(); // { dg-error "not a valid template argument" "not valid" } + // { dg-error "no match" "no match" { target *-*-* } 18 } + // { dg-message "note" "note" { target *-*-* } 18 } + Get<&D::I>(); // { dg-error "not a valid template argument" "not valid" } + // { dg-error "no match" "no match" { target *-*-* } 21 } + // { dg-message "note" "note" { target *-*-* } 21 } } diff --git a/gcc/testsuite/g++.dg/template/qualified-id1.C b/gcc/testsuite/g++.dg/template/qualified-id1.C index 967764281c0..602be5bf154 100644 --- a/gcc/testsuite/g++.dg/template/qualified-id1.C +++ b/gcc/testsuite/g++.dg/template/qualified-id1.C @@ -16,11 +16,12 @@ template <> struct A::B<false> {}; template <typename T> void foo() { - T::C (); // { dg-error "parsed as a non-type|if a type is meant" "" } - T::template B<false>(); // { dg-error "parsed as a non-type|if a type is meant" "" } + T::C (); // { dg-error "parsed as a non-type|if a type is meant" } + T::template B<false>(); // { dg-error "parsed as a non-type" "non-type" } + // { dg-message "if a type" "if a type" { target *-*-* } 20 } } void bar() { - foo<A>(); // { dg-error "instantiated" "" } + foo<A>(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/qualttp20.C b/gcc/testsuite/g++.dg/template/qualttp20.C index ae20d762902..d65fd1b61e7 100644 --- a/gcc/testsuite/g++.dg/template/qualttp20.C +++ b/gcc/testsuite/g++.dg/template/qualttp20.C @@ -32,5 +32,5 @@ template <typename T> struct B2 : T myconst b; }; -B1<AS> b1; // { dg-error "instantiated" "" } +B1<AS> b1; // { dg-message "instantiated" "" } B2<AS> b2; diff --git a/gcc/testsuite/g++.dg/template/qualttp3.C b/gcc/testsuite/g++.dg/template/qualttp3.C index 929fa628ca7..4b9ffe34ea6 100644 --- a/gcc/testsuite/g++.dg/template/qualttp3.C +++ b/gcc/testsuite/g++.dg/template/qualttp3.C @@ -14,10 +14,10 @@ template <template <class> class TT> struct X template <class T> struct C { - X<T::template B> x; // { dg-error "type" "" } + X<T::template B> x; // { dg-error "type" } }; int main() { - C<A> c; // { dg-error "instantiated" } + C<A> c; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/qualttp4.C b/gcc/testsuite/g++.dg/template/qualttp4.C index 04335f16cc8..c55ce2d3750 100644 --- a/gcc/testsuite/g++.dg/template/qualttp4.C +++ b/gcc/testsuite/g++.dg/template/qualttp4.C @@ -10,7 +10,7 @@ struct A template <template <class, class> class TT> // { dg-error "provided" } struct X { - TT<int> y; // { dg-error "number|type" } + TT<int> y; // { dg-error "number" } }; template <class T> struct C @@ -20,5 +20,5 @@ template <class T> struct C int main() { - C<A> c; // { dg-error "instantiated" } + C<A> c; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/qualttp5.C b/gcc/testsuite/g++.dg/template/qualttp5.C index 7ac7a315abb..7d1062e3a8f 100644 --- a/gcc/testsuite/g++.dg/template/qualttp5.C +++ b/gcc/testsuite/g++.dg/template/qualttp5.C @@ -4,7 +4,7 @@ template <class U> struct A { - template <class T> class B {}; // { dg-error "candidates" } + template <class T> class B {}; // { dg-message "candidates" } }; template <template <class> class TT> void f() @@ -15,11 +15,11 @@ template <template <class> class TT> void f() template <class T> struct C { - void g() { f<A<T>::template B>(); } // { dg-error "instantiated" } + void g() { f<A<T>::template B>(); } // { dg-message "instantiated" } }; int main() { C<int> c; - c.g(); // { dg-error "instantiated" } + c.g(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/qualttp6.C b/gcc/testsuite/g++.dg/template/qualttp6.C index 046895830d8..aa1a4670033 100644 --- a/gcc/testsuite/g++.dg/template/qualttp6.C +++ b/gcc/testsuite/g++.dg/template/qualttp6.C @@ -12,4 +12,4 @@ template <class T> struct D { struct E { }; -D<E> d; // { dg-error "instantiated" } +D<E> d; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/qualttp7.C b/gcc/testsuite/g++.dg/template/qualttp7.C index f6573ac5d95..f37123e778f 100644 --- a/gcc/testsuite/g++.dg/template/qualttp7.C +++ b/gcc/testsuite/g++.dg/template/qualttp7.C @@ -9,4 +9,4 @@ template <class T> struct D { C<T::template B> c; // { dg-error "no class template" } }; -D<int> d; // { dg-error "instantiated" } +D<int> d; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/qualttp8.C b/gcc/testsuite/g++.dg/template/qualttp8.C index da67a09fc46..5f55e60b316 100644 --- a/gcc/testsuite/g++.dg/template/qualttp8.C +++ b/gcc/testsuite/g++.dg/template/qualttp8.C @@ -14,4 +14,4 @@ struct E { template <class T> class B {}; // { dg-error "private" } }; -D<E> d; // { dg-error "instantiated" } +D<E> d; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/recurse.C b/gcc/testsuite/g++.dg/template/recurse.C index ce4c9268cfe..25552d05ef9 100644 --- a/gcc/testsuite/g++.dg/template/recurse.C +++ b/gcc/testsuite/g++.dg/template/recurse.C @@ -5,8 +5,9 @@ template <int I> struct F { int operator()() { - F<I+1> f; // { dg-error "" "" } - return f()*I; // { dg-error "" "" } + F<I+1> f; // { dg-error "incomplete type" "incomplete" } + // { dg-error "exceeds maximum" "exceeds" { target *-*-* } 8 } + return f()*I; // { dg-message "instantiated" "recurse" } } }; @@ -18,5 +19,8 @@ template <> struct F<52> int main () { F<1> f; - return f(); // { dg-error "instantiate" "excessive recursion" } + return f(); // { dg-message "instantiated from here" "excessive recursion" } } + +// Ignore excess messages from recursion. +// { dg-prune-output "instantiated from 'int" } diff --git a/gcc/testsuite/g++.dg/template/sfinae10.C b/gcc/testsuite/g++.dg/template/sfinae10.C index e0680db65a6..f44c4458f35 100644 --- a/gcc/testsuite/g++.dg/template/sfinae10.C +++ b/gcc/testsuite/g++.dg/template/sfinae10.C @@ -169,13 +169,13 @@ STATIC_ASSERT((has_postdecrement<X>::value)); STATIC_ASSERT((!has_postdecrement<Y>::value)); // Check for private members -STATIC_ASSERT((has_unary_plus<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((is_negatable<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((is_dereferenceable<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((has_bitwise_not<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((has_truth_not<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((has_preincrement<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((has_predecrement<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((has_postincrement<Z>::value)); // { dg-error "instantiated from here" } -STATIC_ASSERT((has_postdecrement<Z>::value)); // { dg-error "instantiated from here" } +STATIC_ASSERT((has_unary_plus<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((is_negatable<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((is_dereferenceable<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((has_bitwise_not<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((has_truth_not<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((has_preincrement<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((has_predecrement<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((has_postincrement<Z>::value)); // { dg-message "instantiated from here" } +STATIC_ASSERT((has_postdecrement<Z>::value)); // { dg-message "instantiated from here" } diff --git a/gcc/testsuite/g++.dg/template/sfinae3.C b/gcc/testsuite/g++.dg/template/sfinae3.C index 8d141ea0ad1..5799a364e42 100644 --- a/gcc/testsuite/g++.dg/template/sfinae3.C +++ b/gcc/testsuite/g++.dg/template/sfinae3.C @@ -9,7 +9,7 @@ template<typename> struct A template<typename> struct B { - B(const B&); // { dg-error "candidate" } + B(const B&); // { dg-message "candidate" } typedef typename A<char[A<B>::i]>::X Y; template<typename T> B(T, Y); // { dg-error "call" } }; diff --git a/gcc/testsuite/g++.dg/template/spec22.C b/gcc/testsuite/g++.dg/template/spec22.C index a091b0f36bf..7e627f16763 100644 --- a/gcc/testsuite/g++.dg/template/spec22.C +++ b/gcc/testsuite/g++.dg/template/spec22.C @@ -8,11 +8,11 @@ template <typename T> class srp; template <typename T> struct ptr { - template <typename U> ptr(const srp<U> &other); // { dg-error "ptr<T>::ptr" } + template <typename U> ptr(const srp<U> &other); // { dg-message "ptr<T>::ptr" } }; template <typename T> struct srp { - template <typename U> operator ptr<U>(void) const; // { dg-error "srp<T>::operator" } + template <typename U> operator ptr<U>(void) const; // { dg-message "srp<T>::operator" } }; ptr<int> parent_get() { diff --git a/gcc/testsuite/g++.dg/template/spec23.C b/gcc/testsuite/g++.dg/template/spec23.C index 00272ad4995..1c027fa4388 100644 --- a/gcc/testsuite/g++.dg/template/spec23.C +++ b/gcc/testsuite/g++.dg/template/spec23.C @@ -8,18 +8,18 @@ struct Foo { template <typename T> - Foo (const T &); // { dg-error "T = Bar" "" } + Foo (const T &); // { dg-message "T = Bar" } }; struct Bar { template <typename T> - operator T () const; // { dg-error "T = Foo" "" } + operator T () const; // { dg-message "T = Foo" } }; Foo Quux (Bar const &b) { - return b; // { dg-error "ambiguous" "" } + return b; // { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.dg/template/static9.C b/gcc/testsuite/g++.dg/template/static9.C index 4575708e4e5..a98144185bb 100644 --- a/gcc/testsuite/g++.dg/template/static9.C +++ b/gcc/testsuite/g++.dg/template/static9.C @@ -2,7 +2,8 @@ template<typename T> struct A { - static const T i = 0; // { dg-error "" } + static const T i = 0; // { dg-error "declared void" "void" } + // { dg-error "invalid" "invalid" { target *-*-* } 5 } }; -A<void> a; // { dg-error "" } +A<void> a; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/template-id-2.C b/gcc/testsuite/g++.dg/template/template-id-2.C index 1bc378c14e6..6d37350e93b 100644 --- a/gcc/testsuite/g++.dg/template/template-id-2.C +++ b/gcc/testsuite/g++.dg/template/template-id-2.C @@ -18,5 +18,5 @@ template<> struct A<void> void bar() { A<void> a; - a.foo<int>(); // { dg-error "instantiated" } + a.foo<int>(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/typename2.C b/gcc/testsuite/g++.dg/template/typename2.C index 644c62a7f4c..b0e16d46434 100644 --- a/gcc/testsuite/g++.dg/template/typename2.C +++ b/gcc/testsuite/g++.dg/template/typename2.C @@ -21,5 +21,6 @@ class ctype : public __ctype_abstract_base<_CharT> template<typename _CharT> class ctype2 : public __ctype_abstract_base<_CharT> { - typedef mask mask; // { dg-error "" } + typedef mask mask; // { dg-error "does not name a type" "no type" } + // { dg-message "note" "note" { target *-*-* } 24 } }; diff --git a/gcc/testsuite/g++.dg/template/typename4.C b/gcc/testsuite/g++.dg/template/typename4.C index add95156cec..18cdd1aba01 100644 --- a/gcc/testsuite/g++.dg/template/typename4.C +++ b/gcc/testsuite/g++.dg/template/typename4.C @@ -1,3 +1,3 @@ struct B { template <typename U> struct C; }; -template <typename T> struct A { typedef typename T::C V; }; // { dg-error "" } -void f () { A<B>::V p; } // { dg-error "" } +template <typename T> struct A { typedef typename T::C V; }; // { dg-error "not a type" } +void f () { A<B>::V p; } // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/template/using14.C b/gcc/testsuite/g++.dg/template/using14.C index d1049487732..ebb4e090a37 100644 --- a/gcc/testsuite/g++.dg/template/using14.C +++ b/gcc/testsuite/g++.dg/template/using14.C @@ -10,12 +10,12 @@ template <class T> struct C : public B1<T>, public B2 void f() { i(); // should be accepted - i.i(); // { dg-error "" } + i.i(); // { dg-error "member" } } }; int main() { C<int> c; - c.f(); // { dg-error "instantiated" } + c.f(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/using2.C b/gcc/testsuite/g++.dg/template/using2.C index 87cdbc18657..5d21f575b3c 100644 --- a/gcc/testsuite/g++.dg/template/using2.C +++ b/gcc/testsuite/g++.dg/template/using2.C @@ -7,12 +7,12 @@ template <class T> struct Foo { - int i; // { dg-error "" "" } + int i; // { dg-error "Foo" } }; struct Baz { - int i; // { dg-error "" "" } + int i; // { dg-error "Baz" } }; template <class T> @@ -20,11 +20,11 @@ struct Bar : public Foo<T>, Baz { using Foo<T>::i; using Baz::i; - int foo () { return i; } // { dg-error "request for member" "" } + int foo () { return i; } // { dg-error "request for member" } }; void foo (Bar<int> &bar) { - bar.foo(); // { dg-error "instantiated" "" } + bar.foo(); // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.dg/template/warn1.C b/gcc/testsuite/g++.dg/template/warn1.C index 827c65e24c5..0cdffcd3c51 100644 --- a/gcc/testsuite/g++.dg/template/warn1.C +++ b/gcc/testsuite/g++.dg/template/warn1.C @@ -17,7 +17,7 @@ template <class T> void Foo(T i) void Bar () { - Foo (1); // { dg-error "instantiated" "" } + Foo (1); // { dg-message "instantiated" } } struct M {}; @@ -31,6 +31,6 @@ struct C void Baz (int i) { - i ? i + 1 : i + 2; // { dg-error "operand of" "" } + i ? i + 1 : i + 2; // { dg-warning "operand of" } i ? i++ : 0; } diff --git a/gcc/testsuite/g++.dg/torture/pr37456.C b/gcc/testsuite/g++.dg/torture/pr37456.C new file mode 100644 index 00000000000..cf2021be203 --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr37456.C @@ -0,0 +1,14 @@ +/* { dg-do compile } */ + +int zot(int); +struct bar { + ~bar() { } +}; +int x; +void doit(int a, int b, int c) +{ + bar pn; + int b1 = zot(a) * c; + int b2 = zot(b) * c; + x = b1 + b2; +} diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr37284.C b/gcc/testsuite/g++.dg/tree-ssa/pr37284.C new file mode 100644 index 00000000000..26ddc1a05ad --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/pr37284.C @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-fstrict-aliasing" } */ + +void* operator new(__SIZE_TYPE__, void* __p) throw() +{ + return __p; +} + +class PatternDriverTop; + +typedef const PatternDriverTop* _Tp; + +void construct(_Tp* __p, const _Tp& __val) +{ + ::new((void *)__p) _Tp(__val); +} + diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-13.C b/gcc/testsuite/g++.dg/warn/Wparentheses-13.C index 22525cd9d1c..ebe8f426a3b 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-13.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-13.C @@ -66,4 +66,4 @@ bar (T) foo (27); } -template void bar<int> (int); // { dg-warning "instantiated" } +template void bar<int> (int); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-15.C b/gcc/testsuite/g++.dg/warn/Wparentheses-15.C index ab156b757e0..db73d430aea 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-15.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-15.C @@ -65,4 +65,4 @@ bar (T a, T b, T c) foo (1 != (2 != 3)); } -template void bar<int> (int, int, int); // { dg-warning "instantiated" } +template void bar<int> (int, int, int); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-16.C b/gcc/testsuite/g++.dg/warn/Wparentheses-16.C index d8151aecdd1..6381552370d 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-16.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-16.C @@ -83,4 +83,4 @@ bar (T a, T b, T c) foo (6 >> (5 - 4)); } -template void bar<int> (int, int, int); // { dg-warning "instantiated" } +template void bar<int> (int, int, int); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-17.C b/gcc/testsuite/g++.dg/warn/Wparentheses-17.C index def181a12dc..1af1e2e0380 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-17.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-17.C @@ -29,4 +29,4 @@ bar (T a, T b, T c) foo (1 || (2 && 3)); } -template void bar<int> (int, int, int); // { dg-warning "instantiated" } +template void bar<int> (int, int, int); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-18.C b/gcc/testsuite/g++.dg/warn/Wparentheses-18.C index 32fa1fe958f..d562315f3c7 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-18.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-18.C @@ -119,4 +119,4 @@ bar (T a, T b, T c) foo (1 | (2 <= 3)); } -template void bar<int> (int, int, int); // { dg-warning "instantiated" } +template void bar<int> (int, int, int); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-19.C b/gcc/testsuite/g++.dg/warn/Wparentheses-19.C index c7e45cf1afc..e3dfc5d05c3 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-19.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-19.C @@ -119,4 +119,4 @@ bar (T a, T b, T c) foo (1 ^ (2 < 3)); } -template void bar<int> (int, int, int); // { dg-warning "instantiated" } +template void bar<int> (int, int, int); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-20.C b/gcc/testsuite/g++.dg/warn/Wparentheses-20.C index 8789d592f9a..a1ba89dfcd5 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-20.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-20.C @@ -101,4 +101,4 @@ bar (T a, T b, T c) foo (1 & (2 != 3)); } -template void bar<int> (int, int, int); // { dg-warning "instantiated" } +template void bar<int> (int, int, int); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-23.C b/gcc/testsuite/g++.dg/warn/Wparentheses-23.C index 755c574d0f2..cadc287fe96 100644 --- a/gcc/testsuite/g++.dg/warn/Wparentheses-23.C +++ b/gcc/testsuite/g++.dg/warn/Wparentheses-23.C @@ -114,8 +114,8 @@ bar4 (T) return (a = a); } -template void bar<int> (int); // { dg-warning "instantiated" } -template bool bar1<int> (int); // { dg-warning "instantiated" } +template void bar<int> (int); // { dg-message "instantiated" } +template bool bar1<int> (int); // { dg-message "instantiated" } template bool bar2<int> (int); -template bool bar3<int> (int); // { dg-warning "instantiated" } +template bool bar3<int> (int); // { dg-message "instantiated" } template bool bar4<int> (int); diff --git a/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C b/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C index 9fc35389073..94c2f47020f 100644 --- a/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C +++ b/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C @@ -9,6 +9,6 @@ T *foo(void) return (T *)&x; /* { dg-warning "strict-aliasing" } */ } -template int *foo<int>(void); /* { dg-warning "instantiated from here" } */ +template int *foo<int>(void); /* { dg-message "instantiated from here" } */ template char *foo<char>(void); /* { dg-bogus "instantiated from here" } */ diff --git a/gcc/testsuite/g++.dg/warn/Wvla-2.C b/gcc/testsuite/g++.dg/warn/Wvla-2.C index c611f07aab4..ba83ac1a9f2 100644 --- a/gcc/testsuite/g++.dg/warn/Wvla-2.C +++ b/gcc/testsuite/g++.dg/warn/Wvla-2.C @@ -3,5 +3,5 @@ void func (int i) { - int array[i]; /* { dg-error "error: ISO C.* forbids variable.* array 'array'" } */ + int array[i]; /* { dg-error "ISO C.* forbids variable.* array 'array'" } */ } diff --git a/gcc/testsuite/g++.dg/warn/deprecated-3.C b/gcc/testsuite/g++.dg/warn/deprecated-3.C index 6087cc733fd..8b4378c410b 100644 --- a/gcc/testsuite/g++.dg/warn/deprecated-3.C +++ b/gcc/testsuite/g++.dg/warn/deprecated-3.C @@ -10,5 +10,5 @@ struct Foo void g(void) { Foo f; - (int)f; // { dg-warning "warning: 'Foo::operator int\\(\\)' is deprecated \\(declared at" } + (int)f; // { dg-warning "'Foo::operator int\\(\\)' is deprecated \\(declared at" } } diff --git a/gcc/testsuite/g++.dg/warn/incomplete1.C b/gcc/testsuite/g++.dg/warn/incomplete1.C index aed32a19ac4..26cfe2eae4b 100644 --- a/gcc/testsuite/g++.dg/warn/incomplete1.C +++ b/gcc/testsuite/g++.dg/warn/incomplete1.C @@ -16,6 +16,7 @@ A *a; // { dg-warning "'a' has incomplete type" "" } int main (int argc, char **argv) { - delete a; // { dg-warning "delete" "" } + delete a; // { dg-warning "delete" "warn" } + // { dg-message "note" "note" { target *-*-* } 19 } return 0; } diff --git a/gcc/testsuite/g++.dg/warn/noeffect2.C b/gcc/testsuite/g++.dg/warn/noeffect2.C index 69adf396367..01323659597 100644 --- a/gcc/testsuite/g++.dg/warn/noeffect2.C +++ b/gcc/testsuite/g++.dg/warn/noeffect2.C @@ -12,9 +12,9 @@ extern "C" void FormatDisk(); struct C { C(){ FormatDisk(), 0; } // { dg-warning "right-hand operand of comma" "" } }; - template struct C<int>; // { dg-warning "instantiated" } + template struct C<int>; // { dg-message "instantiated" } template <class T> void f() { FormatDisk(), 0; } // { dg-warning "right-hand operand of comma" "" } - template void f<int> (); // { dg-warning "instantiated" } + template void f<int> (); // { dg-message "instantiated" } void g() { FormatDisk(), 0; } // { dg-warning "right-hand operand of comma" "" } diff --git a/gcc/testsuite/g++.dg/warn/noeffect4.C b/gcc/testsuite/g++.dg/warn/noeffect4.C index 7b051dd6766..966716bbc48 100644 --- a/gcc/testsuite/g++.dg/warn/noeffect4.C +++ b/gcc/testsuite/g++.dg/warn/noeffect4.C @@ -85,4 +85,4 @@ template<int I> void Foo (X &x) __alignof__ (x++); // { dg-warning "no effect" "" } } -template void Foo<4> (X&); // { dg-warning "instantiated" } +template void Foo<4> (X&); // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-1.C b/gcc/testsuite/g++.dg/warn/overflow-warn-1.C index 1c6c849990b..78f4348c8c0 100644 --- a/gcc/testsuite/g++.dg/warn/overflow-warn-1.C +++ b/gcc/testsuite/g++.dg/warn/overflow-warn-1.C @@ -12,23 +12,23 @@ enum e { /* Overflow in an unevaluated part of an expression is OK (example in the standard). */ E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } 14 } */ - E3 = 1 / 0, /* { dg-warning "warning: division by zero" } */ - /* { dg-error "error: enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */ + E3 = 1 / 0, /* { dg-warning "division by zero" } */ + /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */ /* But as in DR#031, the 1/0 in an evaluated subexpression means the whole expression violates the constraints. */ - E4 = 0 * (1 / 0), /* { dg-warning "warning: division by zero" } */ - /* { dg-error "error: enumerator value for 'E4' is not an integer constant" "enum error" { xfail *-*-* } 19 } */ - E5 = INT_MAX + 1, /* { dg-warning "warning: integer overflow in expression" } */ + E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */ + /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { xfail *-*-* } 19 } */ + E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */ /* Again, overflow in evaluated subexpression. */ - E6 = 0 * (INT_MAX + 1), /* { dg-warning "warning: integer overflow in expression" } */ + E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */ /* A cast does not constitute overflow in conversion. */ E7 = (char) INT_MAX }; struct s { int a; - int : 0 * (1 / 0); /* { dg-warning "warning: division by zero" } */ - int : 0 * (INT_MAX + 1); /* { dg-warning "warning: integer overflow in expression" } */ + int : 0 * (1 / 0); /* { dg-warning "division by zero" } */ + int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */ }; void @@ -36,11 +36,11 @@ f (void) { /* This expression is not required to be a constant expression, so it should just involve undefined behavior at runtime. */ - int c = INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ + int c = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ } /* This expression is neither required to be constant. */ -static int sc = INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ +static int sc = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ // Test for overflow in null pointer constant. @@ -48,9 +48,9 @@ void *n = 0; /* The first two of these involve overflow, so are not null pointer constants. The third has the overflow in an unevaluated subexpression, so is a null pointer constant. */ -void *p = 0 * (INT_MAX + 1); /* { dg-warning "warning: integer overflow in expression" } */ +void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */ /* { dg-error "invalid conversion from 'int' to 'void" "null" { target *-*-* } 51 } */ -void *q = 0 * (1 / 0); /* { dg-warning "warning: division by zero" } */ +void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */ /* { dg-error "invalid conversion from 'int' to 'void*'" "null" { xfail *-*-* } 53 } */ void *r = (1 ? 0 : INT_MAX+1); /* { dg-bogus "integer overflow in expression" "" { xfail *-*-* } 55 } */ @@ -59,9 +59,9 @@ g (int i) { switch (i) { - case 0 * (1/0): /* { dg-warning "warning: division by zero" } */ + case 0 * (1/0): /* { dg-warning "division by zero" } */ ; - case 1 + 0 * (INT_MAX + 1): /* { dg-warning "warning: integer overflow in expression" } */ + case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */ ; } } @@ -69,13 +69,13 @@ g (int i) int h (void) { - return INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ + return INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ } int h1 (void) { - return INT_MAX + 1 - INT_MAX; /* { dg-warning "warning: integer overflow in expression" } */ + return INT_MAX + 1 - INT_MAX; /* { dg-warning "integer overflow in expression" } */ } void fuc (unsigned char); @@ -85,14 +85,14 @@ void h2 (void) { fsc (SCHAR_MAX + 1); - fsc (SCHAR_MIN - 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ + fsc (SCHAR_MIN - 1); /* { dg-warning "overflow in implicit constant conversion" } */ fsc (UCHAR_MAX); - fsc (UCHAR_MAX + 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ + fsc (UCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */ fuc (-1); - fuc (UCHAR_MAX + 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ + fuc (UCHAR_MAX + 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ fuc (SCHAR_MIN); - fuc (SCHAR_MIN - 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ - fuc (-UCHAR_MAX); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ + fuc (SCHAR_MIN - 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ + fuc (-UCHAR_MAX); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ } void fui (unsigned int); diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-3.C b/gcc/testsuite/g++.dg/warn/overflow-warn-3.C index b449a495103..fa45eebac30 100644 --- a/gcc/testsuite/g++.dg/warn/overflow-warn-3.C +++ b/gcc/testsuite/g++.dg/warn/overflow-warn-3.C @@ -12,26 +12,26 @@ enum e { /* Overflow in an unevaluated part of an expression is OK (example in the standard). */ E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } 14 } */ - E3 = 1 / 0, /* { dg-warning "warning: division by zero" } */ - /* { dg-error "error: enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */ + E3 = 1 / 0, /* { dg-warning "division by zero" } */ + /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */ /* But as in DR#031, the 1/0 in an evaluated subexpression means the whole expression violates the constraints. */ - E4 = 0 * (1 / 0), /* { dg-warning "warning: division by zero" } */ - /* { dg-error "error: enumerator value for 'E4' is not an integer constant" "enum error" { xfail *-*-* } 19 } */ - E5 = INT_MAX + 1, /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-warning "warning: overflow in constant expression" "constant" { target *-*-* } 21 } */ + E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */ + /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { xfail *-*-* } 19 } */ + E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */ + /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 21 } */ /* Again, overflow in evaluated subexpression. */ - E6 = 0 * (INT_MAX + 1), /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-warning "warning: overflow in constant expression" "constant" { target *-*-* } 24 } */ + E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */ + /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 24 } */ /* A cast does not constitute overflow in conversion. */ E7 = (char) INT_MAX }; struct s { int a; - int : 0 * (1 / 0); /* { dg-warning "warning: division by zero" } */ - int : 0 * (INT_MAX + 1); /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-warning "warning: overflow in constant expression" "constant" { target *-*-* } 33 } */ + int : 0 * (1 / 0); /* { dg-warning "division by zero" } */ + int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */ + /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 33 } */ }; void @@ -39,12 +39,12 @@ f (void) { /* This expression is not required to be a constant expression, so it should just involve undefined behavior at runtime. */ - int c = INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ + int c = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ } /* This expression is neither required to be constant. */ -static int sc = INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ +static int sc = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ // Test for overflow in null pointer constant. @@ -52,11 +52,11 @@ void *n = 0; /* The first two of these involve overflow, so are not null pointer constants. The third has the overflow in an unevaluated subexpression, so is a null pointer constant. */ -void *p = 0 * (INT_MAX + 1); /* { dg-warning "warning: integer overflow in expression" } */ -/* { dg-error "invalid conversion from 'int' to 'void" "null" { target *-*-* } 55 } */ +void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */ +/* { dg-warning "invalid conversion from 'int' to 'void" "null" { target *-*-* } 55 } */ -void *q = 0 * (1 / 0); /* { dg-warning "warning: division by zero" } */ -/* { dg-error "invalid conversion from 'int' to 'void*'" "null" { xfail *-*-* } 58 } */ +void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */ +/* { dg-warning "invalid conversion from 'int' to 'void*'" "null" { xfail *-*-* } 58 } */ void *r = (1 ? 0 : INT_MAX+1); /* { dg-bogus "integer overflow in expression" "" { xfail *-*-* } 60 } */ void @@ -64,10 +64,10 @@ g (int i) { switch (i) { - case 0 * (1/0): /* { dg-warning "warning: division by zero" } */ + case 0 * (1/0): /* { dg-warning "division by zero" } */ ; - case 1 + 0 * (INT_MAX + 1): /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-warning "warning: overflow in constant expression" "constant" { target *-*-* } 69 } */ + case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */ + /* { dg-warning "overflow in constant expression" "constant" { target *-*-* } 69 } */ ; } } @@ -75,13 +75,13 @@ g (int i) int h (void) { - return INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ + return INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ } int h1 (void) { - return INT_MAX + 1 - INT_MAX; /* { dg-warning "warning: integer overflow in expression" } */ + return INT_MAX + 1 - INT_MAX; /* { dg-warning "integer overflow in expression" } */ } void fuc (unsigned char); @@ -90,15 +90,15 @@ void fsc (signed char); void h2 (void) { - fsc (SCHAR_MAX + 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - fsc (SCHAR_MIN - 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - fsc (UCHAR_MAX); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - fsc (UCHAR_MAX + 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ + fsc (SCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */ + fsc (SCHAR_MIN - 1); /* { dg-warning "overflow in implicit constant conversion" } */ + fsc (UCHAR_MAX); /* { dg-warning "overflow in implicit constant conversion" } */ + fsc (UCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */ fuc (-1); - fuc (UCHAR_MAX + 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ + fuc (UCHAR_MAX + 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ fuc (SCHAR_MIN); - fuc (SCHAR_MIN - 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ - fuc (-UCHAR_MAX); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ + fuc (SCHAR_MIN - 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ + fuc (-UCHAR_MAX); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ } void fui (unsigned int); diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-4.C b/gcc/testsuite/g++.dg/warn/overflow-warn-4.C index 65e220070fb..ae06a80a7ce 100644 --- a/gcc/testsuite/g++.dg/warn/overflow-warn-4.C +++ b/gcc/testsuite/g++.dg/warn/overflow-warn-4.C @@ -12,26 +12,26 @@ enum e { /* Overflow in an unevaluated part of an expression is OK (example in the standard). */ E2 = 2 || 1 / 0, /* { dg-bogus "warning: division by zero" "" { xfail *-*-* } 14 } */ - E3 = 1 / 0, /* { dg-warning "warning: division by zero" } */ - /* { dg-error "error: enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */ + E3 = 1 / 0, /* { dg-warning "division by zero" } */ + /* { dg-error "enumerator value for 'E3' is not an integer constant" "enum error" { target *-*-* } 15 } */ /* But as in DR#031, the 1/0 in an evaluated subexpression means the whole expression violates the constraints. */ - E4 = 0 * (1 / 0), /* { dg-warning "warning: division by zero" } */ - /* { dg-error "error: enumerator value for 'E4' is not an integer constant" "enum error" { xfail *-*-* } 19 } */ - E5 = INT_MAX + 1, /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-error "error: overflow in constant expression" "constant" { target *-*-* } 21 } */ + E4 = 0 * (1 / 0), /* { dg-warning "division by zero" } */ + /* { dg-error "enumerator value for 'E4' is not an integer constant" "enum error" { xfail *-*-* } 19 } */ + E5 = INT_MAX + 1, /* { dg-warning "integer overflow in expression" } */ + /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 21 } */ /* Again, overflow in evaluated subexpression. */ - E6 = 0 * (INT_MAX + 1), /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-error "error: overflow in constant expression" "constant" { target *-*-* } 24 } */ + E6 = 0 * (INT_MAX + 1), /* { dg-warning "integer overflow in expression" } */ + /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 24 } */ /* A cast does not constitute overflow in conversion. */ E7 = (char) INT_MAX }; struct s { int a; - int : 0 * (1 / 0); /* { dg-warning "warning: division by zero" } */ - int : 0 * (INT_MAX + 1); /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-error "error: overflow in constant expression" "constant" { target *-*-* } 33 } */ + int : 0 * (1 / 0); /* { dg-warning "division by zero" } */ + int : 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */ + /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 33 } */ }; void @@ -39,12 +39,12 @@ f (void) { /* This expression is not required to be a constant expression, so it should just involve undefined behavior at runtime. */ - int c = INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ + int c = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ } /* This expression is neither required to be constant. */ -static int sc = INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ +static int sc = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ // Test for overflow in null pointer constant. @@ -52,10 +52,10 @@ void *n = 0; /* The first two of these involve overflow, so are not null pointer constants. The third has the overflow in an unevaluated subexpression, so is a null pointer constant. */ -void *p = 0 * (INT_MAX + 1); /* { dg-warning "warning: integer overflow in expression" } */ +void *p = 0 * (INT_MAX + 1); /* { dg-warning "integer overflow in expression" } */ /* { dg-error "invalid conversion from 'int' to 'void" "null" { target *-*-* } 55 } */ -void *q = 0 * (1 / 0); /* { dg-warning "warning: division by zero" } */ +void *q = 0 * (1 / 0); /* { dg-warning "division by zero" } */ /* { dg-error "invalid conversion from 'int' to 'void*'" "null" { xfail *-*-* } 58 } */ void *r = (1 ? 0 : INT_MAX+1); /* { dg-bogus "integer overflow in expression" "" { xfail *-*-* } 60 } */ @@ -64,10 +64,10 @@ g (int i) { switch (i) { - case 0 * (1/0): /* { dg-warning "warning: division by zero" } */ + case 0 * (1/0): /* { dg-warning "division by zero" } */ ; - case 1 + 0 * (INT_MAX + 1): /* { dg-warning "warning: integer overflow in expression" } */ - /* { dg-error "error: overflow in constant expression" "constant" { target *-*-* } 69 } */ + case 1 + 0 * (INT_MAX + 1): /* { dg-warning "integer overflow in expression" } */ + /* { dg-error "overflow in constant expression" "constant" { target *-*-* } 69 } */ ; } } @@ -75,13 +75,13 @@ g (int i) int h (void) { - return INT_MAX + 1; /* { dg-warning "warning: integer overflow in expression" } */ + return INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */ } int h1 (void) { - return INT_MAX + 1 - INT_MAX; /* { dg-warning "warning: integer overflow in expression" } */ + return INT_MAX + 1 - INT_MAX; /* { dg-warning "integer overflow in expression" } */ } void fuc (unsigned char); @@ -90,15 +90,15 @@ void fsc (signed char); void h2 (void) { - fsc (SCHAR_MAX + 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - fsc (SCHAR_MIN - 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - fsc (UCHAR_MAX); /* { dg-warning "warning: overflow in implicit constant conversion" } */ - fsc (UCHAR_MAX + 1); /* { dg-warning "warning: overflow in implicit constant conversion" } */ + fsc (SCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */ + fsc (SCHAR_MIN - 1); /* { dg-warning "overflow in implicit constant conversion" } */ + fsc (UCHAR_MAX); /* { dg-warning "overflow in implicit constant conversion" } */ + fsc (UCHAR_MAX + 1); /* { dg-warning "overflow in implicit constant conversion" } */ fuc (-1); - fuc (UCHAR_MAX + 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ + fuc (UCHAR_MAX + 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ fuc (SCHAR_MIN); - fuc (SCHAR_MIN - 1); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ - fuc (-UCHAR_MAX); /* { dg-warning "warning: large integer implicitly truncated to unsigned type" } */ + fuc (SCHAR_MIN - 1); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ + fuc (-UCHAR_MAX); /* { dg-warning "large integer implicitly truncated to unsigned type" } */ } void fui (unsigned int); diff --git a/gcc/testsuite/g++.dg/warn/overflow-warn-6.C b/gcc/testsuite/g++.dg/warn/overflow-warn-6.C index fa0cc83fa4d..6c7a28b3c54 100644 --- a/gcc/testsuite/g++.dg/warn/overflow-warn-6.C +++ b/gcc/testsuite/g++.dg/warn/overflow-warn-6.C @@ -7,12 +7,12 @@ int h1 (int x) { - return x * (0 * (INT_MAX + 1)); /* { dg-warning "warning: integer overflow in expression" } */ + return x * (0 * (INT_MAX + 1)); /* { dg-warning "integer overflow in expression" } */ } int h2 (int x) { - return ((INT_MAX + 1) * 0) * x; /* { dg-warning "warning: integer overflow in expression" } */ + return ((INT_MAX + 1) * 0) * x; /* { dg-warning "integer overflow in expression" } */ } diff --git a/gcc/testsuite/g++.dg/warn/pointer-integer-comparison.C b/gcc/testsuite/g++.dg/warn/pointer-integer-comparison.C index 48489ebcb8c..c6b75a7fc12 100644 --- a/gcc/testsuite/g++.dg/warn/pointer-integer-comparison.C +++ b/gcc/testsuite/g++.dg/warn/pointer-integer-comparison.C @@ -3,24 +3,24 @@ int foo (int i, void *p) { - if (i == p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" } + if (i == p) // { dg-warning "ISO C.. forbids comparison between pointer and integer" } return 0; - else if (i != p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" } + else if (i != p) // { dg-warning "ISO C.. forbids comparison between pointer and integer" } return 1; } int bar (int i, void *p) { - if (i < p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" } + if (i < p) // { dg-warning "ISO C.. forbids comparison between pointer and integer" } return 0; - else if (i >= p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" } + else if (i >= p) // { dg-warning "ISO C.. forbids comparison between pointer and integer" } return 1; } int baz (int i, void *p) { - if (i <= p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" } + if (i <= p) // { dg-warning "ISO C.. forbids comparison between pointer and integer" } return 0; - else if (i > p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" } + else if (i > p) // { dg-warning "ISO C.. forbids comparison between pointer and integer" } return 1; } diff --git a/gcc/testsuite/g++.dg/warn/pr8570.C b/gcc/testsuite/g++.dg/warn/pr8570.C index 0136bb1050a..608f4d6b5bf 100644 --- a/gcc/testsuite/g++.dg/warn/pr8570.C +++ b/gcc/testsuite/g++.dg/warn/pr8570.C @@ -2,12 +2,12 @@ // { dg-do compile } // { dg-options "" } template <typename T, typename P> -class X { // { dg-warning "note: previous declaration .* used 2" } +class X { // { dg-message "note: previous declaration .* used 2" } public: X() { } private: - template <typename U> friend class X; // { dg-error "error: .*redeclared with 1 template parameter" } + template <typename U> friend class X; // { dg-error "redeclared with 1 template parameter" } }; -X<int, int> i; +X<int, int> i; // { dg-message "instantiated" } diff --git a/gcc/testsuite/g++.dg/warn/register-var-1.C b/gcc/testsuite/g++.dg/warn/register-var-1.C index 3396d211385..6cbd23e2c93 100644 --- a/gcc/testsuite/g++.dg/warn/register-var-1.C +++ b/gcc/testsuite/g++.dg/warn/register-var-1.C @@ -10,5 +10,5 @@ void g(int *); void f(void) { register int x __asm ("eax"); - g(&x); /* { dg-error "error: address of explicit register variable" } */ + g(&x); /* { dg-error "address of explicit register variable" } */ } diff --git a/gcc/testsuite/g++.dg/warn/write-strings-default.C b/gcc/testsuite/g++.dg/warn/write-strings-default.C index 234c473801b..ee6b217185c 100644 --- a/gcc/testsuite/g++.dg/warn/write-strings-default.C +++ b/gcc/testsuite/g++.dg/warn/write-strings-default.C @@ -3,5 +3,5 @@ int main() { - char* p = "Asgaard"; // { dg-warning "warning:.*deprecated.*" } + char* p = "Asgaard"; // { dg-warning "deprecated" } } diff --git a/gcc/testsuite/g++.dg/warn/write-strings.C b/gcc/testsuite/g++.dg/warn/write-strings.C index 38233e0e1d9..73c81490983 100644 --- a/gcc/testsuite/g++.dg/warn/write-strings.C +++ b/gcc/testsuite/g++.dg/warn/write-strings.C @@ -3,5 +3,5 @@ int main() { - char* p = "Asgaard"; // { dg-warning "warning:.*deprecated.*" } + char* p = "Asgaard"; // { dg-warning "deprecated" } } diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C index 64195fcf028..35d882b21b3 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C @@ -15,15 +15,15 @@ typedef unsigned long uint_32; class sanjose { public: sanjose(); - sanjose(const sanjose&); // { dg-error "" } candidate - sanjose(int_8 value); // { dg-error "" } // ERROR - - sanjose(uint_32 value); // { dg-error "" } // ERROR - + sanjose(const sanjose&); // { dg-message "note" } + sanjose(int_8 value); // { dg-message "note" } + sanjose(uint_32 value); // { dg-message "note" } }; enum { first, last}; void foo(void) { - sanjose obj(first); // { dg-error "" } // ERROR - + sanjose obj(first); // { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C index 2fdcdfc432a..deedfba75a2 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C @@ -5,13 +5,13 @@ struct panama { panama(); panama(panama &); - panama& operator=(panama&); // { dg-error "" } // ERROR - + panama& operator=(panama&); // { dg-message "candidates" } }; extern panama dig(); void foo() { panama obj; - obj = dig(); // { dg-error "" } // ERROR - + obj = dig(); // { dg-error "no match" } } diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C index 9f854b5e189..9338e875532 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C @@ -21,7 +21,9 @@ public: void peace(const colombia&); void foo(nicaragua& b) { - peace(b); // { dg-warning "" } // WARNING - + peace(b); // { dg-warning "choosing 'nicaragua::operator" "nic" } + // { dg-warning "conversion" "conv" { target *-*-* } 24 } + // { dg-message "note" "note" { target *-*-* } 24 } } diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C index 8f7459f17fb..fb9830e689d 100644 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C @@ -83,7 +83,7 @@ public: template <class T10, int i> struct Xfour {// { dg-error "" } .* int T10; // { dg-error "" } .* void f(){ - char T10; // { dg-error "error: declaration of 'char T10'" } + char T10; // { dg-error "declaration of 'char T10'" } } }; @@ -123,7 +123,7 @@ public: template <class U> friend bool fooy(U u); - template <class T161> // { dg-error "error: declaration of 'class T161'" } + template <class T161> // { dg-error "declaration of 'class T161'" } friend bool foo(T161 u) { Xseven<T161, 5, int> obj; diff --git a/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C b/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C index 9a64de4dc3e..14bc32b6a78 100644 --- a/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C +++ b/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C @@ -20,5 +20,6 @@ void f(B b) { void g() { B h; - f(h); // { dg-error "synthesized|argument" } + f(h); // { dg-error "argument" "arg" } + // { dg-message "synthesized" "synth" { target *-*-* } 23 } } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C index b0c37e1965d..ddf93c4bdae 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C @@ -8,10 +8,10 @@ struct B { B (int); }; -void myfunc (const A& t0); // { dg-error "" } -void myfunc (const B& t0); // { dg-error "" } +void myfunc (const A& t0); // { dg-message "candidates" } +void myfunc (const B& t0); // { dg-message "note" } int main () { - myfunc(1); // { dg-error "" } ambiguous call + myfunc(1); // { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C index d05c73b8015..674fc4fa679 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C @@ -2,13 +2,13 @@ // { dg-options "-fshow-column" } // GROUPS passed old-abort -class Graph { // { dg-error "1: error: new types|1: note: \\(perhaps" } +class Graph { // { dg-error "1:new types|1: note: \\(perhaps" } public: unsigned char N; - Graph(void) {} // { dg-error "7: error: 'Graph" } + Graph(void) {} // { dg-error "7:'Graph" } } -Graph::Graph(void) // { dg-error "18: error: return type|1: error: redefinition" } +Graph::Graph(void) // { dg-error "18:return type|1: error: redefinition" } { N = 10; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C index 6fd031f3450..fd2fa2ff986 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C @@ -7,13 +7,13 @@ union Value }; struct GlobalAddress -{// { dg-error "" } candidates .* - GlobalAddress(Value *nvar){}// { dg-error "" } .* +{// { dg-message "note" } + GlobalAddress(Value *nvar){} // { dg-message "candidates" } }; int main() { - new GlobalAddress(Value()); // internal error occured here// { dg-error "" } no matching function .* + new GlobalAddress(Value()); // internal error occured here// { dg-error "no matching" } //new GlobalAddress(new Value()); // This line is correct code } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C index bdb522aeb56..e7d621cf0a2 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C @@ -1,16 +1,16 @@ // { dg-do compile } // GROUPS passed old-abort -class internal { // { dg-error "internal::internal" } +class internal { // { dg-message "internal::internal" } int field; int anotherfield; }; -class bug { // { dg-error "bug::bug" } +class bug { // { dg-message "bug::bug" } internal* numbers; bug(int size); }; -bug::bug(int size) // { dg-error "bug::bug" } +bug::bug(int size) // { dg-message "bug::bug" } { numbers = new internal(size * size);// { dg-error "no match" } } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C index d1cae6d198a..dcb89dc9e48 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C @@ -343,7 +343,7 @@ operator>=(const SetLD<T>& a, const SetLD<T>& b) class String { }; class IcaseString: public String { }; template <> class SetLD< IcaseString >: public SetLD< String > { public: SetLD (): SetLD< String >() { }; SetLD (const ListD< IcaseString >& other): SetLD< String >() { ListD< IcaseString >::Vix x; for (other.first(x); 0 != x; other.next(x)) add(other(x)); }; SetLD (const SetLD & other): SetLD< String >(other) { }; const IcaseString & operator()(const Vix& x) const { return ( IcaseString &) SetLD< String >::operator()(x); } }; typedef SetLD< String > SetLD_String_IcaseString_old_tmp99; typedef SetLD< IcaseString > SetLD_String_IcaseString_new_tmp99; -inline int operator== (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) // { dg-error "operator==" } +inline int operator== (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) // { dg-message "operator==" } { const SetLD_String_IcaseString_old_tmp99& oa = a; const SetLD_String_IcaseString_old_tmp99& ob = b; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C index d53dee77dd3..44339ea2c7f 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C @@ -44,5 +44,5 @@ void Sort<Comp>::sort (Vector<Comp::T> &v)// { dg-error "" } use of bad T void f (Vector<int> &vi) { - Sort<Comparator<int> >::sort (vi); // { dg-error "error: 'sort' is not a member of 'Sort<Comparator<int> >'" } + Sort<Comparator<int> >::sort (vi); // { dg-error "'sort' is not a member of 'Sort<Comparator<int> >'" } } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C index 9849c4a8df9..638ba9f9252 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C @@ -38,11 +38,11 @@ struct bar class nnyacc { public: - static void assign(void*& lval, void*& rval); // { dg-error "" } candidates + static void assign(void*& lval, void*& rval); // { dg-message "candidates" } }; void foo (bar yylval, bar *yyvsp) { - nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// { dg-error "" } + nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// { dg-error "no matching" } } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C index e30ccdf2860..92b04c4d02b 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C @@ -9,13 +9,13 @@ public: class Bar : public Foo { public: - int f (int); // { dg-error "" } candidates are + int f (int); // { dg-message "candidates" } }; int main () { Bar b; - b.f ();// { dg-error "" } + b.f ();// { dg-error "no matching" } b.f (10); } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C index ac4f8c8ddfb..d832a4b47c1 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C @@ -5,7 +5,7 @@ class B { public: - static void WantsNew (NewObject creator); // { dg-error "" } candidates are + static void WantsNew (NewObject creator); // { dg-message "candidates" } }; class A @@ -18,6 +18,6 @@ B::WantsNew ( (NewObject) A::NewOne ); // This used to die in convert_harshness_{ansi,old} cuz it // didn't know what to do about a void type. - B::WantsNew ( A::NewOne );// { dg-error "" } + B::WantsNew ( A::NewOne );// { dg-error "no matching" } } }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C index 32d69406b88..b168e860410 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C @@ -3,8 +3,8 @@ class CLogger { public: - void operator() (int,const char *) {}; // { dg-error "" } candidates - void operator() (int,const char *, ...) {}; // { dg-error "" } candidates + void operator() (int,const char *) {}; // { dg-message "candidates" } + void operator() (int,const char *, ...) {}; // { dg-message "note" } } Log; class CGLogger : public CLogger @@ -13,8 +13,8 @@ class CGLogger : public CLogger int main() { - Log(1,"Test");// { dg-error "" } call of.* + Log(1,"Test");// { dg-error "ambiguous" } Log(1,"Test %d",3); - GLog(1,"Test");// { dg-error "" } call of.* + GLog(1,"Test");// { dg-error "ambiguous" } GLog(1,"Test %d",3); } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C index 3ea60aae23c..1c315b7fadd 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C @@ -15,12 +15,12 @@ int foo (void); typedef int (*f_ptr_t1) (void); typedef void (*f_ptr_t2) (int); -void bar (f_ptr_t1); // { dg-error "" } -void bar (f_ptr_t2); // { dg-error "" } +void bar (f_ptr_t1); // { dg-message "note" } +void bar (f_ptr_t2); // { dg-message "note" } void function () { - bar (foo); // { dg-error "" } ambiguous + bar (foo); // { dg-error "ambiguous" } } int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C index d93181ebb1e..8d91db67ae8 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C @@ -13,19 +13,19 @@ // implicitly-declared constructor is used, then it is implicitly // defined and found to be ill-formed. -struct struct0 { // { dg-error "note" } +struct struct0 { // { dg-message "note" } int data_member; struct0 (int, void *); // suppresses implicit default constructor }; -struct0::struct0 (int, void *) // { dg-error "note" } +struct0::struct0 (int, void *) // { dg-message "note" } { } struct struct0_derived_struct_0 : public struct0 { // { dg-error "no matching" } }; -struct0_derived_struct_0 object; // { dg-error "synthesized" } +struct0_derived_struct_0 object; // { dg-message "synthesized" } int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C index 98393ba3b4a..f1da7fba722 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C @@ -19,12 +19,12 @@ struct B { }; struct D : public B { - int f(struct B); // { dg-error "" } referred to below + int f(struct B); // { dg-message "candidates" } referred to below }; void h(D* pd) { - pd->f(1); // { dg-error "" } D::f(struct B) hides B::f(int) + pd->f(1); // { dg-error "no matching" } D::f(struct B) hides B::f(int) } int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C index 726f9ef933e..6f7ea3f4581 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C @@ -8,12 +8,12 @@ // keywords: overloading, ambiguity, resolution -void function0 (int i, char c) // { dg-error "function0" } +void function0 (int i, char c) // { dg-message "function0" } { i = c; } -void function0 (char c, int i) // { dg-error "function0" } +void function0 (char c, int i) // { dg-message "function0" } { i = c; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C index a5419fb9ee9..3826e08e009 100644 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C +++ b/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C @@ -19,14 +19,14 @@ struct t_0_st_0; struct t_0_st_1 { int member; - t_0_st_1 (t_0_st_0&);// { dg-error "" } + t_0_st_1 (t_0_st_0&);// { dg-message "note" } t_0_st_1 (); }; struct t_0_st_0 { int member; - operator t_0_st_1 ();// { dg-error "" } + operator t_0_st_1 ();// { dg-message "note" } }; t_0_st_0 t_0_st_0_obj0; @@ -37,13 +37,13 @@ void t_0_assignment () t_0_st_1 t_0_st_1_obj1; t_0_st_1 t_0_st_1_obj2; - t_0_st_1_obj0 = t_0_st_0_obj0; // { dg-error "" } caught + t_0_st_1_obj0 = t_0_st_0_obj0; // { dg-error "ambiguous" } caught t_0_st_1_obj1 = t_0_st_1 (t_0_st_0_obj0); } void t_0_local_init () { - t_0_st_1 t_0_st_1_obj0 = t_0_st_0_obj0; // { dg-error "" } + t_0_st_1 t_0_st_1_obj0 = t_0_st_0_obj0; // { dg-error "ambiguous" } t_0_st_1 t_0_st_1_obj1 = t_0_st_1 (t_0_st_0_obj0); } @@ -52,15 +52,15 @@ struct t_1_st_0; struct t_1_st_1 { int member; - t_1_st_1 (t_1_st_0&); // { dg-error "" } + t_1_st_1 (t_1_st_0&); // { dg-message "note" } t_1_st_1 (); - void operator= (t_1_st_1&); // { dg-error "" } + void operator= (t_1_st_1&); // { dg-message "note" } }; struct t_1_st_0 { int member; - operator t_1_st_1 (); // { dg-error "" } + operator t_1_st_1 (); // { dg-message "note" } }; t_1_st_0 t_1_st_0_obj0; @@ -71,13 +71,13 @@ void t_1_assignment () t_1_st_1 t_1_st_1_obj1; t_1_st_1 t_1_st_1_obj2; - t_1_st_1_obj0 = t_1_st_0_obj0; // { dg-error "" } - t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0); // { dg-error "" } + t_1_st_1_obj0 = t_1_st_0_obj0; // { dg-error "no match" } + t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0); // { dg-error "no match" } } void t_1_local_init () { - t_1_st_1 t_1_st_1_obj0 = t_1_st_0_obj0; // { dg-error "" } + t_1_st_1 t_1_st_1_obj0 = t_1_st_0_obj0; // { dg-error "ambiguous" } t_1_st_1 t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0); } @@ -86,14 +86,14 @@ struct t_2_st_0; struct t_2_st_1 { int member; - t_2_st_1 (t_2_st_0); // { dg-error "" } candidate + t_2_st_1 (t_2_st_0); // { dg-message "note" } t_2_st_1 (); }; struct t_2_st_0 { int member; - operator t_2_st_1 (); // { dg-error "" } candidate + operator t_2_st_1 (); // { dg-message "candidate" } }; t_2_st_0 t_2_st_0_obj0; @@ -104,12 +104,12 @@ void t_2_assignment () t_2_st_1 t_2_st_1_obj1; t_2_st_1 t_2_st_1_obj2; - t_2_st_1_obj0 = t_2_st_0_obj0; // { dg-error "" } caught + t_2_st_1_obj0 = t_2_st_0_obj0; // { dg-error "ambiguous" } caught t_2_st_1_obj1 = t_2_st_1 (t_2_st_0_obj0); } void t_2_local_init () { - t_2_st_1 t_2_st_1_obj0 = t_2_st_0_obj0; // { dg-error "" } + t_2_st_1 t_2_st_1_obj0 = t_2_st_0_obj0; // { dg-error "ambiguous" } t_2_st_1 t_2_st_1_obj1 = t_2_st_1 (t_2_st_0_obj0); } diff --git a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C index 6071d7ee27f..ac2f24f60ce 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C @@ -2,7 +2,7 @@ struct A { A(); - A(A&); // { dg-error "" } referenced below + A(A&); // { dg-message "candidates" } referenced below }; int @@ -10,7 +10,8 @@ main () { try { - throw A(); // { dg-error "" } can't copy + throw A(); // { dg-error "no matching" "match" } can't copy +// { dg-error "thrown expression" "expr" { target *-*-* } 13 } } catch (...) { } } diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec6.C b/gcc/testsuite/g++.old-deja/g++.eh/spec6.C index b9ccd6e8369..b6e7f264552 100644 --- a/gcc/testsuite/g++.old-deja/g++.eh/spec6.C +++ b/gcc/testsuite/g++.old-deja/g++.eh/spec6.C @@ -25,7 +25,7 @@ template<class T> void fnx(T *) throw(T){} // { dg-error "" } invalid use of vo void fx() { fnx((int *)0); - fnx((void *)0); // { dg-error "" } instantiated from here + fnx((void *)0); // { dg-message "instantiated from here" } } // [except.spec] 2, exception specifiers must be the same set of types (but diff --git a/gcc/testsuite/g++.old-deja/g++.ext/overload1.C b/gcc/testsuite/g++.old-deja/g++.ext/overload1.C index e72916355b7..f7c8018ecdd 100644 --- a/gcc/testsuite/g++.old-deja/g++.ext/overload1.C +++ b/gcc/testsuite/g++.old-deja/g++.ext/overload1.C @@ -11,10 +11,10 @@ struct X { X (int); }; -void Foo (int, float, bool); // { dg-warning "" } candidate -void Foo (float, int, X); // { dg-warning "" } candidate +void Foo (int, float, bool); // { dg-message "candidate" } +void Foo (float, int, X); // { dg-message "candidate" } void Baz () { - Foo (1, 1, 0); // { dg-warning "" } least worse + Foo (1, 1, 0); // { dg-warning "worst" } } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C index 368dcbc140a..78e46e1cd38 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C @@ -14,14 +14,14 @@ public: class Something { public: - void DoSomething(Ding A); // { dg-error "" } referred to + void DoSomething(Ding A); // { dg-message "candidates" } referred to }; void DoSomething(Ding A); void foo(Something* pX) { - DoSomething(1); // { dg-error "" } - pX->DoSomething(1); // { dg-error "" } - (*pX).DoSomething(1); // { dg-error "" } + DoSomething(1); // { dg-error "conversion" } + pX->DoSomething(1); // { dg-error "no matching" } + (*pX).DoSomething(1); // { dg-error "no matching" } } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash11.C b/gcc/testsuite/g++.old-deja/g++.jason/crash11.C index 5cc8e5f3d6b..1883e175a6a 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash11.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/crash11.C @@ -6,4 +6,4 @@ struct A { }; const char foo[] = "bar"; const A a = { foo }; -extern const A* ap = &a; //{ dg-warning "warning: 'ap' initialized and declared 'extern'" } +extern const A* ap = &a; //{ dg-warning "'ap' initialized and declared 'extern'" } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C b/gcc/testsuite/g++.old-deja/g++.jason/crash3.C index 4a3d097d786..5d5b3af9cb4 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/crash3.C @@ -3,11 +3,11 @@ // and fails. struct Node -{ // { dg-error "" } +{ // { dg-message "note" } Node* child[2]; }; void bug(int i) { - Node* q = new Node(i); // { dg-error "" } + Node* q = new Node(i); // { dg-error "no matching" } } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lineno3.C b/gcc/testsuite/g++.old-deja/g++.jason/lineno3.C index cf39f1c76a4..997267e7244 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/lineno3.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/lineno3.C @@ -8,6 +8,7 @@ template <class T> class A public: # 200 "lineno3.C" int foo () { undef1(); } // { dg-error "" "" { target *-*-* } 200 } + // { dg-message "note" "note" { target *-*-* } 200 } }; template class A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lineno4.C b/gcc/testsuite/g++.old-deja/g++.jason/lineno4.C index 272c050d791..caa5bc216cd 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/lineno4.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/lineno4.C @@ -8,6 +8,7 @@ public: # 200 "lineno4.C" int foo () { undef1(); } // { dg-error "" "" { target *-*-* } 200 } + // { dg-message "note" "note" { target *-*-* } 200 } }; template class A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C index 8fbda4fc149..7a50abb2567 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C @@ -11,5 +11,5 @@ void foo () { int one=1, two=2; X a(one), b(two); - a = b; // { dg-error "synthesized" } + a = b; // { dg-message "synthesized" } } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload16.C b/gcc/testsuite/g++.old-deja/g++.jason/overload16.C index 13537087836..455376fc881 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload16.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/overload16.C @@ -1,7 +1,7 @@ // { dg-do assemble } -void f (int); // { dg-error "" } -void f (long); // { dg-error "" } +void f (int); // { dg-message "candidates" } +void f (long); // { dg-message "note" } int main() { - f (1 & 0xffffff00UL); // { dg-error "" } ambiguous + f (1 & 0xffffff00UL); // { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload28.C b/gcc/testsuite/g++.old-deja/g++.jason/overload28.C index a3dcb8d6a13..46bf918d047 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload28.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/overload28.C @@ -2,11 +2,11 @@ // PRMS Id: 6056 struct Foo { - Foo() { } // { dg-error "" } candidate - Foo(int i = 25) { } // { dg-error "" } candidate + Foo() { } // { dg-message "note" } + Foo(int i = 25) { } // { dg-message "note" } }; int main() { - Foo* f1 = new Foo(); // { dg-error "" } ambiguous + Foo* f1 = new Foo(); // { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C index a5405243fcc..26fa9432aca 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C @@ -15,4 +15,5 @@ struct ThingEntry { static ThingEntry KeyWordTable[] = { &Thing::FunctionA, Thing::OverloadFn, -}; // { dg-warning "" } implicit & +}; // { dg-error "assuming" "assuming" } implicit & +// { dg-message "note" "note" { target *-*-* } 18 } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C index 88411fa993e..d5763748f61 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C @@ -3,7 +3,7 @@ void f (char *); struct A { - void f (); // { dg-error "" } referred to + void f (); // { dg-message "candidates" } referred to }; struct B : public A { void g (char *); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template30.C b/gcc/testsuite/g++.old-deja/g++.jason/template30.C index 370bb18a561..e5d194012ea 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/template30.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/template30.C @@ -1,14 +1,14 @@ // { dg-do assemble } template <class T, class U> -int func(U, T); // { dg-error "" } ref below +int func(U, T); // { dg-message "candidates" } template <class T, class U> -int func(T, U) // { dg-error "" } ref below +int func(T, U) // { dg-message "note" } { return 2; } int main () { - func (0, 1); // { dg-error "" } ambiguous + func (0, 1); // { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C index 97185d47ac0..efd09fd06b1 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C @@ -2,9 +2,9 @@ class X // Indentation has been done so to see the similarities. { public: - X() {} // { dg-error "" } referenced below - X(X& x) {x.i=7;} // { dg-error "" } Both functions modify the - void bar(X& x) {x.i=7;} // { dg-error "" } reference parameter x. + X() {} // { dg-message "note" } referenced below + X(X& x) {x.i=7;} // { dg-message "note" } Both functions modify the + void bar(X& x) {x.i=7;} // { dg-message "note" } reference parameter x. int i; }; @@ -12,6 +12,6 @@ X foo() { X x; return x; } int main() { - X x(foo()); // { dg-error "" } Compiler doesn't warn about temporary reference. - x.bar(foo()); // { dg-error "" } The same mistake is warned about in this case. + X x(foo()); // { dg-error "no match" } Compiler doesn't warn about temporary reference. + x.bar(foo()); // { dg-error "no match" } The same mistake is warned about in this case. } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tredecl4.C b/gcc/testsuite/g++.old-deja/g++.jason/tredecl4.C index c5bb92e1b15..0fa6aef5f2c 100644 --- a/gcc/testsuite/g++.old-deja/g++.jason/tredecl4.C +++ b/gcc/testsuite/g++.old-deja/g++.jason/tredecl4.C @@ -2,5 +2,5 @@ // It is illegal to use the name of a class template for anything else, // including another class template. -template <class T> class A { }; // { dg-error "" } -template <class U, class V> class A { }; // { dg-error "" } +template <class T> class A { }; // { dg-message "previous" } +template <class U, class V> class A { }; // { dg-error "redeclared" } diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg1.C b/gcc/testsuite/g++.old-deja/g++.law/arg1.C index 9da5e6e0273..8b117aa8916 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/arg1.C +++ b/gcc/testsuite/g++.old-deja/g++.law/arg1.C @@ -9,14 +9,14 @@ // check the order of declarations class A { public: - void f(double* p) { std::cout << "A(double*)\n"; } // { dg-error "" } candidate - void f(int* p) { std::cout << "A(int*)\n"; } // { dg-error "" } candidate + void f(double* p) { std::cout << "A(double*)\n"; } // { dg-message "candidates" } + void f(int* p) { std::cout << "A(int*)\n"; } // { dg-message "note" } }; class B { public: - void f(int* p) { std::cout << "B(int*)\n"; } // { dg-error "" } candidate - void f(double* p) { std::cout << "B(double*)\n"; } // { dg-error "" } candidate + void f(int* p) { std::cout << "B(int*)\n"; } // { dg-message "candidates" } + void f(double* p) { std::cout << "B(double*)\n"; } // { dg-message "note" } }; int main() @@ -24,7 +24,7 @@ int main() A a; B b; - a.f(0);// { dg-error "" } .* - b.f(0);// { dg-error "" } .* + a.f(0);// { dg-error "ambiguous" } + b.f(0);// { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg11.C b/gcc/testsuite/g++.old-deja/g++.law/arg11.C index 3772b07990e..b6a0194f314 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/arg11.C +++ b/gcc/testsuite/g++.old-deja/g++.law/arg11.C @@ -9,14 +9,14 @@ struct String { String(const char*); }; struct Ack { Ack(String); }; -struct S { void method(Ack); }; // { dg-error "" } referenced below +struct S { void method(Ack); }; // { dg-message "candidates" } referenced below void function(Ack); int foo(S *o) { // Neither call has a usable constructor for conversions of char[5] to Ack. - function("adsf");// { dg-error "" } - o->method("adsf");// { dg-error "" } + function("adsf");// { dg-error "conversion" } + o->method("adsf");// { dg-error "no matching" } return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm9.C b/gcc/testsuite/g++.old-deja/g++.law/arm9.C index 49232fcd15e..7c7cfea0c8f 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/arm9.C +++ b/gcc/testsuite/g++.old-deja/g++.law/arm9.C @@ -19,11 +19,11 @@ class B : public A { public: void set (f2 f); }; -void B::set (f2 f) { std::cout << "called B\n";} // { dg-error "" } candidate +void B::set (f2 f) { std::cout << "called B\n";} // { dg-message "candidates" } int main() { B b; - b.set(F1); // ARM page 309: should call A.set(f1) and that what g++ does,// { dg-error "" } .* + b.set(F1); // ARM page 309: should call A.set(f1) and that what g++ does,// { dg-error "match" } // but 13.1 of ARM clearly states that it should call B::set() // or generate an error because overloading works only for // functions within the same scope (first page of chapter 13) diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors11.C b/gcc/testsuite/g++.old-deja/g++.law/ctors11.C index 84c95172b6d..39ee76b0ae7 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors11.C +++ b/gcc/testsuite/g++.old-deja/g++.law/ctors11.C @@ -10,12 +10,12 @@ public: inline A(int x){printf("constructing A with %d\n", x);} }; -class B:public A{ // { dg-error "" } non-default constructor +class B:public A{ // { dg-message "note" } non-default constructor private: public: }; int main() { - B(10);// { dg-error "" } B doesn't have a constructor taking int + B(10);// { dg-error "match" } B doesn't have a constructor taking int } diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors17.C b/gcc/testsuite/g++.old-deja/g++.law/ctors17.C index 1cee3082595..3d63d01c0a9 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors17.C +++ b/gcc/testsuite/g++.old-deja/g++.law/ctors17.C @@ -9,13 +9,13 @@ #include <fstream> -class X : public std::ifstream { // { dg-error "" } candidate +class X : public std::ifstream { // { dg-message "note" } candidate public: - X(int a, const char *b) {} // { dg-error "" } candidate + X(int a, const char *b) {} // { dg-message "note" } candidate }; int main() { X *y = new X(10, "123"); // the compiler must reject this constructor call: - X *x = new X("abc");// { dg-error "" } .* + X *x = new X("abc");// { dg-error "match" } } diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C index c9851bf21b7..02c5fb06fe4 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C +++ b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C @@ -6,7 +6,7 @@ // Date: Tue, 1 Sep 92 10:38:44 EDT class X -{ // { dg-error "1: note: X::X\\(const X&\\)" } implicit constructor +{ // { dg-message "1:X::X\\(const X&\\)" } implicit constructor private: int x; public: @@ -14,21 +14,23 @@ class X X( int ); }; -class Y // { dg-error "1: error: new types may not be defined in a return type|1: note: \\(perhaps a semicolon is missing after the definition of 'Y'\\)" } +class Y // { dg-error "1:new types may not be defined in a return type" "err" } + // { dg-message "1:\\(perhaps a semicolon is missing after the definition of 'Y'\\)" "note" { target *-*-* } 17 } { private: X xx; public: Y(); } -X::X( int xi ) // { dg-error "14: error: return type specification for constructor invalid|1: note: candidates are: X::X\\(int\\)" } +X::X( int xi ) // { dg-error "14:return type specification for constructor invalid" "err" } +// { dg-message "1:candidates are: X::X\\(int\\)" "note" { target *-*-* } 25 } { x = xi; } const X X::x0( 0 ); -Y::Y() // { dg-error "6: error: no matching function for call to 'X::X\\(\\)'" } +Y::Y() // { dg-error "6:no matching function for call to 'X::X\\(\\)'" } { xx = X::x0; } diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C index bc51426459a..17207f6acf5 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C +++ b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C @@ -21,7 +21,7 @@ Foo::Foo(int aa) struct var_Foo: public Foo -{ // { dg-error "" } base.*// ERROR - in class.* +{ // { dg-message "note" } base.*// ERROR - in class.* var_Foo* operator-> () {return this;} }; @@ -32,7 +32,7 @@ int blort(Foo& f) int main() { - var_Foo b(2);// { dg-error "" } + var_Foo b(2);// { dg-error "match" } b->a = 0; int x = blort(b); return x; diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum4.C b/gcc/testsuite/g++.old-deja/g++.law/enum4.C index e41e9f308bc..742f54bc459 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/enum4.C +++ b/gcc/testsuite/g++.old-deja/g++.law/enum4.C @@ -11,7 +11,7 @@ enum Enum {enumerator1, enumerator2}; struct Struct { int i; - int getI(Enum) {return i;} // { dg-error "" } candidates + int getI(Enum) {return i;} // { dg-message "candidates" } }; int funct (Enum) @@ -23,7 +23,7 @@ int main() { Enum e = enumerator1; Struct s; - int x = funct(e+1);// { dg-error "" } .* - int y = s.getI(e+1);// { dg-error "" } .* + int x = funct(e+1);// { dg-error "invalid" } + int y = s.getI(e+1);// { dg-error "match" } return x+y; } diff --git a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C b/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C index a26f456f20a..5f1187a592b 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C +++ b/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C @@ -14,8 +14,10 @@ #undef max #endif -inline int max(int a, int b) {return a > b ? a : b;}; // { dg-error "" } candidate -inline double max(double a, double b) {return a > b ? a : b;}; // { dg-error "" } candidate +inline int max(int a, int b) {return a > b ? a : b;}; // { dg-message "candidate" } + // { dg-error "extra ';'" "extra ;" { target *-*-* } 17 } +inline double max(double a, double b) {return a > b ? a : b;}; // { dg-message "note" } candidate + // { dg-error "extra ';'" "extra ;" { target *-*-* } 19 } int main() { static void foo(int i, int j, double x, double y) ;// { dg-error "" } .* diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators9.C b/gcc/testsuite/g++.old-deja/g++.law/operators9.C index 127aa8cf7b8..8ec6825abfa 100644 --- a/gcc/testsuite/g++.old-deja/g++.law/operators9.C +++ b/gcc/testsuite/g++.old-deja/g++.law/operators9.C @@ -9,11 +9,12 @@ class B { public: - operator=(B &); // { dg-error "" } no type or storage class + operator=(B &); // { dg-error "no type" } + // { dg-message "candidates" "note" { target *-*-* } 12 } }; void test(B &b1, const B &b2) { - b1 = b2;// { dg-error "" } .* + b1 = b2;// { dg-error "match" } } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net2.C b/gcc/testsuite/g++.old-deja/g++.mike/net2.C index c9aff266fdb..f2240ddfc18 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/net2.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/net2.C @@ -3,11 +3,11 @@ class B; -class A { // { dg-error "" } copy ctor candidate +class A { // { dg-message "note" } copy ctor candidate private: - A(B *); // { dg-error "" } + A(B *); // { dg-message "note" } public: - A(long); // { dg-error "" } + A(long); // { dg-message "note" } }; -A a(0); // { dg-error "" } should be ambigious +A a(0); // { dg-error "ambiguous" } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net22.C b/gcc/testsuite/g++.old-deja/g++.mike/net22.C index de39a529e1b..e5e1cb1081d 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/net22.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/net22.C @@ -5,10 +5,10 @@ public: Parent( char *s ) {} }; -class Child : public Parent { // { dg-error "" } called +class Child : public Parent { // { dg-message "note" } called }; int main() { - Child c( "String initializer" ); // { dg-error "" } bad + Child c( "String initializer" ); // { dg-error "match" } bad return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11110.C b/gcc/testsuite/g++.old-deja/g++.mike/p11110.C index 6be0a08685f..746a57ccfd6 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11110.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p11110.C @@ -6,7 +6,7 @@ class data; class conatiner { public: virtual void* first (); - virtual data* contents (void* i); // { dg-error "" } candidates + virtual data* contents (void* i); // { dg-message "candidates" } }; class user { @@ -17,5 +17,5 @@ private: }; data* user::data1() const { - return (_c.contents (_c.first)); // { dg-error "" } + return (_c.contents (_c.first)); // { dg-error "match" } } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C b/gcc/testsuite/g++.old-deja/g++.mike/p1989.C index 807803f0a94..c8664390b4a 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p1989.C @@ -196,7 +196,7 @@ Pix List_DLS<T>::search(const T& item) const { for (Pix x=this->first(); 0 != x; this->next(x)) { - if (item == this->operator()(x)) // { dg-error "" } const subversion + if (item == this->operator()(x)) // { dg-error "match" } const subversion return x; } return 0; @@ -485,8 +485,8 @@ class STRLIdentifier { char buf[10]; }; -extern int operator==(vertex<STRLIdentifier*>&, vertex<STRLIdentifier*>&); // { dg-error "" } const subversion -extern int operator==(STRLIdentifier&, STRLIdentifier&); // { dg-error "" } fn ref in err msg +extern int operator==(vertex<STRLIdentifier*>&, vertex<STRLIdentifier*>&); // { dg-message "candidates" } const subversion +extern int operator==(STRLIdentifier&, STRLIdentifier&); // { dg-message "note" } fn ref in err msg extern int x(List_DLSp<STRLIdentifier *>); diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C b/gcc/testsuite/g++.old-deja/g++.mike/p2431.C index 897adfd58a6..1d5b3974f9a 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p2431.C @@ -3,7 +3,7 @@ class A { public: - A(A &); // { dg-error "" } candidates are + A(A &); // { dg-message "candidates" } }; class B @@ -18,6 +18,6 @@ class C C() { B b; - A a = b;// { dg-error "" } + A a = b;// { dg-error "match" } } }; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p438.C b/gcc/testsuite/g++.old-deja/g++.mike/p438.C index c2bdce312f6..a08a404aa91 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p438.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p438.C @@ -12,12 +12,12 @@ class C class D { public: - void a(C& b); // { dg-error "" } referenced below + void a(C& b); // { dg-message "candidates" } }; void C::test() const { D d; - d.a(*this); // { dg-error "" } *this is const, so should get error + d.a(*this); // { dg-error "match" } *this is const, so should get error } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p807a.C b/gcc/testsuite/g++.old-deja/g++.mike/p807a.C index 748231c66b8..83879bd7390 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p807a.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p807a.C @@ -10,13 +10,13 @@ class B; class A { public: - A(B&); // { dg-error "" } fn ref in err msg + A(B&); // { dg-message "note" } fn ref in err msg }; class B { public: - operator A(); // { dg-error "" } fn ref in err msg + operator A(); // { dg-message "candidates" } fn ref in err msg }; B b; -A a = b; // { dg-error "" } should fail as it is ambigious. +A a = b; // { dg-error "ambiguous" } should fail as it is ambigious. diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9068.C b/gcc/testsuite/g++.old-deja/g++.mike/p9068.C index ab2d034b868..aff4a6a7bc7 100644 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9068.C +++ b/gcc/testsuite/g++.old-deja/g++.mike/p9068.C @@ -2,7 +2,7 @@ // prms-id: 9068 struct ostream { - void operator<< (int); // { dg-error "" } fn ref in err msg + void operator<< (int); // { dg-message "candidates" } fn ref in err msg }; class C { @@ -13,7 +13,7 @@ public: void foo (ostream& lhs, const C& rhs) { - lhs << rhs.i; // { dg-error "" } no such i for any opr << () + lhs << rhs.i; // { dg-error "match" } no such i for any opr << () } int& C::i () { diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C b/gcc/testsuite/g++.old-deja/g++.niklas/t120.C index 89fd8e6fc0e..17eaf0743fc 100644 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C +++ b/gcc/testsuite/g++.old-deja/g++.niklas/t120.C @@ -2,4 +2,5 @@ // GROUPS passed niklas ellipsis typedef void (*T) (...); void f (); -struct S { void g (T); void h() { g(f); } };// { dg-error "" } +struct S { void g (T); void h() { g(f); } };// { dg-error "match" "match" } +// { dg-message "candidates" "note" { target *-*-* } 5 } diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C b/gcc/testsuite/g++.old-deja/g++.niklas/t121.C index d25c79fb77e..cf3373964a2 100644 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C +++ b/gcc/testsuite/g++.old-deja/g++.niklas/t121.C @@ -1,5 +1,6 @@ // { dg-do assemble } // GROUPS passed niklas ellipsis void f (); -void g1 (void (*) (...)); void h1 () { g1 (f); }// { dg-error "" } .* -struct S { void g2 (void (*) (...)); void h2 () { g2 (f); } };// { dg-error "" } +void g1 (void (*) (...)); void h1 () { g1 (f); }// { dg-error "invalid conversion" } +struct S { void g2 (void (*) (...)); void h2 () { g2 (f); } };// { dg-error "match" "match" } +// { dg-message "candidates" "note" { target *-*-* } 5 } diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t128.C b/gcc/testsuite/g++.old-deja/g++.niklas/t128.C index 4fe96eb3a68..19e3ca1dab0 100644 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t128.C +++ b/gcc/testsuite/g++.old-deja/g++.niklas/t128.C @@ -1,5 +1,5 @@ // { dg-do assemble } // GROUPS niklas uncaught default-construct struct A { A (int); }; -struct B : A {}; // { dg-error "" } without ctor // ERROR - candidates -void f () { B (0); }// { dg-error "" } .* +struct B : A {}; // { dg-message "note" } without ctor // ERROR - candidates +void f () { B (0); }// { dg-error "match" } .* diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload2.C b/gcc/testsuite/g++.old-deja/g++.ns/overload2.C index a6ea9439d08..85df6bd694b 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/overload2.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/overload2.C @@ -1,13 +1,13 @@ // { dg-do assemble } namespace A{ - void f(); // { dg-error "" } .* + void f(); // { dg-message "note" } } using namespace A; -void f(); // { dg-error "" } .* +void f(); // { dg-message "note" } void g() { - f(); // { dg-error "" } ambiguous, ::f or A::f ? + f(); // { dg-error "ambiguous" } ambiguous, ::f or A::f ? } diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template13.C b/gcc/testsuite/g++.old-deja/g++.ns/template13.C index 7059b1949f8..a9559c7153b 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/template13.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/template13.C @@ -5,7 +5,7 @@ namespace bar // trick it to provide some prior declaration template<class T> void foo(); // { dg-error "definition" } - template<class T>class X; // { dg-error "note: previous declaration" } + template<class T>class X; // { dg-message "note: previous declaration" } } template <typename T> @@ -20,4 +20,4 @@ template<> void bar::foo<int>() // { dg-error "different namespace" } } template<class T,class U> -class bar::X{}; // { dg-error "error: redeclared with 2 template parameter" } +class bar::X{}; // { dg-error "redeclared with 2 template parameter" } diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using12.C b/gcc/testsuite/g++.old-deja/g++.ns/using12.C index 057457c7087..c3425c7f290 100644 --- a/gcc/testsuite/g++.old-deja/g++.ns/using12.C +++ b/gcc/testsuite/g++.old-deja/g++.ns/using12.C @@ -3,17 +3,17 @@ namespace foo { - void x (bool); // { dg-error "" } candidates - void x (char); // { dg-error "" } candidates - void x (int); // { dg-error "" } candidates - void x (double); // { dg-error "" } candidates + void x (bool); // { dg-message "candidates" } + void x (char); // { dg-message "note" } candidates + void x (int); // { dg-message "note" } candidates + void x (double); // { dg-message "note" } candidates } -namespace baz { void x (int); } // { dg-error "" } candidates +namespace baz { void x (int); } // { dg-message "note" } candidates void fn (int i) { using foo::x; using baz::x; - x(i); // { dg-error "" } ambiguous + x(i); // { dg-error "ambiguous" } } diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/delete1.C b/gcc/testsuite/g++.old-deja/g++.oliva/delete1.C index e6ab00b907c..3912dbad5ed 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/delete1.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/delete1.C @@ -29,3 +29,4 @@ struct baz : foo { } baz_; struct bad : baz {} bad_; // { dg-error "" } delete is private in vdtor +// { dg-message "synthesized" "note" { target *-*-* } 31 } diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C index 5864be7cdb6..91b3b02a439 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/overload1.C @@ -6,18 +6,19 @@ // Based on bug report by JDonner <jdonner@schedsys.com> struct foo { - static int bar(); // { dg-error "" } candidate - void bar(int); // { dg-error "" } candidate + static int bar(); // { dg-error "candidate" } + void bar(int); // { dg-error "foo::bar" } }; /* gcc emits a hard error without -pedantic, and a warning with -pedantic, even in bad1. */ int (*ok1)() = foo::bar; -void (foo::*bad1)(int) = foo::bar; // { dg-error "" } missing & +void (foo::*bad1)(int) = foo::bar; // { dg-error "assuming pointer" } +// { dg-message "note" "note" { target *-*-* } 16 } int (*ok2)() = &foo::bar; // ok -void (*bad2)(int) = foo::bar; // { dg-error "" } overload resolution fails +void (*bad2)(int) = foo::bar; // { dg-error "no matches" } void (foo::*ok3)(int) = &foo::bar; // ok -int (foo::*bad3)() = foo::bar; // { dg-error "" } overload resolution fails +int (foo::*bad3)() = foo::bar; // { dg-error "no matches" } diff --git a/gcc/testsuite/g++.old-deja/g++.oliva/template1.C b/gcc/testsuite/g++.old-deja/g++.oliva/template1.C index 8ac05146866..ce394961804 100644 --- a/gcc/testsuite/g++.old-deja/g++.oliva/template1.C +++ b/gcc/testsuite/g++.old-deja/g++.oliva/template1.C @@ -7,7 +7,7 @@ template<int P = 0> struct foo { - static void bar(double (*)[dim]) {} // { dg-error "" } dim not declared + static void bar(double (*)[dim]) {} // { dg-error "'dim' was not declared" } }; void bar() { diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash24.C b/gcc/testsuite/g++.old-deja/g++.other/crash24.C index 09e9788e26f..9d6af1dfe87 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/crash24.C +++ b/gcc/testsuite/g++.old-deja/g++.other/crash24.C @@ -7,11 +7,12 @@ class foo { friend class __iterator; typedef __iterator const_iterator; virtual ~foo() { } - __iterator begin(); // { dg-error "" } + __iterator begin(); // { dg-message "candidates" } }; static void iteratorTest(const foo &x) { - foo::const_iterator i = x.begin(); // { dg-error "" } + foo::const_iterator i = x.begin(); // { dg-error "incomplete type" "incomplete type" } + // { dg-error "no matching" "no matching" { target *-*-* } 14 } for (; i; ++i) *i; } diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash25.C b/gcc/testsuite/g++.old-deja/g++.other/crash25.C index 517bac2d5d6..5460e03886f 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/crash25.C +++ b/gcc/testsuite/g++.old-deja/g++.other/crash25.C @@ -2,16 +2,17 @@ // { dg-options "-fshow-column" } // Origin: Jakub Jelinek <jakub@redhat.com> -class X { // { dg-error "1: error: new types may not be defined in a return type|1: note: \\(perhaps a semicolon is missing after the definition of 'X'\\)" } +class X { // { dg-error "1:new types may not be defined in a return type" "new types" } +// { dg-message "1:\\(perhaps a semicolon is missing after the definition of 'X'\\)" "note" { target *-*-* } 5 } public: X(); virtual ~X(); } -X::x() // { dg-error "6: error: no 'X X::x\\(\\)' member function declared in class 'X'" } +X::x() // { dg-error "6:no 'X X::x\\(\\)' member function declared in class 'X'" } { } -X::~x() // { dg-error "6: error: expected class-name before '\\(' token" } +X::~x() // { dg-error "6:expected class-name before '\\(' token" } { } diff --git a/gcc/testsuite/g++.old-deja/g++.other/decl3.C b/gcc/testsuite/g++.old-deja/g++.other/decl3.C index a03d2e9d53e..bdcfcb02c6f 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/decl3.C +++ b/gcc/testsuite/g++.old-deja/g++.other/decl3.C @@ -6,14 +6,14 @@ // We should not allow arrays of abstract type. [class.abstract/2] -struct cow_t { // { dg-error "" } note - virtual void f()=0; // { dg-error "" } pure +struct cow_t { // { dg-message "pure" } + virtual void f()=0; // { dg-message "note" } }; int main() { - cow_t cow[2]; // { dg-error "" } abstract class + cow_t cow[2]; // { dg-error "invalid abstract type" } cow[0].f(); return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.other/expr1.C b/gcc/testsuite/g++.old-deja/g++.other/expr1.C index 9471448c21b..1f1f60d19c2 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/expr1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/expr1.C @@ -3,9 +3,9 @@ // Simplified from bug report by Trevor Taylor <ttaylor@powerup.com.au> struct T { - int operator()(int) { } // { dg-error "" } candidate + int operator()(int) { } // { dg-message "candidates" } }; int main() { - T()(); // { dg-error "" } no such operator + T()(); // { dg-error "match" } no such operator } diff --git a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C index ef9c1f7823b..9a5c4ca9540 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C +++ b/gcc/testsuite/g++.old-deja/g++.other/overcnv2.C @@ -16,7 +16,9 @@ struct B : public A { int main() { B b; - if ((const char *)b != 0) // { dg-warning "" } surprising overload resolution + if ((const char *)b != 0) // { dg-warning "choosing 'B" "B" } surprising overload resolution + // { dg-warning "for conversion" "conv" { target *-*-* } 19 } + // { dg-message "note" "note" { target *-*-* } 19 } return 1; if ((const char *)(const B)b == 0) return 2; diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload11.C b/gcc/testsuite/g++.old-deja/g++.other/overload11.C index 17b70d406b2..3b0cab79fd9 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/overload11.C +++ b/gcc/testsuite/g++.old-deja/g++.other/overload11.C @@ -22,7 +22,9 @@ void ovl (int); // { dg-error "" } candidate +// { dg-message "int" "int" { target *-*-* } 24 } void ovl (float); // { dg-error "" } candidate +// { dg-message "float" "float" { target *-*-* } 26 } void fn (int); void fna (int); @@ -72,7 +74,7 @@ int main (int argc, char **argv) ptr = (argc ? fna : fn); ptr = (argc ? &fna : &fn); - f; // { dg-warning "" } not a call + f; // { dg-error "" } not a call ovl; // { dg-error "" } not suitable for overload &ovl; // { dg-error "" } not suitable for overload (void)f; // ok diff --git a/gcc/testsuite/g++.old-deja/g++.other/pmf3.C b/gcc/testsuite/g++.old-deja/g++.other/pmf3.C index fa9e92ec998..d8568dd9b1b 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/pmf3.C +++ b/gcc/testsuite/g++.old-deja/g++.other/pmf3.C @@ -3,7 +3,7 @@ // Bug: g++ was crashing after giving errors. template<class T> - void connect_to_method( // { dg-error "candidates are" } + void connect_to_method( // { dg-message "candidates are" } T *receiver, void (T::*method)()) {} @@ -20,6 +20,6 @@ public: Gtk_Base::Gtk_Base() { - connect_to_method(this,&show); // { dg-error "" } invalid pmf expression - connect_to_method(this,&expose); // { dg-error "" } invalid pmf expression + connect_to_method(this,&show); // { dg-error "no match" } invalid pmf expression + connect_to_method(this,&expose); // { dg-error "pointer to member" } invalid pmf expression } diff --git a/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C b/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C index 384885442b5..b04f7e2657c 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C +++ b/gcc/testsuite/g++.old-deja/g++.other/ptrmem7.C @@ -20,9 +20,10 @@ struct A void A::foo () { int (A::*ptr1) (int) = &A::ns; - int (A::*ptr2) (int) = A::ns; // { dg-error "" } not ptr mem - int (A::*ptr3) (int) = &ns; // { dg-error "" } not ptr mem - int (A::*ptr4) (int) = ns; // { dg-error "" } not ptr mem + int (A::*ptr2) (int) = A::ns; // { dg-error "pointer to member" "err" } + // { dg-message "pointer to member" "note" { target *-*-* } 23 } + int (A::*ptr3) (int) = &ns; // { dg-error "pointer to member" "err" } + int (A::*ptr4) (int) = ns; // { dg-error "pointer to member" "err" } int (*ptr5) (short) = &A::ns; int (*ptr6) (short) = A::ns; @@ -30,12 +31,12 @@ void A::foo () int (*ptr8) (short) = ns; int (A::*ptr11) (int) = &A::single; - int (A::*ptr12) (int) = A::single; // { dg-error "" } not ptr mem - int (A::*ptr13) (int) = &single; // { dg-error "" } not ptr mem - int (A::*ptr14) (int) = single; // { dg-error "" } not ptr mem + int (A::*ptr12) (int) = A::single; // { dg-error "match" } + int (A::*ptr13) (int) = &single; // { dg-error "pointer to member" } + int (A::*ptr14) (int) = single; // { dg-error "match" } - int (A::*ptr20) (int) = &(A::ns); // { dg-error "" } not ptr mem - int (A::*ptr21) (int) = &(A::single); // { dg-error "" } not ptr mem + int (A::*ptr20) (int) = &(A::ns); // { dg-error "pointer to member" } + int (A::*ptr21) (int) = &(A::single); // { dg-error "pointer to member" } int (*ptr31) (short) = &A::sole; int (*ptr32) (short) = A::sole; diff --git a/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C b/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C index d86d8c1ea32..8ed6df78632 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C +++ b/gcc/testsuite/g++.old-deja/g++.other/vaarg3.C @@ -9,19 +9,22 @@ struct X {int m;}; struct Y : X {int m;}; -struct Z; // { dg-error "" } forward decl +struct Z; // { dg-error "forward decl" } void fn1(va_list args) { int i = va_arg (args, int); - Y x = va_arg (args, Y); // { dg-warning "" } cannot receive - Y y = va_arg (args, struct Y); // { dg-warning "" } cannot receive - int &r = va_arg (args, int &); // { dg-warning "" } cannot receive + Y x = va_arg (args, Y); // { dg-warning "cannot receive" } + Y y = va_arg (args, struct Y); // { dg-warning "cannot receive" } + int &r = va_arg (args, int &); // { dg-warning "cannot receive" } - Z z1 = va_arg (args, Z); // { dg-error "" } incomplete - const Z &z2 = va_arg (args, Z); // { dg-error "" } incomplete + Z z1 = va_arg (args, Z); // { dg-error "incomplete" } + const Z &z2 = va_arg (args, Z); // { dg-error "incomplete" } - va_arg (args, char); // { dg-error "" } promote - va_arg (args, int []); // { dg-error "" } promote - va_arg (args, int ()); // { dg-error "" } promote - va_arg (args, bool); // { dg-error "" } promote + va_arg (args, char); // { dg-warning "promote" } + // { dg-message "should pass" "pass" { target *-*-* } 23 } + // { dg-message "abort" "abort" { target *-*-* } 23 } + va_arg (args, int []); // { dg-error "array with unspecified bounds" } promote + va_arg (args, int ()); // { dg-warning "non-POD" } promote + va_arg (args, bool); // { dg-warning "promote" "promote" } + // { dg-message "abort" "abort" { target *-*-* } 28 } } diff --git a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C index 32eef6f301f..9e72ea266a1 100644 --- a/gcc/testsuite/g++.old-deja/g++.other/volatile1.C +++ b/gcc/testsuite/g++.old-deja/g++.other/volatile1.C @@ -3,7 +3,8 @@ // compiler. class f_class -{ }; // { dg-error "" } candidates +{ }; // { dg-message "candidates" "candidates" } +// { dg-message "note" "note" { target *-*-* } 6 } volatile f_class ret_v_f_class() @@ -15,6 +16,6 @@ ret_v_f_class() int main(void) { volatile f_class vf; - 0 ? ret_v_f_class() : vf; // { dg-error "" } can't copy volatile lvalue + 0 ? ret_v_f_class() : vf; // { dg-error "match" } can't copy volatile lvalue return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/assign1.C b/gcc/testsuite/g++.old-deja/g++.pt/assign1.C index 9f2a4bf065b..464b7c692d0 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/assign1.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/assign1.C @@ -10,5 +10,5 @@ struct S { // { dg-error "assignment" } void f() { S<const int> s; - s = s; // { dg-error "synthesized" } + s = s; // { dg-message "synthesized" } } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C b/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C index 51bd79ab975..37af9ca434e 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C @@ -9,9 +9,9 @@ template<typename X> struct auto_ptr { typedef X element_type; explicit auto_ptr(X* p =0) throw() : px(p) {} - auto_ptr(auto_ptr& r) throw() : px(r.release()) {} // { dg-error "" } candidate + auto_ptr(auto_ptr& r) throw() : px(r.release()) {} // { dg-message "note" } candidate template<typename Y> - auto_ptr(auto_ptr<Y>& r) throw() : px(r.release()) {}// { dg-error "" } candidate + auto_ptr(auto_ptr<Y>& r) throw() : px(r.release()) {}// { dg-message "note" } candidate auto_ptr& operator=(auto_ptr& r) throw() { reset(r.release()); @@ -30,7 +30,7 @@ template<typename X> struct auto_ptr { X* release() throw() { X* p=px; px=0; return p; } void reset(X* p=0) throw() { if (px != p) delete px, px = p; } - auto_ptr(auto_ptr_ref<X> r) throw() : px(r.py) {} // { dg-error "" } candidate + auto_ptr(auto_ptr_ref<X> r) throw() : px(r.py) {} // { dg-message "candidate" } template<typename Y> operator auto_ptr_ref<Y>() throw() { return auto_ptr_ref<Y>(release()); } @@ -51,5 +51,6 @@ int main() { auto_ptr<Derived> y(f()); x = y; g(f()); - h(f()); // { dg-error "" } no usable copy ctor + h(f()); // { dg-error "match" "match" } no usable copy ctor +// { dg-error "initializing" "init" { target *-*-* } 54 } } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/const2.C b/gcc/testsuite/g++.old-deja/g++.pt/const2.C index cb0e2c7a38d..2666b9bc1f7 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/const2.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/const2.C @@ -1,6 +1,6 @@ // { dg-do link } // This test should get a linker error for the reference to A<int>::i. -// { dg-error "i" "" { target *-*-* } 0 } +// { dg-message "i" "" { target *-*-* } 0 } template <class T> struct B { static const int i = 3; }; template <class T> struct A { static const int i = B<T>::i; }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash10.C b/gcc/testsuite/g++.old-deja/g++.pt/crash10.C index bd2efc673aa..a66450f4520 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash10.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash10.C @@ -3,9 +3,10 @@ template<int M, int N> class GCD { public: - enum { val = (N == 0) ? M : GCD<N, M % N>::val }; // { dg-error "" } division + enum { val = (N == 0) ? M : GCD<N, M % N>::val }; // { dg-warning "division" "division" } +// { dg-error "not a valid" "valid" { target *-*-* } 6 } }; int main() { - GCD< 1, 0 >::val; // { dg-error "" } instantiated + GCD< 1, 0 >::val; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash20.C b/gcc/testsuite/g++.old-deja/g++.pt/crash20.C index f910294e65c..0a3220921ce 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash20.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash20.C @@ -1,7 +1,8 @@ // { dg-do compile } template <class T = int> -struct A { // { dg-error "assignment" } +struct A { // { dg-error "assignment" "assignment" } +// { dg-message "instantiated" "inst" { target *-*-* } 4 } const T x; A() : x(0) { } A(T x) : x(x) { } }; @@ -10,7 +11,7 @@ template <class B> void func () { B y; - y = B(); // { dg-error "synthesized" } + y = B(); // { dg-message "synthesized" } } int main (void) { func< A<> >(); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash36.C b/gcc/testsuite/g++.old-deja/g++.pt/crash36.C index 13695f9c69b..9bf99d16280 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash36.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash36.C @@ -14,7 +14,7 @@ struct iterator { template <class Iterator> struct reverse_iterator : public -iterator<typename iterator_traits<Iterator>::iterator_category> { // { dg-error "" } no type iterator_category +iterator<typename iterator_traits<Iterator>::iterator_category> { // { dg-message "instantiated" } no type iterator_category protected: Iterator current; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash38.C b/gcc/testsuite/g++.old-deja/g++.pt/crash38.C index a2f1e288d3a..4fc658eb157 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash38.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash38.C @@ -3,8 +3,10 @@ template <class T> struct S { - typedef typename T::Y<T>::Z X; // { dg-error "" } No Y in A - X x; // { dg-error "" } No Y in A + typedef typename T::Y<T>::Z X; // { dg-error "non-template" "non-template" } No Y in A +// { dg-message "note" "note" { target *-*-* } 6 } +// { dg-error "does not declare" "not declare" { target *-*-* } 6 } + X x; // { dg-error "does not name a type" } No Y in A }; struct A { diff --git a/gcc/testsuite/g++.old-deja/g++.pt/derived3.C b/gcc/testsuite/g++.old-deja/g++.pt/derived3.C index 806e0f5c99c..2c560492325 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/derived3.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/derived3.C @@ -6,11 +6,11 @@ template<class T> class X { class Y : public T - { // { dg-error "base type .* fails to be" "" } + { // { dg-error "base type .* fails to be" } }; - Y y; // { dg-error "instantiated" "" } + Y y; // { dg-message "instantiated" } }; int main() { - X<int> x; // { dg-error "instantiated" "" } + X<int> x; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/error2.C b/gcc/testsuite/g++.old-deja/g++.pt/error2.C index 40f7a7cb67f..6cb67ddec6b 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/error2.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/error2.C @@ -4,12 +4,12 @@ template <class RT> class Test { public: - Test(const RT& c = RT()) {} // { dg-error "" } reference to void + Test(const RT& c = RT()) {} // { dg-error "reference to void" } }; void f () { - Test<void> c; // { dg-error "" } instantiated from here + Test<void> c; // { dg-message "instantiated" } } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit34.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit34.C index f90b4becb17..ea32cf6ea9e 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit34.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit34.C @@ -5,7 +5,7 @@ template <class T> void foo(T t); template <> -void foo(int) {}; // { dg-error "6:" } previously defined here. +void foo(int) {}; // { dg-error "6:previously declared here" } template <> -void foo<int>(int) {} // { dg-error "6:" } duplicate specialization. +void foo<int>(int) {} // { dg-error "6:redefinition" } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C index 387d2d1d08d..5724f6d7d02 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C @@ -12,14 +12,14 @@ template <class T> T S<T>::t; template void f(int); -template void f(int); // { dg-error "" } duplicate explicit instantiation +template void f(int); // { dg-error "duplicate explicit instantiation" } template int S<int>::t; -template int S<int>::t; // { dg-error "" } duplicate explicit instantiation +template int S<int>::t; // { dg-error "duplicate explicit instantiation" } template class S<double>; -template class S<double>; // { dg-error "" } duplicate explicit instantiation +template class S<double>; // { dg-error "duplicate explicit instantiation" } -extern template void f(double); // { dg-warning "" } extern not allowed -inline template class S<float>; // { dg-warning "" } inline not allowed +extern template void f(double); // { dg-error "extern" } extern not allowed +inline template class S<float>; // { dg-error "inline" } inline not allowed template <class T> struct S<T*> {}; @@ -40,4 +40,5 @@ template void f(long double); // OK - explicit instantiation after template <class T> void g(T); -template void g(int); // { dg-error "" } no definition of g. +template void g(int); // { dg-error "no definition available" "no def" } +// { dg-message "instantiated" "inst" { target *-*-* } 43 } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend23.C b/gcc/testsuite/g++.old-deja/g++.pt/friend23.C index baf1a931cba..93ce72e3025 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend23.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/friend23.C @@ -1,6 +1,6 @@ // { dg-do assemble } -template <class T = int> // { dg-error "note: original definition" } +template <class T = int> // { dg-message "note: original definition" } struct S { template <class U = int> diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C index d65f2d10dd4..015566f96a4 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem10.C @@ -15,13 +15,13 @@ struct A void baz (); }; -template <typename T> void foo (int (*)(T)); // { dg-error "" } candidate -template <typename T> void foo (int (A::*)(T)); // { dg-error "" } candidate +template <typename T> void foo (int (*)(T)); // { dg-message "candidate" } +template <typename T> void foo (int (A::*)(T)); // { dg-message "note" } candidate void A::baz () { - foo (&A::f); // { dg-error "" } ambiguous + foo (&A::f); // { dg-error "ambiguous" } foo (A::f); foo (&(A::f)); foo (f); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C b/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C index 7100988601f..4a580e17742 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C @@ -1,22 +1,22 @@ // { dg-do assemble } template <class T> -struct S1; // { dg-error "" } previous declaration +struct S1; // { dg-message "previous declaration" } template <class T, class U> -struct S1 {}; // { dg-error "" } used 1 template parameter +struct S1 {}; // { dg-error "redeclared" } used 1 template parameter -template <class T = int> // { dg-error "" } original def of default +template <class T = int> // { dg-message "original definition" } struct S2; template <class T = int> -struct S2; // { dg-error "" } redefinition of default +struct S2; // { dg-error "redefinition of default" } -template <class T> // { dg-error "" } template parameter +template <class T> // { dg-error "template parameter" } struct S3; template <int I> -struct S3; // { dg-error "" } redeclared here +struct S3; // { dg-error "redeclared here" } template <template <class T> class C> -struct S3; // { dg-error "" } redeclared here +struct S3; // { dg-error "redeclared here" } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec35.C b/gcc/testsuite/g++.old-deja/g++.pt/spec35.C index f39dd79ec30..a7e5ea252a9 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec35.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/spec35.C @@ -8,24 +8,24 @@ extern "C" int puts (char const *); -template <typename T> int Foo (T); // { dg-error "" } candidate -template <typename T> int Foo (T &); // { dg-error "" } candidate +template <typename T> int Foo (T); // { dg-message "candidate" } +template <typename T> int Foo (T &); // { dg-message "note" } candidate -template <typename T> int Qux (T); // { dg-error "" } candidate -template <typename T> int Qux (T const &); // { dg-error "" } candidate +template <typename T> int Qux (T); // { dg-message "candidate" } +template <typename T> int Qux (T const &); // { dg-message "note" } candidate -template <typename T> int Bar (T const *const &); // { dg-error "" } candidate -template <typename T> int Bar (T *const &); // { dg-error "" } candidate -template <typename T> int Bar (T *); // { dg-error "" } candidate +template <typename T> int Bar (T const *const &); // { dg-message "candidate" } +template <typename T> int Bar (T *const &); // { dg-message "note" } candidate +template <typename T> int Bar (T *); // { dg-message "note" } candidate -template <typename T> int Baz (T *const &); // { dg-error "" } candidate -template <typename T> int Baz (T *); // { dg-error "" } candidate +template <typename T> int Baz (T *const &); // { dg-message "candidate" } +template <typename T> int Baz (T *); // { dg-message "note" } candidate int Baz (int const *ptr, int *ptr2) { - Baz (ptr2); // { dg-error "" } ambiguous - Bar (ptr2); // { dg-error "" } ambiguous - Foo (ptr2); // { dg-error "" } ambiguous - Qux (ptr2); // { dg-error "" } ambiguous + Baz (ptr2); // { dg-error "ambiguous" } + Bar (ptr2); // { dg-error "ambiguous" } + Foo (ptr2); // { dg-error "ambiguous" } + Qux (ptr2); // { dg-error "ambiguous" } return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t05.C b/gcc/testsuite/g++.old-deja/g++.pt/t05.C index 9e69cbcc8de..38488d2c0ac 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/t05.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/t05.C @@ -1,9 +1,9 @@ // { dg-do assemble } -template <class A> class B { // { dg-error "" } candidates +template <class A> class B { // { dg-message "note" } A a; public: - B(A&aa); // { dg-error "" } near match + B(A&aa); // { dg-message "candidates" } ~B(); }; -static B<int> b_int (3); // { dg-error "" } no matching function +static B<int> b_int (3); // { dg-error "no matching function" } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename3.C b/gcc/testsuite/g++.old-deja/g++.pt/typename3.C index 931b212b8b7..9b412756b42 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename3.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/typename3.C @@ -11,10 +11,11 @@ struct A template <class U> struct B : public A<U> { - A_Type Func(); // { dg-warning "" } implicit typename + A_Type Func(); // { dg-error "does not name a type" "err" } implicit typename + // { dg-message "note" "note" { target *-*-* } 14 } }; template <class U> -B<U>::A_Type B<U>::Func() { // { dg-warning "" } implicit typename +B<U>::A_Type B<U>::Func() { // { dg-error "expected" } implicit typename } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C b/gcc/testsuite/g++.old-deja/g++.pt/typename6.C index 34e356b57ea..27944795ae2 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/typename6.C @@ -10,10 +10,11 @@ struct A template <class U> struct B : public A<U> { - A_Type Func(); // { dg-error "" } declaration + A_Type Func(); // { dg-error "does not name a type" "err" } + // { dg-message "note" "note" { target *-*-* } 13 } }; template <class U> -A<U>::A_Type B<U>::Func() // { dg-error "" } function +A<U>::A_Type B<U>::Func() // { dg-error "expected" } function { } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify8.C b/gcc/testsuite/g++.old-deja/g++.pt/unify8.C index cc89c69bcaa..92cd191deb0 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/unify8.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/unify8.C @@ -10,11 +10,11 @@ template <typename T> void Foo (T const **); template <typename T> void Bar (T const * const *); -void Foo (int); // { dg-error "" } candidate -void Foo (float); // { dg-error "" } candidate +void Foo (int); // { dg-message "candidate" } +void Foo (float); // { dg-message "note" } candidate void baz (int **p1) { - Foo (p1); // { dg-error "" } no such function + Foo (p1); // { dg-error "match" } no such function Bar (p1); // OK } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C b/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C index a542b447e6e..dced89d17ab 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/vaarg3.C @@ -14,13 +14,14 @@ void PrintArgs (Type somearg, ...) va_list argp; va_start (argp, somearg); Type value; -value = va_arg (argp, Type); // { dg-error "" } cannot pass non-POD +value = va_arg (argp, Type); // { dg-warning "non-POD" } cannot pass non-POD va_end (argp); } int main (void) { A dummy; -PrintArgs (dummy, dummy); // { dg-error "" } cannot pass non-POD +PrintArgs (dummy, dummy); // { dg-warning "non-POD" } cannot pass non-POD +// { dg-message "instantiated" "inst" { target *-*-* } 24 } return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C index e72ebc47a22..5a70e194439 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C @@ -20,7 +20,7 @@ inline istream& operator>>(istream& is, Empty& ) { return is;} template<class VertexType, class EdgeType> class Graph -{ // { dg-error "" } candidates +{ // { dg-message "note" } candidates public: // public type interface typedef std::map<int, EdgeType > Successor; @@ -42,18 +42,18 @@ template<class VertexType, class EdgeType> ostream& operator<<(ostream& os, Graph<VertexType,EdgeType>& G) { // display of vertices with successors - for(int i = 0; i < G.size(); ++i) // { dg-error "" } no size function + for(int i = 0; i < G.size(); ++i) // { dg-error "no member" } no size function { - os << G[i].first << " <"; // { dg-error "" } no index operator + os << G[i].first << " <"; // { dg-error "no match" } no index operator // The compiler does not like this line!!!!!! typename Graph<VertexType, EdgeType>::Successor::iterator - startN = G[i].second.begin(), // { dg-error "" } no index operator - endN = G[i].second.end(); // { dg-error "" } no index operator + startN = G[i].second.begin(), // { dg-error "no match" } no index operator + endN = G[i].second.end(); // { dg-error "no match" } no index operator while(startN != endN) { - os << G[(*startN).first].first << ' ' // { dg-error "" } no index operator + os << G[(*startN).first].first << ' ' // { dg-error "no match" } no index operator << (*startN).second << ' '; ++startN; } @@ -65,7 +65,7 @@ ostream& operator<<(ostream& os, Graph<VertexType,EdgeType>& G) int main() { // no edge weighting, therefore type Empty: - Graph<std::string, Empty> V(true); // { dg-error "" } no bool constructor + Graph<std::string, Empty> V(true); // { dg-error "no match" } no bool constructor // ReadGraph(V, "gra1.dat"); // display of vertices with successors diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C index 75aab60a8dd..75341d4148a 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C @@ -10,11 +10,11 @@ struct a { void bar( double ); void bar( float ); - void foo( void (a::*member)(float) ); // { dg-error "" } candidate + void foo( void (a::*member)(float) ); // { dg-message "candidate" } }; a::a() { - foo( &junk ); // { dg-error "" } junk is an unqualified-id. - foo( &bar ); // { dg-error "" } bar is an unqualified-id. + foo( &junk ); // { dg-error "match" } junk is an unqualified-id. + foo( &bar ); // { dg-error "match" } bar is an unqualified-id. } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C index b969d686624..28953b05b4e 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C @@ -11,17 +11,18 @@ public: operator int() const {return 2;} }; -bool operator==(const MyInt& a, const int& b) // { dg-error "" } candidate +bool operator==(const MyInt& a, const int& b) // { dg-message "note" } candidate { return (int)a == b; } -bool operator==(const MyInt& a, const MyInt& b) // { dg-error "" } candidate +bool operator==(const MyInt& a, const MyInt& b) // { dg-message "note" } candidate { return (int)a == (int)b; } bool f() { - return 3 == MyInt(); // { dg-error "" } ambiguous + return 3 == MyInt(); // { dg-error "ambiguous" "err" } + // { dg-message "candidates" "note" { target *-*-* } 26 } } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C index f47d3dbf7a0..5f82e1fc926 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C @@ -7,7 +7,7 @@ class some_base { public: class base_func_args; - virtual void func(base_func_args &) = 0; // { dg-error "" } referenced below + virtual void func(base_func_args &) = 0; // { dg-message "note" } referenced below }; class some_base::base_func_args @@ -17,7 +17,7 @@ public: }; class some_derived : public some_base - { // { dg-error "" } note + { // { dg-message "note" } public: class derived_func_args; void func(derived_func_args &); @@ -30,7 +30,8 @@ public: float f; }; -class some_derived::func(derived_func_args &a) // { dg-error "" } illegal member syntax +class some_derived::func(derived_func_args &a) // { dg-error "does not name a type" "type" } illegal member syntax +// { dg-error "expected" "exp" { target *-*-* } 33 } { std::cout << a.i << ' ' << a.f << std::endl; } @@ -38,12 +39,12 @@ class some_derived::func(derived_func_args &a) // { dg-error "" } illegal membe int main() { - some_derived d; // { dg-error "" } abstract class - some_derived::derived_func_args dfa; // { dg-error "" } incomplete class + some_derived d; // { dg-error "abstract type" } + some_derived::derived_func_args dfa; // { dg-error "incomplete type" } some_base *b = &d; dfa.i = 10; dfa.f = 20; - b->func(dfs); // { dg-error "" } dfs not declared + b->func(dfs); // { dg-error "'dfs' was not declared" } return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C index 314ec9d2426..a7e61804cb1 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C @@ -14,7 +14,8 @@ using namespace std; template <class T> class Vector { - friend ostream& operator<< (ostream& out, const Vector<T> & vec); // { dg-warning "" } + friend ostream& operator<< (ostream& out, const Vector<T> & vec); // { dg-warning "non-template" "warn" } + // { dg-message "note" "note" { target *-*-* } 17 } }; template <class T> diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C index 5d3f7e6bbf1..74051a148ad 100644 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C +++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C @@ -5,13 +5,14 @@ int r = 0; -struct foo { // { dg-error "" } candidate - foo(int x) { r = 1; } // { dg-error "" } candidate +struct foo { // { dg-message "note" } candidate + foo(int x) { r = 1; } // { dg-message "candidate" } }; struct bar : foo { typedef int an_int; - bar() : bar::an_int(3) {} // { dg-error "" } not a base + bar() : bar::an_int(3) {} // { dg-error "match" "match" } not a base + // { dg-message "expected" "exp" { target *-*-* } 14 } }; int diff --git a/gcc/testsuite/gcc.c-torture/compile/pr11832.c b/gcc/testsuite/gcc.c-torture/compile/pr11832.c index 2d6e5ba7012..3be76363299 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr11832.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr11832.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ -/* Currently ICEs for IA64, HPPA, MIPS, CRIS and PowerPC; see PR33642. */ -/* { dg-xfail-if "PR33642" { hppa*-*-* mips*-*-* powerpc*-*-linux* cris-*-* crisv32-*-* ia64-*-* } { "*" } { "" } } */ +/* Currently ICEs for IA64, HPPA, MIPS, CRIS, Xtensa and PowerPC; see PR33642. */ +/* { dg-xfail-if "PR33642" { hppa*-*-* mips*-*-* powerpc*-*-linux* cris-*-* crisv32-*-* ia64-*-* xtensa*-*-* } { "*" } { "" } } */ /* Currently ICEs for (x86 && ilp32 && pic). */ /* { dg-xfail-if "PR33642/36240" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } */ /* { dg-prune-output ".*internal compiler error.*" } diff --git a/gcc/testsuite/gcc.c-torture/compile/pr33009.c b/gcc/testsuite/gcc.c-torture/compile/pr33009.c index a9856b3fbd1..a897c36bdd7 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr33009.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr33009.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ -/* Currently ICEs for IA64, HPPA, MIPS, CRIS and PowerPC; see PR33642. */ -/* { dg-xfail-if "PR33642" { hppa*-*-* mips*-*-* powerpc*-*-linux* cris-*-* crisv32-*-* ia64-*-* } { "*" } { "" } } */ +/* Currently ICEs for IA64, HPPA, MIPS, CRIS, Xtensa and PowerPC; see PR33642. */ +/* { dg-xfail-if "PR33642" { hppa*-*-* mips*-*-* powerpc*-*-linux* cris-*-* crisv32-*-* ia64-*-* xtensa*-*-* } { "*" } { "" } } */ /* Currently ICEs for (x86 && ilp32 && pic). */ /* { dg-xfail-if "PR33642/36240" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } */ /* { dg-prune-output ".*internal compiler error.*" } diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37258.c b/gcc/testsuite/gcc.c-torture/compile/pr37258.c new file mode 100644 index 00000000000..5091d980bfd --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr37258.c @@ -0,0 +1,58 @@ +typedef signed char int8_t; +typedef short int int16_t; +typedef int int32_t; +__extension__ typedef long long int int64_t; +typedef unsigned short int uint16_t; +typedef unsigned int uint32_t; +static inline unsigned int +lshift_u_s (unsigned int left, int right) +{ + if ((right) || (right >= sizeof (unsigned int) * 8) + || (left > (4294967295U >> right))) + return left; +} +static inline unsigned long int +div_rhs (long int rhs) +{ + if (rhs == 0) + return 1; + return rhs; +} + +uint32_t g_230; +int8_t g_294; +uint16_t g_316; +uint32_t g_334; +int32_t g_375; +int64_t g_380; +int32_t func_99 (int16_t p_100, int32_t p_101, int32_t p_102, int32_t p_103, + int64_t p_105, int32_t p_106, int32_t p_107, int16_t p_108, + int16_t p_109); +int32_t +func_77 (int64_t p_79) +{ + int16_t l_397; + if (mod_rhs (p_79)) + p_79 = 1; + else + for (p_79 = 0; 0; p_79 += 1) + { + } + if (lshift_s_s (1, func_112 (2L, (lshift_u_s (g_334, p_79))))) + { + int8_t l_384; + int64_t l_414; + if (lshift_u_s (g_375, 1)) + { + func_23 (func_99 (1, 1, 1, 1, g_230, p_79, 1, g_334, 1), 1); + for (p_79 = 0; 0; ++p_79) + { + } + } + if (div_rhs (func_82 (1, 1, g_380, 1, l_397, 1, 1))) + func_99 ((func_82 + (1, g_334, g_294, func_112 (1, (p_79 & 1)), g_316, 1, 1)), + 1, (0xFBA25CA382A8CA74LL), l_384, l_414, 0L, 1, 1, 1); + } +} + diff --git a/gcc/testsuite/gcc.c-torture/execute/20060420-1.c b/gcc/testsuite/gcc.c-torture/execute/20060420-1.c index fe62f6bf0ee..53393d17093 100644 --- a/gcc/testsuite/gcc.c-torture/execute/20060420-1.c +++ b/gcc/testsuite/gcc.c-torture/execute/20060420-1.c @@ -50,9 +50,11 @@ main (void) { int i; float *dst, *src[2]; + char *cptr; - dst = buffer; - dst += (-(long int) buffer & (16 * sizeof (float) - 1)) / sizeof (float); + cptr = (char *)buffer; + cptr += (-(long int) buffer & (16 * sizeof (float) - 1)); + dst = (float *)cptr; src[0] = dst + 16; src[1] = dst + 32; for (i = 0; i < 16; ++i) diff --git a/gcc/testsuite/gcc.c-torture/execute/pr37102.c b/gcc/testsuite/gcc.c-torture/execute/pr37102.c new file mode 100644 index 00000000000..32c18ba88a1 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr37102.c @@ -0,0 +1,25 @@ +extern void abort (void); + +unsigned int a, b = 1, c; + +void __attribute__ ((noinline)) +foo (int x) +{ + if (x != 5) + abort (); +} + +int +main () +{ + unsigned int d, e; + for (d = 1; d < 5; d++) + if (c) + a = b; + a = b; + e = a << 1; + if (e) + e = (e << 1) ^ 1; + foo (e); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/builtin-redefine.c b/gcc/testsuite/gcc.dg/builtin-redefine.c new file mode 100644 index 00000000000..f94d3f3d83d --- /dev/null +++ b/gcc/testsuite/gcc.dg/builtin-redefine.c @@ -0,0 +1,79 @@ +/* Test -Wno-builtin-macro-redefined warnings. */ + +/* { dg-do compile } */ +/* { dg-options "-Wno-builtin-macro-redefined -U__DATE__ -D__TIME__=X" } */ + +/* Check date, time, and datestamp built-ins warnings may be suppressed. */ + +#if defined(__DATE__) +#error "__DATE__ is defined, but should not be (-U command line error)" +/* { dg-bogus "__DATE__ is defined" "" { target *-*-* } 9 } */ +#endif + +#if __TIME__ != X +#error "__TIME__ is not defined as expected (-D command line error)" +/* { dg-bogus "__TIME__ is not defined" "" { target *-*-* } 14 } */ +#endif + +#if !defined(__TIMESTAMP__) +#error "__TIMESTAMP__ is not defined (built-in macro expectation error)" +/* { dg-bogus "__TIMESTAMP__ is not defined" "" { target *-*-* } 19 } */ +#endif + + +#undef __TIME__ /* Undefine while defined. */ +#undef __TIME__ /* Undefine while already undefined. */ + +#define __TIME__ "X" /* Define while undefined. */ +#define __TIME__ "X" /* Re-define while defined. */ + +#define __TIME__ "Y" /* { dg-warning "\"__TIME__\" redefined" } */ +/* { dg-warning "previous definition" "" { target *-*-* } 28 } */ + +#undef __TIME__ /* Undefine while defined. */ + + +#undef __DATE__ /* Undefine while already undefined. */ + +#define __DATE__ "X" /* Define while undefined. */ +#define __DATE__ "X" /* Re-define while defined. */ + +#define __DATE__ "Y" /* { dg-warning "\"__DATE__\" redefined" } */ +/* { dg-warning "previous definition" "" { target *-*-* } 39 } */ + +#undef __DATE__ /* Undefine while defined. */ + + +#define __TIMESTAMP__ "X" /* Define while already defined. */ +#define __TIMESTAMP__ "X" /* Re-define while defined. */ + +#define __TIMESTAMP__ "Y" /* { dg-warning "\"__TIMESTAMP__\" redefined" } */ +/* { dg-warning "previous definition" "" { target *-*-* } 48 } */ + +#undef __TIMESTAMP__ /* Undefine while defined. */ + + +/* Check other built-ins with warnings that may be suppressed. */ + +#if !defined(__FILE__) || !defined(__BASE_FILE__) +#error "Expected built-in is not defined (built-in macro expectation error)" +/* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } 59 } */ +#endif + +#define __FILE__ "X" /* Define while already defined. */ +#define __BASE_FILE__ "X" /* Define while already defined. */ + + +/* Check selected built-ins not affected by warning suppression. */ + +#if !defined(__LINE__) || !defined(__INCLUDE_LEVEL__) || !defined(__COUNTER__) +#error "Expected built-in is not defined (built-in macro expectation error)" +/* { dg-bogus "Expected built-in is not defined" "" { target *-*-* } 70 } */ +#endif + +#define __LINE__ 0 /* { dg-warning "\"__LINE__\" redef" } */ +#define __INCLUDE_LEVEL__ 0 /* { dg-warning "\"__INCLUDE_LEVEL__\" redef" } */ +#define __COUNTER__ 0 /* { dg-warning "\"__COUNTER__\" redef" } */ + + +int unused; /* Silence `ISO C forbids an empty translation unit' warning. */ diff --git a/gcc/testsuite/gcc.dg/pr37544.c b/gcc/testsuite/gcc.dg/pr37544.c new file mode 100644 index 00000000000..6393d2f89d8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr37544.c @@ -0,0 +1,39 @@ +/* { dg-do run } */ +/* { dg-options "-O2" } */ +/* { dg-options "-O2 -msse2 -mtune=core2 -mfpmath=387" { target { i?86-*-* x86_64-*-* } } } */ + +#ifdef __i386__ +#include "cpuid.h" +#endif + +extern void abort (void); + +int main(void) +{ + double arr[1000]; + double a, b; + + int i; + +#ifdef __i386__ + unsigned int eax, ebx, ecx, edx; + + if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx)) + return 0; + + /* Run SSE2 test only if host has SSE2 support. */ + if (!(edx & bit_SSE2)) + return 0; +#endif + + for (i = 0; i < 1000; i++) + arr[i] = 4294967296.0 + (double)i; + + a = arr[0]; + b = (unsigned int)((unsigned long long int)a % 4294967296ULL); + + if (b >= 4294967296.0) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/utf-array.c b/gcc/testsuite/gcc.dg/utf-array.c index 50a29fe9375..2db8e51012b 100644 --- a/gcc/testsuite/gcc.dg/utf-array.c +++ b/gcc/testsuite/gcc.dg/utf-array.c @@ -5,8 +5,8 @@ #include <wchar.h> -typedef short unsigned int char16_t; -typedef unsigned int char32_t; +typedef __CHAR16_TYPE__ char16_t; +typedef __CHAR32_TYPE__ char32_t; const char s_0[] = "ab"; const char s_1[] = u"ab"; /* { dg-error "from wide string" } */ @@ -16,7 +16,7 @@ const char s_3[] = L"ab"; /* { dg-error "from wide string" } */ const char16_t s16_0[] = "ab"; /* { dg-error "from non-wide" } */ const char16_t s16_1[] = u"ab"; const char16_t s16_2[] = U"ab"; /* { dg-error "from incompatible" } */ -const char16_t s16_3[] = L"ab"; /* { dg-error "from incompatible" } */ +const char16_t s16_3[] = L"ab"; /* { dg-error "from incompatible" { target !wchar_t_char16_t_compatible } } */ const char16_t s16_4[0] = u"ab"; /* { dg-warning "chars is too long" } */ const char16_t s16_5[1] = u"ab"; /* { dg-warning "chars is too long" } */ @@ -27,7 +27,7 @@ const char16_t s16_8[4] = u"ab"; const char32_t s32_0[] = "ab"; /* { dg-error "from non-wide" } */ const char32_t s32_1[] = u"ab"; /* { dg-error "from incompatible" } */ const char32_t s32_2[] = U"ab"; -const char32_t s32_3[] = L"ab"; /* { dg-error "from incompatible" } */ +const char32_t s32_3[] = L"ab"; /* { dg-error "from incompatible" { target !wchar_t_char32_t_compatible } } */ const char32_t s32_4[0] = U"ab"; /* { dg-warning "chars is too long" } */ const char32_t s32_5[1] = U"ab"; /* { dg-warning "chars is too long" } */ @@ -36,6 +36,6 @@ const char32_t s32_7[3] = U"ab"; const char32_t s32_8[4] = U"ab"; const wchar_t sw_0[] = "ab"; /* { dg-error "from non-wide" } */ -const wchar_t sw_1[] = u"ab"; /* { dg-error "from incompatible" } */ -const wchar_t sw_2[] = U"ab"; /* { dg-error "from incompatible" } */ +const wchar_t sw_1[] = u"ab"; /* { dg-error "from incompatible" { target !wchar_t_char16_t_compatible } } */ +const wchar_t sw_2[] = U"ab"; /* { dg-error "from incompatible" { target !wchar_t_char32_t_compatible } } */ const wchar_t sw_3[] = L"ab"; diff --git a/gcc/testsuite/gfortran.dg/access_spec_3.f90 b/gcc/testsuite/gfortran.dg/access_spec_3.f90 new file mode 100644 index 00000000000..9a076b66c54 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/access_spec_3.f90 @@ -0,0 +1,34 @@ +! { dg-do compile } +! +! Tests the fix for PR36454, where the PUBLIC declaration for +! aint and bint was rejected because the access was already set. +! +! Contributed by Thomas Orgis <thomas.orgis@awi.de> + +module base + integer :: baseint +end module + +module a + use base, ONLY: aint => baseint +end module + +module b + use base, ONLY: bint => baseint +end module + +module c + use a + use b + private + public :: aint, bint +end module + +program user + use c, ONLY: aint, bint + + aint = 3 + bint = 8 + write(*,*) aint +end program +! { dg-final { cleanup-modules "base a b c" } } diff --git a/gcc/testsuite/gfortran.dg/allocate_error_1.f90 b/gcc/testsuite/gfortran.dg/allocate_error_1.f90 new file mode 100644 index 00000000000..42a12159e28 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/allocate_error_1.f90 @@ -0,0 +1,14 @@ +! { dg-do run } +! { dg-shouldfail "runtime error" } +! { dg-output "At line 13.*Attempting to allocate .* 'arr'" } + +! PR fortran/37507 +! Check that locus is printed for ALLOCATE errors. + +PROGRAM main + IMPLICIT NONE + INTEGER, ALLOCATABLE :: arr(:) + + ALLOCATE (arr(5)) + ALLOCATE (arr(6)) +END PROGRAM main diff --git a/gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90 b/gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90 new file mode 100644 index 00000000000..4597b3c8630 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/ambiguous_specific_2.f90 @@ -0,0 +1,42 @@ +! { dg-do compile } +! Checks the fix for PR33542 does not throw an error if there is no +! ambiguity in the specific interfaces of foo. +! +! Contributed by Tobias Burnus <burnus@gcc.gnu.org> +! +MODULE M1 + INTERFACE FOO + MODULE PROCEDURE FOO + END INTERFACE +CONTAINS + SUBROUTINE FOO(I) + INTEGER, INTENT(IN) :: I + WRITE(*,*) 'INTEGER' + END SUBROUTINE FOO +END MODULE M1 + +MODULE M2 + INTERFACE FOO + MODULE PROCEDURE FOOFOO + END INTERFACE +CONTAINS + SUBROUTINE FOOFOO(R) + REAL, INTENT(IN) :: R + WRITE(*,*) 'REAL' + END SUBROUTINE FOOFOO +END MODULE M2 + +PROGRAM P + USE M1 + USE M2 + implicit none + external bar + CALL FOO(10) + CALL FOO(10.) + call bar (foo) +END PROGRAM P + +SUBROUTINE bar (arg) + EXTERNAL arg +END SUBROUTINE bar +! { dg-final { cleanup-modules "m1 m2" } } diff --git a/gcc/testsuite/gfortran.dg/deallocate_error_1.f90 b/gcc/testsuite/gfortran.dg/deallocate_error_1.f90 new file mode 100644 index 00000000000..98ffdb3b91a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/deallocate_error_1.f90 @@ -0,0 +1,15 @@ +! { dg-do run } +! { dg-shouldfail "runtime error" } +! { dg-output "At line 14.*Attempt to DEALLOCATE unallocated 'arr'" } + +! PR fortran/37507 +! Check that locus is printed for DEALLOCATE errors. + +PROGRAM main + IMPLICIT NONE + INTEGER, ALLOCATABLE :: arr(:) + + ALLOCATE (arr(5)) + DEALLOCATE (arr) + DEALLOCATE (arr) +END PROGRAM main diff --git a/gcc/testsuite/gfortran.dg/deallocate_error_2.f90 b/gcc/testsuite/gfortran.dg/deallocate_error_2.f90 new file mode 100644 index 00000000000..bda1adff514 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/deallocate_error_2.f90 @@ -0,0 +1,16 @@ +! { dg-do run } +! { dg-shouldfail "runtime error" } +! { dg-output "At line 15.*Attempt to DEALLOCATE unallocated 'ptr'" } + +! PR fortran/37507 +! Check that locus is printed for DEALLOCATE errors. + +PROGRAM main + IMPLICIT NONE + INTEGER, POINTER :: ptr + INTEGER, ALLOCATABLE :: arr(:) + + ALLOCATE (ptr, arr(5)) + DEALLOCATE (ptr) + DEALLOCATE (arr, ptr) +END PROGRAM main diff --git a/gcc/testsuite/gfortran.dg/generic_17.f90 b/gcc/testsuite/gfortran.dg/generic_17.f90 new file mode 100644 index 00000000000..968d9c10c37 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/generic_17.f90 @@ -0,0 +1,40 @@ +! { dg-do compile } +! Test the patch for PR36374 in which the different +! symbols for 'foobar' would be incorrectly flagged as +! ambiguous in foo_mod. +! +! Contributed by Salvatore Filippone <sfilippone@uniroma2.it> +! +module s_foo_mod
+ type s_foo_type
+ real(kind(1.e0)) :: v
+ end type s_foo_type
+ interface foobar
+ subroutine s_foobar(x)
+ import
+ type(s_foo_type), intent (inout) :: x
+ end subroutine s_foobar
+ end interface
+end module s_foo_mod
+
+module d_foo_mod
+ type d_foo_type
+ real(kind(1.d0)) :: v
+ end type d_foo_type
+ interface foobar
+ subroutine d_foobar(x)
+ import
+ type(d_foo_type), intent (inout) :: x
+ end subroutine d_foobar
+ end interface
+end module d_foo_mod
+
+module foo_mod
+ use s_foo_mod
+ use d_foo_mod
+end module foo_mod
+
+subroutine s_foobar(x)
+ use foo_mod
+end subroutine s_foobar
+! { dg-final { cleanup-modules "s_foo_mod d_foo_mod foo_mod" } } diff --git a/gcc/testsuite/gfortran.dg/generic_actual_arg.f90 b/gcc/testsuite/gfortran.dg/generic_actual_arg.f90 index 978f64d0951..9cf0d8eb004 100644 --- a/gcc/testsuite/gfortran.dg/generic_actual_arg.f90 +++ b/gcc/testsuite/gfortran.dg/generic_actual_arg.f90 @@ -2,11 +2,14 @@ ! Tests fix for PR20886 in which the passing of a generic procedure as ! an actual argument was not detected. ! +! The second module and the check that CALCULATION2 is a good actual +! argument was added following the fix for PR26374. +! ! Contributed by Joost VandeVondele <jv244@cam.ac.uk> ! MODULE TEST INTERFACE CALCULATION - MODULE PROCEDURE C1,C2 + MODULE PROCEDURE C1, C2 END INTERFACE CONTAINS SUBROUTINE C1(r) @@ -16,11 +19,27 @@ SUBROUTINE C2(r) REAL :: r END SUBROUTINE END MODULE TEST + +MODULE TEST2 +INTERFACE CALCULATION2 + MODULE PROCEDURE CALCULATION2, C3 +END INTERFACE +CONTAINS +SUBROUTINE CALCULATION2(r) + INTEGER :: r +END SUBROUTINE +SUBROUTINE C3(r) + REAL :: r +END SUBROUTINE +END MODULE TEST2 USE TEST -CALL F(CALCULATION) ! { dg-error "GENERIC procedure" } +USE TEST2 +CALL F(CALCULATION) ! { dg-error "GENERIC procedure" } + +CALL F(CALCULATION2) ! OK because there is a same name specific END SUBROUTINE F() END SUBROUTINE -! { dg-final { cleanup-modules "TEST" } } +! { dg-final { cleanup-modules "TEST TEST2" } } diff --git a/gcc/testsuite/gfortran.dg/host_assoc_call_2.f90 b/gcc/testsuite/gfortran.dg/host_assoc_call_2.f90 new file mode 100644 index 00000000000..a74f37343bb --- /dev/null +++ b/gcc/testsuite/gfortran.dg/host_assoc_call_2.f90 @@ -0,0 +1,18 @@ +! { dg-do compile } +! Tests the fix for PR36700, in which the call to the function would +! cause an ICE. +! +! Contributed by <terry@chem.gu.se> +! +module Diatoms + implicit none +contains + function InitialDiatomicX () result(v4) ! { dg-error "has a type" } + real(kind = 8), dimension(4) :: v4 + v4 = 1 + end function InitialDiatomicX + subroutine FindDiatomicPeriod + call InitialDiatomicX () ! { dg-error "which is not consistent with the CALL" } + end subroutine FindDiatomicPeriod +end module Diatoms +! { dg-final { cleanup-modules "Diatoms" } } diff --git a/gcc/testsuite/gfortran.dg/host_assoc_types_2.f90 b/gcc/testsuite/gfortran.dg/host_assoc_types_2.f90 new file mode 100644 index 00000000000..824a4959217 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/host_assoc_types_2.f90 @@ -0,0 +1,69 @@ +! { dg-do compile } +! Tests the fix for PR33945, the host association of overloaded_type_s +! would be incorrectly blocked by the use associated overloaded_type. +! +! Contributed by Jonathan Hogg <J.Hogg@rl.ac.uk> +! +module dtype
+ implicit none
+
+ type overloaded_type
+ double precision :: part
+ end type
+
+ interface overloaded_sub
+ module procedure overloaded_sub_d
+ end interface
+
+contains
+ subroutine overloaded_sub_d(otype)
+ type(overloaded_type), intent(in) :: otype
+
+ print *, "d type = ", otype%part
+ end subroutine
+end module
+
+module stype
+ implicit none
+
+ type overloaded_type
+ real :: part
+ end type
+
+ interface overloaded_sub
+ module procedure overloaded_sub_s
+ end interface
+
+contains
+ subroutine overloaded_sub_s(otype)
+ type(overloaded_type), intent(in) :: otype
+
+ print *, "s type = ", otype%part
+ end subroutine
+end module
+
+program test
+ use stype, overloaded_type_s => overloaded_type
+ use dtype, overloaded_type_d => overloaded_type
+ implicit none
+
+ type(overloaded_type_s) :: sval
+ type(overloaded_type_d) :: dval
+
+ sval%part = 1
+ dval%part = 2
+
+ call fred(sval, dval)
+
+contains
+ subroutine fred(sval, dval)
+ use stype
+
+ type(overloaded_type_s), intent(in) :: sval ! This caused an error
+ type(overloaded_type_d), intent(in) :: dval
+
+ call overloaded_sub(sval)
+ call overloaded_sub(dval)
+ end subroutine
+end program
+! { dg-final { cleanup-modules "stype dtype" } }
diff --git a/gcc/testsuite/gfortran.dg/used_types_22.f90 b/gcc/testsuite/gfortran.dg/used_types_22.f90 new file mode 100644 index 00000000000..2a5ae451a3d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/used_types_22.f90 @@ -0,0 +1,294 @@ +! { dg-do compile } +! Tests the fix for PR37274 a regression in which the derived type, +! 'vector' of the function results contained in 'class_motion' is +! private and is incorrectly detected to be ambiguous in 'smooth_mesh'. +! +! Contributed by Salvatore Filippone <sfilippone@uniroma2.it> +! +module class_vector
+
+ implicit none
+
+ private ! Default
+ public :: vector
+ public :: vector_
+
+ type vector
+ private
+ real(kind(1.d0)) :: x
+ real(kind(1.d0)) :: y
+ real(kind(1.d0)) :: z
+ end type vector
+
+contains
+ ! ----- Constructors -----
+
+ ! Public default constructor
+ elemental function vector_(x,y,z)
+ type(vector) :: vector_
+ real(kind(1.d0)), intent(in) :: x, y, z
+
+ vector_ = vector(x,y,z)
+
+ end function vector_
+
+end module class_vector
+
+module class_dimensions
+
+ implicit none
+
+ private ! Default
+ public :: dimensions
+
+ type dimensions
+ private
+ integer :: l
+ integer :: m
+ integer :: t
+ integer :: theta
+ end type dimensions
+
+
+end module class_dimensions
+
+module tools_math
+
+ implicit none
+
+
+ interface lin_interp
+ function lin_interp_s(f1,f2,fac)
+ real(kind(1.d0)) :: lin_interp_s
+ real(kind(1.d0)), intent(in) :: f1, f2
+ real(kind(1.d0)), intent(in) :: fac
+ end function lin_interp_s
+
+ function lin_interp_v(f1,f2,fac)
+ use class_vector
+ type(vector) :: lin_interp_v
+ type(vector), intent(in) :: f1, f2
+ real(kind(1.d0)), intent(in) :: fac
+ end function lin_interp_v
+ end interface
+
+
+ interface pwl_deriv
+ subroutine pwl_deriv_x_s(dydx,x,y_data,x_data)
+ real(kind(1.d0)), intent(out) :: dydx
+ real(kind(1.d0)), intent(in) :: x
+ real(kind(1.d0)), intent(in) :: y_data(:)
+ real(kind(1.d0)), intent(in) :: x_data(:)
+ end subroutine pwl_deriv_x_s
+
+ subroutine pwl_deriv_x_v(dydx,x,y_data,x_data)
+ real(kind(1.d0)), intent(out) :: dydx(:)
+ real(kind(1.d0)), intent(in) :: x
+ real(kind(1.d0)), intent(in) :: y_data(:,:)
+ real(kind(1.d0)), intent(in) :: x_data(:)
+ end subroutine pwl_deriv_x_v
+
+ subroutine pwl_deriv_x_vec(dydx,x,y_data,x_data)
+ use class_vector
+ type(vector), intent(out) :: dydx
+ real(kind(1.d0)), intent(in) :: x
+ type(vector), intent(in) :: y_data(:)
+ real(kind(1.d0)), intent(in) :: x_data(:)
+ end subroutine pwl_deriv_x_vec
+ end interface
+
+end module tools_math
+
+module class_motion
+
+ use class_vector
+
+ implicit none
+
+ private
+ public :: motion
+ public :: get_displacement, get_velocity
+
+ type motion
+ private
+ integer :: surface_motion
+ integer :: vertex_motion
+ !
+ integer :: iml
+ real(kind(1.d0)), allocatable :: law_x(:)
+ type(vector), allocatable :: law_y(:)
+ end type motion
+
+contains
+
+
+ function get_displacement(mot,x1,x2)
+ use tools_math
+
+ type(vector) :: get_displacement
+ type(motion), intent(in) :: mot
+ real(kind(1.d0)), intent(in) :: x1, x2
+ !
+ integer :: i1, i2, i3, i4
+ type(vector) :: p1, p2, v_A, v_B, v_C, v_D
+ type(vector) :: i_trap_1, i_trap_2, i_trap_3
+
+ get_displacement = vector_(0.d0,0.d0,0.d0)
+
+ end function get_displacement
+
+
+ function get_velocity(mot,x)
+ use tools_math
+
+ type(vector) :: get_velocity
+ type(motion), intent(in) :: mot
+ real(kind(1.d0)), intent(in) :: x
+ !
+ type(vector) :: v
+
+ get_velocity = vector_(0.d0,0.d0,0.d0)
+
+ end function get_velocity
+
+
+
+end module class_motion
+
+module class_bc_math
+
+ implicit none
+
+ private
+ public :: bc_math
+
+ type bc_math
+ private
+ integer :: id
+ integer :: nbf
+ real(kind(1.d0)), allocatable :: a(:)
+ real(kind(1.d0)), allocatable :: b(:)
+ real(kind(1.d0)), allocatable :: c(:)
+ end type bc_math
+
+
+end module class_bc_math
+
+module class_bc
+
+ use class_bc_math
+ use class_motion
+
+ implicit none
+
+ private
+ public :: bc_poly
+ public :: get_abc, &
+ & get_displacement, get_velocity
+
+ type bc_poly
+ private
+ integer :: id
+ type(motion) :: mot
+ type(bc_math), pointer :: math => null()
+ end type bc_poly
+
+
+ interface get_displacement
+ module procedure get_displacement, get_bc_motion_displacement
+ end interface
+
+ interface get_velocity
+ module procedure get_velocity, get_bc_motion_velocity
+ end interface
+
+ interface get_abc
+ module procedure get_abc_s, get_abc_v
+ end interface
+
+contains
+
+
+ subroutine get_abc_s(bc,dim,id,a,b,c)
+ use class_dimensions
+
+ type(bc_poly), intent(in) :: bc
+ type(dimensions), intent(in) :: dim
+ integer, intent(out) :: id
+ real(kind(1.d0)), intent(inout) :: a(:)
+ real(kind(1.d0)), intent(inout) :: b(:)
+ real(kind(1.d0)), intent(inout) :: c(:)
+
+
+ end subroutine get_abc_s
+
+
+ subroutine get_abc_v(bc,dim,id,a,b,c)
+ use class_dimensions
+ use class_vector
+
+ type(bc_poly), intent(in) :: bc
+ type(dimensions), intent(in) :: dim
+ integer, intent(out) :: id
+ real(kind(1.d0)), intent(inout) :: a(:)
+ real(kind(1.d0)), intent(inout) :: b(:)
+ type(vector), intent(inout) :: c(:)
+
+
+ end subroutine get_abc_v
+
+
+
+ function get_bc_motion_displacement(bc,x1,x2)result(res)
+ use class_vector
+ type(vector) :: res
+ type(bc_poly), intent(in) :: bc
+ real(kind(1.d0)), intent(in) :: x1, x2
+
+ res = get_displacement(bc%mot,x1,x2)
+
+ end function get_bc_motion_displacement
+
+
+ function get_bc_motion_velocity(bc,x)result(res)
+ use class_vector
+ type(vector) :: res
+ type(bc_poly), intent(in) :: bc
+ real(kind(1.d0)), intent(in) :: x
+
+ res = get_velocity(bc%mot,x)
+
+ end function get_bc_motion_velocity
+
+
+end module class_bc
+
+module tools_mesh_basics
+
+ implicit none
+
+ interface
+ function geom_tet_center(v1,v2,v3,v4)
+ use class_vector
+ type(vector) :: geom_tet_center
+ type(vector), intent(in) :: v1, v2, v3, v4
+ end function geom_tet_center
+ end interface
+
+
+end module tools_mesh_basics
+
+
+subroutine smooth_mesh
+
+ use class_bc
+ use class_vector
+ use tools_mesh_basics
+
+ implicit none
+
+ type(vector) :: new_pos ! the new vertex position, after smoothing
+
+end subroutine smooth_mesh
+! { dg-final { cleanup-modules "class_vector class_dimensions tools_math" } } +! { dg-final { cleanup-modules "class_motion class_bc_math class_bc tools_mesh_basics" } } diff --git a/gcc/testsuite/gfortran.dg/used_types_23.f90 b/gcc/testsuite/gfortran.dg/used_types_23.f90 new file mode 100644 index 00000000000..7374223693f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/used_types_23.f90 @@ -0,0 +1,29 @@ +! { dg-do compile } +! Tests the fix for PR37274 comment 4 in which the use associated 'vector' was
+! passed up from the interface to the module 'tools_math'. +! +! Contributed by Mikael Morin <mikael.morin@tele2.fr> +! +module class_vector
+ implicit none
+ type vector
+ end type vector
+end module class_vector
+
+module tools_math
+ implicit none
+ interface lin_interp
+ function lin_interp_v()
+ use class_vector
+ type(vector) :: lin_interp_v
+ end function lin_interp_v
+ end interface
+end module tools_math
+
+module smooth_mesh
+ use tools_math
+ implicit none
+ type(vector ) :: new_pos ! { dg-error "used before it is defined" }
+end module smooth_mesh
+
+! { dg-final { cleanup-modules "class_vector tools_math smooth_mesh" } } diff --git a/gcc/testsuite/gnat.dg/specs/static_initializer3.ads b/gcc/testsuite/gnat.dg/specs/static_initializer3.ads new file mode 100644 index 00000000000..42994f2e1c5 --- /dev/null +++ b/gcc/testsuite/gnat.dg/specs/static_initializer3.ads @@ -0,0 +1,27 @@ +with Unchecked_Conversion; + +package Static_Initializer3 is + + type Byte is range 0 .. 16#FF#; + for Byte'Size use 8; + + type Word is range 0 .. 16#FFFF# ; + for Word'Size use 16; + + type R is record + b1 : Boolean; + b2 : Boolean; + end record; + for R use record + b1 at 0 range 0..3; + b2 at 0 range 4..7; + end record; + for R'Size use 8; + + function Conv is new Unchecked_Conversion (R, Byte); + + C1 : constant Byte := Conv ((true, false)); + + C2 : constant Word := Word(C1); + +end Static_Initializer3; diff --git a/gcc/testsuite/lib/g++.exp b/gcc/testsuite/lib/g++.exp index 7ca5b739781..07f1c504eb2 100644 --- a/gcc/testsuite/lib/g++.exp +++ b/gcc/testsuite/lib/g++.exp @@ -185,6 +185,8 @@ proc g++_init { args } { global GXX_UNDER_TEST global TESTING_IN_BUILD_TREE global target_triplet + global gcc_warning_prefix + global gcc_error_prefix # We set LC_ALL and LANG to C so that we get the same error messages as expected. setenv LC_ALL C @@ -247,6 +249,9 @@ proc g++_init { args } { # error-message parsing machinery. lappend ALWAYS_CXXFLAGS "additional_flags=-fmessage-length=0" + set gcc_warning_prefix "warning:" + set gcc_error_prefix "error:" + if { [string match "*-*-darwin*" $target_triplet] } { lappend ALWAYS_CXXFLAGS "ldflags=-multiply_defined suppress" } diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 296506484ad..72117c64b91 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2592,3 +2592,23 @@ proc check_effective_target_avx { } { } } "-O2 -mavx" ] } + +# Return 1 if C wchar_t type is compatible with char16_t. + +proc check_effective_target_wchar_t_char16_t_compatible { } { + return [check_no_compiler_messages wchar_t_char16_t object { + __WCHAR_TYPE__ wc; + __CHAR16_TYPE__ *p16 = &wc; + char t[(((__CHAR16_TYPE__) -1) < 0 == ((__WCHAR_TYPE__) -1) < 0) ? 1 : -1]; + }] +} + +# Return 1 if C wchar_t type is compatible with char32_t. + +proc check_effective_target_wchar_t_char32_t_compatible { } { + return [check_no_compiler_messages wchar_t_char32_t object { + __WCHAR_TYPE__ wc; + __CHAR32_TYPE__ *p32 = &wc; + char t[(((__CHAR32_TYPE__) -1) < 0 == ((__WCHAR_TYPE__) -1) < 0) ? 1 : -1]; + }] +} |