------- Comment #4 from jamborm at gcc dot gnu dot org 2009-12-22 14:26 ------- (In reply to comment #3) > > on i686 (or with -m32) this does not happen - Martin, any idea why? >
I had to examine the testcase to find out. It turns out that on i686 is_va_list_type() returns true for this type (char *) and so IPA-SRA does not even consider it a candidate. The test was added because of premature decomposition of alpha stdarg structures (pretty much the same issue as with early intraprocedural SRA) and so does not really make sense here. An easy way out of this would be to allow scalar is_va_list_type types. I will make a patch for next stage 1. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42375