On 28/09/15 13:09, Greg Troxel wrote:
It seems the problem is that ccache and clang interact badly, where the warnings that should be disabled during preprocessing are active, because of how ccache behaves. Arguably this is ccache's fault: http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html http://peter.eisentraut.org/blog/2014/12/01/ccache-and-clang-part-3/
I see ccache doesn't claim to be compatible with anything but gcc, so it's arguably our fault, for allowing ccache and clang to be selected together :)
So I am thinking that we should either export CACHE_CPP2 or patch ccache to default to doing that, because ccache seems broken without it. This is apparently only an issue with clang, but only because gcc doesn't have warnings only for non-preprocessed code.
According to your links there's a hefty 10% run-time penalty to doing that, which it would be mean to incur for gcc builds.