[Bug middle-end/82976] [8 Regression] Error: non-trivial conversion at assignment since r254526
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Apr 6 21:28:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82976
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|fortran |middle-end
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
match.pd looks like it has a type bug:
/* Simplify pointer equality compares using PTA. */
(for neeq (ne eq)
(simplify
(neeq @0 @1)
(if (POINTER_TYPE_P (TREE_TYPE (@0))
&& ptrs_compare_unequal (@0, @1))
{ neeq == EQ_EXPR ? boolean_false_node : boolean_true_node; })))
It assumes all types of EQ_EXPR/NE_EXPR will be boolean_type_node which is not
true.
It should be using constant_boolean_node (neeq != EQ_EXPR, type); .
More information about the Gcc-bugs
mailing list