gnudatalanguage / gdl

GDL - GNU Data Language
GNU General Public License v2.0
274 stars 61 forks source link

how to manage the various warnings issued by various compilers ? #1469

Open alaingdl opened 1 year ago

alaingdl commented 1 year ago

I am compiling Git versions of GDL on various machines, then various version of C++ compilers (eg gcc 8, 11.3, clang 13.1.6 ) and they issue various warning messages. Some are related to our code. Some are due to external lib. eg clang + osx :

/usr/local/include/GraphicsMagick/Magick++/STL.h:1653:47: warning: 'unary_function<Magick::Image &, void>' is deprecated [-Wdeprecated-declarations]
  class MagickDLLDecl quantizeColorSpaceImage MAGICK_UNARY_FUNCTION_IMAGE_REF_BASE

What to do with the warnings related to GDL ? (My knowledge of c/c++ is too limited to solve most of them on a long term basis ...) The Eigen' related one is annoying.

Should we use a dedicated "bug report" (I don't know how to see the issues sorted by last messages, just sorted by creation), should we created a new issue for each one ?

A.

alaingdl commented 1 year ago

debian 10 gcc version 8.3.0 (Debian 8.3.0-6) ii libeigen3-dev 3.3.7-1

seems to be related to _instantiatetemplates.hpp and datatype.cpp

/home/alaingdl/GDL/gdl-1.0.1-git230109cmake/src/datatypes.cpp:1374:6:   required from ‘BaseGDL* Data_<Sp>::Transpose(DUInt*) [with Sp = SpDFloat; DUInt = short unsigned int]’
/home/alaingdl/GDL/gdl-1.0.1-git230109cmake/src/instantiate_templates.hpp:29:16:   required from here
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h:42:71: warning: ignoring attributes on template argument ‘Eigen::PacketType<float, Eigen::DefaultDevice>::type’ {aka ‘__vector(4) float’} [-Wignored-attributes]
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h: In instantiation of ‘struct Eigen::TensorEvaluator<Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer>, Eigen::DefaultDevice>’:
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h:104:20:   required from ‘const int Eigen::TensorEvaluator<const Eigen::TensorShufflingOp<short unsigned int* const, Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer> >, Eigen::DefaultDevice>::NumDims’
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h:105:34:   required from ‘struct Eigen::TensorEvaluator<const Eigen::TensorShufflingOp<short unsigned int* const, Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer> >, Eigen::DefaultDevice>’
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h:96:70:   required from ‘struct Eigen::TensorEvaluator<const Eigen::TensorAssignOp<Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer>, const Eigen::TensorShufflingOp<short unsigned int* const, Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer> > >, Eigen::DefaultDevice>’
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h:92:21:   required from ‘const bool Eigen::internal::IsVectorizable<Eigen::DefaultDevice, const Eigen::TensorAssignOp<Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer>, const Eigen::TensorShufflingOp<short unsigned int* const, Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer> > > >::value’
/usr/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h:312:65:   required from ‘Eigen::TensorMap<PlainObjectType, Options_, MakePointer_>::Self& Eigen::TensorMap<PlainObjectType, Options_, MakePointer_>::operator=(const OtherDerived&) [with OtherDerived = Eigen::TensorShufflingOp<short unsigned int* const, Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer> >; PlainObjectType = Eigen::Tensor<float, 7, 0, long int>; int Options_ = 0; MakePointer_ = Eigen::MakePointer; Eigen::TensorMap<PlainObjectType, Options_, MakePointer_>::Self = Eigen::TensorMap<Eigen::Tensor<float, 7, 0, long int>, 0, Eigen::MakePointer>]’