summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r--gcc/testsuite/g++.dg/abi/abi-tag14.C8
-rw-r--r--gcc/testsuite/g++.dg/abi/abi-tag18.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/abi-tag18a.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/covariant2.C4
-rw-r--r--gcc/testsuite/g++.dg/abi/covariant3.C2
-rw-r--r--gcc/testsuite/g++.dg/abi/mangle7.C2
-rw-r--r--gcc/testsuite/g++.dg/asan/pr81340.C4
-rw-r--r--gcc/testsuite/g++.dg/asan/pr82792.C32
-rw-r--r--gcc/testsuite/g++.dg/bprob/g++-bprob-1.C2
-rw-r--r--gcc/testsuite/g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc2
-rw-r--r--gcc/testsuite/g++.dg/cilk-plus/CK/pr68997.cc2
-rw-r--r--gcc/testsuite/g++.dg/concepts/fn8.C2
-rw-r--r--gcc/testsuite/g++.dg/concepts/pr65575.C2
-rw-r--r--gcc/testsuite/g++.dg/concepts/template-parm11.C2
-rw-r--r--gcc/testsuite/g++.dg/conversion/op6.C6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/access01.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/alignas3.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/auto2.C5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/constexpr-template11.C16
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/dc1.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/dc3.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype12.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype17.C3
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype3.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype41.C8
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/defaulted28.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/enum_base3.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/initlist96.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-58566.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv10.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv12.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template12.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/nolinkage1.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C6
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/parse1.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr34054.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr47416.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr58781.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr70538.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr81325.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/range-for13.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/range-for14.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/range-for6.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv2n.C8
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/rv3n.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/static_assert10.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/static_assert11.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/static_assert12.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/static_assert13.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/trailing1.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/trailing5.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/udlit-macros.C31
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/udlit-template.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic114.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic57.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic65.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic66.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic97.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic98.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/auto-fn11.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/auto-fn29.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/auto-fn38.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/lambda-init7.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/pr63996.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/pr65202.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/pr66443-cxx14.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/pr79253.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/pr81574.C13
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/static_assert1.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/static_assert2.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/var-templ44.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/eval-order3.C4
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/fold6.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/inline-var2.C1
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/lambda-this1.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/static_assert-nomsg.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp2a/ptrmem1a.C24
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf-eh-personality-1.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/icf.C4
-rw-r--r--gcc/testsuite/g++.dg/debug/dwarf2/pr61433.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/nullptr01.C1
-rw-r--r--gcc/testsuite/g++.dg/debug/pr16792.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/pr46241.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/pr46338.C1
-rw-r--r--gcc/testsuite/g++.dg/debug/pr47106.C6
-rw-r--r--gcc/testsuite/g++.dg/debug/pr71057.C2
-rw-r--r--gcc/testsuite/g++.dg/debug/pr71432.C13
-rw-r--r--gcc/testsuite/g++.dg/debug/pr80461.C2
-rw-r--r--gcc/testsuite/g++.dg/dfp/44473-1.C2
-rw-r--r--gcc/testsuite/g++.dg/dfp/44473-2.C4
-rw-r--r--gcc/testsuite/g++.dg/diagnostic/pr77949.C2
-rw-r--r--gcc/testsuite/g++.dg/eh/builtin1.C4
-rw-r--r--gcc/testsuite/g++.dg/eh/builtin2.C4
-rw-r--r--gcc/testsuite/g++.dg/eh/builtin3.C2
-rw-r--r--gcc/testsuite/g++.dg/eh/pr45569.C2
-rw-r--r--gcc/testsuite/g++.dg/eh/sighandle.C1
-rw-r--r--gcc/testsuite/g++.dg/eh/unwind2.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/bitfield11.C2
-rw-r--r--gcc/testsuite/g++.dg/expr/cond12.C8
-rw-r--r--gcc/testsuite/g++.dg/expr/static_cast7.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/altivec-14.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/asm13.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/builtin-object-size3.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C5
-rw-r--r--gcc/testsuite/g++.dg/ext/label7.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/label8.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/pr57735.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/pr81706.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/tmplattr7.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/vector14.C8
-rw-r--r--gcc/testsuite/g++.dg/ext/vector8.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/anon1.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/anon2.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/visibility/namespace1.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/vla16.C2
-rw-r--r--gcc/testsuite/g++.dg/gcov/gcov-1.C2
-rw-r--r--gcc/testsuite/g++.dg/gcov/gcov-threads-1.C2
-rw-r--r--gcc/testsuite/g++.dg/goacc/reference.C4
-rw-r--r--gcc/testsuite/g++.dg/gomp/macro-4.C8
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr37189.C2
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr39495-1.C4
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr39495-2.C2
-rw-r--r--gcc/testsuite/g++.dg/gomp/pr82054.C2
-rw-r--r--gcc/testsuite/g++.dg/graphite/pr41305.C2
-rw-r--r--gcc/testsuite/g++.dg/graphite/pr42930.C2
-rw-r--r--gcc/testsuite/g++.dg/inherit/covariant10.C4
-rw-r--r--gcc/testsuite/g++.dg/inherit/covariant11.C8
-rw-r--r--gcc/testsuite/g++.dg/inherit/protected1.C2
-rw-r--r--gcc/testsuite/g++.dg/init/inline1.C2
-rw-r--r--gcc/testsuite/g++.dg/init/new18.C1
-rw-r--r--gcc/testsuite/g++.dg/init/pr35878_1.C2
-rw-r--r--gcc/testsuite/g++.dg/init/pr35878_4.C23
-rw-r--r--gcc/testsuite/g++.dg/init/reference2.C2
-rw-r--r--gcc/testsuite/g++.dg/init/reference3.C1
-rw-r--r--gcc/testsuite/g++.dg/init/switch1.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-10.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-13.C3
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-14.C3
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-15.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-16.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-17.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-18.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-19.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-21.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-23.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-34.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-38.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-40.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-41.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-42.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-44.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-45.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-48.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/devirt-52.C1
-rw-r--r--gcc/testsuite/g++.dg/ipa/nothrow-1.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr43812.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr44372.C1
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr45572-1.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr58371.C1
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr59176.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr60640-1.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr61540.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr63470.C1
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr63587-1.C3
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr63587-2.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr63838.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr63894.C1
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr64068.C6
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr64896.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr65002.C4
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr65008.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr65465.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr66896.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr68851.C6
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr78211.C3
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr79931.C1
-rw-r--r--gcc/testsuite/g++.dg/ipa/pure-const-1.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pure-const-2.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/pure-const-3.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/remref-1.C2
-rw-r--r--gcc/testsuite/g++.dg/ipa/remref-2.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/builtin2.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/crash3.C6
-rw-r--r--gcc/testsuite/g++.dg/lookup/friend20.C1
-rw-r--r--gcc/testsuite/g++.dg/lookup/pr80891-5.C1
-rw-r--r--gcc/testsuite/g++.dg/lookup/struct2.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20080709_0.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20080907_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20080915_0.C4
-rw-r--r--gcc/testsuite/g++.dg/lto/20080916_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20081022_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20081023_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20081118_0.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20081118_1.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20081120-1_0.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20081120-1_1.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20081127_1.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20081217-2_0.C3
-rw-r--r--gcc/testsuite/g++.dg/lto/20090303_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20090311-1_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20090312_0.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20090315_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20091002-1_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20091002-2_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20091002-3_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20091004-1_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20091004-2_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20091004-3_1.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20100721-1_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/20101010-1_0.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/20101010-2_0.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/pr45679-1_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr45679-1_1.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr45679-2_0.C3
-rw-r--r--gcc/testsuite/g++.dg/lto/pr48042_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr51650-1_0.C3
-rw-r--r--gcc/testsuite/g++.dg/lto/pr51650-3_0.C3
-rw-r--r--gcc/testsuite/g++.dg/lto/pr63270_1.C1
-rw-r--r--gcc/testsuite/g++.dg/lto/pr65193_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr65302_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr65316_0.C3
-rw-r--r--gcc/testsuite/g++.dg/lto/pr65475c_0.C3
-rw-r--r--gcc/testsuite/g++.dg/lto/pr65549_0.C6
-rw-r--r--gcc/testsuite/g++.dg/lto/pr69077_0.C2
-rw-r--r--gcc/testsuite/g++.dg/lto/pr69589_0.C2
-rw-r--r--gcc/testsuite/g++.dg/missing-return.C8
-rw-r--r--gcc/testsuite/g++.dg/opt/20050511-1.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/combine.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/complex3.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/const3.C4
-rw-r--r--gcc/testsuite/g++.dg/opt/covariant1.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/declone3.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/dump1.C3
-rw-r--r--gcc/testsuite/g++.dg/opt/inline15.C3
-rw-r--r--gcc/testsuite/g++.dg/opt/local1.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/memcpy1.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/new1.C4
-rw-r--r--gcc/testsuite/g++.dg/opt/nrv8.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr23299.C8
-rw-r--r--gcc/testsuite/g++.dg/opt/pr27826.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr44919.C4
-rw-r--r--gcc/testsuite/g++.dg/opt/pr46640.C3
-rw-r--r--gcc/testsuite/g++.dg/opt/pr47615.C5
-rw-r--r--gcc/testsuite/g++.dg/opt/pr55329.C4
-rw-r--r--gcc/testsuite/g++.dg/opt/pr61456.C1
-rw-r--r--gcc/testsuite/g++.dg/opt/pr65003.C4
-rw-r--r--gcc/testsuite/g++.dg/opt/pr65554.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr69432.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr78373.C2
-rw-r--r--gcc/testsuite/g++.dg/opt/pr79267.C4
-rw-r--r--gcc/testsuite/g++.dg/opt/pr82159-2.C1
-rw-r--r--gcc/testsuite/g++.dg/opt/pr82929.C30
-rw-r--r--gcc/testsuite/g++.dg/other/array3.C1
-rw-r--r--gcc/testsuite/g++.dg/other/copy2.C10
-rw-r--r--gcc/testsuite/g++.dg/other/crash-5.C2
-rw-r--r--gcc/testsuite/g++.dg/other/crash-8.C2
-rw-r--r--gcc/testsuite/g++.dg/other/error34.C2
-rw-r--r--gcc/testsuite/g++.dg/other/i386-8.C2
-rw-r--r--gcc/testsuite/g++.dg/other/pr22003.C1
-rw-r--r--gcc/testsuite/g++.dg/other/pr24623.C2
-rw-r--r--gcc/testsuite/g++.dg/other/pr29610.C5
-rw-r--r--gcc/testsuite/g++.dg/other/pr42645-1.C2
-rw-r--r--gcc/testsuite/g++.dg/other/pr42645-2.C3
-rw-r--r--gcc/testsuite/g++.dg/other/pr52048.C1
-rw-r--r--gcc/testsuite/g++.dg/other/typedef3.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/addr1.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/defarg4.C5
-rw-r--r--gcc/testsuite/g++.dg/overload/operator5.C2
-rw-r--r--gcc/testsuite/g++.dg/overload/ref-conv1.C1
-rw-r--r--gcc/testsuite/g++.dg/overload/template5.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/crash40.C4
-rw-r--r--gcc/testsuite/g++.dg/parse/crash61.C1
-rw-r--r--gcc/testsuite/g++.dg/parse/crash67.C1
-rw-r--r--gcc/testsuite/g++.dg/parse/ctor5.C1
-rw-r--r--gcc/testsuite/g++.dg/parse/defarg4.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/defarg6.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/error5.C12
-rw-r--r--gcc/testsuite/g++.dg/parse/expr2.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/friend7.C1
-rw-r--r--gcc/testsuite/g++.dg/parse/namespace1.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/namespace9.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/ret-type2.C2
-rw-r--r--gcc/testsuite/g++.dg/parse/typedef8.C2
-rw-r--r--gcc/testsuite/g++.dg/pch/static-1.C2
-rw-r--r--gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C10
-rw-r--r--gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C2
-rw-r--r--gcc/testsuite/g++.dg/plugin/self-assign-test-1.C2
-rw-r--r--gcc/testsuite/g++.dg/plugin/self-assign-test-2.C2
-rw-r--r--gcc/testsuite/g++.dg/plugin/self-assign-test-3.C2
-rw-r--r--gcc/testsuite/g++.dg/pr45788.C2
-rw-r--r--gcc/testsuite/g++.dg/pr48484.C3
-rw-r--r--gcc/testsuite/g++.dg/pr50763-3.C2
-rw-r--r--gcc/testsuite/g++.dg/pr55513.C2
-rw-r--r--gcc/testsuite/g++.dg/pr55604.C2
-rw-r--r--gcc/testsuite/g++.dg/pr57662.C1
-rw-r--r--gcc/testsuite/g++.dg/pr57878.C2
-rw-r--r--gcc/testsuite/g++.dg/pr58389.C2
-rw-r--r--gcc/testsuite/g++.dg/pr59510.C1
-rw-r--r--gcc/testsuite/g++.dg/pr64688.C5
-rw-r--r--gcc/testsuite/g++.dg/pr65032.C2
-rw-r--r--gcc/testsuite/g++.dg/pr67989.C1
-rw-r--r--gcc/testsuite/g++.dg/pr70590-2.C4
-rw-r--r--gcc/testsuite/g++.dg/pr70590.C4
-rw-r--r--gcc/testsuite/g++.dg/pr70965.C2
-rw-r--r--gcc/testsuite/g++.dg/pr71633.C1
-rw-r--r--gcc/testsuite/g++.dg/pr77550.C2
-rw-r--r--gcc/testsuite/g++.dg/pr80287.C2
-rw-r--r--gcc/testsuite/g++.dg/pr80707.C2
-rw-r--r--gcc/testsuite/g++.dg/pr81194.C1
-rw-r--r--gcc/testsuite/g++.dg/spellcheck-identifiers.C2
-rw-r--r--gcc/testsuite/g++.dg/stackprotectexplicit2.C3
-rw-r--r--gcc/testsuite/g++.dg/tc1/dr152.C2
-rw-r--r--gcc/testsuite/g++.dg/template/aggr-init1.C2
-rw-r--r--gcc/testsuite/g++.dg/template/anon1.C4
-rw-r--r--gcc/testsuite/g++.dg/template/array29.C1
-rw-r--r--gcc/testsuite/g++.dg/template/array7.C1
-rw-r--r--gcc/testsuite/g++.dg/template/canon-type-8.C1
-rw-r--r--gcc/testsuite/g++.dg/template/cast5.C8
-rw-r--r--gcc/testsuite/g++.dg/template/conv1.C4
-rw-r--r--gcc/testsuite/g++.dg/template/crash107.C1
-rw-r--r--gcc/testsuite/g++.dg/template/crash23.C2
-rw-r--r--gcc/testsuite/g++.dg/template/crash8.C2
-rw-r--r--gcc/testsuite/g++.dg/template/defarg4.C2
-rw-r--r--gcc/testsuite/g++.dg/template/dependent-expr9.C2
-rw-r--r--gcc/testsuite/g++.dg/template/error10.C1
-rw-r--r--gcc/testsuite/g++.dg/template/friend32.C1
-rw-r--r--gcc/testsuite/g++.dg/template/init6.C2
-rw-r--r--gcc/testsuite/g++.dg/template/memfriend7.C2
-rw-r--r--gcc/testsuite/g++.dg/template/new10.C1
-rw-r--r--gcc/testsuite/g++.dg/template/nontype12.C2
-rw-r--r--gcc/testsuite/g++.dg/template/overload12.C2
-rw-r--r--gcc/testsuite/g++.dg/template/overload5.C1
-rw-r--r--gcc/testsuite/g++.dg/template/overload8.C2
-rw-r--r--gcc/testsuite/g++.dg/template/partial10.C3
-rw-r--r--gcc/testsuite/g++.dg/template/partial9.C2
-rw-r--r--gcc/testsuite/g++.dg/template/qual1.C2
-rw-r--r--gcc/testsuite/g++.dg/template/show-template-tree-3.C1
-rw-r--r--gcc/testsuite/g++.dg/template/sizeof8.C2
-rw-r--r--gcc/testsuite/g++.dg/template/sizeof9.C2
-rw-r--r--gcc/testsuite/g++.dg/template/spec6.C2
-rw-r--r--gcc/testsuite/g++.dg/template/spec7.C2
-rw-r--r--gcc/testsuite/g++.dg/template/typedef8.C1
-rw-r--r--gcc/testsuite/g++.dg/template/using20.C1
-rw-r--r--gcc/testsuite/g++.dg/template/vla1.C1
-rw-r--r--gcc/testsuite/g++.dg/tls/thread_local3.C1
-rw-r--r--gcc/testsuite/g++.dg/tls/thread_local3g.C1
-rw-r--r--gcc/testsuite/g++.dg/tls/thread_local5.C1
-rw-r--r--gcc/testsuite/g++.dg/tls/thread_local5g.C1
-rw-r--r--gcc/testsuite/g++.dg/tls/thread_local6.C1
-rw-r--r--gcc/testsuite/g++.dg/tls/thread_local6g.C1
-rw-r--r--gcc/testsuite/g++.dg/tm/cgraph_edge.C1
-rw-r--r--gcc/testsuite/g++.dg/tm/pr46646.C1
-rw-r--r--gcc/testsuite/g++.dg/tm/pr47554.C2
-rw-r--r--gcc/testsuite/g++.dg/tm/pr47573.C1
-rw-r--r--gcc/testsuite/g++.dg/tm/unsafe1.C2
-rw-r--r--gcc/testsuite/g++.dg/tm/unsafe2.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/20070621-1.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/20090329-1.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/20141013.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess1.C15
-rw-r--r--gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess2.C11
-rw-r--r--gcc/testsuite/g++.dg/torture/pr33134.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr33340.C4
-rw-r--r--gcc/testsuite/g++.dg/torture/pr33627.C6
-rw-r--r--gcc/testsuite/g++.dg/torture/pr34222.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr34241.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr34641.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr34850.C3
-rw-r--r--gcc/testsuite/g++.dg/torture/pr35164-1.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr36745.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr38705.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr38811.C4
-rw-r--r--gcc/testsuite/g++.dg/torture/pr39362.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr39732.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr40991.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr41775.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr42183.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr42450.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr42704.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr42760.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr42773.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr42883.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr43905.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr44148.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr44295.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr44357.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr44813.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr45580.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr45874.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr45877.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr46383.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr46469.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr47313.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr48271.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr48695.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr49615.C3
-rw-r--r--gcc/testsuite/g++.dg/torture/pr49770.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr49938.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr51436.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr51482.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr51737.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr51959.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr52772.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr52918-2.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr53011.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr53602.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr53752.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr54838.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr54902.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr56029.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr56768.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr57107.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr57140.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr57235.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr58252.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr58555.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr59208.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr60438-1.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr60746.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr61554.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr63419.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr63476.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr63512.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64282.C4
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64378.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64565.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64568-2.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64669.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64686.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64978.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr64995.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr65655.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr65851.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr67055.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr67191.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr68852.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr69264.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr70971.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr77674.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr77947.C3
-rw-r--r--gcc/testsuite/g++.dg/torture/pr78268.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr78507.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr78692.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr80171.C1
-rw-r--r--gcc/testsuite/g++.dg/torture/pr82154.C2
-rw-r--r--gcc/testsuite/g++.dg/torture/pr82902.C21
-rw-r--r--gcc/testsuite/g++.dg/torture/pr82985.C458
-rw-r--r--gcc/testsuite/g++.dg/tree-prof/pr79259.C2
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/copyprop.C2
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr22444.C1
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr23948.C2
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr24172.C2
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C1
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr27283.C1
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr27291.C1
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr27548.C1
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C7
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr33604.C2
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr34355.C1
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr41428.C7
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr42337.C1
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr81408.C12
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pred-1.C4
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr65019.C2
-rw-r--r--gcc/testsuite/g++.dg/ubsan/pr65583.C1
-rw-r--r--gcc/testsuite/g++.dg/ubsan/vptr-12.C22
-rw-r--r--gcc/testsuite/g++.dg/vect/pr60836.cc2
-rw-r--r--gcc/testsuite/g++.dg/vect/pr68145.cc1
-rw-r--r--gcc/testsuite/g++.dg/vect/pr70729-nest.cc2
-rw-r--r--gcc/testsuite/g++.dg/vect/pr70729.cc2
-rw-r--r--gcc/testsuite/g++.dg/warn/Waddress-3.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wconversion-null-2.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wnull-conversion-2.C3
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-10.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-11.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-12.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-25.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-6.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-7.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-8.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-9.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wshadow-5.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wtype-limits-no.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wtype-limits.C4
-rw-r--r--gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C2
-rw-r--r--gcc/testsuite/g++.dg/warn/pmf1.C1
-rw-r--r--gcc/testsuite/g++.dg/warn/string1.C2
506 files changed, 1453 insertions, 369 deletions
diff --git a/gcc/testsuite/g++.dg/abi/abi-tag14.C b/gcc/testsuite/g++.dg/abi/abi-tag14.C
index a66e6552cba..3017f492cda 100644
--- a/gcc/testsuite/g++.dg/abi/abi-tag14.C
+++ b/gcc/testsuite/g++.dg/abi/abi-tag14.C
@@ -8,20 +8,20 @@ inline namespace __cxx11 __attribute ((abi_tag ("cxx11"))) {
A a; // { dg-warning "\"cxx11\"" }
// { dg-final { scan-assembler "_Z1fB5cxx11v" } }
-A f() {} // { dg-warning "\"cxx11\"" }
+A f() { return a; } // { dg-warning "\"cxx11\"" }
namespace {
A a2;
- A f2() {}
+ A f2() { return a2; }
struct B: A {};
}
// { dg-final { scan-assembler "_Z1fPN7__cxx111AE" } }
-A f(A*) {}
+A f(A*) { return a; }
// { dg-final { scan-assembler "_Z1gIN7__cxx111AEET_v" } }
template <class T> T g() { }
-template <> A g<A>() { }
+template <> A g<A>() { return a; }
// { dg-final { scan-assembler "_Z1vIN7__cxx111AEE" { target c++14 } } }
#if __cplusplus >= 201402L
diff --git a/gcc/testsuite/g++.dg/abi/abi-tag18.C b/gcc/testsuite/g++.dg/abi/abi-tag18.C
index 89ee737bf57..ad8e16e692b 100644
--- a/gcc/testsuite/g++.dg/abi/abi-tag18.C
+++ b/gcc/testsuite/g++.dg/abi/abi-tag18.C
@@ -11,9 +11,11 @@ inline A1 f() {
struct T {
A2 g() { // { dg-warning "mangled name" }
static X x; // { dg-warning "mangled name" }
+ return A2();
}
};
T().g();
+ return A1();
}
int main() {
f();
diff --git a/gcc/testsuite/g++.dg/abi/abi-tag18a.C b/gcc/testsuite/g++.dg/abi/abi-tag18a.C
index f65f629bd94..6c569502338 100644
--- a/gcc/testsuite/g++.dg/abi/abi-tag18a.C
+++ b/gcc/testsuite/g++.dg/abi/abi-tag18a.C
@@ -11,9 +11,11 @@ inline A1 f() {
struct T {
A2 g() {
static X x;
+ return A2();
}
};
T().g();
+ return A1();
}
int main() {
f();
diff --git a/gcc/testsuite/g++.dg/abi/covariant2.C b/gcc/testsuite/g++.dg/abi/covariant2.C
index 3231cc4c84c..6c55ad6bb67 100644
--- a/gcc/testsuite/g++.dg/abi/covariant2.C
+++ b/gcc/testsuite/g++.dg/abi/covariant2.C
@@ -10,7 +10,7 @@ struct c1 {};
struct c3 : virtual c1
{
- virtual c1* f6() {}
+ virtual c1* f6() { return 0; }
int i;
};
@@ -18,7 +18,7 @@ struct c6 : virtual c3 { };
struct c7 : c3
{
- virtual c3* f6() {}
+ virtual c3* f6() { return 0; }
};
struct c24 : virtual c7
diff --git a/gcc/testsuite/g++.dg/abi/covariant3.C b/gcc/testsuite/g++.dg/abi/covariant3.C
index 178157c58b2..09b9912524d 100644
--- a/gcc/testsuite/g++.dg/abi/covariant3.C
+++ b/gcc/testsuite/g++.dg/abi/covariant3.C
@@ -34,7 +34,7 @@ struct c28 : virtual c0, virtual c11 {
virtual c18* f6();
};
-c0 *c1::f6 () {}
+c0 *c1::f6 () { return 0; }
void c5::foo () {}
void c10::foo () {}
void c18::bar () {}
diff --git a/gcc/testsuite/g++.dg/abi/mangle7.C b/gcc/testsuite/g++.dg/abi/mangle7.C
index af178d3e599..14c65a24da8 100644
--- a/gcc/testsuite/g++.dg/abi/mangle7.C
+++ b/gcc/testsuite/g++.dg/abi/mangle7.C
@@ -1,6 +1,6 @@
/* { dg-do compile } */
typedef void *const t1[2];
-float const f1(t1 (&)[79], ...) {}
+float const f1(t1 (&)[79], ...) { return 0.0f; }
/* { dg-final { scan-assembler _Z2f1RA79_A2_KPvz } } */
diff --git a/gcc/testsuite/g++.dg/asan/pr81340.C b/gcc/testsuite/g++.dg/asan/pr81340.C
index 76ac08a9a56..9db5bb46ce7 100644
--- a/gcc/testsuite/g++.dg/asan/pr81340.C
+++ b/gcc/testsuite/g++.dg/asan/pr81340.C
@@ -10,13 +10,13 @@ public:
a(char *) : c(0, d) {}
};
class e {
- int f(const int &, const int &, const int &, bool, bool, bool, int, bool);
+ void f(const int &, const int &, const int &, bool, bool, bool, int, bool);
};
class g {
public:
static g *h();
void i(a, void *);
};
-int e::f(const int &, const int &, const int &, bool j, bool, bool, int, bool) {
+void e::f(const int &, const int &, const int &, bool j, bool, bool, int, bool) {
g::h()->i("", &j);
}
diff --git a/gcc/testsuite/g++.dg/asan/pr82792.C b/gcc/testsuite/g++.dg/asan/pr82792.C
new file mode 100644
index 00000000000..99f1c35328c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/asan/pr82792.C
@@ -0,0 +1,32 @@
+/* PR sanitizer/82792 */
+/* { dg-do compile } */
+/* { dg-options "-fsanitize=address" } */
+
+extern int
+test (int i, int j)
+{
+ long c;
+ (c) = 1;
+ switch (i)
+ {
+ case 1:
+ if (j)
+ {
+ c = 1;
+ }
+ goto default_case;
+ case 2:
+ {
+ if (j)
+ {
+ c = 0;
+ }
+ }
+ __attribute ((fallthrough));
+ default_case:
+ default:
+ c = 0;
+ break;
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/g++.dg/bprob/g++-bprob-1.C b/gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
index b1a1de77e98..3aafc06d51d 100644
--- a/gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
+++ b/gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
@@ -35,7 +35,7 @@ test_for2 (int m, int n, int o)
return for_temp; /* count(6) */
}
-int
+void
call_for ()
{
for_val1 += test_for1 (0);
diff --git a/gcc/testsuite/g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc b/gcc/testsuite/g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc
index db81912cbe5..111a2a29686 100644
--- a/gcc/testsuite/g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.cc
@@ -15,6 +15,8 @@ T my_func (T *x, T y)
*x = y;
else
*x = *x;
+
+ return T();
}
template <class T> T my_func (T *x, T y);
diff --git a/gcc/testsuite/g++.dg/cilk-plus/CK/pr68997.cc b/gcc/testsuite/g++.dg/cilk-plus/CK/pr68997.cc
index b442bf9cc24..a9a8a51ce7e 100644
--- a/gcc/testsuite/g++.dg/cilk-plus/CK/pr68997.cc
+++ b/gcc/testsuite/g++.dg/cilk-plus/CK/pr68997.cc
@@ -16,7 +16,7 @@ struct A2 {
};
A2 fa2 () {
- A2 ();
+ return A2 ();
}
struct B1 {
diff --git a/gcc/testsuite/g++.dg/concepts/fn8.C b/gcc/testsuite/g++.dg/concepts/fn8.C
index 5c796c7e3b2..b91f1ae9511 100644
--- a/gcc/testsuite/g++.dg/concepts/fn8.C
+++ b/gcc/testsuite/g++.dg/concepts/fn8.C
@@ -12,7 +12,7 @@ void (*p2)(int) = &f<int>; // { dg-error "no matches" }
void (*p3)(int) = &f; // { dg-error "no matches" }
struct S {
- template<Class T> int f(T) { }
+ template<Class T> int f(T) { return 0; }
};
auto p4 = &S::template f<int>; // { dg-error "no matches" }
diff --git a/gcc/testsuite/g++.dg/concepts/pr65575.C b/gcc/testsuite/g++.dg/concepts/pr65575.C
index e027dccf7d8..6745b843d31 100644
--- a/gcc/testsuite/g++.dg/concepts/pr65575.C
+++ b/gcc/testsuite/g++.dg/concepts/pr65575.C
@@ -14,7 +14,7 @@ int (*p)() requires true; // { dg-error "" }
int (&p)() requires true; // { dg-error "" }
int g(int (*)() requires true); // { dg-error "" }
-int f() { }
+int f() { return 0; }
int
main()
diff --git a/gcc/testsuite/g++.dg/concepts/template-parm11.C b/gcc/testsuite/g++.dg/concepts/template-parm11.C
index 73f38815fb7..352acc2271d 100644
--- a/gcc/testsuite/g++.dg/concepts/template-parm11.C
+++ b/gcc/testsuite/g++.dg/concepts/template-parm11.C
@@ -12,7 +12,7 @@ template<NameProvider... ColSpec>
void getTable(const ColSpec&...)
{}
-int f()
+void f()
{
getTable(7, 'a'); // { dg-error "cannot call" }
};
diff --git a/gcc/testsuite/g++.dg/conversion/op6.C b/gcc/testsuite/g++.dg/conversion/op6.C
index 9aec9f0a808..8a5efc4023a 100644
--- a/gcc/testsuite/g++.dg/conversion/op6.C
+++ b/gcc/testsuite/g++.dg/conversion/op6.C
@@ -3,9 +3,9 @@
template<class T> class smart_pointer {
public:
- operator T* () const { }
- operator bool () const { }
- operator bool () { }
+ operator T* () const { return 0; }
+ operator bool () const { return true; }
+ operator bool () { return true; }
};
class Context { };
typedef smart_pointer<Context> ContextP;
diff --git a/gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C b/gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C
index 39592b26a58..dd316d1ace5 100644
--- a/gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/Wunused-variable-1.C
@@ -15,6 +15,7 @@ int
foo ()
{
C {} (1, 1L, 1LL, 1.0);
+ return 0;
}
template<int N>
diff --git a/gcc/testsuite/g++.dg/cpp0x/access01.C b/gcc/testsuite/g++.dg/cpp0x/access01.C
index 55c951f97d6..3a7cee4156a 100644
--- a/gcc/testsuite/g++.dg/cpp0x/access01.C
+++ b/gcc/testsuite/g++.dg/cpp0x/access01.C
@@ -6,7 +6,7 @@ class A
{
T p;
public:
- template <class U> auto f() -> decltype(+p) { }
+ template <class U> auto f() -> decltype(+p) { return p; }
};
int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/alignas3.C b/gcc/testsuite/g++.dg/cpp0x/alignas3.C
index aa62e5afb2d..af3f171bb3f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/alignas3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/alignas3.C
@@ -16,5 +16,5 @@ template <class, class Y> typename F<Y>::ret_type cast(Y &);
class CompoundStmt;
class alignas(8) Stmt {
Stmt *Children[1];
- CompoundStmt *getBlock() const { cast<CompoundStmt>(Children[0]); }
+ CompoundStmt *getBlock() const { cast<CompoundStmt>(Children[0]); return 0; }
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/auto2.C b/gcc/testsuite/g++.dg/cpp0x/auto2.C
index cff36d212af..e967b9423a5 100644
--- a/gcc/testsuite/g++.dg/cpp0x/auto2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/auto2.C
@@ -4,12 +4,12 @@
#include <typeinfo>
extern "C" void abort();
-int f() {}
+int f() { return 0; }
struct A
{
int i;
- int f() {}
+ int f() { return 0; }
A operator+(A a) { return a; }
};
@@ -70,4 +70,5 @@ int main()
}
auto j = 42, k = 24;
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C
index c6afa507f02..f722b25ec3d 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-array17.C
@@ -18,6 +18,7 @@ struct D {
template <typename _ForwardIterator, typename _Size>
static _ForwardIterator __uninit_default_n(_ForwardIterator p1, _Size) {
_Construct(p1);
+ return _ForwardIterator();
}
};
template <typename _ForwardIterator, typename _Size>
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C
index f1ca05fe9ec..515576e1f62 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-defarg2.C
@@ -25,6 +25,9 @@ struct A : D
A baz (const char *, A = C ());
+C c;
+A a (c);
+
A
B::foo ()
{
@@ -35,10 +38,13 @@ B::foo ()
catch (...)
{
}
+
+ return a;
}
A
B::bar ()
{
baz ("bar");
+ return a;
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C
index d59f465715d..d58e2ec6b15 100644
--- a/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-memfn1.C
@@ -13,6 +13,6 @@ constexpr X X::g(X x) { return x; }
struct Y
{
Y() { }
- constexpr Y f(Y y) {} // { dg-error "constexpr" }
- static constexpr Y g(Y y) {} // { dg-error "constexpr" }
+ constexpr Y f(Y y) { return y; } // { dg-error "constexpr" }
+ static constexpr Y g(Y y) { return y; } // { dg-error "constexpr" }
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/constexpr-template11.C b/gcc/testsuite/g++.dg/cpp0x/constexpr-template11.C
new file mode 100644
index 00000000000..0ad49088ad1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-template11.C
@@ -0,0 +1,16 @@
+// PR c++/65579
+// { dg-do link { target c++11 } }
+
+template <typename>
+struct S {
+ int i;
+};
+
+struct T {
+ static constexpr S<int> s = { 1 };
+};
+
+int main()
+{
+ return T::s.i;
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/dc1.C b/gcc/testsuite/g++.dg/cpp0x/dc1.C
index e7ccb64a3b3..5ce50764b5f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/dc1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/dc1.C
@@ -27,7 +27,7 @@ struct D : public C {
D (int _i) : C(), i(_i) { }
D () : D(-1) { }
virtual ~D() { }
- virtual int f () { }
+ virtual int f () { return 0; }
};
void f_D () { C* c = new D(); }
diff --git a/gcc/testsuite/g++.dg/cpp0x/dc3.C b/gcc/testsuite/g++.dg/cpp0x/dc3.C
index 9c6fd56564c..9c1fd53e4fe 100644
--- a/gcc/testsuite/g++.dg/cpp0x/dc3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/dc3.C
@@ -43,7 +43,7 @@ struct D<X> : public C {
D (int _i) : C(), i(_i) { }
D () : D(-1) { }
virtual ~D() { }
- virtual int f () { }
+ virtual int f () { return 0; }
};
void f_D () { D<X>* d = new D<X>(); }
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype12.C b/gcc/testsuite/g++.dg/cpp0x/decltype12.C
index eae318db2df..58fd415eea5 100644
--- a/gcc/testsuite/g++.dg/cpp0x/decltype12.C
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype12.C
@@ -1,4 +1,6 @@
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
+
template<typename T, typename U>
struct is_same
{
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype17.C b/gcc/testsuite/g++.dg/cpp0x/decltype17.C
index 6e5854db6c9..47b70ecd89c 100644
--- a/gcc/testsuite/g++.dg/cpp0x/decltype17.C
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype17.C
@@ -1,5 +1,6 @@
// PR c++/36628
// { dg-do run { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
#include <typeinfo>
#include <string.h>
@@ -25,4 +26,6 @@ int main()
return 2;
if (strcmp (typeid(h).name(), "FOivE") != 0)
return 3;
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype3.C b/gcc/testsuite/g++.dg/cpp0x/decltype3.C
index b2e66243cc7..b921dd6d899 100644
--- a/gcc/testsuite/g++.dg/cpp0x/decltype3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype3.C
@@ -49,7 +49,7 @@ public:
int a;
enum B_enum { b };
decltype(a) c;
- decltype(a) foo() { }
+ decltype(a) foo() { return 0; }
decltype(b) enums_are_in_scope() { return b; } // ok
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype41.C b/gcc/testsuite/g++.dg/cpp0x/decltype41.C
index 1439e15c0d4..65f75b1e4fa 100644
--- a/gcc/testsuite/g++.dg/cpp0x/decltype41.C
+++ b/gcc/testsuite/g++.dg/cpp0x/decltype41.C
@@ -23,15 +23,15 @@ class B
template <class T>
struct C
{
- template <class U> decltype (a.i) f() { } // #1
- template <class U> decltype (b.i) f() { } // #2
+ template <class U> decltype (a.i) f() { return 0; } // #1
+ template <class U> decltype (b.i) f() { return 1; } // #2
};
template <class T>
struct D
{
- template <class U> decltype (A::j) f() { } // #1
- template <class U> decltype (B::j) f() { } // #2
+ template <class U> decltype (A::j) f() { return 2; } // #1
+ template <class U> decltype (B::j) f() { return 3; } // #2
};
int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/defaulted28.C b/gcc/testsuite/g++.dg/cpp0x/defaulted28.C
index 451a1b4198f..0e04dbfb8d7 100644
--- a/gcc/testsuite/g++.dg/cpp0x/defaulted28.C
+++ b/gcc/testsuite/g++.dg/cpp0x/defaulted28.C
@@ -9,7 +9,7 @@ private:
A(A const&) = default; // { dg-message "private" }
};
-int f(...) { }
+int f(...) { return 0; }
int main() {
A a;
f(a); // { dg-error "this context" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/enum_base3.C b/gcc/testsuite/g++.dg/cpp0x/enum_base3.C
index 3cb2d6d8186..5f7e83e1419 100644
--- a/gcc/testsuite/g++.dg/cpp0x/enum_base3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/enum_base3.C
@@ -17,7 +17,7 @@ struct C
};
struct D : C
{
- B foo () const { B a; a.foo (d); }
+ B foo () const { B a; a.foo (d); return B(); }
H d;
};
struct F : C
diff --git a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C
index eb585a89be4..023d8396777 100644
--- a/gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C
+++ b/gcc/testsuite/g++.dg/cpp0x/gen-attrs-4.C
@@ -22,7 +22,7 @@ void two [[gnu::unused]] (void) {}
int
five(void)
[[noreturn]] // { dg-warning "ignored" }
-{}
+{ return 0; }
[[noreturn]]
void
diff --git a/gcc/testsuite/g++.dg/cpp0x/initlist96.C b/gcc/testsuite/g++.dg/cpp0x/initlist96.C
index 45fd128ba83..94e9c0eb148 100644
--- a/gcc/testsuite/g++.dg/cpp0x/initlist96.C
+++ b/gcc/testsuite/g++.dg/cpp0x/initlist96.C
@@ -1,5 +1,6 @@
// PR c++/66515
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
#include <initializer_list>
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-58566.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-58566.C
index 3101d0a895c..7bcfe3ae70b 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-58566.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-58566.C
@@ -6,5 +6,6 @@ struct A
int foo()
{
[this]{ return foo; }; // { dg-error "invalid use of member function|cannot convert" }
+ return 0;
}
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv10.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv10.C
index 8e806c849ae..c2a60900b35 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv10.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv10.C
@@ -1,5 +1,6 @@
// PR c++/69889
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
template <typename F> struct Tag {
static void fp() { f()(0); }
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv12.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv12.C
index 16adee6b9c3..e1bd38a7bf7 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv12.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-conv12.C
@@ -1,5 +1,6 @@
// PR c++/80767
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
template <typename T, typename U = T> struct A { using type = U; };
template <typename F, typename... G> struct B : B<F>::type, B<G...>::type {
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C
index 1c593930133..27aac578c07 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C
@@ -10,7 +10,7 @@ struct function
template<typename T> struct C
{
- static T test(function f = [](int i){return i;}) { }
+ static T test(function f = [](int i){return i;}) { return T(); }
};
int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C
index fa8a6e63a93..371d03f941f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice3.C
@@ -14,6 +14,8 @@ bool Klass::dostuff()
if (local & 1) { return true; } // { dg-error "not captured|non-static" }
return false;
};
+
+ return true;
}
int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C
index 914e0f71e00..50a340dbb22 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice5.C
@@ -4,6 +4,7 @@
template<int> int foo()
{
[] (void i) { return 0; } (0); // { dg-error "incomplete|invalid|no match" }
+ return 0;
}
void bar()
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C
index 9e509513ad9..27954f9408c 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nested2.C
@@ -13,7 +13,7 @@ void f1(int i) {
};
struct s1 {
int f;
- int work(int n) {
+ void work(int n) {
int m = n*n;
int j = 40;
auto m3 = [this,m]{
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C
index ee87defac9f..328410e29aa 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-switch.C
@@ -16,7 +16,7 @@ main ()
break; // { dg-error "break" }
}
};
- l = []() // { dg-warning "statement will never be executed" }
+ l = []()
{
case 3: // { dg-error "case" }
break; // { dg-error "break" }
@@ -24,3 +24,5 @@ main ()
}
}
}
+
+// { dg-prune-output "\\\[-Wswitch-unreachable]" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C
index 66cc7a4e1df..17c6a6e5b52 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template.C
@@ -9,7 +9,7 @@ auto apply (T t) -> decltype (t())
}
template <class T>
-T f(T t)
+void f(T t)
{
T t2 = t;
if (t != [=]()->T { return t; }())
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template12.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template12.C
index 635af97d763..5dfd6ede19c 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template12.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template12.C
@@ -14,6 +14,7 @@ class X
[&a]{
typename remove_reference < decltype (a) >::type t;
};
+ return true;
}
};
template class X< int >;
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C
index 29f63afe0df..8fbb821a4d3 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template2.C
@@ -10,7 +10,7 @@ struct T
foo (S<N> *p)
{
S<N> u;
- [&u] ()->bool {} ();
+ [&u] ()->bool { return true; } ();
}
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C
index ef573b19e02..41e4edd8a0f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C
+++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-this12.C
@@ -3,7 +3,7 @@
struct A
{
- int f() {}
+ int f() { return 0; }
int i;
void foo()
diff --git a/gcc/testsuite/g++.dg/cpp0x/nolinkage1.C b/gcc/testsuite/g++.dg/cpp0x/nolinkage1.C
index d38028c4b43..474727c135c 100644
--- a/gcc/testsuite/g++.dg/cpp0x/nolinkage1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/nolinkage1.C
@@ -18,4 +18,4 @@ static void g()
A<B> a;
}
-int main() { g(); f(0); }
+int main() { g(); f(0); return 0; }
diff --git a/gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc b/gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc
index f8528f3e650..6672323fdd4 100644
--- a/gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc
+++ b/gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc
@@ -12,4 +12,4 @@ static void g()
A<B> a;
}
-int dummy() { g(); f(0); }
+int dummy() { g(); f(0); return 0; }
diff --git a/gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C b/gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C
index fdaf4611ee2..5f23d463003 100644
--- a/gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C
+++ b/gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C
@@ -7,7 +7,7 @@ template<> struct A1<0>
{
template<typename, typename...> struct B1
{
- template<typename> int foo1() {}
+ template<typename> int foo1() { return 0; }
int i1 = foo1<int>();
};
@@ -19,7 +19,7 @@ template<> struct A2<0>
{
template<typename, typename> struct B2
{
- template<typename> int foo2() {}
+ template<typename> int foo2() { return 1; }
int i2 = foo2<int>();
};
@@ -31,7 +31,7 @@ template<> struct A3<0>
{
template<typename> struct B3
{
- template<typename> int foo3() {}
+ template<typename> int foo3() { return 2; }
int i3 = foo3<int>();
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/parse1.C b/gcc/testsuite/g++.dg/cpp0x/parse1.C
index 5a11b7337a4..9a2698435b6 100644
--- a/gcc/testsuite/g++.dg/cpp0x/parse1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/parse1.C
@@ -2,4 +2,4 @@
// { dg-do compile { target c++11 } }
typedef int B; // { dg-message "" }
-B::B() {} // { dg-error "" }
+B::B() { return 0; } // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr34054.C b/gcc/testsuite/g++.dg/cpp0x/pr34054.C
index 8043f9660ed..7a8b3249701 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr34054.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr34054.C
@@ -1,4 +1,4 @@
// PR c++/34054
// { dg-do compile { target c++11 } }
-template<typename... T> T foo() {} // { dg-error "not expanded|T" }
+template<typename... T> T foo() { return T(); } // { dg-error "not expanded|T" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr47416.C b/gcc/testsuite/g++.dg/cpp0x/pr47416.C
index e4eb317e771..cbe2ed09ff8 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr47416.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr47416.C
@@ -1,5 +1,6 @@
// PR c++/47416
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
namespace std
{
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr58781.C b/gcc/testsuite/g++.dg/cpp0x/pr58781.C
index 58c972f90f3..069fcd5f6dc 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr58781.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr58781.C
@@ -9,7 +9,7 @@ operator""_s(const char32_t *a, size_t b)
return 0;
}
-int
+void
f()
{
using a = decltype(U"\x1181"_s);
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr70538.C b/gcc/testsuite/g++.dg/cpp0x/pr70538.C
index 0347c856c55..05665d6b935 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr70538.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr70538.C
@@ -11,5 +11,5 @@ class B {
template <typename> class C : B {
using base_type = B;
base_type::base_type; // { dg-warning "access declarations" }
- PathComponentPiece m_fn1() {}
+ PathComponentPiece m_fn1() { return PathComponentPiece(); }
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr81325.C b/gcc/testsuite/g++.dg/cpp0x/pr81325.C
index 11f0900caa2..47f32134477 100644
--- a/gcc/testsuite/g++.dg/cpp0x/pr81325.C
+++ b/gcc/testsuite/g++.dg/cpp0x/pr81325.C
@@ -35,7 +35,7 @@ struct I {
};
template <typename ResultT, typename ArgT> struct J {
void operator()();
- ResultT operator()(ArgT) {}
+ ResultT operator()(ArgT) { return ResultT(); }
};
struct K {
int AllowBind;
diff --git a/gcc/testsuite/g++.dg/cpp0x/range-for13.C b/gcc/testsuite/g++.dg/cpp0x/range-for13.C
index 100f531f760..9ed0458adcc 100644
--- a/gcc/testsuite/g++.dg/cpp0x/range-for13.C
+++ b/gcc/testsuite/g++.dg/cpp0x/range-for13.C
@@ -7,10 +7,12 @@
template<typename T> int *begin(T &t)
{
T::fail;
+ return 0;
}
template<typename T> int *end(T &t)
{
T::fail;
+ return 0;
}
struct container1
diff --git a/gcc/testsuite/g++.dg/cpp0x/range-for14.C b/gcc/testsuite/g++.dg/cpp0x/range-for14.C
index f43e1abcde7..4e0333cf927 100644
--- a/gcc/testsuite/g++.dg/cpp0x/range-for14.C
+++ b/gcc/testsuite/g++.dg/cpp0x/range-for14.C
@@ -7,10 +7,12 @@
template<typename T> int *begin(T &t)
{
T::fail;
+ return 0;
}
template<typename T> int *end(T &t)
{
T::fail;
+ return 0;
}
//Test for defaults
diff --git a/gcc/testsuite/g++.dg/cpp0x/range-for6.C b/gcc/testsuite/g++.dg/cpp0x/range-for6.C
index 366499a34d8..b4d9dd720ee 100644
--- a/gcc/testsuite/g++.dg/cpp0x/range-for6.C
+++ b/gcc/testsuite/g++.dg/cpp0x/range-for6.C
@@ -14,6 +14,8 @@ template<typename T> T foo()
sum += x;
if (sum != T(10))
abort();
+
+ return sum;
}
int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C b/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
index b729dc83df1..09732d17cdd 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv-trivial-bug.C
@@ -24,6 +24,7 @@ int test2()
assert(move_assign == 0);
b = static_cast<base2&&>(b2);
assert(move_assign == 1);
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv2n.C b/gcc/testsuite/g++.dg/cpp0x/rv2n.C
index 663a66b6d90..65eda80fba0 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv2n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv2n.C
@@ -144,6 +144,7 @@ int test2_18()
sink_2_18(ca); // { dg-error "" }
sink_2_18(va); // { dg-error "" }
sink_2_18(cva); // { dg-error "" }
+ return 0;
}
two sink_2_23(const A&);
@@ -250,6 +251,7 @@ int test2_28()
const volatile A cva = a; // { dg-error "deleted" }
sink_2_28(va); // { dg-error "" }
sink_2_28(cva); // { dg-error "" }
+ return 0;
}
three sink_2_35(volatile A&);
@@ -304,7 +306,7 @@ int test2_37()
three sink_2_38(volatile A&);
eight sink_2_38(const volatile A&&);
-int test2_38()
+void test2_38()
{
A a;
const A ca = a; // { dg-error "deleted" }
@@ -396,7 +398,7 @@ int test2_57()
five sink_2_58( A&&);
eight sink_2_58(const volatile A&&);
-int test2_58()
+void test2_58()
{
A a;
const A ca = a; // { dg-error "deleted" }
@@ -439,6 +441,7 @@ int test2_68()
sink_2_68(ca); // { dg-error "" }
sink_2_68(va); // { dg-error "" }
sink_2_68(cva); // { dg-error "" }
+ return 0;
}
seven sink_2_78(volatile A&&);
@@ -454,6 +457,7 @@ int test2_78()
sink_2_78(ca); // { dg-error "" }
sink_2_78(va); // { dg-error "" }
sink_2_78(cva); // { dg-error "" }
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/cpp0x/rv3n.C b/gcc/testsuite/g++.dg/cpp0x/rv3n.C
index b7c1d7a2343..4549438f8ef 100644
--- a/gcc/testsuite/g++.dg/cpp0x/rv3n.C
+++ b/gcc/testsuite/g++.dg/cpp0x/rv3n.C
@@ -124,6 +124,7 @@ int test3_128()
sink_3_128(va); // { dg-error "" }
sink_3_128(cva); // { dg-error "" }
+ return 0;
}
one sink_3_134( A&);
diff --git a/gcc/testsuite/g++.dg/cpp0x/static_assert10.C b/gcc/testsuite/g++.dg/cpp0x/static_assert10.C
index e7f728e3f4f..ffbf3c047eb 100644
--- a/gcc/testsuite/g++.dg/cpp0x/static_assert10.C
+++ b/gcc/testsuite/g++.dg/cpp0x/static_assert10.C
@@ -5,4 +5,5 @@ template<typename T> bool foo(T)
{
int i;
static_assert(foo(i), "Error"); // { dg-error "non-constant condition|not usable|non-constexpr" }
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/cpp0x/static_assert11.C b/gcc/testsuite/g++.dg/cpp0x/static_assert11.C
index 8a7362d5f56..36bf458e25f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/static_assert11.C
+++ b/gcc/testsuite/g++.dg/cpp0x/static_assert11.C
@@ -6,5 +6,6 @@ struct A
template<typename T> bool foo(T)
{
static_assert(foo(0), "Error"); // { dg-error "non-constant condition|constant expression" }
+ return true;
}
};
diff --git a/gcc/testsuite/g++.dg/cpp0x/static_assert12.C b/gcc/testsuite/g++.dg/cpp0x/static_assert12.C
index ff6f40d918f..5d59e540910 100644
--- a/gcc/testsuite/g++.dg/cpp0x/static_assert12.C
+++ b/gcc/testsuite/g++.dg/cpp0x/static_assert12.C
@@ -14,7 +14,7 @@ template<>
};
template<typename T>
- T
+ void
float_thing(T __x)
{
static_assert(is_float<T>::value, ""); // { dg-error "static assertion failed" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/static_assert13.C b/gcc/testsuite/g++.dg/cpp0x/static_assert13.C
index 86b0b0360d9..7332ff91882 100644
--- a/gcc/testsuite/g++.dg/cpp0x/static_assert13.C
+++ b/gcc/testsuite/g++.dg/cpp0x/static_assert13.C
@@ -14,7 +14,7 @@ template<>
};
template<typename T>
- T
+ void
float_thing(T __x)
{
static_assert(is_float<T>::value, ""); // { dg-error "static assertion failed" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/trailing1.C b/gcc/testsuite/g++.dg/cpp0x/trailing1.C
index 7d9a906d4f3..ecf092bda0d 100644
--- a/gcc/testsuite/g++.dg/cpp0x/trailing1.C
+++ b/gcc/testsuite/g++.dg/cpp0x/trailing1.C
@@ -40,9 +40,9 @@ decltype(*(T*)0+*(U*)0) add4(T t, U u)
template <class T>
struct A
{
- T f() {}
+ T f() { return T(); }
template <class U>
- T g() {}
+ T g() { return T(); }
template <class V>
struct B
{
diff --git a/gcc/testsuite/g++.dg/cpp0x/trailing5.C b/gcc/testsuite/g++.dg/cpp0x/trailing5.C
index 48f31452e5b..32390d60897 100644
--- a/gcc/testsuite/g++.dg/cpp0x/trailing5.C
+++ b/gcc/testsuite/g++.dg/cpp0x/trailing5.C
@@ -2,9 +2,9 @@
// { dg-do compile { target c++11 } }
struct A {};
-auto foo() -> struct A {}
+auto foo() -> struct A { return A(); }
enum B {};
-auto bar() -> enum B {}
+auto bar() -> enum B { return B(); }
auto baz() -> struct C {} {} // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-macros.C b/gcc/testsuite/g++.dg/cpp0x/udlit-macros.C
new file mode 100644
index 00000000000..fb518281811
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/udlit-macros.C
@@ -0,0 +1,31 @@
+// PR c++/80955
+// { dg-do run { target c++11 } }
+
+extern "C" int sprintf (char *s, const char *format, ...);
+extern "C" int strcmp (const char *s1, const char *s2);
+
+#define __PRI64_PREFIX "l"
+#define PRId64 __PRI64_PREFIX "d"
+
+using size_t = decltype(sizeof(0));
+#define _zero
+#define _ID _xx
+int operator""_zero(const char*, size_t) { return 0; }
+int operator""_ID(const char*, size_t) { return 0; }
+
+int main()
+{
+ long i64 = 123;
+ char buf[100];
+ sprintf(buf, "%"PRId64"abc", i64); // { dg-warning "invalid suffix on literal" }
+ return strcmp(buf, "123abc")
+ + ""_zero
+ + "bob"_zero
+ + R"#(raw
+ string)#"_zero
+ + "xx"_ID
+ + ""_ID
+ + R"AA(another
+ raw
+ string)AA"_ID;
+}
diff --git a/gcc/testsuite/g++.dg/cpp0x/udlit-template.C b/gcc/testsuite/g++.dg/cpp0x/udlit-template.C
index de21b66028f..15583199297 100644
--- a/gcc/testsuite/g++.dg/cpp0x/udlit-template.C
+++ b/gcc/testsuite/g++.dg/cpp0x/udlit-template.C
@@ -23,7 +23,7 @@ template<>
operator"" _abc<'6','6','6'>()
{ return 21; }
-int
+void
test1()
{
int i = operator"" _abc<'1','2','3'>();
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic114.C b/gcc/testsuite/g++.dg/cpp0x/variadic114.C
index 82ffe83c7c5..183cb2b5631 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic114.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic114.C
@@ -1,5 +1,6 @@
// PR c++/49785
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
template <typename, typename ...> struct B { };
template <typename> class A;
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic57.C b/gcc/testsuite/g++.dg/cpp0x/variadic57.C
index a3d2bf1c5df..4bf014b54da 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic57.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic57.C
@@ -10,7 +10,7 @@ struct array<T, 0> {
};
template<typename T, int... Dims>
-int array<T, Dims...>::foo() { }
+int array<T, Dims...>::foo() { return 0; }
template<typename T>
-int array<T, 0>::bar() { }
+int array<T, 0>::bar() { return 0; }
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic65.C b/gcc/testsuite/g++.dg/cpp0x/variadic65.C
index 0eef2a5ed25..9223235174f 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic65.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic65.C
@@ -1,4 +1,6 @@
// { dg-do compile { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
+
struct unused;
template<typename T1 = unused, typename T2 = unused, typename T3 = unused,
typename T4 = unused, typename T5 = unused, typename T6 = unused>
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic66.C b/gcc/testsuite/g++.dg/cpp0x/variadic66.C
index ac922215198..bf86deee8fd 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic66.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic66.C
@@ -1,7 +1,7 @@
// { dg-do compile { target c++11 } }
template<typename Result, typename Functor, typename... ArgTypes>
-Result bind(Functor, ArgTypes...) { }
+Result bind(Functor, ArgTypes...) { return Result(); }
void f()
{
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic97.C b/gcc/testsuite/g++.dg/cpp0x/variadic97.C
index b251cc3da38..12d05c56237 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic97.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic97.C
@@ -21,7 +21,7 @@ template<typename _Functor, typename... _Bound_args>
template<typename _Functor, typename _Arg>
_Bind<_Functor(_Arg)>
- bind(_Functor, _Arg) { }
+ bind(_Functor, _Arg) { return _Bind<_Functor(_Arg)>(); }
struct State
{
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic98.C b/gcc/testsuite/g++.dg/cpp0x/variadic98.C
index c463cac17e7..6f1d9b40676 100644
--- a/gcc/testsuite/g++.dg/cpp0x/variadic98.C
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic98.C
@@ -1,5 +1,6 @@
// PR c++/42358
// { dg-do assemble { target c++11 } }
+// { dg-additional-options "-Wno-return-type" }
typedef __PTRDIFF_TYPE__ ptrdiff_t;
typedef __SIZE_TYPE__ size_t;
@@ -177,6 +178,7 @@ namespace std __attribute__ ((__visibility__ ("default"))) {
};
template<typename _Tp> struct less : public binary_function<_Tp, _Tp, bool> {
bool operator()(const _Tp& __x, const _Tp& __y) const {
+ return true;
}
};
template<typename _Pair> struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> {
diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C
index b6a4b324b7c..9d79fb61e96 100644
--- a/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C
+++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn11.C
@@ -1,4 +1,5 @@
// { dg-do compile { target c++14 } }
+// { dg-additional-options "-Wno-return-type" }
auto f() { return; } // OK, return type is void
auto* g() { return; } // { dg-error "no value" }
diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn29.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn29.C
index f9260e0ec30..12f13a08906 100644
--- a/gcc/testsuite/g++.dg/cpp1y/auto-fn29.C
+++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn29.C
@@ -24,6 +24,7 @@ namespace Baboon {
template <typename T>
bool f4(T const& v){
f2(v);
+ return true;
}
}
diff --git a/gcc/testsuite/g++.dg/cpp1y/auto-fn38.C b/gcc/testsuite/g++.dg/cpp1y/auto-fn38.C
index ec3cffb2505..4e541625eec 100644
--- a/gcc/testsuite/g++.dg/cpp1y/auto-fn38.C
+++ b/gcc/testsuite/g++.dg/cpp1y/auto-fn38.C
@@ -1,5 +1,6 @@
// PR c++/80145
// { dg-do compile { target c++14 } }
+// { dg-additional-options "-Wno-return-type" }
auto* foo() { } // { dg-error "no return statements" }
auto* foo();
diff --git a/gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C b/gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C
index ae2628d800c..d330ccfed3e 100644
--- a/gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C
+++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-return2.C
@@ -1,4 +1,5 @@
// { dg-do compile { target c++14 } }
+// { dg-additional-options "-Wno-return-type" }
constexpr int f (int i)
{
diff --git a/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C b/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C
index c943c48dfb0..d0b2dd3f256 100644
--- a/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C
+++ b/gcc/testsuite/g++.dg/cpp1y/lambda-init7.C
@@ -1,6 +1,6 @@
// PR c++/59349
// { dg-do compile { target c++14 } }
-int foo () {
+void foo () {
[bar()]{}; // { dg-error "empty initializer" }
}
diff --git a/gcc/testsuite/g++.dg/cpp1y/pr63996.C b/gcc/testsuite/g++.dg/cpp1y/pr63996.C
index 8f66cdc3893..da1e0764a10 100644
--- a/gcc/testsuite/g++.dg/cpp1y/pr63996.C
+++ b/gcc/testsuite/g++.dg/cpp1y/pr63996.C
@@ -1,4 +1,5 @@
// { dg-do compile { target c++14 } }
+// { dg-additional-options "-Wno-return-type" }
constexpr int
foo (int i)
diff --git a/gcc/testsuite/g++.dg/cpp1y/pr65202.C b/gcc/testsuite/g++.dg/cpp1y/pr65202.C
index 7ce4895a134..43eb01f1fcb 100644
--- a/gcc/testsuite/g++.dg/cpp1y/pr65202.C
+++ b/gcc/testsuite/g++.dg/cpp1y/pr65202.C
@@ -1,5 +1,6 @@
// // PR c++/65202
// { dg-do compile { target c++14 } }
+// { dg-additional-options "-Wno-return-type" }
template <typename T> struct is_move_constructible;
template <typename T> struct is_move_assignable;
diff --git a/gcc/testsuite/g++.dg/cpp1y/pr66443-cxx14.C b/gcc/testsuite/g++.dg/cpp1y/pr66443-cxx14.C
index 58348082952..ae76f7faa31 100644
--- a/gcc/testsuite/g++.dg/cpp1y/pr66443-cxx14.C
+++ b/gcc/testsuite/g++.dg/cpp1y/pr66443-cxx14.C
@@ -37,6 +37,7 @@ C::C ()
bool Ok (C &c)
{
+ return true;
}
int main ()
diff --git a/gcc/testsuite/g++.dg/cpp1y/pr79253.C b/gcc/testsuite/g++.dg/cpp1y/pr79253.C
index b15efe8873f..181702acc5b 100644
--- a/gcc/testsuite/g++.dg/cpp1y/pr79253.C
+++ b/gcc/testsuite/g++.dg/cpp1y/pr79253.C
@@ -28,6 +28,6 @@ struct D
baz () { bar<F, B<>>; }
template <bool, bool, bool> struct F
{
- static B<> baz () { foo<E<0, 0, 0>> (0, 0); }
+ static B<> baz () { foo<E<0, 0, 0>> (0, 0); return B<>(); }
};
};
diff --git a/gcc/testsuite/g++.dg/cpp1y/pr81574.C b/gcc/testsuite/g++.dg/cpp1y/pr81574.C
new file mode 100644
index 00000000000..f9949ab90e9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/pr81574.C
@@ -0,0 +1,13 @@
+// { dg-do compile { target c++14 } }
+// PR c++/81574 references to functions are captured by reference.
+
+// 8.1.5.2/10
+// For each entity captured by copy, ... an lvalue reference to the
+// referenced function type if the entity is a reference to a function
+
+void f (void (&b)())
+{
+ [=] { b; } ();
+ [=, b(f)] { b; } ();
+ [=, b(b)] { b; } ();
+}
diff --git a/gcc/testsuite/g++.dg/cpp1y/static_assert1.C b/gcc/testsuite/g++.dg/cpp1y/static_assert1.C
index 513e347d7e5..ef655f49097 100644
--- a/gcc/testsuite/g++.dg/cpp1y/static_assert1.C
+++ b/gcc/testsuite/g++.dg/cpp1y/static_assert1.C
@@ -19,6 +19,7 @@ template<typename T>
{
static_assert(is_float<T>::value, ""); // { dg-error "static assertion failed" }
static_assert(is_float<T>::value); // { dg-error "static assertion failed" }
+ return T();
}
int
diff --git a/gcc/testsuite/g++.dg/cpp1y/static_assert2.C b/gcc/testsuite/g++.dg/cpp1y/static_assert2.C
index d862282cda8..d602b1e04ce 100644
--- a/gcc/testsuite/g++.dg/cpp1y/static_assert2.C
+++ b/gcc/testsuite/g++.dg/cpp1y/static_assert2.C
@@ -19,6 +19,7 @@ template<typename T>
{
static_assert(is_float<T>::value, ""); // { dg-error "static assertion failed" }
static_assert(is_float<T>::value); // { dg-error "static assertion failed" }
+ return T();
}
int
diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ44.C b/gcc/testsuite/g++.dg/cpp1y/var-templ44.C
index 2fc21a50631..2ef01cf7480 100644
--- a/gcc/testsuite/g++.dg/cpp1y/var-templ44.C
+++ b/gcc/testsuite/g++.dg/cpp1y/var-templ44.C
@@ -1,5 +1,6 @@
// PR c++/67161
// { dg-do compile { target c++14 } }
+// { dg-additional-options "-Wno-return-type" }
template <typename _Tp> struct integral_constant {
static constexpr _Tp value = 0;
diff --git a/gcc/testsuite/g++.dg/cpp1z/eval-order3.C b/gcc/testsuite/g++.dg/cpp1z/eval-order3.C
index 966ac0a6523..b53e96a9f8f 100644
--- a/gcc/testsuite/g++.dg/cpp1z/eval-order3.C
+++ b/gcc/testsuite/g++.dg/cpp1z/eval-order3.C
@@ -26,7 +26,7 @@ struct A
int _i;
A(int i): _i(f(i)) { }
A& memfn(int i, int j) { f(j); return *this; }
- int operator<<(int i) { }
+ int operator<<(int i) { return 0; }
A& operator=(const A&) { return *this; }
A& operator+=(int i) { return *this; }
};
@@ -38,7 +38,7 @@ struct B
B(int i): _i(f(i)) { }
};
-int operator>>(A&, int i) { }
+int operator>>(A&, int i) { return 0; }
A a(0);
A* afn(int i)
diff --git a/gcc/testsuite/g++.dg/cpp1z/fold6.C b/gcc/testsuite/g++.dg/cpp1z/fold6.C
index 48394366692..29a20480e77 100644
--- a/gcc/testsuite/g++.dg/cpp1z/fold6.C
+++ b/gcc/testsuite/g++.dg/cpp1z/fold6.C
@@ -6,7 +6,7 @@
int i;
template <int... Is>
-int f()
+void f()
{
(i ? i : Is + ...); // { dg-error "" }
(i + Is + ...); // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/cpp1z/inline-var2.C b/gcc/testsuite/g++.dg/cpp1z/inline-var2.C
index 1696cb0f240..852531ad258 100644
--- a/gcc/testsuite/g++.dg/cpp1z/inline-var2.C
+++ b/gcc/testsuite/g++.dg/cpp1z/inline-var2.C
@@ -69,6 +69,7 @@ foo (inline int var31) // { dg-error "'var31' declared as an 'inline' paramet
{
inline int var32; // { dg-error "'inline' specifier invalid for variable 'var32' declared at block scope" }
static inline int var33; // { dg-error "'inline' specifier invalid for variable 'var33' declared at block scope" }
+ return 0;
}
template <typename A, typename B, typename C>
struct Y
diff --git a/gcc/testsuite/g++.dg/cpp1z/lambda-this1.C b/gcc/testsuite/g++.dg/cpp1z/lambda-this1.C
index a15438019b9..2c49dd9bf73 100644
--- a/gcc/testsuite/g++.dg/cpp1z/lambda-this1.C
+++ b/gcc/testsuite/g++.dg/cpp1z/lambda-this1.C
@@ -50,7 +50,7 @@ struct B {
double foo () {
return [this]{ return [*this] { return b; }; }()(); // { dg-error "'*this' capture only available with" "" { target c++14_down } }
}
- double bar () {
+ void bar () {
auto c = []{ return [*this] { return b; }; }; // { dg-error "'this' was not captured for this lambda function" }
} // { dg-error "invalid use of non-static data member 'B::b'" "" { target *-*-* } .-1 }
}; // { dg-error "'*this' capture only available with" "" { target c++14_down } .-2 }
diff --git a/gcc/testsuite/g++.dg/cpp1z/static_assert-nomsg.C b/gcc/testsuite/g++.dg/cpp1z/static_assert-nomsg.C
index 4b265b6716e..6f787cde958 100644
--- a/gcc/testsuite/g++.dg/cpp1z/static_assert-nomsg.C
+++ b/gcc/testsuite/g++.dg/cpp1z/static_assert-nomsg.C
@@ -13,7 +13,7 @@ template<>
};
template<typename T>
- T
+ void
float_thing(T __x)
{
static_assert(is_float<T>::value, ""); // { dg-error "static assertion failed" }
diff --git a/gcc/testsuite/g++.dg/cpp2a/ptrmem1a.C b/gcc/testsuite/g++.dg/cpp2a/ptrmem1a.C
new file mode 100644
index 00000000000..074c8fe5e3a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/ptrmem1a.C
@@ -0,0 +1,24 @@
+// P0704R1
+// { dg-do compile { target c++11 } }
+// { dg-options "" }
+
+struct S {
+ void ref() & {}
+ void cref() const& {}
+ void vref() volatile & {}
+ void cvref() const volatile & {}
+};
+
+void
+foo ()
+{
+ S{}.ref(); // { dg-error "argument discards qualifiers" }
+ S{}.cref();
+ S{}.vref(); // { dg-error "argument discards qualifiers" }
+ S{}.cvref(); // { dg-error "argument discards qualifiers" }
+
+ (S{}.*&S::ref)(); // { dg-error "pointer-to-member-function type 'void \\(S::\\*\\)\\(\\) &' requires an lvalue" }
+ (S{}.*&S::cref)();
+ (S{}.*&S::vref)(); // { dg-error "pointer-to-member-function type 'void \\(S::\\*\\)\\(\\) volatile &' requires an lvalue" }
+ (S{}.*&S::cvref)(); // { dg-error "pointer-to-member-function type 'void \\(S::\\*\\)\\(\\) const volatile &' requires an lvalue" }
+}
diff --git a/gcc/testsuite/g++.dg/debug/dwarf-eh-personality-1.C b/gcc/testsuite/g++.dg/debug/dwarf-eh-personality-1.C
index 5c72588e513..8f62edc1cf0 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf-eh-personality-1.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf-eh-personality-1.C
@@ -11,7 +11,7 @@ int foo (void)
return 0;
}
-int foobar (void)
+void foobar (void)
{
}
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C b/gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C
index cd1a0afe868..a514472b397 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/dwarf4-typedef.C
@@ -11,7 +11,7 @@ struct A {
struct B : public A {
template <typename A>
- bool foo(A x[2]) { }
+ bool foo(A x[2]) { return true; }
};
template <typename T>
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/icf.C b/gcc/testsuite/g++.dg/debug/dwarf2/icf.C
index ca73ab72479..74a11bf25c5 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/icf.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/icf.C
@@ -21,13 +21,13 @@ class B
int j;
};
-int
+void
test1(A* a)
{
a->work();
}
-int
+void
test2(A* a)
{
if (a->p())
diff --git a/gcc/testsuite/g++.dg/debug/dwarf2/pr61433.C b/gcc/testsuite/g++.dg/debug/dwarf2/pr61433.C
index a217d960205..ef2479f0cd9 100644
--- a/gcc/testsuite/g++.dg/debug/dwarf2/pr61433.C
+++ b/gcc/testsuite/g++.dg/debug/dwarf2/pr61433.C
@@ -2,6 +2,7 @@
// { dg-do compile { target c++11 } }
// { dg-xfail-if "" { powerpc-ibm-aix* } }
// { dg-options "-O -fcompare-debug -fno-inline -fno-ipa-pure-const -fipa-sra" }
+// { dg-additional-options "-Wno-return-type" }
template <class T>
struct A
@@ -21,4 +22,5 @@ auto k(T t, U u, V v) -> decltype (t.U::template B<V>::MEM)
int main()
{
k( C(), A<int>(), D() );
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/debug/nullptr01.C b/gcc/testsuite/g++.dg/debug/nullptr01.C
index 63c16ac8f0e..a6514f1ff70 100644
--- a/gcc/testsuite/g++.dg/debug/nullptr01.C
+++ b/gcc/testsuite/g++.dg/debug/nullptr01.C
@@ -10,6 +10,7 @@ template <class T> nullptr_t g(T t);
template <> nullptr_t g(A<nullptr_t>)
{
nullptr_t local;
+ return nullptr;
}
// { dg-final { scan-assembler "_Z1fDn" } }
// { dg-final { scan-assembler "_Z1gI1AIDnEEDnT_" } }
diff --git a/gcc/testsuite/g++.dg/debug/pr16792.C b/gcc/testsuite/g++.dg/debug/pr16792.C
index 39003cbe299..0efcbfa74eb 100644
--- a/gcc/testsuite/g++.dg/debug/pr16792.C
+++ b/gcc/testsuite/g++.dg/debug/pr16792.C
@@ -1,7 +1,7 @@
// { dg-do compile }
struct S { S(); };
-int foo (S b, double j) { };
+int foo (S b, double j) { return 0; };
int main ()
{
diff --git a/gcc/testsuite/g++.dg/debug/pr46241.C b/gcc/testsuite/g++.dg/debug/pr46241.C
index 95c814d4f0a..6ac9116a3d7 100644
--- a/gcc/testsuite/g++.dg/debug/pr46241.C
+++ b/gcc/testsuite/g++.dg/debug/pr46241.C
@@ -1,6 +1,6 @@
class btIDebugDraw;
class btCollisionWorld {
- virtual btIDebugDraw* getDebugDrawer() { };
+ virtual btIDebugDraw* getDebugDrawer() { return 0; };
static void rayTestSingle();
};
class btTriangleCallback {
diff --git a/gcc/testsuite/g++.dg/debug/pr46338.C b/gcc/testsuite/g++.dg/debug/pr46338.C
index caf71170f2c..7e242b9bc3d 100644
--- a/gcc/testsuite/g++.dg/debug/pr46338.C
+++ b/gcc/testsuite/g++.dg/debug/pr46338.C
@@ -9,6 +9,7 @@ struct S
{
int f ()
{
+ return 0;
}
};
diff --git a/gcc/testsuite/g++.dg/debug/pr47106.C b/gcc/testsuite/g++.dg/debug/pr47106.C
index d8d414dd4a5..84c6e3f87be 100644
--- a/gcc/testsuite/g++.dg/debug/pr47106.C
+++ b/gcc/testsuite/g++.dg/debug/pr47106.C
@@ -22,12 +22,14 @@ inline bool
baz (S s1, S)
{
while (f (&s1));
+
+ return true;
}
inline bool
bar (S s1, S s2, S)
{
- baz (s1, s2);
+ return baz (s1, s2);
}
S getS ();
@@ -35,5 +37,5 @@ S getS ();
bool
foo ()
{
- bar (getS (), getS (), getS ());
+ return bar (getS (), getS (), getS ());
}
diff --git a/gcc/testsuite/g++.dg/debug/pr71057.C b/gcc/testsuite/g++.dg/debug/pr71057.C
index 2ed1eed988e..0bd546a74e8 100644
--- a/gcc/testsuite/g++.dg/debug/pr71057.C
+++ b/gcc/testsuite/g++.dg/debug/pr71057.C
@@ -9,4 +9,4 @@ template <typename> struct C {
};
template <typename> struct D {};
C<int> a;
-D<B<int>> fn1() { fn1, a; }
+D<B<int>> fn1() { fn1, a; return D<B<int>>(); }
diff --git a/gcc/testsuite/g++.dg/debug/pr71432.C b/gcc/testsuite/g++.dg/debug/pr71432.C
index 1682f126f12..e9bc88ca863 100644
--- a/gcc/testsuite/g++.dg/debug/pr71432.C
+++ b/gcc/testsuite/g++.dg/debug/pr71432.C
@@ -105,9 +105,11 @@ namespace std
public:
size_type size ()const noexcept
{
+ return 0;
}
const _CharT *data () const noexcept
{
+ return 0;
}
};
}
@@ -127,9 +129,14 @@ class CLIParameterType
{
const std::string & getSwitchOption (unsigned int i) const
{
- } unsigned int getSwitchOptionCount () const
+ static std::string a;
+ return a;
+ }
+ unsigned int getSwitchOptionCount () const
{
- } int checkSwitched (const std::string & value) const;
+ return 0;
+ }
+ int checkSwitched (const std::string & value) const;
};
int
@@ -138,4 +145,6 @@ CLIParameterType::checkSwitched (const std::string & value) const
int contains = false;
for (unsigned int i = 0; !contains && i < getSwitchOptionCount () ;)
contains = getSwitchOption (i) == value;
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/debug/pr80461.C b/gcc/testsuite/g++.dg/debug/pr80461.C
index df7b4229ddf..b472e62c803 100644
--- a/gcc/testsuite/g++.dg/debug/pr80461.C
+++ b/gcc/testsuite/g++.dg/debug/pr80461.C
@@ -6,7 +6,7 @@ template <typename> class A;
struct B
{
template <typename T, typename U>
- static bool foo (U T::*) {}
+ static bool foo (U T::*) { return true; }
};
template <typename, typename> class J;
template <typename T, typename U, typename V, typename... W>
diff --git a/gcc/testsuite/g++.dg/dfp/44473-1.C b/gcc/testsuite/g++.dg/dfp/44473-1.C
index 38689fa165d..940638f4e9b 100644
--- a/gcc/testsuite/g++.dg/dfp/44473-1.C
+++ b/gcc/testsuite/g++.dg/dfp/44473-1.C
@@ -1,4 +1,5 @@
/* { dg-do assemble } */
+/* { dg-additional-options "-Wno-return-type" } */
/* Minimized from the testcase in PR c++/44473; mangling of decimal types
did not include CV qualifiers. */
@@ -119,4 +120,5 @@ bool
bar ()
{
vec.push_back (std::decimal::decimal32 (0));
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/dfp/44473-2.C b/gcc/testsuite/g++.dg/dfp/44473-2.C
index 311f62299b3..60fc1ebca9c 100644
--- a/gcc/testsuite/g++.dg/dfp/44473-2.C
+++ b/gcc/testsuite/g++.dg/dfp/44473-2.C
@@ -14,12 +14,12 @@ namespace std {
}
}
-int bar (const std::decimal::decimal64 & x) { }
+int bar (const std::decimal::decimal64 & x) { return 0; }
int foo ()
{
std::decimal::decimal64 x(0);
- bar (x);
+ return bar (x);
}
// { dg-final { scan-assembler "_Z3barRKDd:" } }
diff --git a/gcc/testsuite/g++.dg/diagnostic/pr77949.C b/gcc/testsuite/g++.dg/diagnostic/pr77949.C
index 0d8b333a2ad..b81d6e2bb46 100644
--- a/gcc/testsuite/g++.dg/diagnostic/pr77949.C
+++ b/gcc/testsuite/g++.dg/diagnostic/pr77949.C
@@ -4,4 +4,4 @@
/* Very long line, where a missing semicolon would be suggested for
insertion at column 4097. */
class test { }
-// { dg-error "0: expected .;. after class definition" "" { target *-*-* } .-1 }
+// { dg-error "-: expected .;. after class definition" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/eh/builtin1.C b/gcc/testsuite/g++.dg/eh/builtin1.C
index 4aa70dacd3b..2d04d9c08e8 100644
--- a/gcc/testsuite/g++.dg/eh/builtin1.C
+++ b/gcc/testsuite/g++.dg/eh/builtin1.C
@@ -8,7 +8,7 @@ extern "C" int printf (const char *, ...);
extern void callme (void) throw();
-int
+void
foo (int i)
{
try {
@@ -18,7 +18,7 @@ foo (int i)
}
}
-int
+void
bar (int i)
{
try {
diff --git a/gcc/testsuite/g++.dg/eh/builtin2.C b/gcc/testsuite/g++.dg/eh/builtin2.C
index a92477455e1..0c0bfe6a679 100644
--- a/gcc/testsuite/g++.dg/eh/builtin2.C
+++ b/gcc/testsuite/g++.dg/eh/builtin2.C
@@ -7,7 +7,7 @@ extern "C" int printf (const char *, ...) throw();
extern void callme (void) throw();
-int
+void
foo (int i)
{
try {
@@ -17,7 +17,7 @@ foo (int i)
}
}
-int
+void
bar (int i)
{
try {
diff --git a/gcc/testsuite/g++.dg/eh/builtin3.C b/gcc/testsuite/g++.dg/eh/builtin3.C
index b4a06726305..5b8c62b4b63 100644
--- a/gcc/testsuite/g++.dg/eh/builtin3.C
+++ b/gcc/testsuite/g++.dg/eh/builtin3.C
@@ -5,7 +5,7 @@
extern void callme (void) throw();
-int
+void
bar (int i)
{
try {
diff --git a/gcc/testsuite/g++.dg/eh/pr45569.C b/gcc/testsuite/g++.dg/eh/pr45569.C
index 2c100d2b9bf..4f67770b4a7 100644
--- a/gcc/testsuite/g++.dg/eh/pr45569.C
+++ b/gcc/testsuite/g++.dg/eh/pr45569.C
@@ -7,7 +7,7 @@ _Complex float g ();
void
i (_Complex float);
-float j ()
+void j ()
{
_Complex float x = 0;
try
diff --git a/gcc/testsuite/g++.dg/eh/sighandle.C b/gcc/testsuite/g++.dg/eh/sighandle.C
index 5c4995e7677..c2200024687 100644
--- a/gcc/testsuite/g++.dg/eh/sighandle.C
+++ b/gcc/testsuite/g++.dg/eh/sighandle.C
@@ -12,6 +12,7 @@ void sighandler (int signo, siginfo_t * si, void * uc)
char * dosegv ()
{
* ((volatile int *)0) = 12;
+ return 0;
}
int main ()
diff --git a/gcc/testsuite/g++.dg/eh/unwind2.C b/gcc/testsuite/g++.dg/eh/unwind2.C
index d6181c8c04b..8d98d3fd3d3 100644
--- a/gcc/testsuite/g++.dg/eh/unwind2.C
+++ b/gcc/testsuite/g++.dg/eh/unwind2.C
@@ -46,7 +46,7 @@ namespace
typedef _CharT char_type;
char_type * _M_in_beg;
char_type *eback () { return _M_in_beg; }
- char_type *gptr () {}
+ char_type *gptr () { return 0; }
};
}
namespace std
diff --git a/gcc/testsuite/g++.dg/expr/bitfield11.C b/gcc/testsuite/g++.dg/expr/bitfield11.C
index bab303ef36c..ddf48cb373a 100644
--- a/gcc/testsuite/g++.dg/expr/bitfield11.C
+++ b/gcc/testsuite/g++.dg/expr/bitfield11.C
@@ -6,7 +6,7 @@ struct A
unsigned int a : 1;
};
-bool
+void
foo (A *x, A *y)
{
x->a = y ? y->a : true;
diff --git a/gcc/testsuite/g++.dg/expr/cond12.C b/gcc/testsuite/g++.dg/expr/cond12.C
index 9134f81668f..90d77dbd708 100644
--- a/gcc/testsuite/g++.dg/expr/cond12.C
+++ b/gcc/testsuite/g++.dg/expr/cond12.C
@@ -2,10 +2,16 @@
// { dg-do run }
struct X {
- X& operator=(const X&){}
+ X& operator=(const X&);
X& operator=(X&){__builtin_abort();}
};
+X g;
+X& X::operator=(const X&)
+{
+ return g;
+}
+
int main(int argv,char**) {
X a, b;
((argv > 2) ? a : b) = X();
diff --git a/gcc/testsuite/g++.dg/expr/static_cast7.C b/gcc/testsuite/g++.dg/expr/static_cast7.C
index bced805bcdb..2398bedf1b4 100644
--- a/gcc/testsuite/g++.dg/expr/static_cast7.C
+++ b/gcc/testsuite/g++.dg/expr/static_cast7.C
@@ -1,7 +1,7 @@
// Regression test for bug 39415 (and its duplicate 44916).
struct S {};
struct T : S {};
-int f(const T*) {}
+int f(const T*) { return 0; }
void f(T*);
int main() {
S* s(0);
diff --git a/gcc/testsuite/g++.dg/ext/altivec-14.C b/gcc/testsuite/g++.dg/ext/altivec-14.C
index e5dd81c7553..02e8a23258d 100644
--- a/gcc/testsuite/g++.dg/ext/altivec-14.C
+++ b/gcc/testsuite/g++.dg/ext/altivec-14.C
@@ -5,7 +5,7 @@
void f (__attribute__((altivec (vector__))) signed int * a,
__attribute__((altivec (vector__))) signed int * const b);
-int
+void
foo (void)
{
__attribute__((altivec (vector__))) signed int a[1], b[1];
diff --git a/gcc/testsuite/g++.dg/ext/asm13.C b/gcc/testsuite/g++.dg/ext/asm13.C
index eece05e0fb3..3e1fd4bbe48 100644
--- a/gcc/testsuite/g++.dg/ext/asm13.C
+++ b/gcc/testsuite/g++.dg/ext/asm13.C
@@ -1,6 +1,6 @@
// PR c++/69257
-int fn1() {
+void fn1() {
struct S *x;
__asm ( "": :"" (*x)); // { dg-error "incomplete" }
}
diff --git a/gcc/testsuite/g++.dg/ext/builtin-object-size3.C b/gcc/testsuite/g++.dg/ext/builtin-object-size3.C
index b2a9170fc30..1e158cd6d01 100644
--- a/gcc/testsuite/g++.dg/ext/builtin-object-size3.C
+++ b/gcc/testsuite/g++.dg/ext/builtin-object-size3.C
@@ -5,7 +5,7 @@ void baz (int *, int *);
#define MEMCPY(d,s,l) __builtin___memcpy_chk (d, s, l, __builtin_object_size (d, 0)) // { dg-warning "writing" }
-int
+void
foo ()
{
int *p = new int;
@@ -15,7 +15,7 @@ foo ()
baz (p, q);
}
-int
+void
bar ()
{
int *p = new int;
diff --git a/gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C b/gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C
index c2e99ef5444..594d3a98672 100644
--- a/gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C
+++ b/gcc/testsuite/g++.dg/ext/has_nothrow_assign_odr.C
@@ -1,5 +1,7 @@
// PR c++/36870
// { dg-do run }
+
+
#include <cassert>
struct S { const S& operator= (const S&); };
@@ -9,8 +11,9 @@ bool f ();
int main ()
{
assert (__has_nothrow_assign (S) == f ());
+ return 0;
}
-const S& S::operator= (const S&) { }
+const S& S::operator= (const S&a) { return a; }
bool f () { return __has_nothrow_assign (S); }
diff --git a/gcc/testsuite/g++.dg/ext/label7.C b/gcc/testsuite/g++.dg/ext/label7.C
index e92dccf5df5..d74a66aa224 100644
--- a/gcc/testsuite/g++.dg/ext/label7.C
+++ b/gcc/testsuite/g++.dg/ext/label7.C
@@ -1,7 +1,7 @@
// PR c++/32121
// { dg-do compile }
-int f (void)
+void f (void)
{
a:;
__label__ a; // { dg-error "not at the beginning" }
diff --git a/gcc/testsuite/g++.dg/ext/label8.C b/gcc/testsuite/g++.dg/ext/label8.C
index 1f6175df3a7..edffe35a6c6 100644
--- a/gcc/testsuite/g++.dg/ext/label8.C
+++ b/gcc/testsuite/g++.dg/ext/label8.C
@@ -1,7 +1,7 @@
// PR c++/32121
// { dg-do compile }
-int f (void)
+void f (void)
{
__label__ a, b;
__label__ c;
diff --git a/gcc/testsuite/g++.dg/ext/pr57735.C b/gcc/testsuite/g++.dg/ext/pr57735.C
index a8f7d05712c..d9fc9e4aa5e 100644
--- a/gcc/testsuite/g++.dg/ext/pr57735.C
+++ b/gcc/testsuite/g++.dg/ext/pr57735.C
@@ -2,7 +2,7 @@
/* { dg-require-effective-target arm_arch_v5te_ok } */
/* { dg-require-effective-target arm_arm_ok } */
/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } {"-mfloat-abi=soft" } } */
-/* { dg-options "-march=armv5te -marm -mtune=xscale -mfloat-abi=soft -O1" } */
+/* { dg-options "-march=armv5te -marm -mtune=xscale -mfloat-abi=soft -O1 -Wno-return-type" } */
typedef unsigned int size_t;
__extension__
diff --git a/gcc/testsuite/g++.dg/ext/pr81706.C b/gcc/testsuite/g++.dg/ext/pr81706.C
index f0ed8ab6d71..395a81aa8c7 100644
--- a/gcc/testsuite/g++.dg/ext/pr81706.C
+++ b/gcc/testsuite/g++.dg/ext/pr81706.C
@@ -1,8 +1,8 @@
// PR libstdc++/81706
// { dg-do compile { target i?86-*-* x86_64-*-* } }
// { dg-options "-O3 -mavx2 -mno-avx512f" }
-// { dg-final { scan-assembler "call\[^\n\r]_ZGVdN4v_cos" } }
-// { dg-final { scan-assembler "call\[^\n\r]_ZGVdN4v_sin" } }
+// { dg-final { scan-assembler "call\[^\n\r]__?ZGVdN4v_cos" } }
+// { dg-final { scan-assembler "call\[^\n\r]__?ZGVdN4v_sin" } }
#ifdef __cplusplus
extern "C" {
diff --git a/gcc/testsuite/g++.dg/ext/tmplattr7.C b/gcc/testsuite/g++.dg/ext/tmplattr7.C
index ee6c4184768..545e089f1bb 100644
--- a/gcc/testsuite/g++.dg/ext/tmplattr7.C
+++ b/gcc/testsuite/g++.dg/ext/tmplattr7.C
@@ -8,4 +8,4 @@ bool test(const List<int> &);
int i = bar(List<int>());
-bool test(const List<int> &) {}
+bool test(const List<int> &) { return true; }
diff --git a/gcc/testsuite/g++.dg/ext/vector14.C b/gcc/testsuite/g++.dg/ext/vector14.C
index 8e792108fb8..eecff39de47 100644
--- a/gcc/testsuite/g++.dg/ext/vector14.C
+++ b/gcc/testsuite/g++.dg/ext/vector14.C
@@ -8,7 +8,11 @@
#define vector __attribute__((vector_size(16)))
-template<int N> vector signed int foo (vector float value) {}
+template<int N> vector signed int foo (vector float value)
+{
+ vector signed int a;
+ return a;
+}
template<int> void foo (float) {}
@@ -19,4 +23,6 @@ main ()
float f;
foo<1> (v);
foo<1> (f);
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/ext/vector8.C b/gcc/testsuite/g++.dg/ext/vector8.C
index 5f9f9561d7f..49bdc5a5611 100644
--- a/gcc/testsuite/g++.dg/ext/vector8.C
+++ b/gcc/testsuite/g++.dg/ext/vector8.C
@@ -9,7 +9,7 @@ vector int a1;
vector float b;
vector int b1;
-int f(void)
+void f(void)
{
a = a | b; /* { dg-error "" } */
a = a & b; /* { dg-error "" } */
diff --git a/gcc/testsuite/g++.dg/ext/visibility/anon1.C b/gcc/testsuite/g++.dg/ext/visibility/anon1.C
index 0135f931a6f..60a34db6ede 100644
--- a/gcc/testsuite/g++.dg/ext/visibility/anon1.C
+++ b/gcc/testsuite/g++.dg/ext/visibility/anon1.C
@@ -7,5 +7,5 @@
namespace
{
- int f() { }
+ int f() { return 0; }
}
diff --git a/gcc/testsuite/g++.dg/ext/visibility/anon2.C b/gcc/testsuite/g++.dg/ext/visibility/anon2.C
index dcf0e64fa23..7abdd050518 100644
--- a/gcc/testsuite/g++.dg/ext/visibility/anon2.C
+++ b/gcc/testsuite/g++.dg/ext/visibility/anon2.C
@@ -9,4 +9,4 @@ namespace
struct A { };
}
-A f () { }
+A f () { return A(); }
diff --git a/gcc/testsuite/g++.dg/ext/visibility/namespace1.C b/gcc/testsuite/g++.dg/ext/visibility/namespace1.C
index b7773dc9d61..1da1c14d254 100644
--- a/gcc/testsuite/g++.dg/ext/visibility/namespace1.C
+++ b/gcc/testsuite/g++.dg/ext/visibility/namespace1.C
@@ -10,7 +10,7 @@
namespace foo __attribute ((visibility ("hidden")))
{
- int f() { }
+ int f() { return 0; }
void g();
template <typename T> void t() { }
class A
diff --git a/gcc/testsuite/g++.dg/ext/vla16.C b/gcc/testsuite/g++.dg/ext/vla16.C
index c3e6ea1caba..fa51feed8f3 100644
--- a/gcc/testsuite/g++.dg/ext/vla16.C
+++ b/gcc/testsuite/g++.dg/ext/vla16.C
@@ -5,4 +5,6 @@ long fn1() {
const int a = fn1();
int b[a];
int c = *(&b[0] + sizeof(0));
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-1.C b/gcc/testsuite/g++.dg/gcov/gcov-1.C
index c279b1452fc..9018b9a3a73 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-1.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-1.C
@@ -74,7 +74,7 @@ test_for2 (int m, int n, int o)
return for_temp; /* count(6) */
}
-int
+void
call_for ()
{
for_val1 += test_for1 (0);
diff --git a/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C b/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
index cc912f9ddf4..b020dd87d4c 100644
--- a/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
+++ b/gcc/testsuite/g++.dg/gcov/gcov-threads-1.C
@@ -19,6 +19,8 @@ static void *ContentionNoDeadlock_thread(void *start)
for (int32_t i = NR - 1; i >= starti; --i)
pthread_mutex_unlock (&cndMs[i]);
}
+
+ return 0;
}
int main(int argc, char **argv) {
for (unsigned i = 0; i < NR; i++)
diff --git a/gcc/testsuite/g++.dg/goacc/reference.C b/gcc/testsuite/g++.dg/goacc/reference.C
index b000668b1aa..07e6bd42239 100644
--- a/gcc/testsuite/g++.dg/goacc/reference.C
+++ b/gcc/testsuite/g++.dg/goacc/reference.C
@@ -1,4 +1,4 @@
-int
+void
test1 (int &ref)
{
#pragma acc kernels copy (ref)
@@ -7,7 +7,7 @@ test1 (int &ref)
}
}
-int
+void
test2 (int &ref)
{
int b;
diff --git a/gcc/testsuite/g++.dg/gomp/macro-4.C b/gcc/testsuite/g++.dg/gomp/macro-4.C
index 9fc45b143d5..6a69f1a3ca1 100644
--- a/gcc/testsuite/g++.dg/gomp/macro-4.C
+++ b/gcc/testsuite/g++.dg/gomp/macro-4.C
@@ -10,9 +10,9 @@ void bar (void);
void
foo (void)
{
-#pragma omp p // { dg-warning "ignoring #pragma omp _Pragma" }
+#pragma omp p // { dg-warning "-:ignoring #pragma omp _Pragma" }
bar ();
- omp_p // { dg-warning "ignoring #pragma omp _Pragma" }
+ omp_p // { dg-warning "-:ignoring #pragma omp _Pragma" }
bar ();
}
@@ -22,8 +22,8 @@ foo (void)
void
baz (void)
{
-#pragma omp parallel // { dg-warning "ignoring #pragma omp serial" }
+#pragma omp parallel // { dg-warning "-:ignoring #pragma omp serial" }
bar ();
- omp_parallel // { dg-warning "ignoring #pragma omp serial" }
+ omp_parallel // { dg-warning "-:ignoring #pragma omp serial" }
bar ();
}
diff --git a/gcc/testsuite/g++.dg/gomp/pr37189.C b/gcc/testsuite/g++.dg/gomp/pr37189.C
index 31d95f2d2df..a83957ea2a3 100644
--- a/gcc/testsuite/g++.dg/gomp/pr37189.C
+++ b/gcc/testsuite/g++.dg/gomp/pr37189.C
@@ -18,7 +18,7 @@ bar (T &)
{
}
-int
+void
foo ()
{
T t;
diff --git a/gcc/testsuite/g++.dg/gomp/pr39495-1.C b/gcc/testsuite/g++.dg/gomp/pr39495-1.C
index 8563e684fff..dfa7db66d2c 100644
--- a/gcc/testsuite/g++.dg/gomp/pr39495-1.C
+++ b/gcc/testsuite/g++.dg/gomp/pr39495-1.C
@@ -6,7 +6,7 @@
#define INT_MAX __INT_MAX__
#define UINT_MAX (2U * __INT_MAX__ + 1)
-int
+void
foo (void)
{
int i;
@@ -50,7 +50,7 @@ foo (void)
;
}
-int
+void
bar (void)
{
int i;
diff --git a/gcc/testsuite/g++.dg/gomp/pr39495-2.C b/gcc/testsuite/g++.dg/gomp/pr39495-2.C
index c0b4d5dbdee..f8b0f23183c 100644
--- a/gcc/testsuite/g++.dg/gomp/pr39495-2.C
+++ b/gcc/testsuite/g++.dg/gomp/pr39495-2.C
@@ -6,7 +6,7 @@
#define INT_MAX __INT_MAX__
#define UINT_MAX (2U * __INT_MAX__ + 1)
-int
+void
foo (void)
{
int i;
diff --git a/gcc/testsuite/g++.dg/gomp/pr82054.C b/gcc/testsuite/g++.dg/gomp/pr82054.C
index 3c6aa27c7f4..706dd836968 100644
--- a/gcc/testsuite/g++.dg/gomp/pr82054.C
+++ b/gcc/testsuite/g++.dg/gomp/pr82054.C
@@ -10,4 +10,6 @@ a::b ()
{
#pragma omp parallel
;
+
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/graphite/pr41305.C b/gcc/testsuite/g++.dg/graphite/pr41305.C
index 6a30b0e9e39..756b1267288 100644
--- a/gcc/testsuite/g++.dg/graphite/pr41305.C
+++ b/gcc/testsuite/g++.dg/graphite/pr41305.C
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-options "-O3 -floop-interchange -Wno-conversion-null" }
+// { dg-options "-O3 -floop-interchange -Wno-conversion-null -Wno-return-type" }
void __throw_bad_alloc ();
diff --git a/gcc/testsuite/g++.dg/graphite/pr42930.C b/gcc/testsuite/g++.dg/graphite/pr42930.C
index c1150ce9353..e569cea0177 100644
--- a/gcc/testsuite/g++.dg/graphite/pr42930.C
+++ b/gcc/testsuite/g++.dg/graphite/pr42930.C
@@ -1,4 +1,4 @@
-/* { dg-options "-O1 -floop-block" } */
+/* { dg-options "-O1 -floop-block -Wno-return-type" } */
typedef unsigned char byte;
typedef unsigned int uint;
diff --git a/gcc/testsuite/g++.dg/inherit/covariant10.C b/gcc/testsuite/g++.dg/inherit/covariant10.C
index fe5d03c27d3..6c31aaff03d 100644
--- a/gcc/testsuite/g++.dg/inherit/covariant10.C
+++ b/gcc/testsuite/g++.dg/inherit/covariant10.C
@@ -11,12 +11,12 @@ struct c1 {
struct c5 {};
struct c6 : virtual c1 {
- virtual c5* f33() const {}
+ virtual c5* f33() const { return 0; }
};
struct c13 : virtual c5 { };
struct c17 : virtual c6
{
- virtual c13* f33() const {}
+ virtual c13* f33() const { return 0; }
};
diff --git a/gcc/testsuite/g++.dg/inherit/covariant11.C b/gcc/testsuite/g++.dg/inherit/covariant11.C
index acba965f3af..97b8d13cfa5 100644
--- a/gcc/testsuite/g++.dg/inherit/covariant11.C
+++ b/gcc/testsuite/g++.dg/inherit/covariant11.C
@@ -7,19 +7,19 @@
struct c2 { int i; };
struct c1 {
- virtual c2& f8() {}
+ virtual c2& f8() { static c2 a; return a; }
};
struct c3 : c1, c2 {
- virtual c2& f8() {}
+ virtual c2& f8() { static c2 a; return a; }
};
struct c11 : public c1 {
- virtual c3& f8() {}
+ virtual c3& f8() { static c3 a; return a; }
};
struct c15 : virtual c3 {
- virtual c2& f8() {}
+ virtual c2& f8() { static c3 a; return a; }
};
struct c18 : virtual c11 {
diff --git a/gcc/testsuite/g++.dg/inherit/protected1.C b/gcc/testsuite/g++.dg/inherit/protected1.C
index c71be53331f..130b14ad863 100644
--- a/gcc/testsuite/g++.dg/inherit/protected1.C
+++ b/gcc/testsuite/g++.dg/inherit/protected1.C
@@ -9,6 +9,7 @@ template <class X> struct B<A<X> >
{
A<X> a;
a.m_class->m_object;
+ return 0;
}
};
template <class T> class A
@@ -23,6 +24,7 @@ bool
A<T>::operator== (const X &) const
{
B<X>::check;
+ return true;
}
class C
{
diff --git a/gcc/testsuite/g++.dg/init/inline1.C b/gcc/testsuite/g++.dg/init/inline1.C
index f3e323427d3..18d735fd87b 100644
--- a/gcc/testsuite/g++.dg/init/inline1.C
+++ b/gcc/testsuite/g++.dg/init/inline1.C
@@ -3,7 +3,7 @@
struct A {
~A();
- A f(A) { }
+ A f(A) { return A(); }
};
diff --git a/gcc/testsuite/g++.dg/init/new18.C b/gcc/testsuite/g++.dg/init/new18.C
index 45f6e7a095d..5f07aaa40d0 100644
--- a/gcc/testsuite/g++.dg/init/new18.C
+++ b/gcc/testsuite/g++.dg/init/new18.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-O2 -fstrict-aliasing" }
+// { dg-additional-options "-Wno-return-type" }
// This caused an ICE during placement new.
diff --git a/gcc/testsuite/g++.dg/init/pr35878_1.C b/gcc/testsuite/g++.dg/init/pr35878_1.C
index e2fc4933425..7fb3221a327 100644
--- a/gcc/testsuite/g++.dg/init/pr35878_1.C
+++ b/gcc/testsuite/g++.dg/init/pr35878_1.C
@@ -1,7 +1,7 @@
// PR c++/35878
// { dg-do compile }
// { dg-options "-O2 -std=gnu++11 -fdump-tree-optimized" }
-// { dg-final { scan-tree-dump-times "v_\[0-9]+\\(D\\) \[=!]= 0" 1 "optimized" } }
+// { dg-final { scan-tree-dump-not "v_\[0-9]+\\(D\\) \[=!]= 0" "optimized" } }
#include <new>
#include <utility>
diff --git a/gcc/testsuite/g++.dg/init/pr35878_4.C b/gcc/testsuite/g++.dg/init/pr35878_4.C
new file mode 100644
index 00000000000..bd275655a63
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/pr35878_4.C
@@ -0,0 +1,23 @@
+// PR c++/35878
+// { dg-do compile }
+// { dg-options "-O2 -std=gnu++11 -fcheck-new -fdump-tree-optimized" }
+// { dg-final { scan-tree-dump-times "v_\[0-9]+\\(D\\) \[=!]= 0" 1 "optimized" } }
+
+#include <new>
+#include <utility>
+
+struct s1{
+ int a;
+ int b;
+ int c;
+};
+
+void f1 (s1 * v, s1&& s)
+{
+ new (v) s1(std::move(s));
+}
+
+void f2 (s1 * v, s1&& s)
+{
+ *v = std::move(s);
+}
diff --git a/gcc/testsuite/g++.dg/init/reference2.C b/gcc/testsuite/g++.dg/init/reference2.C
index 42f53742685..903c06496d5 100644
--- a/gcc/testsuite/g++.dg/init/reference2.C
+++ b/gcc/testsuite/g++.dg/init/reference2.C
@@ -5,7 +5,7 @@
// We should we able to diagnostic this without instantiating the template
template <int a1>
-int f()
+void f()
{
typedef int& T;
T a = T(); // { dg-error "value-initialization of reference" }
diff --git a/gcc/testsuite/g++.dg/init/reference3.C b/gcc/testsuite/g++.dg/init/reference3.C
index 8cc5afd6f4c..52ae935ca79 100644
--- a/gcc/testsuite/g++.dg/init/reference3.C
+++ b/gcc/testsuite/g++.dg/init/reference3.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
// This code used to be accepted but it is invalid as there is no
// value initialization of a reference type.
// PR c++/36695
diff --git a/gcc/testsuite/g++.dg/init/switch1.C b/gcc/testsuite/g++.dg/init/switch1.C
index b0b06b748f8..a964a29df58 100644
--- a/gcc/testsuite/g++.dg/init/switch1.C
+++ b/gcc/testsuite/g++.dg/init/switch1.C
@@ -1,4 +1,4 @@
-int f(int c)
+void f(int c)
{
switch (c)
{
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-10.C b/gcc/testsuite/g++.dg/ipa/devirt-10.C
index faab5121695..84120e791f9 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-10.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-10.C
@@ -4,7 +4,7 @@ class wxPaintEvent { };
struct wxDCBase
{
wxDCBase ();
- virtual int GetLayoutDirection() const{}
+ virtual int GetLayoutDirection() const{ return 0; }
virtual void SetLayoutDirection(int){}
};
struct wxWindowDC : public wxDCBase {};
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-13.C b/gcc/testsuite/g++.dg/ipa/devirt-13.C
index fecbbfc93eb..923c98e92eb 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-13.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-13.C
@@ -11,7 +11,8 @@ public:
};
}
class A a, *b=&a;
-main()
+
+int main()
{
return b->foo();
}
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-14.C b/gcc/testsuite/g++.dg/ipa/devirt-14.C
index 1437e7e472b..5efbe68bf03 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-14.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-14.C
@@ -20,7 +20,8 @@ public:
};
}
class B a, *b=&a;
-main()
+
+int main()
{
if (0)
{
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-15.C b/gcc/testsuite/g++.dg/ipa/devirt-15.C
index bf9f2985a34..4a899d4178a 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-15.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-15.C
@@ -30,7 +30,7 @@ m(void)
{
b->foo();
}
-main()
+int main()
{
m();
}
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-16.C b/gcc/testsuite/g++.dg/ipa/devirt-16.C
index 698e3e8ff35..762ecb29fde 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-16.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-16.C
@@ -19,7 +19,7 @@ public:
};
}
class B *b;
-main()
+int main()
{
int c;
if (c)
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-17.C b/gcc/testsuite/g++.dg/ipa/devirt-17.C
index bbbd23c0bad..9edc205ce52 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-17.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-17.C
@@ -20,7 +20,7 @@ public:
}
class B *b;
void get_me_lost (void *);
-main()
+int main()
{
int c;
if (c)
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-18.C b/gcc/testsuite/g++.dg/ipa/devirt-18.C
index 066b775e00c..769e0bbc888 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-18.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-18.C
@@ -19,7 +19,7 @@ public:
};
}
class B *b;
-main()
+int main()
{
if (0)
{
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-19.C b/gcc/testsuite/g++.dg/ipa/devirt-19.C
index fd167b6f373..8277deaabdd 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-19.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-19.C
@@ -3,6 +3,8 @@
a type change. */
/* { dg-do compile } */
/* { dg-options "-O2 -fdump-ipa-cp" } */
+/* { dg-additional-options "-Wno-return-type" } */
+
struct A {
void operator==(const A &);
};
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-21.C b/gcc/testsuite/g++.dg/ipa/devirt-21.C
index a33be4eca04..aa0488df92d 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-21.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-21.C
@@ -12,7 +12,7 @@ class MultiTermDocs : public virtual B {
protected:
A readerTermDocs;
A subReaders;
- virtual B *m_fn1(int *) {}
+ virtual B *m_fn1(int *) { return NULL; }
virtual inline ~MultiTermDocs();
void wrap(void)
{
@@ -33,7 +33,7 @@ MultiTermDocs::~MultiTermDocs() {
B *C::m_fn1(int *) { abort (); }
-main()
+int main()
{
class C c;
}
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-23.C b/gcc/testsuite/g++.dg/ipa/devirt-23.C
index 665e953cae7..15e65b579f7 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-23.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-23.C
@@ -12,7 +12,7 @@ class MultiTermDocs : public virtual B {
protected:
A readerTermDocs;
A subReaders;
- virtual B *m_fn1(int *) {}
+ virtual B *m_fn1(int *) { return NULL; }
virtual inline ~MultiTermDocs();
inline void wrap(void)
{
@@ -41,7 +41,7 @@ MultiTermDocs::~MultiTermDocs() {
B *C::m_fn1(int *) { abort (); }
-main()
+int main()
{
class C c;
}
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-34.C b/gcc/testsuite/g++.dg/ipa/devirt-34.C
index 030e08bba8a..083c305665f 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-34.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-34.C
@@ -10,6 +10,8 @@ t(struct B *b)
{
struct A *a=b;
a->t();
+
+ return 0;
}
/* We should guess that the pointer of type B probably points to an instance
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-38.C b/gcc/testsuite/g++.dg/ipa/devirt-38.C
index 40deb039e7a..fdb5c623533 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-38.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-38.C
@@ -12,7 +12,7 @@ class A : public SnmpSyntax
{
public:
A (int);
- SnmpSyntax *m_fn1 () const {}
+ SnmpSyntax *m_fn1 () const { return 0; }
SnmpSyntax &operator=(const SnmpSyntax &);
};
int a;
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-40.C b/gcc/testsuite/g++.dg/ipa/devirt-40.C
index 5107c290c63..32e0d22c0e7 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-40.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-40.C
@@ -13,10 +13,14 @@ class A
UnicodeString &m_fn1 (UnicodeString &, int &p2, UErrorCode &) const;
};
UnicodeString::UnicodeString () {}
+
+UnicodeString g;
+
UnicodeString &
A::m_fn1 (UnicodeString &, int &p2, UErrorCode &) const
{
UnicodeString a[2];
+ return g;
}
/* { dg-final { scan-tree-dump-not "\\n OBJ_TYPE_REF" "fre3" } } */
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-41.C b/gcc/testsuite/g++.dg/ipa/devirt-41.C
index d8182baae6e..149da911b25 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-41.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-41.C
@@ -13,7 +13,7 @@ test (struct A *a)
__builtin_abort ();
}
-main()
+int main()
{
struct B a;
dostuff (&a);
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-42.C b/gcc/testsuite/g++.dg/ipa/devirt-42.C
index 6fecfe73bec..152b9689dc4 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-42.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-42.C
@@ -16,7 +16,7 @@ A::barbar()
return static_cast<B*>(this)->barbar();
}
-main()
+int main()
{
struct B b;
struct A *a = &b;
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-44.C b/gcc/testsuite/g++.dg/ipa/devirt-44.C
index f69e1aa08ac..5de761412d0 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-44.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-44.C
@@ -2,7 +2,7 @@
/* { dg-options "-O3 -fno-ipa-cp -fdump-ipa-inline-details -fno-early-inlining" } */
struct A {
virtual int foo () {return 1;}
- int wrapfoo () {foo();}
+ void wrapfoo () {foo();}
A() {wrapfoo();}
};
struct B:A {virtual int foo () {return 2;}};
@@ -17,7 +17,7 @@ test (struct A *a)
__builtin_abort ();
}
-main()
+int main()
{
struct B a;
dostuff (&a);
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-45.C b/gcc/testsuite/g++.dg/ipa/devirt-45.C
index 57449b702d3..ce415e7c003 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-45.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-45.C
@@ -2,7 +2,7 @@
/* { dg-options "-O3 -fno-ipa-cp -fdump-ipa-inline-details -fno-early-inlining" } */
struct A {
virtual int foo () {return 1;}
- int wrapfoo () {foo();}
+ void wrapfoo () {foo();}
A() {wrapfoo();}
};
inline void* operator new(__SIZE_TYPE__ s, void* buf) throw() {
@@ -29,7 +29,7 @@ test (struct A *a)
test2(a);
}
-main()
+int main()
{
struct B a;
dostuff (&a);
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-48.C b/gcc/testsuite/g++.dg/ipa/devirt-48.C
index eae93ece71c..1aed85f8642 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-48.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-48.C
@@ -5,14 +5,14 @@ struct A {
};
struct B:A {
virtual int foo(){return 2;}
- int callfoo(){foo();}
+ void callfoo(){foo();}
};
struct C:A {
virtual int foo(){return 3;}
};
struct D:B {
virtual int foo(){return 4;}
- int callfoo(){foo();}
+ void callfoo(){foo();}
};
static void
test (struct A *a)
diff --git a/gcc/testsuite/g++.dg/ipa/devirt-52.C b/gcc/testsuite/g++.dg/ipa/devirt-52.C
index be0ab4c3621..5c736c4037a 100644
--- a/gcc/testsuite/g++.dg/ipa/devirt-52.C
+++ b/gcc/testsuite/g++.dg/ipa/devirt-52.C
@@ -1,6 +1,7 @@
// PR middle-end/77259
// { dg-do compile { target c++11 } }
// { dg-options "-O2" }
+// { dg-additional-options "-Wno-return-type" }
template <typename, typename = int> class A;
template <typename, typename> struct A
diff --git a/gcc/testsuite/g++.dg/ipa/nothrow-1.C b/gcc/testsuite/g++.dg/ipa/nothrow-1.C
index df2fbae2acc..b30b0215924 100644
--- a/gcc/testsuite/g++.dg/ipa/nothrow-1.C
+++ b/gcc/testsuite/g++.dg/ipa/nothrow-1.C
@@ -11,7 +11,7 @@ int a(void)
{
return *ptr == *ptr;
}
-main()
+int main()
{
int aa;
ptr = &barvar;
diff --git a/gcc/testsuite/g++.dg/ipa/pr43812.C b/gcc/testsuite/g++.dg/ipa/pr43812.C
index cc46eed6501..32d997b927d 100644
--- a/gcc/testsuite/g++.dg/ipa/pr43812.C
+++ b/gcc/testsuite/g++.dg/ipa/pr43812.C
@@ -35,4 +35,4 @@ public:
class LocalSurface : public Surface {
virtual BBox bbox () const;
};
-BBox LocalSurface::bbox () const { }
+BBox LocalSurface::bbox () const { return BBox(); }
diff --git a/gcc/testsuite/g++.dg/ipa/pr44372.C b/gcc/testsuite/g++.dg/ipa/pr44372.C
index 22aa747e435..dbdd865cfb6 100644
--- a/gcc/testsuite/g++.dg/ipa/pr44372.C
+++ b/gcc/testsuite/g++.dg/ipa/pr44372.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O -fipa-cp -fipa-cp-clone" } */
+/* { dg-additional-options "-Wno-return-type" } */
template < typename > class S3;
diff --git a/gcc/testsuite/g++.dg/ipa/pr45572-1.C b/gcc/testsuite/g++.dg/ipa/pr45572-1.C
index 82f347052d5..03a299ff422 100644
--- a/gcc/testsuite/g++.dg/ipa/pr45572-1.C
+++ b/gcc/testsuite/g++.dg/ipa/pr45572-1.C
@@ -11,18 +11,22 @@ typedef struct
extern __inline __attribute__ ((__gnu_inline__)) int
fgetc_unlocked (FILE *__fp)
{
+ return 0;
}
extern __inline __attribute__ ((__gnu_inline__)) int
putc_unlocked (int __c, FILE *__stream)
{
+ return 0;
}
extern __inline __attribute__ ((__gnu_inline__)) __ssize_t
getline (char **__lineptr, size_t *__n, FILE *__stream)
{
+ return 0;
}
extern __inline __attribute__ ((__gnu_inline__)) int
ferror_unlocked (FILE *__stream) throw ()
{
+ return 0;
}
}
typedef struct
diff --git a/gcc/testsuite/g++.dg/ipa/pr58371.C b/gcc/testsuite/g++.dg/ipa/pr58371.C
index 00cfbb831fc..cfcf677e3d0 100644
--- a/gcc/testsuite/g++.dg/ipa/pr58371.C
+++ b/gcc/testsuite/g++.dg/ipa/pr58371.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
+/* { dg-additional-options "-Wno-return-type" } */
typedef int size_t;
diff --git a/gcc/testsuite/g++.dg/ipa/pr59176.C b/gcc/testsuite/g++.dg/ipa/pr59176.C
index d576bc3ba5a..379719708ac 100644
--- a/gcc/testsuite/g++.dg/ipa/pr59176.C
+++ b/gcc/testsuite/g++.dg/ipa/pr59176.C
@@ -33,9 +33,11 @@ class C {
unsigned long C::m_fn1() {
CellHierarchy:
m_fn2().m_fn1();
+ return 0;
}
unsigned long C::m_fn3() {
CellHierarchy:
m_fn2().m_fn1();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/ipa/pr60640-1.C b/gcc/testsuite/g++.dg/ipa/pr60640-1.C
index 7a0b91893f8..2e626126d07 100644
--- a/gcc/testsuite/g++.dg/ipa/pr60640-1.C
+++ b/gcc/testsuite/g++.dg/ipa/pr60640-1.C
@@ -25,7 +25,7 @@ class D : ASN1Object, public B
};
class G : public D
{
- unsigned m_fn1 (bool) const {}
+ unsigned m_fn1 (bool) const { return 0; }
};
class F : A
{
diff --git a/gcc/testsuite/g++.dg/ipa/pr61540.C b/gcc/testsuite/g++.dg/ipa/pr61540.C
index e7dee7262c1..e297fe360dc 100644
--- a/gcc/testsuite/g++.dg/ipa/pr61540.C
+++ b/gcc/testsuite/g++.dg/ipa/pr61540.C
@@ -6,7 +6,7 @@ struct data {
};
struct top {
- virtual int topf() {}
+ virtual int topf() { return 0; }
};
struct intermediate: top {
diff --git a/gcc/testsuite/g++.dg/ipa/pr63470.C b/gcc/testsuite/g++.dg/ipa/pr63470.C
index e6fa73bcd4c..ffef0a284de 100644
--- a/gcc/testsuite/g++.dg/ipa/pr63470.C
+++ b/gcc/testsuite/g++.dg/ipa/pr63470.C
@@ -17,6 +17,7 @@ class FTjackSupport : A
const char **
m_fn2 (int)
{
+ return 0;
}
int _inited;
int *_jackClient;
diff --git a/gcc/testsuite/g++.dg/ipa/pr63587-1.C b/gcc/testsuite/g++.dg/ipa/pr63587-1.C
index cbf872e2969..a727b9e9e4c 100644
--- a/gcc/testsuite/g++.dg/ipa/pr63587-1.C
+++ b/gcc/testsuite/g++.dg/ipa/pr63587-1.C
@@ -61,6 +61,7 @@ I<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos (
const key_type &p1)
{
_M_impl._M_key_compare (p1, 0);
+ return A<int>();
}
template <typename _Key, typename _Val, typename _KeyOfValue,
typename _Compare, typename _Alloc>
@@ -69,6 +70,7 @@ I<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos (
H &)
{
_M_get_insert_unique_pos (0);
+ return A<int>();
}
template <typename _Key, typename _Val, typename _KeyOfValue,
typename _Compare, typename _Alloc>
@@ -78,6 +80,7 @@ I<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_emplace_hint_unique (
H p1, _Args &&...)
{
_M_get_insert_hint_unique_pos (p1);
+ return 0;
}
namespace {
struct L;
diff --git a/gcc/testsuite/g++.dg/ipa/pr63587-2.C b/gcc/testsuite/g++.dg/ipa/pr63587-2.C
index a15f17e7ca3..7a9b2454507 100644
--- a/gcc/testsuite/g++.dg/ipa/pr63587-2.C
+++ b/gcc/testsuite/g++.dg/ipa/pr63587-2.C
@@ -1,6 +1,7 @@
// PR ipa/63587
// { dg-do compile { target c++11 } }
// { dg-options "-O2" }
+// { dg-additional-options "-Wno-return-type" }
namespace boost {
class basic_cstring
@@ -22,6 +23,7 @@ template <typename FunctionObj> struct function_obj_invoker0
{
FunctionObj f;
f ();
+ return 0;
}
};
template <typename FunctionObj> struct get_function_obj_invoker0
diff --git a/gcc/testsuite/g++.dg/ipa/pr63838.C b/gcc/testsuite/g++.dg/ipa/pr63838.C
index fb68c9f1ac8..d23b3133748 100644
--- a/gcc/testsuite/g++.dg/ipa/pr63838.C
+++ b/gcc/testsuite/g++.dg/ipa/pr63838.C
@@ -27,7 +27,7 @@ bar (int x)
fn ();
}
-__attribute__((noinline, noclone)) int
+__attribute__((noinline, noclone)) void
baz (int x)
{
S s;
diff --git a/gcc/testsuite/g++.dg/ipa/pr63894.C b/gcc/testsuite/g++.dg/ipa/pr63894.C
index 54409752758..fad02c36acc 100644
--- a/gcc/testsuite/g++.dg/ipa/pr63894.C
+++ b/gcc/testsuite/g++.dg/ipa/pr63894.C
@@ -43,4 +43,5 @@ J::m_fn3 (G *p1)
p1->m_fn1 (0, D (0, D::BOX, 0));
K *d = new (0) K (0, m_fn2 (0));
m_fn3 (d);
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/ipa/pr64068.C b/gcc/testsuite/g++.dg/ipa/pr64068.C
index 95288836c36..008fab1e1e6 100644
--- a/gcc/testsuite/g++.dg/ipa/pr64068.C
+++ b/gcc/testsuite/g++.dg/ipa/pr64068.C
@@ -3,12 +3,12 @@
typedef int PROV_ENUMALGS_EX, PCCRYPT_OID_INFO;
class A {
- int m_fn2();
+ void m_fn2();
virtual bool m_fn1(PCCRYPT_OID_INFO);
};
int fn1();
void fn2();
-int A::m_fn2() { m_fn1(0); }
+void A::m_fn2() { m_fn1(0); }
bool fn3() {
for (;;) {
@@ -27,7 +27,7 @@ public:
B() { fn3(); }
};
class C : A {
- bool m_fn1(PCCRYPT_OID_INFO) { m_fn3(); }
+ bool m_fn1(PCCRYPT_OID_INFO) { m_fn3(); return true; }
int isSupportedByProvider_algId;
PROV_ENUMALGS_EX isSupportedByProvider_outEnumAlgs;
PROV_ENUMALGS_EX isSupportedByProvider_enumAlgs;
diff --git a/gcc/testsuite/g++.dg/ipa/pr64896.C b/gcc/testsuite/g++.dg/ipa/pr64896.C
index 0a78220be8a..7064cd05f9d 100644
--- a/gcc/testsuite/g++.dg/ipa/pr64896.C
+++ b/gcc/testsuite/g++.dg/ipa/pr64896.C
@@ -5,9 +5,9 @@
struct A { int a, b; };
struct B { A c; int d; };
struct C { virtual B fn1 () const; };
-struct D { B fn2 () const; int fn3 () const; C *fn4 () const; };
+struct D { B fn2 () const; void fn3 () const; C *fn4 () const; };
-int
+void
D::fn3 () const
{
fn4 ()->fn1 ();
diff --git a/gcc/testsuite/g++.dg/ipa/pr65002.C b/gcc/testsuite/g++.dg/ipa/pr65002.C
index ac7c66bd19a..b505ac82c54 100644
--- a/gcc/testsuite/g++.dg/ipa/pr65002.C
+++ b/gcc/testsuite/g++.dg/ipa/pr65002.C
@@ -10,12 +10,12 @@ using fastmath::floor;
class A {
public:
A(int, int);
- virtual int m_fn1(float) const;
+ virtual void m_fn1(float) const;
};
class B : A {
public:
B(int, int p2) : A(entity, p2) {}
- int m_fn1(float p1) const { long b(floor(p1)); }
+ void m_fn1(float p1) const { long b(floor(p1)); }
int entity;
};
diff --git a/gcc/testsuite/g++.dg/ipa/pr65008.C b/gcc/testsuite/g++.dg/ipa/pr65008.C
index 29b3a2f161f..84f10bb276c 100644
--- a/gcc/testsuite/g++.dg/ipa/pr65008.C
+++ b/gcc/testsuite/g++.dg/ipa/pr65008.C
@@ -8,7 +8,7 @@ struct A
virtual void foo () {}
};
-static inline int __attribute__ ((always_inline)) call_foo (A *a)
+static inline void __attribute__ ((always_inline)) call_foo (A *a)
{
a->foo ();
}
diff --git a/gcc/testsuite/g++.dg/ipa/pr65465.C b/gcc/testsuite/g++.dg/ipa/pr65465.C
index 436d88f743f..9c7d026b14a 100644
--- a/gcc/testsuite/g++.dg/ipa/pr65465.C
+++ b/gcc/testsuite/g++.dg/ipa/pr65465.C
@@ -4,7 +4,7 @@
struct A {};
struct B { virtual A foo () const; };
struct C { A foo () const; };
-struct D : virtual B { A foo () const {} };
+struct D : virtual B { A foo () const { return A(); } };
struct F : D { virtual int bar () const; };
int F::bar () const { return 0; }
A C::foo () const { return A (); }
diff --git a/gcc/testsuite/g++.dg/ipa/pr66896.C b/gcc/testsuite/g++.dg/ipa/pr66896.C
index 236537a5ea0..841515c846f 100644
--- a/gcc/testsuite/g++.dg/ipa/pr66896.C
+++ b/gcc/testsuite/g++.dg/ipa/pr66896.C
@@ -9,7 +9,7 @@ struct A
int *a;
A ();
~A () { a3 (); }
- int a1 (int * p) { if (!p) f3 (); f2 (p); }
+ void a1 (int * p) { if (!p) f3 (); f2 (p); }
void a3 () { if (*a) a1 (a); }
};
diff --git a/gcc/testsuite/g++.dg/ipa/pr68851.C b/gcc/testsuite/g++.dg/ipa/pr68851.C
index 659e4cdcc4a..73096969eb6 100644
--- a/gcc/testsuite/g++.dg/ipa/pr68851.C
+++ b/gcc/testsuite/g++.dg/ipa/pr68851.C
@@ -8,7 +8,7 @@ public:
};
class A {
public:
- virtual bool isFormControlElement() const {}
+ virtual bool isFormControlElement() const { return false; }
};
class C {
struct D {
@@ -20,10 +20,10 @@ class F {
virtual bool isFormControlElement() const;
};
class G : A, F {
- bool isFormControlElement() const {}
+ bool isFormControlElement() const { return true; }
};
bool C::checkPseudoClass(const D &p1, int &) const {
A &a = *p1.element;
a.isFormControlElement();
- a.isFormControlElement() || a.isFormControlElement();
+ return a.isFormControlElement() || a.isFormControlElement();
}
diff --git a/gcc/testsuite/g++.dg/ipa/pr78211.C b/gcc/testsuite/g++.dg/ipa/pr78211.C
index 8207a6bf7fb..510fca573de 100644
--- a/gcc/testsuite/g++.dg/ipa/pr78211.C
+++ b/gcc/testsuite/g++.dg/ipa/pr78211.C
@@ -1,6 +1,7 @@
// PR lto/78211
// { dg-do compile { target { lto && c++11 } } }
// { dg-options "-fcompare-debug -fno-printf-return-value -flto -fno-use-linker-plugin -O3" }
+// { dg-additional-options "-Wno-return-type" }
namespace std {
typedef __SIZE_TYPE__ size_t;
@@ -37,7 +38,7 @@ namespace __gnu_cxx {
reference operator*() const noexcept { }
};
template<typename _IteratorL, typename _IteratorR, typename _Container>
- inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept { }
+ inline bool operator!=(const __normal_iterator<_IteratorL, _Container>& __lhs, const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept { return true; }
}
namespace std {
template<typename _CharT> struct char_traits;
diff --git a/gcc/testsuite/g++.dg/ipa/pr79931.C b/gcc/testsuite/g++.dg/ipa/pr79931.C
index 78f6e03c458..c5f6816a70f 100644
--- a/gcc/testsuite/g++.dg/ipa/pr79931.C
+++ b/gcc/testsuite/g++.dg/ipa/pr79931.C
@@ -21,4 +21,5 @@ NodeImpl *AttrImpl::insertBefore(NodeImpl *newChild, NodeImpl *refChild) {
NodeImpl *oldparent = newChild->getParentNode();
oldparent->removeChild(newChild);
this->getOwnerDocument()->getRanges();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/ipa/pure-const-1.C b/gcc/testsuite/g++.dg/ipa/pure-const-1.C
index a219c713077..61940c670e7 100644
--- a/gcc/testsuite/g++.dg/ipa/pure-const-1.C
+++ b/gcc/testsuite/g++.dg/ipa/pure-const-1.C
@@ -11,7 +11,7 @@ int a(void)
{
return *ptr == *ptr;
}
-main()
+int main()
{
int aa;
ptr = &barvar;
diff --git a/gcc/testsuite/g++.dg/ipa/pure-const-2.C b/gcc/testsuite/g++.dg/ipa/pure-const-2.C
index 9788b8acdd8..6e739de4ade 100644
--- a/gcc/testsuite/g++.dg/ipa/pure-const-2.C
+++ b/gcc/testsuite/g++.dg/ipa/pure-const-2.C
@@ -15,7 +15,7 @@ static int b(void)
{
return a();
}
-main()
+int main()
{
int aa;
ptr = &barvar;
diff --git a/gcc/testsuite/g++.dg/ipa/pure-const-3.C b/gcc/testsuite/g++.dg/ipa/pure-const-3.C
index ff7fe53f335..4cf9a6a9306 100644
--- a/gcc/testsuite/g++.dg/ipa/pure-const-3.C
+++ b/gcc/testsuite/g++.dg/ipa/pure-const-3.C
@@ -21,7 +21,7 @@ static int b(int p)
return a(p+1);
return 1;
}
-main()
+int main()
{
int aa;
ptr = &barvar;
diff --git a/gcc/testsuite/g++.dg/ipa/remref-1.C b/gcc/testsuite/g++.dg/ipa/remref-1.C
index c25c425e9b7..a2c316aa9a9 100644
--- a/gcc/testsuite/g++.dg/ipa/remref-1.C
+++ b/gcc/testsuite/g++.dg/ipa/remref-1.C
@@ -28,7 +28,7 @@ allocate_a ()
a = new A();
}
-main()
+int main()
{
allocate_a();
for (int i=0; i<10000;i++)
diff --git a/gcc/testsuite/g++.dg/ipa/remref-2.C b/gcc/testsuite/g++.dg/ipa/remref-2.C
index 06bc71a5b00..1cece6541c9 100644
--- a/gcc/testsuite/g++.dg/ipa/remref-2.C
+++ b/gcc/testsuite/g++.dg/ipa/remref-2.C
@@ -29,7 +29,7 @@ allocate_a ()
a = new A();
}
-main()
+int main()
{
allocate_a();
for (int i=0; i<10000;i++)
diff --git a/gcc/testsuite/g++.dg/lookup/builtin2.C b/gcc/testsuite/g++.dg/lookup/builtin2.C
index be0a6f65d6c..4649737c3d0 100644
--- a/gcc/testsuite/g++.dg/lookup/builtin2.C
+++ b/gcc/testsuite/g++.dg/lookup/builtin2.C
@@ -14,6 +14,6 @@ namespace std
using ::toupper;
}
-int f () {
+void f () {
std::toupper((signed int)'a');
}
diff --git a/gcc/testsuite/g++.dg/lookup/crash3.C b/gcc/testsuite/g++.dg/lookup/crash3.C
index 5b58e8ed559..1b78dd607f3 100644
--- a/gcc/testsuite/g++.dg/lookup/crash3.C
+++ b/gcc/testsuite/g++.dg/lookup/crash3.C
@@ -4,12 +4,12 @@
typedef __SIZE_TYPE__ size_t;
-struct A { void *operator new(size_t s){} }; // { dg-message "operator new" }
-struct B { void *operator new(size_t s){} }; // { dg-message "operator new" }
+struct A { void *operator new(size_t s){ return 0; } }; // { dg-message "operator new" }
+struct B { void *operator new(size_t s){ return 0; } }; // { dg-message "operator new" }
struct C : A,B {};
-int crash()
+void crash()
{
C *c=new C(); // { dg-error "ambiguous" }
}
diff --git a/gcc/testsuite/g++.dg/lookup/friend20.C b/gcc/testsuite/g++.dg/lookup/friend20.C
index ecdc763ca06..8ef23a67179 100644
--- a/gcc/testsuite/g++.dg/lookup/friend20.C
+++ b/gcc/testsuite/g++.dg/lookup/friend20.C
@@ -12,5 +12,6 @@ template <int = 3> class a
a<>
d ()
{
+ return a<>();
}
};
diff --git a/gcc/testsuite/g++.dg/lookup/pr80891-5.C b/gcc/testsuite/g++.dg/lookup/pr80891-5.C
index ebf64f8758e..e018922d68b 100644
--- a/gcc/testsuite/g++.dg/lookup/pr80891-5.C
+++ b/gcc/testsuite/g++.dg/lookup/pr80891-5.C
@@ -51,6 +51,7 @@ int vf2_subgraph_iso(GraphSmall, GraphLarge, SubGraphIsoMapCallback p3,
IndexMapSmall, IndexMapLarge, VertexOrderSmall,
EdgeEquivalencePredicate, VertexEquivalencePredicate) {
vf2_subgraph_morphism<subgraph_iso>(0, 0, p3, 0, 0, 0, 0, 0);
+ return 0;
}
}
using namespace boost;
diff --git a/gcc/testsuite/g++.dg/lookup/struct2.C b/gcc/testsuite/g++.dg/lookup/struct2.C
index a66f403c291..a63e03dffdc 100644
--- a/gcc/testsuite/g++.dg/lookup/struct2.C
+++ b/gcc/testsuite/g++.dg/lookup/struct2.C
@@ -4,4 +4,4 @@ struct c {};
namespace A {
int c(struct c*req);
}
-int A::c(struct c*req) {}
+int A::c(struct c*req) { return 0; }
diff --git a/gcc/testsuite/g++.dg/lto/20080709_0.C b/gcc/testsuite/g++.dg/lto/20080709_0.C
index 55ae8c9ec2c..c9e81b44e2c 100644
--- a/gcc/testsuite/g++.dg/lto/20080709_0.C
+++ b/gcc/testsuite/g++.dg/lto/20080709_0.C
@@ -4,6 +4,7 @@ class Init {
};
int f(Init *a) {
+ return 0;
}
int main(void){
diff --git a/gcc/testsuite/g++.dg/lto/20080907_0.C b/gcc/testsuite/g++.dg/lto/20080907_0.C
index 9a4552310d9..a423196e7db 100644
--- a/gcc/testsuite/g++.dg/lto/20080907_0.C
+++ b/gcc/testsuite/g++.dg/lto/20080907_0.C
@@ -1,3 +1,5 @@
// { dg-lto-do assemble }
+// { dg-lto-options "-Wno-return-type" }
+
struct Foo { void func (); }; Foo & bar () { } struct Baz { Baz (Baz &); };
Baz dummy() { bar().func(); }
diff --git a/gcc/testsuite/g++.dg/lto/20080915_0.C b/gcc/testsuite/g++.dg/lto/20080915_0.C
index 3789765a964..40c50422857 100644
--- a/gcc/testsuite/g++.dg/lto/20080915_0.C
+++ b/gcc/testsuite/g++.dg/lto/20080915_0.C
@@ -1,4 +1,6 @@
// { dg-lto-do assemble }
+// { dg-lto-options "-Wno-return-type" }
+
struct Foo {
static const int dummy;
@@ -16,7 +18,7 @@ int func(const Bar& b) {
}
struct Baz {
- Bar& operator*() {}
+ Bar& operator*() { static Bar a; return a; }
};
void func1(Baz baz, int i, Bar bar) {
diff --git a/gcc/testsuite/g++.dg/lto/20080916_0.C b/gcc/testsuite/g++.dg/lto/20080916_0.C
index 3c900cd43b5..77494ef689c 100644
--- a/gcc/testsuite/g++.dg/lto/20080916_0.C
+++ b/gcc/testsuite/g++.dg/lto/20080916_0.C
@@ -9,4 +9,6 @@ class ios_base {
};
ios_base& g() {
+ static ios_base a;
+ return a;
}
diff --git a/gcc/testsuite/g++.dg/lto/20081022_0.C b/gcc/testsuite/g++.dg/lto/20081022_0.C
index 219f92d6a96..92d463b1cde 100644
--- a/gcc/testsuite/g++.dg/lto/20081022_0.C
+++ b/gcc/testsuite/g++.dg/lto/20081022_0.C
@@ -6,6 +6,8 @@ f (foo * a)
return a->bar ();
}
+int
main()
{
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/lto/20081023_0.C b/gcc/testsuite/g++.dg/lto/20081023_0.C
index ab3fc36f386..d40ac279b77 100644
--- a/gcc/testsuite/g++.dg/lto/20081023_0.C
+++ b/gcc/testsuite/g++.dg/lto/20081023_0.C
@@ -9,6 +9,8 @@ f (void)
func ();
}
+int
main()
{
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/lto/20081118_0.C b/gcc/testsuite/g++.dg/lto/20081118_0.C
index 7be32b6e2a7..c1f9dfc97a4 100644
--- a/gcc/testsuite/g++.dg/lto/20081118_0.C
+++ b/gcc/testsuite/g++.dg/lto/20081118_0.C
@@ -18,4 +18,5 @@ class foo : public object
int
foo::method(void)
{
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/lto/20081118_1.C b/gcc/testsuite/g++.dg/lto/20081118_1.C
index a1bf08186df..ee870a2eb75 100644
--- a/gcc/testsuite/g++.dg/lto/20081118_1.C
+++ b/gcc/testsuite/g++.dg/lto/20081118_1.C
@@ -18,4 +18,5 @@ bar*
bar::method (void)
{
quxx::method();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/lto/20081120-1_0.C b/gcc/testsuite/g++.dg/lto/20081120-1_0.C
index 6827337787c..03a9740c091 100644
--- a/gcc/testsuite/g++.dg/lto/20081120-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/20081120-1_0.C
@@ -4,6 +4,7 @@ extern "C"
{
extern __inline __attribute__((__gnu_inline__)) int pthread_equal(int, int)
{
+ return 0;
}
}
static __typeof(pthread_equal)
diff --git a/gcc/testsuite/g++.dg/lto/20081120-1_1.C b/gcc/testsuite/g++.dg/lto/20081120-1_1.C
index e7e24a58b76..9c5d9bd6f4c 100644
--- a/gcc/testsuite/g++.dg/lto/20081120-1_1.C
+++ b/gcc/testsuite/g++.dg/lto/20081120-1_1.C
@@ -2,6 +2,7 @@ extern "C"
{
extern __inline __attribute__((__gnu_inline__)) int pthread_equal(int, int)
{
+ return 0;
}
}
static __typeof(pthread_equal)
diff --git a/gcc/testsuite/g++.dg/lto/20081127_1.C b/gcc/testsuite/g++.dg/lto/20081127_1.C
index 6488ac8d797..63ae50c31ec 100644
--- a/gcc/testsuite/g++.dg/lto/20081127_1.C
+++ b/gcc/testsuite/g++.dg/lto/20081127_1.C
@@ -1,3 +1,3 @@
struct Foo { Foo(); };
Foo::Foo() { }
-main() { return 0; }
+int main() { return 0; }
diff --git a/gcc/testsuite/g++.dg/lto/20081217-2_0.C b/gcc/testsuite/g++.dg/lto/20081217-2_0.C
index a47b0b5781b..3bc6ba997a5 100644
--- a/gcc/testsuite/g++.dg/lto/20081217-2_0.C
+++ b/gcc/testsuite/g++.dg/lto/20081217-2_0.C
@@ -1,5 +1,5 @@
struct A {
- virtual int foo() {}
+ virtual int foo() { return 0; }
};
struct B {
virtual int f() {return 1; }
@@ -13,6 +13,7 @@ C::C()
{
}
+int
main()
{
C c;
diff --git a/gcc/testsuite/g++.dg/lto/20090303_0.C b/gcc/testsuite/g++.dg/lto/20090303_0.C
index 88bd6ad9beb..d9ec5a35fed 100644
--- a/gcc/testsuite/g++.dg/lto/20090303_0.C
+++ b/gcc/testsuite/g++.dg/lto/20090303_0.C
@@ -16,6 +16,8 @@ void Test() {
int int_set_;
foobar (&int_set_, &test_ints[j]);
}
+
+int
main()
{
Test();
diff --git a/gcc/testsuite/g++.dg/lto/20090311-1_0.C b/gcc/testsuite/g++.dg/lto/20090311-1_0.C
index 6d403272428..60c002fbfba 100644
--- a/gcc/testsuite/g++.dg/lto/20090311-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/20090311-1_0.C
@@ -26,6 +26,8 @@ struct A {
A a;
extern int foo();
+
+int
main()
{
a.x = 4 + c.x;
diff --git a/gcc/testsuite/g++.dg/lto/20090312_0.C b/gcc/testsuite/g++.dg/lto/20090312_0.C
index b2222c2aa20..579b60e939e 100644
--- a/gcc/testsuite/g++.dg/lto/20090312_0.C
+++ b/gcc/testsuite/g++.dg/lto/20090312_0.C
@@ -5,6 +5,7 @@ extern "C" {
extern JSErrorCallback p;
};
+int
main()
{
if ( x == ONE && p == 0)
diff --git a/gcc/testsuite/g++.dg/lto/20090315_0.C b/gcc/testsuite/g++.dg/lto/20090315_0.C
index 930fb16e5cf..1cae572eeb8 100644
--- a/gcc/testsuite/g++.dg/lto/20090315_0.C
+++ b/gcc/testsuite/g++.dg/lto/20090315_0.C
@@ -6,4 +6,4 @@ struct Foo {
static Foo *foo_;
};
Foo *Foo::foo_;
-main() { return 0; }
+int main() { return 0; }
diff --git a/gcc/testsuite/g++.dg/lto/20091002-1_0.C b/gcc/testsuite/g++.dg/lto/20091002-1_0.C
index c63b079d77b..a59a0cb9505 100644
--- a/gcc/testsuite/g++.dg/lto/20091002-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/20091002-1_0.C
@@ -1,6 +1,6 @@
// { dg-lto-do link }
// { dg-require-effective-target fpic }
-// { dg-lto-options {{-fPIC -flto}} }
+// { dg-lto-options {{-fPIC -flto -Wno-return-type}} }
// { dg-extra-ld-options "-fPIC -r -nostdlib" }
namespace std __attribute__ ((__visibility__ ("default")))
diff --git a/gcc/testsuite/g++.dg/lto/20091002-2_0.C b/gcc/testsuite/g++.dg/lto/20091002-2_0.C
index bf936bf53a3..12a1596b3e2 100644
--- a/gcc/testsuite/g++.dg/lto/20091002-2_0.C
+++ b/gcc/testsuite/g++.dg/lto/20091002-2_0.C
@@ -4,7 +4,7 @@
// { dg-extra-ld-options "-fPIC -r -nostdlib" }
class DataArray {
- int max() const { }
+ int max() const { return 0; }
};
template < class HashItem >
class DataHashTable {
diff --git a/gcc/testsuite/g++.dg/lto/20091002-3_0.C b/gcc/testsuite/g++.dg/lto/20091002-3_0.C
index 4bff78b4937..0d9afc44c28 100644
--- a/gcc/testsuite/g++.dg/lto/20091002-3_0.C
+++ b/gcc/testsuite/g++.dg/lto/20091002-3_0.C
@@ -5,7 +5,7 @@
template < class T >
class DataArray {
- int max() const { }
+ int max() const { return 0; }
};
class Name { };
class DataHashTable {
diff --git a/gcc/testsuite/g++.dg/lto/20091004-1_0.C b/gcc/testsuite/g++.dg/lto/20091004-1_0.C
index 649e35cb80d..536ae46dadf 100644
--- a/gcc/testsuite/g++.dg/lto/20091004-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/20091004-1_0.C
@@ -1,6 +1,6 @@
// { dg-lto-do link }
// { dg-require-effective-target fpic }
-// { dg-lto-options {{-fPIC -O -flto}} }
+// { dg-lto-options {{-fPIC -O -flto -Wno-return-type}} }
typedef double Real;
class Vector {
diff --git a/gcc/testsuite/g++.dg/lto/20091004-2_0.C b/gcc/testsuite/g++.dg/lto/20091004-2_0.C
index cc1204e6f7e..40ef136514b 100644
--- a/gcc/testsuite/g++.dg/lto/20091004-2_0.C
+++ b/gcc/testsuite/g++.dg/lto/20091004-2_0.C
@@ -1,6 +1,6 @@
// { dg-lto-do link }
// { dg-require-effective-target fpic }
-// { dg-lto-options {{-fPIC -O -flto}} }
+// { dg-lto-options {{-fPIC -O -flto -Wno-return-type}} }
typedef double Real;
class Vector {
diff --git a/gcc/testsuite/g++.dg/lto/20091004-3_1.C b/gcc/testsuite/g++.dg/lto/20091004-3_1.C
index 641c7495b4f..f46b8fc6c11 100644
--- a/gcc/testsuite/g++.dg/lto/20091004-3_1.C
+++ b/gcc/testsuite/g++.dg/lto/20091004-3_1.C
@@ -12,5 +12,6 @@ All_Torus_Intersections(void)
VECTOR D;
VLength(len, D);
VLength(len, D);
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/lto/20100721-1_0.C b/gcc/testsuite/g++.dg/lto/20100721-1_0.C
index 09132e5992b..e39184b76d1 100644
--- a/gcc/testsuite/g++.dg/lto/20100721-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/20100721-1_0.C
@@ -1,6 +1,6 @@
/* { dg-lto-do assemble } */
-static inline int __gthread_active_p (void) { }
+static inline int __gthread_active_p (void) { return 0; }
template <int rank, int dim> class Tensor;
template <int dimension> struct G;
template <int dim> class T {
diff --git a/gcc/testsuite/g++.dg/lto/20101010-1_0.C b/gcc/testsuite/g++.dg/lto/20101010-1_0.C
index 6eb40efc868..8f694c78aa7 100644
--- a/gcc/testsuite/g++.dg/lto/20101010-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/20101010-1_0.C
@@ -1,4 +1,5 @@
// { dg-lto-do link }
+// { dg-lto-options "-Wno-return-type" }
typedef long size_t;
template < class, class > struct pair
diff --git a/gcc/testsuite/g++.dg/lto/20101010-2_0.C b/gcc/testsuite/g++.dg/lto/20101010-2_0.C
index c68bcd63238..a26956f7fc7 100644
--- a/gcc/testsuite/g++.dg/lto/20101010-2_0.C
+++ b/gcc/testsuite/g++.dg/lto/20101010-2_0.C
@@ -1,4 +1,5 @@
// { dg-lto-do link }
+// { dg-lto-options "-Wno-return-type" }
typedef int size_t;
template < size_t _Nw > struct _Base_bitset
diff --git a/gcc/testsuite/g++.dg/lto/pr45679-1_0.C b/gcc/testsuite/g++.dg/lto/pr45679-1_0.C
index 349f5c2c1ef..0dc5fd0dcb5 100644
--- a/gcc/testsuite/g++.dg/lto/pr45679-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr45679-1_0.C
@@ -1,5 +1,5 @@
// { dg-lto-do link }
-// { dg-lto-options {{-O3 -Wno-multichar}} }
+// { dg-lto-options {{-O3 -Wno-multichar -Wno-return-type }} }
// { dg-extra-ld-options "-flto -flto-partition=1to1 -r -nostdlib" }
extern "C" {
diff --git a/gcc/testsuite/g++.dg/lto/pr45679-1_1.C b/gcc/testsuite/g++.dg/lto/pr45679-1_1.C
index c5e2db061fb..9aa92fa540e 100644
--- a/gcc/testsuite/g++.dg/lto/pr45679-1_1.C
+++ b/gcc/testsuite/g++.dg/lto/pr45679-1_1.C
@@ -1,4 +1,4 @@
- extern "C" {
+ extern "C" {
typedef struct _IO_FILE FILE;
extern struct _IO_FILE *stderr;
extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...);
diff --git a/gcc/testsuite/g++.dg/lto/pr45679-2_0.C b/gcc/testsuite/g++.dg/lto/pr45679-2_0.C
index 549741902ba..b88ad92f539 100644
--- a/gcc/testsuite/g++.dg/lto/pr45679-2_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr45679-2_0.C
@@ -1,6 +1,7 @@
// { dg-lto-do link }
-// { dg-lto-options {{-O3 -Wno-multichar}} }
+// { dg-lto-options {{-O3 -Wno-multichar -Wno-return-type}} }
// { dg-extra-ld-options "-flto -flto-partition=1to1 -r -nostdlib" }
+
extern "C" {
typedef struct {
union {
diff --git a/gcc/testsuite/g++.dg/lto/pr48042_0.C b/gcc/testsuite/g++.dg/lto/pr48042_0.C
index 00b3428e9f1..4ca1a0cebfe 100644
--- a/gcc/testsuite/g++.dg/lto/pr48042_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr48042_0.C
@@ -10,5 +10,5 @@ class B:public A {
};
int B::x() {
+ return 0;
}
-
diff --git a/gcc/testsuite/g++.dg/lto/pr51650-1_0.C b/gcc/testsuite/g++.dg/lto/pr51650-1_0.C
index 4c9ef3c8c48..1c37e629e1d 100644
--- a/gcc/testsuite/g++.dg/lto/pr51650-1_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr51650-1_0.C
@@ -15,5 +15,6 @@ int
fn ()
{
C::m ();
+ return 0;
}
-int main() {}
+int main() { return 0; }
diff --git a/gcc/testsuite/g++.dg/lto/pr51650-3_0.C b/gcc/testsuite/g++.dg/lto/pr51650-3_0.C
index e84d555a0fb..ff55e4aab4c 100644
--- a/gcc/testsuite/g++.dg/lto/pr51650-3_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr51650-3_0.C
@@ -16,5 +16,6 @@ int
fn ()
{
C::m ();
+ return 0;
}
-int main() {}
+int main() { return 0; }
diff --git a/gcc/testsuite/g++.dg/lto/pr63270_1.C b/gcc/testsuite/g++.dg/lto/pr63270_1.C
index a842e5cfcc6..b5aab3508cf 100644
--- a/gcc/testsuite/g++.dg/lto/pr63270_1.C
+++ b/gcc/testsuite/g++.dg/lto/pr63270_1.C
@@ -48,6 +48,7 @@ namespace v8
};
int PreParser::ParseMemberWithNewPrefixesExpression ( bool * )
{
+ return 0;
}
}
}
diff --git a/gcc/testsuite/g++.dg/lto/pr65193_0.C b/gcc/testsuite/g++.dg/lto/pr65193_0.C
index d778fcabb7f..ceebe51069d 100644
--- a/gcc/testsuite/g++.dg/lto/pr65193_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr65193_0.C
@@ -1,6 +1,6 @@
/* { dg-lto-do link } */
/* { dg-require-effective-target fpic } */
-/* { dg-lto-options {{-fPIC -r -nostdlib -flto -O2 -g}} } */
+/* { dg-lto-options {{-fPIC -r -nostdlib -flto -O2 -g -Wno-return-type}} } */
void frexp (int, int *);
namespace std
diff --git a/gcc/testsuite/g++.dg/lto/pr65302_0.C b/gcc/testsuite/g++.dg/lto/pr65302_0.C
index 2298afd9d96..83e1194fb10 100644
--- a/gcc/testsuite/g++.dg/lto/pr65302_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr65302_0.C
@@ -1,5 +1,5 @@
// { dg-lto-do link }
-// { dg-lto-options { { -flto -O2 } } }
+// { dg-lto-options { { -flto -O2 -Wno-return-type } } }
// { dg-extra-ld-options "-r -nostdlib -O0" }
class CstringStorageReference {
diff --git a/gcc/testsuite/g++.dg/lto/pr65316_0.C b/gcc/testsuite/g++.dg/lto/pr65316_0.C
index cccd0db7d8e..2b9360e29fe 100644
--- a/gcc/testsuite/g++.dg/lto/pr65316_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr65316_0.C
@@ -1,6 +1,7 @@
// { dg-lto-do link }
-// { dg-lto-options { { -flto -std=c++11 -g2 -fno-lto-odr-type-merging -O2 } } }
+// { dg-lto-options { { -flto -std=c++11 -g2 -fno-lto-odr-type-merging -O2 -Wno-return-type } } }
// { dg-extra-ld-options "-r -nostdlib -O2 -fno-lto-odr-type-merging" }
+
namespace std
{
typedef long unsigned int size_t;
diff --git a/gcc/testsuite/g++.dg/lto/pr65475c_0.C b/gcc/testsuite/g++.dg/lto/pr65475c_0.C
index 8e1d8bcc83d..73686918c2c 100644
--- a/gcc/testsuite/g++.dg/lto/pr65475c_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr65475c_0.C
@@ -1,6 +1,7 @@
/* { dg-lto-do link } */
-/* { dg-lto-options "-O2 -w" } */
/* { dg-extra-ld-options { -O2 -Wno-odr -r -nostdlib } } */
+/* { dg-lto-options { "-O2 -w -Wno-return-type" } } */
+
namespace std
{
template < class > struct char_traits;
diff --git a/gcc/testsuite/g++.dg/lto/pr65549_0.C b/gcc/testsuite/g++.dg/lto/pr65549_0.C
index 889cc994a58..d3ed1dca158 100644
--- a/gcc/testsuite/g++.dg/lto/pr65549_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr65549_0.C
@@ -1,5 +1,5 @@
// { dg-lto-do link }
-// { dg-lto-options { { -std=gnu++14 -flto -g } { -std=gnu++14 -flto -g -O2 -fno-inline -flto-partition=max } } }
+// { dg-lto-options { { -std=gnu++14 -flto -g -Wno-return-type } { -std=gnu++14 -flto -g -O2 -fno-inline -flto-partition=max -Wno-return-type } } }
// { dg-extra-ld-options "-r -nostdlib" }
namespace std {
@@ -135,10 +135,12 @@ public:
then(0, [] {});
}
} clients;
-main() {
+int main() {
B app;
app.run(0, 0, [&] {
auto config = app.configuration()[0].as<std::string>();
clients.then([] {});
});
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/lto/pr69077_0.C b/gcc/testsuite/g++.dg/lto/pr69077_0.C
index 6a81d0e3a5c..10cb05917b9 100644
--- a/gcc/testsuite/g++.dg/lto/pr69077_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr69077_0.C
@@ -11,4 +11,4 @@ struct cStdDev
struct cWeightedStdDev : public cStdDev {
virtual int netPack();
};
-int cWeightedStdDev::netPack() { }
+int cWeightedStdDev::netPack() { return 0; }
diff --git a/gcc/testsuite/g++.dg/lto/pr69589_0.C b/gcc/testsuite/g++.dg/lto/pr69589_0.C
index 599d5d44960..c6f72c4090b 100644
--- a/gcc/testsuite/g++.dg/lto/pr69589_0.C
+++ b/gcc/testsuite/g++.dg/lto/pr69589_0.C
@@ -1,5 +1,5 @@
// { dg-lto-do link }
-// { dg-lto-options "-O2 -rdynamic" }
+// { dg-lto-options { "-O2 -rdynamic -Wno-return-type" } }
// { dg-extra-ld-options "-r -nostdlib" }
// { dg-require-effective-target rdynamic }
diff --git a/gcc/testsuite/g++.dg/missing-return.C b/gcc/testsuite/g++.dg/missing-return.C
new file mode 100644
index 00000000000..f7fcfebb2b4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/missing-return.C
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-Wreturn-type -fdump-tree-optimized" } */
+
+int foo(int a)
+{
+} /* { dg-warning "no return statement" } */
+
+/* { dg-final { scan-tree-dump "__builtin_unreachable" "optimized" } } */
diff --git a/gcc/testsuite/g++.dg/opt/20050511-1.C b/gcc/testsuite/g++.dg/opt/20050511-1.C
index a8929030af4..a840fb0db8e 100644
--- a/gcc/testsuite/g++.dg/opt/20050511-1.C
+++ b/gcc/testsuite/g++.dg/opt/20050511-1.C
@@ -53,6 +53,8 @@ UINT32 bar (const C * sPtr)
if (a.xy[0] != ((SINT16) 0xffff << 2))
abort ();
+
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/opt/combine.C b/gcc/testsuite/g++.dg/opt/combine.C
index d01ae78a4bc..a1325a0dca9 100644
--- a/gcc/testsuite/g++.dg/opt/combine.C
+++ b/gcc/testsuite/g++.dg/opt/combine.C
@@ -36,6 +36,7 @@ class QVariant { };
template<typename T> inline T qvariant_cast (const QVariant &v)
{
const int vid = qMetaTypeId<T> ((0)) ;
+ return T();
};
class QScriptContext
{
@@ -70,4 +71,5 @@ QScriptValue QScriptDebuggerBackendPrivate::trace (QScriptContext *context)
{
QScriptValue data = context->callee () ;
QScriptDebuggerBackendPrivate *self = qscriptvalue_cast<QScriptDebuggerBackendPrivate*> (data) ;
+ return QScriptValue();
}
diff --git a/gcc/testsuite/g++.dg/opt/complex3.C b/gcc/testsuite/g++.dg/opt/complex3.C
index 9a3fdf3f0d2..ee1b616e403 100644
--- a/gcc/testsuite/g++.dg/opt/complex3.C
+++ b/gcc/testsuite/g++.dg/opt/complex3.C
@@ -7,7 +7,7 @@ _Complex float g();
_Complex float h()throw();
void i(float)throw();
-float j(void)
+void j(void)
{
_Complex float x = h();
try
diff --git a/gcc/testsuite/g++.dg/opt/const3.C b/gcc/testsuite/g++.dg/opt/const3.C
index c7c0a1645de..969df91e6e1 100644
--- a/gcc/testsuite/g++.dg/opt/const3.C
+++ b/gcc/testsuite/g++.dg/opt/const3.C
@@ -30,8 +30,8 @@ struct A
int i;
-int A::foo1(void *ios, const char *str) { }
-int A::foo2(int v, const Type t) { i=0; }
+int A::foo1(void *ios, const char *str) { return 0; }
+int A::foo2(int v, const Type t) { i=0; return 0; }
int main()
{
diff --git a/gcc/testsuite/g++.dg/opt/covariant1.C b/gcc/testsuite/g++.dg/opt/covariant1.C
index e57cf4c6be0..b8a93177946 100644
--- a/gcc/testsuite/g++.dg/opt/covariant1.C
+++ b/gcc/testsuite/g++.dg/opt/covariant1.C
@@ -9,7 +9,7 @@ bar (int x)
}
struct S { S () {}; virtual ~S () {}; };
-struct T { virtual T *foo (int) {}; };
+struct T { virtual T *foo (int) { return 0; }; };
struct V : virtual S, virtual T {};
struct V v;
struct U : public S, public T
diff --git a/gcc/testsuite/g++.dg/opt/declone3.C b/gcc/testsuite/g++.dg/opt/declone3.C
index 26f3b5214c9..3dd939a961c 100644
--- a/gcc/testsuite/g++.dg/opt/declone3.C
+++ b/gcc/testsuite/g++.dg/opt/declone3.C
@@ -14,4 +14,4 @@ struct Item : Object, virtual A {
}
bool m_fn1();
};
-bool Item::m_fn1() {}
+bool Item::m_fn1() { return true; }
diff --git a/gcc/testsuite/g++.dg/opt/dump1.C b/gcc/testsuite/g++.dg/opt/dump1.C
index f74d0247832..f813044456c 100644
--- a/gcc/testsuite/g++.dg/opt/dump1.C
+++ b/gcc/testsuite/g++.dg/opt/dump1.C
@@ -2,6 +2,7 @@
// { dg-options "-O2 -fno-inline -fdump-final-insns" }
// { dg-do compile { target c++11 } }
// { dg-final cleanup-final-insns-dump }
+// { dg-additional-options "-Wno-return-type" }
namespace std
{
@@ -348,7 +349,7 @@ namespace std __attribute__ ((__visibility__ ("default")))
template<typename _Tp>
inline reference_wrapper<_Tp>
ref(_Tp& __t) noexcept
- {}
+ { return reference_wrapper<_Tp>(); }
template<typename _Tp>
struct _Maybe_wrap_member_pointer
{
diff --git a/gcc/testsuite/g++.dg/opt/inline15.C b/gcc/testsuite/g++.dg/opt/inline15.C
index 5da3a610519..9aa1b73c863 100644
--- a/gcc/testsuite/g++.dg/opt/inline15.C
+++ b/gcc/testsuite/g++.dg/opt/inline15.C
@@ -16,7 +16,7 @@ struct A
};
struct C : public A
{
- virtual int bar () { }
+ virtual int bar () { return 0; }
};
struct D : public C
{
@@ -33,6 +33,7 @@ struct E
static unsigned *
fn2 ()
{
+ return 0;
}
void
diff --git a/gcc/testsuite/g++.dg/opt/local1.C b/gcc/testsuite/g++.dg/opt/local1.C
index 9cecaee6f2a..a63afc24f16 100644
--- a/gcc/testsuite/g++.dg/opt/local1.C
+++ b/gcc/testsuite/g++.dg/opt/local1.C
@@ -8,7 +8,7 @@ struct Outer {
inline void h(const Outer &o)
{
struct Local : public Outer::Inner {
- virtual bool f() {};
+ virtual bool f() { return true; };
};
Local l;
o.g(l);
diff --git a/gcc/testsuite/g++.dg/opt/memcpy1.C b/gcc/testsuite/g++.dg/opt/memcpy1.C
index e2b1dd2cdf0..66411cdda39 100644
--- a/gcc/testsuite/g++.dg/opt/memcpy1.C
+++ b/gcc/testsuite/g++.dg/opt/memcpy1.C
@@ -63,6 +63,7 @@ namespace CS
// the multiplication below to produce a very large number
// in excess of the maximum possible object size (SIZE_MAX/2).
__builtin_memcpy (this->OutP, InP, OutV * sizeof (csVector2)); // { dg-warning "specified size \[0-9\]+ exceeds maximum object size" }
+ return 0;
}
};
}
@@ -79,4 +80,5 @@ csBoxClipper::Clip (csVector2 * InPolygon, size_t InCount,
InPolygon, InCount,
OutPolygon);
uint8 Clipped = boxClip.Clip ();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/opt/new1.C b/gcc/testsuite/g++.dg/opt/new1.C
index dbcc0f8517a..d0f7d95b655 100644
--- a/gcc/testsuite/g++.dg/opt/new1.C
+++ b/gcc/testsuite/g++.dg/opt/new1.C
@@ -15,8 +15,8 @@ namespace QScript {
namespace Ecma {
class Core {
public:
- inline QScriptEnginePrivate *engine() const { }
- inline QScriptClassInfo *classInfo() const { }
+ inline QScriptEnginePrivate *engine() const { return 0; }
+ inline QScriptClassInfo *classInfo() const { return 0; }
QScriptValueImpl publicPrototype;
};
class Boolean: public Core {
diff --git a/gcc/testsuite/g++.dg/opt/nrv8.C b/gcc/testsuite/g++.dg/opt/nrv8.C
index 19999a18824..ca39e7e0f32 100644
--- a/gcc/testsuite/g++.dg/opt/nrv8.C
+++ b/gcc/testsuite/g++.dg/opt/nrv8.C
@@ -20,7 +20,7 @@ A bar()
return l;
}
-main()
+int main()
{
A a = bar ();
diff --git a/gcc/testsuite/g++.dg/opt/pr23299.C b/gcc/testsuite/g++.dg/opt/pr23299.C
index 94a414aa5f7..f14750eb306 100644
--- a/gcc/testsuite/g++.dg/opt/pr23299.C
+++ b/gcc/testsuite/g++.dg/opt/pr23299.C
@@ -6,15 +6,15 @@ extern "C" void abort ();
struct A
{
- virtual int a () {}
+ virtual int a () { return 0; }
};
struct B : public A
{
- virtual int b () {}
+ virtual int b () { return 1; }
};
struct C : public A
{
- virtual int c () {}
+ virtual int c () { return 2; }
};
struct D
{
@@ -50,6 +50,8 @@ E::c ()
if (x > 10)
throw 1;
x |= 2;
+
+ return x;
}
int
diff --git a/gcc/testsuite/g++.dg/opt/pr27826.C b/gcc/testsuite/g++.dg/opt/pr27826.C
index 5e40f1746f9..7de08e08133 100644
--- a/gcc/testsuite/g++.dg/opt/pr27826.C
+++ b/gcc/testsuite/g++.dg/opt/pr27826.C
@@ -5,7 +5,7 @@ struct Geometry
{
int type:16;
};
-struct Geometry get() {};
+struct Geometry get() { return Geometry(); };
int f()
{
struct Geometry test;
diff --git a/gcc/testsuite/g++.dg/opt/pr44919.C b/gcc/testsuite/g++.dg/opt/pr44919.C
index a4aeec822bc..1916a2b359d 100644
--- a/gcc/testsuite/g++.dg/opt/pr44919.C
+++ b/gcc/testsuite/g++.dg/opt/pr44919.C
@@ -1,5 +1,6 @@
// { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } }
// { dg-options "-O3 -fselective-scheduling2" }
+// { dg-additional-options "-Wno-return-type" }
namespace std {
@@ -9,7 +10,7 @@ template<typename _Tp> class new_allocator { public: typedef size_t size_type; t
template<typename _Tp> class allocator: public new_allocator<_Tp> { public: typedef size_t size_type; template<typename _Tp1> struct rebind { typedef allocator<_Tp1> other; }; };
class back_insert_iterator { };
-template<typename _Container> back_insert_iterator back_inserter(_Container& __x) { };
+template<typename _Container> back_insert_iterator back_inserter(_Container& __x) { return back_insert_iterator(); };
class vector { };
@@ -99,6 +100,7 @@ namespace internal {
};
template <class K> Object intersection( const typename K::Segment_2 &seg, const typename K::Iso_rectangle_2 &iso, const K&) {
typedef Segment_2_Iso_rectangle_2_pair<K> is_t; is_t ispair(&seg, &iso); switch (ispair.intersection_type()) { }
+ return Object();
}
template <class K> typename Segment_2_Iso_rectangle_2_pair<K>::Intersection_results Segment_2_Iso_rectangle_2_pair<K>::intersection_type() const {
typedef typename K::RT RT;
diff --git a/gcc/testsuite/g++.dg/opt/pr46640.C b/gcc/testsuite/g++.dg/opt/pr46640.C
index 1c25778e8da..b55afd4937e 100644
--- a/gcc/testsuite/g++.dg/opt/pr46640.C
+++ b/gcc/testsuite/g++.dg/opt/pr46640.C
@@ -7,6 +7,7 @@ struct QBasicAtomicInt
bool deref ()
{
asm volatile ("":"=m" (i), "=qm" (j));
+ return true;
}
};
@@ -41,4 +42,6 @@ bool makeDir (unsigned len)
return false;
i = pos;
}
+
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/opt/pr47615.C b/gcc/testsuite/g++.dg/opt/pr47615.C
index f8dbcf7e824..bc467b0c883 100644
--- a/gcc/testsuite/g++.dg/opt/pr47615.C
+++ b/gcc/testsuite/g++.dg/opt/pr47615.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-O -fstrict-aliasing -ftree-pre -fno-tree-fre -fno-tree-sra" }
+// { dg-additional-options "-Wno-return-type" }
typedef __SIZE_TYPE__ size_t;
namespace std
@@ -434,7 +435,7 @@ template < typename Const_Node_Iterator, typename Node_Iterator, typename, typen
return ((m_p_nd->m_p_right));
}
bool operator == (bin_search_tree_const_node_it_)
- {}
+ { return true; }
node_pointer m_p_nd;
};
template
@@ -704,7 +705,7 @@ typedef
int,
null_mapped_type,
less < int >, rb_tree_tag, tree_order_statistics_node_update > set_t;
-main ()
+int main ()
{
set_t s;
s.insert (12);
diff --git a/gcc/testsuite/g++.dg/opt/pr55329.C b/gcc/testsuite/g++.dg/opt/pr55329.C
index 3646785d12e..28a8a4d72fa 100644
--- a/gcc/testsuite/g++.dg/opt/pr55329.C
+++ b/gcc/testsuite/g++.dg/opt/pr55329.C
@@ -19,10 +19,10 @@ struct A
int *a;
A ();
~A () { a3 (); }
- int a1 (int * p) { if (!p) f3 (); f2 (p); }
+ int a1 (int * p) { if (!p) f3 (); f2 (p); return 0; }
int *a2 ();
void a3 () { if (*a) a1 (a); }
- int a4 (int x) { if (*a) f4 (); *a2 () += x; }
+ int a4 (int x) { if (*a) f4 (); *a2 () += x; return 0; }
};
struct B : A
diff --git a/gcc/testsuite/g++.dg/opt/pr61456.C b/gcc/testsuite/g++.dg/opt/pr61456.C
index 14a118b5720..51a1e618cb3 100644
--- a/gcc/testsuite/g++.dg/opt/pr61456.C
+++ b/gcc/testsuite/g++.dg/opt/pr61456.C
@@ -14,6 +14,7 @@ typedef decltype (&Funcs::f1) pfunc;
static int Set (Funcs * f, const pfunc & fp)
{
(f->*fp) ();
+ return 0;
}
void
diff --git a/gcc/testsuite/g++.dg/opt/pr65003.C b/gcc/testsuite/g++.dg/opt/pr65003.C
index 5d131afaedb..333cdbcc477 100644
--- a/gcc/testsuite/g++.dg/opt/pr65003.C
+++ b/gcc/testsuite/g++.dg/opt/pr65003.C
@@ -26,6 +26,6 @@ struct F : D
F (int &, const int &, const A &);
bool foo (int &, bool) const;
};
-bool D::foo (int &, bool) const {}
+bool D::foo (int &, bool) const { return true; }
F::F (int &, const int &, const A &) {}
-bool F::foo (int &, bool) const {}
+bool F::foo (int &, bool) const { return false; }
diff --git a/gcc/testsuite/g++.dg/opt/pr65554.C b/gcc/testsuite/g++.dg/opt/pr65554.C
index 1519964d1fe..cae2beafe02 100644
--- a/gcc/testsuite/g++.dg/opt/pr65554.C
+++ b/gcc/testsuite/g++.dg/opt/pr65554.C
@@ -24,6 +24,7 @@ namespace std
{
int _Num = p2 - p1;
__builtin_memmove (0, p1, sizeof (_Tp) * _Num);
+ return 0;
}
};
template <int, typename _II, typename _OI> void __copy_move_a (_II p1, _II p2, _OI p3)
@@ -68,6 +69,7 @@ namespace std
template <typename _InputIterator, typename _ForwardIterator> static _ForwardIterator __uninit_copy (_InputIterator p1, _InputIterator p2, _ForwardIterator p3)
{
copy (p1, p2, p3);
+ return _ForwardIterator();
}
};
template <typename _InputIterator, typename _ForwardIterator> void
diff --git a/gcc/testsuite/g++.dg/opt/pr69432.C b/gcc/testsuite/g++.dg/opt/pr69432.C
index 1f23f2cedd6..d024ece4cba 100644
--- a/gcc/testsuite/g++.dg/opt/pr69432.C
+++ b/gcc/testsuite/g++.dg/opt/pr69432.C
@@ -26,7 +26,7 @@ void f4 (S, U);
struct C
{
template <typename S, typename T, typename U>
- static S f5 (S x, T y, U z) { f2 (x, y, z); }
+ static S f5 (S x, T y, U z) { f2 (x, y, z); return S(); }
};
template <typename S, typename T, typename U>
diff --git a/gcc/testsuite/g++.dg/opt/pr78373.C b/gcc/testsuite/g++.dg/opt/pr78373.C
index 9ceef1cc732..b332691ec0b 100644
--- a/gcc/testsuite/g++.dg/opt/pr78373.C
+++ b/gcc/testsuite/g++.dg/opt/pr78373.C
@@ -12,11 +12,13 @@ struct D : B {
static int m_fn3(int, int, int, A) {
D &self = singleton;
self.m_fn2();
+ return 0;
}
static D singleton;
};
template <typename, typename> struct C { bool m_fn4() const; };
template <typename Base, typename Traits> bool C<Base, Traits>::m_fn4() const {
Traits::m_fn3(0, 0, 0, Base::singleton);
+ return true;
}
template struct C<A, D>;
diff --git a/gcc/testsuite/g++.dg/opt/pr79267.C b/gcc/testsuite/g++.dg/opt/pr79267.C
index 177eee6c6f7..69dc6cb0251 100644
--- a/gcc/testsuite/g++.dg/opt/pr79267.C
+++ b/gcc/testsuite/g++.dg/opt/pr79267.C
@@ -45,12 +45,12 @@ D bar ();
template <typename T> struct L
{
struct K { K (int); void operator() (int *) { bar ().q (); } };
- static J<T> bp () { bq (0); }
+ static J<T> bp () { bq (0); return J<T>(); }
template <typename br> static void bq (br) { J<T> (0, K (0)); }
};
struct F
{
- virtual J<int> x (int) { foo (0, 0, 0); J<bs<> > (L<bs<> >::bp ()); }
+ virtual J<int> x (int) { foo (0, 0, 0); J<bs<> > (L<bs<> >::bp ()); return J<int>(); }
};
void
diff --git a/gcc/testsuite/g++.dg/opt/pr82159-2.C b/gcc/testsuite/g++.dg/opt/pr82159-2.C
index f153c29ddac..c9797105562 100644
--- a/gcc/testsuite/g++.dg/opt/pr82159-2.C
+++ b/gcc/testsuite/g++.dg/opt/pr82159-2.C
@@ -1,6 +1,7 @@
// PR c++/82159
// { dg-do compile }
// { dg-options "" }
+// { dg-additional-options "-Wno-return-type" }
template <typename T> struct D { T e; };
struct F : D<int[0]> {
diff --git a/gcc/testsuite/g++.dg/opt/pr82929.C b/gcc/testsuite/g++.dg/opt/pr82929.C
new file mode 100644
index 00000000000..572f4914815
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr82929.C
@@ -0,0 +1,30 @@
+// PR tree-optimization/82929
+// { dg-do compile }
+// { dg-options "-O2" }
+
+template <int _Nw> struct A {
+ long _M_w[_Nw];
+ void m_fn1(A p1) {
+ for (int a = 0;; a++)
+ _M_w[a] &= p1._M_w[a];
+ }
+ void m_fn2() {
+ for (int b = 0; b < _Nw; b++)
+ _M_w[b] = ~_M_w[b];
+ }
+};
+template <int _Nb> struct C : A<_Nb / (8 * 8)> {
+ void operator&=(C p1) { this->m_fn1(p1); }
+ C m_fn3() {
+ this->m_fn2();
+ return *this;
+ }
+ C operator~() { return C(*this).m_fn3(); }
+};
+struct B {
+ C<192> Value;
+};
+void fn1(C<192> &p1) {
+ B c;
+ p1 &= ~c.Value;
+}
diff --git a/gcc/testsuite/g++.dg/other/array3.C b/gcc/testsuite/g++.dg/other/array3.C
index ce3641e8ccd..3e6f7d1ad07 100644
--- a/gcc/testsuite/g++.dg/other/array3.C
+++ b/gcc/testsuite/g++.dg/other/array3.C
@@ -10,5 +10,6 @@ extern unsigned char xvalue_store[];
bool reserve (int want)
{
new unsigned char[want];
+ return true;
}
unsigned char xvalue_store[257];
diff --git a/gcc/testsuite/g++.dg/other/copy2.C b/gcc/testsuite/g++.dg/other/copy2.C
index 335cab8d19f..df480f06ecc 100644
--- a/gcc/testsuite/g++.dg/other/copy2.C
+++ b/gcc/testsuite/g++.dg/other/copy2.C
@@ -10,11 +10,15 @@ class A
{
public:
int i;
- A &operator =(const A &i)
- {
+ A &operator =(const A &i);
+};
+
+A a;
+
+A& A::operator=(const A &i) {
status = 0;
+ return a;
}
-};
class B
{
diff --git a/gcc/testsuite/g++.dg/other/crash-5.C b/gcc/testsuite/g++.dg/other/crash-5.C
index 25a70b7df36..81e5bac8a25 100644
--- a/gcc/testsuite/g++.dg/other/crash-5.C
+++ b/gcc/testsuite/g++.dg/other/crash-5.C
@@ -9,7 +9,7 @@ struct int_less_than {};
void assert_fail (const char*);
-int f(const set<int, int_less_than>&)
+void f(const set<int, int_less_than>&)
{
assert_fail (__PRETTY_FUNCTION__);
diff --git a/gcc/testsuite/g++.dg/other/crash-8.C b/gcc/testsuite/g++.dg/other/crash-8.C
index dcae7da76c7..b7f56fc9bd7 100644
--- a/gcc/testsuite/g++.dg/other/crash-8.C
+++ b/gcc/testsuite/g++.dg/other/crash-8.C
@@ -97,6 +97,8 @@ public:
mapped_type& operator[](const key_type& __k) {
insert(value_type(__k, mapped_type()));
+ static mapped_type a;
+ return a;
}
};
diff --git a/gcc/testsuite/g++.dg/other/error34.C b/gcc/testsuite/g++.dg/other/error34.C
index f5ced1adfdc..f6b44888f48 100644
--- a/gcc/testsuite/g++.dg/other/error34.C
+++ b/gcc/testsuite/g++.dg/other/error34.C
@@ -2,5 +2,5 @@
// { dg-do compile }
// { dg-options "" }
-S () : str(__PRETTY_FUNCTION__) {} // { dg-error "forbids declaration" "decl" }
+S () : str(__PRETTY_FUNCTION__) { return S(); } // { dg-error "forbids declaration" "decl" }
// { dg-error "only constructors" "constructor" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/other/i386-8.C b/gcc/testsuite/g++.dg/other/i386-8.C
index cf833a524de..a9465ef12bc 100644
--- a/gcc/testsuite/g++.dg/other/i386-8.C
+++ b/gcc/testsuite/g++.dg/other/i386-8.C
@@ -19,4 +19,6 @@ foo (float *x, short *y)
__m64 c = _mm_cvtps_pi16 (b);
__builtin_memcpy (y, &c, sizeof (short) * 4);
y[0] = bar (y[0]);
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/other/pr22003.C b/gcc/testsuite/g++.dg/other/pr22003.C
index 222ccac7beb..521e3f9b305 100644
--- a/gcc/testsuite/g++.dg/other/pr22003.C
+++ b/gcc/testsuite/g++.dg/other/pr22003.C
@@ -21,5 +21,6 @@ struct c3 : c1, c2
c4* c3::func()
{
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/other/pr24623.C b/gcc/testsuite/g++.dg/other/pr24623.C
index 480bb39b63a..2a337756c2a 100644
--- a/gcc/testsuite/g++.dg/other/pr24623.C
+++ b/gcc/testsuite/g++.dg/other/pr24623.C
@@ -34,6 +34,8 @@ RefCountPointer (T * p = 0):_p (p)
if (_p != 0)
_p->decrementRefCount ();
}
+ static RefCountPointer a;
+ return a;
}
~RefCountPointer ()
{
diff --git a/gcc/testsuite/g++.dg/other/pr29610.C b/gcc/testsuite/g++.dg/other/pr29610.C
index 6566fb9a204..d68f4a15a07 100644
--- a/gcc/testsuite/g++.dg/other/pr29610.C
+++ b/gcc/testsuite/g++.dg/other/pr29610.C
@@ -6,7 +6,7 @@ struct __normal_iterator
typedef int*const *_Iterator;
int*const * _M_current;
__normal_iterator(const _Iterator& __i) : _M_current(__i){}
- const _Iterator& base() const {}
+ const _Iterator& base() const { static _Iterator a; return a; }
};
struct string { ~string(){} };
struct vector
@@ -26,9 +26,10 @@ inline int Painter::for_each(vector &layout, SliceWindowFunc func)
{
for (unsigned int window = 0; window < layout.size();++window)
(this->*func)();
+ return 0;
}
int t;
-int Painter::redraw_window(void) {t = 1;}
+int Painter::redraw_window(void) {t = 1; return 0; }
string t2(int);
vector *g(const string&);
void Painter::tcl_command(void)
diff --git a/gcc/testsuite/g++.dg/other/pr42645-1.C b/gcc/testsuite/g++.dg/other/pr42645-1.C
index 5dc76f9efd9..df93645721e 100644
--- a/gcc/testsuite/g++.dg/other/pr42645-1.C
+++ b/gcc/testsuite/g++.dg/other/pr42645-1.C
@@ -13,7 +13,7 @@ struct S
T *t3;
} t;
int m1 () const { return t.t3[0].t1; }
- char *m2 () { foo (); }
+ char *m2 () { foo (); return 0; }
void m3 (int x) { char *m = m2 (); if (m1 () > 0 && x > 0); }
void m4 () { if (m1 () > 0) for (int i = 0; i < 4; i++) t.t2[i] = 0; }
};
diff --git a/gcc/testsuite/g++.dg/other/pr42645-2.C b/gcc/testsuite/g++.dg/other/pr42645-2.C
index 67632e51d91..20cce80f217 100644
--- a/gcc/testsuite/g++.dg/other/pr42645-2.C
+++ b/gcc/testsuite/g++.dg/other/pr42645-2.C
@@ -8,7 +8,7 @@ struct C
C ();
};
-static inline C *foo () {}
+static inline C *foo () { return 0; }
extern void f4 ();
@@ -16,6 +16,7 @@ static inline int
f3 ()
{
f4 ();
+ return 0;
}
static inline void
diff --git a/gcc/testsuite/g++.dg/other/pr52048.C b/gcc/testsuite/g++.dg/other/pr52048.C
index 6bf51f1e288..cf388a5a045 100644
--- a/gcc/testsuite/g++.dg/other/pr52048.C
+++ b/gcc/testsuite/g++.dg/other/pr52048.C
@@ -1,6 +1,7 @@
// PR debug/52048
// { dg-do compile }
// { dg-options "-fcompare-debug -fnon-call-exceptions -fno-tree-dominator-opts -O2" }
+// { dg-additional-options "-Wno-return-type" }
template <typename T> struct A;
template <typename T>
diff --git a/gcc/testsuite/g++.dg/other/typedef3.C b/gcc/testsuite/g++.dg/other/typedef3.C
index 8ead5b84520..ed9aca2cf53 100644
--- a/gcc/testsuite/g++.dg/other/typedef3.C
+++ b/gcc/testsuite/g++.dg/other/typedef3.C
@@ -8,5 +8,5 @@ struct XalanCProcessor
ParseOptionType getParseOption(void);
};
typedef XalanCProcessor::ParseOptionType ParseOptionType;
-ParseOptionType XalanCProcessor::getParseOption(void) {}
+ParseOptionType XalanCProcessor::getParseOption(void) { return ParseOptionType(); }
diff --git a/gcc/testsuite/g++.dg/overload/addr1.C b/gcc/testsuite/g++.dg/overload/addr1.C
index 25856a20fc6..4eb9e2f31ca 100644
--- a/gcc/testsuite/g++.dg/overload/addr1.C
+++ b/gcc/testsuite/g++.dg/overload/addr1.C
@@ -11,7 +11,7 @@ static int flag = 0;
template <typename> struct A
{
- A &active () { flag++;}
+ A &active () { flag++; static A a; return a; }
static void foo() {}
diff --git a/gcc/testsuite/g++.dg/overload/defarg4.C b/gcc/testsuite/g++.dg/overload/defarg4.C
index 3fa0751b7c0..65ad5821aa3 100644
--- a/gcc/testsuite/g++.dg/overload/defarg4.C
+++ b/gcc/testsuite/g++.dg/overload/defarg4.C
@@ -6,11 +6,11 @@ class foo
{
template<typename U>
static bool func(const U& x)
- {}
+ { return true; }
public:
template<typename U>
unsigned int Find(const U& x, bool (*pFunc) (const U&) = func) const
- {}
+ { return 0; }
};
class bar {
@@ -22,5 +22,6 @@ protected:
bool bar::Initialize()
{
b.Find(b);
+ return false;
}
diff --git a/gcc/testsuite/g++.dg/overload/operator5.C b/gcc/testsuite/g++.dg/overload/operator5.C
index 329775aa872..b90b0fd912e 100644
--- a/gcc/testsuite/g++.dg/overload/operator5.C
+++ b/gcc/testsuite/g++.dg/overload/operator5.C
@@ -8,7 +8,7 @@ class String {
operator UnspecifiedBoolTypeA() const;
operator UnspecifiedBoolTypeB() const;
};
-inline bool equalIgnoringCase(const String& a, const String& b) { }
+inline bool equalIgnoringCase(const String& a, const String& b) { return true; }
inline bool equalPossiblyIgnoringCase(const String& a,
const String& b,
bool ignoreCase) {
diff --git a/gcc/testsuite/g++.dg/overload/ref-conv1.C b/gcc/testsuite/g++.dg/overload/ref-conv1.C
index 7e141141264..1c525fbc782 100644
--- a/gcc/testsuite/g++.dg/overload/ref-conv1.C
+++ b/gcc/testsuite/g++.dg/overload/ref-conv1.C
@@ -1,4 +1,5 @@
// PR c++/50442
+// { dg-additional-options "-Wno-return-type" }
template <typename T> struct MoveRef { operator T& () {} };
template <typename T> MoveRef <T> Move(T&) {}
diff --git a/gcc/testsuite/g++.dg/overload/template5.C b/gcc/testsuite/g++.dg/overload/template5.C
index 8ff1b3d657c..902684059a8 100644
--- a/gcc/testsuite/g++.dg/overload/template5.C
+++ b/gcc/testsuite/g++.dg/overload/template5.C
@@ -6,7 +6,7 @@ int low(T a, T b, T c) { return a + b + c; } // { dg-message "template" }
template<typename T>
int high(T a, T b, T c) { return a + b + c; } // { dg-message "template" }
-int test (void)
+void test (void)
{
low (5, 6); // { dg-error "no matching function" }
// { dg-message "(candidate|3 arguments, 2 provided)" "" { target *-*-* } .-1 }
diff --git a/gcc/testsuite/g++.dg/parse/crash40.C b/gcc/testsuite/g++.dg/parse/crash40.C
index 537cdb78ef1..67322f3eb11 100644
--- a/gcc/testsuite/g++.dg/parse/crash40.C
+++ b/gcc/testsuite/g++.dg/parse/crash40.C
@@ -15,12 +15,12 @@ class AA
struct BB : AA {};
class AAA {
- int get() const {}
+ int get() const { return 0; }
};
struct BBB {
static BBB *foo();
private:
- int get() const {} /* { dg-message "private" } */
+ int get() const { return 1; } /* { dg-message "private" } */
};
template<bool> struct S {
S(unsigned int = BBB::foo()->AAA::get()); /* { dg-error "is not a base of" } */
diff --git a/gcc/testsuite/g++.dg/parse/crash61.C b/gcc/testsuite/g++.dg/parse/crash61.C
index 790df0e4bc4..b2004b85173 100644
--- a/gcc/testsuite/g++.dg/parse/crash61.C
+++ b/gcc/testsuite/g++.dg/parse/crash61.C
@@ -1,5 +1,6 @@
// PR c++/56241
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
struct pair { constexpr pair (const) : }; // { dg-error "" }
template <0> make_pair () {} // { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/parse/crash67.C b/gcc/testsuite/g++.dg/parse/crash67.C
index 51773ccef53..0befc9e2457 100644
--- a/gcc/testsuite/g++.dg/parse/crash67.C
+++ b/gcc/testsuite/g++.dg/parse/crash67.C
@@ -1,4 +1,5 @@
// PR c++/79414
+// { dg-additional-options "-Wno-return-type" }
class x0;
template <x1> x2() { // { dg-error "declared|type" }
diff --git a/gcc/testsuite/g++.dg/parse/ctor5.C b/gcc/testsuite/g++.dg/parse/ctor5.C
index f980b4a184f..917bfb06c34 100644
--- a/gcc/testsuite/g++.dg/parse/ctor5.C
+++ b/gcc/testsuite/g++.dg/parse/ctor5.C
@@ -1,4 +1,5 @@
// PR c++/27309
+// { dg-additional-options "-Wno-return-type" }
struct A
{
diff --git a/gcc/testsuite/g++.dg/parse/defarg4.C b/gcc/testsuite/g++.dg/parse/defarg4.C
index bafdadb9429..151f6c5f668 100644
--- a/gcc/testsuite/g++.dg/parse/defarg4.C
+++ b/gcc/testsuite/g++.dg/parse/defarg4.C
@@ -19,6 +19,7 @@ struct R
int Foo ()
{
R s (1);
+ return 0;
}
template <typename T> struct Q
@@ -29,4 +30,5 @@ template <typename T> struct Q
int Foo (Q<int> *s)
{
s->Foo (1);
+ return 1;
}
diff --git a/gcc/testsuite/g++.dg/parse/defarg6.C b/gcc/testsuite/g++.dg/parse/defarg6.C
index 827b605b77e..f73c2746cec 100644
--- a/gcc/testsuite/g++.dg/parse/defarg6.C
+++ b/gcc/testsuite/g++.dg/parse/defarg6.C
@@ -6,6 +6,6 @@
namespace sc_dt {
class sc_length_param {
- friend int compare_unsigned(int if_v_signed = 0) {}
+ friend int compare_unsigned(int if_v_signed = 0) { return 0; }
};
}
diff --git a/gcc/testsuite/g++.dg/parse/error5.C b/gcc/testsuite/g++.dg/parse/error5.C
index d14a47664b8..576ae9fd09b 100644
--- a/gcc/testsuite/g++.dg/parse/error5.C
+++ b/gcc/testsuite/g++.dg/parse/error5.C
@@ -1,19 +1,19 @@
// PR c++/13269
// { dg-options "-fshow-column" }
+// { dg-additional-options "-Wno-return-type" }
class Foo { int foo() return 0; } };
-// { dg-error "30:expected identifier before numeric constant" "identifier" { target *-*-* } 4 }
+// { dg-error "30:expected identifier before numeric constant" "identifier" { target *-*-* } 5 }
-// { dg-error "23:named return values are no longer supported" "named return" { target *-*-* } 4 }
+// { dg-error "23:named return values are no longer supported" "named return" { target *-*-* } 5 }
// 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:expected '\{' at end of input" "brace" { target *-*-* } 4 }
+// { dg-error "30:expected '\{' at end of input" "brace" { target *-*-* } 5 }
-// { dg-error "34:expected ';' after class definition" "semicolon" {target *-*-* } 4 }
-
-// { dg-error "35:expected declaration before '\}' token" "declaration" {target *-*-* } 4 }
+// { dg-error "34:expected ';' after class definition" "semicolon" {target *-*-* } 5 }
+// { dg-error "35:expected declaration before '\}' token" "declaration" {target *-*-* } 5 }
diff --git a/gcc/testsuite/g++.dg/parse/expr2.C b/gcc/testsuite/g++.dg/parse/expr2.C
index 32800e4f9cd..fb572e9408a 100644
--- a/gcc/testsuite/g++.dg/parse/expr2.C
+++ b/gcc/testsuite/g++.dg/parse/expr2.C
@@ -2,7 +2,7 @@ struct X {
X(double *data, double d0, double d1);
};
-int foo(double d0) {
+void foo(double d0) {
double * data;
X(data,d0,d0);
}
diff --git a/gcc/testsuite/g++.dg/parse/friend7.C b/gcc/testsuite/g++.dg/parse/friend7.C
index 72ab430ef1b..7fc480f3ea0 100644
--- a/gcc/testsuite/g++.dg/parse/friend7.C
+++ b/gcc/testsuite/g++.dg/parse/friend7.C
@@ -1,5 +1,6 @@
// PR c++/34488
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
struct A
{
diff --git a/gcc/testsuite/g++.dg/parse/namespace1.C b/gcc/testsuite/g++.dg/parse/namespace1.C
index 7740bce2dc4..56697419253 100644
--- a/gcc/testsuite/g++.dg/parse/namespace1.C
+++ b/gcc/testsuite/g++.dg/parse/namespace1.C
@@ -2,6 +2,6 @@ namespace foo {
void baz(int);
}
-int bar(int foo) {
+void bar(int foo) {
foo::baz (3);
}
diff --git a/gcc/testsuite/g++.dg/parse/namespace9.C b/gcc/testsuite/g++.dg/parse/namespace9.C
index 7ff0267bff3..d5da5446a65 100644
--- a/gcc/testsuite/g++.dg/parse/namespace9.C
+++ b/gcc/testsuite/g++.dg/parse/namespace9.C
@@ -1,7 +1,7 @@
namespace A {
void f();
}
-int g()
+void g()
{
struct f { };
using A::f;
diff --git a/gcc/testsuite/g++.dg/parse/ret-type2.C b/gcc/testsuite/g++.dg/parse/ret-type2.C
index 4b7a0457edd..913c8fe0002 100644
--- a/gcc/testsuite/g++.dg/parse/ret-type2.C
+++ b/gcc/testsuite/g++.dg/parse/ret-type2.C
@@ -1,3 +1,5 @@
+// { dg-additional-options "-Wno-return-type" }
+
struct S {} f(); // { dg-error "return" "err" }
// { dg-message "note" "note" { target *-*-* } .-1 }
struct T {} *g(); // { dg-error "return" }
diff --git a/gcc/testsuite/g++.dg/parse/typedef8.C b/gcc/testsuite/g++.dg/parse/typedef8.C
index 4c1823e87b9..60b8f39ee5e 100644
--- a/gcc/testsuite/g++.dg/parse/typedef8.C
+++ b/gcc/testsuite/g++.dg/parse/typedef8.C
@@ -5,7 +5,7 @@ typedef register int b; // { dg-error "conflicting" }
typedef extern int c; // { dg-error "conflicting" }
static typedef int a; // { dg-error "conflicting" }
-int foo()
+void foo()
{
typedef auto int bar; // { dg-error "conflicting|two or more data types" }
}
diff --git a/gcc/testsuite/g++.dg/pch/static-1.C b/gcc/testsuite/g++.dg/pch/static-1.C
index 21e77898298..cd6d4111cc5 100644
--- a/gcc/testsuite/g++.dg/pch/static-1.C
+++ b/gcc/testsuite/g++.dg/pch/static-1.C
@@ -2,9 +2,11 @@
int LocalStaticTest()
{
static A sa;
+ return 0;
}
int main(int argc, char **argv)
{
A::StaticTest();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C b/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C
index a145dfea28c..8b6afeb052a 100644
--- a/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C
+++ b/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C
@@ -66,7 +66,7 @@ struct test_struct
int field;
};
-int test_structure_references (struct test_struct *ptr)
+void test_structure_references (struct test_struct *ptr)
{
struct test_struct local;
local.field = 42;
@@ -84,7 +84,7 @@ int test_structure_references (struct test_struct *ptr)
{ dg-end-multiline-output "" } */
}
-int test_postfix_incdec (int i)
+void test_postfix_incdec (int i)
{
__emit_expression_range (0, i++ ); /* { dg-warning "range" } */
/* { dg-begin-multiline-output "" }
@@ -101,7 +101,7 @@ int test_postfix_incdec (int i)
/* Unary operators. ****************************************************/
-int test_sizeof (int i)
+void test_sizeof (int i)
{
__emit_expression_range (0, sizeof(int) + i); /* { dg-warning "range" } */
/* { dg-begin-multiline-output "" }
@@ -128,7 +128,7 @@ int test_sizeof (int i)
{ dg-end-multiline-output "" } */
}
-int test_alignof (int i)
+void test_alignof (int i)
{
__emit_expression_range (0, alignof(int) + i); /* { dg-warning "range" } */
/* { dg-begin-multiline-output "" }
@@ -167,7 +167,7 @@ int test_alignof (int i)
{ dg-end-multiline-output "" } */
}
-int test_prefix_incdec (int i)
+void test_prefix_incdec (int i)
{
__emit_expression_range (0, ++i ); /* { dg-warning "range" } */
/* { dg-begin-multiline-output "" }
diff --git a/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C b/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C
index 70101c86826..404cd2124c0 100644
--- a/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C
+++ b/gcc/testsuite/g++.dg/plugin/dumb-plugin-test-1.C
@@ -26,7 +26,7 @@ struct Bar {
int g = g;
Foo foo = foo;
-int func()
+void func()
{
Bar *bar1, bar2;
Foo local_foo;
diff --git a/gcc/testsuite/g++.dg/plugin/self-assign-test-1.C b/gcc/testsuite/g++.dg/plugin/self-assign-test-1.C
index 95d39dd0ce6..08bee09f0d5 100644
--- a/gcc/testsuite/g++.dg/plugin/self-assign-test-1.C
+++ b/gcc/testsuite/g++.dg/plugin/self-assign-test-1.C
@@ -26,7 +26,7 @@ struct Bar {
int g = g; // { dg-warning "assigned to itself" }
Foo foo = foo; // { dg-warning "assigned to itself" }
-int func()
+void func()
{
Bar *bar1, bar2;
Foo local_foo;
diff --git a/gcc/testsuite/g++.dg/plugin/self-assign-test-2.C b/gcc/testsuite/g++.dg/plugin/self-assign-test-2.C
index da963c42db2..2c9d8cb7d0e 100644
--- a/gcc/testsuite/g++.dg/plugin/self-assign-test-2.C
+++ b/gcc/testsuite/g++.dg/plugin/self-assign-test-2.C
@@ -26,7 +26,7 @@ struct Bar {
int g = g; // { dg-warning "assigned to itself" }
Foo foo = foo; // { dg-warning "assigned to itself" }
-int func()
+void func()
{
Bar *bar1, bar2;
Foo local_foo;
diff --git a/gcc/testsuite/g++.dg/plugin/self-assign-test-3.C b/gcc/testsuite/g++.dg/plugin/self-assign-test-3.C
index e5b354baff2..48a1aa4139c 100644
--- a/gcc/testsuite/g++.dg/plugin/self-assign-test-3.C
+++ b/gcc/testsuite/g++.dg/plugin/self-assign-test-3.C
@@ -26,7 +26,7 @@ struct Bar {
int g = g; // { dg-bogus "assigned to itself" }
Foo foo = foo; // { dg-bogus "assigned to itself" }
-int func()
+void func()
{
Bar *bar1, bar2;
Foo local_foo;
diff --git a/gcc/testsuite/g++.dg/pr45788.C b/gcc/testsuite/g++.dg/pr45788.C
index 0f4db20c769..9148585a7f6 100644
--- a/gcc/testsuite/g++.dg/pr45788.C
+++ b/gcc/testsuite/g++.dg/pr45788.C
@@ -1,5 +1,5 @@
// { dg-do compile { target i?86-*-* x86_64-*-* } }
-// { dg-options "-O3 -fwhole-program -msse2" }
+// { dg-options "-O3 -fwhole-program -msse2 -Wno-return-type" }
typedef long unsigned int __darwin_size_t;
typedef __darwin_size_t size_t;
diff --git a/gcc/testsuite/g++.dg/pr48484.C b/gcc/testsuite/g++.dg/pr48484.C
index 1380c452fa4..19e9b9a8d0a 100644
--- a/gcc/testsuite/g++.dg/pr48484.C
+++ b/gcc/testsuite/g++.dg/pr48484.C
@@ -65,6 +65,8 @@ bool
jump = 0;
}
}
+
+ return false;
}
bool
@@ -102,4 +104,5 @@ bool
}
}
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/pr50763-3.C b/gcc/testsuite/g++.dg/pr50763-3.C
index b66be87b1b8..33aba30406e 100644
--- a/gcc/testsuite/g++.dg/pr50763-3.C
+++ b/gcc/testsuite/g++.dg/pr50763-3.C
@@ -53,5 +53,5 @@ long sExt::evalPoint(const v2d & crUV, v3d & rPnt) const {
if (!_Dom.cop2d(crUV)) {
sUV = _Dom.clp2d(crUV);
}
- eval();
+ return eval();
}
diff --git a/gcc/testsuite/g++.dg/pr55513.C b/gcc/testsuite/g++.dg/pr55513.C
index 35c728d30a3..1c119e40ebd 100644
--- a/gcc/testsuite/g++.dg/pr55513.C
+++ b/gcc/testsuite/g++.dg/pr55513.C
@@ -1,11 +1,13 @@
// { dg-do compile }
// { dg-options "-O0 -fdump-tree-gimple" }
+int
main ()
{
char s[10];
const int t = (__builtin_memcpy (s, "Hello", 6), 777);
__builtin_printf ("%d %s\n", t, s);
+ return 0;
}
// { dg-final { scan-tree-dump-times "memcpy" 1 "gimple" } }
diff --git a/gcc/testsuite/g++.dg/pr55604.C b/gcc/testsuite/g++.dg/pr55604.C
index f6fa3c0f42c..f67a1b4ef14 100644
--- a/gcc/testsuite/g++.dg/pr55604.C
+++ b/gcc/testsuite/g++.dg/pr55604.C
@@ -1,10 +1,12 @@
/* { dg-do compile } */
/* { dg-options "-O -fdump-rtl-reload" } */
+int
main ()
{
char s[10];
const int t = (__builtin_memcpy (s, "Hello", 6), 5);
__builtin_printf ("%d %s\n", t, s);
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/pr57662.C b/gcc/testsuite/g++.dg/pr57662.C
index bd5793dcaea..1592433d0d7 100644
--- a/gcc/testsuite/g++.dg/pr57662.C
+++ b/gcc/testsuite/g++.dg/pr57662.C
@@ -1,5 +1,6 @@
/* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
/* { dg-options "-O2 -fselective-scheduling2 -fsel-sched-pipelining" } */
+/* { dg-additional-options "-Wno-return-type" } */
extern "C" {
typedef struct _IO_FILE FILE;
diff --git a/gcc/testsuite/g++.dg/pr57878.C b/gcc/testsuite/g++.dg/pr57878.C
index 231f9e346b9..5df2b7c9ef4 100644
--- a/gcc/testsuite/g++.dg/pr57878.C
+++ b/gcc/testsuite/g++.dg/pr57878.C
@@ -95,6 +95,8 @@ namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
}
__sso_string_base(const __sso_string_base& __rcs);
const _CharT_alloc_type& _M_get_allocator() const {
+ static _CharT_alloc_type c;
+ return c;
}
};
template<typename _CharT, typename _Traits, typename _Alloc>
diff --git a/gcc/testsuite/g++.dg/pr58389.C b/gcc/testsuite/g++.dg/pr58389.C
index 648c145459b..8c98b67076b 100644
--- a/gcc/testsuite/g++.dg/pr58389.C
+++ b/gcc/testsuite/g++.dg/pr58389.C
@@ -51,4 +51,4 @@ inline void C::m_fn1() {
sort(c, b, qt_notclosestLeaf);
}
}
-A F::m_fn1() const { const_cast<F *>(this)->d_ptr->m_fn1(); }
+A F::m_fn1() const { const_cast<F *>(this)->d_ptr->m_fn1(); return A(); }
diff --git a/gcc/testsuite/g++.dg/pr59510.C b/gcc/testsuite/g++.dg/pr59510.C
index dcdf860dcf7..4ac5becfd26 100644
--- a/gcc/testsuite/g++.dg/pr59510.C
+++ b/gcc/testsuite/g++.dg/pr59510.C
@@ -1,6 +1,7 @@
// PR debug/59510
// { dg-do compile }
// { dg-options "-O2 -g --param=large-stack-frame-growth=1" }
+// { dg-additional-options "-Wno-return-type" }
template <typename _Iterator>
struct _Iter_base
diff --git a/gcc/testsuite/g++.dg/pr64688.C b/gcc/testsuite/g++.dg/pr64688.C
index 3525e49b735..bf85f1abb45 100644
--- a/gcc/testsuite/g++.dg/pr64688.C
+++ b/gcc/testsuite/g++.dg/pr64688.C
@@ -24,7 +24,10 @@ template <typename> struct F;
template <typename> struct G;
template <typename, typename, int> struct H;
template <typename Element, typename Layout> struct H<Element, Layout, 3> {};
-template <int, typename E, typename L, int N> unsigned char at_c(H<E, L, N>) {}
+template <int, typename E, typename L, int N> unsigned char at_c(H<E, L, N>)
+{
+ return 0;
+}
template <typename> class I;
template <typename> class J;
template <typename> class K;
diff --git a/gcc/testsuite/g++.dg/pr65032.C b/gcc/testsuite/g++.dg/pr65032.C
index a62f50b49bf..d6b6768d25a 100644
--- a/gcc/testsuite/g++.dg/pr65032.C
+++ b/gcc/testsuite/g++.dg/pr65032.C
@@ -84,4 +84,6 @@ G::DecodeVorbis (int *p1)
mDecodedAudioFrames -= b;
fn2 (b);
}
+
+ return nsresult();
}
diff --git a/gcc/testsuite/g++.dg/pr67989.C b/gcc/testsuite/g++.dg/pr67989.C
index c3023557d31..26748997fdd 100644
--- a/gcc/testsuite/g++.dg/pr67989.C
+++ b/gcc/testsuite/g++.dg/pr67989.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-std=c++11 -O2" } */
+/* { dg-additional-options "-Wno-return-type" } */
__extension__ typedef unsigned long long int uint64_t;
namespace std __attribute__ ((__visibility__ ("default")))
diff --git a/gcc/testsuite/g++.dg/pr70590-2.C b/gcc/testsuite/g++.dg/pr70590-2.C
index 409c86eccd1..fd79dbfc883 100644
--- a/gcc/testsuite/g++.dg/pr70590-2.C
+++ b/gcc/testsuite/g++.dg/pr70590-2.C
@@ -8,13 +8,13 @@ constexpr int *foo = &a;
void blah (int *);
-int
+void
bar ()
{
blah (foo);
}
-int
+void
baz ()
{
blah (foo);
diff --git a/gcc/testsuite/g++.dg/pr70590.C b/gcc/testsuite/g++.dg/pr70590.C
index 488620065ee..28c455ab530 100644
--- a/gcc/testsuite/g++.dg/pr70590.C
+++ b/gcc/testsuite/g++.dg/pr70590.C
@@ -12,13 +12,13 @@ foo ()
void blah (int *);
-int
+void
bar ()
{
blah (foo ());
}
-int
+void
baz ()
{
blah (foo ());
diff --git a/gcc/testsuite/g++.dg/pr70965.C b/gcc/testsuite/g++.dg/pr70965.C
index d8a2c35e532..4b45789845f 100644
--- a/gcc/testsuite/g++.dg/pr70965.C
+++ b/gcc/testsuite/g++.dg/pr70965.C
@@ -14,7 +14,7 @@ template <typename> struct D
extern template class D<char>;
enum L { M };
struct F { virtual char *foo (); };
-template <class> struct I : B { static int foo (int) {} };
+template <class> struct I : B { static int foo (int) { return 0; } };
struct G { typedef I<int> t; };
void foo (int) { G::t::foo (0); }
void bar (const D<char> &, const D<int> &, int, L);
diff --git a/gcc/testsuite/g++.dg/pr71633.C b/gcc/testsuite/g++.dg/pr71633.C
index 48e9c9833ec..8852695b910 100644
--- a/gcc/testsuite/g++.dg/pr71633.C
+++ b/gcc/testsuite/g++.dg/pr71633.C
@@ -20,6 +20,7 @@ class c3 : c1, c2
int *c3::fn2 () const
{
+ return 0;
}
int *c3::fn3 (int p) const
diff --git a/gcc/testsuite/g++.dg/pr77550.C b/gcc/testsuite/g++.dg/pr77550.C
index a1064737a67..9b31defd09c 100644
--- a/gcc/testsuite/g++.dg/pr77550.C
+++ b/gcc/testsuite/g++.dg/pr77550.C
@@ -235,7 +235,7 @@ template <typename, typename, typename> struct basic_string {
basic_string() : _M_dataplus(0) {}
basic_string(const basic_string &) : _M_dataplus(0) {}
size_type size() { return _M_string_length; }
- char *data() const {}
+ char *data() const { return 0; }
};
//template<> basic_string<char, std::char_traits<char>, std::allocator<char>>::
//_Alloc_hider::_Alloc_hider(char*, std::allocator<char>&&) {}
diff --git a/gcc/testsuite/g++.dg/pr80287.C b/gcc/testsuite/g++.dg/pr80287.C
index da8d3fab150..d01e73371de 100644
--- a/gcc/testsuite/g++.dg/pr80287.C
+++ b/gcc/testsuite/g++.dg/pr80287.C
@@ -3,7 +3,7 @@
// { dg-options "-g" }
struct A {
- operator long() {}
+ operator long() { return 0; }
} __attribute__((__may_alias__));
struct {
diff --git a/gcc/testsuite/g++.dg/pr80707.C b/gcc/testsuite/g++.dg/pr80707.C
index 4fe89335e31..b3848b0eb5f 100644
--- a/gcc/testsuite/g++.dg/pr80707.C
+++ b/gcc/testsuite/g++.dg/pr80707.C
@@ -26,4 +26,6 @@ int A::m_fn1(int &p1) const {
p1 = 0;
b--;
}
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/pr81194.C b/gcc/testsuite/g++.dg/pr81194.C
index 249fcf3b7c7..5f949389ec6 100644
--- a/gcc/testsuite/g++.dg/pr81194.C
+++ b/gcc/testsuite/g++.dg/pr81194.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-O2 -std=c++17 -fno-exceptions" }
+// { dg-additional-options "-Wno-return-type" }
template <class a> struct b { typedef a *c; };
class e {};
diff --git a/gcc/testsuite/g++.dg/spellcheck-identifiers.C b/gcc/testsuite/g++.dg/spellcheck-identifiers.C
index 08434399e6f..e4a606e2052 100644
--- a/gcc/testsuite/g++.dg/spellcheck-identifiers.C
+++ b/gcc/testsuite/g++.dg/spellcheck-identifiers.C
@@ -136,7 +136,7 @@ enum foo {
FOO_SECOND
};
-int
+void
test_6 (enum foo f)
{
switch (f)
diff --git a/gcc/testsuite/g++.dg/stackprotectexplicit2.C b/gcc/testsuite/g++.dg/stackprotectexplicit2.C
index 9cf9ab909c9..35d9e886ccf 100644
--- a/gcc/testsuite/g++.dg/stackprotectexplicit2.C
+++ b/gcc/testsuite/g++.dg/stackprotectexplicit2.C
@@ -7,6 +7,7 @@ int A()
{
int A[23];
char b[22];
+ return 0;
}
int __attribute__((stack_protect)) B()
@@ -24,4 +25,4 @@ int __attribute__((stack_protect)) c()
}
-/* { dg-final { scan-assembler-times "stack_chk_fail" 2 } } */ \ No newline at end of file
+/* { dg-final { scan-assembler-times "stack_chk_fail" 2 } } */
diff --git a/gcc/testsuite/g++.dg/tc1/dr152.C b/gcc/testsuite/g++.dg/tc1/dr152.C
index e787f8bcbfb..7d84d6afc1a 100644
--- a/gcc/testsuite/g++.dg/tc1/dr152.C
+++ b/gcc/testsuite/g++.dg/tc1/dr152.C
@@ -12,6 +12,7 @@ namespace N1 {
{
X x;
f(x); // { dg-error "matching" "matching" }
+ return 0;
}
}
@@ -30,6 +31,7 @@ namespace N2 {
{
X<T> x;
N2::f(x); // { dg-error "matching" "matching" }
+ return 0;
}
template int foo<float>(); // { dg-message "required from here" }
diff --git a/gcc/testsuite/g++.dg/template/aggr-init1.C b/gcc/testsuite/g++.dg/template/aggr-init1.C
index a09c7a79264..a7fe7c0441b 100644
--- a/gcc/testsuite/g++.dg/template/aggr-init1.C
+++ b/gcc/testsuite/g++.dg/template/aggr-init1.C
@@ -4,5 +4,5 @@ struct A {};
struct B {
void *(*a)();
};
-template <typename T> void *CreateA() {}
+template <typename T> void *CreateA() { return 0; }
B b = {CreateA<A>};
diff --git a/gcc/testsuite/g++.dg/template/anon1.C b/gcc/testsuite/g++.dg/template/anon1.C
index ef73df6b39e..ff5c9ea1553 100644
--- a/gcc/testsuite/g++.dg/template/anon1.C
+++ b/gcc/testsuite/g++.dg/template/anon1.C
@@ -1,10 +1,10 @@
struct x {
- int foo () {}
+ int foo () { return 0; }
};
template <class T>
struct vector {
- T& bar () {}
+ T& bar () { static T a; return a; }
};
template <class T>
diff --git a/gcc/testsuite/g++.dg/template/array29.C b/gcc/testsuite/g++.dg/template/array29.C
index e43cb9d965a..f3eb95dc0aa 100644
--- a/gcc/testsuite/g++.dg/template/array29.C
+++ b/gcc/testsuite/g++.dg/template/array29.C
@@ -30,6 +30,7 @@ template <typename BaseT> struct D
typename BaseT::callback_type p3)
{
p3.on_extended_iso_date ();
+ return char_type();
}
};
struct F
diff --git a/gcc/testsuite/g++.dg/template/array7.C b/gcc/testsuite/g++.dg/template/array7.C
index 1fb130f9961..59364be33cf 100644
--- a/gcc/testsuite/g++.dg/template/array7.C
+++ b/gcc/testsuite/g++.dg/template/array7.C
@@ -6,6 +6,7 @@ template <unsigned N, unsigned M>
int bar( const char(&val)[M] )
{
foo (N,M);
+ return 0;
}
int i = bar<10>("1234");
diff --git a/gcc/testsuite/g++.dg/template/canon-type-8.C b/gcc/testsuite/g++.dg/template/canon-type-8.C
index fd1fe3ce362..b72bd0fb770 100644
--- a/gcc/testsuite/g++.dg/template/canon-type-8.C
+++ b/gcc/testsuite/g++.dg/template/canon-type-8.C
@@ -2,6 +2,7 @@
// We were getting different canonical types for matching types because
// TYPE_ALIGN wasn't propagated to all the variants fast enough.
// { dg-options "" }
+// { dg-additional-options "-Wno-return-type" }
typedef __SIZE_TYPE__ size_t;
enum { chunk_size = 16 };
diff --git a/gcc/testsuite/g++.dg/template/cast5.C b/gcc/testsuite/g++.dg/template/cast5.C
new file mode 100644
index 00000000000..4e48d1d3c5c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/cast5.C
@@ -0,0 +1,8 @@
+// PR c++/82360
+// { dg-do compile { target c++11 } }
+
+class a {};
+template <class> class b {
+ b(b &&c) : d(static_cast<a &&>(c.d)) {}
+ a d;
+};
diff --git a/gcc/testsuite/g++.dg/template/conv1.C b/gcc/testsuite/g++.dg/template/conv1.C
index e0c7492034c..80c7becd665 100644
--- a/gcc/testsuite/g++.dg/template/conv1.C
+++ b/gcc/testsuite/g++.dg/template/conv1.C
@@ -16,8 +16,8 @@ template<class T> struct First
};
template <class T> int First<T>::Foo ()
-{} // This is here to make sure we didn't smash Foo's decl in the
- // method vector
+{ return 0; } // This is here to make sure we didn't smash Foo's decl in the
+ // method vector
struct B { };
struct D { };
diff --git a/gcc/testsuite/g++.dg/template/crash107.C b/gcc/testsuite/g++.dg/template/crash107.C
index d92ee3394e2..cecf9013244 100644
--- a/gcc/testsuite/g++.dg/template/crash107.C
+++ b/gcc/testsuite/g++.dg/template/crash107.C
@@ -1,6 +1,7 @@
// PR c++/44625
// { dg-do compile }
// { dg-options "" }
+// { dg-additional-options "-Wno-return-type" }
template<typename FP_> struct Vec { // { dg-message "note" }
Vec& operator^=(Vec& rhs) {
diff --git a/gcc/testsuite/g++.dg/template/crash23.C b/gcc/testsuite/g++.dg/template/crash23.C
index 0c3eac1acbf..b8dea99b4b1 100644
--- a/gcc/testsuite/g++.dg/template/crash23.C
+++ b/gcc/testsuite/g++.dg/template/crash23.C
@@ -1,7 +1,7 @@
// PR c++/17642
template<int dim>
-int f(const int* const lsh, const int* const bbox, const int* const nghostzones, int d)
+void f(const int* const lsh, const int* const bbox, const int* const nghostzones, int d)
{
for (int d=0; d<dim; ++d)
lsh[d] - (bbox[2*d+1] ? 0 : nghostzones[d]);
diff --git a/gcc/testsuite/g++.dg/template/crash8.C b/gcc/testsuite/g++.dg/template/crash8.C
index a6f26b30679..b68cfcb4440 100644
--- a/gcc/testsuite/g++.dg/template/crash8.C
+++ b/gcc/testsuite/g++.dg/template/crash8.C
@@ -13,7 +13,7 @@ struct bar
};
template <typename U>
- int wom(U c)
+ void wom(U c)
{
struct foo b;
}
diff --git a/gcc/testsuite/g++.dg/template/defarg4.C b/gcc/testsuite/g++.dg/template/defarg4.C
index 293538adbd1..30711c22c0b 100644
--- a/gcc/testsuite/g++.dg/template/defarg4.C
+++ b/gcc/testsuite/g++.dg/template/defarg4.C
@@ -1,7 +1,7 @@
// PR c++/14763
struct A {
- int get() const {}
+ int get() const { return 0; }
static A *foo();
};
diff --git a/gcc/testsuite/g++.dg/template/dependent-expr9.C b/gcc/testsuite/g++.dg/template/dependent-expr9.C
index 7da060d4bb6..e5abc2525d3 100644
--- a/gcc/testsuite/g++.dg/template/dependent-expr9.C
+++ b/gcc/testsuite/g++.dg/template/dependent-expr9.C
@@ -6,5 +6,5 @@ public:
};
A *fn1(int *);
template <typename> class B : A {
- static int *m_fn2() { fn1(m_fn2())->m_fn1<A>(); }
+ static int *m_fn2() { fn1(m_fn2())->m_fn1<A>(); return 0; }
};
diff --git a/gcc/testsuite/g++.dg/template/error10.C b/gcc/testsuite/g++.dg/template/error10.C
index 02ea64b7912..a61d22f1916 100644
--- a/gcc/testsuite/g++.dg/template/error10.C
+++ b/gcc/testsuite/g++.dg/template/error10.C
@@ -24,6 +24,7 @@ void B(void) {}
int Btest()
{
B<256 >> 4>();
+ return 0;
}
template <int N = 123>>4>
diff --git a/gcc/testsuite/g++.dg/template/friend32.C b/gcc/testsuite/g++.dg/template/friend32.C
index 94bff37776f..278b4960602 100644
--- a/gcc/testsuite/g++.dg/template/friend32.C
+++ b/gcc/testsuite/g++.dg/template/friend32.C
@@ -18,4 +18,5 @@ template<class T> class B
int f ()
{
B<int> b; // { dg-message "required" }
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/template/init6.C b/gcc/testsuite/g++.dg/template/init6.C
index 143746642fc..d5467023b5b 100644
--- a/gcc/testsuite/g++.dg/template/init6.C
+++ b/gcc/testsuite/g++.dg/template/init6.C
@@ -24,8 +24,10 @@ template<class T>
Iter<typename Graph<T>::Node*> *Graph<T>::Inner::get() {
SubIter<typename Graph<T>::Node*> *iter;
iter->insert(0);
+ return 0;
}
int main() {
Iter<Graph<int>::Node*> *n2_iter = new SubIter<Graph<int>::Node*>();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/template/memfriend7.C b/gcc/testsuite/g++.dg/template/memfriend7.C
index 2659a1a2191..e6bf12f9654 100644
--- a/gcc/testsuite/g++.dg/template/memfriend7.C
+++ b/gcc/testsuite/g++.dg/template/memfriend7.C
@@ -49,6 +49,7 @@ template <class T> int A<T*>::h()
{
C c;
c.ii = 0; // { dg-error "context" }
+ return 0;
}
template <class T> void A<T*>::i(char)
@@ -93,6 +94,7 @@ int A<char>::h()
{
C c;
c.ii = 0; // { dg-error "context" }
+ return 0;
}
void A<char>::i(char)
diff --git a/gcc/testsuite/g++.dg/template/new10.C b/gcc/testsuite/g++.dg/template/new10.C
index 98293ba5bd4..1a0c044c005 100644
--- a/gcc/testsuite/g++.dg/template/new10.C
+++ b/gcc/testsuite/g++.dg/template/new10.C
@@ -20,4 +20,5 @@ bool Analyzer::ReadDictionary( READER &reader )
= ( number_of_composite_sequences + SequenceMapIndex( 1 ) )
* ( number_of_composite_sequences + 1 );
map_from_2_hints_to_composite_sequence.reset(new SequenceIndex[ntt]());
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/template/nontype12.C b/gcc/testsuite/g++.dg/template/nontype12.C
index b4bb41d109b..4ec22ef94e3 100644
--- a/gcc/testsuite/g++.dg/template/nontype12.C
+++ b/gcc/testsuite/g++.dg/template/nontype12.C
@@ -27,7 +27,7 @@ template<typename T> struct C
template<T> int foo(); // { dg-error "double" }
};
-template<typename T> int baz(T) { C<T> c; } // { dg-message "required" }
+template<typename T> int baz(T) { C<T> c; return 0;} // { dg-message "required" }
void foobar()
{
diff --git a/gcc/testsuite/g++.dg/template/overload12.C b/gcc/testsuite/g++.dg/template/overload12.C
index 3251474bd6a..43898efebde 100644
--- a/gcc/testsuite/g++.dg/template/overload12.C
+++ b/gcc/testsuite/g++.dg/template/overload12.C
@@ -8,7 +8,7 @@ int foo(T a, T2& b, T2 c) {return a + b;} // { dg-message "template" }
int foo(char*, S&); // { dg-message "foo" }
// { dg-message "candidate expects 2 arguments, 3 provided" "arity" { target *-*-* } .-1 }
-int foo2(int x)
+void foo2(int x)
{
S s={1,2};
char c;
diff --git a/gcc/testsuite/g++.dg/template/overload5.C b/gcc/testsuite/g++.dg/template/overload5.C
index 8e520e92907..06075eca78f 100644
--- a/gcc/testsuite/g++.dg/template/overload5.C
+++ b/gcc/testsuite/g++.dg/template/overload5.C
@@ -24,5 +24,6 @@ int foo::f()
f_obj<&foo::g> c; // OK
f_obj<foo::g> d; // OK
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/template/overload8.C b/gcc/testsuite/g++.dg/template/overload8.C
index cc6a05b7041..4775db18d87 100644
--- a/gcc/testsuite/g++.dg/template/overload8.C
+++ b/gcc/testsuite/g++.dg/template/overload8.C
@@ -3,5 +3,5 @@
struct A
{
template<int> void foo() {}
- template<int> int foo() {}
+ template<int> int foo() { return 0; }
};
diff --git a/gcc/testsuite/g++.dg/template/partial10.C b/gcc/testsuite/g++.dg/template/partial10.C
index 53a48fbac82..673baae2023 100644
--- a/gcc/testsuite/g++.dg/template/partial10.C
+++ b/gcc/testsuite/g++.dg/template/partial10.C
@@ -10,9 +10,10 @@
template <class Fn> void def(Fn fn) {}
template <class T1, class T2> T2 fn(T1, T2);
-template <class T1> int fn(T1) { }
+template <class T1> int fn(T1) { return 0; }
int main()
{
def(fn<int>);
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/template/partial9.C b/gcc/testsuite/g++.dg/template/partial9.C
index 4c340fc935d..8307c70883e 100644
--- a/gcc/testsuite/g++.dg/template/partial9.C
+++ b/gcc/testsuite/g++.dg/template/partial9.C
@@ -1,6 +1,6 @@
// PR c++/36435
template <class T> T f();
-template <class T> T* f() { }
+template <class T> T* f() { return 0; }
template int* f();
diff --git a/gcc/testsuite/g++.dg/template/qual1.C b/gcc/testsuite/g++.dg/template/qual1.C
index 8fa79b3d2e7..7b20265eb9a 100644
--- a/gcc/testsuite/g++.dg/template/qual1.C
+++ b/gcc/testsuite/g++.dg/template/qual1.C
@@ -7,7 +7,7 @@ public:
void sort (int (*compare) (T *const&,T *const&));
};
-int shift_compare (int *const &, int *const &) {}
+int shift_compare (int *const &, int *const &) { return 0; }
template<class T> void
Link_array<T>::sort (int (*compare) (T *const&,T *const&))
diff --git a/gcc/testsuite/g++.dg/template/show-template-tree-3.C b/gcc/testsuite/g++.dg/template/show-template-tree-3.C
index 0eda40bcf77..7bb93ba4f60 100644
--- a/gcc/testsuite/g++.dg/template/show-template-tree-3.C
+++ b/gcc/testsuite/g++.dg/template/show-template-tree-3.C
@@ -9,6 +9,7 @@
for that in this case). */
// { dg-options "-fdiagnostics-show-template-tree" }
+// { dg-additional-options "-Wno-return-type" }
#include <map>
#include <vector>
diff --git a/gcc/testsuite/g++.dg/template/sizeof8.C b/gcc/testsuite/g++.dg/template/sizeof8.C
index 861febc161c..bed68f9d16e 100644
--- a/gcc/testsuite/g++.dg/template/sizeof8.C
+++ b/gcc/testsuite/g++.dg/template/sizeof8.C
@@ -4,6 +4,6 @@
template <int> struct S{};
-template <int N> S<sizeof(new double[N])> f() {}
+template <int N> S<sizeof(new double[N])> f() { return S<sizeof(new double[N])>(); }
template S<sizeof(void*)> f<2>();
diff --git a/gcc/testsuite/g++.dg/template/sizeof9.C b/gcc/testsuite/g++.dg/template/sizeof9.C
index 8d9ec95ae1f..84400d3a364 100644
--- a/gcc/testsuite/g++.dg/template/sizeof9.C
+++ b/gcc/testsuite/g++.dg/template/sizeof9.C
@@ -2,5 +2,5 @@
template<int N> struct X { char x[N]; };
template<typename T> X<1 + sizeof(T) - sizeof(T)> F(T const &);
-template<int N> struct S { int d() { F(1); } };
+template<int N> struct S { int d() { F(1); return S(); } };
diff --git a/gcc/testsuite/g++.dg/template/spec6.C b/gcc/testsuite/g++.dg/template/spec6.C
index 915b8331252..fd41d7417c2 100644
--- a/gcc/testsuite/g++.dg/template/spec6.C
+++ b/gcc/testsuite/g++.dg/template/spec6.C
@@ -1,3 +1,5 @@
+// { dg-additional-options "-Wno-return-type" }
+
template <bool, int> struct X {};
template <bool C> struct X<C,1> {
diff --git a/gcc/testsuite/g++.dg/template/spec7.C b/gcc/testsuite/g++.dg/template/spec7.C
index 18d3c90c45e..caf6b91d151 100644
--- a/gcc/testsuite/g++.dg/template/spec7.C
+++ b/gcc/testsuite/g++.dg/template/spec7.C
@@ -20,7 +20,7 @@ template<> template<> template <class V> void A<int>::B<char>::g(V)
A<int>::B<char> b;
-int h()
+void h()
{
b.f();
b.g(0);
diff --git a/gcc/testsuite/g++.dg/template/typedef8.C b/gcc/testsuite/g++.dg/template/typedef8.C
index f132606889b..b3178842172 100644
--- a/gcc/testsuite/g++.dg/template/typedef8.C
+++ b/gcc/testsuite/g++.dg/template/typedef8.C
@@ -1,4 +1,5 @@
// PR c++/34206
+// { dg-additional-options "-Wno-return-type" }
template<class _T1, class _T2> struct pair { };
template <class T0, class T1> struct tuple {
diff --git a/gcc/testsuite/g++.dg/template/using20.C b/gcc/testsuite/g++.dg/template/using20.C
index 1df9549cd6c..cf180d21fe9 100644
--- a/gcc/testsuite/g++.dg/template/using20.C
+++ b/gcc/testsuite/g++.dg/template/using20.C
@@ -15,4 +15,5 @@ int f(void)
{
G<int> a;
a.f();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/template/vla1.C b/gcc/testsuite/g++.dg/template/vla1.C
index fe93440f1f2..d873f2b0b06 100644
--- a/gcc/testsuite/g++.dg/template/vla1.C
+++ b/gcc/testsuite/g++.dg/template/vla1.C
@@ -5,5 +5,6 @@ template <bool>
static int label (int w)
{
sizeof(int[w]);
+ return 0;
}
int a = label<false>(1);
diff --git a/gcc/testsuite/g++.dg/tls/thread_local3.C b/gcc/testsuite/g++.dg/tls/thread_local3.C
index e05a0b95306..d29bda1a000 100644
--- a/gcc/testsuite/g++.dg/tls/thread_local3.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local3.C
@@ -21,6 +21,7 @@ void f()
void *thread_main(void *)
{
f(); f(); f();
+ return 0;
}
#include <pthread.h>
diff --git a/gcc/testsuite/g++.dg/tls/thread_local3g.C b/gcc/testsuite/g++.dg/tls/thread_local3g.C
index a3c9ebcc2c5..2f9fdee1a73 100644
--- a/gcc/testsuite/g++.dg/tls/thread_local3g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local3g.C
@@ -19,6 +19,7 @@ thread_local A a;
void *thread_main(void *)
{
A* ap = &a;
+ return 0;
}
#include <pthread.h>
diff --git a/gcc/testsuite/g++.dg/tls/thread_local5.C b/gcc/testsuite/g++.dg/tls/thread_local5.C
index c4d5ff01bf5..61fea722dc2 100644
--- a/gcc/testsuite/g++.dg/tls/thread_local5.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local5.C
@@ -30,6 +30,7 @@ void f()
void *thread_main(void *)
{
f(); f(); f();
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/tls/thread_local5g.C b/gcc/testsuite/g++.dg/tls/thread_local5g.C
index 5ced551fb57..596bbbe542f 100644
--- a/gcc/testsuite/g++.dg/tls/thread_local5g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local5g.C
@@ -28,6 +28,7 @@ thread_local A a;
void *thread_main(void *)
{
A* ap = &a;
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/tls/thread_local6.C b/gcc/testsuite/g++.dg/tls/thread_local6.C
index 2810efaea93..0009726626b 100644
--- a/gcc/testsuite/g++.dg/tls/thread_local6.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local6.C
@@ -22,6 +22,7 @@ void f()
void *thread_main(void *)
{
f(); f(); f();
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/tls/thread_local6g.C b/gcc/testsuite/g++.dg/tls/thread_local6g.C
index b8f9cdf1dea..d357ca4fa1f 100644
--- a/gcc/testsuite/g++.dg/tls/thread_local6g.C
+++ b/gcc/testsuite/g++.dg/tls/thread_local6g.C
@@ -20,6 +20,7 @@ thread_local A a;
void *thread_main(void *)
{
A* ap = &a;
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/tm/cgraph_edge.C b/gcc/testsuite/g++.dg/tm/cgraph_edge.C
index d4c8f77fe89..b2649e8f521 100644
--- a/gcc/testsuite/g++.dg/tm/cgraph_edge.C
+++ b/gcc/testsuite/g++.dg/tm/cgraph_edge.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-fgnu-tm -O3" }
+// { dg-additional-options "-Wno-return-type" }
template<typename _InputIterator, typename _Distance> inline void advance(_InputIterator& __i, _Distance __n)
{
diff --git a/gcc/testsuite/g++.dg/tm/pr46646.C b/gcc/testsuite/g++.dg/tm/pr46646.C
index 9431615b0fb..be378b0bd5c 100644
--- a/gcc/testsuite/g++.dg/tm/pr46646.C
+++ b/gcc/testsuite/g++.dg/tm/pr46646.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-fgnu-tm -O0"}
+// { dg-additional-options "-Wno-return-type" }
namespace std __attribute__ ((__visibility__ ("default"))) {
template<class _T1, class _T2>
diff --git a/gcc/testsuite/g++.dg/tm/pr47554.C b/gcc/testsuite/g++.dg/tm/pr47554.C
index 28841bb15ad..41222dcc47f 100644
--- a/gcc/testsuite/g++.dg/tm/pr47554.C
+++ b/gcc/testsuite/g++.dg/tm/pr47554.C
@@ -11,6 +11,8 @@ class list
}
const list& _M_get_Node_allocator() const
{
+ static list l;
+ return l;
}
list _M_get_Tp_allocator() const
{
diff --git a/gcc/testsuite/g++.dg/tm/pr47573.C b/gcc/testsuite/g++.dg/tm/pr47573.C
index 1fd26896c5d..7410533a5f5 100644
--- a/gcc/testsuite/g++.dg/tm/pr47573.C
+++ b/gcc/testsuite/g++.dg/tm/pr47573.C
@@ -25,4 +25,5 @@ template<typename _Alloc = allocator<char> > class basic_string
int getStringHeight()
{
basic_string<> tmp;
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/tm/unsafe1.C b/gcc/testsuite/g++.dg/tm/unsafe1.C
index 91dd7b110ec..49dd564894a 100644
--- a/gcc/testsuite/g++.dg/tm/unsafe1.C
+++ b/gcc/testsuite/g++.dg/tm/unsafe1.C
@@ -4,7 +4,7 @@
struct S {
virtual ~S();
};
-int f() transaction_safe {
+void f() transaction_safe {
S s; // { dg-error "unsafe" "invocation of unsafe destructor" }
}
diff --git a/gcc/testsuite/g++.dg/tm/unsafe2.C b/gcc/testsuite/g++.dg/tm/unsafe2.C
index 1b81b310057..b0425ac6cee 100644
--- a/gcc/testsuite/g++.dg/tm/unsafe2.C
+++ b/gcc/testsuite/g++.dg/tm/unsafe2.C
@@ -6,7 +6,7 @@ void f(T) transaction_safe;
template<>
void f(bool); // not transaction-safe
-int g() transaction_safe
+void g() transaction_safe
{
f(42); // OK
f(true); // { dg-error "unsafe" }
diff --git a/gcc/testsuite/g++.dg/torture/20070621-1.C b/gcc/testsuite/g++.dg/torture/20070621-1.C
index 9bd8cc38c44..d8a6a76b6b0 100644
--- a/gcc/testsuite/g++.dg/torture/20070621-1.C
+++ b/gcc/testsuite/g++.dg/torture/20070621-1.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
/* Reduced from libstdc++-v3/testsuite/25_algorithms/equal/1.cc
1.2.ii: In function 'void test1()':
diff --git a/gcc/testsuite/g++.dg/torture/20090329-1.C b/gcc/testsuite/g++.dg/torture/20090329-1.C
index 0274a1944e5..6839931a247 100644
--- a/gcc/testsuite/g++.dg/torture/20090329-1.C
+++ b/gcc/testsuite/g++.dg/torture/20090329-1.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
struct input_iterator_tag { };
template<typename _Category, typename _Tp, typename _Distance = long, typename _Pointer = _Tp*, typename _Reference = _Tp&>
diff --git a/gcc/testsuite/g++.dg/torture/20141013.C b/gcc/testsuite/g++.dg/torture/20141013.C
index 82aacd6317e..e6c83ffab21 100644
--- a/gcc/testsuite/g++.dg/torture/20141013.C
+++ b/gcc/testsuite/g++.dg/torture/20141013.C
@@ -1,4 +1,5 @@
/* { dg-options "-fno-short-enums" } */
+/* { dg-additional-options "-Wno-return-type" } */
enum
{
_sch_isdigit = 0x0004,
diff --git a/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess1.C b/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess1.C
index c72532be4f4..5bc5c4ca859 100644
--- a/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess1.C
+++ b/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess1.C
@@ -1,6 +1,6 @@
// Test -Wsizeof-pointer-memaccess warnings.
// { dg-do compile }
-// { dg-options "-Wall -Wno-sizeof-array-argument -Wno-stringop-overflow" }
+// { dg-options "-Wall -Wno-sizeof-array-argument -Wno-stringop-overflow -Wno-stringop-truncation" }
// Test just twice, once with -O0 non-fortified, once with -O2 fortified.
// { dg-skip-if "" { *-*-* } { "*" } { "-O0" "-O2" } }
// { dg-skip-if "" { *-*-* } { "-flto" } { "" } }
@@ -698,12 +698,17 @@ f4 (char *x, char **y, int z, char w[64])
strncat (w, s2, sizeof (w)); // { dg-warning "call is the same expression as the destination; did you mean to provide an explicit length" }
stpncpy (w, s1, sizeof (w)); // { dg-warning "call is the same expression as the destination; did you mean to provide an explicit length" }
- // These are correct, no warning.
const char s3[] = "foobarbaz";
const char s4[] = "abcde12345678";
- strncpy (x, s3, sizeof (s3));
- strncat (x, s4, sizeof (s4));
- stpncpy (x, s3, sizeof (s3));
+
+ // These are pointless when the destination is large enough, and
+ // cause overflow otherwise. They might as well be replaced by
+ // strcpy() or memcpy().
+ strncpy (x, s3, sizeof (s3)); // { dg-warning "call is the same expression as the source; did you mean to use the size of the destination?" }
+ strncat (x, s4, sizeof (s4)); // { dg-warning "call is the same expression as the source; did you mean to use the size of the destination?" }
+ stpncpy (x, s3, sizeof (s3)); // { dg-warning "call is the same expression as the source; did you mean to use the size of the destination?" }
+
+ // These are safe, no warning.
y[1] = strndup (s3, sizeof (s3));
z += strncmp (s3, s4, sizeof (s3));
z += strncmp (s3, s4, sizeof (s4));
diff --git a/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess2.C b/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess2.C
index a216f470333..f2c864b0b24 100644
--- a/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess2.C
+++ b/gcc/testsuite/g++.dg/torture/Wsizeof-pointer-memaccess2.C
@@ -1,6 +1,6 @@
// Test -Wsizeof-pointer-memaccess warnings.
// { dg-do compile }
-// { dg-options "-Wall -Wno-sizeof-array-argument -Wno-stringop-overflow" }
+// { dg-options "-Wall -Wno-sizeof-array-argument -Wno-stringop-overflow -Wno-stringop-truncation" }
// Test just twice, once with -O0 non-fortified, once with -O2 fortified,
// suppressing buffer overflow warnings.
// { dg-skip-if "" { *-*-* } { "*" } { "-O0" "-O2" } }
@@ -703,12 +703,13 @@ f4 (char *x, char **y, int z, char w[64])
strncat (w, s2, sizeof (w)); // { dg-warning "call is the same expression as the destination; did you mean to provide an explicit length" }
stpncpy (w, s1, sizeof (w)); // { dg-warning "call is the same expression as the destination; did you mean to provide an explicit length" }
- // These are correct, no warning.
const char s3[] = "foobarbaz";
const char s4[] = "abcde12345678";
- strncpy (x, s3, sizeof (s3));
- strncat (x, s4, sizeof (s4));
- stpncpy (x, s3, sizeof (s3));
+ strncpy (x, s3, sizeof (s3)); // { dg-warning "call is the same expression as the source; did you mean to use the size of the destination" }
+ strncat (x, s4, sizeof (s4)); // { dg-warning "call is the same expression as the source; did you mean to use the size of the destination" }
+ stpncpy (x, s3, sizeof (s3)); // { dg-warning "call is the same expression as the source; did you mean to use the size of the destination" }
+
+ // These are safe, no warning.
y[1] = strndup (s3, sizeof (s3));
z += strncmp (s3, s4, sizeof (s3));
z += strncmp (s3, s4, sizeof (s4));
diff --git a/gcc/testsuite/g++.dg/torture/pr33134.C b/gcc/testsuite/g++.dg/torture/pr33134.C
index 43482c7fc04..64e678c6a98 100644
--- a/gcc/testsuite/g++.dg/torture/pr33134.C
+++ b/gcc/testsuite/g++.dg/torture/pr33134.C
@@ -18,4 +18,5 @@ bool fxsaveGIF (FXStream &store)
c1 = 0x80;
c1 |= (bitsperpixel - 1) << 4;
store << c1;
+ return true;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr33340.C b/gcc/testsuite/g++.dg/torture/pr33340.C
index bac882156b5..44d3c8e0d0f 100644
--- a/gcc/testsuite/g++.dg/torture/pr33340.C
+++ b/gcc/testsuite/g++.dg/torture/pr33340.C
@@ -1,4 +1,6 @@
-void* operator new(__SIZE_TYPE__, void* __p) { }
+// { dg-additional-options "-Wno-return-type" }
+
+void* operator new(__SIZE_TYPE__, void* __p) {}
struct auto_ptr {
int* p;
diff --git a/gcc/testsuite/g++.dg/torture/pr33627.C b/gcc/testsuite/g++.dg/torture/pr33627.C
index a14e345517f..9265bd95f05 100644
--- a/gcc/testsuite/g++.dg/torture/pr33627.C
+++ b/gcc/testsuite/g++.dg/torture/pr33627.C
@@ -10,9 +10,9 @@ class PX_ChangeRecord;
class pf_Frag {
public:
typedef enum _PFType { PFT_Object } PFType;
- inline PFType getType(void) const { }
- inline pf_Frag * getNext(void) const { }
- PT_DocPosition getPos(void) const { }
+ inline PFType getType(void) const { return PFType(); }
+ inline pf_Frag * getNext(void) const { return 0; }
+ PT_DocPosition getPos(void) const { return PT_DocPosition(); }
};
class pf_Fragments {
public:
diff --git a/gcc/testsuite/g++.dg/torture/pr34222.C b/gcc/testsuite/g++.dg/torture/pr34222.C
index 130896dc9da..dfcb5d7a952 100644
--- a/gcc/testsuite/g++.dg/torture/pr34222.C
+++ b/gcc/testsuite/g++.dg/torture/pr34222.C
@@ -47,6 +47,7 @@ using namespace std;
static float readFloat(ifstream& in) {
float f;
in.read((char*) &f, sizeof(float));
+ return f;
}
Mat4f readMeshMatrix(ifstream& in, int nBytes) {
float m00 = readFloat(in);
diff --git a/gcc/testsuite/g++.dg/torture/pr34241.C b/gcc/testsuite/g++.dg/torture/pr34241.C
index 70f186c5b9f..0ea9cfc1a0c 100644
--- a/gcc/testsuite/g++.dg/torture/pr34241.C
+++ b/gcc/testsuite/g++.dg/torture/pr34241.C
@@ -15,4 +15,5 @@ struct A
A test ()
{
const A a (42, true);
+ return a;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr34641.C b/gcc/testsuite/g++.dg/torture/pr34641.C
index 0cf50776281..72a98ad8f46 100644
--- a/gcc/testsuite/g++.dg/torture/pr34641.C
+++ b/gcc/testsuite/g++.dg/torture/pr34641.C
@@ -2,6 +2,7 @@
// { dg-require-effective-target fpic }
// { dg-require-visibility "" }
// { dg-options "-fPIC" }
+/* { dg-additional-options "-Wno-return-type" } */
typedef __SIZE_TYPE__ size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr34850.C b/gcc/testsuite/g++.dg/torture/pr34850.C
index c33dbfb5c93..e41620b739d 100644
--- a/gcc/testsuite/g++.dg/torture/pr34850.C
+++ b/gcc/testsuite/g++.dg/torture/pr34850.C
@@ -1,6 +1,7 @@
/* { dg-do compile } */
/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
/* { dg-options "-ffat-lto-objects" } */
+/* { dg-additional-options "-Wno-return-type" } */
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;
@@ -12,7 +13,7 @@ extern "C" {
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__))
void * memset (void *__dest, int __ch, size_t __len) throw () {
if (__builtin_constant_p (__len) && __len == 0)
- __warn_memset_zero_len (); /* { dg-warning "declared with attribute warning" } */
+ __warn_memset_zero_len ();
}
}
inline void clear_mem(void* ptr, u32bit n) {
diff --git a/gcc/testsuite/g++.dg/torture/pr35164-1.C b/gcc/testsuite/g++.dg/torture/pr35164-1.C
index 1704c222656..faa829f5f6f 100644
--- a/gcc/testsuite/g++.dg/torture/pr35164-1.C
+++ b/gcc/testsuite/g++.dg/torture/pr35164-1.C
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-Wno-return-type" } */
+
typedef __SIZE_TYPE__ size_t;
template<typename _Iterator, typename _Container> class __normal_iterator {
public:
diff --git a/gcc/testsuite/g++.dg/torture/pr36745.C b/gcc/testsuite/g++.dg/torture/pr36745.C
index 53845aaa78e..56fa9d8028d 100644
--- a/gcc/testsuite/g++.dg/torture/pr36745.C
+++ b/gcc/testsuite/g++.dg/torture/pr36745.C
@@ -1,6 +1,7 @@
/* PR target/36745 */
/* { dg-do compile } */
/* { dg-options "-O2 -fPIC" } */
+/* { dg-additional-options "-Wno-return-type" } */
/* { dg-require-effective-target fpic } */
typedef __SIZE_TYPE__ size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr38705.C b/gcc/testsuite/g++.dg/torture/pr38705.C
index 8058d3a3979..07dec5594ca 100644
--- a/gcc/testsuite/g++.dg/torture/pr38705.C
+++ b/gcc/testsuite/g++.dg/torture/pr38705.C
@@ -24,4 +24,5 @@ S::bar () const
{
foo (u);
foo (t);
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr38811.C b/gcc/testsuite/g++.dg/torture/pr38811.C
index e9b304da6e5..5ced0781497 100644
--- a/gcc/testsuite/g++.dg/torture/pr38811.C
+++ b/gcc/testsuite/g++.dg/torture/pr38811.C
@@ -17,7 +17,7 @@ public:
AbcExtent2d(const AbcA2d & rMin, const AbcA2d & rMax);
AbcA2d ClampPoint2d(const AbcA2d & rPoint) const;
AbcA2d GetMax() const { return m_vMax; }
- AbcA2d GetMin() const { }
+ AbcA2d GetMin() const { return AbcA2d(); }
AbcA2d Evaluate(double dNormalizedX, double dNormalizedY) const;
};
inline AbcExtent2d::AbcExtent2d(const AbcA2d & rMin, const AbcA2d & rMax)
@@ -69,5 +69,7 @@ long AbcAbcdTracer::TestIsoAbcde(AbcZyParamType eZyParam, double dParam,
if (!DoesPointLieOnAbcde(sUV,0))
;
}
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr39362.C b/gcc/testsuite/g++.dg/torture/pr39362.C
index 554f9d06bac..6599fdd70c0 100644
--- a/gcc/testsuite/g++.dg/torture/pr39362.C
+++ b/gcc/testsuite/g++.dg/torture/pr39362.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
void *fastMalloc (int n);
void fastFree (void *p);
diff --git a/gcc/testsuite/g++.dg/torture/pr39732.C b/gcc/testsuite/g++.dg/torture/pr39732.C
index 4b3975b8db9..44edbf5ba90 100644
--- a/gcc/testsuite/g++.dg/torture/pr39732.C
+++ b/gcc/testsuite/g++.dg/torture/pr39732.C
@@ -27,4 +27,5 @@ int f(void)
{
basic_ostream<char, char_traits<char> > os;
copy(ostream_iterator<const int>(os, ","));
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr40991.C b/gcc/testsuite/g++.dg/torture/pr40991.C
index c08124024a7..bce5f7e6893 100644
--- a/gcc/testsuite/g++.dg/torture/pr40991.C
+++ b/gcc/testsuite/g++.dg/torture/pr40991.C
@@ -1,4 +1,5 @@
/* { dg-options "-std=gnu++0x" } */
+/* { dg-additional-options "-Wno-return-type" } */
typedef __SIZE_TYPE__ size_t;
namespace std __attribute__ ((__visibility__ ("default"))) {
diff --git a/gcc/testsuite/g++.dg/torture/pr41775.C b/gcc/testsuite/g++.dg/torture/pr41775.C
index 3d8548e3fb0..ca24abd0229 100644
--- a/gcc/testsuite/g++.dg/torture/pr41775.C
+++ b/gcc/testsuite/g++.dg/torture/pr41775.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
/* { dg-require-visibility "" } */
typedef unsigned int size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr42183.C b/gcc/testsuite/g++.dg/torture/pr42183.C
index 375b37f0c66..2ae415f0b5a 100644
--- a/gcc/testsuite/g++.dg/torture/pr42183.C
+++ b/gcc/testsuite/g++.dg/torture/pr42183.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
class IntSize {
public:
diff --git a/gcc/testsuite/g++.dg/torture/pr42450.C b/gcc/testsuite/g++.dg/torture/pr42450.C
index f630fa2b7e2..5813acb5cb4 100644
--- a/gcc/testsuite/g++.dg/torture/pr42450.C
+++ b/gcc/testsuite/g++.dg/torture/pr42450.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+// { dg-additional-options "-Wno-return-type" }
template < typename > class basic_stringstream;
diff --git a/gcc/testsuite/g++.dg/torture/pr42704.C b/gcc/testsuite/g++.dg/torture/pr42704.C
index 735b1e7bdea..d1cbc8225cd 100644
--- a/gcc/testsuite/g++.dg/torture/pr42704.C
+++ b/gcc/testsuite/g++.dg/torture/pr42704.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
typedef int PRInt32;
class nsTreeRows {
diff --git a/gcc/testsuite/g++.dg/torture/pr42760.C b/gcc/testsuite/g++.dg/torture/pr42760.C
index be85f7fc408..084fcfdfa68 100644
--- a/gcc/testsuite/g++.dg/torture/pr42760.C
+++ b/gcc/testsuite/g++.dg/torture/pr42760.C
@@ -16,6 +16,7 @@ baz (T x, T y, U z)
*z = *x;
++z;
}
+ return U();
};
template <typename T, typename U>
@@ -23,6 +24,7 @@ U
bar (T x, T y, U z)
{
baz (A <T>::b (x), A <T>::b (y), A <U>::b (z));
+ return U();
}
struct C
diff --git a/gcc/testsuite/g++.dg/torture/pr42773.C b/gcc/testsuite/g++.dg/torture/pr42773.C
index 478ad278aa6..5d887cefed1 100644
--- a/gcc/testsuite/g++.dg/torture/pr42773.C
+++ b/gcc/testsuite/g++.dg/torture/pr42773.C
@@ -51,4 +51,5 @@ class Cell {
};
QValueList<Cell*> Cell::obscuringCells() const {
QValueList<Cell*> empty;
+ return QValueList<Cell*>();
}
diff --git a/gcc/testsuite/g++.dg/torture/pr42883.C b/gcc/testsuite/g++.dg/torture/pr42883.C
index f164c3781f5..ad2ae251637 100644
--- a/gcc/testsuite/g++.dg/torture/pr42883.C
+++ b/gcc/testsuite/g++.dg/torture/pr42883.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
typedef __SIZE_TYPE__ size_t;
namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) {
diff --git a/gcc/testsuite/g++.dg/torture/pr43905.C b/gcc/testsuite/g++.dg/torture/pr43905.C
index 0e49a32a1dd..259ea785041 100644
--- a/gcc/testsuite/g++.dg/torture/pr43905.C
+++ b/gcc/testsuite/g++.dg/torture/pr43905.C
@@ -2,9 +2,11 @@ extern void sf ( __const char *);
struct Matrix{
int operator[](int n){
sf ( __PRETTY_FUNCTION__);
+ return 0;
}
int operator[](int n)const{
sf ( __PRETTY_FUNCTION__);
+ return 0;
}
};
void calcmy(Matrix const &b, Matrix &c, int k){
diff --git a/gcc/testsuite/g++.dg/torture/pr44148.C b/gcc/testsuite/g++.dg/torture/pr44148.C
index a60ba9aa3a6..cebfccba5d6 100644
--- a/gcc/testsuite/g++.dg/torture/pr44148.C
+++ b/gcc/testsuite/g++.dg/torture/pr44148.C
@@ -2,6 +2,7 @@
// { dg-do compile }
// { dg-options "" }
// { dg-options "-fpic" { target fpic } }
+// { dg-additional-options "-Wno-return-type" }
template <typename T> struct S2
{
diff --git a/gcc/testsuite/g++.dg/torture/pr44295.C b/gcc/testsuite/g++.dg/torture/pr44295.C
index 8169bb0a873..7525dc41a78 100644
--- a/gcc/testsuite/g++.dg/torture/pr44295.C
+++ b/gcc/testsuite/g++.dg/torture/pr44295.C
@@ -1,4 +1,6 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
+
extern "C" {
typedef __SIZE_TYPE__ size_t;
typedef struct {
diff --git a/gcc/testsuite/g++.dg/torture/pr44357.C b/gcc/testsuite/g++.dg/torture/pr44357.C
index 3380350e81b..2ffb6d07f7e 100644
--- a/gcc/testsuite/g++.dg/torture/pr44357.C
+++ b/gcc/testsuite/g++.dg/torture/pr44357.C
@@ -1,4 +1,6 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
+
extern "C"
{
typedef long unsigned int size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr44813.C b/gcc/testsuite/g++.dg/torture/pr44813.C
index 1dc01b06a17..6ec1b60adc4 100644
--- a/gcc/testsuite/g++.dg/torture/pr44813.C
+++ b/gcc/testsuite/g++.dg/torture/pr44813.C
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-Wno-return-type" } */
+
typedef unsigned int PRUint32;
typedef int PRInt32;
typedef unsigned long PRUint64;
diff --git a/gcc/testsuite/g++.dg/torture/pr45580.C b/gcc/testsuite/g++.dg/torture/pr45580.C
index c3af4910aeb..5728c0382bb 100644
--- a/gcc/testsuite/g++.dg/torture/pr45580.C
+++ b/gcc/testsuite/g++.dg/torture/pr45580.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std {
typedef __SIZE_TYPE__ size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr45874.C b/gcc/testsuite/g++.dg/torture/pr45874.C
index 70965ff574e..37c2ccc8a3a 100644
--- a/gcc/testsuite/g++.dg/torture/pr45874.C
+++ b/gcc/testsuite/g++.dg/torture/pr45874.C
@@ -48,6 +48,7 @@ Status Mpeg2FrameConstructor::ParsePictureHeader(Ipp8u *buf, Ipp32s iLen, Mpeg2T
bs.SkipBits(10);
}
}
+ return Status();
}
void BitstreamReader::SkipBits(Ipp32s iNum) {
if (iNum <= m_iReadyBits) {
diff --git a/gcc/testsuite/g++.dg/torture/pr45877.C b/gcc/testsuite/g++.dg/torture/pr45877.C
index 9af6ae99985..1754fb5cb5c 100644
--- a/gcc/testsuite/g++.dg/torture/pr45877.C
+++ b/gcc/testsuite/g++.dg/torture/pr45877.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std __attribute__ ((__visibility__ ("default")))
{
diff --git a/gcc/testsuite/g++.dg/torture/pr46383.C b/gcc/testsuite/g++.dg/torture/pr46383.C
index e4810c5ada8..ee00f358ea2 100644
--- a/gcc/testsuite/g++.dg/torture/pr46383.C
+++ b/gcc/testsuite/g++.dg/torture/pr46383.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std {
template<class,class>struct pair{};
diff --git a/gcc/testsuite/g++.dg/torture/pr46469.C b/gcc/testsuite/g++.dg/torture/pr46469.C
index 8212ea4f9e2..c16a0f277a7 100644
--- a/gcc/testsuite/g++.dg/torture/pr46469.C
+++ b/gcc/testsuite/g++.dg/torture/pr46469.C
@@ -1,5 +1,6 @@
extern "C" __inline __attribute__ ((__gnu_inline__)) int pthread_equal ()
{
+ return 0;
}
static
@@ -10,4 +11,5 @@ static
int identifierByPthreadHandle ()
{
pthread_equal ();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr47313.C b/gcc/testsuite/g++.dg/torture/pr47313.C
index c10f558a3eb..787445ed595 100644
--- a/gcc/testsuite/g++.dg/torture/pr47313.C
+++ b/gcc/testsuite/g++.dg/torture/pr47313.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace internal {
template < class DSC, bool Const > struct CC_iterator {
diff --git a/gcc/testsuite/g++.dg/torture/pr48271.C b/gcc/testsuite/g++.dg/torture/pr48271.C
index 5b60ccd768c..2e3eb5bfd05 100644
--- a/gcc/testsuite/g++.dg/torture/pr48271.C
+++ b/gcc/testsuite/g++.dg/torture/pr48271.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-ftree-vrp -fno-guess-branch-probability -fnon-call-exceptions" }
+// { dg-additional-options "-Wno-return-type" }
void *xalloc ();
void xfree (void *);
diff --git a/gcc/testsuite/g++.dg/torture/pr48695.C b/gcc/testsuite/g++.dg/torture/pr48695.C
index 44e6c771dba..2f2953d9999 100644
--- a/gcc/testsuite/g++.dg/torture/pr48695.C
+++ b/gcc/testsuite/g++.dg/torture/pr48695.C
@@ -1,4 +1,5 @@
// { dg-do run }
+/* { dg-options "-fcheck-new" } */
typedef __SIZE_TYPE__ size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr49615.C b/gcc/testsuite/g++.dg/torture/pr49615.C
index 98a2f95b8b3..bc5182b2716 100644
--- a/gcc/testsuite/g++.dg/torture/pr49615.C
+++ b/gcc/testsuite/g++.dg/torture/pr49615.C
@@ -5,6 +5,7 @@ template <class T>
static inline bool Dispatch (T* obj, void (T::*func) ())
{
(obj->*func) ();
+ return true;
}
class C
{
@@ -21,6 +22,8 @@ bool C::f (int n)
case 1:
b = Dispatch (this, &C::g);
}
+
+ return true;
}
void C::g ()
{
diff --git a/gcc/testsuite/g++.dg/torture/pr49770.C b/gcc/testsuite/g++.dg/torture/pr49770.C
index 7eac9e0d9bb..794bf3dba19 100644
--- a/gcc/testsuite/g++.dg/torture/pr49770.C
+++ b/gcc/testsuite/g++.dg/torture/pr49770.C
@@ -79,8 +79,10 @@ test01 ()
__builtin_abort ();
}
+int
main ()
{
test01 ();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr49938.C b/gcc/testsuite/g++.dg/torture/pr49938.C
index 91804f4b0d5..d2c73e73871 100644
--- a/gcc/testsuite/g++.dg/torture/pr49938.C
+++ b/gcc/testsuite/g++.dg/torture/pr49938.C
@@ -43,6 +43,8 @@ namespace net {
}
scoped_array<unsigned char> signed_data(new unsigned
char[signed_data_len]);
+
+ return true;
}
}
diff --git a/gcc/testsuite/g++.dg/torture/pr51436.C b/gcc/testsuite/g++.dg/torture/pr51436.C
index 43d6c730032..b01a33ca243 100644
--- a/gcc/testsuite/g++.dg/torture/pr51436.C
+++ b/gcc/testsuite/g++.dg/torture/pr51436.C
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
typedef __SIZE_TYPE__ size_t;
extern "C" void *memcpy (void *, __const void *, size_t);
diff --git a/gcc/testsuite/g++.dg/torture/pr51482.C b/gcc/testsuite/g++.dg/torture/pr51482.C
index 28435919f46..4032703f720 100644
--- a/gcc/testsuite/g++.dg/torture/pr51482.C
+++ b/gcc/testsuite/g++.dg/torture/pr51482.C
@@ -27,4 +27,5 @@ WVECT * anim_track_bez_wvect::tangent(int kn, BEZIER_KEY_CLASS key_class, WVECT
p_tn->y = (g1.y + g3.y*bp1)*tn1;
p_tn->z = (g1.z + g3.z*bp1)*tn1;
p_tn->w = (g1.w + g3.w*bp1)*tn1;
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr51737.C b/gcc/testsuite/g++.dg/torture/pr51737.C
index ff77edbf3d3..90edafffc88 100644
--- a/gcc/testsuite/g++.dg/torture/pr51737.C
+++ b/gcc/testsuite/g++.dg/torture/pr51737.C
@@ -20,6 +20,7 @@ struct id_state {
};
void * id_state::start_file(void) {
intrusive_ptr<file_info> parent;
+ return 0;
}
struct id_generation_data : intrusive_base<id_generation_data> {
void child_length() const {}
diff --git a/gcc/testsuite/g++.dg/torture/pr51959.C b/gcc/testsuite/g++.dg/torture/pr51959.C
index da0be71ebd8..1c98f4f6cc8 100644
--- a/gcc/testsuite/g++.dg/torture/pr51959.C
+++ b/gcc/testsuite/g++.dg/torture/pr51959.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std {
typedef __SIZE_TYPE__ size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr52772.C b/gcc/testsuite/g++.dg/torture/pr52772.C
index 810e6579fba..0109f137676 100644
--- a/gcc/testsuite/g++.dg/torture/pr52772.C
+++ b/gcc/testsuite/g++.dg/torture/pr52772.C
@@ -46,7 +46,7 @@ class c5 : public c2 {
};
class c6 {
- public: int get() const {};
+ public: int get() const { return 0; };
};
class c7 {
diff --git a/gcc/testsuite/g++.dg/torture/pr52918-2.C b/gcc/testsuite/g++.dg/torture/pr52918-2.C
index ba31295e41e..185444bdd0e 100644
--- a/gcc/testsuite/g++.dg/torture/pr52918-2.C
+++ b/gcc/testsuite/g++.dg/torture/pr52918-2.C
@@ -37,4 +37,5 @@ void * __cxa_allocate_exception(size_t thrown_size) throw()
void *ret;
if (! ret)
__scoped_lock sentry(emergency_mutex);
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr53011.C b/gcc/testsuite/g++.dg/torture/pr53011.C
index 2cd8a60332d..4882f23b19e 100644
--- a/gcc/testsuite/g++.dg/torture/pr53011.C
+++ b/gcc/testsuite/g++.dg/torture/pr53011.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
extern "C" class WvFastString;
typedef WvFastString& WvStringParm;
diff --git a/gcc/testsuite/g++.dg/torture/pr53602.C b/gcc/testsuite/g++.dg/torture/pr53602.C
index 1bb9cf4faaf..67d9ed848f0 100644
--- a/gcc/testsuite/g++.dg/torture/pr53602.C
+++ b/gcc/testsuite/g++.dg/torture/pr53602.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-std=c++11" }
+// { dg-additional-options "-Wno-return-type" }
namespace std
{
diff --git a/gcc/testsuite/g++.dg/torture/pr53752.C b/gcc/testsuite/g++.dg/torture/pr53752.C
index fd6c687667c..61febdeb6b8 100644
--- a/gcc/testsuite/g++.dg/torture/pr53752.C
+++ b/gcc/testsuite/g++.dg/torture/pr53752.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-g" }
+// { dg-additional-options "-Wno-return-type" }
typedef unsigned int uint32_t;
typedef unsigned long int uint64_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr54838.C b/gcc/testsuite/g++.dg/torture/pr54838.C
index 6d34d57a486..c3308210ebe 100644
--- a/gcc/testsuite/g++.dg/torture/pr54838.C
+++ b/gcc/testsuite/g++.dg/torture/pr54838.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-ftracer -fno-tree-dce -fno-tree-sra" }
+// { dg-additional-options "-Wno-return-type" }
struct bidirectional_iterator_tag
{};
diff --git a/gcc/testsuite/g++.dg/torture/pr54902.C b/gcc/testsuite/g++.dg/torture/pr54902.C
index 790ffe5fcb5..84707bd7136 100644
--- a/gcc/testsuite/g++.dg/torture/pr54902.C
+++ b/gcc/testsuite/g++.dg/torture/pr54902.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std __attribute__ ((__visibility__ ("default"))) {
template<typename _Iterator> struct iterator_traits {
diff --git a/gcc/testsuite/g++.dg/torture/pr56029.C b/gcc/testsuite/g++.dg/torture/pr56029.C
index ca4a82a0060..72ad59b4354 100644
--- a/gcc/testsuite/g++.dg/torture/pr56029.C
+++ b/gcc/testsuite/g++.dg/torture/pr56029.C
@@ -1,5 +1,6 @@
// PR tree-optimization/56029
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
template <class T>
struct DefaultDeleter
diff --git a/gcc/testsuite/g++.dg/torture/pr56768.C b/gcc/testsuite/g++.dg/torture/pr56768.C
index db504c500e0..b2be74f28e4 100644
--- a/gcc/testsuite/g++.dg/torture/pr56768.C
+++ b/gcc/testsuite/g++.dg/torture/pr56768.C
@@ -7,7 +7,7 @@ struct Iter
void operator++ ();
};
-bool operator!= (Iter &, Iter &) { }
+bool operator!= (Iter &, Iter &) { return true; }
struct Container
{
diff --git a/gcc/testsuite/g++.dg/torture/pr57107.C b/gcc/testsuite/g++.dg/torture/pr57107.C
index 516dec16fc5..4dbd32bd298 100644
--- a/gcc/testsuite/g++.dg/torture/pr57107.C
+++ b/gcc/testsuite/g++.dg/torture/pr57107.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
typedef long unsigned int size_t;
namespace std {
diff --git a/gcc/testsuite/g++.dg/torture/pr57140.C b/gcc/testsuite/g++.dg/torture/pr57140.C
index 2ea2f9c4d1b..654653d53aa 100644
--- a/gcc/testsuite/g++.dg/torture/pr57140.C
+++ b/gcc/testsuite/g++.dg/torture/pr57140.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std {
typedef long unsigned int size_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr57235.C b/gcc/testsuite/g++.dg/torture/pr57235.C
index fd5663348e9..8a9e522a36a 100644
--- a/gcc/testsuite/g++.dg/torture/pr57235.C
+++ b/gcc/testsuite/g++.dg/torture/pr57235.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std
{
diff --git a/gcc/testsuite/g++.dg/torture/pr58252.C b/gcc/testsuite/g++.dg/torture/pr58252.C
index d38a7a7ea4b..db3270d9afb 100644
--- a/gcc/testsuite/g++.dg/torture/pr58252.C
+++ b/gcc/testsuite/g++.dg/torture/pr58252.C
@@ -1,5 +1,6 @@
// { dg-do compile }
// { dg-options "-fpermissive" }
+// { dg-additional-options "-Wno-return-type" }
typedef long unsigned int size_t;
typedef bool _CORBA_Boolean;
typedef unsigned int _CORBA_ULong;
diff --git a/gcc/testsuite/g++.dg/torture/pr58555.C b/gcc/testsuite/g++.dg/torture/pr58555.C
index ac5009a7b26..454d33d8740 100644
--- a/gcc/testsuite/g++.dg/torture/pr58555.C
+++ b/gcc/testsuite/g++.dg/torture/pr58555.C
@@ -1,4 +1,6 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
+
template <typename _Tp> _Tp *__addressof(_Tp &) {}
template <typename _Tp> class A {
public:
diff --git a/gcc/testsuite/g++.dg/torture/pr59208.C b/gcc/testsuite/g++.dg/torture/pr59208.C
index 3dc110c55e3..2b2ad6deea5 100644
--- a/gcc/testsuite/g++.dg/torture/pr59208.C
+++ b/gcc/testsuite/g++.dg/torture/pr59208.C
@@ -14,7 +14,7 @@ enum DebuggerType {};
C a;
DebuggerType b;
void operator==(A &, const A &);
-static A get_dbx_doc(A &p1) { p1 == 0; }
+static A get_dbx_doc(A &p1) { p1 == 0; return A(); }
void add_button() {
A c;
diff --git a/gcc/testsuite/g++.dg/torture/pr60438-1.C b/gcc/testsuite/g++.dg/torture/pr60438-1.C
index 748295aabe0..3f79dd770eb 100644
--- a/gcc/testsuite/g++.dg/torture/pr60438-1.C
+++ b/gcc/testsuite/g++.dg/torture/pr60438-1.C
@@ -23,4 +23,6 @@ foo (struct C *y, float x)
d.a = (int) (b * x);
}
baz (&d);
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr60746.C b/gcc/testsuite/g++.dg/torture/pr60746.C
index 7ce6ebe6bc0..941e42ca783 100644
--- a/gcc/testsuite/g++.dg/torture/pr60746.C
+++ b/gcc/testsuite/g++.dg/torture/pr60746.C
@@ -20,4 +20,6 @@ Two::run ()
|| list_arry[4][orig].getSize () > 0)
{
}
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr61554.C b/gcc/testsuite/g++.dg/torture/pr61554.C
index 6f609c8be09..90f8e85e303 100644
--- a/gcc/testsuite/g++.dg/torture/pr61554.C
+++ b/gcc/testsuite/g++.dg/torture/pr61554.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
struct A
{
diff --git a/gcc/testsuite/g++.dg/torture/pr63419.C b/gcc/testsuite/g++.dg/torture/pr63419.C
index 6d4c0745d41..88b117883b7 100644
--- a/gcc/testsuite/g++.dg/torture/pr63419.C
+++ b/gcc/testsuite/g++.dg/torture/pr63419.C
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-additional-options "-Wno-psabi" }
+// { dg-additional-options "-Wno-psabi -Wno-return-type" }
// Ignore warning on some powerpc-linux configurations.
// { dg-prune-output "non-standard ABI extension" }
diff --git a/gcc/testsuite/g++.dg/torture/pr63476.C b/gcc/testsuite/g++.dg/torture/pr63476.C
index 75ecc374065..c0c8ae44e85 100644
--- a/gcc/testsuite/g++.dg/torture/pr63476.C
+++ b/gcc/testsuite/g++.dg/torture/pr63476.C
@@ -1,5 +1,5 @@
// { dg-do compile }
-// { dg-additional-options "-std=gnu++11" }
+// { dg-additional-options "-std=gnu++11 -Wno-return-type" }
enum class nsresult;
class A;
diff --git a/gcc/testsuite/g++.dg/torture/pr63512.C b/gcc/testsuite/g++.dg/torture/pr63512.C
index 1c1899dc6d8..d08e6174168 100644
--- a/gcc/testsuite/g++.dg/torture/pr63512.C
+++ b/gcc/testsuite/g++.dg/torture/pr63512.C
@@ -43,4 +43,5 @@ C::m_fn3 (const int &, int &, int **)
if (a)
c.Range.m_fn1 ();
m_fn2 (semi, 0, b ? "" : a ? "alias declaration" : "using declaration");
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr64282.C b/gcc/testsuite/g++.dg/torture/pr64282.C
index 48429884e9f..9696effc38d 100644
--- a/gcc/testsuite/g++.dg/torture/pr64282.C
+++ b/gcc/testsuite/g++.dg/torture/pr64282.C
@@ -53,7 +53,7 @@ public:
class H
{
void m_fn7 (const F &, bool &);
- bool m_fn8 (const D<F> &, const F &, F &);
+ void m_fn8 (const D<F> &, const F &, F &);
};
typedef A<int> CandPair;
class I
@@ -91,7 +91,7 @@ H::m_fn7 (const F &, bool &)
F h;
m_fn8 (g, f.first, h);
}
-bool
+void
H::m_fn8 (const D<F> &p1, const F &, F &)
{
F i;
diff --git a/gcc/testsuite/g++.dg/torture/pr64378.C b/gcc/testsuite/g++.dg/torture/pr64378.C
index 6770601eaf2..4d48cdc0946 100644
--- a/gcc/testsuite/g++.dg/torture/pr64378.C
+++ b/gcc/testsuite/g++.dg/torture/pr64378.C
@@ -5,7 +5,7 @@ struct data {
};
struct top {
- virtual int topf() {}
+ virtual int topf() { return 0; }
};
struct child1: top {
diff --git a/gcc/testsuite/g++.dg/torture/pr64565.C b/gcc/testsuite/g++.dg/torture/pr64565.C
index 42b0239c525..ea5ca14e23a 100644
--- a/gcc/testsuite/g++.dg/torture/pr64565.C
+++ b/gcc/testsuite/g++.dg/torture/pr64565.C
@@ -1,4 +1,6 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
+
typedef enum
{
NS_OK
diff --git a/gcc/testsuite/g++.dg/torture/pr64568-2.C b/gcc/testsuite/g++.dg/torture/pr64568-2.C
index 05782179008..5881b854d6a 100644
--- a/gcc/testsuite/g++.dg/torture/pr64568-2.C
+++ b/gcc/testsuite/g++.dg/torture/pr64568-2.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
namespace std
{
diff --git a/gcc/testsuite/g++.dg/torture/pr64669.C b/gcc/testsuite/g++.dg/torture/pr64669.C
index b207739e6d3..a4e7d3a8a28 100644
--- a/gcc/testsuite/g++.dg/torture/pr64669.C
+++ b/gcc/testsuite/g++.dg/torture/pr64669.C
@@ -60,4 +60,6 @@ Lex::advance_one_char (const char *p, bool is_single_quote,
&& (*value == '\'' || *value == '\n') && !issued_error)
error_at (this->location (), "invalid character literal");
}
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr64686.C b/gcc/testsuite/g++.dg/torture/pr64686.C
index 714aa4100c5..9eb54160eba 100644
--- a/gcc/testsuite/g++.dg/torture/pr64686.C
+++ b/gcc/testsuite/g++.dg/torture/pr64686.C
@@ -15,5 +15,6 @@ A *
B::m_fn1 (int *) const
{
new B (m_fn2 (0)->m_fn1 (0), 0, m_fn2 (0)->m_fn1 (0));
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr64978.C b/gcc/testsuite/g++.dg/torture/pr64978.C
index a9ac49f8e12..3e45be6f09c 100644
--- a/gcc/testsuite/g++.dg/torture/pr64978.C
+++ b/gcc/testsuite/g++.dg/torture/pr64978.C
@@ -27,4 +27,4 @@ void C::m_fn3(A, unsigned, const int *, int &) {
1 ? VTables.m_fn2() : 0;
}
void B::m_fn1(bool, const int *, int &) { C(); }
-unsigned B::m_fn2() { m_fn1(0, 0, a); }
+unsigned B::m_fn2() { m_fn1(0, 0, a); return 0; }
diff --git a/gcc/testsuite/g++.dg/torture/pr64995.C b/gcc/testsuite/g++.dg/torture/pr64995.C
index f5b97cf371b..f2e1b1b3748 100644
--- a/gcc/testsuite/g++.dg/torture/pr64995.C
+++ b/gcc/testsuite/g++.dg/torture/pr64995.C
@@ -20,6 +20,7 @@ inline int *A::m_fn2() {
a = acos(c);
double d = m_fn1(b);
acos(d);
+ return 0;
}
void passTime() {
diff --git a/gcc/testsuite/g++.dg/torture/pr65655.C b/gcc/testsuite/g++.dg/torture/pr65655.C
index 8dfc13b7d7d..ea07d2e976b 100644
--- a/gcc/testsuite/g++.dg/torture/pr65655.C
+++ b/gcc/testsuite/g++.dg/torture/pr65655.C
@@ -1,6 +1,6 @@
/* { dg-do compile } */
// { dg-timeout-factor 2.0 }
-// { dg-additional-options "-std=c++11 -fsanitize=undefined -O2" }
+// { dg-additional-options "-std=c++11 -fsanitize=undefined -O2 -Wno-return-type" }
class ECoordinate { };
class EPoint {
public:
diff --git a/gcc/testsuite/g++.dg/torture/pr65851.C b/gcc/testsuite/g++.dg/torture/pr65851.C
index 6efe8861a19..81f3184296c 100644
--- a/gcc/testsuite/g++.dg/torture/pr65851.C
+++ b/gcc/testsuite/g++.dg/torture/pr65851.C
@@ -16,6 +16,7 @@ class C : A {
public:
unsigned long write(const char *p1, unsigned long p2) {
m_string.push_range(p1 + p2);
+ return 0;
}
};
char *write_signed_decimal_backward(bool) {
diff --git a/gcc/testsuite/g++.dg/torture/pr67055.C b/gcc/testsuite/g++.dg/torture/pr67055.C
index 7cbbca275c2..6621e58136f 100644
--- a/gcc/testsuite/g++.dg/torture/pr67055.C
+++ b/gcc/testsuite/g++.dg/torture/pr67055.C
@@ -15,6 +15,7 @@ namespace vespamalloc {
unsigned long A<StackRep>::fillStack(unsigned long p1) {
void *retAddr[p1];
fn1(retAddr);
+ return 0;
}
class B {
protected:
@@ -33,6 +34,7 @@ namespace vespamalloc {
void *C<MemBlockPtrT, ThreadListT>::malloc(unsigned long) {
MemBlockPtrT mem;
mem.alloc(0);
+ return 0;
}
C<D<16>, int> *_GmemP;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr67191.C b/gcc/testsuite/g++.dg/torture/pr67191.C
index 79ee988ce7a..997c661d3ec 100644
--- a/gcc/testsuite/g++.dg/torture/pr67191.C
+++ b/gcc/testsuite/g++.dg/torture/pr67191.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
template <typename> class A;
template <typename _Tp> using __allocator_base = _Tp;
diff --git a/gcc/testsuite/g++.dg/torture/pr68852.C b/gcc/testsuite/g++.dg/torture/pr68852.C
index 41727517760..c2c6a585d3c 100644
--- a/gcc/testsuite/g++.dg/torture/pr68852.C
+++ b/gcc/testsuite/g++.dg/torture/pr68852.C
@@ -34,6 +34,7 @@ public:
c[2] = m_fn2(b);
c[3] = m_fn2(a);
c[ProjectRectBounds_next].m_fn1();
+ return 0;
}
D operator*(D p1) {
D d;
diff --git a/gcc/testsuite/g++.dg/torture/pr69264.C b/gcc/testsuite/g++.dg/torture/pr69264.C
index 43753806758..a531bfc9b8c 100644
--- a/gcc/testsuite/g++.dg/torture/pr69264.C
+++ b/gcc/testsuite/g++.dg/torture/pr69264.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
// { dg-additional-options "-mcpu=970 -maltivec" { target powerpc*-*-* } }
typedef union {
diff --git a/gcc/testsuite/g++.dg/torture/pr70971.C b/gcc/testsuite/g++.dg/torture/pr70971.C
index 23f33aafaba..b4ce235110f 100644
--- a/gcc/testsuite/g++.dg/torture/pr70971.C
+++ b/gcc/testsuite/g++.dg/torture/pr70971.C
@@ -1,4 +1,4 @@
-// { dg-additional-options "-std=c++14" }
+// { dg-additional-options "-std=c++14 -Wno-return-type" }
template<typename Signature>
class function;
diff --git a/gcc/testsuite/g++.dg/torture/pr77674.C b/gcc/testsuite/g++.dg/torture/pr77674.C
index f933174317e..a24ce58dafc 100644
--- a/gcc/testsuite/g++.dg/torture/pr77674.C
+++ b/gcc/testsuite/g++.dg/torture/pr77674.C
@@ -3,6 +3,7 @@ typedef struct { } __fsid_t;
typedef unsigned long int pthread_t;
extern "C" {
extern __inline __attribute__ ((__gnu_inline__)) int pthread_equal (pthread_t __thread1, pthread_t __thread2) throw () {
+ return 0;
}
}
typedef pthread_t __gthread_t;
diff --git a/gcc/testsuite/g++.dg/torture/pr77947.C b/gcc/testsuite/g++.dg/torture/pr77947.C
index 3c8a24a16c6..14f8b13a864 100644
--- a/gcc/testsuite/g++.dg/torture/pr77947.C
+++ b/gcc/testsuite/g++.dg/torture/pr77947.C
@@ -18,9 +18,12 @@ B::m_fn2 () const
bool
m_fn1 () const
{
+ return true;
}
C () {}
};
+
+ return 0;
}
void
fn1 (A &p1)
diff --git a/gcc/testsuite/g++.dg/torture/pr78268.C b/gcc/testsuite/g++.dg/torture/pr78268.C
index ef4547c1159..8458c20d417 100644
--- a/gcc/testsuite/g++.dg/torture/pr78268.C
+++ b/gcc/testsuite/g++.dg/torture/pr78268.C
@@ -1,4 +1,6 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
+
typedef enum {} nsresult;
struct A {
diff --git a/gcc/testsuite/g++.dg/torture/pr78507.C b/gcc/testsuite/g++.dg/torture/pr78507.C
index 9691cf9bd7a..6d6bd31c571 100644
--- a/gcc/testsuite/g++.dg/torture/pr78507.C
+++ b/gcc/testsuite/g++.dg/torture/pr78507.C
@@ -1,5 +1,7 @@
// PR middle-end/78507
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
+
struct A {
template <typename _Iterator1, typename _Iterator2>
int operator()(_Iterator1, _Iterator2);
diff --git a/gcc/testsuite/g++.dg/torture/pr78692.C b/gcc/testsuite/g++.dg/torture/pr78692.C
index 57a0d2fcb0a..331cc81c210 100644
--- a/gcc/testsuite/g++.dg/torture/pr78692.C
+++ b/gcc/testsuite/g++.dg/torture/pr78692.C
@@ -22,5 +22,6 @@ int
F::g ()
{
a = i (h, b, 0);
+ return 0;
}
}
diff --git a/gcc/testsuite/g++.dg/torture/pr80171.C b/gcc/testsuite/g++.dg/torture/pr80171.C
index 81f272583c5..c1f6e622515 100644
--- a/gcc/testsuite/g++.dg/torture/pr80171.C
+++ b/gcc/testsuite/g++.dg/torture/pr80171.C
@@ -1,4 +1,5 @@
// { dg-do compile }
+// { dg-additional-options "-Wno-return-type" }
template <typename> struct remove_reference;
template <typename _Tp> struct remove_reference<_Tp &> { typedef _Tp type; };
diff --git a/gcc/testsuite/g++.dg/torture/pr82154.C b/gcc/testsuite/g++.dg/torture/pr82154.C
index f4e1c3ea139..e229c3e640e 100644
--- a/gcc/testsuite/g++.dg/torture/pr82154.C
+++ b/gcc/testsuite/g++.dg/torture/pr82154.C
@@ -25,6 +25,7 @@ class f
i ()
{
static d j;
+ return d();
}
int *k () throw (a::c);
};
@@ -47,4 +48,5 @@ int *f::k () throw (a::c)
}
}
i ().e ();
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/torture/pr82902.C b/gcc/testsuite/g++.dg/torture/pr82902.C
new file mode 100644
index 00000000000..cc2ce271d4c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr82902.C
@@ -0,0 +1,21 @@
+// { dg-do compile }
+
+typedef struct el_t {
+ el_t *next;
+ int elem[];
+} EL;
+el_t a, c;
+void *b;
+void *fn1() {
+ if (b)
+ return a.elem;
+ return c.elem;
+}
+typedef struct {
+ int x;
+} EV_T;
+EV_T *d;
+void fn2() {
+ EV_T *e = (EV_T *)fn1();
+ d[0] = *e;
+}
diff --git a/gcc/testsuite/g++.dg/torture/pr82985.C b/gcc/testsuite/g++.dg/torture/pr82985.C
new file mode 100644
index 00000000000..5c371835cf6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/torture/pr82985.C
@@ -0,0 +1,458 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-w" } */
+/* { dg-additional-options "-mavx2" { target { x86_64-*-* i?86-*-* } } } */
+
+namespace std {
+template < typename _Default > struct __detector { using type = _Default; };
+template < typename _Default, template < typename > class >
+using __detected_or = __detector< _Default >;
+template < typename _Default, template < typename > class _Op >
+using __detected_or_t = typename __detected_or< _Default, _Op >::type;
+template < typename > struct iterator_traits;
+template < typename _Tp > struct iterator_traits< _Tp * > {
+ typedef _Tp reference;
+};
+} // std
+using std::iterator_traits;
+template < typename _Iterator, typename > struct __normal_iterator {
+ typename iterator_traits< _Iterator >::reference operator*();
+ void operator++();
+};
+template < typename _IteratorL, typename _IteratorR, typename _Container >
+int operator!=(__normal_iterator< _IteratorL, _Container >,
+ __normal_iterator< _IteratorR, _Container >);
+namespace std {
+template < typename _Tp > struct allocator { typedef _Tp value_type; };
+struct __allocator_traits_base {
+ template < typename _Tp > using __pointer = typename _Tp::pointer;
+};
+template < typename _Alloc > struct allocator_traits : __allocator_traits_base {
+ using pointer = __detected_or_t< typename _Alloc::value_type *, __pointer >;
+};
+} // std
+typedef double __m128d __attribute__((__vector_size__(16)));
+typedef double __m256d __attribute__((__vector_size__(32)));
+enum { InnerVectorizedTraversal, LinearVectorizedTraversal };
+enum { ReadOnlyAccessors };
+template < int, typename Then, typename > struct conditional {
+ typedef Then type;
+};
+template < typename Then, typename Else > struct conditional< 0, Then, Else > {
+ typedef Else type;
+};
+template < typename, typename > struct is_same {
+ enum { value };
+};
+template < typename T > struct is_same< T, T > {
+ enum { value = 1 };
+};
+template < typename > struct traits;
+struct accessors_level {
+ enum { has_direct_access, has_write_access, value };
+};
+template < typename > struct EigenBase;
+template < typename > struct PlainObjectBase;
+template < typename, int = accessors_level::value > struct DenseCoeffsBase;
+template < typename, int, int, int = 0, int = 0, int = 0 > struct Matrix;
+template < typename > struct MatrixBase;
+template < typename, int, int, bool = 0 > struct Block;
+struct VectorBlock;
+template < typename, typename > struct CwiseNullaryOp;
+template < typename, typename, typename > struct CwiseBinaryOp;
+template < typename, int = accessors_level::has_write_access > struct MapBase;
+template < typename > struct packet_traits;
+template < typename > struct unpacket_traits;
+template < int Size, typename PacketType,
+ int = Size == is_same< PacketType, typename unpacket_traits<
+ PacketType >::half >::value >
+struct find_best_packet_helper;
+template < int Size, typename PacketType >
+struct find_best_packet_helper< Size, PacketType, 1 > {
+ typedef PacketType type;
+};
+template < int Size, typename PacketType >
+struct find_best_packet_helper< Size, PacketType, 0 > {
+ typedef typename find_best_packet_helper<
+ 1, typename unpacket_traits< PacketType >::half >::type type;
+};
+template < typename T, int Size > struct find_best_packet {
+ typedef typename find_best_packet_helper<
+ Size, typename packet_traits< T >::type >::type type;
+};
+struct compute_matrix_flags {
+ enum { ret = 1 };
+};
+struct ref_selector {
+ typedef Matrix< double, 10, 1 > &type;
+};
+template < typename Derived > struct dense_xpr_base {
+ typedef MatrixBase< Derived > type;
+};
+template < typename ExpressionType > struct is_lvalue {
+ enum { value = traits< ExpressionType >::Flags };
+};
+template < typename Packet > void pmul(Packet);
+template < typename Packet >
+Packet pload(const typename unpacket_traits< Packet >::type *);
+template < typename Packet >
+Packet pset1(const typename unpacket_traits< Packet >::type &);
+template < typename Scalar, typename Packet > void pstoreu(Scalar, Packet &);
+template < typename Packet, int >
+Packet ploadt(const typename unpacket_traits< Packet >::type *from) {
+ return pload< Packet >(from);
+}
+template < typename Scalar, typename Packet, int >
+void pstoret(Scalar *to, const Packet from) {
+ pstoreu(to, from);
+}
+typedef __m128d Packet2d;
+template <> struct unpacket_traits< Packet2d > {
+ typedef double type;
+ typedef Packet2d half;
+};
+template <> Packet2d pload(const double *from) { return *(__m128d *)from; }
+typedef __m256d Packet4d;
+template <> struct packet_traits< double > { typedef Packet4d type; };
+template <> struct unpacket_traits< Packet4d > {
+ typedef double type;
+ typedef Packet2d half;
+};
+__m256d pset1___trans_tmp_1;
+template <> Packet4d pset1(const double &) {
+ int __A;
+ pset1___trans_tmp_1 = __m256d{__A};
+ return pset1___trans_tmp_1;
+}
+template <> void pstoreu(double *to, const Packet4d &from) {
+ *(__attribute__((__vector_size__(4 * sizeof(double)))) double *)to = from;
+}
+struct scalar_product_op {
+ template < typename Packet > void packetOp(Packet a, Packet) { pmul(a); }
+};
+struct scalar_constant_op {
+ template < typename PacketType > PacketType packetOp() {
+ return pset1< PacketType >(0);
+ }
+};
+struct assign_op {
+ template < int, typename Packet > void assignPacket(double *a, Packet b) {
+ pstoret< double, Packet, 0 >(a, b);
+ }
+};
+template < typename Derived >
+struct DenseCoeffsBase< Derived, 0 > : EigenBase< Derived > {};
+template < typename Derived >
+struct DenseCoeffsBase< Derived > : DenseCoeffsBase< Derived, 0 > {};
+template < typename Derived > struct DenseBase : DenseCoeffsBase< Derived > {
+ using DenseCoeffsBase< Derived >::derived;
+ enum { SizeAtCompileTime, MaxSizeAtCompileTime };
+ static CwiseNullaryOp< scalar_constant_op, Derived > Constant();
+ Derived &setConstant();
+ struct FixedSegmentReturnType {
+ typedef VectorBlock Type;
+ };
+ template < int > typename FixedSegmentReturnType::Type segment() {
+ return typename FixedSegmentReturnType::Type(derived(), 0, 0);
+ }
+};
+template < typename Derived > struct MatrixBase : DenseBase< Derived > {
+ using DenseBase< Derived >::derived;
+ template < typename OtherDerived >
+ CwiseBinaryOp< scalar_product_op, const Derived, const OtherDerived >
+ cwiseProduct(OtherDerived) {
+ return CwiseBinaryOp< scalar_product_op, const Derived,
+ const OtherDerived >(derived(), derived());
+ }
+ template < typename OtherDerived >
+ Derived &operator=(const DenseBase< OtherDerived > &);
+};
+template < typename Derived > struct EigenBase {
+ Derived &derived() { return *static_cast< Derived * >(this); }
+ Derived derived() const;
+};
+template < typename > struct binary_evaluator;
+template < typename Derived > struct evaluator {
+ typedef Derived PlainObjectType;
+ typedef typename PlainObjectType::Scalar Scalar;
+ enum { IsVectorAtCompileTime, Flags };
+ evaluator(PlainObjectType m) : m_data(m.data()) {}
+ Scalar &coeffRef(int, int);
+ template < int, typename PacketType > PacketType packet(int, int) {
+ return ploadt< PacketType, 0 >(m_data);
+ }
+ const Scalar *m_data;
+};
+template < typename Scalar, int Rows, int Cols, int Options, int MaxRows,
+ int MaxCols >
+struct evaluator< Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >
+ : evaluator< PlainObjectBase< Matrix< Scalar, Rows, Cols > > > {
+ typedef Matrix< Scalar, Rows, Cols > XprType;
+ evaluator(XprType m) : evaluator< PlainObjectBase< XprType > >(m) {}
+};
+struct nullary_wrapper {
+ template < typename T, typename IndexType >
+ T packetOp(scalar_constant_op op, IndexType, IndexType) {
+ return op.packetOp< T >();
+ }
+};
+template < typename NullaryOp, typename PlainObjectType >
+struct evaluator< CwiseNullaryOp< NullaryOp, PlainObjectType > > {
+ evaluator(CwiseNullaryOp< NullaryOp, PlainObjectType >);
+ template < int, typename PacketType, typename IndexType >
+ PacketType packet(IndexType row, IndexType col) {
+ return m_wrapper.packetOp< PacketType >(m_functor, row, col);
+ }
+ NullaryOp m_functor;
+ nullary_wrapper m_wrapper;
+};
+template < typename BinaryOp, typename Lhs, typename Rhs >
+struct evaluator< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >
+ : binary_evaluator< CwiseBinaryOp< BinaryOp, Lhs, Rhs > > {
+ evaluator(CwiseBinaryOp< BinaryOp, Lhs, Rhs > xpr)
+ : binary_evaluator< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >(xpr) {}
+};
+template < typename BinaryOp, typename Lhs, typename Rhs >
+struct binary_evaluator< CwiseBinaryOp< BinaryOp, Lhs, Rhs > > {
+ binary_evaluator(CwiseBinaryOp< BinaryOp, Lhs, Rhs > xpr)
+ : m_lhsImpl(xpr.lhs()), m_rhsImpl(xpr.rhs()) {}
+ template < int, typename PacketType > PacketType packet(int, int) {
+ PacketType __trans_tmp_1 = m_lhsImpl.template packet< 0, PacketType >(0, 0);
+ PacketType __trans_tmp_2;
+ m_functor.packetOp(__trans_tmp_1, __trans_tmp_2);
+ }
+ BinaryOp m_functor;
+ evaluator< Lhs > m_lhsImpl;
+ evaluator< Rhs > m_rhsImpl;
+};
+template < typename Derived > struct mapbase_evaluator {
+ typedef Derived XprType;
+ mapbase_evaluator(XprType map) : m_data(map.data()) {}
+ typename XprType::Scalar &coeffRef(int, int) { return m_data[0]; }
+ typename XprType::PointerType m_data;
+};
+template < int > struct block_evaluator;
+template < typename ArgType, int BlockRows, int BlockCols, bool InnerPanel >
+struct evaluator< Block< ArgType, BlockRows, BlockCols, InnerPanel > >
+ : block_evaluator< BlockCols > {
+ enum { Flags };
+ evaluator(Block< ArgType, 1, 1 > block) : block_evaluator< 1 >(block) {}
+};
+template < int BlockCols >
+struct block_evaluator
+ : mapbase_evaluator< Block< Matrix< double, 10, 1 >, 1, BlockCols > > {
+ typedef Block< Matrix< double, 10, 1 >, 1, BlockCols > XprType;
+ block_evaluator(XprType block) : mapbase_evaluator< XprType >(block) {}
+};
+template < typename DstEvaluator > struct copy_using_evaluator_traits {
+ typedef typename DstEvaluator::XprType Dst;
+ typedef typename Dst::Scalar DstScalar;
+ enum { DstFlags = DstEvaluator::Flags };
+ enum { InnerSize = DstFlags };
+ typedef typename conditional<
+ int() == LinearVectorizedTraversal,
+ typename find_best_packet< DstScalar, Dst::SizeAtCompileTime >::type,
+ typename find_best_packet< DstScalar, InnerSize >::type >::type
+ PacketType;
+};
+template < typename Kernel >
+struct copy_using_evaluator_innervec_CompleteUnrolling {
+ enum { outer, inner, SrcAlignment, DstAlignment };
+ static void run(Kernel kernel) {
+ kernel.template assignPacketByOuterInner< DstAlignment, SrcAlignment,
+ typename Kernel::PacketType >(
+ outer, inner);
+ }
+};
+template < typename Kernel > struct dense_assignment_loop {
+ static void run(Kernel kernel) {
+ copy_using_evaluator_innervec_CompleteUnrolling< Kernel >::run(kernel);
+ }
+};
+template < typename DstEvaluatorTypeT, typename SrcEvaluatorTypeT,
+ typename Functor >
+struct generic_dense_assignment_kernel {
+ typedef DstEvaluatorTypeT DstXprType;
+ typedef DstEvaluatorTypeT DstEvaluatorType;
+ typedef SrcEvaluatorTypeT SrcEvaluatorType;
+ typedef typename copy_using_evaluator_traits< DstEvaluatorTypeT >::PacketType
+ PacketType;
+ generic_dense_assignment_kernel(DstEvaluatorType dst, SrcEvaluatorType src,
+ Functor, DstXprType dstExpr)
+ : m_dst(dst), m_src(src), m_dstExpr(dstExpr) {}
+ template < int StoreMode, int LoadMode, typename >
+ void assignPacketByOuterInner(long, long) {
+ long row;
+ long col;
+ m_functor.template assignPacket< StoreMode >(
+ &m_dst.coeffRef(row, col),
+ m_src.template packet< LoadMode, PacketType >(row, col));
+ }
+ DstEvaluatorType &m_dst;
+ SrcEvaluatorType m_src;
+ Functor m_functor;
+ DstXprType m_dstExpr;
+};
+template < typename DstXprType, typename SrcXprType, typename Functor >
+void call_dense_assignment_loop(DstXprType dst, SrcXprType src, Functor func) {
+ typedef evaluator< DstXprType > DstEvaluatorType;
+ typedef evaluator< SrcXprType > SrcEvaluatorType;
+ SrcEvaluatorType srcEvaluator(src);
+ DstEvaluatorType dstEvaluator(dst);
+ typedef generic_dense_assignment_kernel< DstEvaluatorType, SrcEvaluatorType,
+ Functor >
+ Kernel;
+ Kernel kernel(dstEvaluator, srcEvaluator, func, dst);
+ dense_assignment_loop< Kernel >::run(kernel);
+}
+template < typename, typename, typename > struct Assignment;
+template < typename Dst, typename Src > void call_assignment(Dst dst, Src src) {
+ call_assignment(dst, src, assign_op());
+}
+template < typename Dst, typename Src, typename Func >
+void call_assignment(Dst dst, Src src, Func func) {
+ call_assignment_no_alias(dst, src, func);
+}
+template < typename Dst, typename Src, typename Func >
+void call_assignment_no_alias(Dst dst, Src src, Func func) {
+ enum { NeedToTranspose };
+ Assignment< typename conditional< NeedToTranspose, int, Dst >::type, Src,
+ Func >::run(dst, src, func);
+}
+template < typename DstXprType, typename SrcXprType, typename Functor >
+struct Assignment {
+ static void run(DstXprType dst, SrcXprType src, Functor func) {
+ call_dense_assignment_loop(dst, src, func);
+ }
+};
+template < typename Derived >
+template < typename OtherDerived >
+Derived &MatrixBase< Derived >::
+operator=(const DenseBase< OtherDerived > &other) {
+ call_assignment(derived(), other.derived());
+}
+template < int Size > struct plain_array { double array[Size]; };
+template < int Size > class DenseStorage {
+ plain_array< Size > m_data;
+
+public:
+ const double *data() const { return m_data.array; }
+ double *data() { return m_data.array; }
+};
+template < typename Derived >
+struct PlainObjectBase : dense_xpr_base< Derived >::type {
+ typedef typename dense_xpr_base< Derived >::type Base;
+ typedef typename traits< Derived >::Scalar Scalar;
+ DenseStorage< Base::MaxSizeAtCompileTime > m_storage;
+ const Scalar *data() const { return m_storage.data(); }
+ Scalar *data() { return m_storage.data(); }
+ PlainObjectBase() {}
+ template < typename OtherDerived > PlainObjectBase(OtherDerived other) {
+ call_assignment_no_alias(this->derived(), other, assign_op());
+ }
+};
+template < typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows,
+ int _MaxCols >
+struct traits< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > > {
+ typedef _Scalar Scalar;
+ enum { Flags = compute_matrix_flags::ret };
+};
+template < typename, int _Rows, int _Cols, int, int, int >
+struct Matrix : PlainObjectBase< Matrix< double, _Rows, _Cols > > {
+ PlainObjectBase< Matrix > Base;
+ Matrix() {}
+ template < typename OtherDerived > Matrix(OtherDerived other) : Base(other) {}
+};
+template < typename, typename, typename > struct CwiseBinaryOp {
+ typedef ref_selector::type LhsNested;
+ CwiseBinaryOp(Matrix< double, 10, 1 > &aLhs, Matrix< double, 0, 0 >)
+ : m_lhs(aLhs) {}
+ LhsNested lhs() { return m_lhs; }
+ Matrix< double, 8, 1 > rhs() {}
+ LhsNested m_lhs;
+};
+template < typename NullaryOp, typename >
+struct CwiseNullaryOp
+ : dense_xpr_base< CwiseNullaryOp< NullaryOp, int > >::type {};
+template < typename Derived > Derived &DenseBase< Derived >::setConstant() {
+ derived() = Constant();
+}
+template < typename Derived >
+struct MapBase< Derived, ReadOnlyAccessors > : dense_xpr_base< Derived >::type {
+ typedef typename dense_xpr_base< Derived >::type Base;
+ typedef typename traits< Derived >::Scalar Scalar;
+ typedef typename conditional< is_lvalue< Derived >::value, Scalar *,
+ Scalar >::type PointerType;
+ Scalar *data() { return m_data; }
+ MapBase(PointerType dataPtr, long, long) : m_data(dataPtr) {}
+ PointerType m_data;
+};
+template < typename Derived >
+struct MapBase< Derived > : MapBase< Derived, ReadOnlyAccessors > {
+ typedef MapBase< Derived, ReadOnlyAccessors > Base;
+ MapBase(typename Base::PointerType dataPtr, long rows, long cols)
+ : Base(dataPtr, rows, cols) {}
+ using MapBase< Derived, ReadOnlyAccessors >::Base::operator=;
+};
+template < typename XprType, int BlockRows, int BlockCols, bool InnerPanel >
+struct traits< Block< XprType, BlockRows, BlockCols, InnerPanel > >
+ : traits< XprType > {};
+template < int, int > struct BlockImpl_dense;
+template < typename, int, int, typename > class BlockImpl;
+template < typename, int BlockRows, int BlockCols, bool >
+struct Block : BlockImpl< Matrix< double, 10, 1 >, BlockRows, BlockCols, int > {
+ typedef BlockImpl< Matrix< double, 10, 1 >, BlockRows, BlockCols, int > Impl;
+ using Impl::operator=;
+ Block(Matrix< double, 10, 1 > &xpr, long startRow, long startCol,
+ long blockRows, long blockCols)
+ : Impl(xpr, startRow, startCol, blockRows, blockCols) {}
+};
+template < typename XprType, int BlockRows, int BlockCols >
+struct BlockImpl< XprType, BlockRows, BlockCols, int >
+ : BlockImpl_dense< BlockRows, BlockCols > {
+ typedef BlockImpl_dense< BlockRows, BlockCols > Impl;
+ typedef Impl Base;
+ using Base::operator=;
+ BlockImpl(XprType &xpr, long startRow, long startCol, long blockRows,
+ long blockCols)
+ : Impl(xpr, startRow, startCol, blockRows, blockCols) {}
+};
+template < int BlockRows, int BlockCols >
+struct BlockImpl_dense
+ : MapBase< Block< Matrix< double, 10, 1 >, BlockRows, BlockCols > > {
+ typedef MapBase< Block< Matrix< double, 10, 1 >, BlockRows, BlockCols > >
+ Base;
+ using Base::operator=;
+ BlockImpl_dense(Matrix< double, 10, 1 > &xpr, long, long, long blockRows,
+ long blockCols)
+ : Base(xpr.data(), blockRows, blockCols) {}
+};
+struct VectorBlock : Block< int, traits< Matrix< double, 0, 1 > >::Flags, 1 > {
+ VectorBlock(Matrix< double, 10, 1 > &vector, long start, long size)
+ : Block(vector, 0, start, 1, size) {}
+};
+namespace std {
+template < typename _Alloc > struct _Vector_base {
+ typedef typename allocator_traits< _Alloc >::pointer pointer;
+};
+template < typename _Tp, typename _Alloc = allocator< _Tp > > class vector {
+public:
+ typedef __normal_iterator< typename _Vector_base< _Alloc >::pointer, int >
+ iterator;
+ iterator begin();
+ iterator end();
+};
+struct FrameHessian {
+ Matrix< double, 0, 1 > step;
+ void setState(Matrix< double, 0, 1 >);
+};
+struct FullSystem {
+ bool doStepFromBackup();
+ vector< FrameHessian * > frameHessians;
+};
+bool FullSystem::doStepFromBackup() {
+ Matrix< double, 10, 1 > pstepfac;
+ pstepfac.segment< 4 >().setConstant();
+ for (FrameHessian *fh : frameHessians)
+ fh->setState(pstepfac.cwiseProduct(fh->step));
+}
+} // namespace std
diff --git a/gcc/testsuite/g++.dg/tree-prof/pr79259.C b/gcc/testsuite/g++.dg/tree-prof/pr79259.C
index a55172b62d2..6125a179bdc 100644
--- a/gcc/testsuite/g++.dg/tree-prof/pr79259.C
+++ b/gcc/testsuite/g++.dg/tree-prof/pr79259.C
@@ -11,6 +11,8 @@ fn2 ()
{
if (a (c == 0))
return 0;
+
+ return 0;
}
int main()
diff --git a/gcc/testsuite/g++.dg/tree-ssa/copyprop.C b/gcc/testsuite/g++.dg/tree-ssa/copyprop.C
index b30e5ddc5ba..8c05895e45e 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/copyprop.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/copyprop.C
@@ -2,7 +2,7 @@
//
// { dg-do compile { target { lp64 } } }
// { dg-options "-Wno-error -fno-exceptions -fno-tree-vrp -O2 -fprofile-generate -finline-limit=500 -std=c++98" }
-//
+// { dg-additional-options "-Wno-return-type" }
#include <map>
#include <vector>
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr22444.C b/gcc/testsuite/g++.dg/tree-ssa/pr22444.C
index 7df4b9cce15..04bf2009cbe 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr22444.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr22444.C
@@ -4,6 +4,7 @@
// with the subvars leading to the subvars not being renamed when they should
// { dg-do compile }
// { dg-options "-O2" }
+// { dg-additional-options "-Wno-return-type" }
__extension__ typedef __PTRDIFF_TYPE__ ptrdiff_t;
__extension__ typedef __SIZE_TYPE__ size_t;
namespace std
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr23948.C b/gcc/testsuite/g++.dg/tree-ssa/pr23948.C
index def01d95157..ed99217a7b9 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr23948.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr23948.C
@@ -6,7 +6,7 @@ struct MIOFILE {
};
double potentially_runnable_resource_share();
void f1(double);
-int make_scheduler_request(double a, double b)
+void make_scheduler_request(double a, double b)
{
MIOFILE mf;
double prrs = potentially_runnable_resource_share();
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr24172.C b/gcc/testsuite/g++.dg/tree-ssa/pr24172.C
index 245186a3c50..4d92bd592c0 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr24172.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr24172.C
@@ -1,6 +1,6 @@
// { dg-options "-O2" }
void IOException( char);
-inline int* dummy( const char* const mode )
+inline void dummy( const char* const mode )
{
IOException(*mode+*mode);
}
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C b/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C
index 09a3f9462f3..f3aaee85286 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
+// { dg-additional-options "-Wno-return-type" }
namespace sigc {
template <class T_type> struct type_trait {
typedef T_type& pass;
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr27283.C b/gcc/testsuite/g++.dg/tree-ssa/pr27283.C
index 224ea6a9bf9..1623d289a20 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr27283.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr27283.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
+/* { dg-additional-options "-Wno-return-type" } */
namespace Gambit
{
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr27291.C b/gcc/testsuite/g++.dg/tree-ssa/pr27291.C
index b8b5e136a46..24f440dde06 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr27291.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr27291.C
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-options "-O2" } */
+/* { dg-additional-options "-Wno-return-type" } */
namespace std
{
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr27548.C b/gcc/testsuite/g++.dg/tree-ssa/pr27548.C
index d23b959a599..cbe7929aefe 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr27548.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr27548.C
@@ -1,6 +1,7 @@
// PR tree-optimization/27548
// { dg-do compile }
// { dg-options "-O1" }
+// { dg-additional-options "-Wno-return-type" }
namespace Gambit
{
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C b/gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C
index 500d8b639ee..9fb5dc1b60c 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fno-tree-vrp -fdump-tree-forwprop1" } */
+/* { dg-options "-O -fcheck-new -fno-tree-vrp -fdump-tree-forwprop1" } */
#include <new>
@@ -20,6 +20,5 @@ double foo (void)
return v.a[2];
}
-/* -std=c++17 and above doesn't emit operator new () != NULL, so there is
- nothing to fold anymore. */
-/* { dg-final { scan-tree-dump "Replaced .* != 0B. with .1" "forwprop1" { target c++14_down } } } */
+/* GCC 8 emits operator new () != NULL with -fcheck-new. */
+/* { dg-final { scan-tree-dump "Replaced .* != 0B. with .1" "forwprop1" } } */
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr33604.C b/gcc/testsuite/g++.dg/tree-ssa/pr33604.C
index 1c0f550bfdf..668db49d146 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr33604.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr33604.C
@@ -6,7 +6,7 @@ struct Value
double value;
Value(double value_) : value (value_) {}
operator double() const { return value; }
- Value& operator=(double other) { value = other; }
+ Value& operator=(double other) { value = other; return *this; }
};
struct Ref
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr34355.C b/gcc/testsuite/g++.dg/tree-ssa/pr34355.C
index 978ed75df68..e7b4537697a 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr34355.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr34355.C
@@ -24,4 +24,5 @@ double Parse_Float ()
EXPRESS Express = {1.0, 2.0, 3.0, 4.0, 5.0};
Parse_Rel_Factor (Express, &Terms);
+ return 0.0;
}
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr41428.C b/gcc/testsuite/g++.dg/tree-ssa/pr41428.C
index c0a5eb627be..7aff519e746 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr41428.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr41428.C
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fdump-tree-ccp1-details" } */
+/* { dg-options "-O -fcheck-new -fdump-tree-ccp1-details" } */
extern "C" void abort (void);
inline void *operator new (__SIZE_TYPE__, void *__p) throw () { return __p; }
@@ -11,6 +11,5 @@ int foo(void)
return *(int *)&f;
}
-/* -std=c++17 and above doesn't emit operator new () != NULL, so there is
- nothing to fold anymore. */
-/* { dg-final { scan-tree-dump "Folded into: if \\\(1 != 0\\\)" "ccp1" { target c++14_down } } } */
+/* GCC 8 emits operator new () != NULL with -fcheck-new. */
+/* { dg-final { scan-tree-dump "Folded into: if \\\(1 != 0\\\)" "ccp1" } } */
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr42337.C b/gcc/testsuite/g++.dg/tree-ssa/pr42337.C
index 8abd4b2d161..61beb737018 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr42337.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr42337.C
@@ -1,6 +1,7 @@
// PR tree-optimize/42337
// { dg-do compile }
// { dg-options "-O2" }
+// { dg-additional-options "-Wno-return-type" }
template<class _T1, class _T2> struct pair {
_T2 second;
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr81408.C b/gcc/testsuite/g++.dg/tree-ssa/pr81408.C
index f94544b9e2d..60e6e5277d7 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr81408.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr81408.C
@@ -1,5 +1,9 @@
/* { dg-do compile } */
/* { dg-options "-O2 -std=gnu++11 -fopt-info-loop-missed -Wunsafe-loop-optimizations" } */
+struct p
+{
+ char *ay;
+};
namespace a {
void b () __attribute__ ((__noreturn__));
@@ -19,7 +23,7 @@ template <typename j, typename> class k
j l;
public:
- typename d<j>::f operator* () {}
+ typename d<j>::f operator* () { return p(); }
void operator++ () { ++l; }
j
aa ()
@@ -33,7 +37,6 @@ operator!= (k<m, ab> o, k<n, ab> p2)
{
return o.aa () != p2.aa ();
}
-struct p;
namespace a {
struct F
{
@@ -75,13 +78,10 @@ at
av (au o)
{
o.aq ('\n');
+ return at();
}
u ax;
}
-struct p
-{
- char *ay;
-};
a::H t;
void
ShowHelpListCommands ()
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pred-1.C b/gcc/testsuite/g++.dg/tree-ssa/pred-1.C
index 01b065ee966..19a066ab48d 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pred-1.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pred-1.C
@@ -2,6 +2,8 @@
/* { dg-options "-O2 -fdump-tree-profile_estimate" } */
int a[100];
void foo(int);
+
+int
main()
{
int i;
@@ -11,5 +13,7 @@ main()
continue;
foo(i);
}
+
+ return 0;
}
// { dg-final { scan-tree-dump "continue heuristics" "profile_estimate" } }
diff --git a/gcc/testsuite/g++.dg/ubsan/pr65019.C b/gcc/testsuite/g++.dg/ubsan/pr65019.C
index a7f21a7d241..380c10b65d1 100644
--- a/gcc/testsuite/g++.dg/ubsan/pr65019.C
+++ b/gcc/testsuite/g++.dg/ubsan/pr65019.C
@@ -17,6 +17,8 @@ C::foo (const A &x, int y)
C *d = new C (x, y);
if (d->c == nullptr)
delete d;
+
+ return 0;
}
C::~C ()
diff --git a/gcc/testsuite/g++.dg/ubsan/pr65583.C b/gcc/testsuite/g++.dg/ubsan/pr65583.C
index 4e1149e9cb6..02acb361a22 100644
--- a/gcc/testsuite/g++.dg/ubsan/pr65583.C
+++ b/gcc/testsuite/g++.dg/ubsan/pr65583.C
@@ -1,6 +1,7 @@
// PR sanitizer/65583
// { dg-do compile }
// { dg-options "-std=c++11 -fsanitize=undefined" }
+// { dg-additional-options "-Wno-return-type" }
namespace std
{
diff --git a/gcc/testsuite/g++.dg/ubsan/vptr-12.C b/gcc/testsuite/g++.dg/ubsan/vptr-12.C
new file mode 100644
index 00000000000..f23bbc3fd10
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ubsan/vptr-12.C
@@ -0,0 +1,22 @@
+// { dg-do run }
+// { dg-shouldfail "ubsan" }
+// { dg-options "-fsanitize=vptr -fno-sanitize-recover=vptr" }
+
+struct MyClass
+{
+ virtual ~MyClass () {}
+ virtual void Doit () {}
+};
+
+int
+main ()
+{
+ MyClass *c = new MyClass;
+ c->~MyClass ();
+ c->Doit ();
+
+ return 0;
+}
+
+// { dg-output "\[^\n\r]*vptr-12.C:16:\[0-9]*: runtime error: member call on address 0x\[0-9a-fA-F]* which does not point to an object of type 'MyClass'(\n|\r\n|\r)" }
+// { dg-output "0x\[0-9a-fA-F]*: note: object has invalid vptr" }
diff --git a/gcc/testsuite/g++.dg/vect/pr60836.cc b/gcc/testsuite/g++.dg/vect/pr60836.cc
index 425106dd44d..b2d66ec5b15 100644
--- a/gcc/testsuite/g++.dg/vect/pr60836.cc
+++ b/gcc/testsuite/g++.dg/vect/pr60836.cc
@@ -27,6 +27,8 @@ norm_ (const int &)
b = e (b, d);
b = e (b, c);
}
+
+ return 0.0;
}
void
diff --git a/gcc/testsuite/g++.dg/vect/pr68145.cc b/gcc/testsuite/g++.dg/vect/pr68145.cc
index 51e663ae636..8a1e10ee783 100644
--- a/gcc/testsuite/g++.dg/vect/pr68145.cc
+++ b/gcc/testsuite/g++.dg/vect/pr68145.cc
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-additional-options "-Wno-return-type" } */
struct A {
bool operator()(int p1, int p2) { return p1 && p2; }
diff --git a/gcc/testsuite/g++.dg/vect/pr70729-nest.cc b/gcc/testsuite/g++.dg/vect/pr70729-nest.cc
index 96171e5ec94..931895b0a9c 100644
--- a/gcc/testsuite/g++.dg/vect/pr70729-nest.cc
+++ b/gcc/testsuite/g++.dg/vect/pr70729-nest.cc
@@ -2,7 +2,7 @@
// { dg-additional-options "-ffast-math -fopenmp-simd" }
// { dg-additional-options "-msse2" { target x86_64-*-* i?86-*-* } }
-inline void* my_alloc (__SIZE_TYPE__ bytes) {void *ptr; __builtin_posix_memalign (&ptr, bytes, 128);}
+inline void* my_alloc (__SIZE_TYPE__ bytes) {void *ptr; __builtin_posix_memalign (&ptr, bytes, 128); return 0; }
inline void my_free (void* memory) {__builtin_free (memory);}
float W[100];
diff --git a/gcc/testsuite/g++.dg/vect/pr70729.cc b/gcc/testsuite/g++.dg/vect/pr70729.cc
index ff868f7a41b..eac4b4bd75c 100644
--- a/gcc/testsuite/g++.dg/vect/pr70729.cc
+++ b/gcc/testsuite/g++.dg/vect/pr70729.cc
@@ -2,7 +2,7 @@
// { dg-additional-options "-ffast-math -fopenmp-simd" }
// { dg-additional-options "-msse2" { target x86_64-*-* i?86-*-* } }
-inline void* my_alloc (__SIZE_TYPE__ bytes) {void *ptr; __builtin_posix_memalign (&ptr, bytes, 128);}
+inline void* my_alloc (__SIZE_TYPE__ bytes) {void *ptr; __builtin_posix_memalign (&ptr, bytes, 128); return 0; }
inline void my_free (void* memory) {__builtin_free (memory);}
template <typename T>
diff --git a/gcc/testsuite/g++.dg/warn/Waddress-3.C b/gcc/testsuite/g++.dg/warn/Waddress-3.C
index 13d7cd2c001..a97c7814ce5 100644
--- a/gcc/testsuite/g++.dg/warn/Waddress-3.C
+++ b/gcc/testsuite/g++.dg/warn/Waddress-3.C
@@ -1,6 +1,6 @@
// PR c++/65168
// { dg-do compile { target c++11 } }
-// { dg-options -Waddress }
+// { dg-options "-Waddress -Wno-return-type" }
// We shouldn't warn in unevaluated context about the address of a reference
// always being true.
diff --git a/gcc/testsuite/g++.dg/warn/Wconversion-null-2.C b/gcc/testsuite/g++.dg/warn/Wconversion-null-2.C
index a71551fdf90..98f5c405165 100644
--- a/gcc/testsuite/g++.dg/warn/Wconversion-null-2.C
+++ b/gcc/testsuite/g++.dg/warn/Wconversion-null-2.C
@@ -48,7 +48,7 @@ void warn_for_NULL()
NULL && NULL; // No warning: converting NULL to bool is OK
}
-int warn_for___null()
+void warn_for___null()
{
int i = __null; // { dg-warning "" } converting __null to non-pointer type
float z = __null; // { dg-warning "" } converting __null to non-pointer type
diff --git a/gcc/testsuite/g++.dg/warn/Wnull-conversion-2.C b/gcc/testsuite/g++.dg/warn/Wnull-conversion-2.C
index 92a87d1e76c..d5501fface5 100644
--- a/gcc/testsuite/g++.dg/warn/Wnull-conversion-2.C
+++ b/gcc/testsuite/g++.dg/warn/Wnull-conversion-2.C
@@ -34,6 +34,7 @@ void func1(long int a) {
int x = 1;
+int
main()
{
int *p = &x;
@@ -42,4 +43,6 @@ main()
Foo::Compare<long int, int>(NULL, p); // { dg-warning "passing NULL to" }
Foo::Compare(NULL, p);
func1(NULL); // { dg-warning "passing NULL to" }
+
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-10.C b/gcc/testsuite/g++.dg/warn/Wparentheses-10.C
index c30df090f5e..557db091ad0 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-10.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-10.C
@@ -5,7 +5,7 @@
int foo (int);
-int
+void
bar (int a, int b, int c)
{
foo (a & b ^ c); // { dg-warning "parentheses" "correct warning" }
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-11.C b/gcc/testsuite/g++.dg/warn/Wparentheses-11.C
index 912c3b7ae76..6f0ecbe8bd8 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-11.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-11.C
@@ -5,7 +5,7 @@
int foo (int);
-int
+void
bar (int a, int b, int c)
{
foo (a + b & c); // { dg-warning "parentheses" "correct warning" }
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-12.C b/gcc/testsuite/g++.dg/warn/Wparentheses-12.C
index b04529827d5..ca6407aea74 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-12.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-12.C
@@ -7,7 +7,7 @@ int foo (int);
int a, b, c;
-int
+void
bar (void)
{
if (a)
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-25.C b/gcc/testsuite/g++.dg/warn/Wparentheses-25.C
index d9951a4f46b..d3afa4ce784 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-25.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-25.C
@@ -5,7 +5,7 @@
// C++ version of Wparentheses-11.c
int foo (int);
-int
+void
bar (int a, int b, int c)
{
foo (!a & b); /* { dg-warning "parentheses" "correct warning" } */
@@ -156,7 +156,7 @@ bar (int a, int b, int c)
}
-int
+void
baz (int a, int b, int c)
{
foo (!a & (b << c));/* { dg-warning "parentheses" "correct warning" } */
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-6.C b/gcc/testsuite/g++.dg/warn/Wparentheses-6.C
index 9963d822e05..d985d7e45d6 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-6.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-6.C
@@ -5,7 +5,7 @@
int foo (int);
-int
+void
bar (int a, int b, int c)
{
foo (a <= b <= c); // { dg-warning "comparison" "correct warning" }
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-7.C b/gcc/testsuite/g++.dg/warn/Wparentheses-7.C
index 7d549c38c31..69d555b3dfb 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-7.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-7.C
@@ -5,7 +5,7 @@
int foo (int);
-int
+void
bar (int a, int b, int c)
{
foo (a + b << c); // { dg-warning "parentheses" "correct warning" }
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-8.C b/gcc/testsuite/g++.dg/warn/Wparentheses-8.C
index ddb5e64b4ad..2089dce968c 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-8.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-8.C
@@ -5,7 +5,7 @@
int foo (int);
-int
+void
bar (int a, int b, int c)
{
foo (a && b || c); // { dg-warning "parentheses" "correct warning" }
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-9.C b/gcc/testsuite/g++.dg/warn/Wparentheses-9.C
index bad6fb1c570..7c8f01d327b 100644
--- a/gcc/testsuite/g++.dg/warn/Wparentheses-9.C
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-9.C
@@ -5,7 +5,7 @@
int foo (int);
-int
+void
bar (int a, int b, int c)
{
foo (a & b | c); // { dg-warning "parentheses" "correct warning" }
diff --git a/gcc/testsuite/g++.dg/warn/Wshadow-5.C b/gcc/testsuite/g++.dg/warn/Wshadow-5.C
index 7a90ec9c997..feb2bffcdc0 100644
--- a/gcc/testsuite/g++.dg/warn/Wshadow-5.C
+++ b/gcc/testsuite/g++.dg/warn/Wshadow-5.C
@@ -1,7 +1,7 @@
// Wshadows was giving warnings for nested function parameters in nested class
// or structure that we didn't want.
// { dg-do compile }
-// { dg-options "-Wshadow" }
+// { dg-options "-Wshadow -Wno-return-type" }
// PR c++/41825
int f (int n)
diff --git a/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C b/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
index 91b5c1b46d8..0cee96a8a98 100644
--- a/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
+++ b/gcc/testsuite/g++.dg/warn/Wtype-limits-Wextra.C
@@ -69,7 +69,7 @@ void f(Int x) {
assert(0 <= x and x <= D);
}
-int ff(void) {
+void ff(void) {
f<unsigned char, 2>(5);
f<signed char, 2>(5);
}
@@ -78,7 +78,7 @@ template <typename Int, Int D>
void g(void) {
assert(0 <= D);
}
-int gg(void) {
+void gg(void) {
g<unsigned char, 2>();
}
diff --git a/gcc/testsuite/g++.dg/warn/Wtype-limits-no.C b/gcc/testsuite/g++.dg/warn/Wtype-limits-no.C
index 5040e2657ba..ad248d71808 100644
--- a/gcc/testsuite/g++.dg/warn/Wtype-limits-no.C
+++ b/gcc/testsuite/g++.dg/warn/Wtype-limits-no.C
@@ -69,7 +69,7 @@ void f(Int x) {
assert(0 <= x and x <= D); // { dg-bogus "comparison is always true due to limited range of data type" }
}
-int ff(void) {
+void ff(void) {
f<unsigned char, 2>(5);
f<signed char, 2>(5);
}
@@ -78,7 +78,7 @@ template <typename Int, Int D>
void g(void) {
assert(0 <= D);
}
-int gg(void) {
+void gg(void) {
g<unsigned char, 2>();
}
diff --git a/gcc/testsuite/g++.dg/warn/Wtype-limits.C b/gcc/testsuite/g++.dg/warn/Wtype-limits.C
index c345eff0b44..7919a42c834 100644
--- a/gcc/testsuite/g++.dg/warn/Wtype-limits.C
+++ b/gcc/testsuite/g++.dg/warn/Wtype-limits.C
@@ -69,7 +69,7 @@ void f(Int x) {
assert(0 <= x and x <= D);
}
-int ff(void) {
+void ff(void) {
f<unsigned char, 2>(5);
f<signed char, 2>(5);
}
@@ -78,7 +78,7 @@ template <typename Int, Int D>
void g(void) {
assert(0 <= D);
}
-int gg(void) {
+void gg(void) {
g<unsigned char, 2>();
}
diff --git a/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C b/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C
index 4fc8640ed7b..73f7ec79ce1 100644
--- a/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C
+++ b/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C
@@ -31,7 +31,7 @@ test0_tmpl(void)
foo(2);
}
-int
+void
test0(void)
{
test0_tmpl<int>();
diff --git a/gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C b/gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C
index 185d2b5c4ee..4269beda28a 100644
--- a/gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C
+++ b/gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C
@@ -1,5 +1,5 @@
// PR c++/52718
-// { dg-options "-Wzero-as-null-pointer-constant" }
+// { dg-options "-Wzero-as-null-pointer-constant -Wno-return-type" }
struct foo
{
diff --git a/gcc/testsuite/g++.dg/warn/pmf1.C b/gcc/testsuite/g++.dg/warn/pmf1.C
index 013c21b6db9..a63a00c33df 100644
--- a/gcc/testsuite/g++.dg/warn/pmf1.C
+++ b/gcc/testsuite/g++.dg/warn/pmf1.C
@@ -15,4 +15,5 @@ int
a::f() const
{
int (a::* b)() const = &f; // { dg-error "&a::f" }
+ return 0;
}
diff --git a/gcc/testsuite/g++.dg/warn/string1.C b/gcc/testsuite/g++.dg/warn/string1.C
index 2670f63d931..8f24a78f709 100644
--- a/gcc/testsuite/g++.dg/warn/string1.C
+++ b/gcc/testsuite/g++.dg/warn/string1.C
@@ -15,4 +15,6 @@ int test() {
//
std::string s = "";
s += 'x' + "y"; // { dg-warning "bounds of constant string" }
+
+ return 0;
}