summaryrefslogtreecommitdiffstats
path: root/test/Assembler
diff options
context:
space:
mode:
Diffstat (limited to 'test/Assembler')
-rw-r--r--test/Assembler/2002-05-02-ParseError.ll2
-rw-r--r--test/Assembler/2002-07-25-ParserAssertionFailure.llx10
-rw-r--r--test/Assembler/2002-12-15-GlobalResolve.ll3
-rw-r--r--test/Assembler/2003-04-15-ConstantInitAssertion.llx4
-rw-r--r--test/Assembler/2003-05-21-MalformedShiftCrash.llx4
-rw-r--r--test/Assembler/2003-05-21-MalformedStructCrash.llx4
-rw-r--r--test/Assembler/2003-12-30-TypeMapInvalidMemory.llx5
-rw-r--r--test/Assembler/2004-11-28-InvalidTypeCrash.ll4
-rw-r--r--test/Assembler/2005-01-31-CallingAggregateFunction.ll9
-rw-r--r--test/Assembler/2006-09-28-CrashOnInvalid.ll7
-rw-r--r--test/Assembler/2006-12-09-Cast-To-Bool.ll3
-rw-r--r--test/Assembler/2007-01-02-Undefined-Arg-Type.ll2
-rw-r--r--test/Assembler/2007-01-05-Local-Name-Conflict.ll1
-rw-r--r--test/Assembler/2007-01-12-Varargs-Upgrade.ll33
-rw-r--r--test/Assembler/2007-01-16-CrashOnBadCast.ll2
-rw-r--r--test/Assembler/2007-01-16-CrashOnBadCast2.ll2
-rw-r--r--test/Assembler/2007-01-21-UpgradeNoArgs.ll13
-rw-r--r--test/Assembler/2007-01-22-UpgradeMalformedShift.ll4
-rw-r--r--test/Assembler/2007-01-22-UpgradeMalformedStruct.ll4
-rw-r--r--test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll5
20 files changed, 60 insertions, 61 deletions
diff --git a/test/Assembler/2002-05-02-ParseError.ll b/test/Assembler/2002-05-02-ParseError.ll
index d63784b..130c02e 100644
--- a/test/Assembler/2002-05-02-ParseError.ll
+++ b/test/Assembler/2002-05-02-ParseError.ll
@@ -5,6 +5,6 @@
%T = type i32 *
-define %T %test() {
+define %T @test() {
ret %T null
}
diff --git a/test/Assembler/2002-07-25-ParserAssertionFailure.llx b/test/Assembler/2002-07-25-ParserAssertionFailure.llx
index f7fdae8..c36964e 100644
--- a/test/Assembler/2002-07-25-ParserAssertionFailure.llx
+++ b/test/Assembler/2002-07-25-ParserAssertionFailure.llx
@@ -1,13 +1,13 @@
; Make sure we don't get an assertion failure, even though this is a parse
; error
-; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f 2>&1 | grep 'No arguments'
+; RUN: llvm-as 2>&1 < %s -o /dev/null -f | grep 'No arguments'
-%ty = type void (int)
+%ty = type void (i32)
-declare %ty* %foo()
+declare %ty* @foo()
-void %test() {
- call %ty* %foo( ) ; <%ty*>:0 [#uses=0]
+define void @test() {
+ call %ty* @foo( ) ; <%ty*>:0 [#uses=0]
ret void
}
diff --git a/test/Assembler/2002-12-15-GlobalResolve.ll b/test/Assembler/2002-12-15-GlobalResolve.ll
index c17a20d..3d32ac7 100644
--- a/test/Assembler/2002-12-15-GlobalResolve.ll
+++ b/test/Assembler/2002-12-15-GlobalResolve.ll
@@ -1,6 +1,5 @@
; RUN: llvm-upgrade < %s 2>/dev/null | llvm-as -o /dev/null -f &&
-; RUN: llvm-upgrade < %s 2>&1 | grep "Cannot disambiguate global value '%X'" &&
-; RUN: llvm-upgrade < %s 2>&1 | grep "Renaming global value '%X' to '%X.un"
+; RUN: llvm-upgrade < %s 2>&1 | grep "Renaming global variable 'X' to"
%X = external global uint *
%X = external global %T*
diff --git a/test/Assembler/2003-04-15-ConstantInitAssertion.llx b/test/Assembler/2003-04-15-ConstantInitAssertion.llx
index 33f6448..2d881c3 100644
--- a/test/Assembler/2003-04-15-ConstantInitAssertion.llx
+++ b/test/Assembler/2003-04-15-ConstantInitAssertion.llx
@@ -1,4 +1,4 @@
-; RUN: llvm-upgrade < %s | llvm-as 2>&1 >/dev/null | grep Expected
+; RUN: llvm-as 2>&1 < %s >/dev/null | grep "Expected type 'i32' for element #0"
; Test the case of a misformed constant initializer
; This should cause an assembler error, not an assertion failure!
-%X = constant {int} { float 1.0 }
+constant { i32 } { float 1.0 }
diff --git a/test/Assembler/2003-05-21-MalformedShiftCrash.llx b/test/Assembler/2003-05-21-MalformedShiftCrash.llx
index 24f4c98..d1618da 100644
--- a/test/Assembler/2003-05-21-MalformedShiftCrash.llx
+++ b/test/Assembler/2003-05-21-MalformedShiftCrash.llx
@@ -1,4 +1,4 @@
; Found by inspection of the code
-; RUN: llvm-upgrade < %s | llvm-as 2>&1 > /dev/null | grep "Shift constant expression"
+; RUN: llvm-as 2>&1 < %s > /dev/null | grep "Shift constant expression"
-global int shr (float 1.0, ubyte 2)
+global i32 ashr (float 1.0, i8 2)
diff --git a/test/Assembler/2003-05-21-MalformedStructCrash.llx b/test/Assembler/2003-05-21-MalformedStructCrash.llx
index 98c8428..89c89bc 100644
--- a/test/Assembler/2003-05-21-MalformedStructCrash.llx
+++ b/test/Assembler/2003-05-21-MalformedStructCrash.llx
@@ -1,4 +1,4 @@
; Found by inspection of the code
-; RUN: llvm-upgrade < %s | llvm-as 2>&1 > /dev/null | grep "Illegal"
+; RUN: llvm-as 2>&1 < %s > /dev/null | grep "Illegal number of init"
-global {} { int 7, float 1.0, int 7, int 8 }
+global {} { i32 7, float 1.0, i32 7, i32 8 }
diff --git a/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx b/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx
index 5438825..079ef6e 100644
--- a/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx
+++ b/test/Assembler/2003-12-30-TypeMapInvalidMemory.llx
@@ -1,7 +1,6 @@
-; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f 2>&1 | \
-; RUN: grep 'Reference to an undefined type'
+; RUN: llvm-as 2>&1 < %s -o /dev/null -f | grep 'Reference to an undef'
-%d_reduction_0_dparser_gram = global { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)*, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** } { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)* null, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** null }
+@d_reduction_0_dparser_gram = global { i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)*, i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)** } { i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)* null, i32 (i8*, i8**, i32, i32, { %struct.Grammar*, void (\4, %struct.d_loc_t*, i8**)*, %struct.D_Scope*, void (\4)*, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, i32, { i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ i32, %struct.d_loc_t, i8*, i8*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, i8**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }*)** null }
implementation
diff --git a/test/Assembler/2004-11-28-InvalidTypeCrash.ll b/test/Assembler/2004-11-28-InvalidTypeCrash.ll
index d0ecd91..ce3f061 100644
--- a/test/Assembler/2004-11-28-InvalidTypeCrash.ll
+++ b/test/Assembler/2004-11-28-InvalidTypeCrash.ll
@@ -1,4 +1,4 @@
-; RUN: (llvm-upgrade < %s | llvm-as -o /dev/null -f) 2>&1 | \
+; RUN: llvm-as 2>&1 < %s -o /dev/null -f | \
; RUN: grep 'Cannot create a null initialized value of this type!'
; Test for PR463. This program is erroneous, but should not crash llvm-as.
-%.FOO = internal global %struct.none zeroinitializer
+@.FOO = internal global %struct.none zeroinitializer
diff --git a/test/Assembler/2005-01-31-CallingAggregateFunction.ll b/test/Assembler/2005-01-31-CallingAggregateFunction.ll
index a5de2ba..7eff634 100644
--- a/test/Assembler/2005-01-31-CallingAggregateFunction.ll
+++ b/test/Assembler/2005-01-31-CallingAggregateFunction.ll
@@ -1,8 +1,9 @@
-; RUN: llvm-upgrade %s | llvm-as -o /dev/null -f 2>&1 | grep "LLVM functions cannot return aggregate types"
+; RUN: llvm-as 2>&1 < %s -o /dev/null -f | \
+; RUN: grep "LLVM functions cannot return aggregate types"
-void %test() {
- call {} %foo()
+define void @test() {
+ call {} @foo()
ret void
}
-declare {} %foo()
+declare {} @foo()
diff --git a/test/Assembler/2006-09-28-CrashOnInvalid.ll b/test/Assembler/2006-09-28-CrashOnInvalid.ll
index 1f67c9c..1691b3c 100644
--- a/test/Assembler/2006-09-28-CrashOnInvalid.ll
+++ b/test/Assembler/2006-09-28-CrashOnInvalid.ll
@@ -1,7 +1,8 @@
; Test for PR902. This program is erroneous, but should not crash llvm-as.
; This tests that a simple error is caught and processed correctly.
-; RUN: llvm-upgrade < %s | llvm-as 2>&1 | grep 'FP constant invalid for type'
-void %test() {
- add int 1, 2.0
+; RUN: llvm-as < %s 2>&1 >/dev/null | grep 'FP constant invalid for type'
+
+define void @test() {
+ add i32 1, 2.0
ret void
}
diff --git a/test/Assembler/2006-12-09-Cast-To-Bool.ll b/test/Assembler/2006-12-09-Cast-To-Bool.ll
index 3fc4d23..a70262c 100644
--- a/test/Assembler/2006-12-09-Cast-To-Bool.ll
+++ b/test/Assembler/2006-12-09-Cast-To-Bool.ll
@@ -1,5 +1,6 @@
; RUN: llvm-as < %s | llvm-dis | grep bitcast
-define i1 %main(i32 %X) {
+
+define i1 @main(i32 %X) {
%res = bitcast i1 true to i1
ret i1 %res
}
diff --git a/test/Assembler/2007-01-02-Undefined-Arg-Type.ll b/test/Assembler/2007-01-02-Undefined-Arg-Type.ll
index 96e6d6c..10eb964 100644
--- a/test/Assembler/2007-01-02-Undefined-Arg-Type.ll
+++ b/test/Assembler/2007-01-02-Undefined-Arg-Type.ll
@@ -5,6 +5,6 @@
implementation ; Functions:
-define i1 %someFunc(i32* %tmp.71.reload, %typedef.bc_struct* %n1) {
+define i1 @someFunc(i32* %tmp.71.reload, %typedef.bc_struct* %n1) {
ret i1 true
}
diff --git a/test/Assembler/2007-01-05-Local-Name-Conflict.ll b/test/Assembler/2007-01-05-Local-Name-Conflict.ll
index cb3a484..b35aed5 100644
--- a/test/Assembler/2007-01-05-Local-Name-Conflict.ll
+++ b/test/Assembler/2007-01-05-Local-Name-Conflict.ll
@@ -1,5 +1,4 @@
; RUN: llvm-upgrade < %s | llvm-as -o /dev/null -f
-; XFAIL: *
implementation ; Functions:
diff --git a/test/Assembler/2007-01-12-Varargs-Upgrade.ll b/test/Assembler/2007-01-12-Varargs-Upgrade.ll
index 3de12a3..3c1f5bb 100644
--- a/test/Assembler/2007-01-12-Varargs-Upgrade.ll
+++ b/test/Assembler/2007-01-12-Varargs-Upgrade.ll
@@ -1,45 +1,18 @@
; For PR1093: This test checks that llvm-upgrade correctly translates
; the llvm.va_* intrinsics to their cannonical argument form (i8*).
; RUN: llvm-upgrade < %s | llvm-as | llvm-dis | \
-; RUN: grep 'va_upgrade[0-9] = bitcast' | wc -l | grep 5
+; RUN: grep ' bitcast' | wc -l | grep 5
%str = internal constant [7 x ubyte] c"%d %d\0A\00" ; <[7 x ubyte]*> [#uses=1]
implementation ; Functions:
void %f(int %a_arg, ...) {
entry:
- %a = cast int %a_arg to uint ; <uint> [#uses=1]
%l1 = alloca sbyte*, align 4 ; <sbyte**> [#uses=5]
%l2 = alloca sbyte*, align 4 ; <sbyte**> [#uses=4]
- %memtmp = alloca sbyte* ; <sbyte**> [#uses=2]
+ %l3 = alloca sbyte* ; <sbyte**> [#uses=2]
call void %llvm.va_start( sbyte** %l1 )
- %tmp22 = seteq int %a_arg, 0 ; <bool> [#uses=1]
- %tmp23 = volatile load sbyte** %l1 ; <sbyte*> [#uses=2]
- br bool %tmp22, label %bb8, label %bb
-
-bb: ; preds = %bb, %entry
- %indvar = phi uint [ 0, %entry ], [ %indvar.next, %bb ] ; <uint> [#uses=1]
- %tmp.0 = phi sbyte* [ %tmp23, %entry ], [ %tmp, %bb ] ; <sbyte*> [#uses=2]
- %tmp2 = getelementptr sbyte* %tmp.0, int 4 ; <sbyte*> [#uses=1]
- volatile store sbyte* %tmp2, sbyte** %l1
- %tmp3 = cast sbyte* %tmp.0 to int* ; <int*> [#uses=1]
- %tmp = load int* %tmp3 ; <int> [#uses=1]
- %tmp = volatile load sbyte** %l1 ; <sbyte*> [#uses=2]
- %indvar.next = add uint %indvar, 1 ; <uint> [#uses=2]
- %exitcond = seteq uint %indvar.next, %a ; <bool> [#uses=1]
- br bool %exitcond, label %bb8, label %bb
-
-bb8: ; preds = %bb, %entry
- %p1.0.1 = phi int [ undef, %entry ], [ %tmp, %bb ] ; <int> [#uses=1]
- %tmp.1 = phi sbyte* [ %tmp23, %entry ], [ %tmp, %bb ] ; <sbyte*> [#uses=1]
- store sbyte* %tmp.1, sbyte** %memtmp
- call void %llvm.va_copy( sbyte** %l2, sbyte** %memtmp )
- %tmp10 = volatile load sbyte** %l2 ; <sbyte*> [#uses=2]
- %tmp12 = getelementptr sbyte* %tmp10, int 4 ; <sbyte*> [#uses=1]
- volatile store sbyte* %tmp12, sbyte** %l2
- %tmp13 = cast sbyte* %tmp10 to int* ; <int*> [#uses=1]
- %tmp14 = load int* %tmp13 ; <int> [#uses=1]
- %tmp17 = call int (ubyte*, ...)* %printf( ubyte* getelementptr ([7 x ubyte]* %str, int 0, uint 0), int %p1.0.1, int %tmp14 ) ; <int> [#uses=0]
+ call void %llvm.va_copy( sbyte** %l2, sbyte** %l3 )
call void %llvm.va_end( sbyte** %l1 )
call void %llvm.va_end( sbyte** %l2 )
ret void
diff --git a/test/Assembler/2007-01-16-CrashOnBadCast.ll b/test/Assembler/2007-01-16-CrashOnBadCast.ll
index 5e11300..859e837 100644
--- a/test/Assembler/2007-01-16-CrashOnBadCast.ll
+++ b/test/Assembler/2007-01-16-CrashOnBadCast.ll
@@ -2,7 +2,7 @@
; RUN: llvm-as < %s 2>&1 > /dev/null | \
; RUN: grep "invalid cast opcode for cast from"
-define i8* %nada(i64 %X) {
+define i8* @nada(i64 %X) {
%result = trunc i64 %X to i8*
ret i8* %result
}
diff --git a/test/Assembler/2007-01-16-CrashOnBadCast2.ll b/test/Assembler/2007-01-16-CrashOnBadCast2.ll
index 80cbeac..bcc6f0e 100644
--- a/test/Assembler/2007-01-16-CrashOnBadCast2.ll
+++ b/test/Assembler/2007-01-16-CrashOnBadCast2.ll
@@ -2,4 +2,4 @@
; RUN: llvm-as < %s 2>&1 > /dev/null | \
; RUN: grep "invalid cast opcode for cast from"
-%X = constant i8* trunc (i64 0 to i8*)
+@X = constant i8* trunc (i64 0 to i8*)
diff --git a/test/Assembler/2007-01-21-UpgradeNoArgs.ll b/test/Assembler/2007-01-21-UpgradeNoArgs.ll
new file mode 100644
index 0000000..e36704c
--- /dev/null
+++ b/test/Assembler/2007-01-21-UpgradeNoArgs.ll
@@ -0,0 +1,13 @@
+; Make sure we don't get an assertion failure, even though this is a parse
+; error
+; RUN: llvm-upgrade 2>&1 < %s > /dev/null | grep 'No arguments passed to a '
+
+%ty = type void (int)
+
+declare %ty* %foo()
+
+void %test() {
+ call %ty* %foo( ) ; <%ty*>:0 [#uses=0]
+ ret void
+}
+
diff --git a/test/Assembler/2007-01-22-UpgradeMalformedShift.ll b/test/Assembler/2007-01-22-UpgradeMalformedShift.ll
new file mode 100644
index 0000000..5ebd86c
--- /dev/null
+++ b/test/Assembler/2007-01-22-UpgradeMalformedShift.ll
@@ -0,0 +1,4 @@
+; Found by inspection of the code
+; RUN: llvm-upgrade 2>&1 < %s > /dev/null | grep "Shift constant expression"
+
+global int shr (float 1.0, ubyte 2)
diff --git a/test/Assembler/2007-01-22-UpgradeMalformedStruct.ll b/test/Assembler/2007-01-22-UpgradeMalformedStruct.ll
new file mode 100644
index 0000000..28c840c
--- /dev/null
+++ b/test/Assembler/2007-01-22-UpgradeMalformedStruct.ll
@@ -0,0 +1,4 @@
+; Found by inspection of the code
+; RUN: llvm-upgrade 2>&1 < %s > /dev/null | grep "Illegal number of init"
+
+global {} { int 7, float 1.0, int 7, int 8 }
diff --git a/test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll b/test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll
new file mode 100644
index 0000000..0c3c4be
--- /dev/null
+++ b/test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll
@@ -0,0 +1,5 @@
+; RUN: llvm-upgrade 2>&1 < %s -o /dev/null -f | grep 'Reference to an undef'
+
+%d_reduction_0_dparser_gram = global { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)*, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** } { int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)* null, int (sbyte*, sbyte**, int, int, { %struct.Grammar*, void (\4, %struct.d_loc_t*, sbyte**)*, %struct.D_Scope*, void (\4)*, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }* (\4, int, { int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\9, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }**)*, void ({ int, %struct.d_loc_t, sbyte*, sbyte*, %struct.D_Scope*, void (\8, %struct.d_loc_t*, sbyte**)*, %struct.Grammar*, %struct.ParseNode_User }*)*, %struct.d_loc_t, int, int, int, int, int, int, int, int, int, int, int, int }*)** null }
+
+implementation