Scope *Scope::push() { Scope *s = copy(); //printf("Scope::push(this = %p) new = %p\n", this, s); assert(!(flags & SCOPEfree)); s->scopesym = NULL; s->sds = NULL; s->enclosing = this; #ifdef DEBUG if (enclosing) assert(!(enclosing->flags & SCOPEfree)); if (s == enclosing) { printf("this = %p, enclosing = %p, enclosing->enclosing = %p\n", s, this, enclosing); } assert(s != enclosing); #endif s->slabel = NULL; s->nofree = 0; s->fieldinit = saveFieldInit(); s->flags = (flags & (SCOPEcontract | SCOPEdebug | SCOPEctfe | SCOPEcompile | SCOPEconstraint)); s->lastdc = NULL; assert(this != s); return s; }
Scope *Scope::push() { Scope *s = copy(); //printf("Scope::push(this = %p) new = %p\n", this, s); assert(!(flags & SCOPEfree)); s->scopesym = NULL; s->sds = NULL; s->enclosing = this; s->slabel = NULL; s->nofree = 0; s->fieldinit = saveFieldInit(); s->flags = (flags & (SCOPEcontract | SCOPEdebug | SCOPEctfe | SCOPEcompile | SCOPEconstraint | SCOPEnoaccesscheck | SCOPEignoresymbolvisibility)); s->lastdc = NULL; assert(this != s); return s; }