From 43bff70ce3ddf980c0dbb900b816c98971ec7f13 Mon Sep 17 00:00:00 2001 From: "Ambalu, Robert" Date: Sun, 3 Mar 2024 15:23:03 -0500 Subject: [PATCH 01/21] fixes #83 - code updates to support clang compilation / cleaned up some clang warnings Signed-off-by: Ambalu, Robert --- CMakeLists.txt | 6 +- .../parquet/ArrowSingleColumnArrayBuilder.h | 2 +- .../adapters/parquet/ParquetOutputAdapter.h | 2 + cpp/csp/adapters/parquet/ParquetReader.h | 2 +- .../parquet/ParquetReaderColumnAdapter.h | 5 +- cpp/csp/adapters/utils/JSONMessageWriter.h | 2 +- cpp/csp/cppnodes/statsimpl.h | 2 +- cpp/csp/engine/CppNode.h | 8 +- cpp/csp/engine/CspType.h | 85 ++++++++++--------- cpp/csp/engine/DynamicEngine.h | 2 +- cpp/csp/engine/Feedback.h | 2 +- cpp/csp/engine/PendingPushEvents.h | 2 +- cpp/csp/engine/RootEngine.h | 1 + cpp/csp/engine/Struct.h | 6 +- cpp/csp/python/InitHelper.h | 2 +- cpp/csp/python/PyCspType.h | 4 +- .../python/adapters/parquetadapterimpl.cpp | 17 ++-- cpp/csp/python/cspbaselibimpl.cpp | 2 +- cpp/csp/python/cspimpl.cpp | 2 +- 19 files changed, 78 insertions(+), 76 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f29413280..1b820a0ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -230,9 +230,13 @@ else() -Wall \ -Wno-deprecated-declarations \ -Wno-deprecated \ - -Wno-maybe-uninitialized \ ") add_definitions(-DNDEBUG) + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \ + -Wno-maybe-uninitialized \ + ") + endif() endif() endif() diff --git a/cpp/csp/adapters/parquet/ArrowSingleColumnArrayBuilder.h b/cpp/csp/adapters/parquet/ArrowSingleColumnArrayBuilder.h index c998d4518..136ef7027 100644 --- a/cpp/csp/adapters/parquet/ArrowSingleColumnArrayBuilder.h +++ b/cpp/csp/adapters/parquet/ArrowSingleColumnArrayBuilder.h @@ -304,7 +304,7 @@ class PrimitiveTypedArrayBuilder : public BaseTypedArrayBuilder m_builderPtr -> Append( *this -> m_value ); + [[maybe_unused]] auto status = this -> m_builderPtr -> Append( *this -> m_value ); } }; diff --git a/cpp/csp/adapters/parquet/ParquetOutputAdapter.h b/cpp/csp/adapters/parquet/ParquetOutputAdapter.h index 842b3c136..7148d0fa9 100644 --- a/cpp/csp/adapters/parquet/ParquetOutputAdapter.h +++ b/cpp/csp/adapters/parquet/ParquetOutputAdapter.h @@ -31,6 +31,8 @@ class ParquetOutputHandler { } + virtual ~ParquetOutputHandler() {} + uint32_t getChunkSize() const; virtual uint32_t getNumColumns() = 0; diff --git a/cpp/csp/adapters/parquet/ParquetReader.h b/cpp/csp/adapters/parquet/ParquetReader.h index 1026090e2..c10923bc0 100644 --- a/cpp/csp/adapters/parquet/ParquetReader.h +++ b/cpp/csp/adapters/parquet/ParquetReader.h @@ -376,7 +376,7 @@ class SingleTableParquetReader : public ParquetReader const std::optional &symbol, const DialectGenericListReaderInterface::Ptr &listReaderInterface ) override { ParquetReader::addListSubscriber( column, inputAdapter, symbol, listReaderInterface); - m_columnSubscriptionContainer.m_listColumnSubscriptions[column].push_back(ListColumnSubscriberInfo{inputAdapter, symbol, listReaderInterface}); + m_columnSubscriptionContainer.m_listColumnSubscriptions[column].push_back(ListColumnSubscriberInfo{{inputAdapter, symbol}, listReaderInterface}); } protected: diff --git a/cpp/csp/adapters/parquet/ParquetReaderColumnAdapter.h b/cpp/csp/adapters/parquet/ParquetReaderColumnAdapter.h index 6623a4675..eb7c4a839 100644 --- a/cpp/csp/adapters/parquet/ParquetReaderColumnAdapter.h +++ b/cpp/csp/adapters/parquet/ParquetReaderColumnAdapter.h @@ -134,7 +134,7 @@ class MissingColumnAdapter : public ParquetColumnAdapter bool isMissingColumn() const override{ return true; } - virtual CspTypePtr getNativeCspType() const + virtual CspTypePtr getNativeCspType() const override { CSP_THROW( csp::RuntimeException, "Trying to get native type of a missing column " << getColumnName() ); } @@ -190,8 +190,7 @@ template< typename ValueType, typename ArrowArrayType > class NativeTypeColumnAdapter : public BaseTypedColumnAdapter { public: - using BASE = BaseTypedColumnAdapter; - using BASE::BaseTypedColumnAdapter; + using BaseTypedColumnAdapter::BaseTypedColumnAdapter; virtual CspTypePtr getNativeCspType() const override {return CspType::fromCType::type();} protected: diff --git a/cpp/csp/adapters/utils/JSONMessageWriter.h b/cpp/csp/adapters/utils/JSONMessageWriter.h index fc5902bbd..45c0c0aa4 100644 --- a/cpp/csp/adapters/utils/JSONMessageWriter.h +++ b/cpp/csp/adapters/utils/JSONMessageWriter.h @@ -63,7 +63,7 @@ class JSONMessageWriter : public MessageWriter } private: - void processTickImpl( const OutputDataMapper & dataMapper, const TimeSeriesProvider * sourcets ) + void processTickImpl( const OutputDataMapper & dataMapper, const TimeSeriesProvider * sourcets ) override { dataMapper.apply( *this, sourcets ); } diff --git a/cpp/csp/cppnodes/statsimpl.h b/cpp/csp/cppnodes/statsimpl.h index 88926d6b6..765b3aac2 100644 --- a/cpp/csp/cppnodes/statsimpl.h +++ b/cpp/csp/cppnodes/statsimpl.h @@ -1163,7 +1163,7 @@ class Quantile int ft = floor( target ); int ct = ceil( target ); - double qtl; + double qtl = 0.0; #ifndef __clang__ switch ( m_interpolation ) { diff --git a/cpp/csp/engine/CppNode.h b/cpp/csp/engine/CppNode.h index 75457a366..554b0695a 100644 --- a/cpp/csp/engine/CppNode.h +++ b/cpp/csp/engine/CppNode.h @@ -161,9 +161,9 @@ class CppNode : public csp::Node using InputWrapper::InputWrapper; operator const T &() { return lastValue(); } - const T & lastValue() const { return ts() -> lastValueTyped(); } + const T & lastValue() const { return ts() -> template lastValueTyped(); } - const T & valueAtIndex( int32_t index ) const { return ts() -> valueAtIndex( index ); } + const T & valueAtIndex( int32_t index ) const { return ts() -> template valueAtIndex( index ); } }; template @@ -379,7 +379,7 @@ class CppNode : public csp::Node T & reserveSpace() { - return ts() -> reserveTickTyped( m_node.cycleCount(), m_node.now() ); + return ts() -> template reserveTickTyped( m_node.cycleCount(), m_node.now() ); } }; @@ -644,7 +644,7 @@ struct csp::CppNode::AlarmTypeHelper } #define INIT_CPPNODE_WITH_NAME( Class, Name ) \ - CSP csp; \ + [[maybe_unused]] CSP csp; \ public: \ const char * name() const override { return #Name; } \ _STATIC_CREATE_METHOD( Class ) \ diff --git a/cpp/csp/engine/CspType.h b/cpp/csp/engine/CspType.h index 7a0017fd4..a0b4f9eba 100644 --- a/cpp/csp/engine/CspType.h +++ b/cpp/csp/engine/CspType.h @@ -169,47 +169,50 @@ class CspArrayType : public CspType CspTypePtr m_elemType; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::BOOL; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::BOOL; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::INT8; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::UINT8; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::INT16; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::UINT16; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::INT32; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::UINT32; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::INT64; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::UINT64; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::DOUBLE; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::DATETIME; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::TIMEDELTA; }; -template<> struct CspType::Type::fromCType { static constexpr CspType::Type type = CspType::Type::DATE; }; -template<> struct CspType::Type::fromCType