diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-01-07 08:24:35 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-01-07 08:24:35 +0000 |
commit | a90a99a82b9c5c39fc6dbee9c266dcd7b107fe2f (patch) | |
tree | 754eb87bfbea511e1762cce58b8f7f23efade2d6 /lib | |
parent | a812641879b89d636bd2e72b0cba8c13d84be709 (diff) |
Rough out a new c'tor for the AttrBuilder class.
This c'tor takes the AttributeSet class as the parameter. It will eventually
grab the attributes from the specified index and create a new attribute builder
with those attributes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171712 91177308-0d34-0410-b5e6-96231b3b80d8
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; |