summaryrefslogtreecommitdiff
path: root/lto-plugin
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-01-12 12:04:39 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-01-12 12:04:39 +0000
commit47782a9d27a4416cfab25b95f32f037b10833ecb (patch)
treea42ffd810c5aade05f0953b22294d9fe86149c13 /lto-plugin
parent753cc6853ba292271d6fa385b8427e3b895bb083 (diff)
downloadgcc-47782a9d27a4416cfab25b95f32f037b10833ecb.tar.gz
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
Diffstat (limited to 'lto-plugin')
-rw-r--r--lto-plugin/ChangeLog6
-rw-r--r--lto-plugin/lto-plugin.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog
index d802828f0e5..4b1200289ed 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 ab18f4c6d9c..2f422a3dd70 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;