Commit 328654cc by Richard Guenther Committed by Richard Biener

re PR c++/26140 (ice on valid C++ code)

2006-02-07  Richard Guenther  <rguenther@suse.de>

	PR c++/26140
	Revert
	2006-01-30  Richard Guenther  <rguenther@suse.de>
 	PR c++/23372
 	* gimplify.c (gimplify_target_expr): Handle easy cases
 	without creating a temporary.

	Revert
	2006-01-30  Richard Guenther  <rguenther@suse.de>
 	PR c++/23372
 	* gcc.dg/pr23372-1.C: New testcase.

	* g++.dg/tree-ssa/pr26140.C: New testcase.

From-SVN: r110699
parent 774b9d21
2006-02-07 Richard Guenther <rguenther@suse.de>
PR c++/26140
Revert
2006-01-30 Richard Guenther <rguenther@suse.de>
PR c++/23372
* gimplify.c (gimplify_target_expr): Handle easy cases
without creating a temporary.
2006-02-07 Pete Steinmetz <steinmtz@us.ibm.com>
* sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
......
......@@ -4056,15 +4056,6 @@ gimplify_target_expr (tree *expr_p, tree *pre_p, tree *post_p)
if (init)
{
/* Try to avoid the temporary if possible. */
if (TREE_CODE (init) == INDIRECT_REF
&& !TREE_SIDE_EFFECTS (init)
&& !TARGET_EXPR_CLEANUP (targ))
{
*expr_p = init;
return GS_OK;
}
/* TARGET_EXPR temps aren't part of the enclosing block, so add it
to the temps list. */
gimple_add_tmp_var (temp);
......
2006-02-07 Richard Guenther <rguenther@suse.de>
PR c++/26140
Revert
2006-01-30 Richard Guenther <rguenther@suse.de>
PR c++/23372
* gcc.dg/pr23372-1.C: New testcase.
* g++.dg/tree-ssa/pr26140.C: New testcase.
2006-02-07 Mark Mitchell <mark@codesourcery.com>
PR c++/9737
/* { dg-do compile } */
struct Pitch
{
int notename_;
};
struct Audio_note
{
Audio_note (Pitch p);
};
void create_audio_elements ()
{
Pitch *pit;
new Audio_note (*pit);
}
/* { dg-do compile } */
/* { dg-options "-Os" } */
struct A {
int a[1000];
};
void f(struct A);
void g(struct A *a) { f(*a); }
/* { dg-final { scan-assembler-times "memcpy" 1 } } */
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