summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/warn-literal-conversion.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-04-10 08:36:24 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-04-10 08:36:24 +0000
commit016ef400c41fee3ba8036c0e8ef26cb48f9365f5 (patch)
tree2a9b77f8e77d48debb99a929dd0c15662257cba3 /clang/test/SemaCXX/warn-literal-conversion.cpp
parent8cb243a78fe97ba0ea86893ed2094f4444726879 (diff)
downloadbcm5719-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.cpp15
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}}
OpenPOWER on IntegriCloud