switch-1.c revision f6e65cc9a654d54411c43fd014e911a407ad4075
1// RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-apple-darwin10 %s
2// RUN: %clang_cc1 -x c++ -fsyntax-only -verify -triple x86_64-apple-darwin10 %s
3// rdar://11577384
4
5int f(int i) {
6  switch (i) {
7    case 2147483647 + 2: // expected-note {{value 2147483649 is outside the range of representable values of type 'int'}}  \
8                      // expected-warning {{overflow in case constant expression results in new value (-2147483647)}}
9      return 1;
10    case 9223372036854775807L * 4 : // expected-note {{value 36893488147419103228 is outside the range of representable values of type 'long'}}   \
11                        // expected-warning {{overflow in case constant expression results in new value (-4)}}
12      return 2;
13    case 2147483647:
14      return 0;
15  }
16  return 0;
17}
18