Problem with operand handling

Andrew Pinski pinskia@physics.uc.edu
Tue Sep 7 16:41:00 GMT 2004


On Sep 4, 2004, at 7:51 AM, Richard Kenner wrote:

> When I work around the problem with lcm.c, I then get:
>
> ../../xgcc -B../../ -c -g -O2      -W -Wall -gnatpg  g-exctra.adb -o 
> g-exctra.o
> +===========================GNAT BUG 
> DETECTED==============================+
> | 5.03h (20040831) (x86_64-unknown-linux-gnu) GCC error:               
>     |
> | in var_ann, at tree-flow-inline.h:38                                 
>     |
>
> Upon investigating, I find I don't understand something about 
> tree-ssa-operands.
>
> It looks like add_stmt_operand is supposed to be passed a pointer to 
> the
> operand.  But in a number of places in tree-ssa-operands.c, you have
>
> 	tree var = referenced_var (i);
>
> 	add_stmt_operand (&var, ...);
>
> But this puts a pointer into the stack of that function into the 
> operands
> of the statement.  That looks very wrong and seems to be causing my 
> problem.
> How is that supposed to work?


Usually this means someone forgot to mark something as needed for
renaming.  I have ran this myself when writing some SSA based
optimizations and forgot to mark a variable for renaming.

Thanks,
Andrew Pinski



More information about the Gcc mailing list