Hi, all.  I have a basic question about GENERIC trees.

I'm playing with writing a front end, and find the distinction between
BLOCK and BIND_EXPR to be somewhat confusing.  In particular, I'm trying
to get a handle on how to represent a function in GENERIC form.

On the surface the texi docs and code comments don't seem to agree:

Section on function trees say FUNCTION_DECL represents a function, and
that DECL_INITIAL is not empty.  But it doesn't say what should be
contained there.  It says DECL_SAVED_TREE should contain the body of the
function.

The comments in tree.h say that DECL_INITIAL holds the body of a
function, with a BLOCK tree at the root.

BLOCK nodes are described under TREE_SSA->GIMPLE, though these nodes are
part of GENERIC if I understand correctly.  In this section, it says
that block scopes and variables are declared in BIND_EXPR nodes.

Can someone please clarify how these things are supposed to relate in
GENERIC form, assuming the default conversion to GIMPLE will be used?

Thanks,
Jerry Quinn

Reply via email to