Hi On Wed, Jul 5, 2017 at 7:26 AM Markus Armbruster <arm...@redhat.com> wrote: > > Marc-André Lureau <marcandre.lur...@redhat.com> writes: > > > Hi, > > > > After investigating a bit using clang-tidy to do some coroutine checks > > (and hitting a wall as there are no pre-processor info in the AST), it > > was suggested to me on the clang mailing list to try to use > > -Wthread-safety. I had to modify clang a bit to make it work on qemu > > code base (annotations on function typedef etc, > > https://github.com/elmarco/clang qemu-ta branch - very hackish state). > > Hardcore!
I think the most hardcore part is experimenting with clang code base, modifying a line, and waiting 10 minutes for the linker (and restart it if it crashed!). This slows down progress and kill motivation. (so happy qemu is written in C :) > > Are your clang modifications upstreamable once cleaned up? I am trying to get some help on clang mailing list, but it is very far from this point without it. My changes are gross (but it seems to do the job..). I would be also curious to know how hard a similar (only for this purpose) check could be implemented for gcc, perhaps with plugins. > > > The analysis simply checks that coroutine_fn are called from a > > coroutine "context" (or "role"). I couldn't find any misuse in qemu > > code base, however, a number of coroutine_fn annotations are missing. > > > > (I think it would make sense to squash all the "mark coroutine_fn" > > commits if we apply them, I tried to split them by domains/maintainer > > to ease review) > [...] > > 49 files changed, 299 insertions(+), 132 deletions(-) > > "A number of coroutine_fn annotations are missing" seems to be an > understatement :) >