From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14295 invoked by alias); 12 Jan 2005 11:45:26 -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 14213 invoked by uid 48); 12 Jan 2005 11:45:13 -0000 Date: Wed, 12 Jan 2005 11:45:00 -0000 Message-ID: <20050112114513.14211.qmail@sourceware.org> From: "steven at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050103134043.19241.larsbj@gullik.net> References: <20050103134043.19241.larsbj@gullik.net> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug tree-optimization/19241] [4.0 Regression] ICE in make_decl_rtl with inliner X-Bugzilla-Reason: CC X-SW-Source: 2005-01/txt/msg01494.txt.bz2 List-Id: ------- Additional Comments From steven at gcc dot gnu dot org 2005-01-12 11:45 ------- We choque on expanding this: inline void Iterator::IsEnd () const { compare (this, static_cast(0)->end()); } Which looks like this at -O: compare (&D.2008, &D.2013) (gdb) #11 0x00000000007008d1 in expand_call (exp=0x2a959f6820, target=0x0, ignore=1) at calls.c:2543 2543 precompute_register_parameters (num_actuals, args, ®_parm_seen); (gdb) p debug_tree(args[0]->tree_value) unit size align 8 symtab 0 alias set -1 fields needs-constructor X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown pointer_to_this reference_to_this chain > public unsigned DI size unit size align 64 symtab 0 alias set -1> invariant arg 0 addressable used ignored BLK file t.C line 22 size unit size align 8 context abstract_origin (mem/s:BLK (plus:DI (reg/f:DI 54 virtual-stack-vars) (const_int -1 [0xffffffffffffffff])) [0 D.2013+0 S1 A8])>> $18 = void (gdb) p debug_tree(args[1]->tree_value) unit size align 8 symtab 0 alias set -1 fields needs-constructor X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown pointer_to_this reference_to_this chain > public unsigned DI size unit size align 64 symtab 0 alias set -1> invariant arg 0 addressable used ignored BLK file t.C line 22 size unit size align 8 context abstract_origin >> $19 = void (gdb) Note that the arg 1 does not have RTL yet. We eventually die expanding that arg when we trigger an assert: #1 0x0000000000a4eceb in make_decl_rtl (decl=0x2a959f7270) at varasm.c:868 868 abort (); (gdb) p debug_tree(decl) unit size align 8 symtab 0 alias set -1 fields nonlocal decl_4 VOID file t.C line 12 align 1 context > needs-constructor X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown pointer_to_this reference_to_this chain > addressable used ignored BLK file t.C line 22 size unit size align 8 context abstract_origin > $31 = void (gdb) l 863 || (TREE_CODE (decl) == VAR_DECL 864 && !TREE_STATIC (decl) 865 && !TREE_PUBLIC (decl) 866 && !DECL_EXTERNAL (decl) 867 && !DECL_REGISTER (decl))) 868 abort (); 869 /* And that we were not given a type or a label. */ 870 else if (TREE_CODE (decl) == TYPE_DECL 871 || TREE_CODE (decl) == LABEL_DECL) 872 abort (); (gdb) p debug_tree (decl) unit size align 8 symtab 0 alias set -1 fields nonlocal decl_4 VOID file t.C line 12 align 1 context > needs-constructor X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown pointer_to_this reference_to_this chain > addressable used ignored BLK file t.C line 22 size unit size align 8 context abstract_origin > $36 = void -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19241