https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71973
--- Comment #3 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- Created attachment 39472 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39472&action=edit possible patch Oh, yeah! Boot-strap OK. The eh-code is OK. BUT: the warning triggers a few hundred times, within the g++.dg testsuite, and all of the places look like real bugs, that deserve a warning... FAIL: g++.dg/charset/asm2.c -std=c++98 (test for excess errors) FAIL: g++.dg/charset/asm2.c -std=c++11 (test for excess errors) FAIL: g++.dg/charset/asm2.c -std=c++14 (test for excess errors) FAIL: g++.dg/debug/dwarf2/template-func-params-7.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/debug/dwarf2/template-func-params-7.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/addr_builtin-1.C -std=c++98 (test for excess errors) FAIL: g++.dg/addr_builtin-1.C -std=c++11 (test for excess errors) FAIL: g++.dg/addr_builtin-1.C -std=c++14 (test for excess errors) FAIL: g++.dg/cpp0x/constexpr-builtin1.C -std=c++11 (test for excess errors) FAIL: g++.dg/cpp0x/constexpr-builtin1.C -std=c++14 (test for excess errors) FAIL: g++.dg/cpp0x/constexpr-function2.C -std=c++11 (test for excess errors) FAIL: g++.dg/cpp0x/constexpr-function2.C -std=c++14 (test for excess errors) FAIL: g++.dg/cpp0x/constexpr-pos1.C -std=c++11 (test for excess errors) FAIL: g++.dg/cpp0x/constexpr-pos1.C -std=c++14 (test for excess errors) FAIL: g++.dg/cpp0x/gen-attrs-40.C -std=c++11 (test for excess errors) FAIL: g++.dg/cpp0x/gen-attrs-40.C -std=c++14 (test for excess errors) FAIL: g++.dg/cpp1y/lambda-generic-udt.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/cpp1y/lambda-generic-xudt.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/diagnostic/pr70105.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/diagnostic/pr70105.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/diagnostic/pr70105.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/ext/attrib40.C -std=c++98 (test for excess errors) FAIL: g++.dg/ext/attrib40.C -std=c++11 (test for excess errors) FAIL: g++.dg/ext/attrib40.C -std=c++14 (test for excess errors) FAIL: g++.dg/init/new15.C -std=c++98 (test for excess errors) FAIL: g++.dg/init/new15.C -std=c++11 (test for excess errors) FAIL: g++.dg/init/new15.C -std=c++14 (test for excess errors) FAIL: g++.dg/init/ref9.C -std=c++98 (test for excess errors) FAIL: g++.dg/init/ref9.C -std=c++11 (test for excess errors) FAIL: g++.dg/init/ref9.C -std=c++14 (test for excess errors) AIL: g++.dg/ipa/inline-1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/ipa/inline-1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/ipa/inline-1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/ipa/inline-2.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/ipa/inline-2.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/ipa/inline-2.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/lookup/builtin1.C -std=c++98 (test for excess errors) FAIL: g++.dg/lookup/builtin1.C -std=c++11 (test for excess errors) FAIL: g++.dg/lookup/builtin1.C -std=c++14 (test for excess errors) FAIL: g++.dg/lookup/builtin3.C -std=c++98 (test for excess errors) FAIL: g++.dg/lookup/builtin3.C -std=c++11 (test for excess errors) FAIL: g++.dg/lookup/builtin3.C -std=c++14 (test for excess errors) FAIL: g++.dg/lookup/builtin5.C -std=c++11 (test for excess errors) FAIL: g++.dg/lookup/builtin5.C -std=c++14 (test for excess errors) FAIL: g++.dg/lookup/builtin7.C -std=c++98 (test for excess errors) FAIL: g++.dg/lookup/builtin7.C -std=c++11 (test for excess errors) FAIL: g++.dg/lookup/builtin7.C -std=c++14 (test for excess errors) FAIL: g++.dg/lookup/extern-c-redecl4.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/lookup/extern-c-redecl4.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/lookup/extern-c-redecl4.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/opt/cfg1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/opt/cfg1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/opt/cfg1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/opt/conj1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/opt/conj1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/opt/conj1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/opt/conj2.C -std=c++11 (test for excess errors) FAIL: g++.dg/opt/conj2.C -std=c++14 (test for excess errors) FAIL: g++.dg/opt/copysign-1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/opt/copysign-1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/opt/copysign-1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/opt/pr17724-5.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/opt/pr17724-5.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/opt/pr17724-5.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/opt/pr17724-6.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/opt/pr17724-6.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/opt/pr17724-6.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/opt/reload2.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/opt/reload2.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/opt/reload2.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/other/vararg-2.C -std=c++98 (test for excess errors) FAIL: g++.dg/other/vararg-2.C -std=c++11 (test for excess errors) FAIL: g++.dg/other/vararg-2.C -std=c++14 (test for excess errors) FAIL: g++.dg/overload/builtin3.C -std=c++98 (test for excess errors) FAIL: g++.dg/overload/builtin3.C -std=c++11 (test for excess errors) FAIL: g++.dg/overload/builtin3.C -std=c++14 (test for excess errors) FAIL: g++.dg/overload/using2.C -std=c++98 (test for excess errors) FAIL: g++.dg/overload/using2.C -std=c++11 (test for excess errors) FAIL: g++.dg/overload/using2.C -std=c++14 (test for excess errors) FAIL: g++.dg/parse/builtin1.C -std=c++98 (test for excess errors) FAIL: g++.dg/parse/builtin1.C -std=c++11 (test for excess errors) FAIL: g++.dg/parse/builtin1.C -std=c++14 (test for excess errors) FAIL: g++.dg/parse/pr26997.C -std=c++98 (test for excess errors) FAIL: g++.dg/parse/pr26997.C -std=c++11 (test for excess errors) FAIL: g++.dg/parse/pr26997.C -std=c++14 (test for excess errors) FAIL: g++.dg/spellcheck-identifiers-2.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/spellcheck-identifiers-2.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/spellcheck-identifiers-2.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/spellcheck-identifiers.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/spellcheck-identifiers.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/spellcheck-identifiers.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/tc1/dr20.C -std=c++98 (test for excess errors) FAIL: g++.dg/tc1/dr20.C -std=c++11 (test for excess errors) FAIL: g++.dg/tc1/dr20.C -std=c++14 (test for excess errors) FAIL: g++.dg/template/strlen1.C -std=c++98 (test for excess errors) FAIL: g++.dg/template/strlen1.C -std=c++11 (test for excess errors) FAIL: g++.dg/template/strlen1.C -std=c++14 (test for excess errors) FAIL: g++.dg/tree-ssa/copyprop.C (test for excess errors) FAIL: g++.dg/tree-ssa/inline-1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/tree-ssa/inline-1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/tree-ssa/inline-1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/tree-ssa/inline-2.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/tree-ssa/inline-2.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/tree-ssa/inline-2.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/tree-ssa/nothrow-1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/tree-ssa/nothrow-1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/tree-ssa/nothrow-1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/tree-ssa/pr21584-2.C -std=c++98 (test for excess errors) FAIL: g++.dg/tree-ssa/pr21584-2.C -std=c++11 (test for excess errors) FAIL: g++.dg/tree-ssa/pr21584-2.C -std=c++14 (test for excess errors) FAIL: g++.dg/tree-ssa/pr22037.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/tree-ssa/pr22037.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/tree-ssa/pr22037.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/tree-ssa/ssa-dom.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/tree-ssa/ssa-dom.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/tree-ssa/ssa-dom.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/warn/Wreturn-1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/warn/Wreturn-1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/warn/Wreturn-1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/warn/Wsystem-headers1a.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/warn/Wsystem-headers1a.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/warn/Wsystem-headers1a.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/warn/noeffect5.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/warn/noeffect5.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/warn/noeffect5.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/warn/sequence-pt-1.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/warn/sequence-pt-1.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/warn/sequence-pt-1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/gomp/for-14.C -std=c++98 (test for excess errors) FAIL: g++.dg/gomp/for-14.C -std=c++11 (test for excess errors) FAIL: g++.dg/gomp/for-14.C -std=c++14 (test for excess errors) FAIL: g++.dg/gomp/openmp-simd-2.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/gomp/openmp-simd-2.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/gomp/openmp-simd-2.C -std=gnu++14 (test for excess errors) etc. etc. etc....