On 7/30/2014 2:58 PM, Eric Niebler wrote:
On 7/29/2014 6:45 AM, Peter Dimov wrote:
Niall Douglas wrote:
On 29 Jul 2014 at 16:27, Peter Dimov wrote:
Unless I'm missing something, C++11 includes C99 preprocessor > > (variadic macros, at least). So I don't see why these warnings should be emitted. A compiler bug perhaps?
C++11 (-std=c++11) does, but -std=c++0x probably doesn't.
That occurred to me too, so I tried -std=c++11 and got the same warnings spew.
Definitely a clang bug then. It should not enable C99 warnings by default in C++11 mode. The fix is to disable the warning in the Jamfile. I thought that the clang toolset already did that as we've discussed this issue with Edward Diener in the past, but I can't find -Wno-c99-extensions anywhere.
Is someone working on a fix? I'd be willing to take a patch that suppresses the warning from the Jamfile(s). That's obviously unsatisfactory since it doesn't help people who build in other ways.
The warnings do not occur with the test in Boost PP and the .jamfile there, nor do they occur when I run the tests in my VMD library which heavily uses Boost PP and variadic macros. I am working to determine what command-line option(s) are triggering the warnings AFIO is generating using the Boost PP and/or my VMD tests. If I can determine that I will try to see if specifying -Wno-c99-extensions gets rid of the warnings. The ticket Niall created is against Boost Build. If I determine that the fix in the ticket is valid, I think its up to Vladimir Prus to implement the change in Boost Build if it is deemed necessary for 1.56. I do not see that a pragma addition in Boost PP is reasonable.