[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC 0/8] Introduce an extensible static analyzer
From: |
Daniel P . Berrangé |
Subject: |
Re: [RFC 0/8] Introduce an extensible static analyzer |
Date: |
Tue, 5 Jul 2022 17:13:31 +0100 |
User-agent: |
Mutt/2.2.6 (2022-06-05) |
On Sat, Jul 02, 2022 at 12:33:23PM +0100, Alberto Faria wrote:
> This series introduces a static analyzer for QEMU. It consists of a
> single static-analyzer.py script that relies on libclang's Python
> bindings, and provides a common framework on which arbitrary static
> analysis checks can be developed and run against QEMU's code base.
>
> Summary of the series:
>
> - Patch 1 adds the base static analyzer, along with a simple check
> that finds static functions whose return value is never used, and
> patch 2 fixes some occurrences of this.
>
> - Patch 3 adds a check to ensure that non-coroutine_fn functions don't
> perform direct calls to coroutine_fn functions, and patch 4 fixes
> some violations of this rule.
>
> - Patch 5 adds a check to enforce coroutine_fn restrictions on
> function pointers, namely around assignment and indirect calls, and
> patch 6 fixes some problems it detects. (Implementing this check
> properly is complicated, since AFAICT annotation attributes cannot
> be applied directly to types. This part still needs a lot of work.)
>
> - Patch 7 introduces a no_coroutine_fn marker for functions that
> should not be called from coroutines, makes generated_co_wrapper
> evaluate to no_coroutine_fn, and adds a check enforcing this rule.
> Patch 8 fixes some violations that it finds.
FWIW, after applying this series 'make check' throws lots of failures
and hangs for me in the block I/O tests, so something appears not quite
correct here. I didn't bother to investigate/debug since you marked this
as just an RFC
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- [RFC 8/8] Avoid calls from coroutine_fn to no_coroutine_fn, (continued)
- [RFC 8/8] Avoid calls from coroutine_fn to no_coroutine_fn, Alberto Faria, 2022/07/02
- Re: [RFC 0/8] Introduce an extensible static analyzer, Paolo Bonzini, 2022/07/02
- Re: [RFC 0/8] Introduce an extensible static analyzer, Daniel P . Berrangé, 2022/07/04
- Re: [RFC 0/8] Introduce an extensible static analyzer, Alberto Faria, 2022/07/04
- Re: [RFC 0/8] Introduce an extensible static analyzer, Daniel P . Berrangé, 2022/07/05
- Re: [RFC 0/8] Introduce an extensible static analyzer, Alberto Faria, 2022/07/05
- Re: [RFC 0/8] Introduce an extensible static analyzer, Daniel P . Berrangé, 2022/07/05
- Re: [RFC 0/8] Introduce an extensible static analyzer, Alberto Faria, 2022/07/06
- Re: [RFC 0/8] Introduce an extensible static analyzer, Daniel P . Berrangé, 2022/07/06
- Re: [RFC 0/8] Introduce an extensible static analyzer, Alberto Faria, 2022/07/08
Re: [RFC 0/8] Introduce an extensible static analyzer,
Daniel P . Berrangé <=