On 10/25/19 12:12 PM, Peter Maydell wrote: > Compile failure, win32: ... > /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/glib-2.0/glib/gmacros.h:337:23: > error: expected expression befor > e 'do' > #define G_STMT_START do > ^ > /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/include/glib-2.0/glib/gtestutils.h:115:41: > note: in expansion of macro 'G_STMT_START' > #define g_assert(expr) G_STMT_START { \ > ^ > /home/petmay01/qemu-for-merges/include/qemu/osdep.h:152:20: note: in > expansion of macro 'g_assert' > #define assert(x) g_assert(x)
Ho hum. This... > ^ > /home/petmay01/qemu-for-merges/include/exec/cpu-all.h:225:29: note: in > expansion of macro 'assert' > # define TARGET_PAGE_MASK (assert(target_page.decided), target_page.mask) ... must be the reason why we used to use ({ ... }) here. Why oh why does g_assert use a do/while(0) statement instead of use an expression like the C assert is required to do? > Also > /home/petmay01/qemu-for-merges/exec.c: In function 'iotlb_to_section': > /home/petmay01/qemu-for-merges/exec.c:2871:1: error: control reaches > end of non-void function [-Werror=return-type] > } ... > Not sure if that's just follow-on errors from the earlier > ones, though. These are all follow-on, as you say. r~