Fix crash in AttributeList::addAttributes, add test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300614 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Kleckner 2017-04-18 22:10:18 +00:00
parent 51ccb32245
commit 129271c86a
2 changed files with 12 additions and 0 deletions

View File

@ -988,6 +988,9 @@ AttributeList AttributeList::addAttributes(LLVMContext &C, unsigned Index,
if (!AS.hasAttributes())
return *this;
if (!pImpl)
return AttributeList::get(C, {{Index, AS}});
#ifndef NDEBUG
// FIXME it is not obvious how this should work for alignment. For now, say
// we can't change a known alignment.

View File

@ -49,4 +49,13 @@ TEST(Attributes, Ordering) {
EXPECT_NE(SetA, SetB);
}
TEST(Attributes, AddAttributes) {
LLVMContext C;
AttributeList AL;
AttrBuilder B;
B.addAttribute(Attribute::NoReturn);
AL = AL.addAttributes(C, AttributeList::FunctionIndex, AttributeSet::get(C, B));
EXPECT_TRUE(AL.hasFnAttribute(Attribute::NoReturn));
}
} // end anonymous namespace