New testcase distilled from much larger problem
authorChris Lattner <sabre@nondot.org>
Fri, 16 Aug 2002 16:54:52 +0000 (16:54 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 16 Aug 2002 16:54:52 +0000 (16:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3360 91177308-0d34-0410-b5e6-96231b3b80d8

test/Assembler/2002-08-16-ConstExprInlined.llx [new file with mode: 0644]

diff --git a/test/Assembler/2002-08-16-ConstExprInlined.llx b/test/Assembler/2002-08-16-ConstExprInlined.llx
new file mode 100644 (file)
index 0000000..37d9424
--- /dev/null
@@ -0,0 +1,25 @@
+; In this testcase, the bytecode reader or writer is not correctly handling the
+; ConstExpr reference.  Disassembling this program assembled yields invalid 
+; assembly (because there are placeholders still around), which the assembler
+; dies on.
+
+; There are two things that need to be fixed here.  Obviously assembling and
+; disassembling this would be good, but in addition to that, the bytecode
+; reader should NEVER produce a program "successfully" with placeholders still
+; around!
+
+; RUN: as < %s | dis | as
+
+%.LC0 = internal global [4 x sbyte] c"foo\00"          ; <[4 x sbyte]*> [#uses=1]
+
+%X = global sbyte * null
+
+implementation   ; Functions:
+
+declare int %puts(sbyte*)
+
+void %main() {
+bb1:                                   ;[#uses=0]
+       %reg211 = call int %puts( sbyte* getelementptr ([4 x sbyte]* %.LC0, uint 0, uint 0) )           ; <int> [#uses=0]
+       ret void
+}