[v3 PATCH] Fix an access problem in variant.
Jonathan Wakely
jwakely@redhat.com
Wed Feb 8 13:56:00 GMT 2017
On 07/02/17 23:29 +0200, Ville Voutilainen wrote:
>On 7 February 2017 at 22:00, Ville Voutilainen
><ville.voutilainen@gmail.com> wrote:
>> Currently, clang rejects all attempts to visit a libstdc++ variant:
>> https://godbolt.org/g/kSmBTg
>>
>> While gcc doesn't reject such code, that seems like an access checking
>> bug. This patch makes the offending _M_u member accessible for the rest
>> of the code.
>
>
>Hmh. There's already a friend declaration for the functions that
>supposedly need it. clang doesn't
>seem to grok that friend declaration. gcc requires that friend
>declaration, so perhaps the bug
>is indeed in how clang handles friend templates.
Definitely a clang bug, see
http://melpon.org/wandbox/permlink/PkbNSpvjPrLh8rov
If we remove the nested namespace we see that the friend declaration
is declaring a second, unrelated function, and so we get an ambiguity:
http://melpon.org/wandbox/permlink/wvmzgAzpLp5pOf86
More information about the Libstdc++
mailing list