Fix test cases

This commit is contained in:
Sasha Koshka 2024-03-20 11:19:24 -04:00
parent ecd6eba434
commit a647f27e8c
2 changed files with 112 additions and 22 deletions

View File

@ -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]

View File

@ -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)
`,