This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gimple weirdness for Java


I guess I'm doing something wrong.

Look at the definition of #1#4 below.  The "*.LJpc=11" seems to branch
around the assignment of #1#4.  All the calculation at the end of the
function seems irrelevant, because it returns the value of #1#4.

Also, I'm a bit confused, in that #1#5 seems to be assigned twice:
this is the gimple dump.  But this is SSA, no?

Maybe there's something wrong with the dump?  Or is this totally
bogus?

Thanks,
Andrew.


;; Function BugJune3.seeIfItsTrue() (_ZN8BugJune312seeIfItsTrueEv)

BugJune3.seeIfItsTrue() (<D431>)
{
  struct BugJune3$LittleThing * T.4;
  struct BugJune3$LittleThing * T.5;
  struct java.lang.Object * T.6;
  struct 
  {
    struct java.lang.Class * class;
    void * methods[2];
  } * T.7;
  void * * T.8;
  void * T.9;
  BugJune3$LittleThing:: * T.10;
  boolean T.11;

  {
    struct BugJune3 * <D436>;
    struct BugJune3$LittleThing * #1#3;
    int #1#4;
    struct BugJune3 * <D439>;
    promoted_boolean #1#5;

    <D436> = <D431>;
    T.4 = <D436>->littleThing;
    #1#3 = T.4;
    if (#1#3 != 0B)
      {
        goto *.LJpc=11;
      }
    else
      {
        
      }
    #1#4 = 0;
    goto *.LJpc=18;
    *.LJpc=11:;
    <D439> = <D431>;
    #1#5 = #1#4;
    T.5 = <D439>->littleThing;
    T.6 = (struct java.lang.Object *)T.5;
    T.7 = T.6->vtable;
    T.8 = T.7 + 56B;
    T.9 = *T.8;
    T.10 = (BugJune3$LittleThing:: *)T.9;
    T.11 = T.10 (T.5);
    #1#5 = (promoted_boolean)T.11;
    *.LJpc=18:;
    return #1#4;
  }
}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]