From 410780b82c761075541bf5b58fbdb151d485bacc 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. llvm-svn: 172313 --- llvm/unittests/IR/AttributesTest.cpp | 34 ++++++++++++++++++++++++++++ llvm/unittests/IR/CMakeLists.txt | 1 + 2 files changed, 35 insertions(+) create mode 100644 llvm/unittests/IR/AttributesTest.cpp diff --git a/llvm/unittests/IR/AttributesTest.cpp b/llvm/unittests/IR/AttributesTest.cpp new file mode 100644 index 000000000000..627e10f4740d --- /dev/null +++ b/llvm/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/llvm/unittests/IR/CMakeLists.txt b/llvm/unittests/IR/CMakeLists.txt index 4ff94f70355c..aed45979c069 100644 --- a/llvm/unittests/IR/CMakeLists.txt +++ b/llvm/unittests/IR/CMakeLists.txt @@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS ) set(IRSources + AttributesTest.cpp ConstantsTest.cpp DominatorTreeTest.cpp IRBuilderTest.cpp