Revert "Enable deprecated-copy-dtor warning."
This reverts commit e990fcc4b0c7d2d7b7e5350970da538a8c7a6c20.
Reason for revert: Build-Win-Clang-x86_64-Release-Shared
Original change's description:
> Enable deprecated-copy-dtor warning.
>
> In C++11 a user declared destructor still requires the compiler to
> implicitly default the copy constructor and copy assignment operator,
> but this is deprecated. Note that a user declared destructor suppresses
> the move constructor and move assignment operator; a user declared
> destructor exists if any '~Foo' method declaration appears inside
> 'class Foo' (even if defaulted); if the copy and move operations are the
> same then copy operations that take 'const Foo&' will do fine double
> duty as move operations.
>
> Clang seems to have an issue with this warning, in that it does not
> appear to distinguish between compiler defaulted and user defaulted
> destructors. As a result, it does not always warn when it should.
> There may yet be places in the code where a move operation is desired
> but may be suppressed because the implicitly defaulted moves are not
> declared because a destructor has been declared.
>
> This wraps dawn and shaderc configs in 'third_party' so that their
> headers will be included through '-isystem' in order to avoid the
> warnings generated by including their headers.
>
> Change-Id: I681524cd890d86305aa99b6b765a52113b4dfa4b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280406
> Reviewed-by: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>
TBR=mtklein@google.com,bsalomon@google.com,bungeman@google.com
Change-Id: Icd6a2487637d21fcf7c4c7ab7cba7a8adfda5afd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280836
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 1168db9..1ad7a5a 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -463,8 +463,8 @@
"-Wdeprecated-attributes",
"-Wdeprecated-comma-subscript",
"-Wdeprecated-copy",
- "-Wdeprecated-copy-dtor",
+ #"-Wdeprecated-copy-dtor",
#"-Wdeprecated-declarations",
"-Wdeprecated-dynamic-exception-spec",
"-Wdeprecated-enum-compare",
diff --git a/include/gpu/GrDriverBugWorkarounds.h b/include/gpu/GrDriverBugWorkarounds.h
index 1b94f76..3f37034 100644
--- a/include/gpu/GrDriverBugWorkarounds.h
+++ b/include/gpu/GrDriverBugWorkarounds.h
@@ -26,25 +26,25 @@
enum GrDriverBugWorkaroundType {
#define GPU_OP(type, name) type,
- GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
#undef GPU_OP
- NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES
+ NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES
};
class SK_API GrDriverBugWorkarounds {
-public:
- GrDriverBugWorkarounds();
- GrDriverBugWorkarounds(const GrDriverBugWorkarounds&);
- GrDriverBugWorkarounds& operator=(const GrDriverBugWorkarounds&);
- ~GrDriverBugWorkarounds();
+ public:
+ GrDriverBugWorkarounds();
+ explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
- explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
+ GrDriverBugWorkarounds& operator=(const GrDriverBugWorkarounds&) = default;
- // Turn on any workarounds listed in |workarounds| (but don't turn any off).
- void applyOverrides(const GrDriverBugWorkarounds& workarounds);
+ // Turn on any workarounds listed in |workarounds| (but don't turn any off).
+ void applyOverrides(const GrDriverBugWorkarounds& workarounds);
+
+ ~GrDriverBugWorkarounds();
#define GPU_OP(type, name) bool name = false;
- GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
#undef GPU_OP
};
diff --git a/modules/skottie/src/Layer.cpp b/modules/skottie/src/Layer.cpp
index 1bd2c29..68cd916 100644
--- a/modules/skottie/src/Layer.cpp
+++ b/modules/skottie/src/Layer.cpp
@@ -284,7 +284,6 @@
}
}
-LayerBuilder::LayerBuilder(LayerBuilder&&) = default;
LayerBuilder::~LayerBuilder() = default;
bool LayerBuilder::isCamera() const {
diff --git a/modules/skottie/src/Layer.h b/modules/skottie/src/Layer.h
index e8d94a9..3a1f6f2 100644
--- a/modules/skottie/src/Layer.h
+++ b/modules/skottie/src/Layer.h
@@ -18,10 +18,6 @@
class LayerBuilder final {
public:
explicit LayerBuilder(const skjson::ObjectValue& jlayer);
- LayerBuilder(const LayerBuilder&) = delete;
- LayerBuilder& operator=(const LayerBuilder&) = delete;
- LayerBuilder(LayerBuilder&&);
- LayerBuilder& operator=(LayerBuilder&&) = delete;
~LayerBuilder();
int index() const { return fIndex; }
diff --git a/modules/skparagraph/src/Run.h b/modules/skparagraph/src/Run.h
index 5d17684..341aac2 100644
--- a/modules/skparagraph/src/Run.h
+++ b/modules/skparagraph/src/Run.h
@@ -42,12 +42,14 @@
class InternalLineMetrics;
class Run {
public:
+ Run() = default;
Run(ParagraphImpl* master,
const SkShaper::RunHandler::RunInfo& info,
size_t firstChar,
SkScalar lineHeight,
size_t index,
SkScalar shiftX);
+ ~Run() {}
void setMaster(ParagraphImpl* master) { fMaster = master; }
diff --git a/src/gpu/GrClip.h b/src/gpu/GrClip.h
index cbe0eb0..cc73c64 100644
--- a/src/gpu/GrClip.h
+++ b/src/gpu/GrClip.h
@@ -21,11 +21,6 @@
*/
class GrClip {
public:
- GrClip() = default;
- GrClip(const GrClip&) = default;
- GrClip& operator=(const GrClip&) = default;
- virtual ~GrClip() = default;
-
virtual bool quickContains(const SkRect&) const = 0;
virtual bool quickContains(const SkRRect& rrect) const {
return this->quickContains(rrect.getBounds());
@@ -43,6 +38,8 @@
virtual bool apply(GrRecordingContext*, GrRenderTargetContext*, bool useHWAA,
bool hasUserStencilSettings, GrAppliedClip*, SkRect* bounds) const = 0;
+ virtual ~GrClip() {}
+
/**
* This method quickly and conservatively determines whether the entire clip is equivalent to
* intersection with a rrect. This will only return true if the rrect does not fully contain
diff --git a/src/gpu/GrDriverBugWorkarounds.cpp b/src/gpu/GrDriverBugWorkarounds.cpp
index 6902453..e91623c 100644
--- a/src/gpu/GrDriverBugWorkarounds.cpp
+++ b/src/gpu/GrDriverBugWorkarounds.cpp
@@ -10,9 +10,6 @@
#include "include/core/SkTypes.h"
GrDriverBugWorkarounds::GrDriverBugWorkarounds() = default;
-GrDriverBugWorkarounds::GrDriverBugWorkarounds(const GrDriverBugWorkarounds&) = default;
-GrDriverBugWorkarounds& GrDriverBugWorkarounds::operator=(const GrDriverBugWorkarounds&) = default;
-GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;
GrDriverBugWorkarounds::GrDriverBugWorkarounds(
const std::vector<int>& enabled_driver_bug_workarounds) {
@@ -40,3 +37,5 @@
GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
#undef GPU_OP
}
+
+GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;
diff --git a/src/sksl/ir/SkSLIRNode.h b/src/sksl/ir/SkSLIRNode.h
index 3c6616a..52e5d9c 100644
--- a/src/sksl/ir/SkSLIRNode.h
+++ b/src/sksl/ir/SkSLIRNode.h
@@ -18,10 +18,10 @@
* version of the program (all types determined, everything validated), ready for code generation.
*/
struct IRNode {
- IRNode(int offset) : fOffset(offset) {}
- IRNode(const IRNode&) = default;
- IRNode& operator=(const IRNode&) = default;
- virtual ~IRNode() = default;
+ IRNode(int offset)
+ : fOffset(offset) {}
+
+ virtual ~IRNode() {}
#ifdef SK_DEBUG
virtual String description() const = 0;
diff --git a/src/sksl/ir/SkSLSymbol.h b/src/sksl/ir/SkSLSymbol.h
index c6f6b7d..4ee4d3d 100644
--- a/src/sksl/ir/SkSLSymbol.h
+++ b/src/sksl/ir/SkSLSymbol.h
@@ -26,7 +26,11 @@
};
Symbol(int offset, Kind kind, StringFragment name)
- : INHERITED(offset), fKind(kind), fName(name) {}
+ : INHERITED(offset)
+ , fKind(kind)
+ , fName(name) {}
+
+ virtual ~Symbol() {}
Kind fKind;
StringFragment fName;
diff --git a/third_party/dawn/BUILD.gn b/third_party/dawn/BUILD.gn
index 0197eed..f9d326d 100644
--- a/third_party/dawn/BUILD.gn
+++ b/third_party/dawn/BUILD.gn
@@ -14,7 +14,6 @@
import("../externals/dawn/generator/dawn_generator.gni")
import("../externals/dawn/scripts/dawn_features.gni")
-import("../third_party.gni")
###############################################################################
# dawn_platform
@@ -534,7 +533,7 @@
}
}
-third_party_config("libdawn_public") {
+config("libdawn_public") {
include_dirs = [
"$dawn_gen_root/src/include",
"$dawn_gen_root/src",
diff --git a/third_party/shaderc/BUILD.gn b/third_party/shaderc/BUILD.gn
index d939cd5..fb755c6 100644
--- a/third_party/shaderc/BUILD.gn
+++ b/third_party/shaderc/BUILD.gn
@@ -20,7 +20,7 @@
is_msvc = is_win && !is_clang
-third_party_config("shaderc_util_public") {
+config("shaderc_util_public") {
include_dirs = [ "${shaderc_root}/libshaderc_util/include" ]
}
@@ -62,7 +62,7 @@
]
}
-third_party_config("shaderc_public") {
+config("shaderc_public") {
include_dirs = [ "${shaderc_root}/libshaderc/include" ]
if (is_component_build) {
defines = [ "SHADERC_SHAREDLIB" ]
diff --git a/third_party/third_party.gni b/third_party/third_party.gni
index b0d1067..e519c26 100644
--- a/third_party/third_party.gni
+++ b/third_party/third_party.gni
@@ -3,16 +3,18 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-template("third_party_config") {
+template("third_party") {
enabled = !defined(invoker.enabled) || invoker.enabled
- config(target_name) {
+ config(target_name + "_public") {
if (enabled) {
- forward_variables_from(invoker, "*", [ "include_dirs" ])
cflags = []
+ if (defined(invoker.public_defines)) {
+ defines = invoker.public_defines
+ }
if (is_win) {
- include_dirs = invoker.include_dirs
+ include_dirs = invoker.public_include_dirs
if (is_clang) {
- foreach(dir, invoker.include_dirs) {
+ foreach(dir, invoker.public_include_dirs) {
cflags += [
"/imsvc",
rebase_path(dir),
@@ -20,7 +22,7 @@
}
}
} else {
- foreach(dir, invoker.include_dirs) {
+ foreach(dir, invoker.public_include_dirs) {
if (werror) {
cflags += [
"-isystem",
@@ -38,20 +40,6 @@
not_needed(invoker, "*")
}
}
-}
-
-template("third_party") {
- enabled = !defined(invoker.enabled) || invoker.enabled
- third_party_config(target_name + "_public") {
- if (enabled) {
- if (defined(invoker.public_defines)) {
- defines = invoker.public_defines
- }
- include_dirs = invoker.public_include_dirs
- } else {
- not_needed(invoker, "*")
- }
- }
# You can't make a static_library() without object files to archive,
# but we can treat targets without object files as a source_set().
diff --git a/tools/DDLPromiseImageHelper.h b/tools/DDLPromiseImageHelper.h
index b4e8ecf..f8e8dd6 100644
--- a/tools/DDLPromiseImageHelper.h
+++ b/tools/DDLPromiseImageHelper.h
@@ -139,6 +139,7 @@
, fOriginalUniqueID(originalUniqueID)
, fImageInfo(ii) {
}
+ ~PromiseImageInfo() {}
int index() const { return fIndex; }
uint32_t originalUniqueID() const { return fOriginalUniqueID; }