From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13513 invoked by alias); 3 Nov 2005 18:18:49 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 13496 invoked by uid 48); 3 Nov 2005 18:18:47 -0000 Date: Thu, 03 Nov 2005 18:18:00 -0000 Message-ID: <20051103181847.13495.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/24599] [4.0 regression] segv after overflow detection In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dje at transmeta dot com" X-SW-Source: 2005-11/txt/msg00489.txt.bz2 List-Id: ------- Comment #2 from dje at transmeta dot com 2005-11-03 18:18 ------- I'm not sure the root cause of this bug is fixed in 4.1. It looks to me like it's still there and is only (currently) hidden. Am I mistaken? Apply this patch to gcc-4.1-20051029 and recompile the testcase with -O3. I'm seeing an abort. If I set a breakpoint on integer_nonzerop and print the boolean_true_node tree I see it's marked as "overflow". Oops. --- tree-ssa-loop-ivopts.c.~1~ 2005-09-22 04:24:00.000000000 -0700 +++ tree-ssa-loop-ivopts.c 2005-11-03 10:06:59.997691464 -0800 @@ -1291,6 +1291,8 @@ find_interesting_uses_cond (struct ivopt struct iv const_iv; tree zero = integer_zero_node; + gcc_assert (integer_nonzerop (boolean_true_node)); + const_iv.step = NULL_TREE; if (TREE_CODE (*cond_p) != SSA_NAME (gdb) p expr $1 = 0xb7c32630 (gdb) pt constant invariant static overflow 1> (gdb) f #0 integer_nonzerop (expr=0xb7c32630) at ../../gcc/tree.c:1278 (gdb) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24599