aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/ChangeLog
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2020-04-02 23:40:46 -0400
committerJason Merrill <jason@redhat.com>2020-04-04 05:50:56 -0400
commitc4f6911d39089c5f500977d9fc0e36c72f2018a7 (patch)
tree9a6a7060d89913b275e962100437125c01cff7d1 /gcc/cp/ChangeLog
parentfa63b36943448336219d8847278bb888e1ab1c09 (diff)
downloadgcc-c4f6911d39089c5f500977d9fc0e36c72f2018a7.zip
gcc-c4f6911d39089c5f500977d9fc0e36c72f2018a7.tar.gz
gcc-c4f6911d39089c5f500977d9fc0e36c72f2018a7.tar.bz2
c++: alias template and parameter packs (PR91966).
In this testcase, when we do a pack expansion of count_better_mins<nums>, nums appears both in the definition of count_better_mins and as its template argument. The intent is that we get a expansion over pairs of elements of the pack, i.e. less<2,2>, less<2,7>, less<7,2>, .... But if we substitute into the definition of count_better_mins when parsing the template, we end up with sum<less<nums,nums>...>, which never gives us less<2,7>. We could deal with this by somehow marking up the use of 'nums' as an argument for 'num', but it's simpler to mark the alias as complex, so we need to instantiate it later with all its arguments rather than replace it early with its expansion. gcc/cp/ChangeLog 2020-04-03 Jason Merrill <jason@redhat.com> PR c++/91966 * pt.c (complex_pack_expansion_r): New. (complex_alias_template_p): Use it.
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 7651d0e..e7a49b2 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-03 Jason Merrill <jason@redhat.com>
+
+ PR c++/91966
+ * pt.c (complex_pack_expansion_r): New.
+ (complex_alias_template_p): Use it.
+
2020-03-27 Nathan Sidwell <nathan@acm.org>
PR c++/84733