1//===- llvm/unittest/IR/TypesTest.cpp - Type unit tests -------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#include "llvm/IR/DerivedTypes.h" 11#include "llvm/IR/LLVMContext.h" 12#include "gtest/gtest.h" 13using namespace llvm; 14 15namespace { 16 17TEST(TypesTest, StructType) { 18 LLVMContext C; 19 20 // PR13522 21 StructType *Struct = StructType::create(C, "FooBar"); 22 EXPECT_EQ("FooBar", Struct->getName()); 23 Struct->setName(Struct->getName().substr(0, 3)); 24 EXPECT_EQ("Foo", Struct->getName()); 25 Struct->setName(""); 26 EXPECT_TRUE(Struct->getName().empty()); 27 EXPECT_FALSE(Struct->hasName()); 28} 29 30TEST(TypesTest, LayoutIdenticalEmptyStructs) { 31 LLVMContext C; 32 33 StructType *Foo = StructType::create(C, "Foo"); 34 StructType *Bar = StructType::create(C, "Bar"); 35 EXPECT_TRUE(Foo->isLayoutIdentical(Bar)); 36} 37 38} // end anonymous namespace 39