Add and Operator== method to ValID so equality can be done properly for
authorReid Spencer <rspencer@reidspencer.com>
Mon, 19 Mar 2007 18:34:28 +0000 (18:34 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Mon, 19 Mar 2007 18:34:28 +0000 (18:34 +0000)
named or numbered ValIDs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35172 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/ParserInternals.h

index 1bc744bc4bba3b0a2dd0649b0cc3eb77956febce..6396d94d258564aae1c4407a75dd189d2b825b97 100644 (file)
@@ -207,6 +207,26 @@ struct ValID {
     default:  assert(0 && "Unknown value type!"); return false;
     }
   }
+
+  bool operator==(const ValID &V) const {
+    if (Type == V.Type) {
+      switch (Type) {
+        case LocalID:
+        case GlobalID: return Num == V.Num;
+        case LocalName:
+        case GlobalName: return strcmp(Name, V.Name) == 0;
+        case ConstSIntVal:  return ConstPool64  == V.ConstPool64;
+        case ConstUIntVal:  return UConstPool64 == V.UConstPool64;
+        case ConstFPVal:    return ConstPoolFP  == V.ConstPoolFP;
+        case ConstantVal:   return ConstantValue == V.ConstantValue;
+        case ConstNullVal:  return true;
+        case ConstUndefVal: return true;
+        case ConstZeroVal:  return true;
+        default:  assert(0 && "Unknown value type!"); return false;
+      }
+    }
+    return false;
+  }
 };
 
 struct TypeWithAttrs {