Warnings from clang 11
When building LHCb with clang 11, there are a number of -Wnon-c-typedef-for-linkage
warnings. A couple of examples are below:
(build/Kernel/SOAContainer/submodules/SOAContainer/examples)$ /usr/bin/ccache /cvmfs/lhcb.cern.ch/lib/bin/x86_64-centos7/lcg-clang++-11.1.0 -DBOOST_FILESYSTEM_VERSION=3 -DBOOST_SPIRIT_USE_PHOENIX_V3 -DGAUDI_V20_COMPAT -DPACKAGE_NAME="SOAContainer" -DPACKAGE_VERSION="HEAD" -D_GNU_SOURCE -Df2cFortran -Dlinux -Dunix -Ibuild/Kernel/SOAContainer/submodules/SOAContainer/examples -IKernel/SOAContainer/submodules/SOAContainer/examples -IKernel/SOAContainer/submodules/SOAContainer/include -Ibuild/include -isystem /cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_100/XercesC/3.2.3/x86_64-centos7-clang11-opt/include -isystem /cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_100/clhep/2.4.4.0/x86_64-centos7-clang11-opt/lib/CLHEP-2.4.4.0/../../include -isystem /cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_100/ROOT/v6.24.00/x86_64-centos7-clang11-opt/include -isystem /cvmfs/lhcb.cern.ch/lib/lcg/releases/Boost/1.75.0-6a4e8/x86_64-centos7-clang11-opt/include -march=x86-64 -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mcx16 -msahf -fmessage-length=0 -pipe -Wall -Wextra -Werror=return-type -pthread -pedantic -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -Wnon-virtual-dtor -std=c++17 -fdiagnostics-color -O3 -DNDEBUG -o CMakeFiles/PointsWithConstructor.dir/PointsWithConstructor.cc.o -c Kernel/SOAContainer/submodules/SOAContainer/examples/PointsWithConstructor.cc
In file included from Kernel/SOAContainer/submodules/SOAContainer/examples/PointsWithConstructor.cc:16:
In file included from Kernel/SOAContainer/submodules/SOAContainer/include/SOAContainer.h:12:
In file included from Kernel/SOAContainer/submodules/SOAContainer/include/SOAView.h:22:
Kernel/SOAContainer/submodules/SOAContainer/include/SOATypelistUtils.h:51:35: warning: anonymous non-C-compatible type given name for linkage purposes by alias declaration; add a tag name here [-Wnon-c-typedef-for-linkage]
using xAtYEq0 = struct : public wrap_type<double> {};
^
xAtYEq0
Kernel/SOAContainer/submodules/SOAContainer/include/SOATypelistUtils.h:51:38: note: type is not C-compatible due to this base class
using xAtYEq0 = struct : public wrap_type<double> {};
^~~~~~~~~~~~~~~~~~~~~~~~
Kernel/SOAContainer/submodules/SOAContainer/include/SOATypelistUtils.h:51:19: note: type is given name 'xAtYEq0' for linkage purposes by this alias declaration
using xAtYEq0 = struct : public wrap_type<double> {};
^
Kernel/SOAContainer/submodules/SOAContainer/include/SOATypelistUtils.h:52:35: warning: anonymous non-C-compatible type given name for linkage purposes by alias declaration; add a tag name here [-Wnon-c-typedef-for-linkage]
using zAtYEq0 = struct : public wrap_type<double> {};
^
zAtYEq0
Kernel/SOAContainer/submodules/SOAContainer/include/SOATypelistUtils.h:52:38: note: type is not C-compatible due to this base class
using zAtYEq0 = struct : public wrap_type<double> {};
^~~~~~~~~~~~~~~~~~~~~~~~
Kernel/SOAContainer/submodules/SOAContainer/include/SOATypelistUtils.h:52:19: note: type is given name 'zAtYEq0' for linkage purposes by this alias declaration
using zAtYEq0 = struct : public wrap_type<double> {};
^