diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/IR/AttributeImpl.h | 4 | ||||
-rw-r--r-- | lib/IR/Attributes.cpp | 20 |
2 files changed, 21 insertions, 3 deletions
diff --git a/lib/IR/AttributeImpl.h b/lib/IR/AttributeImpl.h index a2a5218d80..7bb666a40a 100644 --- a/lib/IR/AttributeImpl.h +++ b/lib/IR/AttributeImpl.h @@ -39,9 +39,7 @@ public: ArrayRef<Constant*> values); AttributeImpl(LLVMContext &C, StringRef data); - ArrayRef<Constant*> getValues() const { - return Vals; - } + ArrayRef<Constant*> getValues() const { return Vals; } bool hasAttribute(Attribute::AttrKind A) const; diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp index 117b510288..bef7a6c174 100644 --- a/lib/IR/Attributes.cpp +++ b/lib/IR/Attributes.cpp @@ -241,6 +241,26 @@ std::string Attribute::getAsString() const { // AttrBuilder Method Implementations //===----------------------------------------------------------------------===// +AttrBuilder::AttrBuilder(AttributeSet AS, unsigned Idx) + : Alignment(0), StackAlignment(0) { + AttributeSetImpl *pImpl = AS.AttrList; + if (!pImpl) return; + + ArrayRef<AttributeWithIndex> AttrList = pImpl->getAttributes(); + const AttributeWithIndex *AWI = 0; + for (unsigned I = 0, E = AttrList.size(); I != E; ++I) + if (AttrList[I].Index == Idx) { + AWI = &AttrList[I]; + break; + } + + assert(AWI && "Cannot find index in attribute set!"); + + /// FIXME: This will be modified in the future. Basically, the + /// AttributeWithIndex class will contain the + +} + void AttrBuilder::clear() { Attrs.clear(); Alignment = StackAlignment = 0; |