From 66d76e213bf2b0f50eb8a641101c270c1dd9d5d0 Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Tue, 15 Jun 2021 21:46:26 -0400 Subject: [PATCH] CI: Enforce -Wall and -Werror Signed-off-by: Vicente Adolfo Bolea Sanchez --- .../adios2/cxx11/fstream/ADIOS2fstream.tcc | 20 ++++++++++++++++ cmake/DetectOptions.cmake | 1 + cmake/FindPythonModule.cmake | 2 +- examples/basics/values/values_write.cpp | 2 ++ .../hello/bpReader/helloBPReader_nompi.cpp | 2 +- examples/hello/bpWriter/helloBPSubStreams.cpp | 2 ++ examples/hello/bpWriter/helloBPWriter.cpp | 2 ++ .../hdf5Reader/helloHDF5Reader_nompi.cpp | 2 +- scripts/ci/cmake/ci-el7-gnu8-ohpc.cmake | 6 ++--- .../ci-el7-gnu8-openmpi-ohpc-static.cmake | 6 ++--- .../ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake | 6 ++--- scripts/ci/cmake/ci-el7-intel-ohpc.cmake | 6 ++--- .../ci/cmake/ci-el7-intel-openmpi-ohpc.cmake | 6 ++--- scripts/ci/cmake/ci-el7-spack.cmake | 2 ++ scripts/ci/cmake/ci-el7.cmake | 5 ++-- .../cmake/ci-macos1014-xcode103-ninja.cmake | 2 ++ .../ci-macos1014-xcode103-openmpi-make.cmake | 2 ++ .../ci/cmake/ci-macos1015-xcode111-make.cmake | 2 ++ .../ci-macos1015-xcode111-openmpi-ninja.cmake | 2 ++ scripts/ci/cmake/ci-ubuntu1804-spack.cmake | 5 ++-- source/adios2/engine/bp5/BP5Reader.cpp | 12 +++++----- source/adios2/engine/bp5/BP5Writer.cpp | 8 +++---- source/adios2/engine/dataman/DataManMonitor.h | 1 - source/adios2/engine/hdf5/HDF5ReaderP.cpp | 4 ++-- source/adios2/engine/ssc/SscHelper.cpp | 4 ++-- source/adios2/engine/sst/SstReader.cpp | 4 ++-- source/adios2/helper/adiosMemory.inl | 16 ++++++------- source/adios2/helper/adiosType.inl | 6 ++--- source/adios2/toolkit/format/bp/BPBase.cpp | 2 +- .../adios2/toolkit/format/bp/BPSerializer.tcc | 4 ++-- .../toolkit/format/bp/bp3/BP3Deserializer.cpp | 17 +++++-------- .../toolkit/format/bp/bp4/BP4Deserializer.cpp | 8 +++---- .../toolkit/format/bp/bp4/BP4Serializer.tcc | 6 ++--- source/adios2/toolkit/format/bp5/BP5Base.cpp | 4 ++-- .../toolkit/format/bp5/BP5Deserializer.cpp | 24 +++++++++---------- .../toolkit/format/bp5/BP5Deserializer.tcc | 6 ++--- .../toolkit/format/bp5/BP5Serializer.cpp | 2 +- .../format/dataman/DataManSerializer.tcc | 3 ++- .../toolkit/profiling/taustubs/tautimer.cpp | 2 +- source/adios2/toolkit/sst/dp/rdma_dp.c | 9 +++---- .../adios2/toolkit/zmq/zmqreqrep/ZmqReqRep.h | 1 - source/h5vol/H5VolError.h | 4 ++-- source/h5vol/H5VolUtil.c | 2 +- source/utils/bpls/bpls.cpp | 3 ++- .../bp/TestBPInquireVariableException.cpp | 4 ++-- .../engine/bp/TestBPWriteAppendReadADIOS2.cpp | 23 ++++++++++++++++++ .../bp/TestBPWriteReadAsStreamADIOS2.cpp | 21 ++++++++++++++++ .../bp/TestBPWriteReadAttributesMultirank.cpp | 20 ++++++++++++++++ .../bp/TestBPWriteReadLocalVariables.cpp | 21 ++++++++++++++++ .../engine/bp/TestBPWriteReadVariableSpan.cpp | 21 ++++++++++++++++ .../operations/TestBPWriteReadZfpConfig.cpp | 21 ++++++++++++++++ .../engine/dataman/TestDataMan2DZfp.cpp | 2 +- .../engine/skeleton/TestSkeletonReader.cpp | 2 ++ .../adios2/engine/staging-common/ParseArgs.h | 2 +- .../engine/table/TestTableMultiRank.cpp | 2 +- .../engine/table/TestTableSingleRank.cpp | 2 +- .../interface/TestADIOSDefineAttribute.cpp | 2 +- .../interface/TestADIOSInterfaceWrite.cpp | 20 ++++++++++++++++ .../performance/manyvars/TestManyVars.cpp | 2 +- testing/adios2/xml/TestXMLConfig.cpp | 20 ++++++++++++++++ testing/adios2/yaml/TestYAMLConfig.cpp | 20 ++++++++++++++++ 61 files changed, 328 insertions(+), 112 deletions(-) diff --git a/bindings/CXX11/adios2/cxx11/fstream/ADIOS2fstream.tcc b/bindings/CXX11/adios2/cxx11/fstream/ADIOS2fstream.tcc index e9e258455e..7d50f3937e 100644 --- a/bindings/CXX11/adios2/cxx11/fstream/ADIOS2fstream.tcc +++ b/bindings/CXX11/adios2/cxx11/fstream/ADIOS2fstream.tcc @@ -15,6 +15,18 @@ #include "adios2/core/Stream.h" +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-wstrict-aliasing" +#endif + namespace adios2 { @@ -182,4 +194,12 @@ std::vector fstream::read_attribute(const std::string &name, } // end namespace adios2 +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif + #endif /* ADIOS2_BINDINGS_CXX11_CXX11_FSTREAM_ADIOS2FSTREAM_TCC_ */ diff --git a/cmake/DetectOptions.cmake b/cmake/DetectOptions.cmake index b820e42544..280333d1ef 100644 --- a/cmake/DetectOptions.cmake +++ b/cmake/DetectOptions.cmake @@ -150,6 +150,7 @@ if(ADIOS2_USE_Fortran STREQUAL AUTO) endif() elseif(ADIOS2_USE_Fortran) enable_language(Fortran) + #string(APPEND CMAKE_Fortran_FLAGS_DEBUG " -Wall") endif() if(CMAKE_Fortran_COMPILER_LOADED) set(ADIOS2_HAVE_Fortran TRUE) diff --git a/cmake/FindPythonModule.cmake b/cmake/FindPythonModule.cmake index 4f9cf29f57..7a71efb78c 100644 --- a/cmake/FindPythonModule.cmake +++ b/cmake/FindPythonModule.cmake @@ -141,7 +141,7 @@ if(PythonModule_${module_NAME}_FOUND AND add_library(${module_NAME} INTERFACE) add_library(Python::${module_NAME} ALIAS ${module_NAME}) foreach(inc_var IN LISTS include_vars) - target_include_directories(${module_NAME} INTERFACE ${${inc_var}}) + target_include_directories(${module_NAME} SYSTEM INTERFACE ${${inc_var}}) endforeach() foreach(lib_var IN LISTS library_vars) target_link_libraries(${module_NAME} INTERFACE ${${lib_var}}) diff --git a/examples/basics/values/values_write.cpp b/examples/basics/values/values_write.cpp index 668cffa62c..99f27bb226 100644 --- a/examples/basics/values/values_write.cpp +++ b/examples/basics/values/values_write.cpp @@ -71,6 +71,8 @@ int main(int argc, char *argv[]) */ // 1. Global constant, same value across processes, constant over time adios2::Variable varNproc = io.DefineVariable("Nproc"); + (void)varNproc; // For the sake of the example we create an unused + // variable // 2. Global value, same value across processes, varying value over time adios2::Variable varStep = io.DefineVariable("Step"); diff --git a/examples/hello/bpReader/helloBPReader_nompi.cpp b/examples/hello/bpReader/helloBPReader_nompi.cpp index 776543d8a5..f8161897d0 100644 --- a/examples/hello/bpReader/helloBPReader_nompi.cpp +++ b/examples/hello/bpReader/helloBPReader_nompi.cpp @@ -36,7 +36,7 @@ int main(int argc, char *argv[]) bpIO.AvailableVariables(true); std::cout << "List of variables:"; - for (const auto variablePair : variables) + for (const auto &variablePair : variables) { std::cout << " " << variablePair.first; } diff --git a/examples/hello/bpWriter/helloBPSubStreams.cpp b/examples/hello/bpWriter/helloBPSubStreams.cpp index 73e9412775..59ed618eef 100644 --- a/examples/hello/bpWriter/helloBPSubStreams.cpp +++ b/examples/hello/bpWriter/helloBPSubStreams.cpp @@ -67,6 +67,8 @@ int main(int argc, char *argv[]) adios2::Attribute attribute = bpIO.DefineAttribute("attrINT", -1); + (void)attribute; // For the sake of the example we create an unused + // variable /** Engine derived class, spawned to start IO operations */ adios2::Engine bpFileWriter = diff --git a/examples/hello/bpWriter/helloBPWriter.cpp b/examples/hello/bpWriter/helloBPWriter.cpp index e67c82ba92..6c5714b8e7 100644 --- a/examples/hello/bpWriter/helloBPWriter.cpp +++ b/examples/hello/bpWriter/helloBPWriter.cpp @@ -63,6 +63,8 @@ int main(int argc, char *argv[]) adios2::Variable bpString = bpIO.DefineVariable("bpString"); + (void)bpString; // For the sake of the example we create an unused + // variable std::string filename = "myVector_cpp.bp"; /** Engine derived class, spawned to start IO operations */ diff --git a/examples/hello/hdf5Reader/helloHDF5Reader_nompi.cpp b/examples/hello/hdf5Reader/helloHDF5Reader_nompi.cpp index a6f64151ad..9aab7f8b5f 100644 --- a/examples/hello/hdf5Reader/helloHDF5Reader_nompi.cpp +++ b/examples/hello/hdf5Reader/helloHDF5Reader_nompi.cpp @@ -93,7 +93,7 @@ int main(int argc, char *argv[]) const std::map variables = h5IO.AvailableVariables(); - for (const auto variablePair : variables) + for (const auto &variablePair : variables) { std::cout << "Name: " << variablePair.first; std::cout << std::endl; diff --git a/scripts/ci/cmake/ci-el7-gnu8-ohpc.cmake b/scripts/ci/cmake/ci-el7-gnu8-ohpc.cmake index 6bbc905f82..f7f4e7ac4b 100644 --- a/scripts/ci/cmake/ci-el7-gnu8-ohpc.cmake +++ b/scripts/ci/cmake/ci-el7-gnu8-ohpc.cmake @@ -10,9 +10,9 @@ env_module(load hdf5) set(ENV{CC} gcc) set(ENV{CXX} g++) set(ENV{FC} gfortran) -set(ENV{CFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{CXXFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{FFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") +set(ENV{CFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") +set(ENV{CXXFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") +set(ENV{FFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") set(dashboard_cache " ADIOS2_USE_BZip2:BOOL=ON diff --git a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake index 581be161aa..6cdaaea33f 100644 --- a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake +++ b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake @@ -16,9 +16,9 @@ env_module(load py3-mpi4py) set(ENV{CC} gcc) set(ENV{CXX} g++) set(ENV{FC} gfortran) -set(ENV{CFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{CXXFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{FFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") +set(ENV{CFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") +set(ENV{CXXFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") +set(ENV{FFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") set(dashboard_cache " BUILD_SHARED_LIBS:BOOL=OFF diff --git a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake index 16f5ccf725..27b6baace9 100644 --- a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake +++ b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake @@ -16,9 +16,9 @@ env_module(load py3-mpi4py) set(ENV{CC} gcc) set(ENV{CXX} g++) set(ENV{FC} gfortran) -set(ENV{CFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{CXXFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{FFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") +set(ENV{CFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") +set(ENV{CXXFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") +set(ENV{FFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") set(dashboard_cache " ADIOS2_USE_BZip2:BOOL=ON diff --git a/scripts/ci/cmake/ci-el7-intel-ohpc.cmake b/scripts/ci/cmake/ci-el7-intel-ohpc.cmake index 6aec07e815..4f3fec2b17 100644 --- a/scripts/ci/cmake/ci-el7-intel-ohpc.cmake +++ b/scripts/ci/cmake/ci-el7-intel-ohpc.cmake @@ -10,9 +10,9 @@ env_module(load hdf5) set(ENV{CC} icc) set(ENV{CXX} icpc) set(ENV{FC} ifort) -set(ENV{CFLAGS} -Werror) -set(ENV{CXXFLAGS} -Werror) -set(ENV{FFLAGS} "-warn errors") +set(ENV{CFLAGS} "-Werror -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall") +set(ENV{FFLAGS} "-warn errors") set(dashboard_cache " ADIOS2_USE_BZip2:BOOL=ON diff --git a/scripts/ci/cmake/ci-el7-intel-openmpi-ohpc.cmake b/scripts/ci/cmake/ci-el7-intel-openmpi-ohpc.cmake index 696ca55aad..65377d9142 100644 --- a/scripts/ci/cmake/ci-el7-intel-openmpi-ohpc.cmake +++ b/scripts/ci/cmake/ci-el7-intel-openmpi-ohpc.cmake @@ -16,9 +16,9 @@ env_module(load py3-mpi4py) set(ENV{CC} icc) set(ENV{CXX} icpc) set(ENV{FC} ifort) -set(ENV{CFLAGS} -Werror) -set(ENV{CXXFLAGS} -Werror) -set(ENV{FFLAGS} "-warn errors") +set(ENV{CFLAGS} "-Werror -Wall -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall -Wall") +set(ENV{FFLAGS} "-warn errors") set(dashboard_cache " ADIOS2_USE_BZip2:BOOL=ON diff --git a/scripts/ci/cmake/ci-el7-spack.cmake b/scripts/ci/cmake/ci-el7-spack.cmake index 6fcd590243..35523d52ac 100644 --- a/scripts/ci/cmake/ci-el7-spack.cmake +++ b/scripts/ci/cmake/ci-el7-spack.cmake @@ -7,6 +7,8 @@ math(EXPR N2CPUS "${NCPUS}*2") set(ENV{CC} gcc) set(ENV{CXX} g++) set(ENV{FC} gfortran) +set(ENV{CFLAGS} "-Werror -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall") set(dashboard_cache " ADIOS2_USE_BZip2:BOOL=ON diff --git a/scripts/ci/cmake/ci-el7.cmake b/scripts/ci/cmake/ci-el7.cmake index 4ee0370760..1838046666 100644 --- a/scripts/ci/cmake/ci-el7.cmake +++ b/scripts/ci/cmake/ci-el7.cmake @@ -3,9 +3,8 @@ set(ENV{CC} gcc) set(ENV{CXX} g++) set(ENV{FC} gfortran) -set(ENV{CFLAGS} -Werror) -set(ENV{CXXFLAGS} -Werror) -set(ENV{FFLAGS} -Werror) +set(ENV{CFLAGS} "-Werror -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall") set(dashboard_cache " ADIOS2_USE_BZip2:STRING=ON diff --git a/scripts/ci/cmake/ci-macos1014-xcode103-ninja.cmake b/scripts/ci/cmake/ci-macos1014-xcode103-ninja.cmake index b9f1eba04e..0414e9998f 100644 --- a/scripts/ci/cmake/ci-macos1014-xcode103-ninja.cmake +++ b/scripts/ci/cmake/ci-macos1014-xcode103-ninja.cmake @@ -2,6 +2,8 @@ set(ENV{CC} clang) set(ENV{CXX} clang++) set(ENV{FC} gfortran) +set(ENV{CFLAGS} "-Werror -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall") set(dashboard_cache " ADIOS2_USE_Fortran:BOOL=ON diff --git a/scripts/ci/cmake/ci-macos1014-xcode103-openmpi-make.cmake b/scripts/ci/cmake/ci-macos1014-xcode103-openmpi-make.cmake index 51ba0bfc31..e2e903336d 100644 --- a/scripts/ci/cmake/ci-macos1014-xcode103-openmpi-make.cmake +++ b/scripts/ci/cmake/ci-macos1014-xcode103-openmpi-make.cmake @@ -2,6 +2,8 @@ set(ENV{CC} clang) set(ENV{CXX} clang++) set(ENV{FC} gfortran) +set(ENV{CFLAGS} "-Werror -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall") include(ProcessorCount) ProcessorCount(NCPUS) diff --git a/scripts/ci/cmake/ci-macos1015-xcode111-make.cmake b/scripts/ci/cmake/ci-macos1015-xcode111-make.cmake index c422af45a0..a238ab99f3 100644 --- a/scripts/ci/cmake/ci-macos1015-xcode111-make.cmake +++ b/scripts/ci/cmake/ci-macos1015-xcode111-make.cmake @@ -2,6 +2,8 @@ set(ENV{CC} clang) set(ENV{CXX} clang++) set(ENV{FC} gfortran) +set(ENV{CFLAGS} "-Werror -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall") set(dashboard_cache " ADIOS2_USE_Fortran:BOOL=ON diff --git a/scripts/ci/cmake/ci-macos1015-xcode111-openmpi-ninja.cmake b/scripts/ci/cmake/ci-macos1015-xcode111-openmpi-ninja.cmake index af2ffa94c8..0b944eef5a 100644 --- a/scripts/ci/cmake/ci-macos1015-xcode111-openmpi-ninja.cmake +++ b/scripts/ci/cmake/ci-macos1015-xcode111-openmpi-ninja.cmake @@ -2,6 +2,8 @@ set(ENV{CC} clang) set(ENV{CXX} clang++) set(ENV{FC} gfortran) +set(ENV{CFLAGS} "-Werror -Wall") +set(ENV{CXXFLAGS} "-Werror -Wall") include(ProcessorCount) ProcessorCount(NCPUS) diff --git a/scripts/ci/cmake/ci-ubuntu1804-spack.cmake b/scripts/ci/cmake/ci-ubuntu1804-spack.cmake index 2b833980d4..d67def0804 100644 --- a/scripts/ci/cmake/ci-ubuntu1804-spack.cmake +++ b/scripts/ci/cmake/ci-ubuntu1804-spack.cmake @@ -7,9 +7,8 @@ math(EXPR N2CPUS "${NCPUS}*2") set(ENV{CC} gcc) set(ENV{CXX} g++) set(ENV{FC} gfortran) -set(ENV{CFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{CXXFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") -set(ENV{FFLAGS} "-Werror -Wno-error=builtin-declaration-mismatch") +set(ENV{CFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") +set(ENV{CXXFLAGS} "-Werror -Wall -Wno-error=builtin-declaration-mismatch") set(dashboard_cache " ADIOS2_USE_BZip2:BOOL=ON diff --git a/source/adios2/engine/bp5/BP5Reader.cpp b/source/adios2/engine/bp5/BP5Reader.cpp index ae670ec2d5..bffe39cf16 100644 --- a/source/adios2/engine/bp5/BP5Reader.cpp +++ b/source/adios2/engine/bp5/BP5Reader.cpp @@ -24,8 +24,8 @@ namespace engine BP5Reader::BP5Reader(IO &io, const std::string &name, const Mode mode, helper::Comm comm) : Engine("BP5Reader", io, name, mode, std::move(comm)), m_MDFileManager(m_Comm), - m_FileMetaMetadataManager(m_Comm), m_DataFileManager(m_Comm), - m_MDIndexFileManager(m_Comm), m_ActiveFlagFileManager(m_Comm) + m_DataFileManager(m_Comm), m_MDIndexFileManager(m_Comm), + m_FileMetaMetadataManager(m_Comm), m_ActiveFlagFileManager(m_Comm) { TAU_SCOPED_TIMER("BP5Reader::Open"); Init(); @@ -95,7 +95,7 @@ StepStatus BP5Reader::BeginStep(StepMode mode, const float timeoutSeconds) size_t pgstart = m_MetadataIndexTable[m_CurrentStep][0]; size_t Position = pgstart + sizeof(uint64_t); // skip total data size size_t MDPosition = Position + 2 * sizeof(uint64_t) * m_WriterCount; - for (int i = 0; i < m_WriterCount; i++) + for (size_t i = 0; i < m_WriterCount; i++) { // variable metadata for timestep size_t ThisMDSize = helper::ReadValue( @@ -104,7 +104,7 @@ StepStatus BP5Reader::BeginStep(StepMode mode, const float timeoutSeconds) m_BP5Deserializer->InstallMetaData(ThisMD, ThisMDSize, i); MDPosition += ThisMDSize; } - for (int i = 0; i < m_WriterCount; i++) + for (size_t i = 0; i < m_WriterCount; i++) { // attribute metadata for timestep size_t ThisADSize = helper::ReadValue( @@ -607,8 +607,8 @@ void BP5Reader::ParseMetadataIndex(format::BufferSTL &bufferSTL, for (uint64_t i = 0; i < m_WriterCount; i++) { size_t DataPosPos = ptrs[2] + sizeof(uint64_t) * i; - const uint64_t DataPos = helper::ReadValue( - buffer, DataPosPos, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, DataPosPos, + m_Minifooter.IsLittleEndian); } position += sizeof(uint64_t) * m_WriterCount; diff --git a/source/adios2/engine/bp5/BP5Writer.cpp b/source/adios2/engine/bp5/BP5Writer.cpp index 81421419c6..f35844fc6c 100644 --- a/source/adios2/engine/bp5/BP5Writer.cpp +++ b/source/adios2/engine/bp5/BP5Writer.cpp @@ -31,7 +31,7 @@ BP5Writer::BP5Writer(IO &io, const std::string &name, const Mode mode, helper::Comm comm) : Engine("BP5Writer", io, name, mode, std::move(comm)), m_BP5Serializer(), m_FileDataManager(m_Comm), m_FileMetadataManager(m_Comm), - m_FileMetaMetadataManager(m_Comm), m_FileMetadataIndexManager(m_Comm) + m_FileMetadataIndexManager(m_Comm), m_FileMetaMetadataManager(m_Comm) { TAU_SCOPED_TIMER("BP5Writer::Open"); m_IO.m_ReadStreaming = false; @@ -147,7 +147,7 @@ void BP5Writer::WriteMetadataFileIndex(uint64_t MetaDataPos, m_FileMetadataIndexManager.WriteFiles((char *)buf, sizeof(buf)); m_FileMetadataIndexManager.WriteFiles((char *)m_WriterDataPos.data(), DataSizes.size() * sizeof(uint64_t)); - for (int i = 0; i < DataSizes.size(); i++) + for (size_t i = 0; i < DataSizes.size(); i++) { m_WriterDataPos[i] += DataSizes[i]; } @@ -382,7 +382,7 @@ void BP5Writer::InitTransports() m_FileMetadataManager.OpenFiles(m_MetadataFileNames, m_OpenMode, m_IO.m_TransportsParameters, false); - uint64_t WriterCount = m_Comm.Size(); + // m_Comm.Size(); m_FileMetadataIndexManager.OpenFiles( m_MetadataIndexFileNames, m_OpenMode, m_IO.m_TransportsParameters, false); @@ -547,7 +547,7 @@ void BP5Writer::InitBPBuffer() m_FileMetadataIndexManager.WriteFiles(bi.m_Buffer.data(), bi.m_Position); std::vector Assignment(m_Comm.Size()); - for (uint64_t i = 0; i < m_Comm.Size(); i++) + for (uint64_t i = 0; i < static_cast(m_Comm.Size()); i++) { Assignment[i] = i; // Change when we do aggregation } diff --git a/source/adios2/engine/dataman/DataManMonitor.h b/source/adios2/engine/dataman/DataManMonitor.h index e8d732e8a6..9a95cf496d 100644 --- a/source/adios2/engine/dataman/DataManMonitor.h +++ b/source/adios2/engine/dataman/DataManMonitor.h @@ -76,7 +76,6 @@ class DataManMonitor bool m_WriterThreading = false; bool m_Verbose = true; - bool m_JsonOutput = true; }; } // end namespace engine diff --git a/source/adios2/engine/hdf5/HDF5ReaderP.cpp b/source/adios2/engine/hdf5/HDF5ReaderP.cpp index 25bafada34..6e007ff9be 100644 --- a/source/adios2/engine/hdf5/HDF5ReaderP.cpp +++ b/source/adios2/engine/hdf5/HDF5ReaderP.cpp @@ -202,8 +202,8 @@ size_t HDF5ReaderP::ReadDataset(hid_t dataSetId, hid_t h5Type, size_t typesize = H5Tget_size(h5Type); char *val = (char *)(calloc(typesize, sizeof(char))); - hid_t ret2 = H5Dread(dataSetId, h5Type, memDataSpace, fileSpace, - H5P_DEFAULT, val); + H5Dread(dataSetId, h5Type, memDataSpace, fileSpace, H5P_DEFAULT, + val); ((std::string *)values)->assign(val, typesize); free(val); diff --git a/source/adios2/engine/ssc/SscHelper.cpp b/source/adios2/engine/ssc/SscHelper.cpp index b5cf30a550..d734862c97 100644 --- a/source/adios2/engine/ssc/SscHelper.cpp +++ b/source/adios2/engine/ssc/SscHelper.cpp @@ -421,7 +421,7 @@ void AggregateMetadata(const Buffer &localBuffer, Buffer &globalBuffer, globalBuffer.resize(globalSize + 10); std::vector displs(mpiSize); - for (size_t i = 1; i < mpiSize; ++i) + for (size_t i = 1; i < static_cast(mpiSize); ++i) { displs[i] = displs[i - 1] + localSizes[i - 1]; } @@ -438,7 +438,7 @@ void BroadcastMetadata(Buffer &globalBuffer, const int root, MPI_Comm comm) { int globalBufferSize = static_cast(globalBuffer.size()); MPI_Bcast(&globalBufferSize, 1, MPI_INT, root, comm); - if (globalBuffer.size() < globalBufferSize) + if (globalBuffer.size() < static_cast(globalBufferSize)) { globalBuffer.resize(globalBufferSize); } diff --git a/source/adios2/engine/sst/SstReader.cpp b/source/adios2/engine/sst/SstReader.cpp index cb858b2f84..7a0bc6e7c4 100644 --- a/source/adios2/engine/sst/SstReader.cpp +++ b/source/adios2/engine/sst/SstReader.cpp @@ -486,7 +486,7 @@ void SstReader::Init() size_t *Start = NULL; \ size_t *Count = NULL; \ size_t DimCount = 0; \ - int NeedSync; \ + int NeedSync = 0; \ \ if (variable.m_SelectionType == \ adios2::SelectionType::BoundingBox) \ @@ -586,7 +586,7 @@ void SstReader::Init() } \ if (m_WriterMarshalMethod == SstMarshalBP5) \ { \ - bool need_sync = m_BP5Deserializer->QueueGet(variable, data); \ + m_BP5Deserializer->QueueGet(variable, data); \ } \ } ADIOS2_FOREACH_STDTYPE_1ARG(declare_gets) diff --git a/source/adios2/helper/adiosMemory.inl b/source/adios2/helper/adiosMemory.inl index 95a2889be1..41217f5af0 100644 --- a/source/adios2/helper/adiosMemory.inl +++ b/source/adios2/helper/adiosMemory.inl @@ -623,7 +623,7 @@ void Resize(std::vector &vec, const size_t dataSize, const std::string hint, // functions) and copies to the output buffer in blocks. the memory address // calculation complexity for copying each block is minimized to O(1), which is // independent of the number of dimensions. -static void NdCopyRecurDFSeqPadding(size_t curDim, const char *&inOvlpBase, +static inline void NdCopyRecurDFSeqPadding(size_t curDim, const char *&inOvlpBase, char *&outOvlpBase, Dims &inOvlpGapSize, Dims &outOvlpGapSize, Dims &ovlpCount, size_t &minContDim, size_t &blockSize) @@ -666,7 +666,7 @@ static void NdCopyRecurDFSeqPadding(size_t curDim, const char *&inOvlpBase, // each element is minimized to average O(1), which is independent of // the number of dimensions. -static void +static inline void NdCopyRecurDFSeqPaddingRevEndian(size_t curDim, const char *&inOvlpBase, char *&outOvlpBase, Dims &inOvlpGapSize, Dims &outOvlpGapSize, Dims &ovlpCount, @@ -707,7 +707,7 @@ NdCopyRecurDFSeqPaddingRevEndian(size_t curDim, const char *&inOvlpBase, // used for buffer of Column major // the memory address calculation complexity for copying each element is // minimized to average O(1), which is independent of the number of dimensions. -static void NdCopyRecurDFNonSeqDynamic(size_t curDim, const char *inBase, +static inline void NdCopyRecurDFNonSeqDynamic(size_t curDim, const char *inBase, char *outBase, Dims &inRltvOvlpSPos, Dims &outRltvOvlpSPos, Dims &inStride, Dims &outStride, Dims &ovlpCount, @@ -737,7 +737,7 @@ static void NdCopyRecurDFNonSeqDynamic(size_t curDim, const char *inBase, // The memory address calculation complexity for copying each element is // minimized to average O(1), which is independent of the number of dimensions. -static void NdCopyRecurDFNonSeqDynamicRevEndian( +static inline void NdCopyRecurDFNonSeqDynamicRevEndian( size_t curDim, const char *inBase, char *outBase, Dims &inRltvOvlpSPos, Dims &outRltvOvlpSPos, Dims &inStride, Dims &outStride, Dims &ovlpCount, size_t elmSize) @@ -763,7 +763,7 @@ static void NdCopyRecurDFNonSeqDynamicRevEndian( } } -static void NdCopyIterDFSeqPadding(const char *&inOvlpBase, char *&outOvlpBase, +static inline void NdCopyIterDFSeqPadding(const char *&inOvlpBase, char *&outOvlpBase, Dims &inOvlpGapSize, Dims &outOvlpGapSize, Dims &ovlpCount, size_t minContDim, size_t blockSize) @@ -794,7 +794,7 @@ static void NdCopyIterDFSeqPadding(const char *&inOvlpBase, char *&outOvlpBase, } } -static void NdCopyIterDFSeqPaddingRevEndian( +static inline void NdCopyIterDFSeqPaddingRevEndian( const char *&inOvlpBase, char *&outOvlpBase, Dims &inOvlpGapSize, Dims &outOvlpGapSize, Dims &ovlpCount, size_t minContDim, size_t blockSize, size_t elmSize, size_t numElmsPerBlock) @@ -830,7 +830,7 @@ static void NdCopyIterDFSeqPaddingRevEndian( } while (pos[curDim] == ovlpCount[curDim]); } } -static void NdCopyIterDFDynamic(const char *inBase, char *outBase, +static inline void NdCopyIterDFDynamic(const char *inBase, char *outBase, Dims &inRltvOvlpSPos, Dims &outRltvOvlpSPos, Dims &inStride, Dims &outStride, Dims &ovlpCount, size_t elmSize) @@ -867,7 +867,7 @@ static void NdCopyIterDFDynamic(const char *inBase, char *outBase, } } -static void NdCopyIterDFDynamicRevEndian(const char *inBase, char *outBase, +static inline void NdCopyIterDFDynamicRevEndian(const char *inBase, char *outBase, Dims &inRltvOvlpSPos, Dims &outRltvOvlpSPos, Dims &inStride, Dims &outStride, Dims &ovlpCount, diff --git a/source/adios2/helper/adiosType.inl b/source/adios2/helper/adiosType.inl index 23eb7d02f8..a5ea08612e 100644 --- a/source/adios2/helper/adiosType.inl +++ b/source/adios2/helper/adiosType.inl @@ -179,7 +179,7 @@ inline std::string VectorToCSV(const std::vector &input) noexcept } std::ostringstream valueSS; - for (const auto value : input) + for (const auto& value : input) { valueSS << "\"" << value << "\", "; } @@ -200,7 +200,7 @@ inline std::string VectorToCSV(const std::vector &input) noexcept } \ \ std::ostringstream valueSS; \ - for (const auto value : input) \ + for (const auto& value : input) \ { \ const int valueInt = static_cast(value); \ valueSS << valueInt << ", "; \ @@ -223,7 +223,7 @@ inline std::string VectorToCSV(const std::vector &input) noexcept } std::ostringstream valueSS; - for (const auto value : input) + for (const auto& value : input) { valueSS << value << ", "; } diff --git a/source/adios2/toolkit/format/bp/BPBase.cpp b/source/adios2/toolkit/format/bp/BPBase.cpp index 0ec23a9a02..382b4a7ce4 100644 --- a/source/adios2/toolkit/format/bp/BPBase.cpp +++ b/source/adios2/toolkit/format/bp/BPBase.cpp @@ -393,7 +393,7 @@ BPBase::GetTransportIDs(const std::vector &transportsTypes) const std::vector transportsIDs; transportsIDs.reserve(transportsTypes.size()); - for (const std::string transportType : transportsTypes) + for (const std::string &transportType : transportsTypes) { transportsIDs.push_back(lf_GetTransportID(transportType)); } diff --git a/source/adios2/toolkit/format/bp/BPSerializer.tcc b/source/adios2/toolkit/format/bp/BPSerializer.tcc index ff89ad2abf..d8309088d1 100644 --- a/source/adios2/toolkit/format/bp/BPSerializer.tcc +++ b/source/adios2/toolkit/format/bp/BPSerializer.tcc @@ -98,8 +98,8 @@ void BPSerializer::UpdateIndexOffsetsCharacteristics(size_t ¤tPosition, std::vector &buffer) { const bool isLittleEndian = helper::IsLittleEndian(); - const uint8_t characteristicsCount = - helper::ReadValue(buffer, currentPosition, isLittleEndian); + + helper::ReadValue(buffer, currentPosition, isLittleEndian); const uint32_t characteristicsLength = helper::ReadValue(buffer, currentPosition, isLittleEndian); diff --git a/source/adios2/toolkit/format/bp/bp3/BP3Deserializer.cpp b/source/adios2/toolkit/format/bp/bp3/BP3Deserializer.cpp index af9cec95fe..f7034a02d7 100644 --- a/source/adios2/toolkit/format/bp/bp3/BP3Deserializer.cpp +++ b/source/adios2/toolkit/format/bp/bp3/BP3Deserializer.cpp @@ -29,7 +29,7 @@ namespace format std::mutex BP3Deserializer::m_Mutex; BP3Deserializer::BP3Deserializer(helper::Comm const &comm) -: BP3Base(comm), BPBase(comm), m_Minifooter(3) +: BPBase(comm), BP3Base(comm), m_Minifooter(3) { } @@ -139,8 +139,7 @@ void BP3Deserializer::ParsePGIndex(const BufferSTL &bufferSTL, m_MetadataSet.DataPGCount = helper::ReadValue( buffer, position, m_Minifooter.IsLittleEndian); - const size_t length = helper::ReadValue( - buffer, position, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, position, m_Minifooter.IsLittleEndian); size_t localPosition = 0; @@ -210,10 +209,8 @@ void BP3Deserializer::ParseVariablesIndex(const BufferSTL &bufferSTL, m_Minifooter.VarsIndexStart, m_Minifooter.PGIndexStart, " BP3 variable index start < pg index start, in call to Open"); - const uint32_t count = helper::ReadValue( - buffer, position, m_Minifooter.IsLittleEndian); - const uint64_t length = helper::ReadValue( - buffer, position, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, position, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, position, m_Minifooter.IsLittleEndian); const size_t startPosition = position; size_t localPosition = 0; @@ -319,10 +316,8 @@ void BP3Deserializer::ParseAttributesIndex(const BufferSTL &bufferSTL, m_Minifooter.AttributesIndexStart, m_Minifooter.PGIndexStart, " BP3 attributes index start < pg index start, in call to Open"); - const uint32_t count = helper::ReadValue( - buffer, position, m_Minifooter.IsLittleEndian); - const uint64_t length = helper::ReadValue( - buffer, position, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, position, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, position, m_Minifooter.IsLittleEndian); const size_t startPosition = position; size_t localPosition = 0; diff --git a/source/adios2/toolkit/format/bp/bp4/BP4Deserializer.cpp b/source/adios2/toolkit/format/bp/bp4/BP4Deserializer.cpp index 05728c9a41..d6a7ac8408 100644 --- a/source/adios2/toolkit/format/bp/bp4/BP4Deserializer.cpp +++ b/source/adios2/toolkit/format/bp/bp4/BP4Deserializer.cpp @@ -33,7 +33,7 @@ namespace format std::mutex BP4Deserializer::m_Mutex; BP4Deserializer::BP4Deserializer(helper::Comm const &comm) -: BP4Base(comm), BPBase(comm), m_Minifooter(4) +: BPBase(comm), BP4Base(comm), m_Minifooter(4) { } @@ -335,8 +335,7 @@ void BP4Deserializer::ParseVariablesIndexPerStep(const BufferSTL &bufferSTL, const auto &buffer = bufferSTL.m_Buffer; size_t position = m_MetadataIndexTable[submetadatafileId][step][1]; - const uint32_t count = helper::ReadValue( - buffer, position, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, position, m_Minifooter.IsLittleEndian); const uint64_t length = helper::ReadValue( buffer, position, m_Minifooter.IsLittleEndian); @@ -528,8 +527,7 @@ void BP4Deserializer::ParseAttributesIndexPerStep(const BufferSTL &bufferSTL, const auto &buffer = bufferSTL.m_Buffer; size_t position = m_MetadataIndexTable[submetadatafileId][step][2]; - const uint32_t count = helper::ReadValue( - buffer, position, m_Minifooter.IsLittleEndian); + helper::ReadValue(buffer, position, m_Minifooter.IsLittleEndian); const uint64_t length = helper::ReadValue( buffer, position, m_Minifooter.IsLittleEndian); diff --git a/source/adios2/toolkit/format/bp/bp4/BP4Serializer.tcc b/source/adios2/toolkit/format/bp/bp4/BP4Serializer.tcc index 6a298e1815..a3005e1b24 100644 --- a/source/adios2/toolkit/format/bp/bp4/BP4Serializer.tcc +++ b/source/adios2/toolkit/format/bp/bp4/BP4Serializer.tcc @@ -624,8 +624,7 @@ void BP4Serializer::PutBoundsRecord(const bool singleValue, static_cast(stats.SubBlockInfo.SubBlockSize); helper::InsertToBuffer(buffer, &subBlockSize); - const uint16_t N = - static_cast(stats.SubBlockInfo.Div.size()); + // static_cast(stats.SubBlockInfo.Div.size()); for (auto const d : stats.SubBlockInfo.Div) { helper::InsertToBuffer(buffer, &d); @@ -678,8 +677,7 @@ void BP4Serializer::PutBoundsRecord(const bool singleValue, static_cast(stats.SubBlockInfo.SubBlockSize); helper::CopyToBuffer(buffer, position, &subBlockSize); - const uint16_t N = - static_cast(stats.SubBlockInfo.Div.size()); + // stats.SubBlockInfo.Div.size() for (auto const d : stats.SubBlockInfo.Div) { helper::CopyToBuffer(buffer, position, &d); diff --git a/source/adios2/toolkit/format/bp5/BP5Base.cpp b/source/adios2/toolkit/format/bp5/BP5Base.cpp index 8a7b974e9a..9ec26e4cf7 100644 --- a/source/adios2/toolkit/format/bp5/BP5Base.cpp +++ b/source/adios2/toolkit/format/bp5/BP5Base.cpp @@ -25,7 +25,7 @@ namespace format void BP5Base::FFSBitfieldSet(struct FFSMetadataInfoStruct *MBase, int Bit) { - int Element = Bit / (sizeof(size_t) * 8); + size_t Element = Bit / (sizeof(size_t) * 8); int ElementBit = Bit % (sizeof(size_t) * 8); if (Element >= MBase->BitFieldCount) { @@ -40,7 +40,7 @@ void BP5Base::FFSBitfieldSet(struct FFSMetadataInfoStruct *MBase, int Bit) int BP5Base::FFSBitfieldTest(struct FFSMetadataInfoStruct *MBase, int Bit) { - int Element = Bit / (sizeof(size_t) * 8); + size_t Element = Bit / (sizeof(size_t) * 8); int ElementBit = Bit % (sizeof(size_t) * 8); if (Element >= MBase->BitFieldCount) { diff --git a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp index b66b18089e..2d7cd9404b 100644 --- a/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp +++ b/source/adios2/toolkit/format/bp5/BP5Deserializer.cpp @@ -428,7 +428,7 @@ void BP5Deserializer::InstallMetaData(void *MetadataBlock, size_t BlockLen, { VarRec->PerWriterBlockStart[WriterRank] = 0; } - if (WriterRank < m_WriterCohortSize - 1) + if (WriterRank < static_cast(m_WriterCohortSize - 1)) { VarRec->PerWriterBlockStart[WriterRank + 1] = VarRec->PerWriterBlockStart[WriterRank] + @@ -599,7 +599,7 @@ bool BP5Deserializer::NeedWriter(BP5ArrayRequest Req, int i) return (NodeFirst <= Req.BlockID) && (NodeLast >= Req.BlockID); } // else Global case - for (int j = 0; j < Req.VarRec->DimCount; j++) + for (size_t j = 0; j < Req.VarRec->DimCount; j++) { size_t SelOffset = Req.Start[j]; size_t SelSize = Req.Count[j]; @@ -686,7 +686,7 @@ void BP5Deserializer::FinalizeGets(std::vector Requests) const size_t *SelOffset = NULL; const size_t *SelSize = Req.Count.data(); int ReqIndex = 0; - while (Requests[ReqIndex].WriterRank != i) + while (Requests[ReqIndex].WriterRank != static_cast(i)) ReqIndex++; char *IncomingData = (char *)Requests[ReqIndex].DestinationAddr + @@ -752,7 +752,7 @@ void BP5Deserializer::MapGlobalToLocalIndex(size_t Dims, const size_t *LocalOffsets, size_t *LocalIndex) { - for (int i = 0; i < Dims; i++) + for (size_t i = 0; i < Dims; i++) { LocalIndex[i] = GlobalIndex[i] - LocalOffsets[i]; } @@ -762,7 +762,7 @@ int BP5Deserializer::FindOffset(size_t Dims, const size_t *Size, const size_t *Index) { int Offset = 0; - for (int i = 0; i < Dims; i++) + for (size_t i = 0; i < Dims; i++) { Offset = Index[i] + (Size[i] * Offset); } @@ -772,7 +772,7 @@ int BP5Deserializer::FindOffset(size_t Dims, const size_t *Size, static int FindOffsetCM(size_t Dims, const size_t *Size, const size_t *Index) { int Offset = 0; - for (int i = Dims - 1; i >= 0; i--) + for (size_t i = Dims - 1; i >= 0; i--) { Offset = Index[i] + (Size[i] * Offset); } @@ -831,7 +831,7 @@ void BP5Deserializer::ExtractSelectionFromPartialRM( BlockSize = 1; OperantDims = Dims; OperantElementSize = ElementSize; - for (int Dim = Dims - 1; Dim >= 0; Dim--) + for (size_t Dim = Dims - 1; Dim >= 0; Dim--) { if ((GlobalDims[Dim] == PartialCounts[Dim]) && (SelectionCounts[Dim] == PartialCounts[Dim])) @@ -859,7 +859,7 @@ void BP5Deserializer::ExtractSelectionFromPartialRM( /* calculate first selected element and count */ BlockCount = 1; size_t *FirstIndex = (size_t *)malloc(Dims * sizeof(FirstIndex[0])); - for (int Dim = 0; Dim < Dims; Dim++) + for (size_t Dim = 0; Dim < Dims; Dim++) { size_t Left = MAX(PartialOffsets[Dim], SelectionOffsets[Dim]); size_t Right = MIN(PartialOffsets[Dim] + PartialCounts[Dim], @@ -911,7 +911,7 @@ void BP5Deserializer::ExtractSelectionFromPartialCM( BlockSize = 1; OperantElementSize = ElementSize; - for (int Dim = 0; Dim < Dims; Dim++) + for (size_t Dim = 0; Dim < Dims; Dim++) { if ((GlobalDims[Dim] == PartialCounts[Dim]) && (SelectionCounts[Dim] == PartialCounts[Dim])) @@ -947,7 +947,7 @@ void BP5Deserializer::ExtractSelectionFromPartialCM( /* calculate first selected element and count */ BlockCount = 1; size_t *FirstIndex = (size_t *)malloc(Dims * sizeof(FirstIndex[0])); - for (int Dim = 0; Dim < Dims; Dim++) + for (size_t Dim = 0; Dim < Dims; Dim++) { int Left = MAX(PartialOffsets[Dim], SelectionOffsets[Dim]); int Right = MIN(PartialOffsets[Dim] + PartialCounts[Dim], @@ -984,8 +984,8 @@ void BP5Deserializer::ExtractSelectionFromPartialCM( BP5Deserializer::BP5Deserializer(int WriterCount, bool WriterIsRowMajor, bool ReaderIsRowMajor) -: m_WriterCohortSize{WriterCount}, m_WriterIsRowMajor{WriterIsRowMajor}, - m_ReaderIsRowMajor{ReaderIsRowMajor} +: m_WriterIsRowMajor{WriterIsRowMajor}, m_ReaderIsRowMajor{ReaderIsRowMajor}, + m_WriterCohortSize{WriterCount} { FMContext Tmp = create_local_FMcontext(); ReaderFFSContext = create_FFSContext_FM(Tmp); diff --git a/source/adios2/toolkit/format/bp5/BP5Deserializer.tcc b/source/adios2/toolkit/format/bp5/BP5Deserializer.tcc index d52e6f0d9f..0e4e6a7e42 100644 --- a/source/adios2/toolkit/format/bp5/BP5Deserializer.tcc +++ b/source/adios2/toolkit/format/bp5/BP5Deserializer.tcc @@ -43,7 +43,7 @@ BP5Deserializer::BlocksInfo(const core::Variable &variable, int FieldOffset = ControlArray[i].FieldOffset; void *field_data = (char *)BaseData + FieldOffset; MetaArrayRec *meta_base = (MetaArrayRec *)field_data; - for (int i = 0; i < VarRec->PerWriterBlockCount[WriterRank]; i++) + for (size_t i = 0; i < VarRec->PerWriterBlockCount[WriterRank]; i++) { size_t *Offsets = NULL; if (meta_base->Offsets) @@ -58,7 +58,7 @@ BP5Deserializer::BlocksInfo(const core::Variable &variable, size_t *Count = meta_base->Count; if (Shape) { - for (int i = 0; i < DimCount; i++) + for (size_t i = 0; i < DimCount; i++) { VecShape.push_back(Shape[i]); VecStart.push_back(Start[i]); @@ -69,7 +69,7 @@ BP5Deserializer::BlocksInfo(const core::Variable &variable, { VecShape = {}; VecStart = {}; - for (int i = 0; i < DimCount; i++) + for (size_t i = 0; i < DimCount; i++) { VecCount.push_back(Count[i]); } diff --git a/source/adios2/toolkit/format/bp5/BP5Serializer.cpp b/source/adios2/toolkit/format/bp5/BP5Serializer.cpp index cd8794db44..58336814ef 100644 --- a/source/adios2/toolkit/format/bp5/BP5Serializer.cpp +++ b/source/adios2/toolkit/format/bp5/BP5Serializer.cpp @@ -807,7 +807,7 @@ std::vector BP5Serializer::BreakoutContiguousMetadata( std::vector MetadataBlocks; MetadataBlocks.reserve(Counts.size()); DataSizes.resize(Counts.size()); - for (int Rank = 0; Rank < Counts.size(); Rank++) + for (size_t Rank = 0; Rank < Counts.size(); Rank++) { int32_t NMMBCount; helper::CopyFromBuffer(*Aggregate, Position, &NMMBCount); diff --git a/source/adios2/toolkit/format/dataman/DataManSerializer.tcc b/source/adios2/toolkit/format/dataman/DataManSerializer.tcc index 1a3e3217aa..85f3ec7c0a 100644 --- a/source/adios2/toolkit/format/dataman/DataManSerializer.tcc +++ b/source/adios2/toolkit/format/dataman/DataManSerializer.tcc @@ -458,7 +458,8 @@ int DataManSerializer::GetData(T *outputData, const std::string &varName, } if (j.shape.empty() or (j.shape.size() == 1 and j.shape[0] == 1)) { - std::memcpy(outputData, input_data, sizeof(T)); + std::memcpy(reinterpret_cast(outputData), input_data, + sizeof(T)); } } } diff --git a/source/adios2/toolkit/profiling/taustubs/tautimer.cpp b/source/adios2/toolkit/profiling/taustubs/tautimer.cpp index fb0d669edb..c076b546ca 100644 --- a/source/adios2/toolkit/profiling/taustubs/tautimer.cpp +++ b/source/adios2/toolkit/profiling/taustubs/tautimer.cpp @@ -93,7 +93,7 @@ void (*my_Tau_destructor_trigger)(void) = NULL; static void initialize_library(void) { // initialize the library when it is loaded - static taustubs::TauTimer &tt = taustubs::TauTimer::get(); + taustubs::TauTimer::get(); } void open_preload_libraries(void) diff --git a/source/adios2/toolkit/sst/dp/rdma_dp.c b/source/adios2/toolkit/sst/dp/rdma_dp.c index 9459a443ed..cac0646a83 100644 --- a/source/adios2/toolkit/sst/dp/rdma_dp.c +++ b/source/adios2/toolkit/sst/dp/rdma_dp.c @@ -1140,7 +1140,7 @@ static void *RdmaReadRemoteMemory(CP_Services Svcs, DP_RS_Stream Stream_v, size_t Length, void *Buffer, void *DP_TimestepInfo) { - RdmaCompletionHandle ret; + RdmaCompletionHandle ret = {0}; Rdma_RS_Stream RS_Stream = (Rdma_RS_Stream)Stream_v; RdmaBufferHandle Info = (RdmaBufferHandle)DP_TimestepInfo; RdmaStepLogEntry StepLog; @@ -1540,9 +1540,10 @@ static void RdmaDestroyReader(CP_Services Svcs, DP_RS_Stream RS_Stream_v) static void RdmaDestroyWriterPerReader(CP_Services Svcs, DP_WSR_Stream WSR_Stream_v) { - Rdma_WSR_Stream WSR_Stream = (Rdma_WSR_Stream)WSR_Stream_v; + Rdma_WSR_Stream WSR_Stream = {0}; + memcpy(&WSR_Stream, &WSR_Stream_v, sizeof(Rdma_WSR_Stream)); Rdma_WS_Stream WS_Stream = WSR_Stream->WS_Stream; - RdmaWriterContactInfo WriterContactInfo; + RdmaWriterContactInfo WriterContactInfo = {0}; pthread_mutex_lock(&wsr_mutex); for (int i = 0; i < WS_Stream->ReaderCount; i++) @@ -2068,7 +2069,7 @@ static void PullSelection(CP_Services Svcs, Rdma_WSR_Stream Stream) Rdma_WS_Stream WS_Stream = Stream->WS_Stream; FabricState Fabric = WS_Stream->Fabric; RdmaBuffer ReaderRoll = (RdmaBuffer)Stream->ReaderRoll->Handle.Block; - struct _RdmaBuffer ReqBuffer = {0}; + struct _RdmaBuffer ReqBuffer = {{0}}; struct fi_cq_data_entry CQEntry = {0}; struct fid_mr *rrmr = NULL; void *rrdesc = NULL; diff --git a/source/adios2/toolkit/zmq/zmqreqrep/ZmqReqRep.h b/source/adios2/toolkit/zmq/zmqreqrep/ZmqReqRep.h index 6afa8d266f..56cae2b2aa 100644 --- a/source/adios2/toolkit/zmq/zmqreqrep/ZmqReqRep.h +++ b/source/adios2/toolkit/zmq/zmqreqrep/ZmqReqRep.h @@ -45,7 +45,6 @@ class ZmqReqRep void SendReply(const void *reply, const size_t size); private: - int m_Verbosity = 0; int m_Timeout; std::vector m_ReceiverBuffer; diff --git a/source/h5vol/H5VolError.h b/source/h5vol/H5VolError.h index 1437bac82a..a924c6a58f 100644 --- a/source/h5vol/H5VolError.h +++ b/source/h5vol/H5VolError.h @@ -10,8 +10,8 @@ void *safe_calloc(size_t n, size_t s, unsigned long line); void *safe_malloc(size_t n, unsigned long line); #define SAFE_MALLOC(n) safe_malloc(n, __LINE__) -void safe_free(void *p); -#define SAFE_FREE(ptr) safe_free(ptr) +void safe_free(void **p); +#define SAFE_FREE(ptr) safe_free(&ptr) void *safe_ralloc(void *ptr, size_t newsize, unsigned long line); #define SAFE_REALLOC(ptr, newsize) safe_ralloc(ptr, newsize, __LINE__) diff --git a/source/h5vol/H5VolUtil.c b/source/h5vol/H5VolUtil.c index 6f44a18c70..b58d0d6c1a 100644 --- a/source/h5vol/H5VolUtil.c +++ b/source/h5vol/H5VolUtil.c @@ -35,7 +35,7 @@ void *safe_malloc(size_t n, unsigned long line) return p; } -void safe_free(void *p) +void safe_free(void **p) { if (p) { diff --git a/source/utils/bpls/bpls.cpp b/source/utils/bpls/bpls.cpp index 61c070a7be..222a66922e 100644 --- a/source/utils/bpls/bpls.cpp +++ b/source/utils/bpls/bpls.cpp @@ -2387,7 +2387,8 @@ bool matchesAMask(const char *name) if (excode == 0 && // matches (pmatch[0].rm_so == 0 || pmatch[0].rm_so == startpos) && // from the beginning - pmatch[0].rm_eo == strlen(name) // to the very end of the name + static_cast(pmatch[0].rm_eo) == + strlen(name) // to the very end of the name ) #else bool matches = std::regex_match(name, varregex[i]); diff --git a/testing/adios2/engine/bp/TestBPInquireVariableException.cpp b/testing/adios2/engine/bp/TestBPInquireVariableException.cpp index f47f7647c7..5d02cb5c17 100644 --- a/testing/adios2/engine/bp/TestBPInquireVariableException.cpp +++ b/testing/adios2/engine/bp/TestBPInquireVariableException.cpp @@ -47,7 +47,7 @@ TEST_F(ADIOSInquireVariableException, Read) auto var1 = io_w.DefineVariable("variable1", shape, start, count); - for (int32_t step = 0; step < NSteps; ++step) + for (size_t step = 0; step < NSteps; ++step) { std::vector Ints(10, step); writer.BeginStep(); @@ -61,7 +61,7 @@ TEST_F(ADIOSInquireVariableException, Read) auto reader = io_r.Open(filename, adios2::Mode::Read); auto var = io_r.InquireVariable("variable1"); - for (int32_t step = 0; step < NSteps; step++) + for (size_t step = 0; step < NSteps; step++) { reader.BeginStep(); std::vector myInts; diff --git a/testing/adios2/engine/bp/TestBPWriteAppendReadADIOS2.cpp b/testing/adios2/engine/bp/TestBPWriteAppendReadADIOS2.cpp index ef7288f05a..0e118616ca 100644 --- a/testing/adios2/engine/bp/TestBPWriteAppendReadADIOS2.cpp +++ b/testing/adios2/engine/bp/TestBPWriteAppendReadADIOS2.cpp @@ -15,6 +15,21 @@ #include "../SmallTestData.h" +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +#pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wstrict-aliasing" +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + std::string engineName; // comes from command line class BPWriteAppendReadTestADIOS2 : public ::testing::Test @@ -733,3 +748,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/engine/bp/TestBPWriteReadAsStreamADIOS2.cpp b/testing/adios2/engine/bp/TestBPWriteReadAsStreamADIOS2.cpp index a0b868afcf..1fb505ae31 100644 --- a/testing/adios2/engine/bp/TestBPWriteReadAsStreamADIOS2.cpp +++ b/testing/adios2/engine/bp/TestBPWriteReadAsStreamADIOS2.cpp @@ -14,6 +14,19 @@ #include "../SmallTestData.h" +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + std::string engineName; // comes from command line class BPWriteReadAsStreamTestADIOS2 : public ::testing::Test @@ -1070,3 +1083,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/engine/bp/TestBPWriteReadAttributesMultirank.cpp b/testing/adios2/engine/bp/TestBPWriteReadAttributesMultirank.cpp index baddebc521..c9ee9376a1 100644 --- a/testing/adios2/engine/bp/TestBPWriteReadAttributesMultirank.cpp +++ b/testing/adios2/engine/bp/TestBPWriteReadAttributesMultirank.cpp @@ -17,6 +17,18 @@ #include +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + std::string engineName; // comes from command line class BPWriteReadAttributeTestMultirank : public ::testing::Test @@ -137,3 +149,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/engine/bp/TestBPWriteReadLocalVariables.cpp b/testing/adios2/engine/bp/TestBPWriteReadLocalVariables.cpp index 1feaeb246e..7b3baf6f4e 100644 --- a/testing/adios2/engine/bp/TestBPWriteReadLocalVariables.cpp +++ b/testing/adios2/engine/bp/TestBPWriteReadLocalVariables.cpp @@ -15,6 +15,19 @@ #include "../SmallTestData.h" +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + std::string engineName; // comes from command line class BPWriteReadLocalVariables : public ::testing::Test @@ -1948,3 +1961,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/engine/bp/TestBPWriteReadVariableSpan.cpp b/testing/adios2/engine/bp/TestBPWriteReadVariableSpan.cpp index f59d273186..bee1e52d10 100644 --- a/testing/adios2/engine/bp/TestBPWriteReadVariableSpan.cpp +++ b/testing/adios2/engine/bp/TestBPWriteReadVariableSpan.cpp @@ -14,6 +14,19 @@ #include "../SmallTestData.h" +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + std::string engineName; // comes from command line class BPWriteReadSpan : public ::testing::Test @@ -1535,3 +1548,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/engine/bp/operations/TestBPWriteReadZfpConfig.cpp b/testing/adios2/engine/bp/operations/TestBPWriteReadZfpConfig.cpp index 5adcc94a25..707044f8d7 100644 --- a/testing/adios2/engine/bp/operations/TestBPWriteReadZfpConfig.cpp +++ b/testing/adios2/engine/bp/operations/TestBPWriteReadZfpConfig.cpp @@ -13,6 +13,19 @@ #include +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + #define str_helper(X) #X #define mystr(X) str_helper(X) @@ -900,3 +913,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/engine/dataman/TestDataMan2DZfp.cpp b/testing/adios2/engine/dataman/TestDataMan2DZfp.cpp index d9a8475c7d..891ea2943e 100644 --- a/testing/adios2/engine/dataman/TestDataMan2DZfp.cpp +++ b/testing/adios2/engine/dataman/TestDataMan2DZfp.cpp @@ -142,7 +142,7 @@ void DataManWriterP2PMemSelect(const Dims &shape, const Dims &start, dataManIO.DefineAttribute("AttInt", 110); adios2::Engine dataManWriter = dataManIO.Open("stream", adios2::Mode::Write); - for (int i = 0; i < steps; ++i) + for (size_t i = 0; i < steps; ++i) { dataManWriter.BeginStep(); GenData(myChars, i, start, count, shape); diff --git a/testing/adios2/engine/skeleton/TestSkeletonReader.cpp b/testing/adios2/engine/skeleton/TestSkeletonReader.cpp index cdf30bac5a..05136746a9 100644 --- a/testing/adios2/engine/skeleton/TestSkeletonReader.cpp +++ b/testing/adios2/engine/skeleton/TestSkeletonReader.cpp @@ -113,9 +113,11 @@ int main(int argc, char *argv[]) adios2::Variable varArray = io.DefineVariable( "myArray", {gndx}, {gndx / (size_t)nproc}, {gndx / (size_t)nproc}); + (void)varArray; adios2::Variable varSyncString = io.DefineVariable("mySyncString"); + (void)varSyncString; } else { diff --git a/testing/adios2/engine/staging-common/ParseArgs.h b/testing/adios2/engine/staging-common/ParseArgs.h index 8f606b2613..d2c1c31605 100644 --- a/testing/adios2/engine/staging-common/ParseArgs.h +++ b/testing/adios2/engine/staging-common/ParseArgs.h @@ -76,7 +76,7 @@ static adios2::Params ParseEngineParams(std::string Input) return Ret; } -static void ParseArgs(int argc, char **argv) +void ParseArgs(int argc, char **argv) { int bare_arg = 0; while (argc > 1) diff --git a/testing/adios2/engine/table/TestTableMultiRank.cpp b/testing/adios2/engine/table/TestTableMultiRank.cpp index e4656e080e..4ae8f62234 100644 --- a/testing/adios2/engine/table/TestTableMultiRank.cpp +++ b/testing/adios2/engine/table/TestTableMultiRank.cpp @@ -103,7 +103,7 @@ void Reader(const Dims &shape, const Dims &start, const Dims &count, std::vector> myComplexes(datasize); std::vector> myDComplexes(datasize); - adios2::StepStatus status = readerEngine.BeginStep(); + readerEngine.BeginStep(); const auto &vars = io.AvailableVariables(); std::cout << "All available variables : "; for (const auto &var : vars) diff --git a/testing/adios2/engine/table/TestTableSingleRank.cpp b/testing/adios2/engine/table/TestTableSingleRank.cpp index 3fc5b1108d..9edc64a6cd 100644 --- a/testing/adios2/engine/table/TestTableSingleRank.cpp +++ b/testing/adios2/engine/table/TestTableSingleRank.cpp @@ -106,7 +106,7 @@ void Reader(const Dims &shape, const Dims &start, const Dims &count, std::vector> myComplexes(datasize); std::vector> myDComplexes(datasize); - adios2::StepStatus status = readerEngine.BeginStep(); + readerEngine.BeginStep(); const auto &vars = io.AvailableVariables(); std::cout << "All available variables : "; for (const auto &var : vars) diff --git a/testing/adios2/interface/TestADIOSDefineAttribute.cpp b/testing/adios2/interface/TestADIOSDefineAttribute.cpp index 4ae737af9a..eeb4f30f5f 100644 --- a/testing/adios2/interface/TestADIOSDefineAttribute.cpp +++ b/testing/adios2/interface/TestADIOSDefineAttribute.cpp @@ -749,7 +749,7 @@ TEST_F(ADIOSDefineAttributeTest, VariableException) "myVar1", separator), std::invalid_argument); - auto var = io.DefineVariable("myVar1"); + io.DefineVariable("myVar1"); EXPECT_NO_THROW( io.DefineAttribute("Hello Value", "Value", "myVar1")); diff --git a/testing/adios2/interface/TestADIOSInterfaceWrite.cpp b/testing/adios2/interface/TestADIOSInterfaceWrite.cpp index 631f592393..ccd0bfd529 100644 --- a/testing/adios2/interface/TestADIOSInterfaceWrite.cpp +++ b/testing/adios2/interface/TestADIOSInterfaceWrite.cpp @@ -7,6 +7,18 @@ #include +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + class ADIOSInterfaceWriteTest : public ::testing::Test { public: @@ -634,3 +646,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/performance/manyvars/TestManyVars.cpp b/testing/adios2/performance/manyvars/TestManyVars.cpp index cf8c1e22c3..93e0d4bdf2 100644 --- a/testing/adios2/performance/manyvars/TestManyVars.cpp +++ b/testing/adios2/performance/manyvars/TestManyVars.cpp @@ -187,7 +187,7 @@ class TestManyVars : public ::testing::TestWithParam digit++; } - char fmt[16]; + char fmt[32]; sprintf(fmt, "v%%%d.%dd", digit, digit); for (size_t i = 0; i < NVARS; i++) { diff --git a/testing/adios2/xml/TestXMLConfig.cpp b/testing/adios2/xml/TestXMLConfig.cpp index a6f5b70ed8..886ac9163c 100644 --- a/testing/adios2/xml/TestXMLConfig.cpp +++ b/testing/adios2/xml/TestXMLConfig.cpp @@ -7,6 +7,18 @@ #include +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + #define str_helper(X) #X #define str(X) str_helper(X) @@ -143,3 +155,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif diff --git a/testing/adios2/yaml/TestYAMLConfig.cpp b/testing/adios2/yaml/TestYAMLConfig.cpp index 1473b33e87..073b2d9206 100644 --- a/testing/adios2/yaml/TestYAMLConfig.cpp +++ b/testing/adios2/yaml/TestYAMLConfig.cpp @@ -7,6 +7,18 @@ #include +#if defined(_MSC_VER) +#pragma warning(push) +//#pragma warning( disable : 4101) +#elif defined(__GNUC__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" + +#elif defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" +#endif + #define str_helper(X) #X #define str(X) str_helper(X) @@ -113,3 +125,11 @@ int main(int argc, char **argv) return result; } + +#if defined(_MSC_VER) +#pragma warning(pop) +#elif defined(__GNUC__) +#pragma GCC diagnostic pop +#elif defined(__clang__) +#pragma clang diagnostic pop +#endif