Author: oxygene Date: Tue Jan 18 13:12:47 2011 New Revision: 6266 URL: https://tracker.coreboot.org/trac/coreboot/changeset/6266
Log: Eliminate strict aliasing related warnings.
Signed-off-by: Patrick Georgi patrick.georgi@secunet.com Acked-by: Stefan Reinauer stepan@coreboot.org
Modified: trunk/util/nvramtool/coreboot_tables.h trunk/util/nvramtool/lbtable.c
Modified: trunk/util/nvramtool/coreboot_tables.h ============================================================================== --- trunk/util/nvramtool/coreboot_tables.h Tue Jan 18 10:36:44 2011 (r6265) +++ trunk/util/nvramtool/coreboot_tables.h Tue Jan 18 13:12:47 2011 (r6266) @@ -74,7 +74,10 @@ }
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;
Modified: trunk/util/nvramtool/lbtable.c ============================================================================== --- trunk/util/nvramtool/lbtable.c Tue Jan 18 10:36:44 2011 (r6265) +++ trunk/util/nvramtool/lbtable.c Tue Jan 18 13:12:47 2011 (r6266) @@ -360,7 +360,7 @@ " 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 @@ 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;