$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [mpl] int_<INT_MIN> fails to compile under gcc 4.6
From: Philipp Reh (sefi_at_[hidden])
Date: 2011-03-06 05:50:16
Stirling Westrup wrote:
> I'm not actually sure if this is a gcc regression, or a bug in mpl,
> but the following code, which compiles under gcc 4.5, doesn't do so
> under gcc 4.6:
>
> #include <climits>
> #include <boost/mpl/int.hpp>
> typedef boost::mpl::int_<INT_MIN> Foo;
> Foo f;
>
>
> It produces the errors:
>
> /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp: In
> instantiation of âmpl_::int_<-0x00000000080000000>â:
> test_test.cpp:8:27: instantiated from here
> /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp:73:96: error:
> â2147483647â is not a valid template argument for type âintâ because
> it is a non-constant expression
> /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp:73:96: error:
> overflow in constant expression [-fpermissive]
>
>
> I've already created a trak ticket for this (#5268), but was wondering
> if anyone had any insights as to its cause and/or any workarounds. My
> guess is that its related to gcc rewriting parts of its constant
> folding code to support constexpr.
>
>
>
>
>
I can confirm that. INT_MIN isn't the only problem, it fails for a lot of
other values as well.
Can you please raise this issue on the gcc bugtracker because the release is
very close.
Cheers,
Philipp