[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gcc-bugs
Subject:    [Bug middle-end/54470] FAIL: gcc.dg/ipa/iinline-4.c scan-ipa-dump inline "hooray4[^\\n]*inline copy
From:       "jamborm at gcc dot gnu.org" <gcc-bugzilla () gcc ! gnu ! org>
Date:       2012-11-30 17:49:07
Message-ID: bug-54470-4-3q6CgLAvmo () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]


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.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic