https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82976

--- Comment #5 from Janne Blomqvist <jb at gcc dot gnu.org> ---
So the problem is the logical(kind=1) one, it should be the same type as the
LHS.

It seems it originates from (from .003t.original):

logical(kind=4) D.3603;
...
D.3603 = (struct test_typ[0:] * restrict) conc.data == 0B;

Then in the .177t.thread3 dump this has become:

_15 = _34 == _6;

Then finally in the 178t.dom3 dump with -fdump-tree-all-details (this is the
pass where it ICE's):

Optimizing statement _15 = _34 == _6;
  Replaced '_34' with variable '_13'
  Replaced '_6' with constant '&A.7'
gimple_simplified to _15 = 0;
  Folded to: _15 = 0;
LKUP STMT _15 = 0
==== ASGN _15 = 0


I have gone through uses of EQ_EXPR (and NE_EXPR, and boolean_type_node, and
boolean_true_node, and boolean_false_node) in the frontend and I haven't found
a place where it would use boolean_type_node (i.e. logical(kind=1) instead of
logical_type_node (logical(kind=4)). So at the moment I'm a bit stuck. Does the
above give you any kind of hint what the problem might be?

Reply via email to