summaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2006-02-02 00:13:39 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2006-02-02 00:13:39 +0000
commit3f7f53c7b3c1495c38856bdb05890174706827f0 (patch)
treea0b19fe3d46d2575cdc15be4eee119ab20f05f34 /gcc/fold-const.c
parent65b4c3370fbfb06b33e313763afdf28715402bfa (diff)
downloadgcc-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.c10
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;