mp3guy/ElasticFusion

-Wclass-memaccess warning

anja-sheppard opened this issue · 0 comments

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