[Bug c++/84665] [7/8 Regression] internal compiler error: in build_value_init, at cp/init.c:343

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

Jason Merrill  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Jason Merrill  ---
Fixed.

[Bug c++/84665] [7/8 Regression] internal compiler error: in build_value_init, at cp/init.c:343

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

--- Comment #5 from Jason Merrill  ---
Author: jason
Date: Thu Apr  5 18:27:43 2018
New Revision: 259146

URL: https://gcc.gnu.org/viewcvs?rev=259146=gcc=rev
Log:
PR c++/84665 - ICE with array of empty class.

* decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr.

Added:
branches/gcc-7-branch/gcc/testsuite/g++.dg/ext/attr-noinline-4.C
Modified:
branches/gcc-7-branch/gcc/cp/ChangeLog
branches/gcc-7-branch/gcc/cp/decl2.c

[Bug c++/84665] [7/8 Regression] internal compiler error: in build_value_init, at cp/init.c:343

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

--- Comment #4 from Jason Merrill  ---
Author: jason
Date: Thu Apr  5 16:04:08 2018
New Revision: 259132

URL: https://gcc.gnu.org/viewcvs?rev=259132=gcc=rev
Log:
PR c++/84665 - ICE with array of empty class.

* decl2.c (cp_check_const_attributes): Use fold_non_dependent_expr.

Added:
trunk/gcc/testsuite/g++.dg/ext/attr-noinline-4.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl2.c

[Bug c++/84665] [7/8 Regression] internal compiler error: in build_value_init, at cp/init.c:343

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

Jason Merrill  changed:

   What|Removed |Added

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

[Bug c++/84665] [7/8 Regression] internal compiler error: in build_value_init, at cp/init.c:343

2018-03-19 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84665

--- Comment #3 from Jakub Jelinek  ---
Related to PR84940.

[Bug c++/84665] [7/8 Regression] internal compiler error: in build_value_init, at cp/init.c:343

2018-03-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84665

--- Comment #2 from Jakub Jelinek  ---
We don't ICE with
struct S { int s; } a[1];
but do ICE with e.g.
struct S { constexpr S () {} } a[1];

build_value_init has:
341   /* The AGGR_INIT_EXPR tweaking below breaks in templates.  */
342   gcc_assert (!processing_template_decl
343   || (SCALAR_TYPE_P (type) || TREE_CODE (type) ==
ARRAY_TYPE));
early, and type in this case is RECORD_TYPE S.
Called from:
2456  /* If it's within the array bounds but doesn't have an explicit
2457 initializer, it's value-initialized.  */
2458  tree val = build_value_init (elem_type, tf_warning_or_error);
2459  return cxx_eval_constant_expression (ctx, val, lval, non_constant_p,
2460   overflow_p);
because a doesn't have explicit initializer.
No idea what to do here...

[Bug c++/84665] [7/8 Regression] internal compiler error: in build_value_init, at cp/init.c:343

2018-03-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84665

Jakub Jelinek  changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2018-03-02
 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |7.4
Summary|internal compiler error: in |[7/8 Regression] internal
   |build_value_init, at|compiler error: in
   |cp/init.c:343   |build_value_init, at
   ||cp/init.c:343
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek  ---
struct S {} a[1];

template 
void
foo ()
{
  __attribute__ ((noinline (a[0]))) int c = 0;
}

Started with r239267, before it has been rejected:

pr84665.C: In function ‘void foo()’:
pr84665.C:7:41: error: wrong number of arguments specified for ‘noinline’
attribute
   __attribute__ ((noinline (a[0]))) int c = 0;
 ^