From ed868a1229e837cd620970197b0e765bce3a56f2 Mon Sep 17 00:00:00 2001 From: Matthias Maier Date: Thu, 18 Jan 2024 17:09:04 -0600 Subject: [PATCH] base/tensor.h: work around bogus compiler warning gcc-9.4 warnings loudly about an unused argument "end": ``` In file included from ../include/deal.II/base/symmetric_tensor.h:26, from ../include/deal.II/base/array_view.h:23, from ../source/base/tensor.cc:16: ../include/deal.II/base/tensor.h: In instantiation of 'void dealii::Tensor::unroll(Iterator, Iterator) const [with Iterator = float*; int rank_ = 1; int dim = 1; Number = float]': ../include/deal.II/base/tensor.h:1736:11: required from 'void dealii::Tensor::unroll(Iterator, Iterator) const [with Iterator = float*; int rank_ = 2; int dim = 1; Number = float]' ../source/base/tensor.cc:52:5: required from 'void dealii::{anonymous}::calculate_svd_in_place(dealii::Tensor<2, dim, Number>&, dealii::Tensor<2, dim, Number>&) [with int dim = 1; Number = float]' ../source/base/tensor.cc:85:25: required from 'dealii::Tensor<2, dim, Number> dealii::project_onto_orthogonal_tensors(const dealii::Tensor<2, dim, Number>&) [with int dim = 1; Number = float]' ../source/base/tensor.cc:92:60: required from here ../include/deal.II/base/tensor.h:1728:51: warning: parameter 'end' set but not used [-Wunused-but-set-parameter] 1728 | const Iterator end) const | ``` This is of course bogus, the compiler simply lost track of the `if constexpr(...)` branch. This is fixed in later gcc versions. Let's simply use the usual `(void)parameter` strategy to make gcc-9.4 happy. --- include/deal.II/base/tensor.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/deal.II/base/tensor.h b/include/deal.II/base/tensor.h index a452ce5411..a6aed73afe 100644 --- a/include/deal.II/base/tensor.h +++ b/include/deal.II/base/tensor.h @@ -1871,6 +1871,7 @@ Tensor::unroll(const Iterator begin, // For rank-1 tensors, we can simply copy the current elements from // our linear array into the output range, and then return the // iterator moved forward by 'dim' elements: + (void)end; Assert(std::distance(begin, end) >= dim, ExcMessage( "The provided iterator range must contain at least 'dim' " -- 2.39.5