Commit 0dd285f9 by Jason Merrill Committed by Jason Merrill

PR c++/84936 - ICE with unexpanded pack in mem-initializer.

	* parser.c (cp_parser_mem_initializer_list): Call
	check_for_bare_parameter_packs.

From-SVN: r259107
parent 01e1df9f
2018-04-04 Jason Merrill <jason@redhat.com>
PR c++/84936 - ICE with unexpanded pack in mem-initializer.
* parser.c (cp_parser_mem_initializer_list): Call
check_for_bare_parameter_packs.
2018-04-04 Jakub Jelinek <jakub@redhat.com> 2018-04-04 Jakub Jelinek <jakub@redhat.com>
PR inline-asm/85172 PR inline-asm/85172
......
...@@ -14381,9 +14381,14 @@ cp_parser_mem_initializer_list (cp_parser* parser) ...@@ -14381,9 +14381,14 @@ cp_parser_mem_initializer_list (cp_parser* parser)
/* Parse the mem-initializer. */ /* Parse the mem-initializer. */
mem_initializer = cp_parser_mem_initializer (parser); mem_initializer = cp_parser_mem_initializer (parser);
/* If the next token is a `...', we're expanding member initializers. */ /* If the next token is a `...', we're expanding member initializers. */
if (cp_lexer_next_token_is (parser->lexer, CPP_ELLIPSIS)) bool ellipsis = cp_lexer_next_token_is (parser->lexer, CPP_ELLIPSIS);
if (ellipsis
|| (mem_initializer != error_mark_node
&& check_for_bare_parameter_packs (TREE_PURPOSE
(mem_initializer))))
{ {
/* Consume the `...'. */ /* Consume the `...'. */
if (ellipsis)
cp_lexer_consume_token (parser->lexer); cp_lexer_consume_token (parser->lexer);
/* The TREE_PURPOSE must be a _TYPE, because base-specifiers /* The TREE_PURPOSE must be a _TYPE, because base-specifiers
// PR c++/84936
// { dg-do compile { target c++11 } }
struct A
{
template<typename... T> A(T... t)
: decltype(t)() {} // { dg-error "parameter pack" }
};
A a;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment