PR c++/79607 - ICE with T{} initializer

* decl.c (type_dependent_init_p): Check the type of a CONSTRUCTOR.

From-SVN: r245592
This commit is contained in:
Jason Merrill 2017-02-20 01:06:03 -05:00 committed by Jason Merrill
parent 7950124ec2
commit 736a933c00
3 changed files with 15 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2017-02-19 Jason Merrill <jason@redhat.com>
PR c++/79607 - ICE with T{} initializer
* decl.c (type_dependent_init_p): Check the type of a CONSTRUCTOR.
PR c++/79566 - elaborated-type-specifier in range for
* parser.c (cp_parser_simple_declaration): Fix check for type
definition.

View File

@ -6662,6 +6662,9 @@ type_dependent_init_p (tree init)
else if (TREE_CODE (init) == CONSTRUCTOR)
/* A brace-enclosed initializer, e.g.: int i = { 3 }; ? */
{
if (dependent_type_p (TREE_TYPE (init)))
return true;
vec<constructor_elt, va_gc> *elts;
size_t nelts;
size_t i;

View File

@ -0,0 +1,9 @@
// PR c++/79607
// { dg-do compile { target c++11 } }
template<typename T> struct A
{
static const int i = int{T{}};
};
A<int> a;