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
This commit is contained in:
Bill Wendling
2013-01-23 00:45:55 +00:00
parent 4d79724e13
commit 8246df61f6
9 changed files with 59 additions and 23 deletions

View File

@@ -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

View File

@@ -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 {