From 47782a9d27a4416cfab25b95f32f037b10833ecb Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguenther@suse.de>
Date: Wed, 12 Jan 2011 12:04:39 +0000
Subject: [PATCH] re PR lto/47264 (Many tests fail with -flto due unaligned
 load in lto-plugin.c)

2011-01-12  Richard Guenther  <rguenther@suse.de>

	PR lto/47264
	* lto-plugin.c (parse_table_entry): Use memcpy to access
	unaligned fields.

From-SVN: r168708
---
 lto-plugin/ChangeLog    | 6 ++++++
 lto-plugin/lto-plugin.c | 4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index d802828f0e5d..4b1200289ede 100644
--- a/lto-plugin/ChangeLog
+++ b/lto-plugin/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-12  Richard Guenther  <rguenther@suse.de>
+
+	PR lto/47264
+	* lto-plugin.c (parse_table_entry): Use memcpy to access
+	unaligned fields.
+
 2010-12-20  Dave Korn  <dave.korn.cygwin@gmail.com>
 
 	* Makefile.am (AM_LIBTOOLFLAGS): Define, adding disable-static tag.
diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
index ab18f4c6d9c1..2f422a3dd70d 100644
--- a/lto-plugin/lto-plugin.c
+++ b/lto-plugin/lto-plugin.c
@@ -249,10 +249,10 @@ parse_table_entry (char *p, struct ld_plugin_symbol *entry,
   entry->visibility = translate_visibility[t];
   p++;
 
-  entry->size = *(uint64_t *) p;
+  memcpy (&entry->size, p, sizeof (uint64_t));
   p += 8;
 
-  aux->slot = *(uint32_t *) p;
+  memcpy (&aux->slot, p, sizeof (uint32_t));
   p += 4;
 
   entry->resolution = LDPR_UNKNOWN;
-- 
GitLab