Andrew Haley schrieb: >> As i386 doesn' define an abs insn, you won't see this warning on i386 >> simply because ABS rtx is never generated. I see the second warning for >> ABS >= 0 on ARM. However, for ARM there is no ABS rtx genereited either, >> even though arm BE defines abs insn. > > The bug, then, is that this abs should never have been generated. > >> I think the evil thing is that RTL optimizers do transformations whose >> correctness depend on the signedness/qualifiers of the operand(s) >> without even knowing anything about signedness/qualifiers. > > I don't think so: abs() is not defined on unsigned operands. So the problem locates either in ifcvt.c:noce_try_abs() or in optabs.c:expand_abs_nojump() because they do not handle flag_trapv resp. flag_strict_overflow correctly. Is this worth a bug report? The point is that no one else can reproduce it because it shows up on a non-standard machine. Georg