From 6dc3781d44e56f0addf28b06232a50f3f9e6b1af Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Tue, 29 Jan 2013 20:45:34 +0000 Subject: [PATCH] Add a couple of accessor methods to get the kind and values of an attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173828 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/Attributes.h | 7 +++++++ lib/IR/Attributes.cpp | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/include/llvm/IR/Attributes.h b/include/llvm/IR/Attributes.h index 1578789df60..5ebb6296cd6 100644 --- a/include/llvm/IR/Attributes.h +++ b/include/llvm/IR/Attributes.h @@ -28,6 +28,7 @@ class AttrBuilder; class AttributeImpl; class AttributeSetImpl; class AttributeSetNode; +class Constant; class LLVMContext; class Type; @@ -130,6 +131,12 @@ public: /// \brief Return true if attributes exist bool hasAttributes() const; + /// \brief Return the kind of this attribute. + Constant *getAttributeKind() const; + + /// \brief Return the value (if present) of the non-target-specific attribute. + ArrayRef getAttributeValues() const; + /// \brief Returns the alignment field of an attribute as a byte alignment /// value. unsigned getAlignment() const; diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp index a3f62ae0764..1a971109c22 100644 --- a/lib/IR/Attributes.cpp +++ b/lib/IR/Attributes.cpp @@ -83,6 +83,14 @@ bool Attribute::hasAttributes() const { return pImpl && pImpl->hasAttributes(); } +Constant *Attribute::getAttributeKind() const { + return pImpl ? pImpl->getAttributeKind() : 0; +} + +ArrayRef Attribute::getAttributeValues() const { + return pImpl ? pImpl->getAttributeValues() : ArrayRef(); +} + /// This returns the alignment field of an attribute as a byte alignment value. unsigned Attribute::getAlignment() const { if (!hasAttribute(Attribute::Alignment))