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)