summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2012-10-09 00:01:21 +0000
committerBill Wendling <isanbard@gmail.com>2012-10-09 00:01:21 +0000
commit8831c0605bbc0c82ce56c2fb85bd681d1c013925 (patch)
tree99ab041142fcf8baf621d46fcb3afc99a113662e /include
parent9f11bf52b47cf91b09a6294a1b6dc750fa695fd8 (diff)
downloadllvm-8831c0605bbc0c82ce56c2fb85bd681d1c013925.tar.gz
llvm-8831c0605bbc0c82ce56c2fb85bd681d1c013925.tar.bz2
llvm-8831c0605bbc0c82ce56c2fb85bd681d1c013925.tar.xz
Convert to using the Attributes::Builder interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165465 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Attributes.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/llvm/Attributes.h b/include/llvm/Attributes.h
index c3198a555f..a564441def 100644
--- a/include/llvm/Attributes.h
+++ b/include/llvm/Attributes.h
@@ -199,6 +199,7 @@ public:
void clear() { Bits = 0; }
bool hasAttributes() const;
+ bool hasAttributes(const Attributes &A) const;
bool hasAlignmentAttr() const;
uint64_t getAlignment() const;
@@ -232,6 +233,8 @@ public:
void addAlignmentAttr(unsigned Align);
void addStackAlignmentAttr(unsigned Align);
+ void removeAttributes(const Attributes &A);
+
void removeAddressSafetyAttr();
void removeAlwaysInlineAttr();
void removeByValAttr();
@@ -267,6 +270,11 @@ public:
static Attributes get(Builder &B);
static Attributes get(LLVMContext &Context, Builder &B);
+ /// @brief Parameter attributes that do not apply to vararg call arguments.
+ bool hasIncompatibleWithVarArgsAttrs() const {
+ return hasStructRetAttr();
+ }
+
// Attribute query methods.
// FIXME: StackAlignment & Alignment attributes have no predicate methods.
bool hasAttributes() const {
@@ -494,6 +502,9 @@ public:
/// least one parameter or for the return value.
bool hasAttrSomewhere(Attributes Attr) const;
+ unsigned getNumAttrs() const;
+ Attributes &getAttributesAtIndex(unsigned i) const;
+
/// operator==/!= - Provide equality predicates.
bool operator==(const AttrListPtr &RHS) const
{ return AttrList == RHS.AttrList; }
@@ -537,7 +548,6 @@ private:
/// getAttributes - The attributes for the specified index are
/// returned. Attributes for the result are denoted with Idx = 0.
Attributes getAttributes(unsigned Idx) const;
-
};
} // End llvm namespace