Fix test cases
This commit is contained in:
parent
ecd6eba434
commit
a647f27e8c
|
@ -403,7 +403,67 @@ testString (test,
|
|||
|
||||
func TestFor (test *testing.T) {
|
||||
testString (test,
|
||||
`
|
||||
`%"AAAAAAAAAAAAAAAAAAAAAA==::Index" = type i64
|
||||
%"AAAAAAAAAAAAAAAAAAAAAA==::String" = type { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }
|
||||
%"AAAAAAAAAAAAAAAAAAAAAA==::Byte" = type i8
|
||||
define void @"0zNZN147MN2wzMAQ6NS2dQ==::f"(%"AAAAAAAAAAAAAAAAAAAAAA==::String" %str) {
|
||||
0:
|
||||
%1 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::String"
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::String" %str, ptr %1
|
||||
%2 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::Index"
|
||||
%3 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::Byte"
|
||||
br label %4
|
||||
4:
|
||||
%5 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %1, i32 0, i32 1
|
||||
%6 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %5
|
||||
%7 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%8 = icmp ult %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %7, %6
|
||||
br i1 %8, label %9, label %17
|
||||
9:
|
||||
%10 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %1, i32 0, i32 0
|
||||
%11 = load ptr, ptr %10
|
||||
%12 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%13 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::Byte", ptr %11, i32 0, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %12
|
||||
store ptr %13, ptr %3
|
||||
%14 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Byte", ptr %3
|
||||
call void @"0zNZN147MN2wzMAQ6NS2dQ==::print"(%"AAAAAAAAAAAAAAAAAAAAAA==::Byte" %14)
|
||||
%15 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%16 = add %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %15, 1
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %16, ptr %2
|
||||
br label %9
|
||||
17:
|
||||
ret void
|
||||
}
|
||||
declare void @"0zNZN147MN2wzMAQ6NS2dQ==::print"(%"AAAAAAAAAAAAAAAAAAAAAA==::Byte" %x)
|
||||
define void @"0zNZN147MN2wzMAQ6NS2dQ==::g"(%"AAAAAAAAAAAAAAAAAAAAAA==::String" %str) {
|
||||
0:
|
||||
%1 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::String"
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::String" %str, ptr %1
|
||||
%2 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::Index"
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::Index" zeroinitializer, ptr %2
|
||||
%3 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::Byte"
|
||||
br label %4
|
||||
4:
|
||||
%5 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %1, i32 0, i32 1
|
||||
%6 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %5
|
||||
%7 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%8 = icmp ult %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %7, %6
|
||||
br i1 %8, label %9, label %17
|
||||
9:
|
||||
%10 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %1, i32 0, i32 0
|
||||
%11 = load ptr, ptr %10
|
||||
%12 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%13 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::Byte", ptr %11, i32 0, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %12
|
||||
store ptr %13, ptr %3
|
||||
%14 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Byte", ptr %3
|
||||
call void @"0zNZN147MN2wzMAQ6NS2dQ==::print"(%"AAAAAAAAAAAAAAAAAAAAAA==::Byte" %14)
|
||||
%15 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%16 = add %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %15, 1
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %16, ptr %2
|
||||
br label %9
|
||||
17:
|
||||
ret void
|
||||
}
|
||||
`,
|
||||
`
|
||||
[print x:Byte]
|
||||
|
@ -413,7 +473,37 @@ testString (test,
|
|||
|
||||
func TestForBreak (test *testing.T) {
|
||||
testString (test,
|
||||
`
|
||||
`%"AAAAAAAAAAAAAAAAAAAAAA==::Byte" = type i8
|
||||
%"AAAAAAAAAAAAAAAAAAAAAA==::Index" = type i64
|
||||
%"AAAAAAAAAAAAAAAAAAAAAA==::String" = type { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }
|
||||
define %"AAAAAAAAAAAAAAAAAAAAAA==::Byte" @"0zNZN147MN2wzMAQ6NS2dQ==::f"(%"AAAAAAAAAAAAAAAAAAAAAA==::String" %str) {
|
||||
0:
|
||||
%1 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::String"
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::String" %str, ptr %1
|
||||
%2 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::Index"
|
||||
%3 = alloca %"AAAAAAAAAAAAAAAAAAAAAA==::Byte"
|
||||
br label %4
|
||||
4:
|
||||
%5 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %1, i32 0, i32 1
|
||||
%6 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %5
|
||||
%7 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%8 = icmp ult %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %7, %6
|
||||
br i1 %8, label %9, label %17
|
||||
9:
|
||||
%10 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %1, i32 0, i32 0
|
||||
%11 = load ptr, ptr %10
|
||||
%12 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%13 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::Byte", ptr %11, i32 0, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %12
|
||||
store ptr %13, ptr %3
|
||||
%14 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Byte", ptr %3
|
||||
%15 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %2
|
||||
%16 = add %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %15, 1
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %16, ptr %2
|
||||
br label %17
|
||||
17:
|
||||
%18 = phi %"AAAAAAAAAAAAAAAAAAAAAA==::Byte" [ %14, %9 ], [ zeroinitializer, %4 ]
|
||||
ret %"AAAAAAAAAAAAAAAAAAAAAA==::Byte" %18
|
||||
}
|
||||
`,
|
||||
`
|
||||
[f str:String]:Byte = for c:Byte in str [break c]
|
||||
|
|
|
@ -141,28 +141,28 @@ define void @"0zNZN147MN2wzMAQ6NS2dQ==::print"(%"AAAAAAAAAAAAAAAAAAAAAA==::Strin
|
|||
%4 = getelementptr { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }, ptr %1, i32 0, i32 1
|
||||
%5 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %4
|
||||
%6 = icmp ult %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %5, 1
|
||||
br i1 %6, label %7, label %8
|
||||
br i1 %6, label %8, label %9
|
||||
7:
|
||||
br label %21
|
||||
8:
|
||||
%9 = getelementptr { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }, ptr %1, i32 0, i32 0
|
||||
%10 = load ptr, ptr %9
|
||||
%11 = call %"AAAAAAAAAAAAAAAAAAAAAA==::Index" @write(i32 1, ptr %10, i64 1)
|
||||
%12 = getelementptr { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }, ptr %1, i32 0, i32 0
|
||||
%13 = load ptr, ptr %12
|
||||
%14 = getelementptr { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }, ptr %1, i32 0, i32 1
|
||||
%15 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %14
|
||||
%16 = sub %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %15, 1
|
||||
%17 = getelementptr i8, ptr %13, i64 1
|
||||
%18 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %2, i32 0, i32 0
|
||||
store ptr %17, ptr %18
|
||||
%19 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %2, i32 0, i32 1
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %16, ptr %19
|
||||
%20 = load %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %2
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::String" %20, ptr %1
|
||||
br label %3
|
||||
21:
|
||||
ret void
|
||||
8:
|
||||
br label %7
|
||||
9:
|
||||
%10 = getelementptr { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }, ptr %1, i32 0, i32 0
|
||||
%11 = load ptr, ptr %10
|
||||
%12 = call %"AAAAAAAAAAAAAAAAAAAAAA==::Index" @write(i32 1, ptr %11, i64 1)
|
||||
%13 = getelementptr { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }, ptr %1, i32 0, i32 0
|
||||
%14 = load ptr, ptr %13
|
||||
%15 = getelementptr { ptr, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" }, ptr %1, i32 0, i32 1
|
||||
%16 = load %"AAAAAAAAAAAAAAAAAAAAAA==::Index", ptr %15
|
||||
%17 = sub %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %16, 1
|
||||
%18 = getelementptr i8, ptr %14, i64 1
|
||||
%19 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %2, i32 0, i32 0
|
||||
store ptr %18, ptr %19
|
||||
%20 = getelementptr %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %2, i32 0, i32 1
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %17, ptr %20
|
||||
%21 = load %"AAAAAAAAAAAAAAAAAAAAAA==::String", ptr %2
|
||||
store %"AAAAAAAAAAAAAAAAAAAAAA==::String" %21, ptr %1
|
||||
br label %3
|
||||
}
|
||||
declare %"AAAAAAAAAAAAAAAAAAAAAA==::Index" @write(i32 %file, ptr %buffer, %"AAAAAAAAAAAAAAAAAAAAAA==::Index" %count)
|
||||
`,
|
||||
|
|
Loading…
Reference in New Issue