From f845134e5873bc59b2db52a3af85a50d1ddfee50 Mon Sep 17 00:00:00 2001 From: conrad Date: Tue, 20 May 2025 13:49:20 +1000 Subject: [PATCH] restore previous attributes due to false positives in gcc 14.2 --- include/armadillo_bits/SpMat_bones.hpp | 16 ++++++++-------- include/armadillo_bits/SpMat_iterators_meat.hpp | 2 +- include/armadillo_bits/SpSubview_bones.hpp | 14 +++++++------- .../armadillo_bits/SpSubview_iterators_meat.hpp | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/include/armadillo_bits/SpMat_bones.hpp b/include/armadillo_bits/SpMat_bones.hpp index 7fc0ef99..34b7d81b 100644 --- a/include/armadillo_bits/SpMat_bones.hpp +++ b/include/armadillo_bits/SpMat_bones.hpp @@ -423,12 +423,12 @@ class SpMat : public SpBase< eT, SpMat > inline iterator_base(const SpMat& in_M); inline iterator_base(const SpMat& in_M, const uword col, const uword pos); - arma_warn_unused inline eT operator*() const; + arma_inline eT operator*() const; // don't hold location internally; call "dummy" methods to get that information - arma_warn_unused inline uword row() const { return M->row_indices[internal_pos]; } - arma_warn_unused inline uword col() const { return internal_col; } - arma_warn_unused inline uword pos() const { return internal_pos; } + arma_inline uword row() const { return M->row_indices[internal_pos]; } + arma_inline uword col() const { return internal_col; } + arma_inline uword pos() const { return internal_pos; } arma_aligned const SpMat* M; arma_aligned uword internal_col; @@ -491,7 +491,7 @@ class SpMat : public SpBase< eT, SpMat > inline iterator (const iterator& other) : const_iterator(other) { } inline iterator& operator=(const iterator& other) = default; - arma_warn_unused inline SpValProxy< SpMat > operator*(); + arma_hot inline SpValProxy< SpMat > operator*(); // overloads needed for return type correctness arma_hot inline iterator& operator++(); @@ -526,9 +526,9 @@ class SpMat : public SpBase< eT, SpMat > uword internal_row; // hold row internally uword actual_pos; // hold the true position we are at in the matrix, as column-major indexing - arma_warn_unused inline eT operator*() const { return iterator_base::M->values[actual_pos]; } + arma_inline eT operator*() const { return iterator_base::M->values[actual_pos]; } - arma_warn_unused inline uword row() const { return internal_row; } + arma_inline uword row() const { return internal_row; } arma_hot inline bool operator==(const const_iterator& rhs) const; arma_hot inline bool operator!=(const const_iterator& rhs) const; @@ -555,7 +555,7 @@ class SpMat : public SpBase< eT, SpMat > inline row_iterator(const row_iterator& other) : const_row_iterator(other) { } inline row_iterator& operator= (const row_iterator& other) = default; - arma_warn_unused inline SpValProxy< SpMat > operator*(); + arma_hot inline SpValProxy< SpMat > operator*(); // overloads required for return type correctness arma_hot inline row_iterator& operator++(); diff --git a/include/armadillo_bits/SpMat_iterators_meat.hpp b/include/armadillo_bits/SpMat_iterators_meat.hpp index 8bfe42ef..ed29640d 100644 --- a/include/armadillo_bits/SpMat_iterators_meat.hpp +++ b/include/armadillo_bits/SpMat_iterators_meat.hpp @@ -62,7 +62,7 @@ SpMat::iterator_base::iterator_base(const SpMat& in_M, const uword in_co template -inline +arma_inline eT SpMat::iterator_base::operator*() const { diff --git a/include/armadillo_bits/SpSubview_bones.hpp b/include/armadillo_bits/SpSubview_bones.hpp index c7e02ab2..fe32216e 100644 --- a/include/armadillo_bits/SpSubview_bones.hpp +++ b/include/armadillo_bits/SpSubview_bones.hpp @@ -169,8 +169,8 @@ class SpSubview : public SpBase< eT, SpSubview > inline iterator_base(const SpSubview& in_M); inline iterator_base(const SpSubview& in_M, const uword col, const uword pos); - arma_warn_unused inline uword col() const { return internal_col; } - arma_warn_unused inline uword pos() const { return internal_pos; } + arma_inline uword col() const { return internal_col; } + arma_inline uword pos() const { return internal_pos; } arma_aligned const SpSubview* M; arma_aligned uword internal_col; @@ -192,7 +192,7 @@ class SpSubview : public SpBase< eT, SpSubview > inline const_iterator(const SpSubview& in_M, uword in_row, uword in_col, uword in_pos, uword skip_pos); inline const_iterator(const const_iterator& other); - arma_warn_unused inline eT operator*() const; + arma_inline eT operator*() const; // Don't hold location internally; call "dummy" methods to get that information. arma_inline uword row() const { return iterator_base::M->m.row_indices[iterator_base::internal_pos + skip_pos] - iterator_base::M->aux_row1; } @@ -227,7 +227,7 @@ class SpSubview : public SpBase< eT, SpSubview > inline iterator(SpSubview& in_M, const uword in_row, const uword in_col, const uword in_pos, const uword in_skip_pos) : const_iterator(in_M, in_row, in_col, in_pos, in_skip_pos) { } inline iterator(const iterator& other) : const_iterator(other) { } - arma_warn_unused inline SpValProxy< SpSubview > operator*(); + arma_hot inline SpValProxy< SpSubview > operator*(); // overloads needed for return type correctness arma_hot inline iterator& operator++(); @@ -260,9 +260,9 @@ class SpSubview : public SpBase< eT, SpSubview > uword internal_row; // Hold row internally because we use internal_pos differently. uword actual_pos; // Actual position in subview's parent matrix. - arma_warn_unused eT operator*() const { return iterator_base::M->m.values[actual_pos]; } + arma_inline eT operator*() const { return iterator_base::M->m.values[actual_pos]; } - arma_warn_unused inline uword row() const { return internal_row; } + arma_inline uword row() const { return internal_row; } arma_hot inline bool operator!=(const const_iterator& rhs) const; arma_hot inline bool operator==(const const_iterator& rhs) const; @@ -285,7 +285,7 @@ class SpSubview : public SpBase< eT, SpSubview > inline row_iterator(SpSubview& in_M, uword in_row, uword in_col) : const_row_iterator(in_M, in_row, in_col) { } inline row_iterator(const row_iterator& other) : const_row_iterator(other) { } - arma_warn_unused inline SpValProxy< SpSubview > operator*(); + arma_hot inline SpValProxy< SpSubview > operator*(); // overloads needed for return type correctness arma_hot inline row_iterator& operator++(); diff --git a/include/armadillo_bits/SpSubview_iterators_meat.hpp b/include/armadillo_bits/SpSubview_iterators_meat.hpp index 913503f0..d6967f32 100644 --- a/include/armadillo_bits/SpSubview_iterators_meat.hpp +++ b/include/armadillo_bits/SpSubview_iterators_meat.hpp @@ -269,7 +269,7 @@ SpSubview::const_iterator::const_iterator(const const_iterator& other) template -inline +arma_inline eT SpSubview::const_iterator::operator*() const {