From 410780b82c761075541bf5b58fbdb151d485bacc Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sat, 12 Jan 2013 14:13:45 +0000 Subject: 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 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 llvm/unittests/IR/AttributesTest.cpp (limited to 'llvm/unittests/IR/AttributesTest.cpp') diff --git a/llvm/unittests/IR/AttributesTest.cpp b/llvm/unittests/IR/AttributesTest.cpp new file mode 100644 index 0000000..627e10f --- /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 -- cgit v1.1