From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15468 invoked by alias); 4 Feb 2007 01:51:09 -0000 Received: (qmail 15403 invoked by alias); 4 Feb 2007 01:50:59 -0000 Date: Sun, 04 Feb 2007 01:51:00 -0000 Message-ID: <20070204015059.15402.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/29209] ICE optimizing passing long double to abstract method while in other abstract's impl In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dave at hiauly1 dot hia dot nrc dot ca" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-02/txt/msg00594.txt.bz2 ------- Comment #8 from dave at hiauly1 dot hia dot nrc dot ca 2007-02-04 01:50 ------- Subject: Re: ICE optimizing passing long double to abstract method while in other abstract's impl > > ------- Comment #5 from tbm at cyrius dot com 2007-02-03 09:45 ------- > > I don't see this with Linux on HPPA hardware. Steve Ellcey, can you try on > > HPUX please? > > I can no longer duplicate this using 4.1.1 (I recently rebuilt it > with an updated version of gmp/mpfr). Trunk also doesn't ICE. Ignore the above. Whether or not an ICE occurs depends to some extent on checking being enabled. With checking enabled, I see this on 4.1 and the trunk. The ICE is here: result = expand_expr (exp, target, tmode, modifier == EXPAND_INITIALIZER ? EXPAND_INITIALIZER : EXPAND_CONST_ADDRESS); /* If the DECL isn't in memory, then the DECL wasn't properly marked TREE_ADDRESSABLE, which will be either a front-end or a tree optimizer bug. */ gcc_assert (MEM_P (result)); This is "result": (gdb) p debug_rtx ($ret0) (reg/v:TF 96 [ value ]) (gdb) p debug_tree (exp) unit size align 64 symtab 0 alias set 18 precision 128 pointer_to_this > addressable used TF file pr29209.cc line 19 size unit size align 64 context initial (reg/v:TF 96 [ value ]) arg-type incoming-rtl (reg:SI 25 %r25 [ value ])> (gdb) bt #0 expand_expr_addr_expr_1 (exp=0x7adede10, target=0x0, tmode=SImode, modifier=EXPAND_NORMAL) at ../../gcc/gcc/expr.c:6336 #1 0x0018c9a8 in expand_expr_real_1 (exp=0x7ae65f40, target=0x0, tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at ../../gcc/gcc/expr.c:6423 #2 0x00190c2c in expand_expr_real (exp=0x7ae65f40, target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at ../../gcc/gcc/expr.c:6536 #3 0x001539bc in expand_call (exp=0x7adef7a8, target=0x0, ignore=1) at ../../gcc/gcc/expr.h:493 #4 0x0018dd74 in expand_expr_real_1 (exp=0x7adef7a8, target=0x7ade5210, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at ../../gcc/gcc/expr.c:7493 #5 0x00190b3c in expand_expr_real (exp=0x7adef7a8, target=0x0, tmode=VOIDmode, modifier=EXPAND_NORMAL, alt_rtl=0x0) at ../../gcc/gcc/expr.c:6530 #6 0x001ff1ac in expand_expr_stmt (exp=0x7adef7a8) at ../../gcc/gcc/stmt.c:1357 #7 0x0039b720 in expand_gimple_basic_block (bb=0x7ae94000, dump_file=0xc) at ../../gcc/gcc/cfgexpand.c:1188 #8 0x0039c840 in tree_expand_cfg () at ../../gcc/gcc/cfgexpand.c:1626 #9 0x00227460 in execute_one_pass (pass=0x40014e28) at ../../gcc/gcc/passes.c:827 ... In frame 1, exp looks like this: (gdb) p debug_tree (exp) unit size align 64 symtab 0 alias set 18 precision 128 pointer_to_this > unsigned SI size unit size align 32 symtab 0 alias set -1> invariant arg 0 addressable used TF file pr29209.cc line 19 size unit size align 64 context initial (reg/v:TF 96 [ value ]) arg-type incoming-rtl (reg:SI 25 %r25 [ value ])>> The ICE occurs in the expand pass. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29209