| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- //===- 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);
- AttributeSet ASs[] = {
- AttributeSet::get(C, 1, Attribute::ZExt),
- AttributeSet::get(C, 2, Attribute::SExt)
- };
- AttributeSet SetA = AttributeSet::get(C, ASs);
- AttributeSet SetB = AttributeSet::get(C, ASs);
- EXPECT_EQ(SetA, SetB);
- }
- TEST(Attributes, Ordering) {
- LLVMContext C;
- AttributeSet ASs[] = {
- AttributeSet::get(C, 2, Attribute::ZExt),
- AttributeSet::get(C, 1, Attribute::SExt)
- };
- AttributeSet SetA = AttributeSet::get(C, ASs);
- AttributeSet SetB = SetA.removeAttributes(C, 1, ASs[1]);
- EXPECT_NE(SetA, SetB);
- }
- } // end anonymous namespace
|