summaryrefslogtreecommitdiff
path: root/hw/display/tc6393xb_template.h
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2014-01-31 14:47:33 +0000
committerPeter Maydell <peter.maydell@linaro.org>2014-01-31 14:47:33 +0000
commit2cdaca90ddf3291f308a10623c1a802ef760bac1 (patch)
treee5b7734441cf70ebeee56b9d20d09afe362f0aac /hw/display/tc6393xb_template.h
parentb48adc0d301464d627d6d0f83dee911a2138187f (diff)
downloadqemu-2cdaca90ddf3291f308a10623c1a802ef760bac1.tar.gz
display: avoid multi-statement macro
For blizzard, pl110 and tc6393xb this is harmless, but for pxa2xx Coverity noticed that it is used inside an "if" statement. Fix it because it's the file with the highest number of defects in the whole QEMU tree! Use "do...while (0)", or just remove the semicolon if there's a single statement in the macro. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/display/tc6393xb_template.h')
-rw-r--r--hw/display/tc6393xb_template.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/hw/display/tc6393xb_template.h b/hw/display/tc6393xb_template.h
index 154aafd400..78629c07f9 100644
--- a/hw/display/tc6393xb_template.h
+++ b/hw/display/tc6393xb_template.h
@@ -22,14 +22,18 @@
*/
#if BITS == 8
-# define SET_PIXEL(addr, color) *(uint8_t*)addr = color;
+# define SET_PIXEL(addr, color) (*(uint8_t *)addr = color)
#elif BITS == 15 || BITS == 16
-# define SET_PIXEL(addr, color) *(uint16_t*)addr = color;
+# define SET_PIXEL(addr, color) (*(uint16_t *)addr = color)
#elif BITS == 24
-# define SET_PIXEL(addr, color) \
- addr[0] = color; addr[1] = (color) >> 8; addr[2] = (color) >> 16;
+# define SET_PIXEL(addr, color) \
+ do { \
+ addr[0] = color; \
+ addr[1] = (color) >> 8; \
+ addr[2] = (color) >> 16; \
+ } while (0)
#elif BITS == 32
-# define SET_PIXEL(addr, color) *(uint32_t*)addr = color;
+# define SET_PIXEL(addr, color) (*(uint32_t *)addr = color)
#else
# error unknown bit depth
#endif