rs6000: MMA type causes an ICE in ranger pass due to incompatible types
authorRichard Biener <rguenther@suse.de>
Wed, 21 Oct 2020 19:28:45 +0000 (14:28 -0500)
committerPeter Bergner <bergner@linux.ibm.com>
Wed, 21 Oct 2020 19:29:43 +0000 (14:29 -0500)
commit84cc3370d6d5972fe495b2114fb32f7b4a49a98d
treedb269646b4dedc0aa679f1e33b825e647f7fe9da
parentcaaa218f912ccf932fdb79243ded68bb462bbe63
rs6000: MMA type causes an ICE in ranger pass due to incompatible types

PR97360 shows a problem in how we create our PXI and POI modes that cause
an ICE in the ranger pass.  The problem seems to be that the extra call
to build_distinct_type_copy() also creates new TYPE_{MIN,MAX}_VALUEs that
are not compatible/the same as the base type itself.  The simple "fix" is
to actually remove the unneeded build_distinct_type_copy(), since according
to richi, the types returned from make_unsigned_type() are already distinct.

gcc/

2020-10-21  Richard Biener  <rguenther@suse.de>

PR target/97360
* config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove call to
build_distinct_type_copy().

gcc/testsuite/

2020-10-21  Martin Liska  <mliska@suse.cz>

PR target/97360
* gcc.target/powerpc/pr97360.c: New test.

Co-authored-by: Andrew MacLeod <amacleod@redhat.com>
Co-authored-by: Martin Liska <mliska@suse.cz>
gcc/config/rs6000/rs6000-call.c
gcc/testsuite/gcc.target/powerpc/pr97360.c [new file with mode: 0644]