From 16f95669ec814d98ce28ad514df603c01d662ee8 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Sun, 27 Jan 2013 10:28:39 +0000 Subject: [PATCH] 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 --- include/llvm/IR/Attributes.h | 2 +- lib/IR/Attributes.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/llvm/IR/Attributes.h b/include/llvm/IR/Attributes.h index e8762942b1b..46ba5963072 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 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 937514a0a4a..8ec192b813c 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 Kinds) { + AttrBuilder B; + for (ArrayRef::iterator I = Kinds.begin(), E = Kinds.end(); + I != E; ++I) + B.addAttribute(*I); return Attribute::get(Context, B); }