diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-10-09 19:01:18 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-10-09 19:01:18 +0000 |
commit | 3a106e60366a51b4594ec303ff8dbbc58913227f (patch) | |
tree | 8973e141d93b0cdaab17368f090f640a776cb38b /lib/VMCore/Attributes.cpp | |
parent | 62430fd1a1d901956dfbac7b0ab49e2e653d6fc5 (diff) |
Move the 'FunctionOnly' attributes thingy inside of the Attributes class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165530 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Attributes.cpp')
-rw-r--r-- | lib/VMCore/Attributes.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/VMCore/Attributes.cpp b/lib/VMCore/Attributes.cpp index f6906d72b7..45972635cb 100644 --- a/lib/VMCore/Attributes.cpp +++ b/lib/VMCore/Attributes.cpp @@ -120,20 +120,18 @@ uint64_t Attributes::Raw() const { Attributes Attributes::typeIncompatible(Type *Ty) { Attributes::Builder Incompatible; - if (!Ty->isIntegerTy()) { + if (!Ty->isIntegerTy()) // Attributes that only apply to integers. - Incompatible.addAttribute(Attributes::SExt); - Incompatible.addAttribute(Attributes::ZExt); - } + Incompatible.addAttribute(Attributes::SExt) + .addAttribute(Attributes::ZExt); - if (!Ty->isPointerTy()) { + if (!Ty->isPointerTy()) // Attributes that only apply to pointers. - Incompatible.addAttribute(Attributes::ByVal); - Incompatible.addAttribute(Attributes::Nest); - Incompatible.addAttribute(Attributes::NoAlias); - Incompatible.addAttribute(Attributes::NoCapture); - Incompatible.addAttribute(Attributes::StructRet); - } + Incompatible.addAttribute(Attributes::ByVal) + .addAttribute(Attributes::Nest) + .addAttribute(Attributes::NoAlias) + .addAttribute(Attributes::NoCapture) + .addAttribute(Attributes::StructRet); return Attributes(Incompatible.Bits); // FIXME: Use Attributes::get(). } @@ -210,8 +208,10 @@ std::string Attributes::getAsString() const { // Attributes::Builder Implementation //===----------------------------------------------------------------------===// -void Attributes::Builder::addAttribute(Attributes::AttrVal Val) { +Attributes::Builder &Attributes::Builder:: +addAttribute(Attributes::AttrVal Val) { Bits |= AttributesImpl::getAttrMask(Val); + return *this; } void Attributes::Builder::addAlignmentAttr(unsigned Align) { @@ -228,8 +228,10 @@ void Attributes::Builder::addStackAlignmentAttr(unsigned Align) { Bits |= (Log2_32(Align) + 1) << 26; } -void Attributes::Builder::removeAttribute(Attributes::AttrVal Val) { +Attributes::Builder &Attributes::Builder:: +removeAttribute(Attributes::AttrVal Val) { Bits &= ~AttributesImpl::getAttrMask(Val); + return *this; } void Attributes::Builder::removeAttributes(const Attributes &A) { |