Correctly add an array marker on a node when appropriate!
authorChris Lattner <sabre@nondot.org>
Mon, 1 Mar 2004 19:02:54 +0000 (19:02 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 1 Mar 2004 19:02:54 +0000 (19:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12055 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/DataStructure/Local.cpp

index 471eeb956102317191a532c14c3c142a09935f29..dea8e9f3601e8aa1f940fc5334bb155c8cd64ca2 100644 (file)
@@ -383,6 +383,10 @@ void GraphBuilder::visitGetElementPtrInst(User &GEP) {
     if (const StructType *STy = dyn_cast<StructType>(*I)) {
       unsigned FieldNo = cast<ConstantUInt>(I.getOperand())->getValue();
       Offset += TD.getStructLayout(STy)->MemberOffsets[FieldNo];
+    } else if (const PointerType *PTy = dyn_cast<PointerType>(*I)) {
+      if (!isa<Constant>(I.getOperand()) ||
+          !cast<Constant>(I.getOperand())->isNullValue())
+        Value.getNode()->setArrayMarker();
     }