Improve diagnsotic further on integer overflow.

llvm-svn: 173461
This commit is contained in:
Fariborz Jahanian 2013-01-25 17:19:07 +00:00
parent 48eaffc9f7
commit 740396437b
2 changed files with 6 additions and 5 deletions

View File

@ -107,7 +107,7 @@ def note_constexpr_calls_suppressed : Note<
"see all)">;
def note_constexpr_call_here : Note<"in call to '%0'">;
def warn_integer_constant_overflow : Warning<
"overflow of constant expression results in value %0 of type %1">,
"overflow in expression;result is %0 with type %1">,
InGroup<DiagGroup<"integer-overflow">>;
// inline asm related.

View File

@ -4,14 +4,15 @@
int f(int i) {
switch (i) {
case 2147483647 + 2: // expected-warning {{overflow of constant expression results in value -2147483647 of type 'int'}}
case 2147483647 + 2: // expected-warning {{overflow in expression;result is -2147483647 with type 'int'}}
return 1;
case 9223372036854775807L * 4: // expected-warning {{overflow of constant expression results in value -4 of type 'long'}}
case 9223372036854775807L * 4: // expected-warning {{overflow in expression;result is -4 with type 'long'}}
return 2;
case (123456 *789012) + 1: // expected-warning {{overflow of constant expression results in value -1375982336 of type 'int'}}
case (123456 *789012) + 1: // expected-warning {{overflow in expression;result is -1375982336 with type 'int'}}
return 3;
case 2147483647:
return 0;
}
return 0;
return (i, 65537) * 65537; // expected-warning {{overflow in expression;result is 131073 with type 'int'}} \
// expected-warning {{expression result unused}}
}