Add a few (as yet unused) query methods to determine if the attribute that's
[oota-llvm.git] / lib / VMCore / Attributes.cpp
index a1e0856971de1a3cd6be326f65b557259683a4c2..52405f25ae6a420eb581fe425568f82f29c20ece 100644 (file)
@@ -302,7 +302,21 @@ AttributeImpl::AttributeImpl(LLVMContext &C, uint64_t data) {
   Data = ConstantInt::get(Type::getInt64Ty(C), data);
 }
 
+bool AttributeImpl::contains(Attribute::AttrKind Kind) const {
+  if (ConstantInt *CI = dyn_cast<ConstantInt>(Data))
+    return CI->getZExtValue() == Kind;
+  return false;
+}
+
+bool AttributeImpl::contains(StringRef Kind) const {
+  if (ConstantDataArray *CDA = dyn_cast<ConstantDataArray>(Data))
+    if (CDA->isString())
+      return CDA->getAsString() == Kind;
+  return false;
+}
+
 uint64_t AttributeImpl::getBitMask() const {
+  // FIXME: Remove this.
   return cast<ConstantInt>(Data)->getZExtValue();
 }