aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build/Fuzz/WebServer.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-08-28 12:11:08 -0700
committerAndrew Kelley <andrew@ziglang.org>2024-08-28 18:07:13 -0700
commitb8d99a332395ec0a1b9ed1a8e18f0db8db131b3c (patch)
tree556064f0106c74ccd25f8be96aad973cef320e26 /lib/std/Build/Fuzz/WebServer.zig
parent43dc8db068f65f31cd7cf808429c627b29058582 (diff)
downloadzig-b8d99a332395ec0a1b9ed1a8e18f0db8db131b3c.tar.gz
zig-b8d99a332395ec0a1b9ed1a8e18f0db8db131b3c.zip
implement code coverage instrumentation manually
instead of relying on the LLVM sancov pass. The LLVM pass is still executed if trace_pc_guard is requested, disabled otherwise. The LLVM backend emits the instrumentation directly. It uses `__sancov_pcs1` symbol name instead of `__sancov_pcs` because each element is 1 usize instead of 2. AIR: add CoveragePoint to branch hints which indicates whether those branches are interesting for code coverage purposes. Update libfuzzer to use the new instrumentation. It's simplified since we no longer need the constructor and the pcs are now in a continguous list. This is a regression in the fuzzing functionality because the instrumentation for comparisons is no longer emitted, resulting in worse fuzzer inputs generated. A future commit will add that instrumentation back.
Diffstat (limited to 'lib/std/Build/Fuzz/WebServer.zig')
0 files changed, 0 insertions, 0 deletions