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



--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2012-10-31 09:13:46 
UTC ---

The code looks like:



  while (dyn->d_tag != 0) 

    {

      if ((d_tag_utype) dyn->d_tag < 34) 

 info[dyn->d_tag] = dyn;

      else if (dyn->d_tag >= 0x70000000 &&

        dyn->d_tag < 0x70000000 + 0)

 info[dyn->d_tag - 0x70000000 + 34] = dyn;

      else if ((d_tag_utype) (0x6fffffff - (dyn->d_tag)) < 16) 

 info[(34 + 0 + (0x6fffffff - (dyn->d_tag)))] = dyn;

      else if ((d_tag_utype) ((Elf32_Word)-((Elf32_Sword) (dyn->d_tag)

<<1>>1)-1) < 3)

 info[((Elf32_Word)-((Elf32_Sword) (dyn->d_tag) <<1>>1)-1) + 34 + 0

      + 16] = dyn;

      else if ((d_tag_utype) (0x6ffffdff - (dyn->d_tag)) < 12)

 info[(0x6ffffdff - (dyn->d_tag)) + 34 + 0

      + 16 + 3] = dyn;

      else if ((d_tag_utype) (0x6ffffeff - (dyn->d_tag)) < 11)

 info[(0x6ffffeff - (dyn->d_tag)) + 34 + 0

      + 16 + 3 + 12] = dyn;

      ++dyn;

    }

Reply via email to