aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2016-05-23 19:24:22 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2016-05-23 19:24:22 +0000
commitd6c9a06fcfc524fef362795cc40dbdffe1ca8b6c (patch)
tree180adbdfd15a70bd3ab894a8263ff295be84efda /gcc
parent396a1d10b3822a6da4794309a28ce3b1ea309325 (diff)
downloadgcc-d6c9a06fcfc524fef362795cc40dbdffe1ca8b6c.zip
gcc-d6c9a06fcfc524fef362795cc40dbdffe1ca8b6c.tar.gz
gcc-d6c9a06fcfc524fef362795cc40dbdffe1ca8b6c.tar.bz2
re PR c++/69095 (internal compiler error: in dependent_type_p, at cp/pt.c:19399)
/cp 2016-05-22 Paolo Carlini <paolo.carlini@oracle.com> PR c++/69095 * parser.c (cp_parser_default_argument): Call check_for_bare_parameter_packs. (cp_parser_late_parsing_default_args): Likewise. /testsuite 2016-05-22 Paolo Carlini <paolo.carlini@oracle.com> PR c++/69095 * g++.dg/cpp0x/variadic168.C: New. From-SVN: r236610
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/parser.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/variadic168.C18
4 files changed, 31 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e6f4ac9..764754d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/69095
+ * parser.c (cp_parser_initializer): Use check_for_bare_parameter_packs.
+
+2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
+
* pt.c (check_for_bare_parameter_packs): Improve error message
location for expressions.
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 076e7f3..a68a510 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -20800,6 +20800,9 @@ cp_parser_initializer (cp_parser* parser, bool* is_direct_init,
init = error_mark_node;
}
+ if (check_for_bare_parameter_packs (init))
+ init = error_mark_node;
+
return init;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b4ca509..80b62ad 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/69095
+ * g++.dg/cpp0x/variadic168.C: New.
+
+2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
+
* g++.dg/cpp0x/pr31445.C: Test column number too.
* g++.dg/cpp0x/pr32253.C: Likewise.
* g++.dg/cpp0x/variadic-ex13.C: Likewise.
diff --git a/gcc/testsuite/g++.dg/cpp0x/variadic168.C b/gcc/testsuite/g++.dg/cpp0x/variadic168.C
new file mode 100644
index 0000000..202897e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/variadic168.C
@@ -0,0 +1,18 @@
+// PR c++/69095
+// { dg-do compile { target c++11 } }
+
+struct B1 {
+ template <typename Ret, typename... Args, unsigned = sizeof(Args)> // { dg-error "parameter packs not expanded" }
+ void insert(Ret);
+};
+
+struct B2 {
+ template <typename Ret, typename... Args>
+ void insert(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" }
+};
+
+template <typename Ret, typename... Args, unsigned = sizeof(Args)> // { dg-error "parameter packs not expanded" }
+void insert1(Ret);
+
+template <typename Ret, typename... Args>
+void insert2(Ret, unsigned = sizeof(Args)); // { dg-error "parameter packs not expanded" }