diff --git a/groups/bdl/bdlc/bdlc_packedintarray.h b/groups/bdl/bdlc/bdlc_packedintarray.h index 8c64ca34dd..eea7cf2000 100644 --- a/groups/bdl/bdlc/bdlc_packedintarray.h +++ b/groups/bdl/bdlc/bdlc_packedintarray.h @@ -1539,7 +1539,7 @@ STREAM& PackedIntArrayImp::bdexStreamIn(STREAM& stream, int version) else { bsl::size_t tmpLength; { - int v; + int v = 0; stream.getLength(v); tmpLength = static_cast(v); } diff --git a/groups/bdl/bdlf/bdlf_overloaded.t.cpp b/groups/bdl/bdlf/bdlf_overloaded.t.cpp index 71dcf5e118..a74fdca419 100644 --- a/groups/bdl/bdlf/bdlf_overloaded.t.cpp +++ b/groups/bdl/bdlf/bdlf_overloaded.t.cpp @@ -598,7 +598,7 @@ int main(int argc, char *argv[]) int someValue = 3; checkEm(bdlf::Overloaded{ - [&someValue](void) {return kVoid;} + [&someValue](void) { (void)someValue; return kVoid; } , FloatingPoint{} , FreeFN::HandleShort , FreeFN::HandleUnsignedShort diff --git a/groups/bdl/bdljsn/bdljsn_error.t.cpp b/groups/bdl/bdljsn/bdljsn_error.t.cpp index 2b3f305b5b..5426e72ae6 100644 --- a/groups/bdl/bdljsn/bdljsn_error.t.cpp +++ b/groups/bdl/bdljsn/bdljsn_error.t.cpp @@ -1927,8 +1927,8 @@ int main(int argc, char *argv[]) bsls::Types::Int64 s1Alloc = s1.numBytesInUse(); - Obj *objPtr = 0; - bsls::Types::Int64 objAlloc; + Obj *objPtr = 0; + bsls::Types::Int64 objAlloc = 0; bslma::TestAllocator *objAllocatorPtr = 0; switch (CONFIG) { diff --git a/groups/bdl/bdljsn/bdljsn_jsonnumber.t.cpp b/groups/bdl/bdljsn/bdljsn_jsonnumber.t.cpp index 74db52fc3a..cf070aaa93 100644 --- a/groups/bdl/bdljsn/bdljsn_jsonnumber.t.cpp +++ b/groups/bdl/bdljsn/bdljsn_jsonnumber.t.cpp @@ -3245,7 +3245,7 @@ int main(int argc, char *argv[]) bsls::Types::Int64 s1Alloc = s1.numBytesInUse(); Obj *objPtr = 0; - bsls::Types::Int64 objAlloc; + bsls::Types::Int64 objAlloc = 0; bslma::TestAllocator *objAllocatorPtr = 0; switch (CONFIG) { diff --git a/groups/bsl/bslalg/bslalg_rbtreenode.t.cpp b/groups/bsl/bslalg/bslalg_rbtreenode.t.cpp index 1226a3191f..9e28320dfb 100644 --- a/groups/bsl/bslalg/bslalg_rbtreenode.t.cpp +++ b/groups/bsl/bslalg/bslalg_rbtreenode.t.cpp @@ -177,10 +177,7 @@ void debugprint(const Obj& val) { /// `left`, and `right`. static Obj& gg(Obj *result, Color color, Obj *parent, Obj *left, Obj *right) { - result->setColor(color); - result->setParent(parent); - result->setLeftChild(left); - result->setRightChild(right); + result->reset(parent, left, right, color); return *result; } diff --git a/groups/bsl/bslh/bslh_hash.t.cpp b/groups/bsl/bslh/bslh_hash.t.cpp index b7640af404..1feffbf9c0 100644 --- a/groups/bsl/bslh/bslh_hash.t.cpp +++ b/groups/bsl/bslh/bslh_hash.t.cpp @@ -757,9 +757,9 @@ class MockHashingAlgorithm { public: /// Create a new `MockHashingAlgorithm` MockHashingAlgorithm() - : d_length(0) + : d_data(0) + , d_length(0) { - d_data = new char[0]; } /// Destroy this object diff --git a/groups/bsl/bslh/bslh_seededhash.t.cpp b/groups/bsl/bslh/bslh_seededhash.t.cpp index 5e5d0e3f6b..88b292fec6 100644 --- a/groups/bsl/bslh/bslh_seededhash.t.cpp +++ b/groups/bsl/bslh/bslh_seededhash.t.cpp @@ -234,7 +234,7 @@ bool HashTable::lookup(size_t *idx, const TYPE *ptr; for (*idx = hashValue & d_bucketArrayMask; (ptr = d_bucketArray[*idx]); *idx = (*idx + 1) & d_bucketArrayMask) { - if (value == *ptr) { + if (value == +*ptr) { return true; // RETURN } } diff --git a/groups/bsl/bslim/bslim_printer.t.cpp b/groups/bsl/bslim/bslim_printer.t.cpp index da04d1aa23..437239cf6f 100644 --- a/groups/bsl/bslim/bslim_printer.t.cpp +++ b/groups/bsl/bslim/bslim_printer.t.cpp @@ -199,7 +199,7 @@ struct TestEnumWithStreaming { bsl::ostream& operator<<(bsl::ostream& stream, TestEnumWithStreaming::Enum value) { - const char *ascii; + const char *ascii = 0; switch (value) { case TestEnumWithStreaming::VALUE_A: ascii = "VALUE_A"; diff --git a/groups/bsl/bslma/bslma_polymorphicallocator.t.cpp b/groups/bsl/bslma/bslma_polymorphicallocator.t.cpp index e479bfc100..69460fa9c1 100644 --- a/groups/bsl/bslma/bslma_polymorphicallocator.t.cpp +++ b/groups/bsl/bslma/bslma_polymorphicallocator.t.cpp @@ -640,7 +640,7 @@ int main(int argc, char *argv[]) alloc.construct(&buf2.object()); ASSERT(alloc == buf2.object().get_allocator()); - ASSERTV(0, buf2.object().value(), 0 == buf1.object().value()); + ASSERTV(buf2.object().value(), 0 == buf2.object().value()); runDestroy(alloc, &buf2.object()); ASSERTV(AATT::lastDestroyed() == buf2.address()); } diff --git a/groups/bsl/bsls/bsls_alignment.t.cpp b/groups/bsl/bsls/bsls_alignment.t.cpp index 42b9c66617..0c629de5c7 100644 --- a/groups/bsl/bsls/bsls_alignment.t.cpp +++ b/groups/bsl/bsls/bsls_alignment.t.cpp @@ -3,6 +3,7 @@ #include #include // for testing only +#include #include #include @@ -285,6 +286,11 @@ int main(int argc, char *argv[]) if (verbose) printf("\nTesting `enum` and `toAscii`" "\n============================\n"); +#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + static const struct { int d_lineNum; // source line number Enum d_value; // enumerator value @@ -295,7 +301,6 @@ int main(int argc, char *argv[]) { L_, Obj::BSLS_MAXIMUM, "MAXIMUM" }, { L_, Obj::BSLS_NATURAL, "NATURAL" }, { L_, Obj::BSLS_BYTEALIGNED, "BYTEALIGNED" }, - #ifndef BDE_BUILD_TARGET_UBSAN { L_, (Enum)NUM_ENUMERATORS, UNKNOWN_FORMAT }, { L_, (Enum)-1, UNKNOWN_FORMAT }, @@ -303,6 +308,11 @@ int main(int argc, char *argv[]) { L_, (Enum)99, UNKNOWN_FORMAT } #endif }; + +#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int NUM_DATA = sizeof DATA / sizeof *DATA; if (verbose) printf("\nVerify enumerator values are sequential.\n"); diff --git a/groups/bsl/bsls/bsls_blockgrowth.t.cpp b/groups/bsl/bsls/bsls_blockgrowth.t.cpp index 93bf31dde2..d473dadd3b 100644 --- a/groups/bsl/bsls/bsls_blockgrowth.t.cpp +++ b/groups/bsl/bsls/bsls_blockgrowth.t.cpp @@ -2,6 +2,8 @@ #include +#include + #include #include @@ -240,6 +242,11 @@ int main(int argc, char *argv[]) if (verbose) cout << "\nTesting enumerator value and `toAscii`." << endl; +#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + static const struct { int d_line; // line number Enum d_enum; // enumerator @@ -256,6 +263,11 @@ int main(int argc, char *argv[]) { L_, (Enum)10 , "(* UNKNOWN *)", -1 }, #endif }; + +#ifdef BSLS_PLATFORM_HAS_PRAGMA_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int NUM_DATA = sizeof DATA / sizeof *DATA; for (int ti = 0; ti < NUM_DATA; ++ti) { diff --git a/groups/bsl/bsls/bsls_timeinterval.h b/groups/bsl/bsls/bsls_timeinterval.h index d83398b1f3..29087cdd33 100644 --- a/groups/bsl/bsls/bsls_timeinterval.h +++ b/groups/bsl/bsls/bsls_timeinterval.h @@ -1245,8 +1245,8 @@ STREAM& TimeInterval::bdexStreamIn(STREAM& stream, int version) if (stream) { switch (version) { // switch on the schema version case 1: { - bsls::Types::Int64 seconds; - int nanoseconds; + bsls::Types::Int64 seconds = 0; + int nanoseconds = 0; stream.getInt64(seconds); stream.getInt32(nanoseconds); diff --git a/groups/bsl/bslstl/bslstl_map_test3.t.cpp b/groups/bsl/bslstl/bslstl_map_test3.t.cpp index 8aa61a8deb..4a58a2554a 100644 --- a/groups/bsl/bslstl/bslstl_map_test3.t.cpp +++ b/groups/bsl/bslstl/bslstl_map_test3.t.cpp @@ -4086,7 +4086,7 @@ void TestDriver::testCase32() }; const int NUM_DATA = static_cast(sizeof DATA / sizeof *DATA); - const int MAX_LENGTH = 10; + const int MAX_LENGTH = 32; if (verbose) printf("\nTesting `emplace` with hint.\n"); { @@ -4771,7 +4771,7 @@ void TestDriver::testCase31() }; const int NUM_DATA = static_cast(sizeof DATA / sizeof *DATA); - const int MAX_LENGTH = 10; + const int MAX_LENGTH = 32; if (verbose) printf("\nTesting `emplace` without exceptions.\n"); { @@ -5451,7 +5451,7 @@ void TestDriver::testCase29() }; const int NUM_DATA = static_cast(sizeof DATA / sizeof *DATA); - const int MAX_LENGTH = 10; + const int MAX_LENGTH = 32; if (verbose) printf("\nTesting `insert` without exceptions.\n"); { diff --git a/groups/bsl/bslstl/bslstl_variant.t.cpp b/groups/bsl/bslstl/bslstl_variant.t.cpp index d4036db93a..455e13e3ce 100644 --- a/groups/bsl/bslstl/bslstl_variant.t.cpp +++ b/groups/bsl/bslstl/bslstl_variant.t.cpp @@ -1021,6 +1021,8 @@ struct MyClassDef { int *d_data_p; bslma::Allocator *d_allocator_p; + MyClassDef(); + // In optimized builds, some compilers will elide some of the operations in // the destructors of the test classes defined below. In order to force // the compiler to retain all of the code in the destructors, we provide @@ -1036,6 +1038,13 @@ struct MyClassDef { bool MyClassDef::s_forceDestructorCall = false; +MyClassDef::MyClassDef() +: d_value(0) +, d_data_p(0) +, d_allocator_p(0) +{ +} + void MyClassDef::dumpState() { if (s_forceDestructorCall) { diff --git a/groups/bsl/bslx/bslx_genericinstream.t.cpp b/groups/bsl/bslx/bslx_genericinstream.t.cpp index 0cda2e29d9..c5b64e2119 100644 --- a/groups/bsl/bslx/bslx_genericinstream.t.cpp +++ b/groups/bsl/bslx/bslx_genericinstream.t.cpp @@ -1540,7 +1540,7 @@ if (veryVerbose) { if (verbose) cout << "\nNegative Testing." << endl; { - double DATA[5]; + double DATA[5] = { 0.0, 0.0, 0.0, 0.0, 0.0 }; Buf b; @@ -1693,7 +1693,7 @@ if (veryVerbose) { if (verbose) cout << "\nNegative Testing." << endl; { - float DATA[5]; + float DATA[5] = { 0.0, 0.0, 0.0, 0.0, 0.0 }; Buf b;