@@ -9,3 +9,54 @@ export fn __sanitizer_cov_8bit_counters_init(start: [*]u8, stop: [*]u8) void {
9
9
export fn __sanitizer_cov_pcs_init (pcs_beg : [* ]const usize , pcs_end : [* ]const usize ) void {
10
10
std .debug .print ("__sanitizer_cov_pcs_init pcs_beg={*}, pcs_end={*}\n " , .{ pcs_beg , pcs_end });
11
11
}
12
+
13
+ export fn __sanitizer_cov_trace_const_cmp1 (arg1 : u8 , arg2 : u8 ) void {
14
+ handleCmp (@returnAddress (), arg1 , arg2 );
15
+ }
16
+
17
+ export fn __sanitizer_cov_trace_cmp1 (arg1 : u8 , arg2 : u8 ) void {
18
+ handleCmp (@returnAddress (), arg1 , arg2 );
19
+ }
20
+
21
+ export fn __sanitizer_cov_trace_const_cmp2 (arg1 : u16 , arg2 : u16 ) void {
22
+ handleCmp (@returnAddress (), arg1 , arg2 );
23
+ }
24
+
25
+ export fn __sanitizer_cov_trace_cmp2 (arg1 : u16 , arg2 : u16 ) void {
26
+ handleCmp (@returnAddress (), arg1 , arg2 );
27
+ }
28
+
29
+ export fn __sanitizer_cov_trace_const_cmp4 (arg1 : u32 , arg2 : u32 ) void {
30
+ handleCmp (@returnAddress (), arg1 , arg2 );
31
+ }
32
+
33
+ export fn __sanitizer_cov_trace_cmp4 (arg1 : u32 , arg2 : u32 ) void {
34
+ handleCmp (@returnAddress (), arg1 , arg2 );
35
+ }
36
+
37
+ export fn __sanitizer_cov_trace_const_cmp8 (arg1 : u64 , arg2 : u64 ) void {
38
+ handleCmp (@returnAddress (), arg1 , arg2 );
39
+ }
40
+
41
+ export fn __sanitizer_cov_trace_cmp8 (arg1 : u64 , arg2 : u64 ) void {
42
+ handleCmp (@returnAddress (), arg1 , arg2 );
43
+ }
44
+
45
+ export fn __sanitizer_cov_trace_switch (val : u64 , cases_ptr : [* ]u64 ) void {
46
+ const pc = @returnAddress ();
47
+ const len = cases_ptr [0 ];
48
+ const val_size_in_bits = cases_ptr [1 ];
49
+ const cases = cases_ptr [2.. ][0.. len ];
50
+ std .debug .print ("0x{x}: switch on value {d} ({d} bits) with {d} cases\n " , .{
51
+ pc , val , val_size_in_bits , cases .len ,
52
+ });
53
+ }
54
+
55
+ export fn __sanitizer_cov_trace_pc_indir (callee : usize ) void {
56
+ const pc = @returnAddress ();
57
+ std .debug .print ("0x{x}: indirect call to 0x{x}\n " , .{ pc , callee });
58
+ }
59
+
60
+ fn handleCmp (pc : usize , arg1 : u64 , arg2 : u64 ) void {
61
+ std .debug .print ("0x{x}: comparison of {d} and {d}\n " , .{ pc , arg1 , arg2 });
62
+ }
0 commit comments