diff --git a/include/llvm/Attributes.h b/include/llvm/Attributes.h index aa7bc32761a..fcfacb12a55 100644 --- a/include/llvm/Attributes.h +++ b/include/llvm/Attributes.h @@ -334,8 +334,7 @@ public: // bits. uint64_t EncodedAttrs = Attrs.Raw() & 0xffff; if (Attrs.hasAttribute(Attributes::Alignment)) - EncodedAttrs |= (1ULL << 16) << - (((Attrs.Raw() & Attribute::Alignment_i) - 1) >> 16); + EncodedAttrs |= Attrs.getAlignment() << 16; EncodedAttrs |= (Attrs.Raw() & (0xfffULL << 21)) << 11; return EncodedAttrs; } diff --git a/lib/VMCore/Attributes.cpp b/lib/VMCore/Attributes.cpp index 45972635cb0..88f20e94a5c 100644 --- a/lib/VMCore/Attributes.cpp +++ b/lib/VMCore/Attributes.cpp @@ -245,13 +245,14 @@ bool Attributes::Builder::hasAttributes(const Attributes &A) const { return Bits & A.Raw(); } bool Attributes::Builder::hasAlignmentAttr() const { - return Bits & Attribute::Alignment_i; + return Bits & AttributesImpl::getAttrMask(Attributes::Alignment); } uint64_t Attributes::Builder::getAlignment() const { if (!hasAlignmentAttr()) return 0; - return 1U << (((Bits & Attribute::Alignment_i) >> 16) - 1); + return 1U << + (((Bits & AttributesImpl::getAttrMask(Attributes::Alignment)) >> 16) - 1); } //===----------------------------------------------------------------------===// @@ -305,11 +306,11 @@ bool AttributesImpl::hasAttributes(const Attributes &A) const { } uint64_t AttributesImpl::getAlignment() const { - return Bits & Attribute::Alignment_i; + return Bits & getAttrMask(Attributes::Alignment); } uint64_t AttributesImpl::getStackAlignment() const { - return Bits & Attribute::StackAlignment_i; + return Bits & getAttrMask(Attributes::StackAlignment); } bool AttributesImpl::isEmptyOrSingleton() const {