------- 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