------- Comment #10 from rguenth at gcc dot gnu dot org 2006-10-22 15:12 ------- With the patch for 23295 we get the behavior as noted in comment #7. This is due to negate_expr_p (correctly) containing
case BIT_NOT_EXPR: return INTEGRAL_TYPE_P (type) && (TYPE_UNSIGNED (type) || (flag_wrapv && !flag_trapv)); as negating ~7ffffff will result in signed overflow which is undefined without flag_wrapv. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23666