[PPL-devel] [GIT] ppl/ppl(devel): Warnings silenced.
Roberto Bagnara
roberto.bagnara at bugseng.com
Sun Aug 9 20:58:02 CEST 2020
Module: ppl/ppl
Branch: devel
Commit: 246a5455940b54e76a62268a3c6eda74b22f540b
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=246a5455940b54e76a62268a3c6eda74b22f540b
Author: Roberto Bagnara <roberto.bagnara at bugseng.com>
Date: Sun Aug 9 20:57:43 2020 +0200
Warnings silenced.
---
src/CO_Tree_defs.hh | 3 +++
src/CO_Tree_inlines.hh | 21 ++++++++++++++++-
src/Dense_Row.cc | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 84 insertions(+), 1 deletion(-)
diff --git a/src/CO_Tree_defs.hh b/src/CO_Tree_defs.hh
index 63a05c02e..8dfb7c2b6 100644
--- a/src/CO_Tree_defs.hh
+++ b/src/CO_Tree_defs.hh
@@ -1352,6 +1352,9 @@ public:
*/
tree_iterator(CO_Tree& tree, dimension_type i);
+ //! Copy constructor.
+ tree_iterator(const tree_iterator& itr);
+
//! Constructs a tree_iterator from an iterator.
/*!
\param itr
diff --git a/src/CO_Tree_inlines.hh b/src/CO_Tree_inlines.hh
index 290a933ae..20de0cded 100644
--- a/src/CO_Tree_inlines.hh
+++ b/src/CO_Tree_inlines.hh
@@ -346,6 +346,13 @@ CO_Tree::refresh_cached_iterators() {
inline void
CO_Tree::move_data_element(data_type& to, data_type& from) {
+
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
+
/*
The following code is equivalent (but slower):
@@ -355,8 +362,13 @@ CO_Tree::move_data_element(data_type& to, data_type& from) {
</CODE>
*/
std::memcpy(&to, &from, sizeof(data_type));
-}
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic pop
+#endif
+
+}
inline
CO_Tree::const_iterator::const_iterator()
@@ -724,6 +736,13 @@ CO_Tree::tree_iterator::tree_iterator(const iterator& itr, CO_Tree& tree1)
PPL_ASSERT(OK());
}
+inline
+CO_Tree::tree_iterator::tree_iterator(const tree_iterator& itr)
+ : tree(itr.tree),
+ i(itr.i),
+ offset(itr.offset) {
+}
+
inline CO_Tree::tree_iterator&
CO_Tree::tree_iterator::operator=(const tree_iterator& itr) {
PPL_ASSERT(&tree == &(itr.tree));
diff --git a/src/Dense_Row.cc b/src/Dense_Row.cc
index bd17f6fb7..c7477ca29 100644
--- a/src/Dense_Row.cc
+++ b/src/Dense_Row.cc
@@ -56,7 +56,20 @@ PPL::Dense_Row::resize(const dimension_type new_size) {
Coefficient* const new_vec = impl.coeff_allocator.allocate(new_capacity);
if (impl.vec != nullptr) {
+
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
+
memcpy(new_vec, impl.vec, sizeof(Coefficient) * impl.size);
+
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic pop
+#endif
+
impl.coeff_allocator.deallocate(impl.vec, impl.capacity);
}
@@ -102,8 +115,19 @@ PPL::Dense_Row::resize(const dimension_type new_size,
PPL_ASSERT(impl.vec != 0);
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
+
memcpy(new_vec, impl.vec, sizeof(Coefficient) * impl.size);
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic pop
+#endif
+
impl.coeff_allocator.deallocate(impl.vec, impl.capacity);
impl.vec = new_vec;
@@ -115,7 +139,20 @@ PPL::Dense_Row::resize(const dimension_type new_size,
Coefficient* const new_vec = impl.coeff_allocator.allocate(new_capacity);
if (impl.vec != nullptr) {
+
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
+
memcpy(new_vec, impl.vec, sizeof(Coefficient) * impl.size);
+
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic pop
+#endif
+
impl.coeff_allocator.deallocate(impl.vec, impl.capacity);
}
@@ -167,11 +204,22 @@ PPL::Dense_Row::add_zeroes_and_shift(const dimension_type n,
throw;
}
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
+
// Raw-copy the coefficients.
memcpy(new_row.impl.vec, impl.vec, sizeof(Coefficient) * i);
memcpy(&(new_row.impl.vec[i + n]), &impl.vec[i],
sizeof(Coefficient) * (impl.size - i));
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic pop
+#endif
+
using std::swap;
swap(impl.vec, new_row.impl.vec);
swap(impl.capacity, new_row.impl.capacity);
@@ -183,8 +231,21 @@ PPL::Dense_Row::add_zeroes_and_shift(const dimension_type n,
}
else {
+
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wclass-memaccess"
+#endif
+
memmove(&impl.vec[n + i], &impl.vec[i], sizeof(Coefficient)
* (impl.size - i));
+
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) \
+ && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 800)
+#pragma GCC diagnostic pop
+#endif
+
impl.size = i;
const dimension_type target_size = impl.size + n;
PPL_ASSERT(target_size == i + n);
More information about the PPL-devel
mailing list