This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem with operand handling


On Tue, 2004-09-07 at 09:31, Richard Kenner wrote:
>     > It was happening via a TMT "variable".
> 
>     These are alias variables and should never pass the is_gimple_test, so
>     we ought not be doing anything with the address being passed into
>     add_stmt_operand, the entire function should be dealing with just the
>     'var' aspect of whats being passed in.
> 
>     Does your variable pass this causing it to be a gimple_reg?  Perhaps a
>     flag is set incorrectly or something?
> 
> OK, I went back to the code before any of my changes.
> 
> The add_stmt_operand is being called from the EXECUTE_IF_SET_IN_BITMAP
> call that's looking at call_clobbered_vars.  The variable in this case is
> decorator_traceback and is_gimple_reg is set.  In the initial case,
> a TMT variable isn't involved.

what is 'decorator_traceback'? 

>From your other note, it seems to indicate that the root of the problem
is that it is being treated as *both* a virtual and a real operand,
which is not allowed.

 The call clobbered list should NOT contain anything which passes
is_gimple_reg(), to the best of my knowledge.  Did you call
mark_call_clobbered() on decorator_traceback?  If so, why if it passes
all the tests in is_gimple_reg..  ie, its not volatile, its address is
not taken, and its not global...

Andrew


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]