Subject: [boost] [1.50] [Config] Enhancing support of -fno-rtti on clang
From: Michel Morin (mimomorin_at_[hidden])
Date: 2012-05-25 18:59:26


When using clang with -fno-rtti, the use of `typeid` results in
either compile-time errors or run-time errors.

But Boost.Config did not define BOOST_NO_TYPEID for that case.
So, for example, including any client header of BOOST_SP_TYPEID
produced compiler errors on clang trunk with -fno-rtti.

This was fixed in r78510 about a week ago:
(http://svn.boost.org/trac/boost/changeset/78510)

    -#if !__has_feature(cxx_rtti)
    +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
     # define BOOST_NO_RTTI
     #endif

    +#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
    +# define BOOST_NO_TYPEID
    +#endif

If Boost would like to enhance the support of -fno-rtti on clang,
it would be good to merge the fix into the release branch.

I ran the test runner (clang trunk with -fno-rtti) for
unpatched release branch and patched release branch.
There was no regression and more than 1000 test results got
improved.

Regards,
Michel