[PATCH] Complete _GLIBCXX_DEBUG constexpr compatibility

François Dumont frs.dumont@gmail.com
Fri Dec 11 07:20:26 GMT 2020


Hi

I'd like to commit this small fix to complete _GLIBCXX_DEBUG constexpr 
compatibility. There are still 2 macros not using __glibcxx_assert_1.

It fixes the generated diagnostic to have the __failed_assertion rather 
than a message saying that _Error_formatter::_M_error is not constexpr.

     libstdc++: Fix _GLIBCXX_DEBUG mode constexpr compatibility

     The __glibcxx_check_can_[increment|decrement]_range macros are 
using the
     _GLIBCXX_DEBUG_VERIFY_COND_AT macro which is not constexpr 
compliant and will produce nasty
     diagnostics rather than the std::__failed_assertion dedicated to 
constexpr. Replace it with
     correct _GLIBCXX_DEBUG_VERIFY_AT_F.

     libstdc++-v3/ChangeLog:
             * include/debug/macros.h 
(__glibcxx_check_can_increment_range): Replace
             _GLIBCXX_DEBUG_VERIFY_COND_AT usage with 
_GLIBCXX_DEBUG_VERIFY_AT_F.
             (__glibcxx_check_can_decrement_range): Likewise.
             * testsuite/25_algorithms/copy_backward/constexpr.cc 
(test03): New.
             * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: New 
test.
             * 
testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: New test.
             * testsuite/25_algorithms/equal/constexpr_neg.cc: New test.
             * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: New 
test.

Tested under Linux x86_64 normal and debug modes.

Ok to commit ?

François

-------------- next part --------------
A non-text attachment was scrubbed...
Name: debug_constexpr.patch
Type: text/x-patch
Size: 10258 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20201211/3a92d8ca/attachment.bin>


More information about the Libstdc++ mailing list