This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/16443] [3.5 Regression] ICE during linux kernel compilation
- From: "dnovillo at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Jul 2004 15:44:39 -0000
- Subject: [Bug tree-optimization/16443] [3.5 Regression] ICE during linux kernel compilation
- References: <20040708212530.16443.ak@muc.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From dnovillo at redhat dot com 2004-07-13 15:44 -------
Subject: Re: [3.5 Regression] ICE during
linux kernel compilation
On Tue, 2004-07-13 at 11:16, ehrhardt at mathematik dot uni-ulm dot de
wrote:
> the following part from the patch identified by Volker looks
> very suspicious:
>
> + EXECUTE_IF_SET_IN_BITMAP (call_clobbered_vars, 0, i,
> + {
> + tree var = referenced_var (i);
> + add_stmt_operand (&var, stmt, opf_is_def, prev_vops);
> + });
>
> We're passing the address of a local var down to add_stmt_operand.
> add_stmt_operand will add this _address_, i.e. &var to the statement
> operands. This is bound to fail as soon as we leave the scope of var.
>
Not really. We are adding virtual definitions in this code, we don't
add &var, we add var. We only need the address when adding real
operands. I will agree that this is not a really good interface, but
add_stmt_operand is a local function.
> The following might be a temporary solution:
>
Here you just papered over the whole bug :)
Diego.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16443