diff --git a/unittests/IR/AttributesTest.cpp b/unittests/IR/AttributesTest.cpp new file mode 100644 index 00000000000..627e10f4740 --- /dev/null +++ b/unittests/IR/AttributesTest.cpp @@ -0,0 +1,34 @@ +//===- llvm/unittest/IR/AttributesTest.cpp - Attributes unit tests --------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/IR/Attributes.h" +#include "llvm/IR/LLVMContext.h" +#include "gtest/gtest.h" +using namespace llvm; + +namespace { + +TEST(Attributes, Uniquing) { + LLVMContext C; + + Attribute AttrA = Attribute::get(C, Attribute::AlwaysInline); + Attribute AttrB = Attribute::get(C, Attribute::AlwaysInline); + EXPECT_EQ(AttrA, AttrB); + + AttributeWithIndex AWIs[] = { + AttributeWithIndex::get(C, 1, Attribute::ZExt), + AttributeWithIndex::get(C, 2, Attribute::SExt) + }; + + AttributeSet SetA = AttributeSet::get(C, AWIs); + AttributeSet SetB = AttributeSet::get(C, AWIs); + EXPECT_EQ(SetA, SetB); +} + +} // end anonymous namespace diff --git a/unittests/IR/CMakeLists.txt b/unittests/IR/CMakeLists.txt index 4ff94f70355..aed45979c06 100644 --- a/unittests/IR/CMakeLists.txt +++ b/unittests/IR/CMakeLists.txt @@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS ) set(IRSources + AttributesTest.cpp ConstantsTest.cpp DominatorTreeTest.cpp IRBuilderTest.cpp