我有以下 LLVM 代码。奇怪的是,si
类型变量StoreInst
在 if 块外部分配新指令后立即变为 null(0),而我已在外部范围内声明它。这里发生了什么?
Value *OldVal = NULL;
StoreInst* si = NULL;
if ( ... )
{
if ( ... )
{
....
if ( ... )
{
...
StoreInst* si = new StoreInst(...);
errs() << "si = " << si << "\n"; // Get some address here
}
errs() << "-->SI = " << si << "\n"; // Here I get NULL, why?
}
...
}
我得到这样的输出,
si = 0x1822ba0
-->SI = 0x0