From 10d77293335b01ab97ef3271a3a0ea38dbccf843 Mon Sep 17 00:00:00 2001 From: PyTorch MergeBot Date: Wed, 6 Nov 2024 13:27:41 +0000 Subject: [PATCH] Revert "Enable cppcoreguidelines-special-member-functions (#139132)" This reverts commit a9b4989c726a29b4b89c64282e32b9e4fc0b7d68. Reverted https://github.com/pytorch/pytorch/pull/139132 on behalf of https://github.com/ZainRizvi due to Sorry but this fails on trunk. See inductor/test_mkldnn_pattern_matcher.py::TestPatternMatcher::test_smooth_quant_with_int_mm [GH job link](https://github.com/pytorch/pytorch/actions/runs/11699366379/job/32591132460) [HUD commit link](https://hud.pytorch.org/pytorch/pytorch/commit/22e89ea2aaa3e0ef0ec4504bd2dbf230447a6d2a) ([comment](https://github.com/pytorch/pytorch/pull/139132#issuecomment-2459743145)) --- .clang-tidy | 3 +-- aten/src/ATen/Context.h | 8 -------- aten/src/ATen/DynamicLibrary.h | 2 -- aten/src/ATen/SparseCsrTensorUtils.h | 6 ------ aten/src/ATen/TensorIterator.h | 1 - aten/src/ATen/ThreadLocalState.h | 4 ---- aten/src/ATen/core/Dict.h | 1 - aten/src/ATen/core/PythonFallbackKernel.h | 8 -------- aten/src/ATen/core/QuantizerBase.h | 2 +- aten/src/ATen/core/Tensor.h | 6 ------ aten/src/ATen/core/Vitals.h | 3 --- aten/src/ATen/core/dynamic_type.h | 5 ----- aten/src/ATen/core/jit_type.h | 2 +- aten/src/ATen/core/jit_type_base.h | 1 - aten/src/ATen/core/rref_interface.h | 1 - aten/src/ATen/core/type.cpp | 2 ++ aten/src/ATen/functorch/DynamicLayer.cpp | 6 ------ aten/src/ATen/quantized/Quantizer.cpp | 2 ++ aten/src/ATen/record_function.h | 6 ------ c10/core/impl/PythonDispatcherTLS.h | 4 ---- c10/test/util/Metaprogramming_test.cpp | 4 ++-- c10/test/util/ThreadLocal_test.cpp | 2 -- c10/test/util/intrusive_ptr_test.cpp | 1 - c10/test/util/logging_test.cpp | 1 - c10/test/util/typeid_test.cpp | 2 -- c10/util/DynamicCounter.cpp | 5 ----- c10/util/Exception.h | 4 ---- c10/util/LeftRight.h | 3 --- c10/util/order_preserving_flat_hash_map.h | 1 - torch/csrc/distributed/rpc/types.h | 4 ---- torch/csrc/dynamo/python_compiled_autograd.cpp | 4 ---- .../inductor/aoti_runner/model_container_runner_cuda.h | 1 - torch/csrc/lazy/core/ir.cpp | 2 ++ torch/csrc/lazy/core/ir.h | 2 +- torch/csrc/lazy/core/ir_metadata.h | 4 ---- torch/csrc/lazy/core/metrics.h | 4 ---- torch/csrc/lazy/core/tensor.h | 8 -------- torch/csrc/lazy/core/thread_pool.cpp | 4 ---- torch/csrc/lazy/core/thread_pool.h | 1 - torch/csrc/monitor/counters.h | 4 ---- torch/csrc/profiler/collection.cpp | 4 ---- torch/csrc/profiler/orchestration/observer.h | 4 ---- 42 files changed, 12 insertions(+), 130 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 5776dabe0072..3b03412a4050 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -29,6 +29,7 @@ cppcoreguidelines-*, -cppcoreguidelines-pro-type-static-cast-downcast, -cppcoreguidelines-pro-type-union-access, -cppcoreguidelines-pro-type-vararg, +-cppcoreguidelines-special-member-functions, -cppcoreguidelines-non-private-member-variables-in-classes, -facebook-hte-RelativeInclude, hicpp-exception-baseclass, @@ -63,7 +64,5 @@ readability-string-compare, HeaderFilterRegex: '^(aten/|c10/|torch/).*$' WarningsAsErrors: '*' CheckOptions: - cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor: true - cppcoreguidelines-special-member-functions.AllowImplicitlyDeletedCopyOrMove: true misc-header-include-cycle.IgnoredFilesList: 'format.h;ivalue.h;custom_class.h;Dict.h;List.h;IListRef.h' ... diff --git a/aten/src/ATen/Context.h b/aten/src/ATen/Context.h index e37fa9ea516c..40e843cbfa33 100644 --- a/aten/src/ATen/Context.h +++ b/aten/src/ATen/Context.h @@ -604,10 +604,6 @@ inline void manual_seed(uint64_t seed) { // NoTF32Guard disable_tf32; struct TORCH_API NoTF32Guard { NoTF32Guard(); - NoTF32Guard(NoTF32Guard&& other) = delete; - NoTF32Guard(const NoTF32Guard&) = delete; - NoTF32Guard& operator=(const NoTF32Guard&) = delete; - NoTF32Guard& operator=(NoTF32Guard&&) = delete; ~NoTF32Guard(); static bool should_disable_tf32(); @@ -617,10 +613,6 @@ struct TORCH_API NoTF32Guard { struct TORCH_API ROCmBackwardPassGuard { ROCmBackwardPassGuard(); - ROCmBackwardPassGuard(ROCmBackwardPassGuard&& other) = delete; - ROCmBackwardPassGuard(const ROCmBackwardPassGuard&) = delete; - ROCmBackwardPassGuard& operator=(const ROCmBackwardPassGuard&) = delete; - ROCmBackwardPassGuard& operator=(ROCmBackwardPassGuard&&) = delete; ~ROCmBackwardPassGuard(); static bool is_backward_pass(); }; diff --git a/aten/src/ATen/DynamicLibrary.h b/aten/src/ATen/DynamicLibrary.h index 061456c081e6..523a21985f22 100644 --- a/aten/src/ATen/DynamicLibrary.h +++ b/aten/src/ATen/DynamicLibrary.h @@ -16,8 +16,6 @@ namespace at { struct DynamicLibrary { AT_DISALLOW_COPY_AND_ASSIGN(DynamicLibrary); - DynamicLibrary(DynamicLibrary&& other) = delete; - DynamicLibrary& operator=(DynamicLibrary&&) = delete; TORCH_API DynamicLibrary( const char* name, diff --git a/aten/src/ATen/SparseCsrTensorUtils.h b/aten/src/ATen/SparseCsrTensorUtils.h index 3c6877083aee..2ec973013c49 100644 --- a/aten/src/ATen/SparseCsrTensorUtils.h +++ b/aten/src/ATen/SparseCsrTensorUtils.h @@ -155,12 +155,6 @@ class CheckSparseTensorInvariants { : old_state(at::globalContext().checkSparseTensorInvariants()) { at::globalContext().setCheckSparseTensorInvariants(state); } - CheckSparseTensorInvariants(CheckSparseTensorInvariants&& other) = delete; - CheckSparseTensorInvariants(const CheckSparseTensorInvariants&) = delete; - CheckSparseTensorInvariants& operator=(const CheckSparseTensorInvariants&) = - delete; - CheckSparseTensorInvariants& operator=(CheckSparseTensorInvariants&&) = - delete; ~CheckSparseTensorInvariants() { at::globalContext().setCheckSparseTensorInvariants(old_state); diff --git a/aten/src/ATen/TensorIterator.h b/aten/src/ATen/TensorIterator.h index 7bbd68b91ba8..471faf664e27 100644 --- a/aten/src/ATen/TensorIterator.h +++ b/aten/src/ATen/TensorIterator.h @@ -995,7 +995,6 @@ class TORCH_API TensorIteratorConfig final { /// TensorIterator that can use 32-bit indexing. Taken together the splits cover /// the original TensorIterator. struct TORCH_API SplitUntil32Bit { - // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) struct TORCH_API iterator { iterator() = default; iterator(const TensorIteratorBase& iter); diff --git a/aten/src/ATen/ThreadLocalState.h b/aten/src/ATen/ThreadLocalState.h index bb28175c5f42..2469cb1c3c47 100644 --- a/aten/src/ATen/ThreadLocalState.h +++ b/aten/src/ATen/ThreadLocalState.h @@ -96,10 +96,6 @@ class TORCH_API ThreadLocalStateGuard { // set the given state across the thread boundary ThreadLocalState::setThreadLocalState(state); } - ThreadLocalStateGuard(ThreadLocalStateGuard&& other) = delete; - ThreadLocalStateGuard(const ThreadLocalStateGuard&) = delete; - ThreadLocalStateGuard& operator=(const ThreadLocalStateGuard&) = delete; - ThreadLocalStateGuard& operator=(ThreadLocalStateGuard&&) = delete; ~ThreadLocalStateGuard() { // restore previously set variables diff --git a/aten/src/ATen/core/Dict.h b/aten/src/ATen/core/Dict.h index d187d7b7c116..a1d4da07520f 100644 --- a/aten/src/ATen/core/Dict.h +++ b/aten/src/ATen/core/Dict.h @@ -206,7 +206,6 @@ template Dict toGenericDict(Dict -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class Dict final { private: static_assert((std::is_same_v && std::is_same_v) || guts::typelist::contains::value, "Invalid Key type for Dict. We only support int64_t, double, bool, and string."); diff --git a/aten/src/ATen/core/PythonFallbackKernel.h b/aten/src/ATen/core/PythonFallbackKernel.h index 1d2b613166d3..67f24795eeb5 100644 --- a/aten/src/ATen/core/PythonFallbackKernel.h +++ b/aten/src/ATen/core/PythonFallbackKernel.h @@ -6,10 +6,6 @@ namespace at::impl { struct TORCH_API RestorePythonTLSSnapshot { RestorePythonTLSSnapshot(); - RestorePythonTLSSnapshot(RestorePythonTLSSnapshot&& other) = delete; - RestorePythonTLSSnapshot(const RestorePythonTLSSnapshot&) = delete; - RestorePythonTLSSnapshot& operator=(const RestorePythonTLSSnapshot&) = delete; - RestorePythonTLSSnapshot& operator=(RestorePythonTLSSnapshot&&) = delete; ~RestorePythonTLSSnapshot(); private: @@ -22,10 +18,6 @@ private: struct TORCH_API MaybeSetTLSOnEntryGuard { public: MaybeSetTLSOnEntryGuard(); - MaybeSetTLSOnEntryGuard(MaybeSetTLSOnEntryGuard&& other) = delete; - MaybeSetTLSOnEntryGuard(const MaybeSetTLSOnEntryGuard&) = delete; - MaybeSetTLSOnEntryGuard& operator=(const MaybeSetTLSOnEntryGuard&) = delete; - MaybeSetTLSOnEntryGuard& operator=(MaybeSetTLSOnEntryGuard&&) = delete; ~MaybeSetTLSOnEntryGuard(); private: diff --git a/aten/src/ATen/core/QuantizerBase.h b/aten/src/ATen/core/QuantizerBase.h index a56ead7a30c6..0d2eaeece889 100644 --- a/aten/src/ATen/core/QuantizerBase.h +++ b/aten/src/ATen/core/QuantizerBase.h @@ -40,7 +40,7 @@ struct TORCH_API Quantizer : public c10::intrusive_ptr_target { // NOLINTNEXTLINE(cppcoreguidelines-avoid-const-or-ref-data-members) const ScalarType scalar_type_; explicit Quantizer(ScalarType scalar_type) : scalar_type_(scalar_type) {} - ~Quantizer() override = default; + ~Quantizer() override; // Copied from torch/csrc/jit/ir/scope.h QuantizerPtr intrusive_from_this() { diff --git a/aten/src/ATen/core/Tensor.h b/aten/src/ATen/core/Tensor.h index 63b707767d34..de887a024c22 100644 --- a/aten/src/ATen/core/Tensor.h +++ b/aten/src/ATen/core/Tensor.h @@ -4,7 +4,6 @@ #include namespace at { -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class TORCH_API OptionalTensorRef { public: OptionalTensorRef() = default; @@ -21,7 +20,6 @@ class TORCH_API OptionalTensorRef { OptionalTensorRef(const OptionalTensorRef& rhs) : ref_(Tensor::unsafe_borrow_t{}, rhs.ref_) {} - OptionalTensorRef(OptionalTensorRef&& rhs) = default; OptionalTensorRef& operator=(OptionalTensorRef rhs) { std::swap(ref_, rhs.ref_); return *this; @@ -61,10 +59,6 @@ class TORCH_API TensorRef { TensorRef(const TensorBase& src) : ref_(Tensor::unsafe_borrow_t{}, src) {} - TensorRef(TensorRef&& other) = default; - TensorRef(const TensorRef&) = default; - TensorRef& operator=(const TensorRef&) = default; - TensorRef& operator=(TensorRef&&) = default; const Tensor& operator*() const & { return ref_; diff --git a/aten/src/ATen/core/Vitals.h b/aten/src/ATen/core/Vitals.h index 7ec213938d56..8a7a51e81e1d 100644 --- a/aten/src/ATen/core/Vitals.h +++ b/aten/src/ATen/core/Vitals.h @@ -39,8 +39,6 @@ struct TORCH_API TorchVital { explicit TorchVital(std::string n) : name(std::move(n)) {} TorchVital(const TorchVital&) = default; TorchVital(TorchVital&&) = default; - TorchVital& operator=(const TorchVital&) = default; - TorchVital& operator=(TorchVital&&) = default; TorchVital() = delete; TorchVitalAttr& create(const std::string& attr); @@ -73,7 +71,6 @@ class TORCH_API APIVitals { APIVitals(APIVitals&& other) = delete; APIVitals& operator=(const APIVitals&) = delete; APIVitals& operator=(APIVitals&&) = delete; - ~APIVitals() = default; private: std::unordered_map name_map_; diff --git a/aten/src/ATen/core/dynamic_type.h b/aten/src/ATen/core/dynamic_type.h index 697fcec39e34..4ad833a295b1 100644 --- a/aten/src/ATen/core/dynamic_type.h +++ b/aten/src/ATen/core/dynamic_type.h @@ -159,11 +159,6 @@ class DynamicType : public SharedType { explicit DynamicType(Tag, Arguments); explicit DynamicType(Tag, std::string_view, Arguments); - DynamicType(DynamicType&& other) = delete; - DynamicType(const DynamicType&) = delete; - DynamicType& operator=(const DynamicType&) = delete; - DynamicType& operator=(DynamicType&&) = delete; - TypePtr containedType(size_t) const override; size_t containedTypeSize() const override; Tag tag() const { diff --git a/aten/src/ATen/core/jit_type.h b/aten/src/ATen/core/jit_type.h index 58d50de74fae..5951b4763be3 100644 --- a/aten/src/ATen/core/jit_type.h +++ b/aten/src/ATen/core/jit_type.h @@ -2204,7 +2204,7 @@ struct TORCH_API InterfaceType : public NamedType { return is_module_; } static const TypeKind Kind = TypeKind::InterfaceType; - ~InterfaceType() override = default; + ~InterfaceType() override; private: InterfaceType(QualifiedName name, bool is_module); static bool isSubTypeImpl( diff --git a/aten/src/ATen/core/jit_type_base.h b/aten/src/ATen/core/jit_type_base.h index de440787ee68..8904cd7bc431 100644 --- a/aten/src/ATen/core/jit_type_base.h +++ b/aten/src/ATen/core/jit_type_base.h @@ -227,7 +227,6 @@ struct TORCH_API Type { SingletonOrSharedTypePtr(SingletonOrSharedTypePtr&&) noexcept = default; SingletonOrSharedTypePtr& operator=(const SingletonOrSharedTypePtr&) = default; SingletonOrSharedTypePtr& operator=(SingletonOrSharedTypePtr&&) noexcept = default; - ~SingletonOrSharedTypePtr() = default; T* get() const { return repr_.isSharedAndNonNull() ? repr_.shared_.repr_.get() : static_cast(repr_.rawRepr().first); diff --git a/aten/src/ATen/core/rref_interface.h b/aten/src/ATen/core/rref_interface.h index 70273f168d93..f0749d368792 100644 --- a/aten/src/ATen/core/rref_interface.h +++ b/aten/src/ATen/core/rref_interface.h @@ -17,7 +17,6 @@ class C10_EXPORT RRefInterface : public c10::intrusive_ptr_target { // counting. RRefInterface(const RRefInterface& other) = delete; RRefInterface(RRefInterface&& other) = delete; - RRefInterface& operator=(const RRefInterface& other) = delete; RRefInterface& operator=(RRefInterface&& other) = delete; ~RRefInterface() override = default; diff --git a/aten/src/ATen/core/type.cpp b/aten/src/ATen/core/type.cpp index 164ea6d44f58..92c30e6ec843 100644 --- a/aten/src/ATen/core/type.cpp +++ b/aten/src/ATen/core/type.cpp @@ -1037,6 +1037,8 @@ InterfaceType::InterfaceType(QualifiedName name, bool is_module) methods_(std::make_shared>()), is_module_(is_module) {} +InterfaceType::~InterfaceType() = default; + bool containsAnyType(const TypePtr& type) { std::vector to_scan = { type }; while (!to_scan.empty()) { diff --git a/aten/src/ATen/functorch/DynamicLayer.cpp b/aten/src/ATen/functorch/DynamicLayer.cpp index 9bdf155affc2..81b82f2556c1 100644 --- a/aten/src/ATen/functorch/DynamicLayer.cpp +++ b/aten/src/ATen/functorch/DynamicLayer.cpp @@ -202,8 +202,6 @@ struct SaveLocalDispatchKeySet { } SaveLocalDispatchKeySet(const SaveLocalDispatchKeySet&) = delete; SaveLocalDispatchKeySet& operator=(const SaveLocalDispatchKeySet&) = delete; - SaveLocalDispatchKeySet(SaveLocalDispatchKeySet&&) = delete; - SaveLocalDispatchKeySet& operator=(SaveLocalDispatchKeySet&&) = delete; }; const std::vector& getDynamicLayerStack() { @@ -408,10 +406,6 @@ static void dump_local_tls() { struct WithoutTop { WithoutTop(); - WithoutTop(WithoutTop&& other) = delete; - WithoutTop(const WithoutTop&) = delete; - WithoutTop& operator=(const WithoutTop&) = delete; - WithoutTop& operator=(WithoutTop&&) = delete; ~WithoutTop(); DynamicLayer layer_; }; diff --git a/aten/src/ATen/quantized/Quantizer.cpp b/aten/src/ATen/quantized/Quantizer.cpp index fa48b33ce7c0..ef8f8deb4973 100644 --- a/aten/src/ATen/quantized/Quantizer.cpp +++ b/aten/src/ATen/quantized/Quantizer.cpp @@ -313,6 +313,8 @@ Tensor& PerChannelAffineFloatQParamsQuantizer::dequantize_out( return rtensor; } +Quantizer::~Quantizer() = default; + C10_EXPORT void set_quantizer_(const Tensor& self, ConstQuantizerPtr quantizer) { get_qtensorimpl(self)->set_quantizer_(quantizer); } diff --git a/aten/src/ATen/record_function.h b/aten/src/ATen/record_function.h index 52115b4a65af..15130c913675 100644 --- a/aten/src/ATen/record_function.h +++ b/aten/src/ATen/record_function.h @@ -353,8 +353,6 @@ struct TORCH_API RecordFunction { RecordFunction(const RecordFunction&) = delete; RecordFunction& operator=(const RecordFunction&) = delete; - RecordFunction(RecordFunction&&) = delete; - RecordFunction& operator=(RecordFunction&&) = delete; const char* name() const; @@ -766,10 +764,6 @@ class TORCH_API RecordFunctionGuard { enableRecordFunction(is_enabled); } - RecordFunctionGuard(RecordFunctionGuard&& other) = delete; - RecordFunctionGuard(const RecordFunctionGuard&) = delete; - RecordFunctionGuard& operator=(const RecordFunctionGuard&) = delete; - RecordFunctionGuard& operator=(RecordFunctionGuard&&) = delete; virtual ~RecordFunctionGuard() { enableRecordFunction(prev_value_); } diff --git a/c10/core/impl/PythonDispatcherTLS.h b/c10/core/impl/PythonDispatcherTLS.h index 7b91aab686ec..12c0677f36fd 100644 --- a/c10/core/impl/PythonDispatcherTLS.h +++ b/c10/core/impl/PythonDispatcherTLS.h @@ -16,10 +16,6 @@ struct C10_API DisablePythonDispatcher { PythonDispatcherTLS::set_state({}); } - DisablePythonDispatcher(DisablePythonDispatcher&& other) = delete; - DisablePythonDispatcher(const DisablePythonDispatcher&) = delete; - DisablePythonDispatcher& operator=(const DisablePythonDispatcher&) = delete; - DisablePythonDispatcher& operator=(DisablePythonDispatcher&&) = delete; ~DisablePythonDispatcher() { PythonDispatcherTLS::set_state(old_); } diff --git a/c10/test/util/Metaprogramming_test.cpp b/c10/test/util/Metaprogramming_test.cpp index a7bca7a5b511..ad301462bd51 100644 --- a/c10/test/util/Metaprogramming_test.cpp +++ b/c10/test/util/Metaprogramming_test.cpp @@ -5,7 +5,7 @@ using namespace c10::guts; -// NOLINTBEGIN(modernize*, cppcoreguidelines-special-member-functions) +// NOLINTBEGIN(modernize*) namespace { namespace test_function_traits { @@ -302,4 +302,4 @@ TEST(MetaprogrammingTest, TupleMap_canBeUsedWithAutoLambdas) { } // namespace test_tuple_map } // namespace -// NOLINTEND(modernize*, cppcoreguidelines-special-member-functions) +// NOLINTEND(modernize*) diff --git a/c10/test/util/ThreadLocal_test.cpp b/c10/test/util/ThreadLocal_test.cpp index 29e748e14890..bbc10c0c52e4 100644 --- a/c10/test/util/ThreadLocal_test.cpp +++ b/c10/test/util/ThreadLocal_test.cpp @@ -148,7 +148,6 @@ TEST(ThreadLocalTest, TestThreadWithGlobalScopeVar) { TEST(ThreadLocalTest, TestObjectsAreReleased) { static std::atomic ctors{0}; static std::atomic dtors{0}; - // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) struct A { A() { ++ctors; @@ -184,7 +183,6 @@ TEST(ThreadLocalTest, TestObjectsAreReleased) { TEST(ThreadLocalTest, TestObjectsAreReleasedByNonstaticThreadLocal) { static std::atomic ctors(0); static std::atomic dtors(0); - // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) struct A { A() { ++ctors; diff --git a/c10/test/util/intrusive_ptr_test.cpp b/c10/test/util/intrusive_ptr_test.cpp index 47e7942950ef..14c12f422f2c 100644 --- a/c10/test/util/intrusive_ptr_test.cpp +++ b/c10/test/util/intrusive_ptr_test.cpp @@ -45,7 +45,6 @@ struct SomeChildClass : SomeBaseClass { SomeChildClass(int v) : SomeBaseClass(v) {} }; -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class DestructableMock : public intrusive_ptr_target { public: DestructableMock(bool* resourcesReleased, bool* wasDestructed) diff --git a/c10/test/util/logging_test.cpp b/c10/test/util/logging_test.cpp index c06dfb43d46c..5798b37c18e3 100644 --- a/c10/test/util/logging_test.cpp +++ b/c10/test/util/logging_test.cpp @@ -81,7 +81,6 @@ TEST( } namespace { -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) struct Noncopyable { int x; diff --git a/c10/test/util/typeid_test.cpp b/c10/test/util/typeid_test.cpp index 8e78ec84e530..7587d5eefdbd 100644 --- a/c10/test/util/typeid_test.cpp +++ b/c10/test/util/typeid_test.cpp @@ -70,7 +70,6 @@ TEST(TypeMetaTest, TypeMeta) { EXPECT_NE(bar_meta.name().find("TypeMetaTestBar"), c10::string_view::npos); } -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class ClassAllowAssignment { public: ClassAllowAssignment() = default; @@ -79,7 +78,6 @@ class ClassAllowAssignment { int x{42}; }; -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class ClassNoAssignment { public: ClassNoAssignment() = default; diff --git a/c10/util/DynamicCounter.cpp b/c10/util/DynamicCounter.cpp index cd9decfc41f3..0b7906af1b12 100644 --- a/c10/util/DynamicCounter.cpp +++ b/c10/util/DynamicCounter.cpp @@ -52,11 +52,6 @@ struct DynamicCounter::Guard { } } - Guard(Guard&& other) = delete; - Guard(const Guard&) = delete; - Guard& operator=(const Guard&) = delete; - Guard& operator=(Guard&&) = delete; - ~Guard() { for (const auto& backend : backends_) { backend->unregisterCounter(key_); diff --git a/c10/util/Exception.h b/c10/util/Exception.h index e83b65cc5efc..275526cf4008 100644 --- a/c10/util/Exception.h +++ b/c10/util/Exception.h @@ -205,10 +205,6 @@ class C10_API WarningHandlerGuard { : prev_handler_(c10::WarningUtils::get_warning_handler()) { c10::WarningUtils::set_warning_handler(new_handler); } - WarningHandlerGuard(WarningHandlerGuard&& other) = delete; - WarningHandlerGuard(const WarningHandlerGuard&) = delete; - WarningHandlerGuard& operator=(const WarningHandlerGuard&) = delete; - WarningHandlerGuard& operator=(WarningHandlerGuard&&) = delete; ~WarningHandlerGuard() { c10::WarningUtils::set_warning_handler(prev_handler_); } diff --git a/c10/util/LeftRight.h b/c10/util/LeftRight.h index 0ad9a1b34610..58145b2c779c 100644 --- a/c10/util/LeftRight.h +++ b/c10/util/LeftRight.h @@ -18,8 +18,6 @@ struct IncrementRAII final { ~IncrementRAII() { _counter->fetch_sub(1); } - IncrementRAII(IncrementRAII&&) = delete; - IncrementRAII& operator=(IncrementRAII&&) = delete; private: std::atomic* _counter; @@ -203,7 +201,6 @@ class RWSafeLeftRightWrapper final { RWSafeLeftRightWrapper(RWSafeLeftRightWrapper&&) noexcept = delete; RWSafeLeftRightWrapper& operator=(const RWSafeLeftRightWrapper&) = delete; RWSafeLeftRightWrapper& operator=(RWSafeLeftRightWrapper&&) noexcept = delete; - ~RWSafeLeftRightWrapper() = default; template // NOLINTNEXTLINE(cppcoreguidelines-missing-std-forward) diff --git a/c10/util/order_preserving_flat_hash_map.h b/c10/util/order_preserving_flat_hash_map.h index fd8196432c99..021995600344 100644 --- a/c10/util/order_preserving_flat_hash_map.h +++ b/c10/util/order_preserving_flat_hash_map.h @@ -139,7 +139,6 @@ struct KeyOrValueEquality : functor_storage { }; static constexpr int8_t min_lookups = 4; template -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) struct sherwood_v3_entry { // NOLINTNEXTLINE(modernize-use-equals-default) sherwood_v3_entry() {} diff --git a/torch/csrc/distributed/rpc/types.h b/torch/csrc/distributed/rpc/types.h index 82cf528bb9bd..7844ce270cd4 100644 --- a/torch/csrc/distributed/rpc/types.h +++ b/torch/csrc/distributed/rpc/types.h @@ -13,10 +13,6 @@ TORCH_API void disableJitRRefPickle(); struct TORCH_API JitRRefPickleGuard { JitRRefPickleGuard(); - JitRRefPickleGuard(JitRRefPickleGuard&& other) = delete; - JitRRefPickleGuard(const JitRRefPickleGuard&) = delete; - JitRRefPickleGuard& operator=(const JitRRefPickleGuard&) = delete; - JitRRefPickleGuard& operator=(JitRRefPickleGuard&&) = delete; ~JitRRefPickleGuard(); }; diff --git a/torch/csrc/dynamo/python_compiled_autograd.cpp b/torch/csrc/dynamo/python_compiled_autograd.cpp index 8bd192cde7b1..33dac77d7434 100644 --- a/torch/csrc/dynamo/python_compiled_autograd.cpp +++ b/torch/csrc/dynamo/python_compiled_autograd.cpp @@ -543,10 +543,6 @@ static PyObject* call_end_capture(PyObject* self, const variable_list& inputs) { struct ClosingTHPObjectPtr : public THPObjectPtr { ClosingTHPObjectPtr(PyObject* o) : THPObjectPtr(o) {} - ClosingTHPObjectPtr(ClosingTHPObjectPtr&& other) = default; - ClosingTHPObjectPtr(const ClosingTHPObjectPtr&) = delete; - ClosingTHPObjectPtr& operator=(const ClosingTHPObjectPtr&) = delete; - ClosingTHPObjectPtr& operator=(ClosingTHPObjectPtr&&) = default; ~ClosingTHPObjectPtr() { if (PyErr_Occurred()) { // do nothing, do not attempt to close diff --git a/torch/csrc/inductor/aoti_runner/model_container_runner_cuda.h b/torch/csrc/inductor/aoti_runner/model_container_runner_cuda.h index 2018cf7573e7..5db82bf41366 100644 --- a/torch/csrc/inductor/aoti_runner/model_container_runner_cuda.h +++ b/torch/csrc/inductor/aoti_runner/model_container_runner_cuda.h @@ -8,7 +8,6 @@ namespace torch::inductor { // NOTICE: Following APIs are subject to change due to active development // We provide NO BC guarantee for these APIs -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class TORCH_API AOTIModelContainerRunnerCuda : public AOTIModelContainerRunner { public: // @param device_str: cuda device string, e.g. "cuda", "cuda:0" diff --git a/torch/csrc/lazy/core/ir.cpp b/torch/csrc/lazy/core/ir.cpp index 033e4f5cf00b..fe9cfba2556c 100644 --- a/torch/csrc/lazy/core/ir.cpp +++ b/torch/csrc/lazy/core/ir.cpp @@ -98,6 +98,8 @@ Node::Node(OpKind op, Shape shape, size_t num_outputs) : Node(op, num_outputs) { shapes_.push_back(std::move(shape)); } +Node::~Node() = default; + // Retrieves the full shape of the IR Node. c10::ArrayRef Node::shapes() const { return shapes_; diff --git a/torch/csrc/lazy/core/ir.h b/torch/csrc/lazy/core/ir.h index 8e384e7982bd..dd244b7442b2 100644 --- a/torch/csrc/lazy/core/ir.h +++ b/torch/csrc/lazy/core/ir.h @@ -101,7 +101,7 @@ class TORCH_API Node { // Construct node with shape and no operands Node(OpKind op, Shape shape, size_t num_outputs = 1); - virtual ~Node() = default; + virtual ~Node(); const OpKind& op() const { return op_; diff --git a/torch/csrc/lazy/core/ir_metadata.h b/torch/csrc/lazy/core/ir_metadata.h index 7e73a5931819..aeaacb596e0a 100644 --- a/torch/csrc/lazy/core/ir_metadata.h +++ b/torch/csrc/lazy/core/ir_metadata.h @@ -38,10 +38,6 @@ struct TORCH_API MetaData { struct TORCH_API ScopePusher { explicit ScopePusher(const std::string& name); ~ScopePusher(); - ScopePusher(ScopePusher&& other) = delete; - ScopePusher(const ScopePusher&) = delete; - ScopePusher& operator=(const ScopePusher&) = delete; - ScopePusher& operator=(ScopePusher&&) = delete; static void ResetScopes(); }; diff --git a/torch/csrc/lazy/core/metrics.h b/torch/csrc/lazy/core/metrics.h index 05b525778d9a..191baa5eb176 100644 --- a/torch/csrc/lazy/core/metrics.h +++ b/torch/csrc/lazy/core/metrics.h @@ -258,10 +258,6 @@ class TORCH_API TimedSection { public: explicit TimedSection(Metric* metric) : metric_(metric), start_(NowNs()) {} - TimedSection(TimedSection&& other) = delete; - TimedSection(const TimedSection&) = delete; - TimedSection& operator=(const TimedSection&) = delete; - TimedSection& operator=(TimedSection&&) = delete; ~TimedSection() { int64_t now = NowNs(); metric_->AddSample(now, static_cast(now - start_)); diff --git a/torch/csrc/lazy/core/tensor.h b/torch/csrc/lazy/core/tensor.h index b739399b6bbd..dfa317d3b81f 100644 --- a/torch/csrc/lazy/core/tensor.h +++ b/torch/csrc/lazy/core/tensor.h @@ -42,18 +42,12 @@ class TORCH_API LazyTensor : public c10::intrusive_ptr_target { Data(BackendDevice device) : device(std::move(device)), unique_id(GetNextTensorId()) {} - Data(Data&& other) = delete; - Data(const Data&) = delete; - Data& operator=(const Data&) = delete; - Data& operator=(Data&&) = delete; virtual ~Data(); BackendDataPtr handle; Value ir_value; std::optional tensor_data; - // NOLINTNEXTLINE(cppcoreguidelines-avoid-const-or-ref-data-members) const BackendDevice device; - // NOLINTNEXTLINE(cppcoreguidelines-avoid-const-or-ref-data-members) const int64_t unique_id = 0; size_t generation = 1; }; @@ -74,8 +68,6 @@ class TORCH_API LazyTensor : public c10::intrusive_ptr_target { LazyTensor() = delete; LazyTensor(const LazyTensor&) = default; LazyTensor(LazyTensor&&) noexcept = default; - LazyTensor& operator=(const LazyTensor&) = default; - LazyTensor& operator=(LazyTensor&&) noexcept = default; ~LazyTensor() override = default; diff --git a/torch/csrc/lazy/core/thread_pool.cpp b/torch/csrc/lazy/core/thread_pool.cpp index e61827e5b0fd..3f87aaa96b51 100644 --- a/torch/csrc/lazy/core/thread_pool.cpp +++ b/torch/csrc/lazy/core/thread_pool.cpp @@ -26,10 +26,6 @@ class ThreadPool { }); } } - ThreadPool(const ThreadPool&) = delete; - ThreadPool(ThreadPool&&) = delete; - ThreadPool& operator=(const ThreadPool&) = delete; - ThreadPool& operator=(ThreadPool&&) = delete; ~ThreadPool() { { diff --git a/torch/csrc/lazy/core/thread_pool.h b/torch/csrc/lazy/core/thread_pool.h index 2e0ae8f89d8e..8caa1e0bbc45 100644 --- a/torch/csrc/lazy/core/thread_pool.h +++ b/torch/csrc/lazy/core/thread_pool.h @@ -13,7 +13,6 @@ namespace torch::lazy { -// NOLINTNEXTLINE(cppcoreguidelines-special-member-functions) class TORCH_API Completion { public: class Data; diff --git a/torch/csrc/monitor/counters.h b/torch/csrc/monitor/counters.h index 986dfb7b85ca..bfb1a463b713 100644 --- a/torch/csrc/monitor/counters.h +++ b/torch/csrc/monitor/counters.h @@ -122,10 +122,6 @@ class Stat { maxSamples_(maxSamples) { detail::registerStat(this); } - Stat(const Stat&) = delete; - Stat(Stat&&) = delete; - Stat& operator=(const Stat&) = delete; - Stat& operator=(Stat&&) = delete; virtual ~Stat() { { diff --git a/torch/csrc/profiler/collection.cpp b/torch/csrc/profiler/collection.cpp index c5b0d9539d4f..eefe5621a293 100644 --- a/torch/csrc/profiler/collection.cpp +++ b/torch/csrc/profiler/collection.cpp @@ -402,10 +402,6 @@ struct StealOrDefault { explicit StealOrDefault(T& container) : container_{container}, it_{container.begin()} {} - StealOrDefault(const StealOrDefault&) = delete; - StealOrDefault(StealOrDefault&&) = delete; - StealOrDefault& operator=(const StealOrDefault&) = delete; - StealOrDefault& operator=(StealOrDefault&&) = delete; ~StealOrDefault() { container_.get().clear(); } diff --git a/torch/csrc/profiler/orchestration/observer.h b/torch/csrc/profiler/orchestration/observer.h index 272e2e4f9d5f..c3beb4cca4d0 100644 --- a/torch/csrc/profiler/orchestration/observer.h +++ b/torch/csrc/profiler/orchestration/observer.h @@ -128,10 +128,6 @@ struct TORCH_API ProfilerConfig { // ---------------------------------------------------------------------------- struct TORCH_API ProfilerStateBase : public c10::MemoryReportingInfoBase { explicit ProfilerStateBase(ProfilerConfig config); - ProfilerStateBase(const ProfilerStateBase&) = delete; - ProfilerStateBase(ProfilerStateBase&&) = delete; - ProfilerStateBase& operator=(const ProfilerStateBase&) = delete; - ProfilerStateBase& operator=(ProfilerStateBase&&) = delete; ~ProfilerStateBase() override; static ProfilerStateBase* get(bool global);