On 5/13/07, Jason Merrill <[EMAIL PROTECTED]> wrote:
Mark Mitchell wrote:
> PR 30252: Wrong code generation, perhaps due to the C++ front end's
> representation for base classes.  Jason, are you actively investigating
> this one?

I haven't been; I've been working on the forced unwind stuff, and
looking at the rvalue refs patch.  If you want I can work on this first,
but I doubt that the patch would be safe enough for the release branch.

Also, has someone actually verified that this is something that would be
fixed by the bases-as-fields work?

Possibly not.  See the audit trail of the PR.  But, we can work around the
problem by (bootstrapped and tested on x86_64-unknown-linux-gnu):

Index: passes.c
===================================================================
--- passes.c    (revision 124635)
+++ passes.c    (working copy)
@@ -498,8 +498,8 @@ init_optimization_passes (void)
  /* Initial scalar cleanups.  */
  NEXT_PASS (pass_ccp);
  NEXT_PASS (pass_fre);
-  NEXT_PASS (pass_dce);
  NEXT_PASS (pass_forwprop);
+  NEXT_PASS (pass_dce);
  NEXT_PASS (pass_copy_prop);
  NEXT_PASS (pass_merge_phi);
  NEXT_PASS (pass_vrp);

though the base on which I would say this patch is safe is contradicted
by the fact that it does fix (ok, work around) a regression ;)  The underlying
problem looks like an alias problem or a frontend problem leading to the
alias problem, but I'm out of fu here and Sunday asks for some other things
to do.

Richard.

Reply via email to