cgal/Polygon_mesh_processing/include/CGAL
Laurent Rineau 88f9f00922 fix warning -Wstringop-overflow
Fix that warning, due to a copy of `tuple<Point, int, int>` in compare operators for `std::sort` and `std::unique`, in `CGAL::Polygon_mesh_processing::autorefine_impl::collect_intersections`.

```
In member function ‘std::__atomic_base<_IntTp>::__int_type std::__atomic_base<_IntTp>::fetch_add(__int_type, std::memory_order) [with _ITp = int]’,
    inlined from ‘void CGAL::Handle::incref() const’ at /mnt/testsuite/include/CGAL/Handle.h:87:29,
    inlined from ‘CGAL::Handle::Handle(const CGAL::Handle&)’ at /mnt/testsuite/include/CGAL/Handle.h:55:13,
    inlined from ‘CGAL::Lazy<CGAL::Point_3<CGAL::Simple_cartesian<CGAL::Interval_nt<false> > >, CGAL::Point_3<CGAL::Simple_cartesian<__gmp_expr<__mpq_struct [1], __mpq_struct [1]> > >, CGAL::Cartesian_converter<CGAL::Simple_cartesian<__gmp_expr<__mpq_struct [1], __mpq_struct [1]> >, CGAL::Simple_cartesian<CGAL::Interval_nt<false> >, CGAL::NT_converter<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, CGAL::Interval_nt<false> > > >::Lazy(const CGAL::Lazy<CGAL::Point_3<CGAL::Simple_cartesian<CGAL::Interval_nt<false> > >, CGAL::Point_3<CGAL::Simple_cartesian<__gmp_expr<__mpq_struct [1], __mpq_struct [1]> > >, CGAL::Cartesian_converter<CGAL::Simple_cartesian<__gmp_expr<__mpq_struct [1], __mpq_struct [1]> >, CGAL::Simple_cartesian<CGAL::Interval_nt<false> >, CGAL::NT_converter<__gmp_expr<__mpq_struct [1], __mpq_struct [1]>, CGAL::Interval_nt<false> > > >&)’ at /mnt/testsuite/include/CGAL/Lazy.h:877:7,
    inlined from ‘CGAL::Point_3<CGAL::Epeck>::Point_3(const CGAL::Point_3<CGAL::Epeck>&)’ at /mnt/testsuite/include/CGAL/Point_3.h:30:7,
    inlined from ‘std::_Head_base<_Idx, _Head, false>::_Head_base(const std::_Head_base<_Idx, _Head, false>&) [with long unsigned int _Idx = 0; _Head = CGAL::Point_3<CGAL::Epeck>]’ at /usr/include/c++/15/tuple:208:17,
    inlined from ‘std::_Tuple_impl<_Idx, _Head, _Tail ...>::_Tuple_impl(const std::_Tuple_impl<_Idx, _Head, _Tail ...>&) [with long unsigned int _Idx = 0; _Head = CGAL::Point_3<CGAL::Epeck>; _Tail = {int, int}]’ at /usr/include/c++/15/tuple:318:17,
    inlined from ‘std::tuple< <template-parameter-1-1> >::tuple(const std::tuple< <template-parameter-1-1> >&) [with _Elements = {CGAL::Point_3<CGAL::Epeck>, int, int}]’ at /usr/include/c++/15/tuple:1502:17,
    inlined from ‘bool __gnu_cxx::__ops::_Val_comp_iter<_Compare>::operator()(_Value&, _Iterator) [with _Value = std::tuple<CGAL::Point_3<CGAL::Epeck>, int, int>; _Iterator = __gnu_cxx::__normal_iterator<std::tuple<CGAL::Point_3<CGAL::Epeck>, int, int>*, std::vector<std::tuple<CGAL::Point_3<CGAL::Epeck>, int, int> > >; _Compare = CGAL::Polygon_mesh_processing::autorefine_impl::collect_intersections<CGAL::Epeck>(const std::array<CGAL::Point_3<CGAL::Epeck>, 3>&, const std::array<CGAL::Point_3<CGAL::Epeck>, 3>&, std::vector<std::tuple<CGAL::Point_3<CGAL::Epeck>, int, int> >&)::<lambda(auto:82, auto:83)>]’ at /usr/include/c++/15/bits/predefined_ops.h:240:23,
    inlined from ‘void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<tuple<CGAL::Point_3<CGAL::Epeck>, int, int>*, vector<tuple<CGAL::Point_3<CGAL::Epeck>, int, int> > >; _Compare = __gnu_cxx::__ops::_Val_comp_iter<CGAL::Polygon_mesh_processing::autorefine_impl::collect_intersections<CGAL::Epeck>(const std::array<CGAL::Point_3<CGAL::Epeck>, 3>&, const std::array<CGAL::Point_3<CGAL::Epeck>, 3>&, std::vector<std::tuple<CGAL::Point_3<CGAL::Epeck>, int, int> >&)::<lambda(auto:82, auto:83)> >]’ at /usr/include/c++/15/bits/stl_algo.h:1758:20:
/usr/include/c++/15/bits/atomic_base.h:631:34: warning: ‘unsigned int __atomic_fetch_add_4(volatile void*, unsigned int, int)’ writing 4 bytes into a region of size 0 overflows the destination [-Wstringop-overflow=]
  631 |       { return __atomic_fetch_add(&_M_i, __i, int(__m)); }
      |                ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
```

See for example https://cgal.geometryfactory.com/CGAL/testsuite/CGAL-6.2-Ic-6/Constrained_triangulation_3_Examples/TestReport_cgaltest_Fedora-rawhide-Release.gz
2025-09-25 16:25:37 +02:00
..
Polygon_mesh_processing fix warning -Wstringop-overflow 2025-09-25 16:25:37 +02:00
Surface_mesh_simplification/Policies/Edge_collapse Merge remote-tracking branch 'sloriot/CGAL-using_c++17_stl' into HEAD 2023-07-05 11:29:35 +02:00
Polygon_mesh_slicer.h AABBGeomTraits -> AABBGeomTraits_3 2024-04-15 11:59:00 +02:00
Polyhedral_envelope.h Merge pull request #6849 from JulyCode/gsoc2022-isosurface 2025-04-03 21:41:22 +02:00
Rigid_triangle_mesh_collision_detection.h Replace deprecated classes 2024-03-05 07:08:51 +00:00
Side_of_triangle_mesh.h add a constructor taking a lvalue of an AABB-tree 2025-07-31 11:12:38 +02:00
polygon_mesh_processing.h add missing license include directives 2024-01-04 11:53:18 +01:00