diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-01-23 00:45:55 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-01-23 00:45:55 +0000 |
commit | 8246df61f6de716acf1f8c64fac3c19970a2c174 (patch) | |
tree | eea5feb78eb13d53687b1211b304c2388ef2f63c /include | |
parent | 4d79724e130e69e3ce6327680460f399c18cb7eb (diff) | |
download | llvm-8246df61f6de716acf1f8c64fac3c19970a2c174.tar.gz llvm-8246df61f6de716acf1f8c64fac3c19970a2c174.tar.bz2 llvm-8246df61f6de716acf1f8c64fac3c19970a2c174.tar.xz |
Use the AttributeSet when removing multiple attributes. Use Attribute::AttrKind
when removing one attribute. This further encapsulates the use of the attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173214 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/IR/Attributes.h | 16 | ||||
-rw-r--r-- | include/llvm/IR/Function.h | 2 |
2 files changed, 15 insertions, 3 deletions
diff --git a/include/llvm/IR/Attributes.h b/include/llvm/IR/Attributes.h index 072b9cf43a..ab98910629 100644 --- a/include/llvm/IR/Attributes.h +++ b/include/llvm/IR/Attributes.h @@ -217,6 +217,11 @@ private: /// list. AttributeSet addAttr(LLVMContext &C, unsigned Idx, Attribute Attrs) const; + /// \brief Remove the specified attribute at the specified index from this + /// attribute list. Since attribute lists are immutable, this returns the new + /// list. + AttributeSet removeAttr(LLVMContext &C, unsigned Idx, Attribute Attrs) const; + explicit AttributeSet(AttributeSetImpl *LI) : AttrList(LI) {} public: AttributeSet() : AttrList(0) {} @@ -254,9 +259,16 @@ public: } /// \brief Remove the specified attribute at the specified index from this - /// attribute list. Since attribute lists are immutable, this returns the new + /// attribute list. Since attribute lists are immutable, this returns the new /// list. - AttributeSet removeAttr(LLVMContext &C, unsigned Idx, Attribute Attrs) const; + AttributeSet removeAttribute(LLVMContext &C, unsigned Idx, + Attribute::AttrKind Attr) const; + + /// \brief Remove the specified attributes at the specified index from this + /// attribute list. Since attribute lists are immutable, this returns the new + /// list. + AttributeSet removeAttributes(LLVMContext &C, unsigned Idx, + AttributeSet Attrs) const; //===--------------------------------------------------------------------===// // Attribute List Accessors diff --git a/include/llvm/IR/Function.h b/include/llvm/IR/Function.h index 46feb8ba28..fe27d9b75d 100644 --- a/include/llvm/IR/Function.h +++ b/include/llvm/IR/Function.h @@ -189,7 +189,7 @@ public: void addAttributes(unsigned i, AttributeSet attrs); /// @brief removes the attributes from the list of attributes. - void removeAttribute(unsigned i, Attribute attr); + void removeAttributes(unsigned i, AttributeSet attr); /// @brief Extract the alignment for a call or parameter (0=unknown). unsigned getParamAlignment(unsigned i) const { |