switch.c revision c049e4f406a7f7179eba98659044a32508e53289
151b09f2c528c8460b5465c676173324e44176d62Devang Patel// RUN: clang %s -emit-llvm | llvm-as | opt -std-compile-opts -disable-output
251b09f2c528c8460b5465c676173324e44176d62Devang Patel
351b09f2c528c8460b5465c676173324e44176d62Devang Patelint foo(int i) {
451b09f2c528c8460b5465c676173324e44176d62Devang Patel  int j = 0;
551b09f2c528c8460b5465c676173324e44176d62Devang Patel  switch (i) {
651b09f2c528c8460b5465c676173324e44176d62Devang Patel  case 1 :
751b09f2c528c8460b5465c676173324e44176d62Devang Patel    j = 2; break;
851b09f2c528c8460b5465c676173324e44176d62Devang Patel  case 2:
951b09f2c528c8460b5465c676173324e44176d62Devang Patel    j = 3; break;
1051b09f2c528c8460b5465c676173324e44176d62Devang Patel  default:
1151b09f2c528c8460b5465c676173324e44176d62Devang Patel    j = 42; break;
1251b09f2c528c8460b5465c676173324e44176d62Devang Patel  }
1351b09f2c528c8460b5465c676173324e44176d62Devang Patel  j = j + 1;
1451b09f2c528c8460b5465c676173324e44176d62Devang Patel  return j;
1551b09f2c528c8460b5465c676173324e44176d62Devang Patel}
1651b09f2c528c8460b5465c676173324e44176d62Devang Patel
1751b09f2c528c8460b5465c676173324e44176d62Devang Patel
182d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patelint foo2(int i) {
192d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  int j = 0;
202d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  switch (i) {
212d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  case 1 :
222d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel    j = 2; break;
232d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  case 2 ... 10:
242d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel    j = 3; break;
252d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  default:
262d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel    j = 42; break;
272d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  }
282d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  j = j + 1;
292d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel  return j;
302d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel}
312d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel
322d79d0f3ac0ea77b7bdfc3dd11de8cc3ccd91b8cDevang Patel
33c049e4f406a7f7179eba98659044a32508e53289Devang Patelint foo3(int i) {
34c049e4f406a7f7179eba98659044a32508e53289Devang Patel  int j = 0;
35c049e4f406a7f7179eba98659044a32508e53289Devang Patel  switch (i) {
36c049e4f406a7f7179eba98659044a32508e53289Devang Patel  default:
37c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 42; break;
38c049e4f406a7f7179eba98659044a32508e53289Devang Patel  case 111:
39c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 111; break;
40c049e4f406a7f7179eba98659044a32508e53289Devang Patel  case 0 ... 100:
41c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 1; break;
42c049e4f406a7f7179eba98659044a32508e53289Devang Patel  case 222:
43c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 222; break;
44c049e4f406a7f7179eba98659044a32508e53289Devang Patel  }
45c049e4f406a7f7179eba98659044a32508e53289Devang Patel  return j;
46c049e4f406a7f7179eba98659044a32508e53289Devang Patel}
47c049e4f406a7f7179eba98659044a32508e53289Devang Patel
48c049e4f406a7f7179eba98659044a32508e53289Devang Patel
49c049e4f406a7f7179eba98659044a32508e53289Devang Patelint foo4(int i) {
50c049e4f406a7f7179eba98659044a32508e53289Devang Patel  int j = 0;
51c049e4f406a7f7179eba98659044a32508e53289Devang Patel  switch (i) {
52c049e4f406a7f7179eba98659044a32508e53289Devang Patel  case 111:
53c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 111; break;
54c049e4f406a7f7179eba98659044a32508e53289Devang Patel  case 0 ... 100:
55c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 1; break;
56c049e4f406a7f7179eba98659044a32508e53289Devang Patel  case 222:
57c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 222; break;
58c049e4f406a7f7179eba98659044a32508e53289Devang Patel  default:
59c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 42; break;
60c049e4f406a7f7179eba98659044a32508e53289Devang Patel  case 501 ... 600:
61c049e4f406a7f7179eba98659044a32508e53289Devang Patel    j = 5; break;
62c049e4f406a7f7179eba98659044a32508e53289Devang Patel  }
63c049e4f406a7f7179eba98659044a32508e53289Devang Patel  return j;
64c049e4f406a7f7179eba98659044a32508e53289Devang Patel}
65