diff options
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc | 63 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc (renamed from libstdc++-v3/testsuite/20_util/tuple/cons/constexpr.cc) | 47 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/array/at.cc (renamed from libstdc++-v3/testsuite/23_containers/array/at_neg.cc) | 9 |
4 files changed, 100 insertions, 21 deletions
diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc new file mode 100644 index 00000000000..14577b0bc06 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-2.cc @@ -0,0 +1,63 @@ +// { dg-do compile } +// { dg-options "-std=gnu++0x" } + +// Copyright (C) 2010, 2011 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +#include <memory> +#include <testsuite_common_types.h> + +#include <iostream> + +// 2 element tuple +int main() +{ + typedef std::tuple<int, int> tuple_type; + + // 01: default ctor + __gnu_test::constexpr_default_constructible test1; + test1.operator()<tuple_type>(); + + // 02: default copy ctor + __gnu_test::constexpr_single_value_constructible test2; + test2.operator()<tuple_type, tuple_type>(); + + // 03: element move ctor, single element + const int i1(415); + constexpr tuple_type t2 { 44, std::move(i1) }; + + // 04: element move ctor, two element + const int i2(510); + const int i3(408); + constexpr tuple_type t4 { std::move(i2), std::move(i3) }; + + // 05: value-type conversion constructor + const int i4(650); + const int i5(310); + constexpr tuple_type t8(i4, i5); + + // 06: pair conversion ctor + test2.operator()<tuple_type, std::pair<int, int>>(); + test2.operator()<std::tuple<short, short>, std::pair<int, int>>(); + test2.operator()<tuple_type, std::pair<short, short>>(); + + // 07: different-tuple-type conversion constructor + // test2.operator()<tuple_type, std::tuple<short, short>>(); + // test2.operator()<std::tuple<short, short>, tuple_type>(); + + return 0; +} diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc index b5eba73fdac..7f8b2f93ecd 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr-3.cc @@ -1,7 +1,7 @@ // { dg-do compile } // { dg-options "-std=gnu++0x" } -// Copyright (C) 2010 Free Software Foundation, Inc. +// Copyright (C) 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -21,27 +21,40 @@ #include <memory> #include <testsuite_common_types.h> +#include <iostream> + +// 3 element tuple int main() { + typedef std::tuple<int, int, int> tuple_type; + + // 01: default ctor __gnu_test::constexpr_default_constructible test1; - test1.operator()<std::tuple<int, int>>(); + test1.operator()<tuple_type>(); + // 02: default copy ctor __gnu_test::constexpr_single_value_constructible test2; - test2.operator()<std::tuple<int, int>, std::tuple<int, int>>(); - // test2.operator()<std::tuple<int, int>, std::pair<short, short>>(); - // test2.operator()<std::tuple<int>, std::tuple<short>>(); - // test2.operator()<std::tuple<int, int>, std::tuple<short, short>>(); - - // test 3 - const int i1(129); - const int i2(6); - constexpr std::tuple<int, int> p3(i1, i2); - - // test 4 - const int i3(415); - const int i4(550); - const int i5(6414); - constexpr std::tuple<int, int, int, int, int> p4(i1, i2, i3, i4, i5); + test2.operator()<tuple_type, tuple_type>(); + + // 03: element move ctor, single element + const int i1(415); + constexpr tuple_type t2 { 44, 55, std::move(i1) }; + + // 04: element move ctor, three element + const int i2(510); + const int i3(408); + const int i4(650); + constexpr tuple_type t4 { std::move(i2), std::move(i3), std::move(i4) }; + + // 05: value-type conversion constructor + const int i5(310); + const int i6(310); + const int i7(310); + constexpr tuple_type t8(i5, i6, i7); + + // 06: different-tuple-type conversion constructor + // test2.operator()<tuple_type, std::tuple<short, short, short>>(); + // test2.operator()<std::tuple<short, short, short>, tuple_type>(); return 0; } diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc index 6eecc2d2aeb..b192c656f79 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc @@ -51,7 +51,7 @@ main() // { dg-warning "note" "" { target *-*-* } 485 } // { dg-warning "note" "" { target *-*-* } 479 } // { dg-warning "note" "" { target *-*-* } 468 } -// { dg-warning "note" "" { target *-*-* } 813 } +// { dg-warning "note" "" { target *-*-* } 829 } // { dg-warning "note" "" { target *-*-* } 1055 } // { dg-warning "note" "" { target *-*-* } 1049 } // { dg-warning "note" "" { target *-*-* } 341 } diff --git a/libstdc++-v3/testsuite/23_containers/array/at_neg.cc b/libstdc++-v3/testsuite/23_containers/array/at.cc index aefc39b75ec..449395206cc 100644 --- a/libstdc++-v3/testsuite/23_containers/array/at_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/array/at.cc @@ -1,5 +1,5 @@ // { dg-do run { xfail *-*-* } } -// { dg-options "-std=gnu++0x -fno-exceptions" } +// { dg-options "-std=gnu++0x" } // Copyright (C) 2011 Free Software Foundation, Inc. // @@ -22,7 +22,10 @@ int main() { - std::array<int, 3> a{{1, 2, 3}}; - auto i = a.at(4); // expected behavior is to either throw or abort + // Expected behavior is to either throw and have the uncaught + // exception end up in a terminate handler which eventually exits, + // or abort. (Depending on -fno-exceptions.) + constexpr std::array<int, 3> a{{1, 2, 3}}; + auto i = a.at(4); return 0; } |