Commit 04902d4c by Jakub Jelinek Committed by Jakub Jelinek

re PR c++/49264 (Internal compiler error: segmentation fault)

	PR c++/49264
	* gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
	if stmt folded into nothing.
	* tree-inline.c (fold_marked_statements): If a builtin at the
	end of a bb folded into nothing, just update cgraph edges
	and move to next bb.
	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
	to be NULL.  Don't compute count and frequency if new_call is NULL.

	* g++.dg/opt/pr49264.C: New test.

From-SVN: r174712
parent a9d24544
2011-06-06 Jakub Jelinek <jakub@redhat.com> 2011-06-06 Jakub Jelinek <jakub@redhat.com>
PR debug/49294
* dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
non-MODE_INT modes.
PR c++/49264 PR c++/49264
* gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
if stmt folded into nothing. if stmt folded into nothing.
......
...@@ -14904,6 +14904,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode, ...@@ -14904,6 +14904,8 @@ mem_loc_descriptor (rtx rtl, enum machine_mode mode,
goto do_shift; goto do_shift;
do_shift: do_shift:
if (GET_MODE_CLASS (mode) != MODE_INT)
break;
op0 = mem_loc_descriptor (XEXP (rtl, 0), mode, mem_mode, op0 = mem_loc_descriptor (XEXP (rtl, 0), mode, mem_mode,
VAR_INIT_STATUS_INITIALIZED); VAR_INIT_STATUS_INITIALIZED);
{ {
......
2011-06-06 Jakub Jelinek <jakub@redhat.com> 2011-06-06 Jakub Jelinek <jakub@redhat.com>
PR debug/49294
* gcc.dg/debug/pr49294.c: New test.
PR c++/49264 PR c++/49264
* g++.dg/opt/pr49264.C: New test. * g++.dg/opt/pr49264.C: New test.
......
/* PR debug/49294 */
/* { dg-do compile } */
typedef __attribute__ ((vector_size ((8) * sizeof (short)))) short V;
int k;
V v;
void
foo (void)
{
V w = { k, k, k, k, k, k, k, k };
V x = v >> w;
}
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