On 11/27/2015 03:33 PM, Kyrill Tkachov wrote:
Sorry for that. That is caused not by this patch but rather by the followup https://gcc.gnu.org/ml/gcc-patches/2015-11/msg03327.htmlThe checking assert fails: gcc_checking_assert (!emit_a || !modified_in_p (orig_b, emit_a)); emit_a is: (parallel [ (set (reg:SI 93) (plus:SI (reg/v:SI 88 [ i ]) (const_int 2 [0x2]))) (clobber (reg:CC 17 flags)) ]) and and orig_b is: (if_then_else:SI (eq (reg:CC 17 flags) (const_int 0 [0])) (reg/v:SI 87 [ <retval> ]) (reg/v:SI 88 [ i ])) So I think our assumption that this case would never trigger by this point doesn't hold due to the CC reg clobber. So the code before that patch was probably correct. I think we should revert https://gcc.gnu.org/ml/gcc-patches/2015-11/msg03327.html then.
Yes. Sorry. I thought orig_b would hold "normal" objects and not such an if-then-else.
Bernd
