[compiler-rt] [llvm] [sanitizers][NFC] delete some copy constructor and copy assignment to more comply to rule of three (PR #112844)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 17 23:07:04 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Wu Yingcong (yingcong-wu)
<details>
<summary>Changes</summary>
Delete some copy constructor and copy assignment to make codes more compliant with rule of three.
---
Patch is 21.97 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/112844.diff
32 Files Affected:
- (modified) compiler-rt/lib/asan/asan_report.cpp (+3)
- (modified) compiler-rt/lib/asan/asan_stack.cpp (+3)
- (modified) compiler-rt/lib/fuzzer/FuzzerCorpus.h (+2)
- (modified) compiler-rt/lib/fuzzer/FuzzerFork.cpp (+3)
- (modified) compiler-rt/lib/fuzzer/FuzzerInternal.h (+12)
- (modified) compiler-rt/lib/fuzzer/FuzzerLoop.cpp (+3)
- (modified) compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp (+4-1)
- (modified) compiler-rt/lib/lsan/lsan_common.h (+3)
- (modified) compiler-rt/lib/msan/msan.cpp (+3)
- (modified) compiler-rt/lib/msan/msan.h (+3)
- (modified) compiler-rt/lib/msan/msan_interceptors.cpp (+2)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h (+3)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp (+4)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_common.h (+8)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h (+3)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_file.h (+3)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h (+2)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h (+2)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp (+11)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h (+6)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp (+3)
- (modified) compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h (+4)
- (modified) compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h (+3)
- (modified) compiler-rt/lib/tsan/rtl/tsan_interceptors.h (+3)
- (modified) compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp (+5)
- (modified) compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp (+3)
- (modified) compiler-rt/lib/tsan/rtl/tsan_rtl.h (+9)
- (modified) compiler-rt/lib/tsan/rtl/tsan_vector_clock.h (+2)
- (modified) compiler-rt/lib/ubsan/ubsan_diag.h (+3)
- (modified) llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp (+5)
- (modified) llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp (+10-7)
- (modified) llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp (+1)
``````````diff
diff --git a/compiler-rt/lib/asan/asan_report.cpp b/compiler-rt/lib/asan/asan_report.cpp
index 45aa607dcda07f..b6f5a657eac6c8 100644
--- a/compiler-rt/lib/asan/asan_report.cpp
+++ b/compiler-rt/lib/asan/asan_report.cpp
@@ -210,6 +210,9 @@ class ScopedInErrorReport {
// with the debugger and point it to an error description.
static ErrorDescription current_error_;
bool halt_on_error_;
+
+ ScopedInErrorReport(const ScopedInErrorReport &) = delete;
+ ScopedInErrorReport &operator=(const ScopedInErrorReport &) = delete;
};
ErrorDescription ScopedInErrorReport::current_error_(LINKER_INITIALIZED);
diff --git a/compiler-rt/lib/asan/asan_stack.cpp b/compiler-rt/lib/asan/asan_stack.cpp
index 764c6ac193fb06..5f2694908bf15e 100644
--- a/compiler-rt/lib/asan/asan_stack.cpp
+++ b/compiler-rt/lib/asan/asan_stack.cpp
@@ -47,6 +47,9 @@ class ScopedUnwinding {
private:
AsanThread *thread = nullptr;
bool can_unwind = true;
+
+ ScopedUnwinding(const ScopedUnwinding &) = delete;
+ ScopedUnwinding &operator=(const ScopedUnwinding &) = delete;
};
} // namespace
diff --git a/compiler-rt/lib/fuzzer/FuzzerCorpus.h b/compiler-rt/lib/fuzzer/FuzzerCorpus.h
index 48b5a2cff02e25..6a227b3293fe75 100644
--- a/compiler-rt/lib/fuzzer/FuzzerCorpus.h
+++ b/compiler-rt/lib/fuzzer/FuzzerCorpus.h
@@ -469,6 +469,8 @@ class InputCorpus {
size_t NumFeatureUpdates() const { return NumUpdatedFeatures; }
private:
+ InputCorpus(const InputCorpus &) = delete;
+ InputCorpus &operator=(const InputCorpus &) = delete;
static const bool FeatureDebug = false;
diff --git a/compiler-rt/lib/fuzzer/FuzzerFork.cpp b/compiler-rt/lib/fuzzer/FuzzerFork.cpp
index e544cd846e4db5..c40c4e7e31d853 100644
--- a/compiler-rt/lib/fuzzer/FuzzerFork.cpp
+++ b/compiler-rt/lib/fuzzer/FuzzerFork.cpp
@@ -83,6 +83,9 @@ struct FuzzJob {
RmDirRecursive(CorpusDir);
RmDirRecursive(FeaturesDir);
}
+
+ FuzzJob(const FuzzJob &) = delete;
+ FuzzJob &operator=(const FuzzJob &) = delete;
};
struct GlobalEnv {
diff --git a/compiler-rt/lib/fuzzer/FuzzerInternal.h b/compiler-rt/lib/fuzzer/FuzzerInternal.h
index 88504705137a8f..49b4dbcdf5ee1b 100644
--- a/compiler-rt/lib/fuzzer/FuzzerInternal.h
+++ b/compiler-rt/lib/fuzzer/FuzzerInternal.h
@@ -34,6 +34,8 @@ class Fuzzer final {
Fuzzer(UserCallback CB, InputCorpus &Corpus, MutationDispatcher &MD,
const FuzzingOptions &Options);
~Fuzzer() = delete;
+ Fuzzer(const Fuzzer &) = delete;
+ Fuzzer &operator=(const Fuzzer &) = delete;
void Loop(std::vector<SizedFile> &CorporaFiles);
void ReadAndExecuteSeedCorpora(std::vector<SizedFile> &CorporaFiles);
void MinimizeCrashLoop(const Unit &U);
@@ -160,6 +162,11 @@ struct ScopedEnableMsanInterceptorChecks {
if (EF->__msan_scoped_disable_interceptor_checks)
EF->__msan_scoped_disable_interceptor_checks();
}
+
+ ScopedEnableMsanInterceptorChecks(const ScopedEnableMsanInterceptorChecks &) =
+ delete;
+ ScopedEnableMsanInterceptorChecks &
+ operator=(const ScopedEnableMsanInterceptorChecks &) = delete;
};
struct ScopedDisableMsanInterceptorChecks {
@@ -171,6 +178,11 @@ struct ScopedDisableMsanInterceptorChecks {
if (EF->__msan_scoped_enable_interceptor_checks)
EF->__msan_scoped_enable_interceptor_checks();
}
+
+ ScopedDisableMsanInterceptorChecks(
+ const ScopedDisableMsanInterceptorChecks &) = delete;
+ ScopedDisableMsanInterceptorChecks &
+ operator=(const ScopedDisableMsanInterceptorChecks &) = delete;
};
} // namespace fuzzer
diff --git a/compiler-rt/lib/fuzzer/FuzzerLoop.cpp b/compiler-rt/lib/fuzzer/FuzzerLoop.cpp
index 6f415dd5763ac9..68ce839f41cc4a 100644
--- a/compiler-rt/lib/fuzzer/FuzzerLoop.cpp
+++ b/compiler-rt/lib/fuzzer/FuzzerLoop.cpp
@@ -92,6 +92,9 @@ class TraceLock {
private:
std::lock_guard<std::recursive_mutex> Lock;
+
+ TraceLock(const TraceLock &) = delete;
+ TraceLock &operator=(const TraceLock &) = delete;
};
ATTRIBUTE_NO_SANITIZE_MEMORY
diff --git a/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp b/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
index 37aecae7237ae9..d951d1014bcf35 100644
--- a/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
+++ b/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
@@ -98,7 +98,10 @@ void CALLBACK AlarmHandler(PVOID, BOOLEAN) {
class TimerQ {
HANDLE TimerQueue;
- public:
+ TimerQ(const TimerQ &) = delete;
+ TimerQ &operator=(const TimerQ &) = delete;
+
+public:
TimerQ() : TimerQueue(NULL) {}
~TimerQ() {
if (TimerQueue)
diff --git a/compiler-rt/lib/lsan/lsan_common.h b/compiler-rt/lib/lsan/lsan_common.h
index f990c7850497a5..cda2b2705d88d8 100644
--- a/compiler-rt/lib/lsan/lsan_common.h
+++ b/compiler-rt/lib/lsan/lsan_common.h
@@ -285,6 +285,9 @@ void EnableInThisThread();
struct ScopedInterceptorDisabler {
ScopedInterceptorDisabler() { DisableInThisThread(); }
~ScopedInterceptorDisabler() { EnableInThisThread(); }
+ ScopedInterceptorDisabler(const ScopedInterceptorDisabler &) = delete;
+ ScopedInterceptorDisabler &operator=(const ScopedInterceptorDisabler &) =
+ delete;
};
// According to Itanium C++ ABI array cookie is a one word containing
diff --git a/compiler-rt/lib/msan/msan.cpp b/compiler-rt/lib/msan/msan.cpp
index 6c27ab21eeebfd..cb15419936c7cd 100644
--- a/compiler-rt/lib/msan/msan.cpp
+++ b/compiler-rt/lib/msan/msan.cpp
@@ -86,6 +86,9 @@ bool IsInSymbolizerOrUnwider() { return is_in_symbolizer_or_unwinder; }
struct UnwinderScope {
UnwinderScope() { EnterSymbolizerOrUnwider(); }
~UnwinderScope() { ExitSymbolizerOrUnwider(); }
+
+ UnwinderScope(const UnwinderScope &) = delete;
+ UnwinderScope &operator=(const UnwinderScope &) = delete;
};
static Flags msan_flags;
diff --git a/compiler-rt/lib/msan/msan.h b/compiler-rt/lib/msan/msan.h
index 7fb58be67a02cd..8dab07b78d6542 100644
--- a/compiler-rt/lib/msan/msan.h
+++ b/compiler-rt/lib/msan/msan.h
@@ -354,6 +354,9 @@ class ScopedThreadLocalStateBackup {
void Restore();
private:
u64 va_arg_overflow_size_tls;
+ ScopedThreadLocalStateBackup(const ScopedThreadLocalStateBackup &) = delete;
+ ScopedThreadLocalStateBackup &operator=(
+ const ScopedThreadLocalStateBackup &) = delete;
};
void MsanTSDInit(void (*destructor)(void *tsd));
diff --git a/compiler-rt/lib/msan/msan_interceptors.cpp b/compiler-rt/lib/msan/msan_interceptors.cpp
index f05c20618780b7..7b11a9a8da4a95 100644
--- a/compiler-rt/lib/msan/msan_interceptors.cpp
+++ b/compiler-rt/lib/msan/msan_interceptors.cpp
@@ -71,6 +71,8 @@ void __msan_scoped_enable_interceptor_checks() { --in_interceptor_scope; }
struct InterceptorScope {
InterceptorScope() { ++in_interceptor_scope; }
~InterceptorScope() { --in_interceptor_scope; }
+ InterceptorScope(const InterceptorScope &) = delete;
+ InterceptorScope &operator=(const InterceptorScope &) = delete;
};
bool IsInInterceptorScope() {
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h b/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h
index fe48b9caf0670b..66ee60c4094175 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h
@@ -92,6 +92,9 @@ class AddrHashMap {
bool created_;
bool remove_;
bool create_;
+
+ Handle(const Handle &) = delete;
+ Handle &operator=(const Handle &) = delete;
};
typedef void (*ForEachCallback)(const uptr key, const T &val, void *arg);
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp
index 129f925e6fb686..26a5b5da741c54 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_allocator_report.cpp
@@ -38,6 +38,10 @@ class ScopedAllocatorErrorReport {
const char *error_summary;
const StackTrace* const stack;
const SanitizerCommonDecorator d;
+
+ ScopedAllocatorErrorReport(const ScopedAllocatorErrorReport &) = delete;
+ ScopedAllocatorErrorReport &operator=(const ScopedAllocatorErrorReport &) =
+ delete;
};
void NORETURN ReportCallocOverflow(uptr count, uptr size,
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common.h b/compiler-rt/lib/sanitizer_common/sanitizer_common.h
index 082d2158e579bd..c408484d49917c 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_common.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_common.h
@@ -261,6 +261,8 @@ class ScopedErrorReportLock {
static void CheckLocked() SANITIZER_CHECK_LOCKED(mutex_);
private:
+ ScopedErrorReportLock(const ScopedErrorReportLock &) = delete;
+ ScopedErrorReportLock &operator=(const ScopedErrorReportLock &) = delete;
static atomic_uintptr_t reporting_thread_;
static StaticSpinMutex mutex_;
};
@@ -908,6 +910,9 @@ class ListOfModules {
initialized = true;
}
+ ListOfModules(const ListOfModules &) = delete;
+ ListOfModules &operator=(const ListOfModules &) = delete;
+
InternalMmapVectorNoCtor<LoadedModule> modules_;
// We rarely have more than 16K loaded modules.
static const uptr kInitialCapacity = 1 << 14;
@@ -1054,6 +1059,9 @@ class RunOnDestruction {
private:
Fn fn_;
+
+ RunOnDestruction(const RunOnDestruction &) = delete;
+ RunOnDestruction &operator=(const RunOnDestruction &) = delete;
};
// A simple scope guard. Usage:
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h b/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h
index 7f461c98bade44..45f63d456e5473 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector_interface.h
@@ -67,6 +67,9 @@ struct DDCallback {
virtual u32 Unwind() { return 0; }
virtual int UniqueTid() { return 0; }
+ RingBuffer(const RingBuffer &) = delete;
+ RingBuffer &operator=(const RingBuffer &) = delete;
+
protected:
~DDCallback() {}
};
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_file.h b/compiler-rt/lib/sanitizer_common/sanitizer_file.h
index bef2c842d9f24f..da21a6949092e6 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_file.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_file.h
@@ -71,6 +71,9 @@ struct FileCloser {
explicit FileCloser(fd_t fd) : fd(fd) {}
~FileCloser() { CloseFile(fd); }
fd_t fd;
+
+ FileCloser(const FileCloser &) = delete;
+ FileCloser &operator=(const FileCloser &) = delete;
};
bool SupportsColoredOutput(fd_t fd);
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
index bf3c2c28e32e39..cbd79f28e17fcd 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h
@@ -112,6 +112,8 @@ class MemoryMappingLayout : public MemoryMappingLayoutBase {
private:
void LoadFromCache();
+ MemoryMappingLayout(const MemoryMappingLayout &) = delete;
+ MemoryMappingLayout &operator=(const MemoryMappingLayout &) = delete;
};
// Returns code range for the specified module.
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h b/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h
index 6222a958b11682..96a81df09ebeb1 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_ring_buffer.h
@@ -66,6 +66,7 @@ class RingBuffer {
RingBuffer() {}
~RingBuffer() {}
RingBuffer(const RingBuffer&) = delete;
+ RingBuffer &operator=(const RingBuffer &) = delete;
// Data layout:
// LNDDDDDDDD
@@ -159,6 +160,7 @@ class CompactRingBuffer {
public:
~CompactRingBuffer() {}
CompactRingBuffer(const CompactRingBuffer &) = delete;
+ CompactRingBuffer &operator=(const CompactRingBuffer &) = delete;
uptr long_;
};
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
index 945da99d41f4ea..0c3a0c5df25f80 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
@@ -358,6 +358,10 @@ class ScopedStackSpaceWithGuard {
uptr stack_size_;
uptr guard_size_;
uptr guard_start_;
+
+ ScopedStackSpaceWithGuard(const ScopedStackSpaceWithGuard &) = delete;
+ ScopedStackSpaceWithGuard &operator=(const ScopedStackSpaceWithGuard &) =
+ delete;
};
// We have a limitation on the stack frame size, so some stuff had to be moved
@@ -383,6 +387,9 @@ class StopTheWorldScope {
private:
int process_was_dumpable_;
+
+ StopTheWorldScope(const StopTheWorldScope &) = delete;
+ StopTheWorldScope &operator=(const StopTheWorldScope &) = delete;
};
// When sanitizer output is being redirected to file (i.e. by using log_path),
@@ -397,6 +404,10 @@ struct ScopedSetTracerPID {
stoptheworld_tracer_pid = 0;
stoptheworld_tracer_ppid = 0;
}
+
+ private:
+ ScopedSetTracerPID(const ScopedSetTracerPID &) = delete;
+ ScopedSetTracerPID &operator=(const ScopedSetTracerPID &) = delete;
};
void StopTheWorld(StopTheWorldCallback callback, void *argument) {
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
index bd89dc4e302fc9..f8ac653e2f1f55 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h
@@ -72,6 +72,9 @@ class SymbolizedStackHolder {
Stack->ClearAll();
}
+ SymbolizedStackHolder(const SymbolizedStackHolder &) = delete;
+ SymbolizedStackHolder &operator=(const SymbolizedStackHolder &) = delete;
+
public:
explicit SymbolizedStackHolder(SymbolizedStack *Stack = nullptr)
: Stack(Stack) {}
@@ -235,6 +238,9 @@ class Symbolizer final {
private:
const Symbolizer *sym_;
int errno_; // Backup errno in case symbolizer change the value.
+
+ SymbolizerScope(const SymbolizerScope &) = delete;
+ SymbolizerScope &operator=(const SymbolizerScope &) = delete;
};
};
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp
index 1ff8b8f1bab480..69d0ef7e416490 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_win.cpp
@@ -194,6 +194,9 @@ struct ScopedHandle {
return h;
}
HANDLE h_;
+
+ ScopedHandle(const ScopedHandle &) = delete;
+ ScopedHandle &operator=(const ScopedHandle &) = delete;
};
} // namespace
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h b/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h
index e06abb3932da5c..b70686b06f4ef1 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h
@@ -83,6 +83,10 @@ class ThreadContextBase {
protected:
~ThreadContextBase();
+
+ private:
+ ThreadContextBase(const ThreadContextBase &) = delete;
+ ThreadContextBase &operator=(const ThreadContextBase &) = delete;
};
typedef ThreadContextBase* (*ThreadContextFactory)(u32 tid);
diff --git a/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h b/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h
index 2eaff39057bc5e..c60af0b16d5ccd 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h
@@ -189,6 +189,9 @@ class DenseSlabAlloc {
atomic_store_relaxed(&fillpos_, fillpos + 1);
CHECK(c->pos);
}
+
+ DenseSlabAlloc(const DenseSlabAlloc &) = delete;
+ DenseSlabAlloc &operator=(const DenseSlabAlloc &) = delete;
};
} // namespace __tsan
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors.h b/compiler-rt/lib/tsan/rtl/tsan_interceptors.h
index a357a870fdf8e8..73c0abf08feb9e 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interceptors.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors.h
@@ -27,6 +27,9 @@ class ScopedInterceptor {
void DisableIgnoresImpl();
void EnableIgnoresImpl();
+
+ ScopedInterceptor(const ScopedInterceptor &) = delete;
+ ScopedInterceptor &operator=(const ScopedInterceptor &) = delete;
};
struct TsanInterceptorContext {
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
index 423d97e94d81ae..8a353ded60e438 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
@@ -386,6 +386,8 @@ struct BlockingCall {
}
ThreadState *thr;
+ BlockingCall(const BlockingCall &) = delete;
+ BlockingCall &operator=(const BlockingCall &) = delete;
};
TSAN_INTERCEPTOR(unsigned, sleep, unsigned sec) {
@@ -2669,6 +2671,9 @@ struct ScopedSyscall {
~ScopedSyscall() {
ProcessPendingSignals(thr);
}
+
+ ScopedSyscall(const ScopedSyscall &) = delete;
+ ScopedSyscall &operator=(const ScopedSyscall &) = delete;
};
#if !SANITIZER_FREEBSD && !SANITIZER_APPLE
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp b/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
index befd6a369026d8..49fada836ff380 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
@@ -41,6 +41,9 @@ class ScopedAnnotation {
}
private:
ThreadState *const thr_;
+
+ ScopedAnnotation(const ScopedAnnotation &) = delete;
+ ScopedAnnotation &operator=(const ScopedAnnotation &) = delete;
};
#define SCOPED_ANNOTATION_RET(typ, ret) \
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.h b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
index f48be8e0a4fe08..6c3d40b9b26ed0 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.h
@@ -128,6 +128,9 @@ struct Processor {
struct ScopedGlobalProcessor {
ScopedGlobalProcessor();
~ScopedGlobalProcessor();
+
+ ScopedGlobalProcessor(const ScopedGlobalProcessor &) = delete;
+ ScopedGlobalProcessor &operator=(const ScopedGlobalProcessor &) = delete;
};
#endif
@@ -398,6 +401,9 @@ struct ScopedIgnoreInterceptors {
cur_thread()->ignore_interceptors--;
#endif
}
+ ScopedIgnoreInterceptors(const ScopedIgnoreInterceptors &) = delete;
+ ScopedIgnoreInterceptors &operator=(const ScopedIgnoreInterceptors &) =
+ delete;
};
const char *GetObjectTypeFromTag(uptr tag);
@@ -650,6 +656,9 @@ class SlotLocker {
private:
ThreadState *thr_;
bool locked_;
+
+ SlotLocker(const SlotLocker &) = delete;
+ SlotLocker &operator=(const SlotLocker &) = delete;
};
class SlotUnlocker {
diff --git a/compiler-rt/lib/tsan/rtl/tsan_vector_clock.h b/compiler-rt/lib/tsan/rtl/tsan_vector_clock.h
index 51d98113d8e78a..5ba69aaf10a574 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_vector_clock.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_vector_clock.h
@@ -35,6 +35,8 @@ class VectorClock {
private:
VECTOR_ALIGNED Epoch clk_[kThreadSlotCount];
+
+ VectorClock(const VectorClock&) = delete;
};
ALWAYS_INLINE Epoch VectorClock::Get(Sid sid) const {
diff --git a/compiler-rt/lib/ubsan/ubsan_diag.h b/compiler-rt/lib/ubsan/ubsan_diag.h
index c836647c98f3c5..320962c9c69d3e 100644
--- a/compiler-rt/lib/ubsan/ubsan_diag.h
+++ b/compiler-rt/lib/ubsan/ubsan_diag.h
@@ -228,6 +228,9 @@ class ScopedReport {
Location SummaryLoc;
ErrorType Type;
+ ScopedReport(const ScopedReport &) = delete;
+ ScopedReport &operator=(const ScopedReport &) = delete;
+
public:
ScopedReport(ReportOptions Opts, Location SummaryLoc, ErrorType Type);
~ScopedReport();
diff --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
index 55e9903876b1d1..841eaa4693d50f 100644
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
@@ -654,6 +654,8 @@ class RuntimeCallInserter {
Function *OwnerFn = nullptr;
bool TrackInsertedCalls = false;
SmallVector<CallInst *> InsertedCalls;
+ RuntimeCallInserter(const RuntimeCallInserter &) = delete;
+ RuntimeCallInserter &operator=(const RuntimeCallInserter &) = delete;
public:
RuntimeCallInserter(Function &Fn) : OwnerFn(&Fn) {
@@ -829,6 +831,9 @@ struct AddressSanitizer {
Pass->LocalDynamicShadow = null...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/112844
More information about the llvm-commits
mailing list