From 84b2d6c3c9f752032eccc9e5a43fadc564422562 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 25 Jan 2002 03:44:58 +0000 Subject: [PATCH] Check in testcase and fix llvm-svn: 1581 --- .../2002-01-24-ValueRefineAbsType.ll | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 test/Regression/Assembler/2002-01-24-ValueRefineAbsType.ll diff --git a/test/Regression/Assembler/2002-01-24-ValueRefineAbsType.ll b/test/Regression/Assembler/2002-01-24-ValueRefineAbsType.ll new file mode 100644 index 00000000000..c833c001cb2 --- /dev/null +++ b/test/Regression/Assembler/2002-01-24-ValueRefineAbsType.ll @@ -0,0 +1,24 @@ +; This testcase used to fail due to a lack of this diff in Value.cpp: +; diff -r1.16 Value.cpp +; 11c11 +; < #include "llvm/Type.h" +; --- +; > #include "llvm/DerivedTypes.h" +; 74c74,76 +; < assert(Ty.get() == (const Type*)OldTy &&"Can't refine anything but my type!"); +; --- +; > assert(Ty.get() == OldTy &&"Can't refine anything but my type!"); +; > if (OldTy == NewTy && !OldTy->isAbstract()) +; > Ty.removeUserFromConcrete(); +; +; This was causing an assertion failure, due to the "foo" Method object never releasing +; it's reference to the opaque %bb value. +; +declare void "foo"(%bb) + +%exception_descriptor = type opaque + +%bb = type int + +implementation +