From 4c47851227ed11fb67091a1b4e2123bbc78bfb75 Mon Sep 17 00:00:00 2001 From: Jonas Rembser Date: Tue, 9 Jun 2026 07:54:52 +0200 Subject: [PATCH] [RF] Fix Windows compiler warnings about mixing int and bool Update the code to avoid the following compiler warnings: ``` C:\ROOT-CI\src\roofit\roofit\test\testFitPerf.cxx(571,26): warning C4805: '|=': unsafe mix of type 'int' and type 'bool' in operation [C:\ROOT-CI\build\roofit\roofit\test\testFitPerf.vcxproj] C:\ROOT-CI\src\roofit\roofit\test\testFitPerf.cxx(656,23): warning C4805: '|=': unsafe mix of type 'int' and type 'bool' in operation [C:\ROOT-CI\build\roofit\roofit\test\testFitPerf.vcxproj] C:\ROOT-CI\src\roofit\roofit\test\testRooFit.cxx(212,23): warning C4805: '|=': unsafe mix of type 'int' and type 'bool' in operation [C:\ROOT-CI\build\roofit\roofit\test\testRooFitExe.vcxproj] ``` --- roofit/roofit/test/testFitPerf.cxx | 30 ++++++++---------------------- roofit/roofit/test/testRooFit.cxx | 7 ++++--- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/roofit/roofit/test/testFitPerf.cxx b/roofit/roofit/test/testFitPerf.cxx index 8fccd74f1f361..b3d9522a46fb4 100644 --- a/roofit/roofit/test/testFitPerf.cxx +++ b/roofit/roofit/test/testFitPerf.cxx @@ -518,8 +518,6 @@ int FitUsingRooFit(TH1 *hist, TF1 *func) // unbinned roo fit int FitUsingRooFit(TTree *tree, TF1 *func) { - - int iret = 0; std::cout << "\n************************************************************\n"; std::cout << "\tFit using RooFit (Likelihood Fit)\n"; std::cout << "\twith function " << func->GetName() << "\n"; @@ -567,26 +565,21 @@ int FitUsingRooFit(TTree *tree, TF1 *func) std::cout << " Roofit status " << result->status() << std::endl; result->Print(); #endif - if (save) - iret |= int(result == nullptr); - - if (iret != 0) { + if (save && result == nullptr) { std::cout << "Fit failed " << std::endl; - return iret; + return 1; } } w.Stop(); std::cout << "\nTime: \t" << w.RealTime() << " , " << w.CpuTime() << std::endl; std::cout << "\n************************************************************\n"; - return iret; + return 0; } // unbinned roo fit (large tree) int FitUsingRooFit2(TTree *tree) { - - int iret = 0; std::cout << "\n************************************************************\n"; std::cout << "\tFit using RooFit (Likelihood Fit)\n"; @@ -647,23 +640,16 @@ int FitUsingRooFit2(TTree *tree) std::unique_ptr result{ pdf[N - 1]->fitTo(data, RooFit::Minos(0), RooFit::Hesse(1), RooFit::PrintLevel(level), RooFit::Save(save))}; -#ifdef DEBUG - assert(result == nullptr); -//std::cout << " Roofit status " << result->status() << std::endl; -//result->Print(); -#endif - - iret |= int(result != nullptr); - - if (iret != 0) - return iret; - // assert(iret == 0); + if (save && result == nullptr) { + std::cout << "Fit failed " << std::endl; + return 1; + } } w.Stop(); std::cout << "\nTime: \t" << w.RealTime() << " , " << w.CpuTime() << std::endl; std::cout << "\n************************************************************\n"; - return iret; + return 0; } double poly2(const double *x, const double *p) diff --git a/roofit/roofit/test/testRooFit.cxx b/roofit/roofit/test/testRooFit.cxx index ea871b6878f4a..d6552ebfe20b3 100644 --- a/roofit/roofit/test/testRooFit.cxx +++ b/roofit/roofit/test/testRooFit.cxx @@ -209,7 +209,8 @@ int FitUsingRooFit(TTree &tree, RooAbsPdf &pdf, RooArgSet &xvars) std::cout << " Roofit status " << result->status() << std::endl; result->Print(); #endif - iret |= int(result == nullptr); + if (save && result == nullptr) + iret = 1; } w.Stop(); @@ -265,15 +266,15 @@ int FitUsingNewFitter(FitObj *fitobj, Func &func, bool useGrad = false) std::cout << "\tFit using new Fit::Fitter\n"; std::cout << "\tMinimizer is " << MinType::name() << " " << MinType::name2() << std::endl; - int iret = 0; TStopwatch w; w.Start(); #ifdef DEBUG func.SetParameters(iniPar); - iret |= DoFit(fitobj, func, true, useGrad); + int iret = DoFit(fitobj, func, true, useGrad); #else + int iret = 0; for (int i = 0; i < nfit; ++i) { func.SetParameters(iniPar); iret = DoFit(fitobj, func, false, useGrad);