Index: lib/asan/asan_fake_stack.h =================================================================== --- lib/asan/asan_fake_stack.h +++ lib/asan/asan_fake_stack.h @@ -155,7 +155,7 @@ void ForEachFakeFrame(RangeIteratorCallback callback, void *arg); private: - FakeStack() { } + FakeStack() = default; static const uptr kFlagsOffset = 4096; // This is were the flags begin. // Must match the number of uses of DEFINE_STACK_MALLOC_FREE_WITH_CLASS_ID COMPILER_CHECK(kNumberOfSizeClasses == 11); Index: lib/msan/msan_allocator.h =================================================================== --- lib/msan/msan_allocator.h +++ lib/msan/msan_allocator.h @@ -26,7 +26,7 @@ private: // These objects are allocated via mmap() and are zero-initialized. - MsanThreadLocalMallocStorage() {} + MsanThreadLocalMallocStorage() = default; }; } // namespace __msan Index: lib/sanitizer_common/sanitizer_bitvector.h =================================================================== --- lib/sanitizer_common/sanitizer_bitvector.h +++ lib/sanitizer_common/sanitizer_bitvector.h @@ -87,7 +87,7 @@ // } class Iterator { public: - Iterator() { } + Iterator() = default; explicit Iterator(const BasicBitVector &bv) : bv_(bv) {} bool hasNext() const { return !bv_.empty(); } uptr next() { return bv_.getAndClearFirstOne(); } @@ -273,7 +273,7 @@ // } class Iterator { public: - Iterator() { } + Iterator() = default; explicit Iterator(const TwoLevelBitVector &bv) : bv_(bv), i0_(0), i1_(0) { it1_.clear(); it2_.clear(); Index: lib/tsan/rtl/tsan_clock.h =================================================================== --- lib/tsan/rtl/tsan_clock.h +++ lib/tsan/rtl/tsan_clock.h @@ -33,8 +33,7 @@ ClockElem clock[kClockCount]; }; - ClockBlock() { - } + ClockBlock() = default; }; typedef DenseSlabAlloc ClockAlloc; Index: lib/tsan/rtl/tsan_mutex.cc =================================================================== --- lib/tsan/rtl/tsan_mutex.cc +++ lib/tsan/rtl/tsan_mutex.cc @@ -126,9 +126,7 @@ #endif } -InternalDeadlockDetector::InternalDeadlockDetector() { - // Rely on zero initialization because some mutexes can be locked before ctor. -} +InternalDeadlockDetector::InternalDeadlockDetector() = default; #if SANITIZER_DEBUG && !SANITIZER_GO void InternalDeadlockDetector::Lock(MutexType t) { Index: lib/tsan/rtl/tsan_report.cc =================================================================== --- lib/tsan/rtl/tsan_report.cc +++ lib/tsan/rtl/tsan_report.cc @@ -67,9 +67,7 @@ : mset(MBlockReportMutex) { } -ReportDesc::~ReportDesc() { - // FIXME(dvyukov): it must be leaking a lot of memory. -} +ReportDesc::~ReportDesc() = default; #ifndef SANITIZER_GO Index: lib/tsan/rtl/tsan_rtl_thread.cc =================================================================== --- lib/tsan/rtl/tsan_rtl_thread.cc +++ lib/tsan/rtl/tsan_rtl_thread.cc @@ -31,8 +31,7 @@ } #ifndef SANITIZER_GO -ThreadContext::~ThreadContext() { -} +ThreadContext::~ThreadContext() = default; #endif void ThreadContext::OnDead() { Index: lib/ubsan/ubsan_diag.h =================================================================== --- lib/ubsan/ubsan_diag.h +++ lib/ubsan/ubsan_diag.h @@ -150,7 +150,7 @@ /// An individual diagnostic message argument. struct Arg { - Arg() {} + Arg() = default; Arg(const char *String) : Kind(AK_String), String(String) {} Arg(TypeName TN) : Kind(AK_TypeName), String(TN.getName()) {} Arg(UIntMax UInt) : Kind(AK_UInt), UInt(UInt) {}