aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/ChangeLog
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2020-02-25 21:29:03 -0500
committerJason Merrill <jason@redhat.com>2020-02-25 23:21:14 -0500
commit2dcdcda91921b512b978f7223c530352fd61b91b (patch)
tree66f5da28bbf108350175d6d4a0d75b6954c311be /gcc/cp/ChangeLog
parentbf2fe5d49627ca757123f4425a029bd92c50fc05 (diff)
downloadgcc-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/ChangeLog6
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.