diff options
Diffstat (limited to 'unittests')
-rw-r--r-- | unittests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | unittests/VMCore/DerivedTypesTest.cpp | 88 |
2 files changed, 0 insertions, 89 deletions
diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 0d17c40c00..81d702981f 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -106,7 +106,6 @@ add_llvm_unittest(Transforms/Utils set(VMCoreSources VMCore/ConstantsTest.cpp - VMCore/DerivedTypesTest.cpp VMCore/InstructionsTest.cpp VMCore/MetadataTest.cpp VMCore/PassManagerTest.cpp diff --git a/unittests/VMCore/DerivedTypesTest.cpp b/unittests/VMCore/DerivedTypesTest.cpp deleted file mode 100644 index d0ba0264aa..0000000000 --- a/unittests/VMCore/DerivedTypesTest.cpp +++ /dev/null @@ -1,88 +0,0 @@ -//===- llvm/unittest/VMCore/DerivedTypesTest.cpp - Types unit tests -------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "gtest/gtest.h" -#include "../lib/VMCore/LLVMContextImpl.h" -#include "llvm/DerivedTypes.h" -#include "llvm/LLVMContext.h" -#include "llvm/Constants.h" -#include "llvm/Support/ValueHandle.h" -using namespace llvm; - -namespace { - -static void PR7658() { - LLVMContext ctx; - - WeakVH NullPtr; - PATypeHolder h1; - { - OpaqueType *o1 = OpaqueType::get(ctx); - PointerType *p1 = PointerType::get(o1, 0); - - std::vector<const Type *> t1; - t1.push_back(IntegerType::get(ctx, 32)); - t1.push_back(p1); - NullPtr = ConstantPointerNull::get(p1); - OpaqueType *o2 = OpaqueType::get (ctx); - PointerType *p2 = PointerType::get (o2, 0); - t1.push_back(p2); - - - StructType *s1 = StructType::get(ctx, t1); - h1 = s1; - o1->refineAbstractTypeTo(s1); - o2->refineAbstractTypeTo(h1.get()); // h1 = { i32, \2*, \2* } - } - - - OpaqueType *o3 = OpaqueType::get(ctx); - PointerType *p3 = PointerType::get(o3, 0); // p3 = opaque* - - std::vector<const Type *> t2; - t2.push_back(IntegerType::get(ctx, 32)); - t2.push_back(p3); - - std::vector<Constant *> v2; - v2.push_back(ConstantInt::get(IntegerType::get(ctx, 32), 14)); - v2.push_back(ConstantPointerNull::get(p3)); - - OpaqueType *o4 = OpaqueType::get(ctx); - { - PointerType *p4 = PointerType::get(o4, 0); - t2.push_back(p4); - v2.push_back(ConstantPointerNull::get(p4)); - } - - WeakVH CS = ConstantStruct::getAnon(ctx, v2, false); // { i32 14, opaque* null, opaque* null} - - StructType *s2 = StructType::get(ctx, t2); - PATypeHolder h2(s2); - o3->refineAbstractTypeTo(s2); - o4->refineAbstractTypeTo(h2.get()); -} - - -TEST(OpaqueTypeTest, RegisterWithContext) { - LLVMContext C; - LLVMContextImpl *pImpl = C.pImpl; - - // 1 refers to the AlwaysOpaqueTy allocated in the Context's constructor and - // destroyed in the destructor. - EXPECT_EQ(1u, pImpl->OpaqueTypes.size()); - { - PATypeHolder Type = OpaqueType::get(C); - EXPECT_EQ(2u, pImpl->OpaqueTypes.size()); - } - EXPECT_EQ(1u, pImpl->OpaqueTypes.size()); - - PR7658(); -} - -} // namespace |