OSDN Git Service

Refine this to only apply to null in the default address space.
authorDan Gohman <gohman@apple.com>
Thu, 19 Nov 2009 23:53:49 +0000 (23:53 +0000)
committerDan Gohman <gohman@apple.com>
Thu, 19 Nov 2009 23:53:49 +0000 (23:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89411 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/CaptureTracking.cpp

index ae0766b..6781dcc 100644 (file)
@@ -107,8 +107,10 @@ bool llvm::PointerMayBeCaptured(const Value *V,
       break;
     case Instruction::ICmp:
       // Comparing the pointer against null does not count as a capture.
-      if (isa<ConstantPointerNull>(I->getOperand(1)))
-        break;
+      if (ConstantPointerNull *CPN =
+            dyn_cast<ConstantPointerNull>(I->getOperand(1)))
+        if (CPN->getType()->getAddressSpace() == 0)
+          break;
       return true;
     default:
       // Something else - be conservative and say it is captured.