re PR middle-end/42559 (ice in emit_block_move_hints with -O2)

2010-01-01  Richard Guenther  <rguenther@suse.de>

	PR middle-end/42559
	* builtins.c (get_object_alignment): Do not use DECL_ALIGN
	for LABEL_DECLs.

	* gcc.c-torture/compile/pr42559.c: New testcase.

From-SVN: r155554
This commit is contained in:
Richard Guenther 2010-01-01 13:56:50 +00:00 committed by Richard Biener
parent 78542dee33
commit a28ff68b14
4 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2010-01-01 Richard Guenther <rguenther@suse.de>
PR middle-end/42559
* builtins.c (get_object_alignment): Do not use DECL_ALIGN
for LABEL_DECLs.
2009-12-31 Jakub Jelinek <jakub@redhat.com>
* tree-dump.c (dump_options): Don't set TDF_NOUID for all.

View File

@ -325,7 +325,8 @@ get_object_alignment (tree exp, unsigned int align, unsigned int max_align)
}
if (TREE_CODE (exp) == CONST_DECL)
exp = DECL_INITIAL (exp);
if (DECL_P (exp))
if (DECL_P (exp)
&& TREE_CODE (exp) != LABEL_DECL)
align = MIN (inner, DECL_ALIGN (exp));
#ifdef CONSTANT_ALIGNMENT
else if (CONSTANT_CLASS_P (exp))

View File

@ -1,3 +1,8 @@
2010-01-01 Richard Guenther <rguenther@suse.de>
PR middle-end/42559
* gcc.c-torture/compile/pr42559.c: New testcase.
2009-12-30 Joseph Myers <joseph@codesourcery.com>
PR c/42439

View File

@ -0,0 +1,8 @@
void jumpfunc(int copy, void *p)
{
void *l = &&jumplabel;
if (copy)
__builtin___memcpy_chk (p, l, 128, __builtin_object_size (p, 0));
jumplabel:
return;
}