On 7/6/07, Maurizio Vitale <maurizio.vitale@xxxxxxxxxxxxxxxxxxxxxx> wrote:
On Jul 6, 2007, at 6:09 PM, Daniel Berlin wrote: >> building of the expression. At least at the C++ source level >> everything in there is dead. >> > > Are you playing with global variables inside this code? > If so, that is why it is not removed. > I'm not sure I understand what you mean. The objects that make my expressions are either local (things like sc_int) or global (things like left). So in something like meta_eval(left(_1), i4+i32,i32) used as it was used in the code I've posted there would be global "constants" like left and _1 which are grabbed by reference for building expressions and local objects like i4 and i32.
Uh, because unless they are static, they may be referenced by other modules we cannot see, so we cannot remove them.