http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54470
--- Comment #2 from Martin Jambor <jamborm at gcc dot gnu.org> 2012-11-30
17:49:07 UTC ---
The problem is that whereas on other platforms, hiphip4 looks like:
hiphip4 (struct S s)
{
void (*<T29e>) (struct S *) _2;
<bb 2>:
_2 = s.f;
_2 (&s);
return;
}
on hppa, there is an extra aggregate aggregate variable with an extra
assignment:
hiphip4 (struct S s)
{
struct S s.0;
void (*<T2b0>) (struct S *) _3;
<bb 2>:
s.0 = s;
_3 = s.0.f;
_3 (&s.0);
return;
}
Thus _3 is not loaded from a PARM_DECL but from the extra VAR_DECL and
ipa-prop.c is not able to associate it with the parameter and I cannot
think of a simple way of doing that (I checked and
DECL_HAS_VALUE_EXPR_P of the parm decl is NULL when ipa-cp analysis
runs so that cannot be used, it seems).
Thus, I'm afraid that the best solution, at least for 4.8, is to xfail
the test for hppa.