[Bug c++/87075] [7/8/9 Regression] ICE when compiling the test suite of GLM 0.9.9.0

2018-08-23 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075

--- Comment #4 from Marek Polacek  ---
Reduced:

template 
struct vec
{
  struct { T y; };
  vec() = default;
};

template 
struct S
{
  vec value[2];
  template
  constexpr S(const U&);
};

template
template
constexpr S::S(const X&)
{
  value[0] = vec();
}

Sm(0);

[Bug c++/87075] [7/8/9 Regression] ICE when compiling the test suite of GLM 0.9.9.0

2018-08-24 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |7.4

[Bug c++/87075] [7/8/9 Regression] ICE when compiling the test suite of GLM 0.9.9.0

2018-08-24 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org,
   ||jason at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek  ---
Indeed.  The VOID_CST elts of the CONSTRUCTOR come from the
8352  if (is_dummy_object (argarray[0]))
8353return force_target_expr (DECL_CONTEXT (fn), void_node,
8354  no_cleanup_complain);
that patch added, and the constexpr handling code is upset that there is a
VOID_CST rather than CONSTRUCTOR inside of the elts.

[Bug c++/87075] [7/8/9 Regression] ICE when compiling the test suite of GLM 0.9.9.0

2018-09-20 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075

Jason Merrill  changed:

   What|Removed |Added

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

[Bug c++/87075] [7/8/9 Regression] ICE when compiling the test suite of GLM 0.9.9.0

2018-09-20 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075

--- Comment #6 from Jason Merrill  ---
Author: jason
Date: Thu Sep 20 17:09:19 2018
New Revision: 264442

URL: https://gcc.gnu.org/viewcvs?rev=264442&root=gcc&view=rev
Log:
PR c++/87075 - ICE with constexpr array initialization.

My patch of 2016-08-26 to avoid calling a trivial default constructor
introduced TARGET_EXPRs initialized with void_node to express trivial
initialization.  But when this shows up in a VEC_INIT_EXPR, we weren't
prepared to handle it.  Fixed by handling it explicitly in
cxx_eval_vec_init_1.

* constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization.

Added:
trunk/gcc/testsuite/g++.dg/cpp1y/constexpr-array6.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/constexpr.c

[Bug c++/87075] [7/8/9 Regression] ICE when compiling the test suite of GLM 0.9.9.0

2018-11-20 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075

Martin Liška  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #7 from Martin Liška  ---
Jason: Can you please update Known to work?

[Bug c++/87075] [7/8/9 Regression] ICE when compiling the test suite of GLM 0.9.9.0

2018-11-26 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87075

--- Comment #8 from Jason Merrill  ---
Author: jason
Date: Mon Nov 26 15:53:43 2018
New Revision: 266468

URL: https://gcc.gnu.org/viewcvs?rev=266468&root=gcc&view=rev
Log:
PR c++/87075 - ICE with constexpr array initialization.

My patch of 2016-08-26 to avoid calling a trivial default constructor
introduced TARGET_EXPRs initialized with void_node to express trivial
initialization.  But when this shows up in a VEC_INIT_EXPR, we weren't
prepared to handle it.  Fixed by handling it explicitly in
cxx_eval_vec_init_1.

* constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization.

Added:
branches/gcc-7-branch/gcc/testsuite/g++.dg/cpp1y/constexpr-array6.C
Modified:
branches/gcc-7-branch/gcc/cp/ChangeLog
branches/gcc-7-branch/gcc/cp/constexpr.c