diff --git a/libstdc++-v3/include/bits/stl_algobase.h b/libstdc++-v3/include/bits/stl_algobase.h index d0c49628d7f..d45eec4339b 100644 --- a/libstdc++-v3/include/bits/stl_algobase.h +++ b/libstdc++-v3/include/bits/stl_algobase.h @@ -1551,7 +1551,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO __glibcxx_function_requires(_EqualOpConcept< typename iterator_traits<_II1>::value_type, typename iterator_traits<_II2>::value_type>) - __glibcxx_requires_can_increment_range(__first1, __last1, __first2); + __glibcxx_requires_can_increment_range_runtime(__first1, __last1, __first2); return std::__equal_aux(__first1, __last1, __first2); } diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h index 3773d600b8f..37c348adfd3 100644 --- a/libstdc++-v3/include/bits/stl_iterator.h +++ b/libstdc++-v3/include/bits/stl_iterator.h @@ -2465,7 +2465,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#ifdef _GLIBCXX_DEBUG +#ifdef _GLIBCXX_ASSERTIONS # include #endif diff --git a/libstdc++-v3/include/debug/debug.h b/libstdc++-v3/include/debug/debug.h index 116f2f023e2..d30ef0f25b2 100644 --- a/libstdc++-v3/include/debug/debug.h +++ b/libstdc++-v3/include/debug/debug.h @@ -61,12 +61,13 @@ namespace __gnu_debug struct _Safe_iterator; } -#ifndef _GLIBCXX_DEBUG +#ifndef _GLIBCXX_ASSERTIONS # define __glibcxx_requires_cond(_Cond,_Msg) # define __glibcxx_requires_valid_range(_First,_Last) # define __glibcxx_requires_can_increment(_First,_Size) # define __glibcxx_requires_can_increment_range(_First1,_Last1,_First2) +# define __glibcxx_requires_can_increment_range_runtime(_First1,_Last1,_First2) # define __glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) # define __glibcxx_requires_sorted(_First,_Last) # define __glibcxx_requires_sorted_pred(_First,_Last,_Pred) @@ -91,11 +92,19 @@ namespace __gnu_debug # define __glibcxx_requires_cond(_Cond,_Msg) _GLIBCXX_DEBUG_VERIFY(_Cond,_Msg) # define __glibcxx_requires_valid_range(_First,_Last) \ - __glibcxx_check_valid_range(_First,_Last) + __glibcxx_check_valid_range(_First,_Last,false) # define __glibcxx_requires_can_increment(_First,_Size) \ __glibcxx_check_can_increment(_First,_Size) -# define __glibcxx_requires_can_increment_range(_First1,_Last1,_First2) \ - __glibcxx_check_can_increment_range(_First1,_Last1,_First2) +# define __glibcxx_requires_irreflexive(_First,_Last) \ + __glibcxx_check_irreflexive(_First,_Last) +# define __glibcxx_requires_irreflexive_pred(_First,_Last,_Pred) \ + __glibcxx_check_irreflexive_pred(_First,_Last,_Pred) + +#ifdef _GLIBCXX_DEBUG +# define __glibcxx_requires_can_increment_range(_First1,_Last1,_First2) \ + __glibcxx_check_can_increment_range(_First1,_Last1,_First2,false) +# define __glibcxx_requires_can_increment_range_runtime(_First1,_Last1,_First2) \ + __glibcxx_check_can_increment_range(_First1,_Last1,_First2,true) # define __glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) \ __glibcxx_check_can_decrement_range(_First1,_Last1,_First2) # define __glibcxx_requires_sorted(_First,_Last) \ @@ -121,16 +130,46 @@ namespace __gnu_debug # define __glibcxx_requires_string(_String) __glibcxx_check_string(_String) # define __glibcxx_requires_string_len(_String,_Len) \ __glibcxx_check_string_len(_String,_Len) -# define __glibcxx_requires_irreflexive(_First,_Last) \ - __glibcxx_check_irreflexive(_First,_Last) # define __glibcxx_requires_irreflexive2(_First,_Last) \ __glibcxx_check_irreflexive2(_First,_Last) -# define __glibcxx_requires_irreflexive_pred(_First,_Last,_Pred) \ - __glibcxx_check_irreflexive_pred(_First,_Last,_Pred) # define __glibcxx_requires_irreflexive_pred2(_First,_Last,_Pred) \ __glibcxx_check_irreflexive_pred2(_First,_Last,_Pred) # include +#else /* _GLIBCXX_ASSERTIONS */ +# define __glibcxx_requires_can_increment_range(_First1,_Last1,_First2) \ + __glibcxx_check_valid_range(_First1,_Last1,false) +# define __glibcxx_requires_can_increment_range_runtime(_First1,_Last1,_First2) \ + __glibcxx_check_valid_range(_First1,_Last1,true) +# define __glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) \ + __glibcxx_check_valid_range(_First1,_Last1,false) +# define __glibcxx_requires_sorted(_First,_Last) \ + __glibcxx_check_valid_range(_First,_Last,false); \ + __glibcxx_check_irreflexive(_First,_Last) +# define __glibcxx_requires_sorted_pred(_First,_Last,_Pred) \ + __glibcxx_check_valid_range(_First,_Last,false); \ + __glibcxx_check_irreflexive_pred(_First,_Last,_Pred) +# define __glibcxx_requires_sorted_set(_First1,_Last1,_First2) \ + __glibcxx_check_valid_range(_First1,_Last1,false) +# define __glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred) \ + __glibcxx_check_valid_range(_First1,_Last1,false) +# define __glibcxx_requires_partitioned_lower(_First,_Last,_Value) \ + __glibcxx_check_valid_range(_First,_Last,false) +# define __glibcxx_requires_partitioned_upper(_First,_Last,_Value) \ + __glibcxx_check_valid_range(_First,_Last,false) +# define __glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred) \ + __glibcxx_check_valid_range(_First,_Last,false) +# define __glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred) \ + __glibcxx_check_valid_range(_First,_Last,false) +# define __glibcxx_requires_heap(_First,_Last) +# define __glibcxx_requires_heap_pred(_First,_Last,_Pred) +# define __glibcxx_requires_string(_String) +# define __glibcxx_requires_string_len(_String,_Len) +# define __glibcxx_requires_irreflexive2(_First,_Last) +# define __glibcxx_requires_irreflexive_pred2(_First,_Last,_Pred) + +# include +#endif /* _GLIBCXX_ASSERTIONS */ #endif diff --git a/libstdc++-v3/include/debug/helper_functions.h b/libstdc++-v3/include/debug/helper_functions.h index c0144ced979..fd7c42ba081 100644 --- a/libstdc++-v3/include/debug/helper_functions.h +++ b/libstdc++-v3/include/debug/helper_functions.h @@ -30,8 +30,8 @@ #define _GLIBCXX_DEBUG_HELPER_FUNCTIONS_H 1 #include // for __addressof -#include // for iterator_traits, - // categories and _Iter_base +#include // for iterator_traits and + // categories #include // for __is_integer #include // for pair @@ -237,8 +237,13 @@ namespace __gnu_debug _GLIBCXX20_CONSTEXPR inline bool __valid_range(_InputIterator __first, _InputIterator __last, - typename _Distance_traits<_InputIterator>::__type& __dist) + typename _Distance_traits<_InputIterator>::__type& __dist, + bool __skip_if_constexpr __attribute__ ((__unused__))) { +#ifdef __cpp_lib_is_constant_evaluated + if (std::is_constant_evaluated() && __skip_if_constexpr) + return true; +#endif typedef typename std::__is_integer<_InputIterator>::__type _Integral; return __valid_range_aux(__first, __last, __dist, _Integral()); } @@ -247,21 +252,28 @@ namespace __gnu_debug bool __valid_range(const _Safe_iterator<_Iterator, _Sequence, _Category>&, const _Safe_iterator<_Iterator, _Sequence, _Category>&, - typename _Distance_traits<_Iterator>::__type&); + typename _Distance_traits<_Iterator>::__type&, + bool __skip_if_constexpr); #if __cplusplus >= 201103L template bool __valid_range(const _Safe_local_iterator<_Iterator, _Sequence>&, const _Safe_local_iterator<_Iterator, _Sequence>&, - typename _Distance_traits<_Iterator>::__type&); + typename _Distance_traits<_Iterator>::__type&, + bool __skip_if_constexpr); #endif template _GLIBCXX14_CONSTEXPR inline bool - __valid_range(_InputIterator __first, _InputIterator __last) + __valid_range(_InputIterator __first, _InputIterator __last, + bool __skip_if_constexpr __attribute__ ((__unused__))) { +#ifdef __cpp_lib_is_constant_evaluated + if (std::is_constant_evaluated() && __skip_if_constexpr) + return true; +#endif typedef typename std::__is_integer<_InputIterator>::__type _Integral; return __valid_range_aux(__first, __last, _Integral()); } @@ -269,13 +281,15 @@ namespace __gnu_debug template bool __valid_range(const _Safe_iterator<_Iterator, _Sequence, _Category>&, - const _Safe_iterator<_Iterator, _Sequence, _Category>&); + const _Safe_iterator<_Iterator, _Sequence, _Category>&, + bool __skip_if_constexpr); #if __cplusplus >= 201103L template bool __valid_range(const _Safe_local_iterator<_Iterator, _Sequence>&, - const _Safe_local_iterator<_Iterator, _Sequence>&); + const _Safe_local_iterator<_Iterator, _Sequence>&, + bool __skip_if_constexpr); #endif // Fallback method, always ok. diff --git a/libstdc++-v3/include/debug/macros.h b/libstdc++-v3/include/debug/macros.h index 9e1288cf4d9..18abd22b717 100644 --- a/libstdc++-v3/include/debug/macros.h +++ b/libstdc++-v3/include/debug/macros.h @@ -52,13 +52,17 @@ #define _GLIBCXX_DEBUG_VERIFY_AT(_Cond,_ErrMsg,_File,_Line) \ _GLIBCXX_DEBUG_VERIFY_AT_F(_Cond,_ErrMsg,_File,_Line,__PRETTY_FUNCTION__) -#define _GLIBCXX_DEBUG_VERIFY(_Cond,_ErrMsg) \ +#ifdef _GLIBCXX_DEBUG +# define _GLIBCXX_DEBUG_VERIFY(_Cond,_ErrMsg) \ _GLIBCXX_DEBUG_VERIFY_AT_F(_Cond, _ErrMsg, __FILE__, __LINE__, \ __PRETTY_FUNCTION__) +#else /* _GLIBCXX_ASSERTIONS */ +# define _GLIBCXX_DEBUG_VERIFY(_Cond,_ErrMsg) __glibcxx_assert(_Cond) +#endif // Verify that [_First, _Last) forms a valid iterator range. -#define __glibcxx_check_valid_range(_First,_Last) \ -_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__valid_range(_First, _Last), \ +#define __glibcxx_check_valid_range(_First,_Last,_SkipIfConstexpr) \ +_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__valid_range(_First, _Last,_SkipIfConstexpr), \ _M_message(__gnu_debug::__msg_valid_range) \ ._M_iterator(_First, #_First) \ ._M_iterator(_Last, #_Last)) @@ -100,12 +104,12 @@ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__can_advance(_First, _Size), \ ._M_iterator(_First, #_First) \ ._M_integer(_Way * _Dist.first, #_Dist)) -#define __glibcxx_check_can_increment_range(_First1,_Last1,_First2) \ +#define __glibcxx_check_can_increment_range(_First1,_Last1,_First2,_SkipIfConstexpr) \ do \ { \ typename __gnu_debug::_Distance_traits<__decltype(_First1)>::__type __dist;\ _GLIBCXX_DEBUG_VERIFY_AT_F( \ - __gnu_debug::__valid_range(_First1, _Last1, __dist),\ + __gnu_debug::__valid_range(_First1, _Last1, __dist, _SkipIfConstexpr), \ _M_message(__gnu_debug::__msg_valid_range) \ ._M_iterator(_First1, #_First1) \ ._M_iterator(_Last1, #_Last1), \ @@ -238,7 +242,7 @@ _GLIBCXX_DEBUG_VERIFY(_Position._M_attached_to(this), \ * valid iterator range within this sequence. */ #define __glibcxx_check_erase_range(_First,_Last) \ -__glibcxx_check_valid_range(_First,_Last); \ +__glibcxx_check_valid_range(_First,_Last,false); \ _GLIBCXX_DEBUG_VERIFY(_First._M_attached_to(this), \ _M_message(__gnu_debug::__msg_erase_different) \ ._M_sequence(*this, "this") \ @@ -337,7 +341,7 @@ _GLIBCXX_DEBUG_VERIFY(! this->empty(), \ // Verify that the iterator range [_First, _Last) is sorted #define __glibcxx_check_sorted(_First,_Last) \ -__glibcxx_check_valid_range(_First,_Last); \ +__glibcxx_check_valid_range(_First,_Last,false); \ __glibcxx_check_irreflexive(_First,_Last); \ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_sorted( \ __gnu_debug::__base(_First), \ @@ -349,7 +353,7 @@ __glibcxx_check_irreflexive(_First,_Last); \ /** Verify that the iterator range [_First, _Last) is sorted by the predicate _Pred. */ #define __glibcxx_check_sorted_pred(_First,_Last,_Pred) \ -__glibcxx_check_valid_range(_First,_Last); \ +__glibcxx_check_valid_range(_First,_Last,false); \ __glibcxx_check_irreflexive_pred(_First,_Last,_Pred); \ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_sorted( \ __gnu_debug::__base(_First), \ @@ -361,7 +365,7 @@ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_sorted( \ // Special variant for std::merge, std::includes, std::set_* #define __glibcxx_check_sorted_set(_First1,_Last1,_First2) \ -__glibcxx_check_valid_range(_First1,_Last1); \ +__glibcxx_check_valid_range(_First1,_Last1,false); \ _GLIBCXX_DEBUG_VERIFY( \ __gnu_debug::__check_sorted_set(__gnu_debug::__base(_First1), \ __gnu_debug::__base(_Last1), _First2),\ @@ -371,7 +375,7 @@ _GLIBCXX_DEBUG_VERIFY( \ // Likewise with a _Pred. #define __glibcxx_check_sorted_set_pred(_First1,_Last1,_First2,_Pred) \ -__glibcxx_check_valid_range(_First1,_Last1); \ +__glibcxx_check_valid_range(_First1,_Last1,false); \ _GLIBCXX_DEBUG_VERIFY( \ __gnu_debug::__check_sorted_set(__gnu_debug::__base(_First1), \ __gnu_debug::__base(_Last1), \ @@ -384,7 +388,7 @@ _GLIBCXX_DEBUG_VERIFY( \ /** Verify that the iterator range [_First, _Last) is partitioned w.r.t. the value _Value. */ #define __glibcxx_check_partitioned_lower(_First,_Last,_Value) \ -__glibcxx_check_valid_range(_First,_Last); \ +__glibcxx_check_valid_range(_First,_Last,false); \ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \ __gnu_debug::__base(_First), \ __gnu_debug::__base(_Last), _Value), \ @@ -394,7 +398,7 @@ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \ ._M_string(#_Value)) #define __glibcxx_check_partitioned_upper(_First,_Last,_Value) \ -__glibcxx_check_valid_range(_First,_Last); \ +__glibcxx_check_valid_range(_First,_Last,false); \ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper( \ __gnu_debug::__base(_First), \ __gnu_debug::__base(_Last), _Value), \ @@ -406,7 +410,7 @@ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper( \ /** Verify that the iterator range [_First, _Last) is partitioned w.r.t. the value _Value and predicate _Pred. */ #define __glibcxx_check_partitioned_lower_pred(_First,_Last,_Value,_Pred) \ -__glibcxx_check_valid_range(_First,_Last); \ +__glibcxx_check_valid_range(_First,_Last,false); \ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \ __gnu_debug::__base(_First), \ __gnu_debug::__base(_Last), _Value, _Pred), \ @@ -419,7 +423,7 @@ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \ /** Verify that the iterator range [_First, _Last) is partitioned w.r.t. the value _Value and predicate _Pred. */ #define __glibcxx_check_partitioned_upper_pred(_First,_Last,_Value,_Pred) \ -__glibcxx_check_valid_range(_First,_Last); \ +__glibcxx_check_valid_range(_First,_Last,false); \ _GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper( \ __gnu_debug::__base(_First), \ __gnu_debug::__base(_Last), _Value, _Pred), \ diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc index 93085aa1471..ecf87a58797 100644 --- a/libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc +++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/1.cc @@ -48,7 +48,7 @@ void test01() ss.str("-1 -2 -3"); VERIFY( iter == end ); -#ifndef _GLIBCXX_DEBUG +#ifndef _GLIBCXX_ASSERTIONS // This is undefined, so aborts under debug mode. // Without debug mode, it should not extract anything from the stream, // and the iterator should remain at end-of-stream. diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/constexpr_neg.cc b/libstdc++-v3/testsuite/25_algorithms/copy/constexpr_neg.cc new file mode 100644 index 00000000000..8840f31a1d9 --- /dev/null +++ b/libstdc++-v3/testsuite/25_algorithms/copy/constexpr_neg.cc @@ -0,0 +1,52 @@ +// Copyright (C) 2021 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 +// . + +// { dg-options "-std=gnu++2a -D_GLIBCXX_ASSERTIONS" } +// { dg-do compile { target c++2a xfail *-*-* } } + +#include +#include + +constexpr bool +test1() +{ + constexpr std::array ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}; + std::array ma0{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + + const auto out6 = std::copy(ca0.begin() + 8, ca0.begin(), ma0.begin() + 2); + + return out6 == ma0.begin() + 10; +} + +static_assert(test1()); // { dg-error "non-constant condition" } + +constexpr bool +test2() +{ + constexpr std::array ca0{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}; + std::array ma0{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + + const auto out6 = std::copy(ca0.begin(), ca0.begin() + 8, ma0.begin() + 10); + + return out6 == ma0.begin() + 18; +} + +static_assert(test2()); // { dg-error "is outside the bounds" } + +// { dg-prune-output "in 'constexpr' expansion" } +// { dg-prune-output "builtin_unreachable" } +// { dg-prune-output "non-constant condition" } diff --git a/libstdc++-v3/testsuite/25_algorithms/heap/1.cc b/libstdc++-v3/testsuite/25_algorithms/heap/1.cc index 69793de429f..9be4337729e 100644 --- a/libstdc++-v3/testsuite/25_algorithms/heap/1.cc +++ b/libstdc++-v3/testsuite/25_algorithms/heap/1.cc @@ -83,7 +83,7 @@ test02() { Gt gt; -#ifndef _GLIBCXX_DEBUG +#ifndef _GLIBCXX_ASSERTIONS //const int logN = static_cast(std::log(static_cast(N)) + 0.5); const int logN = 3; #endif @@ -95,7 +95,7 @@ test02() for (int i = 2; i <= N; ++i) { std::push_heap(s1, s1 + i, gt); -#ifndef _GLIBCXX_DEBUG +#ifndef _GLIBCXX_ASSERTIONS VERIFY(gt.count() <= logN); #endif gt.reset(); @@ -104,7 +104,7 @@ test02() for (int i = N; i >= 2; --i) { std::pop_heap(s1, s1 + i, gt); -#ifndef _GLIBCXX_DEBUG +#ifndef _GLIBCXX_ASSERTIONS VERIFY(gt.count() <= 2 * logN); #endif gt.reset(); @@ -118,13 +118,13 @@ test02() VERIFY(std::equal(s2, s2 + N, A)); std::make_heap(s2, s2 + N, gt); -#ifndef _GLIBCXX_DEBUG +#ifndef _GLIBCXX_ASSERTIONS VERIFY(gt.count() <= 3 * N); #endif gt.reset(); std::sort_heap(s2, s2 + N, gt); -#ifndef _GLIBCXX_DEBUG +#ifndef _GLIBCXX_ASSERTIONS VERIFY(gt.count() <= N * logN); #endif diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc index 3536e64c00c..56d80d61ae2 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc @@ -44,5 +44,5 @@ test() static_assert(test()); // { dg-error "" } -// { dg-prune-output "failed_assertion" } +// { dg-prune-output "builtin_unreachable" } // { dg-prune-output "in 'constexpr'" } diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc index ecda3f5c5da..ab931bbc731 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc @@ -34,5 +34,5 @@ test() static_assert(test()); // { dg-error "" } -// { dg-prune-output "failed_assertion" } +// { dg-prune-output "builtin_unreachable" } // { dg-prune-output "in 'constexpr'" } diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc index e7195438552..fee67e52172 100644 --- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc +++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc @@ -47,6 +47,6 @@ test2() static_assert(test2()); // { dg-error "" } -// { dg-prune-output "failed_assertion" } +// { dg-prune-output "builtin_unreachable" } // { dg-prune-output "in 'constexpr'" } diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc index 04d6f73a9ac..7937ac8d308 100644 --- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc +++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc @@ -44,5 +44,5 @@ test() static_assert(test()); // { dg-error "" } -// { dg-prune-output "failed_assertion" } +// { dg-prune-output "builtin_unreachable" } // { dg-prune-output "in 'constexpr'" } diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc index 7d2ef738c83..7d33eb535fa 100644 --- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc +++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc @@ -34,5 +34,5 @@ test() static_assert(test()); // { dg-error "" } -// { dg-prune-output "failed_assertion" } +// { dg-prune-output "builtin_unreachable" } // { dg-prune-output "in 'constexpr'" } diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc index 33a09b73bca..9c2d0657208 100644 --- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc +++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc @@ -47,5 +47,5 @@ test2() static_assert(test2()); // { dg-error "" } -// { dg-prune-output "failed_assertion" } +// { dg-prune-output "builtin_unreachable" } // { dg-prune-output "in 'constexpr'" }