<br><br><div class="gmail_quote">On Fri, Jun 1, 2012 at 1:15 PM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com" target="_blank">eli.friedman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Fri, Jun 1, 2012 at 12:08 PM, Larry Gritz <<a href="mailto:lg@larrygritz.com">lg@larrygritz.com</a>> wrote:<br>
> After compiling my apps with clang 3.1, and fixing all the new warnings it found that gcc did not care about, I wanted to get clang + ccache working together.  I set up a bash script "~/bin/clang" that looks like this:<br>

><br>
>        #!/bin/bash<br>
>        ccache /opt/local/bin/clang $@<br>
><br>
> Obviously this just calls ccache with the clang path and arguments.  The surprising thing is that when I invoke clang this way, several classes of warnings are flagged that were not noticed when I ran /opt/local/bin/clang.<br>

><br>
> The above example is on OS X, where I've installed clang 3.1 via Macports.  But I've reproduced the same effect on Linux using clang/llvm that I compiled from the svn (3.1 branch) as well.<br>
><br>
> Is this expected behavior?  Does anybody have an explanation for what's going on here?<br>
<br>
</div>clang has a few warnings which are suppressed for specific patterns in<br>
macros; if you pass clang a preprocessed file, it can't see the<br>
macros, so the warning output can change a bit.<br></blockquote><div><br></div><div>Presumably something like ccache could be changed to use a "preprocess headers only (& leave in line directives)" option like we're adding to clang (under review at the moment) & that would mitigate this problem. (& make for possibly/marginally smaller files to send to distributed builders, etc)</div>
<div><br></div><div>- David </div></div><br>