================
@@ -216,11 +244,18 @@ int compareit(float a, float b) {
// no-inf-no-nan-warning@+2 {{use of infinity is undefined behavior due to the
currently enabled floating-point options}}
// no-inf-warning@+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@+2 {{use of infinity is undefined behavior due to the
currently enabled floating-point options}}
// no-inf-warning@+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
+
----------------
erichkeane wrote:
We cannot really, since there is no such thing as 'phase 2' for most of the
program (non templates). Typically if you want something ONLY during phase 2,
you do it during tree-transform or during the calls to the 'Rebuild' functions.
So you ALSO have to do it during phase-1, but the phase-2 work can suppress its
diagnostic if it has already been done (assuming you are close enough to
rebuild to do that).
The fix is likely that you'll have to mvoe where this is diagnosed to somewhere
that isn't currently being called by the template instantiation, and re-add it
then.
https://github.com/llvm/llvm-project/pull/123417
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits