------- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-16 
21:21 -------
This is as far as I can get it, any further reducing will cause this to pass:
extern void abort (void);
extern const unsigned short __cns11643l1_to_ucs4_tab[];
char buf[3];
void cns11643_to_ucs4 (void)
{
  buf[0] = 0x23;
  {
    const char *tmp = buf;
    unsigned char ch = *(tmp);
    unsigned char ch2;
    unsigned char ch3;
    unsigned int result = 2;
    int idx;
    
    ch2 = buf[1];
    
    if ((ch2) <= 0x20 )
      goto abort1;
    
    ch3 = buf[2];
    idx = ch2-0x20 ;
    switch (ch - 0x20)
    {
      case 1:
        if (idx > 0x21f2)
          goto abort1;
        result = __cns11643l1_to_ucs4_tab[1];
        break;
      case 4:
      case 5:
      case 7:
        goto abort1;
      case 15:
        if (idx > 0x1c00)
          goto abort1;
        break;
    }
    if (result == L'\0')
      goto abort1;
  }
  return;
abort1:
    abort ();
}

I should note between 20050127 and today, nothing has changed on the tree level.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-02-16 21:21:57
               date|                            |


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

Reply via email to