summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2014-08-22 09:46:35 +0200
committerStefano Babic <sbabic@denx.de>2014-09-09 16:26:33 +0200
commitdc73cbe7b05851a3ff76beabdc0589d2b3ebb9a3 (patch)
treea5a1590d6c70073e0fda1af8c94c8f4d4b6f2750
parent021e79c85371d2d5882f2eb6c58233f016add52d (diff)
downloadu-boot-imx-dc73cbe7b05851a3ff76beabdc0589d2b3ebb9a3.zip
u-boot-imx-dc73cbe7b05851a3ff76beabdc0589d2b3ebb9a3.tar.gz
u-boot-imx-dc73cbe7b05851a3ff76beabdc0589d2b3ebb9a3.tar.bz2
imx: ventana: Avoid undefined behaviour
The leds array within struct ventana has space for 3 elements, but the setup_board_gpio() function tries to set up 4 GPIOs for LEDs. Recent versions of GCC complain about that: board/gateworks/gw_ventana/gw_ventana.c: In function 'setup_board_gpio': board/gateworks/gw_ventana/gw_ventana.c:987:27: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] if (gpio_cfg[board].leds[i]) ^ board/gateworks/gw_ventana/gw_ventana.c:986:2: note: containing loop for (i = 0; i < 4; i++) { ^ Fix this by making the upper bound of the loop match the array size. Signed-off-by: Thierry Reding <treding@nvidia.com> Acked-by: Tim Harvey <tharvey@gateworks.com>
-rw-r--r--board/gateworks/gw_ventana/gw_ventana.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
index 9a1b6dd..8d086f8 100644
--- a/board/gateworks/gw_ventana/gw_ventana.c
+++ b/board/gateworks/gw_ventana/gw_ventana.c
@@ -1061,7 +1061,7 @@ static void setup_board_gpio(int board)
#endif
/* turn off (active-high) user LED's */
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < ARRAY_SIZE(gpio_cfg[board].leds); i++) {
if (gpio_cfg[board].leds[i])
gpio_direction_output(gpio_cfg[board].leds[i], 1);
}