From 8591fa38e6bcd77344df0ab7c0de0efa90bb12cd Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sat, 12 Jan 2013 14:13:45 +0000 Subject: [PATCH] Add a unit test to verifies that attribute uniquing works so it doesn't break again. The folding set details can be subtle and broke twice in the last couple of weeks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172313 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/IR/AttributesTest.cpp | 34 +++++++++++++++++++++++++++++++++ unittests/IR/CMakeLists.txt | 1 + 2 files changed, 35 insertions(+) create mode 100644 unittests/IR/AttributesTest.cpp 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 -- 2.34.1