Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some boost warnings with my R package #209

Closed
stla opened this issue Jan 12, 2022 · 2 comments
Closed

Some boost warnings with my R package #209

stla opened this issue Jan 12, 2022 · 2 comments

Comments

@stla
Copy link

stla commented Jan 12, 2022

Hello,

I'm currently making a R package which uses some C++ libraries, including boost and CGAL.

I don't get any problem on Linux. But when I run R CMD CHECK to check my package on Windows, I get these warnings:

* checking whether package 'RCGAL' can be installed ... WARNING
Found the following significant warnings:
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:214:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'boost::movelib::detail::iterator_to_element_ptr<std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >*>::element_type' {aka 'struct std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:214:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'boost::movelib::detail::iterator_to_element_ptr<std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>*>::element_type' {aka 'struct std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Advancing_front_surface_reconstruction_cell_base_3<CGAL::Epick, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Epick, CGAL::Triangulation_cell_base_3<CGAL::Epick, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Advancing_front_surface_reconstruction_vertex_base_3<CGAL::Epick>, CGAL::Advancing_front_surface_reconstruction_cell_base_3<CGAL::Epick> > > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Triangulation_vertex_base_with_info_3<unsigned int, CGAL::Epick> > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Delaunay_triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_with_info_3<int, CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Reconstruction_vertex_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_vertex_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_vertex_base_3<void> > >, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_with_info_3<int, CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_cell_base_3<void> > > >, CGAL::Sequential_tag> > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Delaunay_triangulation_cell_base_with_circumcenter_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Surface_mesh_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Surface_mesh_vertex_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_vertex_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_vertex_base_3<void> > >, CGAL::Delaunay_triangulation_cell_base_with_circumcenter_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Surface_mesh_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_cell_base_3<void> > > > >, CGAL::Sequential_tag> > > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
See 'C:/SL/MyPackages/RCGAL.Rcheck/00install.out' for details.

Do you know what are these warnings, and how can I get rid of them? CRAN (the R packages repository) will not accept my package if there are these warnings.

Cheers.

@mclow mclow transferred this issue from boostorg/boost Jan 12, 2022
@igaztanaga
Copy link
Member

Many thanks for the report!

@mglisse
Copy link

mglisse commented Oct 7, 2023

@igaztanaga Your changes here essentially revert what you did some years ago for #73 (though I don't know why you kept a partial specialization of is_trivially_copy_assignable and others if they are always going to be false), so the performance gains from that time disappeared, see #248.
62a8b66 was supposed to disable the warnings, maybe the pragma just needed some tweaks, or you could have added some (void*) casts in the code or something? At least a heads-up, reopening #73, would have been nice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants