From 2601697c6f70e0200f6f115d6e6e5e5d67fe6101 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Tue, 18 Jan 2011 12:12:47 +0000 Subject: [PATCH] Eliminate strict aliasing related warnings. Signed-off-by: Patrick Georgi Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6266 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- util/nvramtool/coreboot_tables.h | 5 ++++- util/nvramtool/lbtable.c | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/util/nvramtool/coreboot_tables.h b/util/nvramtool/coreboot_tables.h index 08f0be63fa..22570ac1f6 100644 --- a/util/nvramtool/coreboot_tables.h +++ b/util/nvramtool/coreboot_tables.h @@ -74,7 +74,10 @@ static inline struct lb_uint64 pack_lb64(uint64_t value) } struct lb_header { - uint8_t signature[4]; /* LBIO */ + union { + uint8_t signature[4]; /* LBIO */ + uint32_t signature32; + }; uint32_t header_bytes; uint32_t header_checksum; uint32_t table_bytes; diff --git a/util/nvramtool/lbtable.c b/util/nvramtool/lbtable.c index 88d7f9c1f4..0a502a4722 100644 --- a/util/nvramtool/lbtable.c +++ b/util/nvramtool/lbtable.c @@ -360,7 +360,7 @@ void dump_lbtable(void) " table_bytes: 0x%x (decimal: %d)\n" " table_checksum: 0x%x (decimal: %d)\n" " table_entries: 0x%x (decimal: %d)\n\n", - vtophys(lbtable), *((uint32_t *) lbtable->signature), + vtophys(lbtable), lbtable->signature32, lbtable->signature[0], lbtable->signature[1], lbtable->signature[2], lbtable->signature[3], lbtable->header_bytes, lbtable->header_bytes, @@ -483,14 +483,14 @@ static const struct lb_header *lbtable_scan(unsigned long start, int *bad_header_count, int *bad_table_count) { - static const char signature[] = { 'L', 'B', 'I', 'O' }; + static const char signature[4] = { 'L', 'B', 'I', 'O' }; const struct lb_header *table; const struct lb_forward *forward; const uint32_t *p; uint32_t sig; assert(end >= start); - sig = (*((const uint32_t *)signature)); + memcpy(&sig, signature, sizeof(sig)); table = NULL; *bad_header_count = 0; *bad_table_count = 0;