This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Using the tree.


>     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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]