Compatibility with clang-19
authorJochen Sprickerhof <git@jochen.sprickerhof.de>
Tue, 14 Jan 2025 13:14:26 +0000 (14:14 +0100)
committerJochen Sprickerhof <git@jochen.sprickerhof.de>
Tue, 14 Jan 2025 13:14:33 +0000 (14:14 +0100)
Closes: #1091304
debian/patches/0005-Compatibility-with-clang-19.patch [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/0005-Compatibility-with-clang-19.patch b/debian/patches/0005-Compatibility-with-clang-19.patch
new file mode 100644 (file)
index 0000000..13fcf49
--- /dev/null
@@ -0,0 +1,104 @@
+From: Markus Vieth <mvieth@techfak.uni-bielefeld.de>
+Date: Thu, 22 Aug 2024 20:48:19 +0200
+Subject: Compatibility with clang-19
+
+---
+ .../pcl/registration/correspondence_rejection_features.h      |  6 +++---
+ .../include/pcl/surface/3rdparty/poisson4/octree_poisson.hpp  | 11 +++++++----
+ .../include/pcl/surface/3rdparty/poisson4/sparse_matrix.hpp   | 10 +++++++---
+ 3 files changed, 17 insertions(+), 10 deletions(-)
+
+diff --git a/registration/include/pcl/registration/correspondence_rejection_features.h b/registration/include/pcl/registration/correspondence_rejection_features.h
+index 44835c3..f3bab8f 100644
+--- a/registration/include/pcl/registration/correspondence_rejection_features.h
++++ b/registration/include/pcl/registration/correspondence_rejection_features.h
+@@ -269,9 +269,9 @@ protected:
+       // Check if the representations are valid
+       if (!feature_representation_->isValid(feat_src) ||
+           !feature_representation_->isValid(feat_tgt)) {
+-        PCL_ERROR("[pcl::registration::%s::getCorrespondenceScore] Invalid feature "
+-                  "representation given!\n",
+-                  this->getClassName().c_str());
++        PCL_ERROR(
++            "[pcl::registration::CorrespondenceRejectorFeatures::FeatureContainer::"
++            "getCorrespondenceScore] Invalid feature representation given!\n");
+         return (std::numeric_limits<double>::max());
+       }
+diff --git a/surface/include/pcl/surface/3rdparty/poisson4/octree_poisson.hpp b/surface/include/pcl/surface/3rdparty/poisson4/octree_poisson.hpp
+index 7ed8aaf..e7f45b6 100644
+--- a/surface/include/pcl/surface/3rdparty/poisson4/octree_poisson.hpp
++++ b/surface/include/pcl/surface/3rdparty/poisson4/octree_poisson.hpp
+@@ -746,7 +746,10 @@ namespace pcl
+       Real temp,dist2;
+       if(!children){return this;}
+       for(int i=0;i<Cube::CORNERS;i++){
+-        temp=SquareDistance(children[i].center,p);
++        Point3D<Real> child_center;
++        Real child_width;
++        children[i].centerAndWidth(child_center, child_width);
++        temp=SquareDistance(child_center,p);
+         if(!i || temp<dist2){
+           dist2=temp;
+           nearest=i;
+@@ -807,7 +810,7 @@ namespace pcl
+       children=NULL;
+       d=node.depth ();
+-      for(i=0;i<DIMENSION;i++){this->offset[i] = node.offset[i];}
++      for(i=0;i<DIMENSION;i++){this->off[i] = node.off[i];}
+       if(node.children){
+         initChildren();
+         for(i=0;i<Cube::CORNERS;i++){children[i] = node.children[i];}
+@@ -817,7 +820,7 @@ namespace pcl
+     template <class NodeData,class Real>
+     int OctNode<NodeData,Real>::CompareForwardDepths(const void* v1,const void* v2){
+-      return ((const OctNode<NodeData,Real>*)v1)->depth-((const OctNode<NodeData,Real>*)v2)->depth;
++      return ((const OctNode<NodeData,Real>*)v1)->depth()-((const OctNode<NodeData,Real>*)v2)->depth();
+     }
+     template< class NodeData , class Real >
+@@ -874,7 +877,7 @@ namespace pcl
+     template <class NodeData,class Real>
+     int OctNode<NodeData,Real>::CompareBackwardDepths(const void* v1,const void* v2){
+-      return ((const OctNode<NodeData,Real>*)v2)->depth-((const OctNode<NodeData,Real>*)v1)->depth;
++      return ((const OctNode<NodeData,Real>*)v2)->depth()-((const OctNode<NodeData,Real>*)v1)->depth();
+     }
+     template <class NodeData,class Real>
+diff --git a/surface/include/pcl/surface/3rdparty/poisson4/sparse_matrix.hpp b/surface/include/pcl/surface/3rdparty/poisson4/sparse_matrix.hpp
+index 24f0a54..5e54ac7 100644
+--- a/surface/include/pcl/surface/3rdparty/poisson4/sparse_matrix.hpp
++++ b/surface/include/pcl/surface/3rdparty/poisson4/sparse_matrix.hpp
+@@ -228,14 +228,18 @@ namespace pcl
+     template<class T>
+     void SparseMatrix<T>::SetZero()
+     {
+-      Resize(this->m_N, this->m_M);
++      // copied from operator *=
++      for (int i=0; i<rows; i++)
++      {
++        for(int ii=0;ii<rowSizes[i];ii++){m_ppElements[i][ii].Value=T(0);}
++      }
+     }
+     template<class T>
+     void SparseMatrix<T>::SetIdentity()
+     {
+       SetZero();
+-      for(int ij=0; ij < Min( this->Rows(), this->Columns() ); ij++)
++      for(int ij=0; ij < std::min<int>( rows, _maxEntriesPerRow ); ij++)
+         (*this)(ij,ij) = T(1);
+     }
+@@ -388,7 +392,7 @@ namespace pcl
+       T alpha,beta,rDotR;
+       int i;
+-      solution.Resize(M.Columns());
++      solution.Resize(bb.Dimensions());
+       solution.SetZero();
+       d=r=bb;
index 9a27db05e0d28992301c18492eaf3decc720ac9d..2375c4793d47acee518dd26460f5f2bd5cc1b3ad 100644 (file)
@@ -2,3 +2,4 @@
 0003-Use-newly-build-libs-when-testing.patch
 0004-Work-around-test-failing-on-i386.patch
 0004-Fix-minor-issues-in-tests.patch
+0005-Compatibility-with-clang-19.patch