Subject: Re: [boost] [config] BOOST_FORCEINLINE for clang
From: Michael Marcin (mike.marcin_at_[hidden])
Date: 2013-05-13 11:32:03


On 5/13/2013 4:44 AM, Mathias Gaunard wrote:
> On 13/05/13 07:12, Daryle Walker wrote:
>> ----------------------------------------
>>> Date: Sun, 12 May 2013 22:59:21 +0900
>>> From: mimomorin_at_[hidden]
>>>
>>> I replaced `always_inline` in boost/config/suffix.hpp with
>>> `__always_inline__`
>>> to avoid interference with a macro with the same name.
>>>
>>> Committed in r84245 (
>>> https://svn.boost.org/trac/boost/changeset/84245 ):
>>> --- boost/config/suffix.hpp (revision 84244)
>>> +++ boost/config/suffix.hpp (working copy)
>>> @@ -641,7 +641,7 @@
>>> # if defined(_MSC_VER)
>>> # define BOOST_FORCEINLINE __forceinline
>>> # elif defined(__GNUC__) && __GNUC__ > 3
>>> -# define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
>>> +# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
>>> # else
>>> # define BOOST_FORCEINLINE inline
>>> # endif
>>
>> You should include a comment in the GCC section that it also works for
>> Clang,
>> due to Clang's GCC emulation. That way, later maintainers won't be
>> wondering
>> if Clang support should be added. (And help debugging if Clang ever
>> stops
>> emulating GCC by default.)
>
> Isn't it common knowledge that Clang is compatible with GCC and pretends
> to be GCC 4.2, and that therefore most GCC-specific code will just work
> with Clang out of the box?
>

Probably, still seems relatively painless to add the comment that may
help someone understand more easily in the future.