aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLauro Moura <lauromoura@expertisesolutions.com.br>2019-09-16 12:41:37 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-09-16 12:41:37 -0400
commitbdb8505f3b7318b024530d1f9559c91978a3b421 (patch)
tree6a7953960ea61163ee53311511564435cc0e6c08
parentefl_ui_format: fix some more harmless Coverity warnings (diff)
downloadefl-bdb8505f3b7318b024530d1f9559c91978a3b421.tar.gz
cxx: Fix some warnings from -Wextra
Summary: - As we don't have C++17's [[fallthrough]], rely on GCC'd detection of fallthrough comments. See https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/ - Add some missing copy assignment operators as reported by -Wdeprecated-copy - Cast a Eina_Bool/bool narrowing conversion Reviewers: zmike, brunobelo, felipealmeida Reviewed By: zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9934
-rw-r--r--src/bindings/cxx/eina_cxx/eina_inlist.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_ptrarray.hh6
-rw-r--r--src/bindings/cxx/eina_cxx/eina_ptrlist.hh7
-rw-r--r--src/lib/eolian_cxx/grammar/html_escaped_string.hpp3
-rw-r--r--src/lib/eolian_cxx/grammar/klass_def.hpp2
5 files changed, 31 insertions, 2 deletions
diff --git a/src/bindings/cxx/eina_cxx/eina_inlist.hh b/src/bindings/cxx/eina_cxx/eina_inlist.hh
index 0092989cb7..9eddd9b0cf 100644
--- a/src/bindings/cxx/eina_cxx/eina_inlist.hh
+++ b/src/bindings/cxx/eina_cxx/eina_inlist.hh
@@ -108,6 +108,21 @@ struct _inlist_iterator
: _list(other._list), _node(other._node) {}
/**
+ * @brief Copy assignment operator.
+ * @param other Other iterator being copied
+ * @return Copy of the iterator
+ */
+ _inlist_iterator<T> & operator=(_inlist_iterator<typename std::remove_const<T>::type> const& other)
+ {
+ if (this != &other)
+ {
+ _list = other._list;
+ _node = other._node;
+ }
+ return *this;
+ }
+
+ /**
* @brief Move the iterator to the next position in the list.
* @return The iterator itself.
*
diff --git a/src/bindings/cxx/eina_cxx/eina_ptrarray.hh b/src/bindings/cxx/eina_cxx/eina_ptrarray.hh
index b5de9d7290..e140544b7e 100644
--- a/src/bindings/cxx/eina_cxx/eina_ptrarray.hh
+++ b/src/bindings/cxx/eina_cxx/eina_ptrarray.hh
@@ -50,6 +50,12 @@ struct _ptr_array_iterator
: _ptr(other._ptr)
{
}
+ _ptr_array_iterator<T>& operator=(_ptr_array_iterator<typename remove_cv<value_type>::type> const& other)
+ {
+ if (this != &other)
+ _ptr = other._ptr;
+ return *this;
+ }
_ptr_array_iterator<T>& operator++()
{
++_ptr;
diff --git a/src/bindings/cxx/eina_cxx/eina_ptrlist.hh b/src/bindings/cxx/eina_cxx/eina_ptrlist.hh
index 03b836ab6f..12f7f7ef02 100644
--- a/src/bindings/cxx/eina_cxx/eina_ptrlist.hh
+++ b/src/bindings/cxx/eina_cxx/eina_ptrlist.hh
@@ -67,6 +67,13 @@ struct _ptr_list_iterator : _ptr_list_iterator_base
{
}
+ _ptr_list_iterator<value_type>& operator=(_ptr_list_iterator<value_type> const &other)
+ {
+ if (this != &other)
+ _ptr_list_iterator_base::operator=(other);
+ return *this;
+ }
+
_ptr_list_iterator<T>& operator++()
{
_node = eina_list_next(_node);
diff --git a/src/lib/eolian_cxx/grammar/html_escaped_string.hpp b/src/lib/eolian_cxx/grammar/html_escaped_string.hpp
index 371afcda24..5bbad79c0f 100644
--- a/src/lib/eolian_cxx/grammar/html_escaped_string.hpp
+++ b/src/lib/eolian_cxx/grammar/html_escaped_string.hpp
@@ -26,7 +26,8 @@ struct html_escaped_string_generator
case '\'': out.append("&apos;"); break;
case '<': out.append("&lt;"); break;
case '>': out.append("&gt;"); break;
- case '\\': if (pos < input.size() - 1) pos++; // Deliberate fallthrough
+ case '\\': if (pos < input.size() - 1) pos++;
+ // fall through
default: out.append(&input[pos], 1); break;
}
}
diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp b/src/lib/eolian_cxx/grammar/klass_def.hpp
index a3f3f3d7df..609df6ecea 100644
--- a/src/lib/eolian_cxx/grammar/klass_def.hpp
+++ b/src/lib/eolian_cxx/grammar/klass_def.hpp
@@ -492,7 +492,7 @@ inline void type_def::set(Eolian_Type const* eolian_type, Eolian_Unit const* uni
complex.subtypes.push_back({stp
, unit
, ::eolian_type_c_type_get(stp)
- , eolian_type_is_move(stp)
+ , (bool)eolian_type_is_move(stp)
, is_by::value});
stp = eolian_type_next_type_get(stp);
}