diff options
| author | Richard Trieu <rtrieu@google.com> | 2014-04-22 01:01:05 +0000 |
|---|---|---|
| committer | Richard Trieu <rtrieu@google.com> | 2014-04-22 01:01:05 +0000 |
| commit | 393197a08e2b8376c4f5304c7eeaa84eecdf27cf (patch) | |
| tree | 1d827208ccd6cdf9bc72ba79bcccd74e32f8cab1 | |
| parent | f171ace07dd016887e23b404903526d447e4e4ef (diff) | |
| download | bcm5719-llvm-393197a08e2b8376c4f5304c7eeaa84eecdf27cf.tar.gz bcm5719-llvm-393197a08e2b8376c4f5304c7eeaa84eecdf27cf.zip | |
Move the warning of implicit cast of a floating point to an integer out of
-Wconversion and into it's own group, -Wfloating-point-conversion.
llvm-svn: 206832
| -rw-r--r-- | clang/include/clang/Basic/DiagnosticGroups.td | 2 | ||||
| -rw-r--r-- | clang/include/clang/Basic/DiagnosticSemaKinds.td | 2 | ||||
| -rw-r--r-- | clang/test/SemaCXX/warn-floating-point-conversion.cpp | 38 |
3 files changed, 41 insertions, 1 deletions
diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index b47b871dbee..f69e738aadf 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -41,6 +41,7 @@ def PointerBoolConversion : DiagGroup<"pointer-bool-conversion">; def BoolConversion : DiagGroup<"bool-conversion", [ PointerBoolConversion ] >; def IntConversion : DiagGroup<"int-conversion">; def EnumConversion : DiagGroup<"enum-conversion">; +def FloatingPointConversion : DiagGroup<"floating-point-conversion">; def EnumTooLarge : DiagGroup<"enum-too-large">; def NonLiteralNullConversion : DiagGroup<"non-literal-null-conversion">; def NullConversion : DiagGroup<"null-conversion">; @@ -476,6 +477,7 @@ def Conversion : DiagGroup<"conversion", [BoolConversion, ConstantConversion, EnumConversion, + FloatingPointConversion, Shorten64To32, IntConversion, LiteralConversion, diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index c13be0326ed..03a82ec6e65 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -2319,7 +2319,7 @@ def warn_impcast_float_precision : Warning< InGroup<Conversion>, DefaultIgnore; def warn_impcast_float_integer : Warning< "implicit conversion turns floating-point number into integer: %0 to %1">, - InGroup<Conversion>, DefaultIgnore; + InGroup<FloatingPointConversion>, DefaultIgnore; def warn_impcast_integer_sign : Warning< "implicit conversion changes signedness: %0 to %1">, InGroup<SignConversion>, DefaultIgnore; diff --git a/clang/test/SemaCXX/warn-floating-point-conversion.cpp b/clang/test/SemaCXX/warn-floating-point-conversion.cpp new file mode 100644 index 00000000000..1a88c2d3f38 --- /dev/null +++ b/clang/test/SemaCXX/warn-floating-point-conversion.cpp @@ -0,0 +1,38 @@ +// RUN: %clang_cc1 -verify -fsyntax-only %s -Wfloating-point-conversion + +bool ReturnBool(float f) { + return f; //expected-warning{{conversion}} +} + +char ReturnChar(float f) { + return f; //expected-warning{{conversion}} +} + +int ReturnInt(float f) { + return f; //expected-warning{{conversion}} +} + +long ReturnLong(float f) { + return f; //expected-warning{{conversion}} +} + +void Convert(float f, double d, long double ld) { + bool b; + char c; + int i; + long l; + + b = f; //expected-warning{{conversion}} + b = d; //expected-warning{{conversion}} + b = ld; //expected-warning{{conversion}} + c = f; //expected-warning{{conversion}} + c = d; //expected-warning{{conversion}} + c = ld; //expected-warning{{conversion}} + i = f; //expected-warning{{conversion}} + i = d; //expected-warning{{conversion}} + i = ld; //expected-warning{{conversion}} + l = f; //expected-warning{{conversion}} + l = d; //expected-warning{{conversion}} + l = ld; //expected-warning{{conversion}} +} + |

