
Christopher Currie wrote:
David Abrahams wrote:
Christopher Currie <codemonkey@gmail.com> writes:
Can anyone lend assistance in debugging the Sun regressions for Boost Preprocessor? The early access edition of the Studio 9 compiler is failing on BOOST_PP code that compiles just fine under earlier versions.
Not knowing much, the first thing I'd do is play with the flags settings in boost/preprocessor/config/config.hpp to see if any of those can work around the problem.
That, combined with some futher investigation, yielded a partial solution: the newest version of the Sun needs to enable BOOST_PP_CONFIG_MSVC, in order for BOOST_PP_BITAND to work properly. Enabling this does not cause regressions in the earlier version, at least w.r.t. Boost PP.
I've attached a patch for boost/preprocessor/config/config.hpp, in order to at least fix the most common problems the Sun Studio 9 compiler is having with BOOST_PP_WHILE, as a number of libraries are choking on this at the moment. Thanks, Christopher -- Christopher Currie <codemonkey@gmail.com> Index: boost/preprocessor/config/config.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/preprocessor/config/config.hpp,v retrieving revision 1.9 diff -u -u -r1.9 config.hpp --- boost/preprocessor/config/config.hpp 18 Dec 2003 23:56:04 -0000 1.9 +++ boost/preprocessor/config/config.hpp 14 Jul 2004 16:03:41 -0000 @@ -30,8 +30,10 @@ # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT()) # elif defined(__MWERKS__) # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC()) -# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC) +# elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC()) +# elif defined(__SUNPRO_CC) +# define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC() | BOOST_PP_CONFIG_MSVC()) # elif defined(_MSC_VER) # define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC()) # else