Boost logo

Boost :

Subject: [boost] Checking for #pragma GCC diagnostic push|pop availability
From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2015-12-08 14:27:42


Shane Turner wrote:

> I found another issue with a bad compiler version check in
> boost/interprocess/detail/config_begin.hpp before using "#pragma GCC
> diagnostic push", which, for GCC, is only available at version 4.6.0 and
> later. Since I'm using GCC 4.4.7, my compile fails.

It looks to me like interprocess is the one that really needs fixing.
[ There could be a lot of cleanup here, but that's for another time ]

I will make a PR.

-- Marshall

I have found (in non-test code)

#if defined(__GNUC__) && (__GNUC__*10000 + __GNUC_MINOR__*100 +
__GNUC_PATCHLEVEL__ > 40800)
    type_traits/has_logical_not.hpp

#if BOOST_GCC >= 40700
    tuple/detail/tuple_basic.hpp

#Effectively >= 40600
    smart_ptr/shared_ptr.hpp
    smart_ptr/scoped_ptr.hpp
    smart_ptr/detail/shared_count.hpp

#if defined(BOOST_GCC) && BOOST_GCC >= 40600
    random/detail/disable_warnings.hpp
    random/detail/enable_warnings.hpp

#if defined(__clang__)
    move/detail/std_ns_begin.hpp
    move/detail/std_ns_end.hpp

#elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) ||
defined(__ICC) || defined(__ECC)) \
    && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406
    log/detail/header.hpp
    log/detail/footer.hpp

#if defined(__clang__) || (defined(__GNUC__) && !(defined(__INTEL_COMPILER)
|| defined(__ICL) || defined(__ICC) || defined(__ECC)) && (__GNUC__ > 4 ||
(__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
    lexical_cast/try_lexical_convert.hpp

#if defined(BOOST_GCC) && (BOOST_GCC >= 40000)
    interprocess/detail/config_begin.hpp
    interprocess/detail/config_end.hpp

#Effectively >= 40600
    get_pointer.hpp


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