[Bug tree-optimization/126536] [13/14/15/16/17 Regression] ICE with -funswitch-loops

"ktkachov at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126536

--- Comment #1 from ktkachov at gcc dot gnu.org ---
The other case the comment in the testcase above references is:
volatile int v;

__attribute__((noipa)) int
f (int a)
{
  switch (a)
    {
    case 1: case 3: case 5: case 7: case 9: case 11: case 13: case 15: case 17:
case 19: case 21: case 23: case 25: case 27: case 29:
    case 31: case 33: case 35: case 37: case 39: case 41: case 43: case 45:
case 47: case 49: case 51: case 53: case 55: case 57: case 59:
    case 61: case 63: case 65: case 67: case 69: case 71: case 73: case 75:
case 77: case 79: case 81: case 83: case 85: case 87: case 89:
    case 91: case 93: case 95: case 97: case 99: case 101: case 103: case 105:
case 107: case 109: case 111: case 113: case 115: case 117: case 119:
    case 121: case 123: case 125: case 127: case 129: case 131: case 133: case
135: case 137: case 139: case 141: case 143: case 145: case 147: case 149:
    case 151: case 153: case 155: case 157: case 159: case 161: case 163: case
165: case 167: case 169: case 171: case 173: case 175: case 177: case 179:
    case 181: case 183: case 185: case 187: case 189: case 191: case 193: case
195: case 197: case 199: case 201: case 203: case 205: case 207: case 209:
    case 211: case 213: case 215: case 217: case 219: case 221: case 223: case
225: case 227: case 229: case 231: case 233: case 235: case 237: case 239:
    case 241: case 243: case 245: case 247: case 249: case 251: case 253: case
255: case 257: case 259: case 261: case 263: case 265: case 267: case 269:
    case 271: case 273: case 275: case 277: case 279: case 281: case 283: case
285: case 287: case 289: case 291: case 293: case 295: case 297: case 299:
    case 301: case 303: case 305: case 307: case 309: case 311: case 313: case
315: case 317: case 319: case 321: case 323: case 325: case 327: case 329:
    case 331: case 333: case 335: case 337: case 339: case 341: case 343: case
345: case 347: case 349: case 351: case 353: case 355: case 357: case 359:
    case 361: case 363: case 365: case 367: case 369: case 371: case 373: case
375: case 377: case 379: case 381: case 383: case 385: case 387: case 389:
    case 391: case 393: case 395: case 397: case 399: case 401: case 403: case
405: case 407: case 409: case 411: case 413: case 415: case 417: case 419:
    case 421: case 423: case 425: case 427: case 429: case 431: case 433: case
435: case 437: case 439: case 441: case 443: case 445: case 447: case 449:
    case 451: case 453: case 455: case 457: case 459: case 461: case 463: case
465: case 467: case 469: case 471: case 473: case 475: case 477: case 479:
    case 481: case 483: case 485: case 487: case 489: case 491: case 493: case
495: case 497: case 499: case 501: case 503: case 505: case 507: case 509:
      break;
    default:
      return 0;
    }
  v += 1; v += 2; v += 3; v += 4; v += 5; v += 6; v += 7; v += 8; v += 9; v +=
10;
  v += 11; v += 12; v += 13; v += 14; v += 15; v += 16; v += 17; v += 18; v +=
19; v += 20;
  v += 21; v += 22; v += 23; v += 24; v += 25; v += 26; v += 27; v += 28; v +=
29; v += 30;
  v += 31; v += 32; v += 33; v += 34; v += 35; v += 36; v += 37; v += 38; v +=
39; v += 40;
  switch (a)
    {
    case 0 ... 100000:
      return 1;
    case 200000:
      return 3;
    default:
      return 2;
    }
}

int
main (void)
{
  if (f (3) != 1)
    __builtin_abort ();
  if (f (2) != 0)
    __builtin_abort ();
  return 0;
}

Needs just -O2
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.