]> granicus.if.org Git - clang/commitdiff
Added -Wfloat-equal option to the driver. This makes warnings about
authorTed Kremenek <kremenek@apple.com>
Tue, 13 Nov 2007 18:37:02 +0000 (18:37 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 13 Nov 2007 18:37:02 +0000 (18:37 +0000)
floating point comparisons using == or != an opt-in rather than a default
warning.

Updated test case to use -Wfloat-equal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44053 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/clang.cpp
test/Sema/floating-point-compare.c

index f5683024443396a4a51de64bc8aebaa3c7943e4b..5897da32a36b520a8e7fe639214b87a5285db48e 100644 (file)
@@ -356,6 +356,10 @@ static llvm::cl::opt<bool>
 WarnUnusedMacros("Wunused_macros",
          llvm::cl::desc("Warn for unused macros in the main translation unit"));
 
+static llvm::cl::opt<bool>
+WarnFloatEqual("Wfloat-equal",
+   llvm::cl::desc("Warn about equality comparisons of floating point values."));
+
 /// InitializeDiagnostics - Initialize the diagnostic object, based on the
 /// current command line option settings.
 static void InitializeDiagnostics(Diagnostic &Diags) {
@@ -366,6 +370,10 @@ static void InitializeDiagnostics(Diagnostic &Diags) {
   // Silence the "macro is not used" warning unless requested.
   if (!WarnUnusedMacros)
     Diags.setDiagnosticMapping(diag::pp_macro_not_used, diag::MAP_IGNORE);
+               
+  // Silence "floating point comparison" warnings unless requested.
+  if (!WarnFloatEqual)
+    Diags.setDiagnosticMapping(diag::warn_floatingpoint_eq, diag::MAP_IGNORE);
 }
 
 //===----------------------------------------------------------------------===//
index 62388915a26dd08f2a2ff1dc477c321ba0c0f39e..cc96be0fd365f8d914421b4d8e05099b2e1c8391 100644 (file)
@@ -1,4 +1,4 @@
-// RUN: clang -fsyntax-only -verify %s
+// RUN: clang -fsyntax-only -Wfloat-equal -verify %s
 
 int foo(float x, float y) {
   return x == y; // expected-warning {{comparing floating point with ==}}