Have AttrBuilder defriend the Attributes class.

llvm-svn: 166011
This commit is contained in:
Bill Wendling 2012-10-16 05:55:09 +00:00
parent 507c351a9a
commit 3ffbac4432
2 changed files with 5 additions and 4 deletions

View File

@ -192,7 +192,6 @@ public:
/// Builder's value, however, is not. So this can be used as a quick way to test
/// for equality, presence of attributes, etc.
class AttrBuilder {
friend class Attributes;
uint64_t Bits;
public:
AttrBuilder() : Bits(0) {}
@ -267,6 +266,8 @@ public:
.removeAttribute(Attributes::AddressSafety);
}
uint64_t Raw() const { return Bits; }
bool operator==(const AttrBuilder &B) {
return Bits == B.Bits;
}

View File

@ -38,13 +38,13 @@ Attributes Attributes::get(LLVMContext &Context, ArrayRef<AttrVal> Vals) {
Attributes Attributes::get(LLVMContext &Context, AttrBuilder &B) {
// If there are no attributes, return an empty Attributes class.
if (B.Bits == 0)
if (!B.hasAttributes())
return Attributes();
// Otherwise, build a key to look up the existing attributes.
LLVMContextImpl *pImpl = Context.pImpl;
FoldingSetNodeID ID;
ID.AddInteger(B.Bits);
ID.AddInteger(B.Raw());
void *InsertPoint;
AttributesImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
@ -52,7 +52,7 @@ Attributes Attributes::get(LLVMContext &Context, AttrBuilder &B) {
if (!PA) {
// If we didn't find any existing attributes of the same shape then create a
// new one and insert it.
PA = new AttributesImpl(B.Bits);
PA = new AttributesImpl(B.Raw());
pImpl->AttrsSet.InsertNode(PA, InsertPoint);
}