aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2013-01-27 10:28:39 +0000
committerBill Wendling <isanbard@gmail.com>2013-01-27 10:28:39 +0000
commit16f95669ec814d98ce28ad514df603c01d662ee8 (patch)
tree55843eed546e5314c1d4a3a41a1daf71fc3239d9
parent08c11d302325b3715d77f4208d183c9b2a253b14 (diff)
Fix miscompile. Add back the use of the ArrayRef version of the ::get method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173613 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/IR/Attributes.h2
-rw-r--r--lib/IR/Attributes.cpp7
2 files changed, 6 insertions, 3 deletions
diff --git a/include/llvm/IR/Attributes.h b/include/llvm/IR/Attributes.h
index e8762942b1..46ba596307 100644
--- a/include/llvm/IR/Attributes.h
+++ b/include/llvm/IR/Attributes.h
@@ -109,7 +109,7 @@ public:
/// \brief Return a uniquified Attribute object. This takes the uniquified
/// value from the Builder and wraps it in the Attribute class.
- static Attribute get(LLVMContext &Context, AttrKind Kind);
+ static Attribute get(LLVMContext &Context, ArrayRef<AttrKind> Kinds);
static Attribute get(LLVMContext &Context, AttrBuilder &B);
/// \brief Return true if the attribute is present.
diff --git a/lib/IR/Attributes.cpp b/lib/IR/Attributes.cpp
index 937514a0a4..8ec192b813 100644
--- a/lib/IR/Attributes.cpp
+++ b/lib/IR/Attributes.cpp
@@ -30,8 +30,11 @@ using namespace llvm;
// Attribute Implementation
//===----------------------------------------------------------------------===//
-Attribute Attribute::get(LLVMContext &Context, AttrKind Kind) {
- AttrBuilder B(Kind);
+Attribute Attribute::get(LLVMContext &Context, ArrayRef<AttrKind> Kinds) {
+ AttrBuilder B;
+ for (ArrayRef<AttrKind>::iterator I = Kinds.begin(), E = Kinds.end();
+ I != E; ++I)
+ B.addAttribute(*I);
return Attribute::get(Context, B);
}