From 1e9a7e8b29b374f4311e96213b495c80afcbfafe Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Wed, 22 Jan 2025 08:59:10 +0400 Subject: [PATCH] Fixed C++ RTTI for Core base classes (#28555) Android support: {ABD03686-78FD-4F33-A2E8-C3BE1C030D5C} in header files threated as an inline definition, which typically results in a "weak" symbol "weak" symbols are not exported from dll/so libs. To make these symbols "strong", we moved the definitions to ".cpp" files. --- .../include/low_precision/cleanup_transformation.hpp | 1 - .../low_precision/fuse_elementwise_to_fake_quantize.hpp | 1 - .../include/low_precision/layer_transformation.hpp | 1 - .../low_precision/rt_info/shared_value_attribute.hpp | 2 -- src/core/include/openvino/core/any.hpp | 4 +--- src/core/include/openvino/core/attribute_adapter.hpp | 2 +- src/core/include/openvino/core/attribute_visitor.hpp | 2 +- src/core/include/openvino/core/model.hpp | 2 +- src/core/include/openvino/core/runtime_attribute.hpp | 2 +- .../include/openvino/op/util/multi_subgraph_base.hpp | 8 ++++---- src/core/include/openvino/op/util/variable_extension.hpp | 2 +- src/core/include/openvino/pass/pass.hpp | 2 +- src/core/include/openvino/pass/pattern/matcher.hpp | 5 +++-- src/core/include/openvino/runtime/allocator.hpp | 4 ++-- .../openvino/reference/utils/philox_converter.hpp | 2 +- .../openvino/reference/utils/philox_generator.hpp | 2 +- src/core/src/any.cpp | 2 ++ src/core/src/attribute_visitor.cpp | 4 ++++ src/core/src/model.cpp | 2 ++ src/core/src/op/util/multi_subgraph_base.cpp | 4 ++++ src/core/src/op/util/variable_extension.cpp | 9 +++++++++ src/core/src/pass/pass.cpp | 2 ++ src/core/src/pattern/matcher.cpp | 2 ++ src/core/src/runtime/allocator.cpp | 2 ++ src/core/src/runtime_attribute.cpp | 2 ++ .../common/include/openvino/frontend/decoder.hpp | 7 ++----- .../common/include/openvino/frontend/graph_iterator.hpp | 3 --- .../common/include/openvino/frontend/input_model.hpp | 2 +- .../common/include/openvino/frontend/node_context.hpp | 2 +- src/frontends/common/include/openvino/frontend/place.hpp | 2 +- src/frontends/common/src/decoder.cpp | 2 +- src/frontends/common/src/input_model.cpp | 2 ++ src/frontends/common/src/node_context.cpp | 9 +++++++++ src/frontends/common/src/variable.cpp | 2 +- 34 files changed, 65 insertions(+), 37 deletions(-) create mode 100644 src/core/src/op/util/variable_extension.cpp create mode 100644 src/frontends/common/src/node_context.cpp diff --git a/src/common/low_precision_transformations/include/low_precision/cleanup_transformation.hpp b/src/common/low_precision_transformations/include/low_precision/cleanup_transformation.hpp index 503c519ea60f22..677e14fd370a46 100644 --- a/src/common/low_precision_transformations/include/low_precision/cleanup_transformation.hpp +++ b/src/common/low_precision_transformations/include/low_precision/cleanup_transformation.hpp @@ -17,7 +17,6 @@ namespace low_precision { class LP_TRANSFORMATIONS_API CleanupTransformation : public LayerTransformation { public: CleanupTransformation(const Params& params); - virtual ~CleanupTransformation() = default; bool canBeTransformed(const TransformationContext& context, std::shared_ptr layer) const override; static bool canBeTransformedStatic( diff --git a/src/common/low_precision_transformations/include/low_precision/fuse_elementwise_to_fake_quantize.hpp b/src/common/low_precision_transformations/include/low_precision/fuse_elementwise_to_fake_quantize.hpp index ab1a589845aa10..ba511575fdce02 100644 --- a/src/common/low_precision_transformations/include/low_precision/fuse_elementwise_to_fake_quantize.hpp +++ b/src/common/low_precision_transformations/include/low_precision/fuse_elementwise_to_fake_quantize.hpp @@ -19,7 +19,6 @@ namespace low_precision { class LP_TRANSFORMATIONS_API FuseElementwiseToFakeQuantizeTransformation : public CleanupTransformation { public: FuseElementwiseToFakeQuantizeTransformation(const Params& params); - virtual ~FuseElementwiseToFakeQuantizeTransformation() = default; bool canBeTransformed(const TransformationContext& context, std::shared_ptr layer) const override; }; diff --git a/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp b/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp index c675ade19b516b..b997c44bfe8830 100644 --- a/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp +++ b/src/common/low_precision_transformations/include/low_precision/layer_transformation.hpp @@ -300,7 +300,6 @@ class LP_TRANSFORMATIONS_API LayerTransformation : public ov::pass::MatcherPass }; LayerTransformation(const Params& params); - virtual ~LayerTransformation() = default; virtual bool transform(TransformationContext& context, ov::pass::pattern::Matcher &m) = 0; void setContext(TransformationContext* context) noexcept; diff --git a/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp b/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp index 04eade094279a9..bf8f51b3077fae 100644 --- a/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp +++ b/src/common/low_precision_transformations/include/low_precision/rt_info/shared_value_attribute.hpp @@ -15,8 +15,6 @@ template class LP_TRANSFORMATIONS_API SharedAttribute : public ov::RuntimeAttribute { public: - virtual ~SharedAttribute() = default; - /** * @ingroup ov_transformation_common_api * @brief SharedValueAttribute type for shared value attributes. diff --git a/src/core/include/openvino/core/any.hpp b/src/core/include/openvino/core/any.hpp index 6f65efb5233ab1..3e41ed51ee9c54 100644 --- a/src/core/include/openvino/core/any.hpp +++ b/src/core/include/openvino/core/any.hpp @@ -536,7 +536,7 @@ class OPENVINO_API Any { template U convert_impl() const; - virtual ~Base() = default; + virtual ~Base(); }; template @@ -611,8 +611,6 @@ class OPENVINO_API Any { template Impl(Args&&... args) : value(std::forward(args)...) {} - virtual ~Impl(){}; - const std::type_info& type_info() const override { return typeid(T); } diff --git a/src/core/include/openvino/core/attribute_adapter.hpp b/src/core/include/openvino/core/attribute_adapter.hpp index 706d3e9e363450..8f00cc6cfd601f 100644 --- a/src/core/include/openvino/core/attribute_adapter.hpp +++ b/src/core/include/openvino/core/attribute_adapter.hpp @@ -34,7 +34,7 @@ class OPENVINO_API ValueAccessor { /// \brief type info enables identification of the value accessor, as well as is_type and /// as_type. virtual const DiscreteTypeInfo& get_type_info() const = 0; - virtual ~ValueAccessor() = default; + virtual ~ValueAccessor(); virtual void set_as_any(const ov::Any& x) { OPENVINO_NOT_IMPLEMENTED; } diff --git a/src/core/include/openvino/core/attribute_visitor.hpp b/src/core/include/openvino/core/attribute_visitor.hpp index f1790cba959c2f..35fb5fb0ccd7e4 100644 --- a/src/core/include/openvino/core/attribute_visitor.hpp +++ b/src/core/include/openvino/core/attribute_visitor.hpp @@ -56,7 +56,7 @@ class VisitorAdapter; /// deserialization. class OPENVINO_API AttributeVisitor { public: - virtual ~AttributeVisitor() = default; + virtual ~AttributeVisitor(); // Must implement these methods /// \brief handles all specialized on_adapter methods implemented by the visitor. /// diff --git a/src/core/include/openvino/core/model.hpp b/src/core/include/openvino/core/model.hpp index 5733209f492377..6ad235062eda36 100644 --- a/src/core/include/openvino/core/model.hpp +++ b/src/core/include/openvino/core/model.hpp @@ -107,7 +107,7 @@ class OPENVINO_API Model : public std::enable_shared_from_this { /// based on traversing the graph from the results and the sinks. Model(const ov::OutputVector& results, const ov::SinkVector& sinks, const std::string& name = ""); - virtual ~Model() = default; + virtual ~Model(); /// Return the number of outputs for this Model. size_t get_output_size() const; diff --git a/src/core/include/openvino/core/runtime_attribute.hpp b/src/core/include/openvino/core/runtime_attribute.hpp index 82b860cc99d7ec..86171a81562e90 100644 --- a/src/core/include/openvino/core/runtime_attribute.hpp +++ b/src/core/include/openvino/core/runtime_attribute.hpp @@ -28,7 +28,7 @@ class OPENVINO_API RuntimeAttribute { } using Ptr = std::shared_ptr; using Base = std::tuple<::ov::RuntimeAttribute>; - virtual ~RuntimeAttribute() = default; + virtual ~RuntimeAttribute(); virtual bool is_copyable() const; virtual bool is_copyable(const std::shared_ptr& to) const; virtual Any init(const std::shared_ptr& node) const; diff --git a/src/core/include/openvino/op/util/multi_subgraph_base.hpp b/src/core/include/openvino/op/util/multi_subgraph_base.hpp index 5f6053acfcd281..71ba0ebe4f6b35 100644 --- a/src/core/include/openvino/op/util/multi_subgraph_base.hpp +++ b/src/core/include/openvino/op/util/multi_subgraph_base.hpp @@ -20,7 +20,7 @@ class OPENVINO_API MultiSubGraphOp : public ov::op::Sink { OPENVINO_OP("MultiSubGraphOp", "util", ov::op::Sink); /// \brief Abstract class describes a connection between a MultiSubGraphOp input and /// the body. - class InputDescription { + class OPENVINO_API InputDescription { protected: /// /// \brief Constructs a new instance. @@ -34,7 +34,7 @@ class OPENVINO_API MultiSubGraphOp : public ov::op::Sink { public: using Ptr = std::shared_ptr; using type_info_t = DiscreteTypeInfo; - virtual ~InputDescription() = default; + virtual ~InputDescription(); virtual std::shared_ptr copy() const = 0; virtual const type_info_t& get_type_info() const = 0; @@ -45,7 +45,7 @@ class OPENVINO_API MultiSubGraphOp : public ov::op::Sink { /// \brief Abstract class describes how a MultiSubGraphOp output is produced from /// the body. - class OutputDescription { + class OPENVINO_API OutputDescription { protected: /// /// \brief Constructs a new instance. @@ -59,7 +59,7 @@ class OPENVINO_API MultiSubGraphOp : public ov::op::Sink { public: using Ptr = std::shared_ptr; using type_info_t = DiscreteTypeInfo; - virtual ~OutputDescription() = default; + virtual ~OutputDescription(); virtual std::shared_ptr copy() const = 0; virtual const type_info_t& get_type_info() const = 0; diff --git a/src/core/include/openvino/op/util/variable_extension.hpp b/src/core/include/openvino/op/util/variable_extension.hpp index 924bd97c17f9a2..e4f811afe52a8f 100644 --- a/src/core/include/openvino/op/util/variable_extension.hpp +++ b/src/core/include/openvino/op/util/variable_extension.hpp @@ -39,7 +39,7 @@ class OPENVINO_API VariableExtension { virtual std::string get_variable_id() const = 0; protected: - virtual ~VariableExtension(){}; + virtual ~VariableExtension(); protected: std::shared_ptr m_variable; diff --git a/src/core/include/openvino/pass/pass.hpp b/src/core/include/openvino/pass/pass.hpp index fc019859128f25..6440114ab9a8ec 100644 --- a/src/core/include/openvino/pass/pass.hpp +++ b/src/core/include/openvino/pass/pass.hpp @@ -44,7 +44,7 @@ class OPENVINO_API PassBase { public: PassBase(); - virtual ~PassBase() = default; + virtual ~PassBase(); /// Check if this pass has all the pass properties. bool get_property(const PassPropertyMask& prop_mask) const; diff --git a/src/core/include/openvino/pass/pattern/matcher.hpp b/src/core/include/openvino/pass/pattern/matcher.hpp index f39b284702969e..acf7c85841fc09 100644 --- a/src/core/include/openvino/pass/pattern/matcher.hpp +++ b/src/core/include/openvino/pass/pattern/matcher.hpp @@ -108,7 +108,8 @@ class OPENVINO_API Matcher { Matcher(std::shared_ptr pattern_node, const std::string& name); Matcher(std::shared_ptr pattern_node, const std::string& name, bool strict_mode); - virtual ~Matcher() = default; + virtual ~Matcher(); + /// \brief Matches a pattern to \p graph_node /// /// \param graph_value is an input graph to be matched against @@ -176,7 +177,7 @@ class OPENVINO_API Matcher { size_t add_node(Output node); - bool virtual match_value(const ov::Output& pattern_value, const ov::Output& graph_value); + virtual bool match_value(const ov::Output& pattern_value, const ov::Output& graph_value); bool is_strict_mode() { return m_strict_mode; diff --git a/src/core/include/openvino/runtime/allocator.hpp b/src/core/include/openvino/runtime/allocator.hpp index 4180d90b0ce4bf..ae62fb7b290802 100644 --- a/src/core/include/openvino/runtime/allocator.hpp +++ b/src/core/include/openvino/runtime/allocator.hpp @@ -37,7 +37,7 @@ class OPENVINO_API Allocator { friend class ov::Tensor; - struct Base : public std::enable_shared_from_this { + struct OPENVINO_API Base : public std::enable_shared_from_this { virtual void* addressof() = 0; const void* addressof() const { return const_cast(this)->addressof(); @@ -48,7 +48,7 @@ class OPENVINO_API Allocator { virtual bool is_equal(const Base& other) const = 0; protected: - virtual ~Base() = default; + virtual ~Base(); }; template diff --git a/src/core/reference/include/openvino/reference/utils/philox_converter.hpp b/src/core/reference/include/openvino/reference/utils/philox_converter.hpp index 45fbb7d160a247..bf6baaff8af1d4 100644 --- a/src/core/reference/include/openvino/reference/utils/philox_converter.hpp +++ b/src/core/reference/include/openvino/reference/utils/philox_converter.hpp @@ -19,7 +19,7 @@ class PhiloxConverter { public: PhiloxConverter() = delete; - virtual ~PhiloxConverter(){}; + virtual ~PhiloxConverter() = default; /// \brief Returns the number of generated elements per execution /// based on the requested data type. diff --git a/src/core/reference/include/openvino/reference/utils/philox_generator.hpp b/src/core/reference/include/openvino/reference/utils/philox_generator.hpp index f38a947b9ded27..81ea89acf0c55c 100644 --- a/src/core/reference/include/openvino/reference/utils/philox_generator.hpp +++ b/src/core/reference/include/openvino/reference/utils/philox_generator.hpp @@ -30,7 +30,7 @@ class PhiloxGenerator { public: PhiloxGenerator() = delete; - virtual ~PhiloxGenerator(){}; + virtual ~PhiloxGenerator() = default; /// @brief Get a set of 4 random 32-bit unsigned integers based on the seed(s). /// @return A vector with a random set of 4 32-bit unsigned integers. diff --git a/src/core/src/any.cpp b/src/core/src/any.cpp index 1637a139680394..4dd9ce40af5703 100644 --- a/src/core/src/any.cpp +++ b/src/core/src/any.cpp @@ -30,6 +30,8 @@ bool util::equal(std::type_index lhs, std::type_index rhs) { return result; } +Any::Base::~Base() = default; + bool Any::Base::is(const std::type_info& other) const { return util::equal(type_info(), other); } diff --git a/src/core/src/attribute_visitor.cpp b/src/core/src/attribute_visitor.cpp index 63a59591e37839..991e549fa83cf0 100644 --- a/src/core/src/attribute_visitor.cpp +++ b/src/core/src/attribute_visitor.cpp @@ -10,6 +10,10 @@ using namespace std; +ov::ValueAccessor::~ValueAccessor() = default; + +ov::AttributeVisitor::~AttributeVisitor() = default; + void ov::AttributeVisitor::start_structure(const string& name) { m_context.push_back(name); } diff --git a/src/core/src/model.cpp b/src/core/src/model.cpp index c9a25676b9cf2e..44ac9c9177d955 100644 --- a/src/core/src/model.cpp +++ b/src/core/src/model.cpp @@ -221,6 +221,8 @@ ov::Model::Model(const ov::OutputVector& results, const ov::SinkVector& sinks, c ov::Model::Model(const OutputVector& results, const string& name) : Model(results, ov::SinkVector{}, name) {} +ov::Model::~Model() = default; + void ov::Model::prerequirements(bool detect_variables, bool detect_parameters) { OV_ITT_SCOPED_TASK(ov::itt::domains::core, "Model::prerequirements"); diff --git a/src/core/src/op/util/multi_subgraph_base.cpp b/src/core/src/op/util/multi_subgraph_base.cpp index 6b7f78afcfff86..5e5f84d8ff7353 100644 --- a/src/core/src/op/util/multi_subgraph_base.cpp +++ b/src/core/src/op/util/multi_subgraph_base.cpp @@ -8,10 +8,14 @@ ov::op::util::MultiSubGraphOp::InputDescription::InputDescription(uint64_t input : m_input_index(input_index), m_body_parameter_index(body_parameter_index) {} +ov::op::util::MultiSubGraphOp::InputDescription::~InputDescription() = default; + ov::op::util::MultiSubGraphOp::OutputDescription::OutputDescription(uint64_t body_value_index, uint64_t output_index) : m_body_value_index(body_value_index), m_output_index(output_index) {} +ov::op::util::MultiSubGraphOp::OutputDescription::~OutputDescription() = default; + ov::op::util::MultiSubGraphOp::SliceInputDescription::SliceInputDescription(uint64_t input_index, uint64_t body_parameter_index, int64_t start, diff --git a/src/core/src/op/util/variable_extension.cpp b/src/core/src/op/util/variable_extension.cpp new file mode 100644 index 00000000000000..b49055dbccd8f4 --- /dev/null +++ b/src/core/src/op/util/variable_extension.cpp @@ -0,0 +1,9 @@ +// Copyright (C) 2018-2025 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "openvino/op/util/variable_extension.hpp" + +using namespace ov::op::util; + +VariableExtension::~VariableExtension() = default; diff --git a/src/core/src/pass/pass.cpp b/src/core/src/pass/pass.cpp index 73a3f7261e5d56..420b8d2729828a 100644 --- a/src/core/src/pass/pass.cpp +++ b/src/core/src/pass/pass.cpp @@ -16,6 +16,8 @@ using namespace std; ov::pass::PassBase::PassBase() : m_property(), m_name(), m_pass_config(std::make_shared()) {} +ov::pass::PassBase::~PassBase() = default; + bool ov::pass::PassBase::get_property(const PassPropertyMask& prop) const { return m_property.is_set(prop); } diff --git a/src/core/src/pattern/matcher.cpp b/src/core/src/pattern/matcher.cpp index 54e153ebbaa962..3681b933cebe14 100644 --- a/src/core/src/pattern/matcher.cpp +++ b/src/core/src/pattern/matcher.cpp @@ -37,6 +37,8 @@ Matcher::Matcher(std::shared_ptr pattern_node, const std::string& name) Matcher::Matcher(std::shared_ptr pattern_node, const std::string& name, bool strict_mode) : Matcher(make_node_output(pattern_node), name, strict_mode) {} +Matcher::~Matcher() = default; + MatcherState::~MatcherState() { if (m_restore) { if (!m_matcher->m_matched_list.empty()) { diff --git a/src/core/src/runtime/allocator.cpp b/src/core/src/runtime/allocator.cpp index 2a1d8a79ad3ddf..729a61d9b0d8dc 100644 --- a/src/core/src/runtime/allocator.cpp +++ b/src/core/src/runtime/allocator.cpp @@ -45,6 +45,8 @@ struct DefaultAllocator { } }; +Allocator::Base::~Base() = default; + Allocator::Allocator() : Allocator{DefaultAllocator{}} {} Allocator::~Allocator() { diff --git a/src/core/src/runtime_attribute.cpp b/src/core/src/runtime_attribute.cpp index e936afd6b29a76..cf67b09cb2b37d 100644 --- a/src/core/src/runtime_attribute.cpp +++ b/src/core/src/runtime_attribute.cpp @@ -9,6 +9,8 @@ namespace ov { +RuntimeAttribute::~RuntimeAttribute() = default; + std::string RuntimeAttribute::to_string() const { return {}; } diff --git a/src/frontends/common/include/openvino/frontend/decoder.hpp b/src/frontends/common/include/openvino/frontend/decoder.hpp index 46afa8aee1cfe9..ea13a714cb1016 100644 --- a/src/frontends/common/include/openvino/frontend/decoder.hpp +++ b/src/frontends/common/include/openvino/frontend/decoder.hpp @@ -49,9 +49,9 @@ struct Union; } // namespace type /// Plays a role of node, block and module decoder -class IDecoder { +class FRONTEND_API IDecoder { public: - virtual ~IDecoder() = default; + virtual ~IDecoder(); }; class FRONTEND_API DecoderBase : public IDecoder { @@ -82,9 +82,6 @@ class FRONTEND_API DecoderBase : public IDecoder { /// \brief Get node name virtual const std::string& get_op_name() const = 0; - - /// \brief Destructor - virtual ~DecoderBase(); }; } // namespace frontend diff --git a/src/frontends/common/include/openvino/frontend/graph_iterator.hpp b/src/frontends/common/include/openvino/frontend/graph_iterator.hpp index 054173f1f41bdb..e199ece6d06694 100644 --- a/src/frontends/common/include/openvino/frontend/graph_iterator.hpp +++ b/src/frontends/common/include/openvino/frontend/graph_iterator.hpp @@ -34,9 +34,6 @@ class FRONTEND_API GraphIterator : ::ov::RuntimeAttribute { /// \brief Return a pointer to a decoder of the current node virtual std::shared_ptr get_decoder() const = 0; - /// \brief Destructor - virtual ~GraphIterator() = default; - /// \brief Checks if the main model graph contains a function of the requested name in the library /// Returns GraphIterator to this function and nullptr, if it does not exist virtual std::shared_ptr get_body_graph_iterator(const std::string& func_name) const = 0; diff --git a/src/frontends/common/include/openvino/frontend/input_model.hpp b/src/frontends/common/include/openvino/frontend/input_model.hpp index f679a28d41aca5..5ea01dba5ea97a 100644 --- a/src/frontends/common/include/openvino/frontend/input_model.hpp +++ b/src/frontends/common/include/openvino/frontend/input_model.hpp @@ -51,7 +51,7 @@ class FRONTEND_API InputModel { InputModel& operator=(const InputModel&) = delete; InputModel& operator=(InputModel&&) = delete; - virtual ~InputModel() = default; + virtual ~InputModel(); ///// Searching for places ///// diff --git a/src/frontends/common/include/openvino/frontend/node_context.hpp b/src/frontends/common/include/openvino/frontend/node_context.hpp index 2fb607f3644b16..9d6bb78789298b 100644 --- a/src/frontends/common/include/openvino/frontend/node_context.hpp +++ b/src/frontends/common/include/openvino/frontend/node_context.hpp @@ -18,7 +18,7 @@ class FRONTEND_API NodeContext { public: // TODO: Why this ctor is explicit when get_op_type is virtual so m_op_type looks to be a custom implementation explicit NodeContext(const std::string& op_type) : m_op_type(op_type) {} - virtual ~NodeContext() = default; + virtual ~NodeContext(); /// \brief Returns a number of inputs virtual size_t get_input_size() const { diff --git a/src/frontends/common/include/openvino/frontend/place.hpp b/src/frontends/common/include/openvino/frontend/place.hpp index ecaed4cd93b2da..be661149dc09e5 100644 --- a/src/frontends/common/include/openvino/frontend/place.hpp +++ b/src/frontends/common/include/openvino/frontend/place.hpp @@ -61,7 +61,7 @@ class FRONTEND_API Place { public: typedef std::shared_ptr Ptr; - virtual ~Place() = 0; + virtual ~Place(); /// \brief All associated names (synonyms) that identify this place in the graph in a /// framework specific way diff --git a/src/frontends/common/src/decoder.cpp b/src/frontends/common/src/decoder.cpp index b9f4b27da2ce99..f140b9e64302be 100644 --- a/src/frontends/common/src/decoder.cpp +++ b/src/frontends/common/src/decoder.cpp @@ -6,4 +6,4 @@ using namespace ov::frontend; -DecoderBase::~DecoderBase() = default; \ No newline at end of file +IDecoder::~IDecoder() = default; diff --git a/src/frontends/common/src/input_model.cpp b/src/frontends/common/src/input_model.cpp index f2c52f2eb696d1..11d474aaec4bcb 100644 --- a/src/frontends/common/src/input_model.cpp +++ b/src/frontends/common/src/input_model.cpp @@ -12,6 +12,8 @@ using namespace ov; using namespace ov::frontend; +InputModel::~InputModel() = default; + std::vector InputModel::get_inputs() const { if (!m_actual) { return {}; diff --git a/src/frontends/common/src/node_context.cpp b/src/frontends/common/src/node_context.cpp new file mode 100644 index 00000000000000..91c8c8c911ca9e --- /dev/null +++ b/src/frontends/common/src/node_context.cpp @@ -0,0 +1,9 @@ +// Copyright (C) 2018-2025 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "openvino/frontend/node_context.hpp" + +using namespace ov::frontend; + +NodeContext::~NodeContext() = default; diff --git a/src/frontends/common/src/variable.cpp b/src/frontends/common/src/variable.cpp index 9c82520d568bd2..b0fb30280080f3 100644 --- a/src/frontends/common/src/variable.cpp +++ b/src/frontends/common/src/variable.cpp @@ -6,4 +6,4 @@ using namespace ov::frontend; -Variable::~Variable(){}; +Variable::~Variable() = default;