c++: member alias declaration [PR103968]
authorJason Merrill <jason@redhat.com>
Sun, 27 Mar 2022 04:28:30 +0000 (00:28 -0400)
committerJason Merrill <jason@redhat.com>
Mon, 28 Mar 2022 13:35:58 +0000 (09:35 -0400)
commitc7361eb36fa50307c9f7cfca36c9f58ce24f8f54
treecde1756d566a8100e6ec70d1aff135c827bd9957
parent8bc5cdaafa2e729f9209684dc30aa0acb72d2580
c++: member alias declaration [PR103968]

Here, we were wrongly thinking that (const Options&)Widget<T>::c_options is
not value-dependent because neither the type nor the (value of) c_options
are dependent, but since we're binding it to a reference we also need to
consider that it has a value-dependent address.

PR c++/103968

gcc/cp/ChangeLog:

* pt.cc (value_dependent_expression_p): Check
has_value_dependent_address for conversion to reference.

gcc/testsuite/ChangeLog:

* g++.dg/cpp0x/alias-decl-mem1.C: New test.
gcc/cp/pt.cc
gcc/testsuite/g++.dg/cpp0x/alias-decl-mem1.C [new file with mode: 0644]