blob: a0ed6f0f2dc81636cf129c59cb0cb1e5d471a33e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
;; NOTE: Assertions have been generated by update_lit_checks.py --output=fuzz-exec and should not be edited.
;; RUN: wasm-opt %s --vacuum --fuzz-exec -q -o /dev/null 2>&1 | filecheck %s
;; RUN: wasm-opt %s --ignore-implicit-traps --vacuum --fuzz-exec -q -o /dev/null 2>&1 | filecheck %s --check-prefix=IIT
;; RUN: wasm-opt %s --traps-never-happen --vacuum --fuzz-exec -q -o /dev/null 2>&1 | filecheck %s --check-prefix=TNH
(module
;; CHECK: [fuzz-exec] calling trap
;; CHECK-NEXT: [trap unreachable]
;; IIT: [fuzz-exec] calling trap
;; IIT-NEXT: [trap unreachable]
;; TNH: [fuzz-exec] calling trap
;; TNH-NEXT: [trap unreachable]
(func "trap"
(unreachable)
)
(memory 1 1)
;; CHECK: [fuzz-exec] calling load-trap
;; CHECK-NEXT: [trap highest > memory: 65536 > 65532]
;; IIT: [fuzz-exec] calling load-trap
;; IIT-NEXT: [trap highest > memory: 65536 > 65532]
;; TNH: [fuzz-exec] calling load-trap
;; TNH-NEXT: [trap highest > memory: 65536 > 65532]
(func "load-trap"
;; This load traps, so this cannot be removed. But if either of
;; --ignore-implicit-traps or --traps-never-happen is set, this load is
;; assumed not to trap and we end up optimizing this out with --vacuum,
;; causes the trap behavior to change. This should not result in [fuzz-exec]
;; comparison failure.
(drop
(i32.load (i32.const 65536))
)
)
)
;; CHECK: [fuzz-exec] calling trap
;; CHECK-NEXT: [trap unreachable]
;; CHECK: [fuzz-exec] calling load-trap
;; CHECK-NEXT: [trap highest > memory: 65536 > 65532]
;; CHECK-NEXT: [fuzz-exec] comparing load-trap
;; CHECK-NEXT: [fuzz-exec] comparing trap
;; IIT: [fuzz-exec] calling trap
;; IIT-NEXT: [trap unreachable]
;; IIT: [fuzz-exec] calling load-trap
;; IIT-NEXT: [fuzz-exec] comparing load-trap
;; IIT-NEXT: [fuzz-exec] comparing trap
;; TNH: [fuzz-exec] calling trap
;; TNH: [fuzz-exec] calling load-trap
;; TNH-NEXT: [fuzz-exec] comparing load-trap
;; TNH-NEXT: [fuzz-exec] comparing trap
|