Skip to content
Snippets Groups Projects
Commit 45a32771 authored by Andrew Pinski's avatar Andrew Pinski
Browse files

match: Fix the `max<a,b>==0` pattern for pointers [PR117646]


For pointers I forgot that BIT_IOR_EXPR is not valid so when
I added the pattern to convert `max<a,b> != 0` (r15-5356), GCC
would start to ICEing saying pointer types were not valid for
BIT_IOR_EXPR.
This fixes the problem by casting to the unsigned type of the
inner type. There was another way of fixing this to handling it
as `a == 0 & b == 0` but both match and reassoication (for pointers)
will then convert it back into the form I am creating here so
let's just use that form instead.

Bootstrapped and tested on x86_64-linux-gnu.

	PR tree-optimization/117646

gcc/ChangeLog:

	* match.pd (`max<a,b>==0`): Add casts to `unsigned type`.

gcc/testsuite/ChangeLog:

	* gcc.dg/torture/minmaxneeqptr-1.c: New test.

Signed-off-by: default avatarAndrew Pinski <quic_apinski@quicinc.com>
parent dffc37de
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment