diff --git a/README/ReleaseNotes/v642/index.md b/README/ReleaseNotes/v642/index.md index 707ccc265c02d..e52c7982c30b2 100644 --- a/README/ReleaseNotes/v642/index.md +++ b/README/ReleaseNotes/v642/index.md @@ -10,8 +10,6 @@ For more information, see: [http://root.cern](http://root.cern) -The following people have contributed to this new version: - The following people have contributed to this new version: Bertrand Bellenot, CERN/EP-SFT,\ @@ -67,11 +65,12 @@ Users are encouraged to export their models to ONNX and use the retained ONNX pa * The **RooStats::DebuggingSampler** and **RooStats::DebuggingTestStat** classes are removed. They were mock implementations of the `TestStatSampler` and `TestStatistic` interfaces that returned uniform random numbers independent of the data, only meant for debugging the RooStats framework itself during its initial development. * The `RooTrace` class is deprecated and will be removed in ROOT 6.44. It was a RooFit-specific memory tracer whose instrumentation hooks are compiled out by default, so it has been inert and untested for years. For memory debugging, please use general-purpose tools such as AddressSanitizer or Valgrind instead. * Support for the AIX operating system has been removed from the codebase. This support has not been tested since the late v5 releases and the LLVM JIT is not yet supporting AIX. +* The `ROOT::Math::ParamFunctionBase`, `ROOT::Math::ParamFunctorHandler` and `ROOT::Math::ParamMemFunHandler` classes in `Math/ParamFunctor.h` are removed, together with the `ParamFunctor::GetImpl()` and `ParamFunctor::SetFunction()` methods that exposed them. They implemented the type erasure that `ParamFunctor` now gets from `std::function`, mirroring what was already done for `ROOT::Math::Functor`. Constructing and calling a `ParamFunctor` is unchanged, except that the constructor from an object and one of its member functions now takes a plain pointer to the object instead of anything dereferenceable, so smart pointers are no longer accepted there. +* The header `Rpair.h` is deprecated and will be removed after ROOT 6.44. * The headers `Htypes.h` and `Gtypes.h` that were deprecated in ROOT 6.20 will now emit warnings and will be fully removed in ROOT 6.44. Use instead `Rtypes.h`. * The header `GLConstants.h` is no longer part of ROOT installed headers. * The header `RStringView.h` deprecated in ROOT 6.14 will now emit warnings and will be fully removed after ROOT 6.44. Use `ROOT/RStringView.hxx` instead. -* The `ROOT::Math::ParamFunctionBase`, `ROOT::Math::ParamFunctorHandler` and `ROOT::Math::ParamMemFunHandler` classes in `Math/ParamFunctor.h` are removed, together with the `ParamFunctor::GetImpl()` and `ParamFunctor::SetFunction()` methods that exposed them. They implemented the type erasure that `ParamFunctor` now gets from `std::function`, mirroring what was already done for `ROOT::Math::Functor`. Constructing and calling a `ParamFunctor` is unchanged, except that the constructor from an object and one of its member functions now takes a plain pointer to the object instead of anything dereferenceable, so smart pointers are no longer accepted there. -* The header `Rpair.h` is deprecated and will be removed after ROOT 6.44. +* The header `Varargs.h` and the macro `R__VA_COPY` are deprecated and will be removed in ROOT 6.46, use `` instead. ## Build System diff --git a/cmake/unix/module.modulemap b/cmake/unix/module.modulemap index 0c013e9e85c54..f6feea0247c59 100644 --- a/cmake/unix/module.modulemap +++ b/cmake/unix/module.modulemap @@ -33,10 +33,6 @@ module ROOT_Rtypes { // They are mainly needed for ROOT stage1 build. module ROOT_Foundation_Stage1_NoRTTI { module "ESTLType.h" { header "ESTLType.h" export * } - // Varargs contains a lot of macros for supporting the obsolete va_args. - // FIXME: We may want to drop this when we reimplement all uses to use variadic - // templates. - module "Varargs.h" { header "Varargs.h" export * } module "TClassEdit.h" { header "TClassEdit.h" export * } module "TIsAProxy.h" { header "TIsAProxy.h" export * } module "TVirtualIsAProxy.h" { header "TVirtualIsAProxy.h" export * } diff --git a/core/base/inc/RQ_OBJECT.h b/core/base/inc/RQ_OBJECT.h index 07787f9c7e2b3..62a5757b579bd 100644 --- a/core/base/inc/RQ_OBJECT.h +++ b/core/base/inc/RQ_OBJECT.h @@ -13,7 +13,7 @@ #define ROOT_RQ_OBJECT #include -#include +#include //---- RQ_OBJECT macro ----------------------------------------------- diff --git a/core/base/inc/Varargs.h b/core/base/inc/Varargs.h index 2abae14d4837e..ca71b9f3a6797 100644 --- a/core/base/inc/Varargs.h +++ b/core/base/inc/Varargs.h @@ -11,6 +11,8 @@ #ifndef ROOT_Varargs #define ROOT_Varargs +#warning "The header Varargs.h is deprecated and will be removed in ROOT 6.46, include instead." + #if defined(sparc) && defined(__CC_ATT301__) extern "C" __builtin_va_arg_incr(...); diff --git a/core/base/src/TErrorDefaultHandler.cxx b/core/base/src/TErrorDefaultHandler.cxx index 8fa6c9e6419f8..1c64288a71e16 100644 --- a/core/base/src/TErrorDefaultHandler.cxx +++ b/core/base/src/TErrorDefaultHandler.cxx @@ -17,8 +17,8 @@ #include #include #include -#include +#include #include #include #include // for tolower diff --git a/core/base/src/TObject.cxx b/core/base/src/TObject.cxx index 394ee5142facb..cb71ac84cef32 100644 --- a/core/base/src/TObject.cxx +++ b/core/base/src/TObject.cxx @@ -36,19 +36,6 @@ class hierarchies (watch out for overlaps). that the object was allocated on the heap). */ -#include -#if !defined(WIN32) && !defined(__MWERKS__) && !defined(R__SOLARIS) -#include -#endif -#include -#include -#include -#include -#include -#include -#include - -#include "Varargs.h" #include "snprintf.h" #include "TObject.h" #include "TBuffer.h" @@ -64,6 +51,19 @@ class hierarchies (watch out for overlaps). #include "TRefTable.h" #include "TProcessID.h" +#include +#if !defined(WIN32) && !defined(__MWERKS__) && !defined(R__SOLARIS) +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include + Longptr_t TObject::fgDtorOnly = 0; Bool_t TObject::fgObjectStat = kTRUE; @@ -1067,11 +1067,11 @@ void TObject::DoError(int level, const char *location, const char *fmt, va_list /// Issue info message. Use "location" to specify the method where the /// warning occurred. Accepts standard printf formatting arguments. -void TObject::Info(const char *location, const char *va_(fmt), ...) const +void TObject::Info(const char *location, const char *fmt, ...) const { va_list ap; - va_start(ap, va_(fmt)); - DoError(kInfo, location, va_(fmt), ap); + va_start(ap, fmt); + DoError(kInfo, location, fmt, ap); va_end(ap); } @@ -1079,11 +1079,11 @@ void TObject::Info(const char *location, const char *va_(fmt), ...) const /// Issue warning message. Use "location" to specify the method where the /// warning occurred. Accepts standard printf formatting arguments. -void TObject::Warning(const char *location, const char *va_(fmt), ...) const +void TObject::Warning(const char *location, const char *fmt, ...) const { va_list ap; - va_start(ap, va_(fmt)); - DoError(kWarning, location, va_(fmt), ap); + va_start(ap, fmt); + DoError(kWarning, location, fmt, ap); va_end(ap); if (TROOT::Initialized()) gROOT->Message(1001, this); @@ -1093,11 +1093,11 @@ void TObject::Warning(const char *location, const char *va_(fmt), ...) const /// Issue error message. Use "location" to specify the method where the /// error occurred. Accepts standard printf formatting arguments. -void TObject::Error(const char *location, const char *va_(fmt), ...) const +void TObject::Error(const char *location, const char *fmt, ...) const { va_list ap; - va_start(ap, va_(fmt)); - DoError(kError, location, va_(fmt), ap); + va_start(ap, fmt); + DoError(kError, location, fmt, ap); va_end(ap); if (TROOT::Initialized()) gROOT->Message(1002, this); @@ -1107,11 +1107,11 @@ void TObject::Error(const char *location, const char *va_(fmt), ...) const /// Issue system error message. Use "location" to specify the method where /// the system error occurred. Accepts standard printf formatting arguments. -void TObject::SysError(const char *location, const char *va_(fmt), ...) const +void TObject::SysError(const char *location, const char *fmt, ...) const { va_list ap; - va_start(ap, va_(fmt)); - DoError(kSysError, location, va_(fmt), ap); + va_start(ap, fmt); + DoError(kSysError, location, fmt, ap); va_end(ap); if (TROOT::Initialized()) gROOT->Message(1003, this); @@ -1121,11 +1121,11 @@ void TObject::SysError(const char *location, const char *va_(fmt), ...) const /// Issue fatal error message. Use "location" to specify the method where the /// fatal error occurred. Accepts standard printf formatting arguments. -void TObject::Fatal(const char *location, const char *va_(fmt), ...) const +void TObject::Fatal(const char *location, const char *fmt, ...) const { va_list ap; - va_start(ap, va_(fmt)); - DoError(kFatal, location, va_(fmt), ap); + va_start(ap, fmt); + DoError(kFatal, location, fmt, ap); va_end(ap); if (TROOT::Initialized()) gROOT->Message(1004, this); diff --git a/core/base/src/TString.cxx b/core/base/src/TString.cxx index 6ff3cf6b3f258..0823444263b34 100644 --- a/core/base/src/TString.cxx +++ b/core/base/src/TString.cxx @@ -44,12 +44,7 @@ as a TString, construct a TString from it, eg: */ #include -#include -#include -#include -#include -#include "Varargs.h" #include "strlcpy.h" #include "TString.h" #include "TBuffer.h" @@ -62,6 +57,12 @@ as a TString, construct a TString from it, eg: #include "TVirtualMutex.h" #include "ThreadLocalStorage.h" +#include +#include +#include +#include +#include + #if defined(R__WIN32) #define strtoull _strtoui64 #endif @@ -2390,7 +2391,7 @@ TObjArray *TString::Tokenize(const TString &delim) const void TString::FormImp(const char *fmt, va_list ap) { va_list ap_len; - R__VA_COPY(ap_len, ap); + va_copy(ap_len, ap); // First pass: determine required size (excluding '\0') int n = vsnprintf(nullptr, 0, fmt, ap_len); @@ -2412,7 +2413,7 @@ void TString::FormImp(const char *fmt, va_list ap) } va_list ap_out; - R__VA_COPY(ap_out, ap); + va_copy(ap_out, ap); vsnprintf(GetPointer(), needed, fmt, ap_out); va_end(ap_out); @@ -2434,11 +2435,11 @@ void TString::FormImp(const char *fmt, va_list ap) /// Note: this is not to be confused with ::Format and ::Form (in the global namespace) /// which returns a const char* and relies on a thread-local static character buffer. -void TString::Form(const char *va_(fmt), ...) +void TString::Form(const char *fmt, ...) { va_list ap; - va_start(ap, va_(fmt)); - FormImp(va_(fmt), ap); + va_start(ap, fmt); + FormImp(fmt, ap); va_end(ap); } @@ -2456,12 +2457,12 @@ void TString::Form(const char *va_(fmt), ...) /// Note: this is not to be confused with ::Format and ::Form (in the global namespace) /// which returns a const char* and relies on a thread-local static character buffer. -TString TString::Format(const char *va_(fmt), ...) +TString TString::Format(const char *fmt, ...) { va_list ap; - va_start(ap, va_(fmt)); + va_start(ap, fmt); TString str; - str.FormImp(va_(fmt), ap); + str.FormImp(fmt, ap); va_end(ap); return str; } @@ -2491,7 +2492,7 @@ static char *SlowFormat(const char *format, va_list ap, int hint) } va_list sap; - R__VA_COPY(sap, ap); + va_copy(sap, ap); int n = vsnprintf(slowBuffer, slowBufferSize, format, ap); // old vsnprintf's return -1 if string is truncated new ones return @@ -2504,7 +2505,7 @@ static char *SlowFormat(const char *format, va_list ap, int hint) return nullptr; // int overflow! } va_end(ap); - R__VA_COPY(ap, sap); + va_copy(ap, sap); char *buf = SlowFormat(format, ap, n); va_end(sap); va_end(ap); @@ -2540,14 +2541,14 @@ static char *Format(const char *format, va_list ap) buf = gFormbuf; va_list sap; - R__VA_COPY(sap, ap); + va_copy(sap, ap); int n = vsnprintf(buf, fld_size, format, ap); // old vsnprintf's return -1 if string is truncated new ones return // total number of characters that would have been written if (n == -1 || n >= fld_size) { va_end(ap); - R__VA_COPY(ap, sap); + va_copy(ap, sap); buf = SlowFormat(format, ap, n); va_end(sap); va_end(ap); @@ -2567,11 +2568,11 @@ static char *Format(const char *format, va_list ap) /// be overwritten downstream. Use Form() results immediately or use /// TString::Format() instead. -char *Form(const char *va_(fmt), ...) +char *Form(const char *fmt, ...) { va_list ap; - va_start(ap,va_(fmt)); - char *b = Format(va_(fmt), ap); + va_start(ap, fmt); + char *b = Format(fmt, ap); va_end(ap); return b; } @@ -2581,14 +2582,14 @@ char *Form(const char *va_(fmt), ...) /// Appends a newline. If gPrintViaErrorHandler is true it will print via the /// currently active ROOT error handler. -void Printf(const char *va_(fmt), ...) +void Printf(const char *fmt, ...) { va_list ap; - va_start(ap,va_(fmt)); + va_start(ap, fmt); if (gPrintViaErrorHandler) - ErrorHandler(kPrint, nullptr, va_(fmt), ap); + ErrorHandler(kPrint, nullptr, fmt, ap); else { - char *b = Format(va_(fmt), ap); + char *b = Format(fmt, ap); printf("%s\n", b); fflush(stdout); } diff --git a/core/clingutils/res/TClingUtils.h b/core/clingutils/res/TClingUtils.h index 3425e169446d6..3281c25b54104 100644 --- a/core/clingutils/res/TClingUtils.h +++ b/core/clingutils/res/TClingUtils.h @@ -20,7 +20,7 @@ #include #include #include - +#include #include #if defined(__GNUC__) && !defined(__clang__) @@ -87,8 +87,6 @@ namespace cling { // for TClassEdit::TInterpreterLookupHelper #include "TClassEdit.h" -#include "Varargs.h" - namespace ROOT { namespace TMetaUtils { @@ -834,11 +832,11 @@ inline void LevelPrint(bool prefix, int level, const char *location, const char if (!location || !location[0]) { if (prefix) fprintf(stderr, "%s: ", type); - vfprintf(stderr, (const char*)va_(fmt), ap); + vfprintf(stderr, (const char *)fmt, ap); } else { if (prefix) fprintf(stderr, "%s in <%s>: ", type, location); else fprintf(stderr, "In <%s>: ", location); - vfprintf(stderr, (const char*)va_(fmt), ap); + vfprintf(stderr, (const char *)fmt, ap); } fflush(stderr); @@ -851,51 +849,51 @@ inline void LevelPrint(bool prefix, int level, const char *location, const char //______________________________________________________________________________ // Use this function in case an error occurred. -inline void Error(const char *location, const char *va_(fmt), ...) +inline void Error(const char *location, const char *fmt, ...) { va_list ap; - va_start(ap,va_(fmt)); - LevelPrint(true, ROOT::TMetaUtils::kError, location, va_(fmt), ap); + va_start(ap, fmt); + LevelPrint(true, ROOT::TMetaUtils::kError, location, fmt, ap); va_end(ap); } //______________________________________________________________________________ // Use this function in case a system (OS or GUI) related error occurred. -inline void SysError(const char *location, const char *va_(fmt), ...) +inline void SysError(const char *location, const char *fmt, ...) { va_list ap; - va_start(ap, va_(fmt)); - LevelPrint(true, ROOT::TMetaUtils::kSysError, location, va_(fmt), ap); + va_start(ap, fmt); + LevelPrint(true, ROOT::TMetaUtils::kSysError, location, fmt, ap); va_end(ap); } //______________________________________________________________________________ // Use this function for informational messages. -inline void Info(const char *location, const char *va_(fmt), ...) +inline void Info(const char *location, const char *fmt, ...) { va_list ap; - va_start(ap,va_(fmt)); - LevelPrint(true, ROOT::TMetaUtils::kInfo, location, va_(fmt), ap); + va_start(ap, fmt); + LevelPrint(true, ROOT::TMetaUtils::kInfo, location, fmt, ap); va_end(ap); } //______________________________________________________________________________ // Use this function in warning situations. -inline void Warning(const char *location, const char *va_(fmt), ...) +inline void Warning(const char *location, const char *fmt, ...) { va_list ap; - va_start(ap,va_(fmt)); - LevelPrint(true, ROOT::TMetaUtils::kWarning, location, va_(fmt), ap); + va_start(ap, fmt); + LevelPrint(true, ROOT::TMetaUtils::kWarning, location, fmt, ap); va_end(ap); } //______________________________________________________________________________ // Use this function in case of a fatal error. It will abort the program. -inline void Fatal(const char *location, const char *va_(fmt), ...) +inline void Fatal(const char *location, const char *fmt, ...) { va_list ap; - va_start(ap,va_(fmt)); - LevelPrint(true, ROOT::TMetaUtils::kFatal, location, va_(fmt), ap); + va_start(ap, fmt); + LevelPrint(true, ROOT::TMetaUtils::kFatal, location, fmt, ap); va_end(ap); } diff --git a/core/clingutils/src/RStl.cxx b/core/clingutils/src/RStl.cxx index 7baad1ee29030..73c8be3e717f6 100644 --- a/core/clingutils/src/RStl.cxx +++ b/core/clingutils/src/RStl.cxx @@ -15,9 +15,6 @@ #include "RStl.h" #include "TClassEdit.h" #include "TClingUtils.h" -using namespace TClassEdit; - -#include #include "clang/AST/Decl.h" #include "clang/AST/DeclTemplate.h" @@ -29,7 +26,10 @@ using namespace TClassEdit; #include "clang/Sema/Template.h" #include "clang/Frontend/CompilerInstance.h" -#include "Varargs.h" +#include +#include + +using namespace TClassEdit; // // ROOT::Internal::RStl is the rootcint STL handling class. diff --git a/core/cont/src/TCollection.cxx b/core/cont/src/TCollection.cxx index 81fe664eea6fb..e4032089a3503 100644 --- a/core/cont/src/TCollection.cxx +++ b/core/cont/src/TCollection.cxx @@ -63,7 +63,6 @@ for (auto br : TRangeDynCast( tree->GetListOfBranches() )) { */ #include "TCollection.h" -#include "Varargs.h" #include "TBuffer.h" #include "TClass.h" #include "TROOT.h" @@ -77,6 +76,7 @@ for (auto br : TRangeDynCast( tree->GetListOfBranches() )) { #include "TObjArray.h" #include "TMathBase.h" +#include #include #include @@ -236,13 +236,13 @@ void TCollection::AddAll(const TCollection *col) /// Add all arguments to the collection. The list of objects must be /// terminated by 0, e.g.: l.AddVector(o1, o2, o3, o4, 0); -void TCollection::AddVector(TObject *va_(obj1), ...) +void TCollection::AddVector(TObject *obj1, ...) { va_list ap; - va_start(ap, va_(obj1)); + va_start(ap, obj1); TObject *obj; - Add(va_(obj1)); + Add(obj1); while ((obj = va_arg(ap, TObject *))) Add(obj); va_end(ap); diff --git a/core/thread/src/TThread.cxx b/core/thread/src/TThread.cxx index 0c67a37fa422d..9185d4b6ba804 100644 --- a/core/thread/src/TThread.cxx +++ b/core/thread/src/TThread.cxx @@ -35,12 +35,13 @@ TPosixThread or TWin32Thread). #include "TInterpreter.h" #include "TError.h" #include "TSystem.h" -#include "Varargs.h" #include "ThreadLocalStorage.h" #include "TThreadSlots.h" #include "TRWMutexImp.h" #include "snprintf.h" +#include + TThreadImp *TThread::fgThreadImp = nullptr; Long_t TThread::fgMainId = 0; TThread *TThread::fgMain = nullptr; @@ -916,10 +917,10 @@ void **TThread::GetTls(Int_t k) { //////////////////////////////////////////////////////////////////////////////// /// Static method providing a thread safe printf. Appends a newline. -void TThread::Printf(const char *va_(fmt), ...) +void TThread::Printf(const char *fmt, ...) { va_list ap; - va_start(ap,va_(fmt)); + va_start(ap, fmt); Int_t buf_size = 2048; char *buf; @@ -927,7 +928,7 @@ void TThread::Printf(const char *va_(fmt), ...) again: buf = new char[buf_size]; - int n = vsnprintf(buf, buf_size, va_(fmt), ap); + int n = vsnprintf(buf, buf_size, fmt, ap); // old vsnprintf's return -1 if string is truncated new ones return // total number of characters that would have been written if (n == -1 || n >= buf_size) { diff --git a/gui/gui/src/TRootBrowser.cxx b/gui/gui/src/TRootBrowser.cxx index b63b7330de349..a28c52a724a68 100644 --- a/gui/gui/src/TRootBrowser.cxx +++ b/gui/gui/src/TRootBrowser.cxx @@ -74,7 +74,6 @@ Here is the list of available options: #include "TGLayout.h" #include "TGSplitter.h" #include "TGStatusBar.h" -#include "Varargs.h" #include "TInterpreter.h" #include "TGFileDialog.h" #include "TObjString.h" @@ -95,6 +94,8 @@ Here is the list of available options: #include "strlcpy.h" #include "snprintf.h" +#include + #ifdef WIN32 #include #endif diff --git a/io/xmlparser/src/TSAXParser.cxx b/io/xmlparser/src/TSAXParser.cxx index 0c51ad067e073..348cf72e10370 100644 --- a/io/xmlparser/src/TSAXParser.cxx +++ b/io/xmlparser/src/TSAXParser.cxx @@ -35,7 +35,6 @@ occur. #include "TSAXParser.h" #include "TXMLAttr.h" -#include "Varargs.h" #include "strlcpy.h" #include "TList.h" #include "TClass.h" @@ -43,6 +42,7 @@ occur. #include #include +#include class TSAXParserCallback { public: @@ -352,15 +352,15 @@ void TSAXParserCallback::Comment(void *fParser, const xmlChar *value) /// Warning callback function. Warnings while parsing a xml file will /// be stored at fmt. -void TSAXParserCallback::Warning(void * fParser, const char *va_(fmt), ...) +void TSAXParserCallback::Warning(void *fParser, const char *fmt, ...) { TSAXParser *parser = (TSAXParser*)fParser; va_list arg; char buffer[2048]; - va_start(arg, va_(fmt)); - vsnprintf(buffer, 2048, va_(fmt), arg); + va_start(arg, fmt); + vsnprintf(buffer, 2048, fmt, arg); va_end(arg); TString buff(buffer); @@ -372,7 +372,7 @@ void TSAXParserCallback::Warning(void * fParser, const char *va_(fmt), ...) /// Error callback function. Errors while parsing a xml file will be stored /// at fmt. -void TSAXParserCallback::Error(void *fParser, const char *va_(fmt), ...) +void TSAXParserCallback::Error(void *fParser, const char *fmt, ...) { Int_t errorcode; TSAXParser *parser = (TSAXParser*)fParser; @@ -380,8 +380,8 @@ void TSAXParserCallback::Error(void *fParser, const char *va_(fmt), ...) va_list arg; char buffer[2048]; - va_start(arg, va_(fmt)); - vsnprintf(buffer, 2048, va_(fmt), arg); + va_start(arg, fmt); + vsnprintf(buffer, 2048, fmt, arg); va_end(arg); TString buff(buffer); @@ -401,7 +401,7 @@ void TSAXParserCallback::Error(void *fParser, const char *va_(fmt), ...) /// FactalError callback function. Factal errors while parsing a xml file /// will be stored at fmt. -void TSAXParserCallback::FatalError(void *fParser, const char *va_(fmt), ...) +void TSAXParserCallback::FatalError(void *fParser, const char *fmt, ...) { Int_t errorcode; TSAXParser *parser = (TSAXParser*)fParser; @@ -409,8 +409,8 @@ void TSAXParserCallback::FatalError(void *fParser, const char *va_(fmt), ...) va_list arg; char buffer[2048]; - va_start(arg, va_(fmt)); - vsnprintf(buffer, 2048, va_(fmt), arg); + va_start(arg, fmt); + vsnprintf(buffer, 2048, fmt, arg); va_end(arg); TString buff(buffer); diff --git a/math/matrix/src/TVectorT.cxx b/math/matrix/src/TVectorT.cxx index bb197eb35a777..6d0033ae242c4 100644 --- a/math/matrix/src/TVectorT.cxx +++ b/math/matrix/src/TVectorT.cxx @@ -41,8 +41,8 @@ For usage examples see `$ROOTSYS/test/stressLinear.cxx` #include "TBuffer.h" #include "TMath.h" #include "TROOT.h" -#include "Varargs.h" +#include #include diff --git a/tree/treeplayer/src/TTreeProxyGenerator.cxx b/tree/treeplayer/src/TTreeProxyGenerator.cxx index 041ce03261c3f..72575b5446eeb 100644 --- a/tree/treeplayer/src/TTreeProxyGenerator.cxx +++ b/tree/treeplayer/src/TTreeProxyGenerator.cxx @@ -46,8 +46,6 @@ #include "TBranchProxyClassDescriptor.h" #include "TList.h" -#include "Varargs.h" -#include class TTree; class TBranch; @@ -76,14 +74,17 @@ class TStreamerElement; #include "TLeafObject.h" #include "TVirtualCollectionProxy.h" -void Debug(Int_t level, const char *va_(fmt), ...) +#include +#include + +void Debug(Int_t level, const char *fmt, ...) { // Use this function in case an error occurred. if (gDebug>=level) { va_list ap; - va_start(ap,va_(fmt)); - ErrorHandler(kInfo,"TTreeProxyGenerator",va_(fmt), ap); + va_start(ap, fmt); + ErrorHandler(kInfo, "TTreeProxyGenerator", fmt, ap); va_end(ap); } }