<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, May 1, 2014 at 7:47 AM, Lubos Lunak <span dir="ltr"><<a href="mailto:l.lunak@centrum.cz" target="_blank">l.lunak@centrum.cz</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Sunday 13 of April 2014, Richard Smith wrote:<br>
> The check for MainFileID and accompanying test LGTM.<br>
><br>
> Can you explain what the check for PredefinesFileID is for?<br>
<br>
</div> Without that check, the output can look e.g. like this:<br>
=====<br>
# 1 "<built-in>" 1<br>
# 1 "a.cpp"<br>
void f() {}<br>
=====<br>
<br>
 Which is wrong. Only now that I look at it, what's wrong is rather that<br>
there's no closing "2" linemarker for <built-in>.<br>
<br>
 So how about this attached patch (on top of the previous one that had the<br>
predefines check removed)?</blockquote><div><br></div><div>LGTM</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">
> AFAICS, there's<br>
> no test for that part of the change, and I'm concerned that we could end up<br>
> attributing lines in that FileID to some other file.<br>
<br>
</div> The patch includes a test specifically for the predefines file, although that<br>
theoretically shouldn't be necessary, since there's no output from the<br>
predefines file anyway (OutputContentUpTo() skips it).<br>
<div class="HOEnZb"><div class="h5"><br>
> On Fri, Apr 4, 2014 at 3:09 AM, Lubos Lunak <<a href="mailto:l.lunak@centrum.cz">l.lunak@centrum.cz</a>> wrote:<br>
> >  The -frewrite-includes flag incorrectly uses at the beginning a<br>
> > linemarker for the main file with the "1" flag which suggests that the<br>
> > contents have been in fact included from another file. This for example<br>
> > disables -Wunused-macros, which warns only for macros from the main file:<br>
> ><br>
> > $ cat a.cpp<br>
> > #define FOO 1<br>
> > $ clang++ -E -frewrite-includes a.cpp | clang++ -Wall -Wunused-macros -x<br>
> > c++ -c -<br>
> > $ clang++ -Wall -Wunused-macros -c a.cpp<br>
> > a.cpp:1:9: warning: macro is not used [-Wunused-macros]<br>
> > #define FOO 1<br>
> >         ^<br>
> > 1 warning generated.<br>
> ><br>
> >  The attached patch fixes the code to start the resulting file with the<br>
> > correct linemarker.<br>
<br>
--<br>
 Lubos Lunak<br>
</div></div></blockquote></div><br></div></div>