[SystemSafety] Subversive C programs for mockery of static analysis tools ... on a bad day ; -)
Olwen Morgan
olwen at phaedsys.com
Fri Nov 30 14:11:02 CET 2018
On 30/11/2018 11:30, Roderick Chapman wrote:
<snip>
>
> I too have fun breaking other people's verifiers, but breaking C tools
> is far too easy. Please try to break SPARK - you'll find it more of a
> challenge. Please report anything you find either here, or to
> spark at adacore.com ...
>
Of course, it all depends on what you mean by "breaking" and what
constitutes an attempt at it. Essentially the aim is to write a program
that satisfies a tool's language subset requirements and elicits from a
verifier results that are inconsistent with those produced by the
program when it is compiled the user's chosen compiler.
Feel free to translate any of my programs into SPARK Ada if possible and
throw them at the SPARK verification tools. I'd be intrigued to know
what an Ada analogue of cimplex-d-0008.c throws up. I've not yet
succeeded in thinking up verifier-breaking C programs that would satisfy
subset requirements analogous to those of SPARK and I've never written a
program in my own ultra-strict coding style that has broken a verifier.
Broadly-speaking, the stricter the C subset you use, the trickier it is
to come up with things that would break a verifier but not trigger a
subset warning. OTOH, C verifiers are more varied than the SPARK tools
and writing different programs that break different tools helps users to
see what the differences in tool capability really are.
Olwen
More information about the systemsafety
mailing list