From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19890 invoked by alias); 18 Jul 2005 18:03:53 -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 19868 invoked by uid 48); 18 Jul 2005 18:03:49 -0000 Date: Mon, 18 Jul 2005 18:05:00 -0000 Message-ID: <20050718180349.19867.qmail@sourceware.org> From: "emailwastefilter-bugzillagccorg at yahoo dot com" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050718171941.22551.emailwastefilter-bugzillagccorg@yahoo.com> References: <20050718171941.22551.emailwastefilter-bugzillagccorg@yahoo.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/22551] [4.0/4.1 Regression] [ICE] in tree_low_cst, at tree.c:3843 X-Bugzilla-Reason: CC X-SW-Source: 2005-07/txt/msg02254.txt.bz2 List-Id: ------- Additional Comments From emailwastefilter-bugzillagccorg at yahoo dot com 2005-07-18 18:03 ------- (In reply to comment #2) > Hmm, 0x80000000+1 overflows which is invalid for constant expressions and really should be > rejected. The warnings seem on the money, but they should not cause the compiler to crash, right? The original code used 0xFFFE0000 in place of 0x80000000 and had around 26 warning messages before it crashed. If there are only 4 warning messages, then the compiler completes without crashing. Starting with 0x80000000 - 2 lets the compiler complete, as does commenting out one of the case statements. Several obivous ways around this code are to use an enum, an unsigned int, or an if-else if cascasde. These all result in no warnings, the first two justly, the last I'm not so sure. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22551