On 10/05/2017 06:53 PM, Martin Liška wrote: >> We probably want to provide a way to turn off this behavior. >> >> If we're going to enable this by default, we probably also want >> -Wreturn-type on by default. > > Agree.
Hi. So turning on the warning by default for c++, we get about 500 failing test-cases. Uf :/ Martin
c-c++-common/asan/pr63638.c c-c++-common/goacc/parallel-1.c c-c++-common/gomp/sink-1.c c-c++-common/missing-symbol.c c-c++-common/pr36513-2.c c-c++-common/pr36513.c c-c++-common/pr49706-2.c c-c++-common/pr65120.c c-c++-common/tm/volatile-1.c c-c++-common/tsan/race_on_mutex.c c-c++-common/ubsan/pr71512-1.c c-c++-common/vector-1.c c-c++-common/vector-2.c c-c++-common/Wimplicit-fallthrough-8.c g++.dg/abi/abi-tag14.C g++.dg/abi/abi-tag18a.C g++.dg/abi/abi-tag18.C g++.dg/abi/covariant2.C g++.dg/abi/covariant3.C g++.dg/abi/mangle7.C g++.dg/asan/pr81340.C g++.dg/concepts/fn8.C g++.dg/concepts/pr65575.C g++.dg/concepts/template-parm11.C g++.dg/conversion/op6.C g++.dg/cpp0x/access01.C g++.dg/cpp0x/alignas3.C g++.dg/cpp0x/auto2.C g++.dg/cpp0x/constexpr-array17.C g++.dg/cpp0x/constexpr-defarg2.C g++.dg/cpp0x/constexpr-diag3.C g++.dg/cpp0x/constexpr-memfn1.C g++.dg/cpp0x/constexpr-neg3.C g++.dg/cpp0x/dc1.C g++.dg/cpp0x/dc3.C g++.dg/cpp0x/decltype12.C g++.dg/cpp0x/decltype17.C g++.dg/cpp0x/decltype3.C g++.dg/cpp0x/decltype41.C g++.dg/cpp0x/defaulted28.C g++.dg/cpp0x/enum_base3.C g++.dg/cpp0x/gen-attrs-4.C g++.dg/cpp0x/initlist96.C g++.dg/cpp0x/lambda/lambda-58566.C g++.dg/cpp0x/lambda/lambda-conv10.C g++.dg/cpp0x/lambda/lambda-conv12.C g++.dg/cpp0x/lambda/lambda-defarg3.C g++.dg/cpp0x/lambda/lambda-ice3.C g++.dg/cpp0x/lambda/lambda-ice5.C g++.dg/cpp0x/lambda/lambda-nested2.C g++.dg/cpp0x/lambda/lambda-template12.C g++.dg/cpp0x/lambda/lambda-template2.C g++.dg/cpp0x/lambda/lambda-this12.C g++.dg/cpp0x/nolinkage1.C g++.dg/cpp0x/nsdmi-template5.C g++.dg/cpp0x/parse1.C g++.dg/cpp0x/pr34054.C g++.dg/cpp0x/pr47416.C g++.dg/cpp0x/pr58781.C g++.dg/cpp0x/pr70538.C g++.dg/cpp0x/pr81325.C g++.dg/cpp0x/range-for13.C g++.dg/cpp0x/range-for14.C g++.dg/cpp0x/rv2n.C g++.dg/cpp0x/rv3n.C g++.dg/cpp0x/static_assert10.C g++.dg/cpp0x/static_assert11.C g++.dg/cpp0x/static_assert12.C g++.dg/cpp0x/static_assert13.C g++.dg/cpp0x/trailing1.C g++.dg/cpp0x/trailing5.C g++.dg/cpp0x/variadic114.C g++.dg/cpp0x/variadic57.C g++.dg/cpp0x/variadic65.C g++.dg/cpp0x/variadic66.C g++.dg/cpp0x/variadic97.C g++.dg/cpp0x/variadic98.C g++.dg/cpp0x/Wunused-variable-1.C g++.dg/cpp1y/auto-fn11.C g++.dg/cpp1y/auto-fn29.C g++.dg/cpp1y/auto-fn38.C g++.dg/cpp1y/constexpr-return2.C g++.dg/cpp1y/lambda-init7.C g++.dg/cpp1y/pr63996.C g++.dg/cpp1y/pr65202.C g++.dg/cpp1y/pr66443-cxx14.C g++.dg/cpp1y/pr79253.C g++.dg/cpp1y/static_assert1.C g++.dg/cpp1y/static_assert2.C g++.dg/cpp1y/var-templ44.C g++.dg/cpp1z/fold6.C g++.dg/cpp1z/inline-var2.C g++.dg/cpp1z/lambda-this1.C g++.dg/cpp1z/static_assert-nomsg.C g++.dg/debug/dwarf2/dwarf4-typedef.C g++.dg/debug/dwarf2/icf.C g++.dg/debug/dwarf2/pr61433.C g++.dg/debug/dwarf-eh-personality-1.C g++.dg/debug/nullptr01.C g++.dg/debug/pr16792.C g++.dg/debug/pr46241.C g++.dg/debug/pr46338.C g++.dg/debug/pr47106.C g++.dg/debug/pr71057.C g++.dg/debug/pr71432.C g++.dg/debug/pr80461.C g++.dg/dfp/44473-1.C g++.dg/dfp/44473-2.C g++.dg/eh/builtin1.C g++.dg/eh/builtin2.C g++.dg/eh/builtin3.C g++.dg/eh/pr45569.C g++.dg/eh/unwind2.C g++.dg/expr/bitfield11.C g++.dg/expr/static_cast7.C g++.dg/ext/altivec-14.C g++.dg/ext/asm13.C g++.dg/ext/builtin-object-size3.C g++.dg/ext/has_nothrow_assign_odr.C g++.dg/ext/label7.C g++.dg/ext/label8.C g++.dg/ext/tmplattr7.C g++.dg/ext/vector8.C g++.dg/ext/visibility/anon1.C g++.dg/ext/visibility/anon2.C g++.dg/ext/visibility/namespace1.C g++.dg/ext/vla16.C g++.dg/goacc/reference.C g++.dg/gomp/pr37189.C g++.dg/gomp/pr39495-1.C g++.dg/gomp/pr39495-2.C g++.dg/gomp/pr41429.C g++.dg/gomp/pr82054.C g++.dg/inherit/covariant10.C g++.dg/inherit/covariant11.C g++.dg/inherit/protected1.C g++.dg/init/inline1.C g++.dg/init/new18.C g++.dg/init/reference2.C g++.dg/init/reference3.C g++.dg/init/switch1.C g++.dg/ipa/devirt-10.C g++.dg/ipa/devirt-13.C g++.dg/ipa/devirt-14.C g++.dg/ipa/devirt-15.C g++.dg/ipa/devirt-16.C g++.dg/ipa/devirt-17.C g++.dg/ipa/devirt-18.C g++.dg/ipa/devirt-19.C g++.dg/ipa/devirt-21.C g++.dg/ipa/devirt-23.C g++.dg/ipa/devirt-38.C g++.dg/ipa/devirt-40.C g++.dg/ipa/devirt-41.C g++.dg/ipa/devirt-42.C g++.dg/ipa/devirt-44.C g++.dg/ipa/devirt-45.C g++.dg/ipa/devirt-48.C g++.dg/ipa/devirt-52.C g++.dg/ipa/nothrow-1.C g++.dg/ipa/pr43812.C g++.dg/ipa/pr44372.C g++.dg/ipa/pr45572-1.C g++.dg/ipa/pr58371.C g++.dg/ipa/pr59176.C g++.dg/ipa/pr60640-1.C g++.dg/ipa/pr61540.C g++.dg/ipa/pr63470.C g++.dg/ipa/pr63587-1.C g++.dg/ipa/pr63587-2.C g++.dg/ipa/pr63838.C g++.dg/ipa/pr63894.C g++.dg/ipa/pr64068.C g++.dg/ipa/pr64896.C g++.dg/ipa/pr65002.C g++.dg/ipa/pr65008.C g++.dg/ipa/pr65465.C g++.dg/ipa/pr66896.C g++.dg/ipa/pr68851.C g++.dg/ipa/pr78211.C g++.dg/ipa/pr79931.C g++.dg/ipa/pure-const-1.C g++.dg/ipa/pure-const-2.C g++.dg/ipa/pure-const-3.C g++.dg/ipa/remref-1.C g++.dg/ipa/remref-2.C g++.dg/lookup/builtin2.C g++.dg/lookup/crash3.C g++.dg/lookup/friend20.C g++.dg/lookup/pr80891-5.C g++.dg/lookup/struct2.C g++.dg/lto/20080709 g++.dg/lto/20080907 g++.dg/lto/20080915 g++.dg/lto/20080916 g++.dg/lto/20081022 g++.dg/lto/20081023 g++.dg/lto/20081118 g++.dg/lto/20081120-1 g++.dg/lto/20081127 g++.dg/lto/20081217-2 g++.dg/lto/20090303 g++.dg/lto/20090311-1 g++.dg/lto/20090312 g++.dg/lto/20090315 g++.dg/lto/20091002-1 g++.dg/lto/20091002-2 g++.dg/lto/20091002-3 g++.dg/lto/20091004-1 g++.dg/lto/20091004-2 g++.dg/lto/20091004-3 g++.dg/lto/20100721-1 g++.dg/lto/20101010-1 g++.dg/lto/20101010-2 g++.dg/lto/pr45679-1 g++.dg/lto/pr45679-2 g++.dg/lto/pr48042 g++.dg/lto/pr51650-1 g++.dg/lto/pr51650-3 g++.dg/lto/pr63270 g++.dg/lto/pr65193 g++.dg/lto/pr65302 g++.dg/lto/pr65316 g++.dg/lto/pr65475c g++.dg/lto/pr65549 g++.dg/lto/pr69077 g++.dg/lto/pr69589 g++.dg/opt/combine.C g++.dg/opt/complex3.C g++.dg/opt/covariant1.C g++.dg/opt/declone3.C g++.dg/opt/dump1.C g++.dg/opt/inline15.C g++.dg/opt/local1.C g++.dg/opt/memcpy1.C g++.dg/opt/new1.C g++.dg/opt/nrv8.C g++.dg/opt/pr23299.C g++.dg/opt/pr27826.C g++.dg/opt/pr44919.C g++.dg/opt/pr47615.C g++.dg/opt/pr55329.C g++.dg/opt/pr61456.C g++.dg/opt/pr65003.C g++.dg/opt/pr65554.C g++.dg/opt/pr69432.C g++.dg/opt/pr78373.C g++.dg/opt/pr79267.C g++.dg/other/array3.C g++.dg/other/crash-5.C g++.dg/other/crash-8.C g++.dg/other/error34.C g++.dg/other/pr22003.C g++.dg/other/pr24623.C g++.dg/other/pr29610.C g++.dg/other/pr42645-1.C g++.dg/other/pr42645-2.C g++.dg/other/pr52048.C g++.dg/other/typedef3.C g++.dg/overload/defarg4.C g++.dg/overload/operator5.C g++.dg/overload/ref-conv1.C g++.dg/overload/template5.C g++.dg/parse/crash40.C g++.dg/parse/crash61.C g++.dg/parse/crash67.C g++.dg/parse/ctor5.C g++.dg/parse/defarg4.C g++.dg/parse/defarg6.C g++.dg/parse/error5.C g++.dg/parse/expr2.C g++.dg/parse/friend7.C g++.dg/parse/namespace1.C g++.dg/parse/namespace9.C g++.dg/parse/ret-type2.C g++.dg/parse/typedef8.C g++.dg/pch/static-1.C g++.dg/plugin/diagnostic-test-expressions-1.C g++.dg/plugin/dumb-plugin-test-1.C g++.dg/plugin/self-assign-test-1.C g++.dg/plugin/self-assign-test-2.C g++.dg/plugin/self-assign-test-3.C g++.dg/pr55513.C g++.dg/pr55604.C g++.dg/pr57662.C g++.dg/pr58389.C g++.dg/pr59510.C g++.dg/pr67989.C g++.dg/pr70590-2.C g++.dg/pr70590.C g++.dg/pr70965.C g++.dg/pr77550.C g++.dg/pr80287.C g++.dg/pr80707.C g++.dg/pr81194.C g++.dg/spellcheck-identifiers.C g++.dg/tc1/dr152.C g++.dg/template/aggr-init1.C g++.dg/template/anon1.C g++.dg/template/array29.C g++.dg/template/array7.C g++.dg/template/canon-type-8.C g++.dg/template/conv1.C g++.dg/template/crash107.C g++.dg/template/crash23.C g++.dg/template/crash8.C g++.dg/template/defarg4.C g++.dg/template/dependent-expr9.C g++.dg/template/error10.C g++.dg/template/friend32.C g++.dg/template/init6.C g++.dg/template/memfriend7.C g++.dg/template/new10.C g++.dg/template/nontype12.C g++.dg/template/overload12.C g++.dg/template/overload5.C g++.dg/template/overload8.C g++.dg/template/partial10.C g++.dg/template/partial9.C g++.dg/template/qual1.C g++.dg/template/show-template-tree-3.C g++.dg/template/sizeof8.C g++.dg/template/sizeof9.C g++.dg/template/spec6.C g++.dg/template/spec7.C g++.dg/template/typedef8.C g++.dg/template/using20.C g++.dg/template/vla1.C g++.dg/tm/cgraph_edge.C g++.dg/tm/pr46646.C g++.dg/tm/pr47554.C g++.dg/tm/pr47573.C g++.dg/tm/unsafe1.C g++.dg/tm/unsafe2.C g++.dg/torture/20070621-1.C g++.dg/torture/20090329-1.C g++.dg/torture/20141013.C g++.dg/torture/pr33134.C g++.dg/torture/pr33340.C g++.dg/torture/pr33627.C g++.dg/torture/pr34222.C g++.dg/torture/pr34241.C g++.dg/torture/pr34641.C g++.dg/torture/pr34850.C g++.dg/torture/pr35164-1.C g++.dg/torture/pr36745.C g++.dg/torture/pr38705.C g++.dg/torture/pr38811.C g++.dg/torture/pr39362.C g++.dg/torture/pr39732.C g++.dg/torture/pr40991.C g++.dg/torture/pr41775.C g++.dg/torture/pr42183.C g++.dg/torture/pr42450.C g++.dg/torture/pr42704.C g++.dg/torture/pr42760.C g++.dg/torture/pr42773.C g++.dg/torture/pr42883.C g++.dg/torture/pr43905.C g++.dg/torture/pr44148.C g++.dg/torture/pr44295.C g++.dg/torture/pr44357.C g++.dg/torture/pr44813.C g++.dg/torture/pr45580.C g++.dg/torture/pr45874.C g++.dg/torture/pr45877.C g++.dg/torture/pr46383.C g++.dg/torture/pr46469.C g++.dg/torture/pr47313.C g++.dg/torture/pr48271.C g++.dg/torture/pr49615.C g++.dg/torture/pr49770.C g++.dg/torture/pr49938.C g++.dg/torture/pr51436.C g++.dg/torture/pr51482.C g++.dg/torture/pr51737.C g++.dg/torture/pr51959.C g++.dg/torture/pr52772.C g++.dg/torture/pr52918-2.C g++.dg/torture/pr53011.C g++.dg/torture/pr53602.C g++.dg/torture/pr53752.C g++.dg/torture/pr54838.C g++.dg/torture/pr54902.C g++.dg/torture/pr56029.C g++.dg/torture/pr56768.C g++.dg/torture/pr57107.C g++.dg/torture/pr57140.C g++.dg/torture/pr57235.C g++.dg/torture/pr58252.C g++.dg/torture/pr58555.C g++.dg/torture/pr59208.C g++.dg/torture/pr60438-1.C g++.dg/torture/pr60438-2.C g++.dg/torture/pr60746.C g++.dg/torture/pr61554.C g++.dg/torture/pr63419.C g++.dg/torture/pr63476.C g++.dg/torture/pr63512.C g++.dg/torture/pr64282.C g++.dg/torture/pr64378.C g++.dg/torture/pr64565.C g++.dg/torture/pr64568-2.C g++.dg/torture/pr64669.C g++.dg/torture/pr64686.C g++.dg/torture/pr64978.C g++.dg/torture/pr64995.C g++.dg/torture/pr65655.C g++.dg/torture/pr65851.C g++.dg/torture/pr67055.C g++.dg/torture/pr67191.C g++.dg/torture/pr68852.C g++.dg/torture/pr69264.C g++.dg/torture/pr77674.C g++.dg/torture/pr77947.C g++.dg/torture/pr78268.C g++.dg/torture/pr78507.C g++.dg/torture/pr78692.C g++.dg/torture/pr80171.C g++.dg/torture/pr82154.C g++.dg/tree-ssa/copyprop.C g++.dg/tree-ssa/pr22444.C g++.dg/tree-ssa/pr23948.C g++.dg/tree-ssa/pr24172.C g++.dg/tree-ssa/pr24351-3.C g++.dg/tree-ssa/pr27283.C g++.dg/tree-ssa/pr27291.C g++.dg/tree-ssa/pr27548.C g++.dg/tree-ssa/pr34355.C g++.dg/tree-ssa/pr42337.C g++.dg/tree-ssa/pred-1.C g++.dg/ubsan/pr63956.C g++.dg/ubsan/pr65019.C g++.dg/ubsan/pr65583.C g++.dg/vect/pr60836.cc g++.dg/vect/pr68145.cc g++.dg/vect/pr70729.cc g++.dg/vect/pr70729-nest.cc g++.dg/warn/pmf1.C g++.dg/warn/Waddress-3.C g++.dg/warn/Wconversion-null-2.C g++.dg/warn/Wnull-conversion-2.C g++.dg/warn/Wparentheses-10.C g++.dg/warn/Wparentheses-11.C g++.dg/warn/Wparentheses-12.C g++.dg/warn/Wparentheses-25.C g++.dg/warn/Wparentheses-6.C g++.dg/warn/Wparentheses-7.C g++.dg/warn/Wparentheses-8.C g++.dg/warn/Wparentheses-9.C g++.dg/warn/Wshadow-5.C g++.dg/warn/Wtype-limits.C g++.dg/warn/Wtype-limits-no.C g++.dg/warn/Wtype-limits-Wextra.C g++.dg/warn/Wunused-local-typedefs.C g++.dg/warn/Wzero-as-null-pointer-constant-5.C g++.old-deja/g++.benjamin/p13417.C g++.old-deja/g++.brendan/crash24.C g++.old-deja/g++.ext/constructor.C g++.old-deja/g++.ext/namedret1.C g++.old-deja/g++.ext/namedret3.C g++.old-deja/g++.ext/return1.C g++.old-deja/g++.jason/anon4.C g++.old-deja/g++.jason/enum6.C g++.old-deja/g++.jason/lineno2.C g++.old-deja/g++.jason/lineno3.C g++.old-deja/g++.jason/lineno4.C g++.old-deja/g++.jason/new2.C g++.old-deja/g++.jason/new4.C g++.old-deja/g++.jason/shadow1.C g++.old-deja/g++.jason/tempcons.C g++.old-deja/g++.jason/thunk2.C g++.old-deja/g++.law/builtin1.C g++.old-deja/g++.law/enum9.C g++.old-deja/g++.law/except3.C g++.old-deja/g++.law/init6.C g++.old-deja/g++.law/profile1.C g++.old-deja/g++.law/shadow2.C g++.old-deja/g++.law/temps4.C g++.old-deja/g++.mike/bool2.C g++.old-deja/g++.mike/eh10.C g++.old-deja/g++.mike/eh13.C g++.old-deja/g++.mike/eh16.C g++.old-deja/g++.mike/eh17.C g++.old-deja/g++.mike/eh1.C g++.old-deja/g++.mike/eh23.C g++.old-deja/g++.mike/eh24.C g++.old-deja/g++.mike/eh25.C g++.old-deja/g++.mike/eh26.C g++.old-deja/g++.mike/eh27.C g++.old-deja/g++.mike/eh28.C g++.old-deja/g++.mike/eh29.C g++.old-deja/g++.mike/eh2.C g++.old-deja/g++.mike/eh30.C g++.old-deja/g++.mike/eh31.C g++.old-deja/g++.mike/eh35.C g++.old-deja/g++.mike/eh36.C g++.old-deja/g++.mike/eh37.C g++.old-deja/g++.mike/eh38.C g++.old-deja/g++.mike/eh39.C g++.old-deja/g++.mike/eh40.C g++.old-deja/g++.mike/eh47.C g++.old-deja/g++.mike/eh50.C g++.old-deja/g++.mike/eh51.C g++.old-deja/g++.mike/eh7.C g++.old-deja/g++.mike/eh8.C g++.old-deja/g++.mike/eh9.C g++.old-deja/g++.mike/mangle1.C g++.old-deja/g++.mike/p5958.C g++.old-deja/g++.mike/p6004.C g++.old-deja/g++.mike/p700.C g++.old-deja/g++.mike/p7912.C g++.old-deja/g++.mike/p811.C g++.old-deja/g++.mike/virt4.C g++.old-deja/g++.oliva/nameret1.C g++.old-deja/g++.oliva/nameret2.C g++.old-deja/g++.other/decl1.C g++.old-deja/g++.other/expr1.C g++.old-deja/g++.other/inline8.C g++.old-deja/g++.other/loop1.C g++.old-deja/g++.other/syntax1.C g++.old-deja/g++.pt/repo3.C g++.old-deja/g++.robertl/eb27.C g++.old-deja/g++.robertl/eb83.C obj-c++.dg/comp-types-8.mm obj-c++.dg/demangle-3.mm obj-c++.dg/super-class-1.mm