2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/33181
* ifcvt.c (noce_get_alt_condition): Make sure that the previous
non NOTE insn doesn't cross basic block.
(noce_try_abs): Likewise.
(noce_process_if_block): Likewise.
gcc/testsuite/
2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/33181
* gcc.dg/ifelse-2.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127810
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/33181
+ * ifcvt.c (noce_get_alt_condition): Make sure that the previous
+ non NOTE insn doesn't cross basic block.
+ (noce_try_abs): Likewise.
+ (noce_process_if_block): Likewise.
+
2007-08-26 David Edelsohn <edelsohn@gnu.org>
PR target/33151
/* First, look to see if we put a constant in a register. */
prev_insn = prev_nonnote_insn (if_info->cond_earliest);
if (prev_insn
+ && BLOCK_NUM (prev_insn) == BLOCK_NUM (if_info->cond_earliest)
&& INSN_P (prev_insn)
&& GET_CODE (PATTERN (prev_insn)) == SET)
{
{
rtx set, insn = prev_nonnote_insn (earliest);
if (insn
+ && BLOCK_NUM (insn) == BLOCK_NUM (earliest)
&& (set = single_set (insn))
&& rtx_equal_p (SET_DEST (set), c))
{
COND_EARLIEST to JUMP. Make sure the relevant data is still
intact. */
if (! insn_b
+ || BLOCK_NUM (insn_b) != BLOCK_NUM (if_info->cond_earliest)
|| !NONJUMP_INSN_P (insn_b)
|| (set_b = single_set (insn_b)) == NULL_RTX
|| ! rtx_equal_p (x, SET_DEST (set_b))
+2007-08-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR middle-end/33181
+ * gcc.dg/ifelse-2.c: New.
+
2007-08-26 Tobias Burnus <burnus@net-b.de>
PR fortran/32980
--- /dev/null
+/*
+{ dg-do run }
+{ dg-options "-O2" }
+*/
+
+extern void abort (void);
+
+enum Status
+{
+ P_ON_LOWER = -4,
+ P_ON_UPPER = -2,
+ P_FREE = -1
+};
+
+void
+foo (enum Status *stat, double newUpper, double lower, double max)
+{
+ if (newUpper >= max)
+ *stat = P_FREE;
+ else if (newUpper == lower)
+ *stat = P_ON_LOWER;
+}
+
+int
+main ()
+{
+ enum Status stat = P_ON_UPPER;
+
+ foo (&stat, 5.0, -10.0, 10.0);
+
+ if (stat != P_ON_UPPER)
+ abort ();
+ return 0;
+}