https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100925
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Target Milestone|--- |12.0
Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot
gnu.org
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #4)
> It was exposed by r12-1152.
>
> Phi-opt produces this now:
> _9 = _3 != 0B;
> _10 = (<<< Unknown tree: offset_type >>>) _9;
> _11 = -_10;
> /// The above is new
>
> _6 = _3 != 0B;
> _7 = _11 != -1;
> _8 = _6 & _7;
>
> ----- CUT ----
> before reassoc we have:
> _9 = _3 != 0B;
> _10 = (<<< Unknown tree: offset_type >>>) _9;
> _11 = -_10;
> _7 = _11 != -1;
> _8 = _7 & _9;
> ---- CUT ---
>
> But _9 and _7 will always have the same value even.
The problem is r12-1055 really which causes the offset type to used here.
I need a check for INTEGRAL_TYPE_P to avoid this.