re PR middle-end/42397 (FAIL: gfortran.dg/lto/20091028-2 f_lto_20091028-2_0.o-f_lto_20091028-2_1.o link, internal compiler error)

2009-12-17  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42397
	* builtins.c (get_object_alignment): Properly deal with
	a CONST_DECL base.
	* expr.c (emit_block_move_hints): Assert the alignment makes
	sense.

From-SVN: r155316
This commit is contained in:
Richard Guenther 2009-12-17 14:36:43 +00:00 committed by Richard Biener
parent 3c35a1a77f
commit e100f3957c
3 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2009-12-17 Richard Guenther <rguenther@suse.de>
PR middle-end/42397
* builtins.c (get_object_alignment): Properly deal with
a CONST_DECL base.
* expr.c (emit_block_move_hints): Assert the alignment makes
sense.
2009-12-17 Uros Bizjak <ubizjak@gmail.com>
PR target/32280

View File

@ -323,6 +323,8 @@ get_object_alignment (tree exp, unsigned int align, unsigned int max_align)
offset = next_offset;
}
}
if (TREE_CODE (exp) == CONST_DECL)
exp = DECL_INITIAL (exp);
if (DECL_P (exp))
align = MIN (inner, DECL_ALIGN (exp));
#ifdef CONSTANT_ALIGNMENT

View File

@ -1194,6 +1194,7 @@ emit_block_move_hints (rtx x, rtx y, rtx size, enum block_op_methods method,
}
align = MIN (MEM_ALIGN (x), MEM_ALIGN (y));
gcc_assert (align >= BITS_PER_UNIT);
gcc_assert (MEM_P (x));
gcc_assert (MEM_P (y));