https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103295

--- Comment #9 from cqwrteur <unlvsur at live dot com> ---
(In reply to Jonathan Wakely from comment #8)
> Which means this is enough to make Clang happy for the comment 0 example:
> 
> --- a/libstdc++-v3/include/bits/basic_string.tcc
> +++ b/libstdc++-v3/include/bits/basic_string.tcc
> @@ -167,6 +167,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>        _M_construct(_InIterator __beg, _InIterator __end,
>                    std::input_iterator_tag)
>        {
> +#if __cpp_lib_is_constant_evaluated
> +       if (__builtin_is_constant_evaluated())
> +         _M_local_buf[0] = _CharT();
> +#endif
> +
>         size_type __len = 0;
>         size_type __capacity = size_type(_S_local_capacity);
>  
> @@ -223,6 +228,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>             _M_data(_M_create(__dnew, size_type(0)));
>             _M_capacity(__dnew);
>           }
> +#if __cpp_lib_is_constant_evaluated
> +       else if (__builtin_is_constant_evaluated())
> +         _M_local_buf[0] = _CharT();
> +#endif
>  
>         // Check for out_of_range and length_error exceptions.
>         __try
> @@ -247,6 +256,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>           _M_data(_M_create(__n, size_type(0)));
>           _M_capacity(__n);
>         }
> +#if __cpp_lib_is_constant_evaluated
> +       else if (__builtin_is_constant_evaluated())
> +         _M_local_buf[0] = _CharT();
> +#endif
>  
>        if (__n)
>         this->_S_assign(_M_data(), __n, __c);

where can i download EDG??

Reply via email to