From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16488 invoked by alias); 13 Dec 2004 23:00:50 -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 16459 invoked by alias); 13 Dec 2004 23:00:46 -0000 Date: Mon, 13 Dec 2004 23:00:00 -0000 Message-ID: <20041213230046.16458.qmail@sourceware.org> From: "law at redhat dot com" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20041213212814.18968.schwab@suse.de> References: <20041213212814.18968.schwab@suse.de> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug c++/18968] [4.0 regression] ICE: tree check: expected ssa_name, have addr_expr in vrp_hash X-Bugzilla-Reason: CC X-SW-Source: 2004-12/txt/msg01890.txt.bz2 List-Id: ------- Additional Comments From law at redhat dot com 2004-12-13 23:00 ------- Subject: Re: [4.0 regression] ICE: tree check: expected ssa_name, have addr_expr in vrp_hash On Mon, 2004-12-13 at 22:38 +0000, pinskia at gcc dot gnu dot org wrote: > ------- Additional Comments From pinskia at gcc dot gnu dot org 2004-12-13 22:38 ------- > This patch fixes the problem but I don't know if it is the correct fix: > Index: tree-ssa-dom.c > =============================================================== > ==== > RCS file: /cvs/gcc/gcc/gcc/tree-ssa-dom.c,v > retrieving revision 2.80 > diff -u -p -r2.80 tree-ssa-dom.c > --- tree-ssa-dom.c 13 Dec 2004 20:12:33 -0000 2.80 > +++ tree-ssa-dom.c 13 Dec 2004 22:35:50 -0000 > @@ -3265,6 +3265,9 @@ record_range (tree cond, basic_block bb) > struct vrp_element *element; > varray_type *vrp_records_p; > void **slot; > + > + if (TREE_CODE (TREE_OPERAND (cond, 0)) != SSA_NAME) > + return; > > > vrp_hash_elt = xmalloc (sizeof (struct vrp_hash_elt)); So what does the condition look like? I don't think we should be getting into this code with anything other than an SSA_NAME as the first argument in a COND_EXPR. An analysis of the problem is a lot more useful to me than a patch with no analysis. jeff -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18968