diff --git a/lib/VMCore/Attributes.cpp b/lib/VMCore/Attributes.cpp index 393eab0eef8..cf8a89571a1 100644 --- a/lib/VMCore/Attributes.cpp +++ b/lib/VMCore/Attributes.cpp @@ -88,7 +88,7 @@ unsigned Attributes::getStackAlignment() const { } uint64_t Attributes::Raw() const { - return Attrs ? Attrs->Bits : 0; // FIXME: Don't access this directly! + return Attrs ? Attrs->Raw() : 0; } Attributes Attributes::typeIncompatible(Type *Ty) { diff --git a/lib/VMCore/AttributesImpl.h b/lib/VMCore/AttributesImpl.h index 93001e279f5..b4a0f615f36 100644 --- a/lib/VMCore/AttributesImpl.h +++ b/lib/VMCore/AttributesImpl.h @@ -22,9 +22,7 @@ namespace llvm { class Attributes; class AttributesImpl : public FoldingSetNode { - friend class Attributes; uint64_t Bits; // FIXME: We will be expanding this. - public: AttributesImpl(uint64_t bits) : Bits(bits) {} @@ -36,6 +34,8 @@ public: uint64_t getAlignment() const; uint64_t getStackAlignment() const; + uint64_t Raw() const { return Bits; } // FIXME: Remove. + static uint64_t getAttrMask(uint64_t Val); void Profile(FoldingSetNodeID &ID) const {