EDIT: see update below
Do we have a way to silence the following warning from boost?
In file included from /Users/davydden/libs-sources/deal.ii/davydden/include/deal.II/grid/grid_tools.h:43:
/Users/davydden/spack/opt/spack/darwin-highsierra-x86_64/clang-9.0.0-apple/boost-1.63.0-2ljefiz2sl3lv3skrusl3zxvopdtzr7d/include/boost/iostreams/filter/gzip.hpp:674:16: warning: implicit conversion from 'const int' to 'value_type' (aka 'char') changes value from 139 to
-117 [-Wconstant-conversion]
header_ += gzip::magic::id2; // ID2.
~~ ^~~~~~~~~~~~~~~~
?
We got around that in our own bundled boost by explicitly converting to a char: see #4544.
I suppose that we could add -Wconstant-conversion to the list of disabled diagnostics.
i guess i should rather create a PR upstream to fix it once and for all...
I suppose that we could add -Wconstant-conversion to the list of disabled diagnostics.
i was thinking about some trick to disable it for boost only
It looks like my version of boost has the following:
// ...
header_.reserve(length);
header_ += gzip::magic::id1; // ID1.
header_ += static_cast<char>(gzip::magic::id2); // ID2.
header_ += gzip::method::deflate; // CM.
header_ += static_cast<char>(flags); // FLG.
// ...
so it has been fixed, at least in boost 1.65.1.
ah, good, i have 1.63
since it's fixed upstream already, i don't think we need to bother.
@drwells
I suppose that we could add -Wconstant-conversion to the list of disabled diagnostics.
could you please point me to where do we have those?
With boot 1.65.1 and gcc 7.2.0 I have a warning
include/boost/archive/detail/iserializer.hpp:69:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if ! DONT_USE_HAS_NEW_OPERATOR
^~~~~~~~~~~~~~~~~~~~~~~~~~~
which is quite annoying, so I though to add -Wexpansion-to-defined to that list.
It is the DEAL_II_DISABLE_EXTRA_DIAGNOSTICS macro in config.h.in.
thanks a lot @masterleinad
looks like we already have
_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
whereas warnings come from https://github.com/dealii/dealii/blob/master/include/deal.II/base/utilities.h#L40
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:69:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if ! DONT_USE_HAS_NEW_OPERATOR
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/dealii-develop-7hsztk2jpurgk6h4efj5cfvoszjrugju/include/deal.II/base/utilities.h:40,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/dealii-develop-7hsztk2jpurgk6h4efj5cfvoszjrugju/include/deal.II/base/tensor.h:25,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/dealii-develop-7hsztk2jpurgk6h4efj5cfvoszjrugju/include/deal.II/base/point.h:22,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/dealii-develop-7hsztk2jpurgk6h4efj5cfvoszjrugju/include/deal.II/base/quadrature.h:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/dealii-develop-7hsztk2jpurgk6h4efj5cfvoszjrugju/include/deal.II/base/quadrature_point_data.h:21,
from <user_headers>
I don't understand what's going on. Could it be that GCC7.2.0 has a different way to ignore such warnings?
p.s. configure seems to pick up that compiler has diagnostics pragma
//Test DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA
DEAL_II_COMPILER_HAS_DIAGNOSTIC_PRAGMA:INTERNAL=1
p.p.s. I did not mention that those warnings are from a user code.
this probably won't fix the issue, but #5786 is certainly sensible.
this probably won't fix the issue
unfortunately it did not.
@davydden Does the user code have additional includes for the boost headers? If yes, are they guarded by the macro as well?
Does the user code have additional includes for the boost headers? If yes, are they guarded by the macro as well?
nope, actually i see those warnings also when compiling deal.II. Also if you look at https://github.com/dealii/dealii/issues/5466#issuecomment-360076509 , it shows that these specific warnings are from deal.II headers.
@davydden That's definitely odd. I tried to reproduce quickly (boost-1.63, boost-1.65 - they both contain the line in question) - but compiling the something with that include does not produce any warnings. (You said you also trigger in the deal.II sources - can you look up what compilation unit that was? Would make testing a lot quicker :-)).
@tamiko
here's deal.ii's output with verbose makefile
[ 1%] Building CXX object source/sundials/CMakeFiles/obj_sundials_debug.dir/kinsol.cc.o
cd /home/davydden/libs/deal.ii/_build/source/sundials && /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/openmpi-3.0.0-g6fdfof2bsh6gl6eoq4jxxnpb4jn72zh/bin/mpic++ -DDEBUG -I/home/davydden/libs/deal.ii/_build/source/sundials -I/home/davydden/libs/deal.ii/_build/include -I/home/davydden/libs/deal.ii/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/openblas-0.2.20-iwcpvhlyjkuggdhmoyedycmuxfanoqux/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/intel-tbb-2018.2-bw7wdltlv34ykhiwsshboevxl2zz4gps/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/zlib-1.2.11-rua2elvrgtlyo6rd2gnorgsh73sqxwoo/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/metis-5.1.0-jcoum75wiytkp7kvpmvuwlkcv6cohyxz/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/trilinos-12.12.1-kaigyf3yqiroeggovnbpcdmyy3ur5adi/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/mumps-5.1.1-76ng4dvq4kmaz5jknsfoabmbufqajy63/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/hypre-2.13.0-t4ebmf2zga6bvfoy2v7flgfcsl4423rb/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/suite-sparse-5.1.0-ofaw65orbcuqhj5muhb3kqyikivgphaa/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/superlu-dist-5.2.2-nyzoujr4xuusfqymkq7ash3tg2d2vzgt/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/hdf5-1.10.1-mcwtgx3a2ap4l4e3f4rqfaedvehwhs5t/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/parmetis-4.0.3-ptocmtrro6fwy5htphyzvechzwkyszen/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/matio-1.5.9-z7ww6eudl6ias5fhknm32vzzavh2wkgd/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/netcdf-4.4.1.1-3hmdhhdmnve4kqt223c2t74oeklyfuwm/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/petsc-3.8.3-plp6s5kqfz342xm55xda3zi7jyntsugf/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/gsl-2.4-drf2h54dxg5pbh4blzemmcmdj437nyhw/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/muparser-2.2.5-a3zqmcvbsezke57pg6nnfgk5ueb5m2sz/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/netcdf-cxx-4.2-wimv7w4ciwqfhwwnsauwlffvbejgrn3s/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/oce-0.18.2-yycachc3nnyteiaqwwnk7zgob223ccf4/include/oce -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/p4est-2.0-oylbryu3kyvy32vzqma6cwplgxogs5bf/include -I/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/slepc-3.8.2-z6wen63ggx5zrve7hxsrjttea3zrq56u/include -pedantic -fPIC -Wall -Wextra -Wpointer-arith -Wwrite-strings -Wsynth -Wsign-compare -Wswitch -Woverloaded-virtual -Wno-placement-new -Wno-deprecated-declarations -Wno-literal-suffix -fopenmp-simd -std=c++17 -Wno-unused-local-typedefs -Og -ggdb -Wa,--compress-debug-sections -o CMakeFiles/obj_sundials_debug.dir/kinsol.cc.o -c /home/davydden/libs/deal.ii/source/sundials/kinsol.cc
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/tensor.h:25,
from /home/davydden/libs/deal.ii/include/deal.II/base/point.h:22,
from /home/davydden/libs/deal.ii/include/deal.II/non_matching/immersed_surface_quadrature.h:20,
from /home/davydden/libs/deal.ii/source/non_matching/immersed_surface_quadrature.cc:16:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:69:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if ! DONT_USE_HAS_NEW_OPERATOR
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/tensor.h:25,
from /home/davydden/libs/deal.ii/include/deal.II/base/point.h:22,
from /home/davydden/libs/deal.ii/include/deal.II/non_matching/immersed_surface_quadrature.h:20,
from /home/davydden/libs/deal.ii/source/non_matching/immersed_surface_quadrature.cc:16:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:212:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if DONT_USE_HAS_NEW_OPERATOR
^ ~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/tensor.h:25,
from /home/davydden/libs/deal.ii/include/deal.II/base/point.h:22,
from /home/davydden/libs/deal.ii/include/deal.II/non_matching/immersed_surface_quadrature.h:20,
from /home/davydden/libs/deal.ii/source/non_matching/immersed_surface_quadrature.cc:16:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:69:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if ! DONT_USE_HAS_NEW_OPERATOR
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/tensor.h:25,
from /home/davydden/libs/deal.ii/include/deal.II/base/point.h:22,
from /home/davydden/libs/deal.ii/include/deal.II/non_matching/immersed_surface_quadrature.h:20,
from /home/davydden/libs/deal.ii/source/non_matching/immersed_surface_quadrature.cc:16:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:212:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if DONT_USE_HAS_NEW_OPERATOR
^ ~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/aligned_vector.h:23,
from /home/davydden/libs/deal.ii/include/deal.II/base/table.h:24,
from /home/davydden/libs/deal.ii/include/deal.II/base/array_view.h:21,
from /home/davydden/libs/deal.ii/include/deal.II/base/mpi.h:20,
from /home/davydden/libs/deal.ii/include/deal.II/sundials/ida.h:20,
from /home/davydden/libs/deal.ii/source/sundials/ida.cc:17:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:69:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if ! DONT_USE_HAS_NEW_OPERATOR
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/aligned_vector.h:23,
from /home/davydden/libs/deal.ii/include/deal.II/base/table.h:24,
from /home/davydden/libs/deal.ii/include/deal.II/base/array_view.h:21,
from /home/davydden/libs/deal.ii/include/deal.II/base/mpi.h:20,
from /home/davydden/libs/deal.ii/include/deal.II/sundials/ida.h:20,
from /home/davydden/libs/deal.ii/source/sundials/ida.cc:17:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:212:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if DONT_USE_HAS_NEW_OPERATOR
^ ~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/aligned_vector.h:23,
from /home/davydden/libs/deal.ii/include/deal.II/base/table.h:24,
from /home/davydden/libs/deal.ii/include/deal.II/base/array_view.h:21,
from /home/davydden/libs/deal.ii/include/deal.II/base/mpi.h:20,
from /home/davydden/libs/deal.ii/include/deal.II/sundials/arkode.h:20,
from /home/davydden/libs/deal.ii/source/sundials/arkode.cc:17:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:69:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if ! DONT_USE_HAS_NEW_OPERATOR
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/aligned_vector.h:23,
from /home/davydden/libs/deal.ii/include/deal.II/base/table.h:24,
from /home/davydden/libs/deal.ii/include/deal.II/base/array_view.h:21,
from /home/davydden/libs/deal.ii/include/deal.II/base/mpi.h:20,
from /home/davydden/libs/deal.ii/include/deal.II/sundials/arkode.h:20,
from /home/davydden/libs/deal.ii/source/sundials/arkode.cc:17:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:212:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if DONT_USE_HAS_NEW_OPERATOR
^ ~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/aligned_vector.h:23,
from /home/davydden/libs/deal.ii/include/deal.II/base/table.h:24,
from /home/davydden/libs/deal.ii/include/deal.II/base/array_view.h:21,
from /home/davydden/libs/deal.ii/include/deal.II/base/mpi.h:20,
from /home/davydden/libs/deal.ii/include/deal.II/sundials/arkode.h:20,
from /home/davydden/libs/deal.ii/source/sundials/arkode.cc:17:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:69:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if ! DONT_USE_HAS_NEW_OPERATOR
^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/interface_iarchive.hpp:22:0,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/common_iarchive.hpp:23,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/basic_binary_iarchive.hpp:30,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive_impl.hpp:21,
from /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/binary_iarchive.hpp:20,
from /home/davydden/libs/deal.ii/include/deal.II/base/utilities.h:41,
from /home/davydden/libs/deal.ii/include/deal.II/base/aligned_vector.h:23,
from /home/davydden/libs/deal.ii/include/deal.II/base/table.h:24,
from /home/davydden/libs/deal.ii/include/deal.II/base/array_view.h:21,
from /home/davydden/libs/deal.ii/include/deal.II/base/mpi.h:20,
from /home/davydden/libs/deal.ii/include/deal.II/sundials/arkode.h:20,
from /home/davydden/libs/deal.ii/source/sundials/arkode.cc:17:
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/boost-1.65.1-hn67y4ntcszpi4w4e2vmbu7j65c3f7jq/include/boost/archive/detail/iserializer.hpp:212:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if DONT_USE_HAS_NEW_OPERATOR
^ ~~~~~~~~~~~~~~~~~~~~~~~
[ 1%] Linking CXX executable ../../bin/expand_instantiations
cd /home/davydden/libs/deal.ii/_build/cmake/scripts && /home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/cmake-3.10.1-47czcvtlhc2cehy4v32kaced72tyfrue/bin/cmake -E cmake_link_script CMakeFiles/expand_instantiations_exe.dir/link.txt --verbose=1
/home/davydden/spack/opt/spack/linux-ubuntu17.10-x86_64/gcc-7.2.0/openmpi-3.0.0-g6fdfof2bsh6gl6eoq4jxxnpb4jn72zh/bin/mpic++ -rdynamic -Wl,--as-needed -rdynamic CMakeFiles/expand_instantiations_exe.dir/expand_instantiations.cc.o -o ../../bin/expand_instantiations
Why is -Wexpansion-to-defined twice inside that macro?
Why is -Wexpansion-to-defined twice inside that macro?
i tried removing the second one but it makes no difference.
So the pragma is ignored in gcc 7.x: https://godbolt.org/g/Y3irFk
The only option I see is that we pass -Wno-expansion-to-defined unconditionally as a compile flag for gcc for now.
If this is in the bundled BOOST, we can only patch that.
It鈥檚 not bundled (see paths above). But I could patch it as well. (Spack has interface to patch dependencies from dependent packages which I already use to fix singleton issue)
The only option I see is that we pass -Wno-expansion-to-defined unconditionally as a compile flag for gcc for now.
That would also be ok
I consider this a bug in gcc and I assume other dependencies will trigger this message too.
I adjusted @tjhei 's example a bit (see https://godbolt.org/g/tAv4yd ) and will report it to GCC as soon as I get an account on their bug tracker. @bangerth I know that you were involved with GCC, do you agree that mine and @tjhei 's code snippets indeed are supposed to work?
p.s. @BenBrands ping, this is the issue related to compiler warnings form boost that you also see.
here's a code snippet
# define DISABLE_EXTRA_DIAGNOSTICS \
_Pragma("GCC diagnostic push") /*!*/ \
_Pragma("GCC diagnostic ignored \"-Wexpansion-to-defined\"") \
# define ENABLE_EXTRA_DIAGNOSTICS \
_Pragma("GCC diagnostic pop")
DISABLE_EXTRA_DIAGNOSTICS
#define BLA defined(FOO)
#if BLA
int k=0;
#endif
ENABLE_EXTRA_DIAGNOSTICS
int z = 0;
I agree, though this isn't exactly my specialty -- this is not a question about whether a compiler is standards conforming, but how exactly it interprets the _Pragma things. The standard specifically leaves these to compiler makers to figure out.
But as a general rule, it's definitely reasonable to assume that the code you have produces the same warnings as if you had passed -Wno-expansion-to-defined on the command line.
(As a side remark, I wouldn't be opposed to just unconditionally using this flag. We don't play much with the preprocessor, so the risk involved in disabling this warning is pretty small in our code base.)
thanks for having a look. I have submitted the bug-report here https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84127
I wouldn't be opposed to just unconditionally using this flag
I think we should indeed do this. This behaviour is there in 7.2.0 which is a default in Ubuntu 17.10 and will probably also be the case for the next LTS. So it would be good not to annoy users with such warnings.
Should we give another shot at #3897 This is what we do in several projects I am working on and this allows us to be a lot more aggressive on the flags we use inside our projects. The problem with disabling flags because of third-party library is the more libraries we support the more flags we need to disable.
As a side remark, I wouldn't be opposed to just unconditionally using this flag.
That is also my suggestion. I don't think that this is warning we are likely to trigger and want to be warned about. @tamiko , do you want to give isystem another shot first?
@tjhei
@tamiko , do you want to give isystem another shot first?
he already did, that PR is almost ready, have a look.
he already did, that PR is almost ready, have a look.
Yes, I saw that. This might have other consequences, so I was curious if @tamiko considers disabling this flag a good alternative.
This might have other consequences, so I was curious if @tamiko considers disabling this flag a good alternative.
frankly, i think the right thing to do is to remove that macro altogether. Judging from https://github.com/dealii/dealii/pull/3897#discussion_r164797578 already 5 developers are in favour.