diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp index 1a971109c22..938a34abdb8 100644 --- a/lib/IR/Attributes.cpp +++ b/lib/IR/Attributes.cpp @@ -767,33 +767,15 @@ AttrBuilder::AttrBuilder(AttributeSet AS, unsigned Idx) AttributeSetImpl *pImpl = AS.pImpl; if (!pImpl) return; - AttrBuilder B; - for (unsigned I = 0, E = pImpl->getNumAttributes(); I != E; ++I) { if (pImpl->getSlotIndex(I) != Idx) continue; - for (AttributeSetNode::const_iterator II = pImpl->begin(I), + for (AttributeSetImpl::const_iterator II = pImpl->begin(I), IE = pImpl->end(I); II != IE; ++II) - B.addAttributes(*II); + addAttributes(*II); break; } - - if (!B.hasAttributes()) return; - - uint64_t Mask = B.Raw(); - - for (Attribute::AttrKind I = Attribute::None; I != Attribute::EndAttrKinds; - I = Attribute::AttrKind(I + 1)) { - if (uint64_t A = (Mask & AttributeImpl::getAttrMask(I))) { - Attrs.insert(I); - - if (I == Attribute::Alignment) - Alignment = 1ULL << ((A >> 16) - 1); - else if (I == Attribute::StackAlignment) - StackAlignment = 1ULL << ((A >> 26)-1); - } - } } void AttrBuilder::clear() {