[clang] [Clang] Fix warning for non std functions with name `infinity` (PR #123417)

Amr Hesham via cfe-commits cfe-commits at lists.llvm.org
Wed Jan 22 10:13:01 PST 2025


================
@@ -216,11 +244,18 @@ int compareit(float a, float b) {
 
 // no-inf-no-nan-warning at +2 {{use of infinity is undefined behavior due to the currently enabled floating-point options}}
 // no-inf-warning at +1 {{use of infinity is undefined behavior due to the currently enabled floating-point options}}
-  double y = i * numeric_limits<double>::infinity();
+  double y = i * std::numeric_limits<double>::infinity();
+
+  y = i * numeric_limits<double>::infinity(); // expected-no-diagnostics
 
 // no-inf-no-nan-warning at +2 {{use of infinity is undefined behavior due to the currently enabled floating-point options}}
 // no-inf-warning at +1 {{use of infinity is undefined behavior due to the currently enabled floating-point options}}
-  j = numeric_limits<float>::infinity();
+  j = std::numeric_limits<float>::infinity();
+
+  j = numeric_limits<float>::infinity(); // expected-no-diagnostics
+
+  y = infinity(); // expected-no-diagnostics
+
----------------
AmrDeveloper wrote:

The same problem will happen with `isinf`, `isnan` and `isunordered` functions because the diagnostic will be reported for every generated function, we need to think of a way to process it once @erichkeane  

https://github.com/llvm/llvm-project/pull/123417


More information about the cfe-commits mailing list