Add an assertion and a method
authorChris Lattner <sabre@nondot.org>
Sat, 30 Oct 2004 04:03:47 +0000 (04:03 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 30 Oct 2004 04:03:47 +0000 (04:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17353 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/DataStructure/DSSupport.h

index e5bf3904728626ed36776832e7f43f7d1659d115..6dbd36b4444d260914a829df2a7ef06d75315eed 100644 (file)
@@ -95,9 +95,13 @@ public:
 
   // Allow explicit conversion to DSNode...
   inline DSNode *getNode() const;  // Defined inline in DSNode.h
-  unsigned getOffset() const { return Offset; }
+  unsigned getOffset() const {
+    assert(!isForwarding() && "This is a forwarding NH, call getNode() first!");
+    return Offset;
+  }
 
   void setOffset(unsigned O) {
+    assert(!isForwarding() && "This is a forwarding NH, call getNode() first!");
     //assert((!N || Offset < N->Size || (N->Size == 0 && Offset == 0) ||
     //       !N->ForwardNH.isNull()) && "Node handle offset out of range!");
     //assert((!N || O < N->Size || (N->Size == 0 && O == 0) ||
@@ -128,6 +132,10 @@ public:
   inline void setLink(unsigned Num, const DSNodeHandle &NH);
 private:
   DSNode *HandleForwarding() const;
+
+  /// isForwarding - Return true if this NodeHandle is forwarding to another
+  /// one.
+  bool isForwarding() const;
 };
 
 } // End llvm namespace