How can i get a ref from a this pointer ?

James E Wilson wilson@specifixinc.com
Wed Nov 10 02:49:00 GMT 2004


Richard Buchmann wrote:
> I'm looking for a simple way to get something like a COMPONENT_REF tree node
> from an expression tree node.

If you already have address arithmetic, then there is no easy way to get 
the COMPONENT_REF back.  You probably have to do this manually.  Look up 
the type info, and then look at the fields of the type to find out which 
one is at the index.

> The PLUS_EXPR node has 2 operands : the first is a NOP_EXPR node (this
> pointer...) and the second one is an integer node (the offset).
> I would like to get a COMPONENT_REF node to know what FIELD is used : a or b.

You didn't mention which gcc sources you use.  This will likely work 
differently in different gcc versions.

In current gcc development sources, which have the tree-ssa optimization 
passes, the COMPONENT_REF seems to be still there.  If I compile with 
-fdump-tree-all, and look at the t02 and t03 files, I see "->" which is 
a COMPONENT_REF.  Maybe you are looking at older gcc sources?  In older 
gcc sources, you probably can't do much useful with the trees.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com



More information about the Gcc mailing list