------- Comment #26 from rguenth at gcc dot gnu dot org  2008-11-22 20:41 
-------
Even with ref-all pointers we end up with

<bb 5>:
  # addr.0{0}_1 = PHI <&va_arg_tmp.3(3), addr.0{0}_22(4)>
  # ap_38 = PHI <ap_56(3), ap_57(4)>
  # va_arg_tmp.3_39 = PHI <va_arg_tmp.3_55(3), va_arg_tmp.3_50(4)>
  addr.8_25 = (struct S2848 * {ref-all}) addr.0{0}_1;
  # VUSE <fails_48, ap_38, SMT.26_53>
  # arg_59 = VDEF <arg_58(D)>
  arg = *addr.8_25;

where the last stmt misses a VUSE of va_arg_tmp.3.  This looks like a bug
in alias computation.

I have a fix for that parts.  The gimplify_va_arg still needs to use ref-all
pointers properly.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38151

Reply via email to