[tree-ssa] Computed gotos

law@redhat.com law@redhat.com
Tue Jun 17 05:29:00 GMT 2003


In message <200306170145.34317.paul@nowt.org>, Paul Brook writes:
 >On Monday 16 June 2003 6:18 pm, law@redhat.com wrote:
 >> In message <200306151759.45301.paul@nowt.org>, Paul Brook writes:
 >> Well, what do the tree nodes which use these addresses look like?
 >
 >We have a static array of structures which contain pointer to the labels.
 >We declare it something like
 >DECL_INITIAL(<staticvar>) =
 >CONSTRUCTOR<array>(TREE_LIST(
 >  CONSTRUCTOR<record>(TREE_LIST (
 >    FIELD_DECL, ADDR_EXPR(LABEL_DECL)))))
 >
 >Hopefully this makes some kind of sense. More detailed dumps follow.
 >I've tried to cut the following down as much as possible without loosing 
 >anything that might be important.
It makes sense :-)  I'd expect it to "just work" if you pass a copy of
the initializer down to the gimplifier.  See c-simplify.c gimplify_decl_stmt:

              /* We must still examine initializers for static variables
                 as they may contain a label address.  However, we must not
                 make any changes to the node or the queues.  So we
                 make a copy of the node before calling the gimplifier
                 and we use throw-away queues.  */
 

Jeff



More information about the Gcc mailing list