ModuleEmitter::ModuleEmitter(Assembly& assembly, Module& module) : module_(module) , assembly_(assembly) , block_(new block(NULL, module.loc, 0)) , tls_(NULL) , staticInitBlock_(NULL) , staticFields_(NULL) , typedefs_(NULL) , irState_(NULL) , verifiable_(true) { typedefs_ = block_->addNewBlock(); prev_ = current_; current_ = this; assembly.add(*block_); irState_ = new IRState(*block_); }