re PR target/53187 (ICE in arm_select_dominance_cc_mode)

PR target/53187
	* config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
	mode, return that mode.

	* gcc.target/arm/pr53187.c: New test.
	* gcc.c-torture/compile/pr53187.c: New test.

From-SVN: r187085
This commit is contained in:
Jakub Jelinek 2012-05-03 12:16:01 +02:00 committed by Jakub Jelinek
parent d5becc1117
commit d40a89e777
5 changed files with 37 additions and 0 deletions

View File

@ -1,5 +1,9 @@
2012-05-03 Jakub Jelinek <jakub@redhat.com>
PR target/53187
* config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
mode, return that mode.
PR target/53194
* config/i386/i386-c.c (ix86_target_macros_internal): Don't
define __ATOMIC_HLE_* macros here.

View File

@ -11964,6 +11964,9 @@ arm_select_cc_mode (enum rtx_code op, rtx x, rtx y)
}
}
if (GET_MODE_CLASS (GET_MODE (x)) == MODE_CC)
return GET_MODE (x);
return CCmode;
}

View File

@ -1,3 +1,9 @@
2012-05-03 Jakub Jelinek <jakub@redhat.com>
PR target/53187
* gcc.target/arm/pr53187.c: New test.
* gcc.c-torture/compile/pr53187.c: New test.
2012-05-03 Richard Guenther <rguenther@suse.de>
* gfortran.dg/pr52621.f90: Add -w to avoid diagnostic about

View File

@ -0,0 +1,11 @@
/* PR target/53187 */
void bar (int);
void
foo (int x, double y, double z)
{
_Bool t = z >= y;
if (!t || x)
bar (t ? 1 : 16);
}

View File

@ -0,0 +1,13 @@
/* PR target/53187 */
/* { dg-do compile } */
/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */
void bar (int);
void
foo (int x, double y, double z)
{
_Bool t = z >= y;
if (!t || x)
bar (t ? 1 : 16);
}