From 4870dc7be44d3b3eb45214b1a174c6d65b032b85 Mon Sep 17 00:00:00 2001 From: Oliver Hahm Date: Thu, 5 Jan 2012 17:42:44 +0100 Subject: [PATCH] [board msba2-common board-config] * fixed casting to satisfy strict-aliasing rules --- board/msba2-common/board_config.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/board/msba2-common/board_config.c b/board/msba2-common/board_config.c index 8eff7e9db8..496a077961 100644 --- a/board/msba2-common/board_config.c +++ b/board/msba2-common/board_config.c @@ -5,12 +5,14 @@ void config_load(void) { extern char configmem[]; - if (*((uint16_t*) configmem) == CONFIG_KEY) { - memcpy(&sysconfig, (configmem + sizeof(CONFIG_KEY)), sizeof(sysconfig)); - } - else { - config_save(); - } + /* cast it here for strict-aliasing */ + uint16_t* tmp = (uint16_t*) configmem; + if (*tmp == CONFIG_KEY) { + memcpy(&sysconfig, (configmem + sizeof(CONFIG_KEY)), sizeof(sysconfig)); + } + else { + config_save(); + } } uint8_t config_save(void) {