}
bool Attribute::hasAttribute(AttrVal Val) const {
- return Attrs && Attrs->hasAttribute(Val);
+ return pImpl && pImpl->hasAttribute(Val);
}
bool Attribute::hasAttributes() const {
- return Attrs && Attrs->hasAttributes();
+ return pImpl && pImpl->hasAttributes();
}
bool Attribute::hasAttributes(const Attribute &A) const {
- return Attrs && Attrs->hasAttributes(A);
+ return pImpl && pImpl->hasAttributes(A);
}
/// This returns the alignment field of an attribute as a byte alignment value.
unsigned Attribute::getAlignment() const {
if (!hasAttribute(Attribute::Alignment))
return 0;
- return 1U << ((Attrs->getAlignment() >> 16) - 1);
+ return 1U << ((pImpl->getAlignment() >> 16) - 1);
}
/// This returns the stack alignment field of an attribute as a byte alignment
unsigned Attribute::getStackAlignment() const {
if (!hasAttribute(Attribute::StackAlignment))
return 0;
- return 1U << ((Attrs->getStackAlignment() >> 26) - 1);
+ return 1U << ((pImpl->getStackAlignment() >> 26) - 1);
}
uint64_t Attribute::Raw() const {
- return Attrs ? Attrs->Raw() : 0;
+ return pImpl ? pImpl->Raw() : 0;
}
Attribute Attribute::typeIncompatible(Type *Ty) {
//===----------------------------------------------------------------------===//
const AttributeSet &AttributeSet::operator=(const AttributeSet &RHS) {
- if (AttrList == RHS.AttrList) return *this;
-
AttrList = RHS.AttrList;
return *this;
}