diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/cpp0x')
52 files changed, 81 insertions, 42 deletions
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/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-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/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/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> { |