Boost logo

Boost :

Subject: Re: [boost] [thread] compiler error gcc 7.3 on cygwin
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2019-05-06 05:15:20


Le 27/11/2018 à 01:28, James E. King III via Boost a écrit :
> Getting an internal compiler error with gcc 7.3 but only on cygwin 64-bit.
>
> Jim_at_pulsar /cygdrive/c/boost/libs/thread
> $ ../../b2 --abbreviate-paths toolset=gcc cxxstd=11
> define=_POSIX_C_SOURCE=200112L define=__USE_ISOC99 threadapi=pthread
> address-model=64 variant=release -q
> ...
> gcc.compile.c++
> ../../bin.v2/libs/thread/test/test_10963_c.test/gcc-7.3.0/rls/cxstd-11-iso/thrd-mlt/vsblt-hdn/test_10963_c.o
> In file included from ../../boost/thread/detail/invoker.hpp:30:0,
> from ../../boost/thread/future.hpp:31,
> from ../../libs/thread/test/test_10963.cpp:13:
> ../../boost/thread/detail/invoke.hpp: In function ‘decltype
> (*(forward<A0>)(boost::detail::invoke::a0).*boost::detail::invoke::f)
> boost::detail::invoke(Fp&&, A0&&) [with Fp = void
> (boost::executors::basic_thread_pool::*)(); A0 =
> boost::executors::basic_thread_pool*]’:
> ../../boost/thread/detail/invoke.hpp:102:43: internal compiler error:
> in gimplify_expr, at gimplify.c:12006
> return (*boost::forward<A0>(a0)).*f;
> ^
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <https://gcc.gnu.org/bugs/> for instructions.
>
> "g++" -std=c++11 -fvisibility-inlines-hidden -m64 -mthreads -O3
> -finline-functions -Wno-inline -Wall -pedantic -fvisibility=hidden
> -Wextra -Wno-long-long -Wno-unused-parameter -Wunused-function
> -pedantic -DBOOST_ALL_NO_LIB=1
> -DBOOST_THREAD_THROW_IF_PRECONDITION_NOT_SATISFIED -DNDEBUG
> -D_POSIX_C_SOURCE=200112L -D__USE_ISOC99 -I"../.." -c -o
> "../../bin.v2/libs/thread/test/test_10963_c.test/gcc-7.3.0/rls/cxstd-11-iso/thrd-mlt/vsblt-hdn/test_10963_c.o"
> "../../libs/thread/test/test_10963.cpp"
>
> ...failed gcc.compile.c++
> ../../bin.v2/libs/thread/test/test_10963_c.test/gcc-7.3.0/rls/cxstd-11-iso/thrd-mlt/vsblt-hdn/test_10963_c.o...
>
> If I change the C++ language level to 03 the problem goes away. I
> also cannot reproduce it on linux with the same version of compiler
> (but it probably isn't the exact same compiler code). Should I go
> ahead and file that gcc bug?
>
Hi Jim,

I guess you should report the issue, even if you don't have a minimal
program.

I will see if I can workaround the issue and use std::invoke where
available.

Best,

Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk