This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Using the tree.
- To: Virgil dot Palanciuc at cs dot pub dot ro
- Subject: Re: Using the tree.
- From: "Martin v. Loewis" <martin at loewis dot home dot cs dot tu-berlin dot de>
- Date: Sun, 28 May 2000 18:39:46 +0200
- CC: gcc at gcc dot gnu dot org
- References: <NDBBLMFNNKHMOCBKELIEIEMPCBAA.Virgil.Palanciuc@cs.pub.ro>
> Yes, this looks like the explanation. But what *exactly* does 'a
> binding level is closed' mean?
A binding level is a C block:
void foo(int x) /* binding level for parameters */
{ /* a new binding level opens */
int i;
for (i=0;i<10;i++){ /* a new binding level opens */
int k;
} /* the binding level containing k closes */
} /* the binding level containing i closes */
> Is the info still there (I think it should) ?
I don't think so: information on local variables is lost once the
block closes; this is the "statement at once" mode of RTL generation.
Only in the "function at once" mode, such information is preserved to
the end of the function.
In the RTL, the variables are represented by registers, which may or
may not be alive. I don't think you can reconstruct the declarations
from them.
Regards,
Martin