unicorn/qemu/target
Emilio G. Cota c384da2f47
tcg: convert tb->cflags reads to tb_cflags(tb)
Convert all existing readers of tb->cflags to tb_cflags, so that we
use atomic_read and therefore avoid undefined behaviour in C11.

Note that the remaining setters/getters of the field are protected
by tb_lock, and therefore do not need conversion.

Luckily all readers access the field via 'tb->cflags' (so no foo.cflags,
bar->cflags in the code base), which makes the conversion easily
scriptable:

FILES=$(git grep 'tb->cflags' target include/exec/gen-icount.h \
accel/tcg/translator.c | cut -f1 -d':' | sort | uniq)

perl -pi -e 's/([^.>])tb->cflags/$1tb_cflags(tb)/g' $FILES
perl -pi -e 's/([a-z->.]*)(->|\.)tb->cflags/tb_cflags($1$2tb)/g' $FILES

Then manually fixed the few errors that checkpatch reported.

Compile-tested for all targets.

Backports commit c5a49c63fa26e8825ad101dfe86339ae4c216539 from qemu
2018-03-13 14:57:51 -04:00
..
arm tcg: convert tb->cflags reads to tb_cflags(tb) 2018-03-13 14:57:51 -04:00
i386 tcg: convert tb->cflags reads to tb_cflags(tb) 2018-03-13 14:57:51 -04:00
m68k tcg: convert tb->cflags reads to tb_cflags(tb) 2018-03-13 14:57:51 -04:00
mips tcg: convert tb->cflags reads to tb_cflags(tb) 2018-03-13 14:57:51 -04:00
sparc tcg: convert tb->cflags reads to tb_cflags(tb) 2018-03-13 14:57:51 -04:00