On Mon, Jul 4, 2011 at 5:44 PM, Philip Herron <redbrain@xxxxxxxxxxx> wrote: > On 4 July 2011 16:30, Philip Herron <redbrain@xxxxxxxxxxx> wrote: >> On 4 July 2011 16:13, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote: >>> On 4 July 2011 15:28, konica sarker wrote: >>>> "A tree is a pointer type, but the object to which it points may be of >>>> a variety of types" >>>> >>>> suppose i have a tree t; >>>> can you help me, how to identify the object type of the tree? >>> >>> From http://gcc.gnu.org/onlinedocs/gccint/Tree-overview.html >>> >>> "You can tell what kind of node a particular tree is by using the >>> TREE_CODE macro." >>> >>>> what does the function TREE_TYPE() do? >>> >>> From http://gcc.gnu.org/onlinedocs/gccint/Macros-and-Functions.html >>> >>> "Many trees store the type of an expression or declaration in this field." >>> >>> And from gcc/tree.h: >>> >>> /* In all nodes that are expressions, this is the data type of the expression. >>> In POINTER_TYPE nodes, this is the type that the pointer points to. >>> In ARRAY_TYPE nodes, this is the type of the elements. >>> In VECTOR_TYPE nodes, this is the type of the elements. */ >>> #define TREE_TYPE(NODE) __extension__ \ >>> (*({__typeof (NODE) const __t = CONTAINS_STRUCT_CHECK (NODE, TS_TYPED); \ >>> &__t->typed.type; })) >>> >> >> The way i tend to think of tree's is just DAG's, >> http://gcc.gnu.org/wiki/GenericAPI >> I started documenting more there, but i will continue to add to that >> as its no where near complete. >> > > Also: debug_tree (tree), is a useful function! > Thanks, another question is it possible to find the address space of a node of a tree?