Skip to content

Commit 4f7a650

Browse files
aykevldeadprogram
authored andcommitted
interp: add test for icmp inttoptr workaround
1 parent e74db01 commit 4f7a650

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

interp/interp_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ func TestInterp(t *testing.T) {
1313
for _, name := range []string{
1414
"basic",
1515
"slice-copy",
16+
"consteval",
1617
} {
1718
name := name // make tc local to this closure
1819
t.Run(name, func(t *testing.T) {

interp/testdata/consteval.ll

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
2+
target triple = "x86_64--linux"
3+
4+
@intToPtrResult = global i8 0
5+
6+
define void @runtime.initAll() {
7+
call void @main.init()
8+
ret void
9+
}
10+
11+
define internal void @main.init() {
12+
call void @testIntToPtr()
13+
ret void
14+
}
15+
16+
define internal void @testIntToPtr() {
17+
%nil = icmp eq i8* inttoptr (i64 1024 to i8*), null
18+
br i1 %nil, label %a, label %b
19+
a:
20+
; should not be reached
21+
store i8 1, i8* @intToPtrResult
22+
ret void
23+
b:
24+
; should be reached
25+
store i8 2, i8* @intToPtrResult
26+
ret void
27+
}

interp/testdata/consteval.out.ll

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
2+
target triple = "x86_64--linux"
3+
4+
@intToPtrResult = local_unnamed_addr global i8 2
5+
6+
define void @runtime.initAll() local_unnamed_addr {
7+
ret void
8+
}

0 commit comments

Comments
 (0)