hasAttribute(Attributes::AddressSafety);
}
- bool isEmptyOrSingleton() const;
-
- // This is a "safe bool() operator".
bool operator == (const Attributes &A) const {
return Attrs.Bits == A.Attrs.Bits;
}
uint64_t getAlignment() const;
uint64_t getStackAlignment() const;
- bool isEmptyOrSingleton() const;
-
static uint64_t getAttrMask(uint64_t Val);
void Profile(FoldingSetNodeID &ID) const {
return 1U << ((Attrs.getStackAlignment() >> 26) - 1);
}
-bool Attributes::isEmptyOrSingleton() const {
- return Attrs.isEmptyOrSingleton();
-}
-
uint64_t Attributes::Raw() const {
return Attrs.Bits;
}
return Bits & getAttrMask(Attributes::StackAlignment);
}
-bool AttributesImpl::isEmptyOrSingleton() const {
- return (Bits & (Bits - 1)) == 0;
-}
-
//===----------------------------------------------------------------------===//
// AttributeListImpl Definition
//===----------------------------------------------------------------------===//