From 2ce0ce793d7b89a0e4691f4dfcad2dcf83e09a2c Mon Sep 17 00:00:00 2001
From: mmusich <marco.musich@cern.ch>
Date: Wed, 25 Jan 2023 10:20:21 +0100
Subject: [PATCH] silence static analyzer warning about std::isnan / std::isinf
 not working when fastmath is used

---
 DataFormats/PatCandidates/src/PackedCandidate.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/DataFormats/PatCandidates/src/PackedCandidate.cc b/DataFormats/PatCandidates/src/PackedCandidate.cc
index 0271b99782a36..df49e7fd67b28 100644
--- a/DataFormats/PatCandidates/src/PackedCandidate.cc
+++ b/DataFormats/PatCandidates/src/PackedCandidate.cc
@@ -5,6 +5,7 @@
 #include "DataFormats/SiStripDetId/interface/StripSubdetector.h"
 
 #include "DataFormats/Math/interface/liblogintpack.h"
+#include "FWCore/Utilities/interface/isFinite.h"
 
 #include "TMatrixDSym.h"
 #include "TVectorD.h"
@@ -182,7 +183,7 @@ const reco::Track pat::PackedCandidate::pseudoPosDefTrack() const {
     TMatrixDSym eigenCov(5);
     for (int i = 0; i < 5; i++) {
       for (int j = 0; j < 5; j++) {
-        if (std::isnan((m)(i, j)) || std::isinf((m)(i, j)))
+        if (edm::isNotFinite((m)(i, j)))
           eigenCov(i, j) = 1e-6;
         else
           eigenCov(i, j) = (m)(i, j);