Add and Operator== method to ValID so equality can be done properly for
named or numbered ValIDs.
llvm-svn: 35172
diff --git a/llvm/lib/AsmParser/ParserInternals.h b/llvm/lib/AsmParser/ParserInternals.h
index 1bc744b..6396d94 100644
--- a/llvm/lib/AsmParser/ParserInternals.h
+++ b/llvm/lib/AsmParser/ParserInternals.h
@@ -207,6 +207,26 @@
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 {