[Bug c++/85136] [6/7/8 Regression] ICE with array as template variable

2018-04-05 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85136

--- Comment #3 from Jason Merrill  ---
Author: jason
Date: Thu Apr  5 19:43:39 2018
New Revision: 259152

URL: https://gcc.gnu.org/viewcvs?rev=259152&root=gcc&view=rev
Log:
PR c++/85136 - ICE with designated init in template.

* decl.c (maybe_deduce_size_from_array_init): Handle dependent
designated initializer.
(check_array_designated_initializer): Update ce->index with the
constant value.

Added:
trunk/gcc/testsuite/g++.dg/ext/desig11.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c

[Bug c++/85136] [6/7/8 Regression] ICE with array as template variable

2018-04-05 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85136

Jason Merrill  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||jason at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |jason at gcc dot gnu.org

--- Comment #2 from Jason Merrill  ---
Doesn't depend on variable templates:

enum { e };

template void f()
{
  const int x[] = { [e] = 0 };
}

[Bug c++/85136] [6/7/8 Regression] ICE with array as template variable

2018-04-05 Thread dmalcolm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85136

David Malcolm  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-04-05
 CC||dmalcolm at gcc dot gnu.org
Summary|ICE with array as template  |[6/7/8 Regression] ICE with
   |variable|array as template variable
 Ever confirmed|0   |1

--- Comment #1 from David Malcolm  ---
Confirmed on trunk, gcc-7-branch, and gcc-6-branch.

Started with r218752