+2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * optabs.c (expand_atomic_compare_and_swap): Allow expander to
+ fail.
+
2014-02-07 Richard Biener <rguenther@suse.de>
PR middle-end/60092
create_integer_operand (&ops[5], is_weak);
create_integer_operand (&ops[6], succ_model);
create_integer_operand (&ops[7], fail_model);
- expand_insn (icode, 8, ops);
-
- /* Return success/failure. */
- target_bool = ops[0].value;
- target_oval = ops[1].value;
- goto success;
+ if (maybe_expand_insn (icode, 8, ops))
+ {
+ /* Return success/failure. */
+ target_bool = ops[0].value;
+ target_oval = ops[1].value;
+ goto success;
+ }
}
/* Otherwise fall back to the original __sync_val_compare_and_swap