[PATCH] Fix _GLIBCXX_DEBUG tests

François Dumont frs.dumont@gmail.com
Mon Dec 14 21:36:18 GMT 2020


On 14/12/20 11:08 am, Jonathan Wakely wrote:
>
>
> On Mon, 14 Dec 2020, 06:51 François Dumont via Libstdc++, 
> <libstdc++@gcc.gnu.org <mailto:libstdc%2B%2B@gcc.gnu.org>> wrote:
>
>     On 13/12/20 11:17 pm, Jonathan Wakely wrote:
>     > On 13/12/20 15:52 +0100, François Dumont via Libstdc++ wrote:
>     >> Some tests are XPASS because array assertions have been
>     disabled for
>     >> a good reason in C++11.
>     >>
>     >> I wonder if the respective non-constexpr _GLIBCXX_ASSERTION checks
>     >> shouldn't target C++14 too. At the moment they are failing as
>     >> expected but because of an Undefined Behavior no ?
>     >
>     > Hmm, maybe my "fix" for the bug was too hasty, and I should have
>     done
>     > this instead:
>     >
>     > --- a/libstdc++-v3/include/bits/c++config
>     > +++ b/libstdc++-v3/include/bits/c++config
>     > @@ -684,7 +684,7 @@ namespace std
>     >
>     >  #undef _GLIBCXX_HAS_BUILTIN
>     >
>     > -#if _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED
>     > +#if _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED && __cplusplus >=
>     > 201402L
>     >  # define __glibcxx_assert_1(_Condition)                \
>     >      if (__builtin_is_constant_evaluated())     \
>     >       {                                         \
>     >
>     > That would allow us to keep the std::array runtime assertions for
>     > C++11, and only disable them in constexpr contexts.
>
>     I already tried to restore this check in C++11 runtime without
>     success
>     but I didn't try this approach.
>
>     I'll have a try but C++11 forces constexpr to be just a return
>     statement
>     so I fear that it won't appreciate the additional assertion.
>
>
>
> Ah yes, we'd need something like Daniel suggested, and it's not worth 
> it just for C++11.
>
> Just limiting the tests to c++14 is fine.
>
>
Attached patch committed then.

François

-------------- next part --------------
A non-text attachment was scrubbed...
Name: debug.patch
Type: text/x-patch
Size: 1675 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20201214/cb4fcccd/attachment.bin>


More information about the Libstdc++ mailing list