mp3guy / ElasticFusion

Real-time dense visual SLAM system
Other
1.77k stars 592 forks source link

-Wclass-memaccess warning #230

Closed amstrudy closed 2 years ago

amstrudy commented 2 years ago

Got this warning compiling on Ubuntu 20.04 with cuda 10.1.243 and gcc 9.3.0. This doesn't inhibit any functionality, but would be nice to clear up.

In file included from /opt/ElasticFusion/Core/src/Deformation.h:29,
                 from /opt/ElasticFusion/Core/src/ElasticFusion.h:30,
                 from /root/elasticfusion_ws/src/elastic_bridge/src/elastic_node.cpp:55:
/opt/ElasticFusion/Core/src/Ferns.h: In constructor ‘Ferns::Frame::Frame(int, int, const Matrix4f&, int, int, unsigned char*, Eigen::Vector4f*, Eigen::Vector4f*)’:
/opt/ElasticFusion/Core/src/Ferns.h:105:91: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘Eigen::Vector4f’ {aka ‘class Eigen::Matrix<float, 4, 1>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  105 |                         memcpy(this->initVerts, verts, numPixels * sizeof(Eigen::Vector4f));
      |                                                                                           ^
In file included from /usr/include/eigen3/Eigen/Core:458,
                 from /opt/Pangolin/include/pangolin/display/opengl_render_state.h:40,
                 from /opt/Pangolin/include/pangolin/display/viewport.h:31,
                 from /opt/Pangolin/include/pangolin/gl/gl.h:30,
                 from /opt/Pangolin/include/pangolin/pangolin.h:33,
                 from /opt/ElasticFusion/Core/src/Utils/../GPUTexture.h:22,
                 from /opt/ElasticFusion/Core/src/Utils/RGBDOdometry.h:23,
                 from /opt/ElasticFusion/Core/src/ElasticFusion.h:22,
                 from /root/elasticfusion_ws/src/elastic_bridge/src/elastic_node.cpp:55:
/usr/include/eigen3/Eigen/src/Core/Matrix.h:178:7: note: ‘Eigen::Vector4f’ {aka ‘class Eigen::Matrix<float, 4, 1>’} declared here
  178 | class Matrix
      |       ^~~~~~
In file included from /opt/ElasticFusion/Core/src/Deformation.h:29,
                 from /opt/ElasticFusion/Core/src/ElasticFusion.h:30,
                 from /root/elasticfusion_ws/src/elastic_bridge/src/elastic_node.cpp:55:
/opt/ElasticFusion/Core/src/Ferns.h:111:91: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘Eigen::Vector4f’ {aka ‘class Eigen::Matrix<float, 4, 1>’} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  111 |                         memcpy(this->initNorms, norms, numPixels * sizeof(Eigen::Vector4f));
      |                                                                                           ^
In file included from /usr/include/eigen3/Eigen/Core:458,
                 from /opt/Pangolin/include/pangolin/display/opengl_render_state.h:40,
                 from /opt/Pangolin/include/pangolin/display/viewport.h:31,
                 from /opt/Pangolin/include/pangolin/gl/gl.h:30,
                 from /opt/Pangolin/include/pangolin/pangolin.h:33,
                 from /opt/ElasticFusion/Core/src/Utils/../GPUTexture.h:22,
                 from /opt/ElasticFusion/Core/src/Utils/RGBDOdometry.h:23,
                 from /opt/ElasticFusion/Core/src/ElasticFusion.h:22,
                 from /root/elasticfusion_ws/src/elastic_bridge/src/elastic_node.cpp:55:
/usr/include/eigen3/Eigen/src/Core/Matrix.h:178:7: note: ‘Eigen::Vector4f’ {aka ‘class Eigen::Matrix<float, 4, 1>’} declared here
  178 | class Matrix