blob: 5ddbdf2c66da376d6c4068a82fab8548b39683b2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# programs where zc0 and the self-hosted compiler print different things on purpose.
# src/tools/parity.sh still runs them and shows the difference as known, and it does
# not fail the run; when one starts to agree it says so, and its line can go.
# one program per line: the path, then # and the reason.
#
# zc0 reads types and ownership tags and throws them away. it has no ownership
# analysis and no memdebug checks, so it neither warns about, traps on nor frees what
# the self-hosted compiler does.
tests/programs/doublefree.zc # memdebug on: only the self-hosted compiler emits the double free check
tests/programs/scrub.zc # ownership: the analyzer warns about the use after free, zc0 runs it
tests/programs/uaf.zc # ownership: the analyzer warns about the use after free; zc0 prints nothing
tests/programs/uaf_in.zc # memdebug on: only the self-hosted compiler emits the use after free check
examples/lists.zc # ownership: the block's owner frees at its end, zc0 never frees
# the next program reads a local it never sets when stdin is empty, so it prints stack garbage
tests/programs/bench_strings.zc # reads the repeat count from stdin; with none, acc is uninitialized
# zc0 reads unbounded and ignores it, and emits no index checks at all
tests/programs/bounds_fixed.zc # bounds checks: only the self-hosted compiler checks a fixed array index
tests/programs/bounds_heap.zc # bounds checks: only the self-hosted compiler checks a pointer into a heap block
tests/programs/bounds_proof.zc # bounds checks: zc0 emits none, so the variable-bound loop is as short as the unbounded one
|