Rename Cretonne to Cranelift!
This commit is contained in:
45
cranelift/filetests/verifier/unreachable_code.clif
Normal file
45
cranelift/filetests/verifier/unreachable_code.clif
Normal file
@@ -0,0 +1,45 @@
|
||||
test verifier
|
||||
|
||||
function %test() -> i32 { ; Ok
|
||||
ebb0:
|
||||
v0 = iconst.i32 0
|
||||
v1 = iconst.i32 0
|
||||
jump ebb2
|
||||
|
||||
ebb2:
|
||||
jump ebb4
|
||||
|
||||
ebb4:
|
||||
jump ebb2
|
||||
|
||||
ebb3(v2: i32):
|
||||
v4 = iadd.i32 v1, v2
|
||||
jump ebb9(v4)
|
||||
|
||||
ebb9(v7: i32):
|
||||
v9 = iadd.i32 v2, v7
|
||||
return v9
|
||||
|
||||
}
|
||||
|
||||
; Using a function argument in an unreachable block is ok.
|
||||
function %arg(i32) -> i32 {
|
||||
ebb0(v0: i32):
|
||||
v1 = iadd_imm v0, 1
|
||||
return v1
|
||||
|
||||
ebb1:
|
||||
v10 = iadd_imm v0, 10
|
||||
return v10
|
||||
}
|
||||
|
||||
; Using an EBB argument from an unreachable block is not ok.
|
||||
function %arg2(i32) -> i32 {
|
||||
ebb0(v0: i32):
|
||||
v1 = iadd v0, v10 ; error: uses value arg from non-dominating
|
||||
return v1
|
||||
|
||||
ebb1(v10: i32):
|
||||
v11 = iadd v0, v10
|
||||
return v11
|
||||
}
|
||||
Reference in New Issue
Block a user