From ddc92ac35f83d49295ebffa9de165edca75a720d Mon Sep 17 00:00:00 2001 From: Christopher Kohlhoff Date: Sat, 30 Oct 2010 22:45:29 +0000 Subject: [PATCH] Target workaround at non-Apple objective-c++ compilers only, as the previous workaround broke those platforms. Pragmas push_macro and pop_macro are only available on gcc 4.4 or later, so use plain ol' #define/#undef instead. [SVN r66289] --- include/boost/asio/detail/pop_options.hpp | 9 ++++++--- include/boost/asio/detail/push_options.hpp | 13 ++++++++----- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/boost/asio/detail/pop_options.hpp b/include/boost/asio/detail/pop_options.hpp index 5fffc645..e5c503ca 100644 --- a/include/boost/asio/detail/pop_options.hpp +++ b/include/boost/asio/detail/pop_options.hpp @@ -31,9 +31,12 @@ # pragma pack (pop) # endif -# if defined(__OBJC__) -# pragma pop_macro("Protocol") -# pragma pop_macro("id") +# if defined(__OBJC__) && !defined(__APPLE_CC__) +# if defined(BOOST_ASIO_OBJC_WORKAROUND) +# undef Protocol +# undef id +# undef BOOST_ASIO_OBJC_WORKAROUND +# endif # endif #elif defined(__KCC) diff --git a/include/boost/asio/detail/push_options.hpp b/include/boost/asio/detail/push_options.hpp index 17218414..62f0ac86 100644 --- a/include/boost/asio/detail/push_options.hpp +++ b/include/boost/asio/detail/push_options.hpp @@ -31,11 +31,14 @@ # pragma pack (push, 8) # endif -# if defined(__OBJC__) -# pragma push_macro("Protocol") -# define Protocol cpp_Protocol -# pragma push_macro("id") -# define id cpp_id +# if defined(__OBJC__) && !defined(__APPLE_CC__) +# if !defined(BOOST_ASIO_DISABLE_OBJC_WORKAROUND) +# if !defined(Protocol) && !defined(id) +# define Protocol cpp_Protocol +# define id cpp_id +# define BOOST_ASIO_OBJC_WORKAROUND +# endif +# endif # endif #elif defined(__KCC)