On Aug 18, 2005, at 5:08 AM, Dave Korn wrote:
I was referring to this bit:
Remember that it's not enough simply to execute the optimizers.
You have to build a symbol table and an environment for the code
to execute in.
IIUIC, that would be a requirement for the optimisers to be able to
perform the full constant-folding and get the same results as if the
function was executed at runtime instead, wouldn't it? It seems to
me like
it would be quite a difficult thing to get right in a cross
environment.
Imagine the following program:
{
int i = 234234;
printf ("%d", i);
}
imagine the folder collapsing this to puts ("234234");
Or:
enum {
foo=42;
foo() {
printf("%d", (int)foo);
}
Hint, we already have a symbol table, it already works for cross
compilation.