diff options
author | Jason Merrill <jason@redhat.com> | 2020-02-25 21:29:03 -0500 |
---|---|---|
committer | Jason Merrill <jason@redhat.com> | 2020-02-25 23:21:14 -0500 |
commit | 2dcdcda91921b512b978f7223c530352fd61b91b (patch) | |
tree | 66f5da28bbf108350175d6d4a0d75b6954c311be /gcc/cp/ChangeLog | |
parent | bf2fe5d49627ca757123f4425a029bd92c50fc05 (diff) | |
download | gcc-2dcdcda91921b512b978f7223c530352fd61b91b.zip gcc-2dcdcda91921b512b978f7223c530352fd61b91b.tar.gz gcc-2dcdcda91921b512b978f7223c530352fd61b91b.tar.bz2 |
PR c++/87480 - decltype of member access in default template arg
The issue here is that declval<T>().d is considered instantiation-dependent
within a template, as the access to 'd' might depend on the particular
specialization. But when we're deducing template arguments for a call, we
know that the call and the arguments are non-dependent, so we can do the
substitution as though we aren't in a template. Which strictly speaking we
aren't, since the default argument is considered a separate definition.
gcc/cp/ChangeLog
2020-02-25 Jason Merrill <jason@redhat.com>
PR c++/87480 - decltype of member access in default template arg
* pt.c (type_unification_real): Accept a dependent result in
template context.
Diffstat (limited to 'gcc/cp/ChangeLog')
-rw-r--r-- | gcc/cp/ChangeLog | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ba809fd..7a2094b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,11 @@ 2020-02-25 Jason Merrill <jason@redhat.com> + PR c++/87480 - decltype of member access in default template arg + * pt.c (type_unification_real): Accept a dependent result in + template context. + +2020-02-25 Jason Merrill <jason@redhat.com> + PR c++/88394 - ICE with VLA init-capture. * lambda.c (is_normal_capture_proxy): Check DECL_CAPTURED_VARIABLE. |