[PATCH] D79237: [CUDA][HIP] Fix constexpr variables for C++17

Yaxun Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri May 15 17:24:55 PDT 2020


yaxunl marked an inline comment as done.
yaxunl added a comment.

In D79237#2039757 <https://reviews.llvm.org/D79237#2039757>, @rsmith wrote:

> In D79237#2039559 <https://reviews.llvm.org/D79237#2039559>, @tra wrote:
>
> > In D79237#2039417 <https://reviews.llvm.org/D79237#2039417>, @tra wrote:
> >
> > >
> >
> >
> > Bad news -- it breaks the standard C++ library.
>
>
> [...]
>
> >   build/release+assert+zapcc/bin/../include/c++/v1/utility:937:51: error: dynamic initialization is not supported for __device__, __constant__, and __shared__ variables.
> >   _LIBCPP_INLINE_VAR constexpr in_place_type_t<_Tp> in_place_type{};
> >                                                     ^            ~~
>
> This looks like a bug in that diagnostic: the instantiations of this variable template certainly do not have dynamic initialization. The diagnostic is missing an "in instantiation of" note, so I think the bug is that we're performing this check on a dependent variable prior to instantiation. Presumably we should delay the check to instantiation time if either the type of the variable is dependent or the initializer is value-dependent.


right. fixed


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79237/new/

https://reviews.llvm.org/D79237





More information about the cfe-commits mailing list