===================================================================
@@ -1,97 +0,0 @@
-/* PR tree-optimization/45830 */
-
-extern void abort (void);
-
-long long va, vb, vc, vd, ve;
-
-__attribute__((noinline)) int
-foo (int x)
-{
- long long a, b, c, d, e;
- switch (x)
- {
- case 0:
- case 3:
- case 1:
- case 2:
- case 4:
- a = 1;
- b = 129;
- c = -12;
- d = -4;
- e = 128;
- break;
- case 23:
- case 26:
- case 19:
- case 65:
- case 5:
- a = 2;
- b = 138;
- c = 115;
- d = 128;
- e = -16;
- break;
- case 21:
- case 20:
- case 22:
- case 38:
- case 27:
- case 66:
- case 45:
- case 47:
- a = 3;
- b = 6;
- c = 127;
- d = 25;
- e = 257;
- break;
- default:
- a = 0;
- b = 18;
- c = 0;
- d = 64;
- e = 32768L;
- break;
- }
- va = a;
- vb = b;
- vc = c;
- vd = d;
- ve = e;
-}
-
-int
-bar (int x)
-{
- if (x < 0)
- return 3;
- if (x < 5)
- return 0;
- if (x == 5 || x == 19 || x == 23 | x == 26 || x == 65)
- return 1;
- if ((x >= 20 && x <= 22) || x == 27 || x == 38
- || x == 45 || x == 47 || x == 66)
- return 2;
- return 3;
-}
-
-long long expected[] =
-{ 1, 129, -12, -4, 128, 2, 138, 115, 128, -16,
- 3, 6, 127, 25, 257, 0, 18, 0, 64, 32768L };
-
-int
-main (void)
-{
- int i, v;
- for (i = -4; i < 70; i++)
- {
- foo (i);
- v = bar (i);
- if (va != expected[5 * v] || vb != expected[5 * v + 1]
- || vc != expected[5 * v + 2] || vd != expected[5 * v + 3]
- || ve != expected[5 * v + 4])
- abort ();
- }
- return 0;
-}
===================================================================
@@ -1,4 +1,6 @@
/* PR tree-optimization/45830 */
+/* { dg-do run } */
+/* { dg-additional-options "-fno-tree-switch-conversion" { target avr-*-* } } */
extern void abort (void);