diff --git a/dbcon/execplan/arithmeticoperator.h b/dbcon/execplan/arithmeticoperator.h index b18bcc9b1..d79876e52 100644 --- a/dbcon/execplan/arithmeticoperator.h +++ b/dbcon/execplan/arithmeticoperator.h @@ -327,7 +327,8 @@ inline void ArithmeticOperator::evaluate(rowgroup::Row& row, bool& isNull, Parse } template -inline result_t ArithmeticOperator::execute(result_t op1, result_t op2, bool& isNull) +inline __attribute__((no_sanitize("signed-integer-overflow"))) result_t +ArithmeticOperator::execute(result_t op1, result_t op2, bool& isNull) { if (isNull) { diff --git a/dbcon/execplan/selectfilter.h b/dbcon/execplan/selectfilter.h index eabf384f9..f381841bc 100644 --- a/dbcon/execplan/selectfilter.h +++ b/dbcon/execplan/selectfilter.h @@ -180,9 +180,9 @@ class SelectFilter : public Filter std::vector fCols; SOP fOp; SCSEP fSub; - bool fCorrelated; + bool fCorrelated = false; std::string fData; - uint64_t fReturnedColPos; // offset in fSub->returnedColList to indicate the start of projection + uint64_t fReturnedColPos = 0; // offset in fSub->returnedColList to indicate the start of projection std::vector fSimpleColumnListExtended{}; }; diff --git a/primitives/primproc/batchprimitiveprocessor.cpp b/primitives/primproc/batchprimitiveprocessor.cpp index a8e277623..6f632732e 100644 --- a/primitives/primproc/batchprimitiveprocessor.cpp +++ b/primitives/primproc/batchprimitiveprocessor.cpp @@ -2467,7 +2467,7 @@ SBPP BatchPrimitiveProcessor::duplicate() bpp->smallNullPointers = smallNullPointers; bpp->joinedRG = joinedRG; } - bpp->mSmallSideRGPtr = &bpp->smallSideRGs[0]; + bpp->mSmallSideRGPtr = bpp->smallSideRGs.empty() ? nullptr : &bpp->smallSideRGs[0]; #ifdef __FreeBSD__ pthread_mutex_unlock(&bpp->objLock); diff --git a/utils/funcexp/funchelpers.h b/utils/funcexp/funchelpers.h index c7f721ecf..ac46c70ae 100644 --- a/utils/funcexp/funchelpers.h +++ b/utils/funcexp/funchelpers.h @@ -385,7 +385,8 @@ inline int power(int16_t a) } template -inline void decimalPlaceDec(int64_t& d, T& p, int8_t& s) +inline __attribute__((no_sanitize("signed-integer-overflow"))) void decimalPlaceDec(int64_t& d, T& p, + int8_t& s) { // find new scale if D < s if (d < s) @@ -541,7 +542,9 @@ inline int getNumbers(const std::string& expr, int64_t* array, execplan::OpType return index; } -inline int getNumbers(const std::string& expr, int* array, execplan::OpType funcType) +inline __attribute__((no_sanitize("signed-integer-overflow"))) int getNumbers(const std::string& expr, + int* array, + execplan::OpType funcType) { int index = 0;