summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-01-23 00:45:55 +0000
committerBill Wendling <isanbard@gmail.com>2013-01-23 00:45:55 +0000
commit8246df61f6de716acf1f8c64fac3c19970a2c174 (patch)
treeeea5feb78eb13d53687b1211b304c2388ef2f63c /include
parent4d79724e130e69e3ce6327680460f399c18cb7eb (diff)
downloadllvm-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.h16
-rw-r--r--include/llvm/IR/Function.h2
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 {