summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2014-04-22 01:01:05 +0000
committerRichard Trieu <rtrieu@google.com>2014-04-22 01:01:05 +0000
commit393197a08e2b8376c4f5304c7eeaa84eecdf27cf (patch)
tree1d827208ccd6cdf9bc72ba79bcccd74e32f8cab1
parentf171ace07dd016887e23b404903526d447e4e4ef (diff)
downloadbcm5719-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.td2
-rw-r--r--clang/include/clang/Basic/DiagnosticSemaKinds.td2
-rw-r--r--clang/test/SemaCXX/warn-floating-point-conversion.cpp38
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}}
+}
+
OpenPOWER on IntegriCloud