diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2011-04-10 08:36:24 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2011-04-10 08:36:24 +0000 |
| commit | 016ef400c41fee3ba8036c0e8ef26cb48f9365f5 (patch) | |
| tree | 2a9b77f8e77d48debb99a929dd0c15662257cba3 /clang/test/SemaCXX/warn-literal-conversion.cpp | |
| parent | 8cb243a78fe97ba0ea86893ed2094f4444726879 (diff) | |
| download | bcm5719-llvm-016ef400c41fee3ba8036c0e8ef26cb48f9365f5.tar.gz bcm5719-llvm-016ef400c41fee3ba8036c0e8ef26cb48f9365f5.zip | |
Enhance the diagnostic for literal float -> int conversions to suggest
rewriting the literal when the value is integral. It is not uncommon to
see code written as:
const int kBigNumber = 42e5;
Without any real awareness that this is no longer an ICE. The note helps
automate and ease the process of fixing code that violates the warning.
llvm-svn: 129243
Diffstat (limited to 'clang/test/SemaCXX/warn-literal-conversion.cpp')
| -rw-r--r-- | clang/test/SemaCXX/warn-literal-conversion.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/clang/test/SemaCXX/warn-literal-conversion.cpp b/clang/test/SemaCXX/warn-literal-conversion.cpp index dab5c01bf6b..b9c952873b9 100644 --- a/clang/test/SemaCXX/warn-literal-conversion.cpp +++ b/clang/test/SemaCXX/warn-literal-conversion.cpp @@ -8,13 +8,18 @@ void test0() { int y0 = 1.2222F; // expected-warning {{implicit conversion turns literal floating-point number into integer}} int y1 = (1.2222F); // expected-warning {{implicit conversion turns literal floating-point number into integer}} int y2 = (((1.2222F))); // expected-warning {{implicit conversion turns literal floating-point number into integer}} - int y3 = 12E1F; // expected-warning {{implicit conversion turns literal floating-point number into integer}} - int y4 = 1.2E1F; // expected-warning {{implicit conversion turns literal floating-point number into integer}} + int y3 = 12E1F; // expected-warning {{implicit conversion turns literal floating-point number into integer}} \ + // expected-note {{this can be rewritten as an integer literal with the exact same value}} + int y4 = 1.2E1F; // expected-warning {{implicit conversion turns literal floating-point number into integer}} \ + // expected-note {{this can be rewritten as an integer literal with the exact same value}} // Double int y5 = 1.2222; // expected-warning {{implicit conversion turns literal floating-point number into integer}} - int y6 = 12E1; // expected-warning {{implicit conversion turns literal floating-point number into integer}} - int y7 = 1.2E1; // expected-warning {{implicit conversion turns literal floating-point number into integer}} - int y8 = (1.2E1); // expected-warning {{implicit conversion turns literal floating-point number into integer}} + int y6 = 12E1; // expected-warning {{implicit conversion turns literal floating-point number into integer}} \ + // expected-note {{this can be rewritten as an integer literal with the exact same value}} + int y7 = 1.2E1; // expected-warning {{implicit conversion turns literal floating-point number into integer}} \ + // expected-note {{this can be rewritten as an integer literal with the exact same value}} + int y8 = (1.2E1); // expected-warning {{implicit conversion turns literal floating-point number into integer}} \ + // expected-note {{this can be rewritten as an integer literal with the exact same value}} // Test assignment to an existing variable. y8 = 2.22F; // expected-warning {{implicit conversion turns literal floating-point number into integer}} |

