From 198ccaf1e562c281684e47a2209b7ce29c9c71e6 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Tue, 9 Apr 2013 15:49:37 -0500 Subject: Fix strict-aliasing violations. Change-Id: I5f3feae4fb62ed82b52e996d4954d1c638a243b3 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/4036 Reviewed-by: Brian H. Horton Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert Reviewed-by: A. Patrick Williams III --- src/usr/runtime/fakepayload.C | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/usr/runtime/fakepayload.C') diff --git a/src/usr/runtime/fakepayload.C b/src/usr/runtime/fakepayload.C index 0600bfa68..0890ecdcd 100644 --- a/src/usr/runtime/fakepayload.C +++ b/src/usr/runtime/fakepayload.C @@ -70,7 +70,13 @@ void FakePayload::load() // Copy over the fake payload code. uint8_t* dest = reinterpret_cast(memArea) + entry; - memcpy(dest, *(reinterpret_cast(&payload)), size); + union fn_ptr + { + void (*opd)(); + uint64_t** data; + }; + fn_ptr payload_code = { payload }; + memcpy(dest, *payload_code.data, size); // Invalidate the icache since this is instructions. mm_icache_invalidate(memArea, ALIGN_8(safeClearArea) / sizeof(uint64_t)); -- cgit v1.2.1