X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=boost%2Fboost%2Fcrc.hpp;h=6be5aa1d8b1bef83fd99fe63b0553d1c96189d81;hb=c48091f33a773732fa6c789927e5833e44108d9d;hp=640b3cf45f31316fb921c4a4c6a34340b0c658a7;hpb=2349a51b124cafaf65ca673f8e7fd931f4ba4961;p=lyx.git diff --git a/boost/boost/crc.hpp b/boost/boost/crc.hpp index 640b3cf45f..6be5aa1d8b 100644 --- a/boost/boost/crc.hpp +++ b/boost/boost/crc.hpp @@ -349,8 +349,12 @@ namespace detail #else BOOST_STATIC_CONSTANT( least, sig_bits = (~( ~(least( 0u )) << Bits )) ); #endif +#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 2 + // Work around a weird bug that ICEs the compiler in build_c_cast + BOOST_STATIC_CONSTANT( fast, sig_bits_fast = static_cast(sig_bits) ); +#else BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) ); - +#endif }; // boost::detail::mask_uint_t template < > @@ -458,8 +462,12 @@ namespace detail typedef typename masking_type::fast value_type; #if defined(__BORLANDC__) && defined(_M_IX86) && (__BORLANDC__ == 0x560) // for some reason Borland's command line compiler (version 0x560) - // chokes over this unless we do the calculation for it: + // chokes over this unless we do the calculation for it: typedef value_type table_type[ 0x100 ]; +#elif defined(__GNUC__) + // old versions of GCC (before 4.0.2) choke on using byte_combos + // as a constant expression when compiling with -pedantic. + typedef value_type table_type[1ul << CHAR_BIT]; #else typedef value_type table_type[ byte_combos ]; #endif @@ -732,7 +740,7 @@ crc_basic::process_bit // a full polynominal division step is done when the highest bit is one bool const do_poly_div = static_cast( rem_ & high_bit_mask ); - // shift out the highest bit + // shift out the highest bit rem_ <<= 1; // carry out the division, if needed