libstdc++: Fix cast in source_location::current() [PR104602]
authorJonathan Wakely <jwakely@redhat.com>
Thu, 24 Feb 2022 21:33:44 +0000 (21:33 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 24 Feb 2022 23:42:41 +0000 (23:42 +0000)
commit41cbcf53dc60b7434b9ee059b3a734a47f5bf212
tree264dc4687c317ad327f33b0f0b6c556eee8be5a4
parentae3c4e521dd0b66db712639298cd08331d62f315
libstdc++: Fix cast in source_location::current() [PR104602]

This fixes a problem for Clang, which is going to return a non-void
pointer from __builtin_source_location(). The current definition of
std::source_location::current() converts that to void* and then has to
cast it back again in the body (which makes it invalid in a constant
expression). By using the actual type of the returned pointer, we avoid
the problematic cast for Clang.

libstdc++-v3/ChangeLog:

PR libstdc++/104602
* include/std/source_location (source_location::current): Use
deduced type of __builtin_source_location().
libstdc++-v3/include/std/source_location