Commit 3f7f53c7 by Steve Ellcey Committed by Steve Ellcey

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
parent 65b4c337
2006-02-01 Steve Ellcey <sje@cup.hp.com>
PR middle-end/24901
* fold-const.c (fold_checksum_tree): Change type of buf.
2006-02-01 Bernd Schmidt <bernd.schmidt@analog.com>
* reload.c (push_secondary_reload): Initialize t_icode.
......
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment