diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-10-09 20:56:48 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-10-09 20:56:48 +0000 |
commit | 9ef99c96da5882f18daa67132f511a32cc26f2d8 (patch) | |
tree | 5e9adcc007cb9b6e05eb2dfcc202fe1fb742047b /lib | |
parent | f8db977b68aabb0f1818badb68914b29cc66d460 (diff) | |
download | external_llvm-9ef99c96da5882f18daa67132f511a32cc26f2d8.zip external_llvm-9ef99c96da5882f18daa67132f511a32cc26f2d8.tar.gz external_llvm-9ef99c96da5882f18daa67132f511a32cc26f2d8.tar.bz2 |
Revert r165547 to fix build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165548 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/VMCore/Attributes.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/VMCore/Attributes.cpp b/lib/VMCore/Attributes.cpp index c176fed..88f20e9 100644 --- a/lib/VMCore/Attributes.cpp +++ b/lib/VMCore/Attributes.cpp @@ -75,13 +75,17 @@ bool Attributes::hasAttributes(const Attributes &A) const { /// This returns the alignment field of an attribute as a byte alignment value. unsigned Attributes::getAlignment() const { - return Attrs.getAlignment(); + if (!hasAttribute(Attributes::Alignment)) + return 0; + return 1U << ((Attrs.getAlignment() >> 16) - 1); } /// This returns the stack alignment field of an attribute as a byte alignment /// value. unsigned Attributes::getStackAlignment() const { - return Attrs.getStackAlignment(); + if (!hasAttribute(Attributes::StackAlignment)) + return 0; + return 1U << ((Attrs.getStackAlignment() >> 26) - 1); } bool Attributes::isEmptyOrSingleton() const { @@ -245,6 +249,8 @@ bool Attributes::Builder::hasAlignmentAttr() const { } uint64_t Attributes::Builder::getAlignment() const { + if (!hasAlignmentAttr()) + return 0; return 1U << (((Bits & AttributesImpl::getAttrMask(Attributes::Alignment)) >> 16) - 1); } @@ -300,11 +306,11 @@ bool AttributesImpl::hasAttributes(const Attributes &A) const { } uint64_t AttributesImpl::getAlignment() const { - return 1U << (((Bits & getAttrMask(Attributes::Alignment)) >> 16) - 1); + return Bits & getAttrMask(Attributes::Alignment); } uint64_t AttributesImpl::getStackAlignment() const { - return 1U << (((Bits & getAttrMask(Attributes::StackAlignment)) >> 26) - 1); + return Bits & getAttrMask(Attributes::StackAlignment); } bool AttributesImpl::isEmptyOrSingleton() const { |