diff options
author | Steve Ellcey <sje@cup.hp.com> | 2006-02-02 00:13:39 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2006-02-02 00:13:39 +0000 |
commit | 3f7f53c7b3c1495c38856bdb05890174706827f0 (patch) | |
tree | a0b19fe3d46d2575cdc15be4eee119ab20f05f34 /gcc/fold-const.c | |
parent | 65b4c3370fbfb06b33e313763afdf28715402bfa (diff) | |
download | gcc-3f7f53c7b3c1495c38856bdb05890174706827f0.tar.gz |
re PR middle-end/24901 (Misaligned data in fold_checksum_tree (--enable-checking=all))
PR middle-end/24901
* fold-const.c (fold_checksum_tree): Change type of buf.
From-SVN: r110487
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index ed100cefcb8..242a0ff54bb 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -10476,7 +10476,7 @@ fold_checksum_tree (tree expr, struct md5_ctx *ctx, htab_t ht) { void **slot; enum tree_code code; - char buf[sizeof (struct tree_function_decl)]; + struct tree_function_decl buf; int i, len; recursive_label: @@ -10495,8 +10495,8 @@ recursive_label: && DECL_ASSEMBLER_NAME_SET_P (expr)) { /* Allow DECL_ASSEMBLER_NAME to be modified. */ - memcpy (buf, expr, tree_size (expr)); - expr = (tree) buf; + memcpy ((char *) &buf, expr, tree_size (expr)); + expr = (tree) &buf; SET_DECL_ASSEMBLER_NAME (expr, NULL); } else if (TREE_CODE_CLASS (code) == tcc_type @@ -10505,8 +10505,8 @@ recursive_label: || TYPE_CONTAINS_PLACEHOLDER_INTERNAL (expr))) { /* Allow these fields to be modified. */ - memcpy (buf, expr, tree_size (expr)); - expr = (tree) buf; + memcpy ((char *) &buf, expr, tree_size (expr)); + expr = (tree) &buf; TYPE_CONTAINS_PLACEHOLDER_INTERNAL (expr) = 0; TYPE_POINTER_TO (expr) = NULL; TYPE_REFERENCE_TO (expr) = NULL; |