<div dir="ltr"><div>It's not clear that the fix is correct.  The source location of the first argument may also be invalid.  Maybe the downstream assert should be relaxed?</div><div><br></div><div>I have half a test case:</div>
<div><div>int foo(int x = 0) {</div><div>  return x;</div><div>}</div><div>int main() {</div><div>  return foo();</div><div>}</div></div><div><br></div><div>The AST of the call is:</div><div><div>      `-CallExpr 0x15cc18 <col:10, col:17> 'int'</div>
<div>        |-ImplicitCastExpr 0x15cc08 <col:10, col:13> 'int (*)(int)' <FunctionToPointerDecay></div><div>        | `-DeclRefExpr 0x15c9c0 <col:10, col:13> 'int (int)' lvalue CXXMethod 0x15c7c0 'foo' 'int (int)'</div>
<div>        `-CXXDefaultArgExpr 0x15cc40 <<invalid sloc>> 'int'</div></div><div><br></div><div>The default argument has an invalid sloc, but the call itself does not.  If it did, we could get an invalid sloc for the whole thing, but I don't know how to trigger that.</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 23, 2014 at 3:33 PM, Keno Fischer <span dir="ltr"><<a href="mailto:kfischer@college.harvard.edu" target="_blank">kfischer@college.harvard.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Any chance this could be applied?</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br>
<br><div class="gmail_quote">On Thu, Mar 20, 2014 at 10:57 PM, Keno Fischer <span dir="ltr"><<a href="mailto:kfischer@college.harvard.edu" target="_blank">kfischer@college.harvard.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I had a look, but I don't think I have a way to write a reasonably small test case and there isn't much there in terms of setting up the rest of the compiler to be able to test this one issue. </div>


<div><div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Mar 19, 2014 at 4:41 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@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>On Wed, Mar 19, 2014 at 11:53 AM, Keno Fischer<br>
<<a href="mailto:kfischer@college.harvard.edu" target="_blank">kfischer@college.harvard.edu</a>> wrote:<br>
> I'm not sure I can come up with a reasonably well isolated test case. I<br>
> encountered this in an application that uses clang as a library. From what I<br>
> can see most of the test cases use the clang driver to test for bugs. Is<br>
> there any examples of test cases that go through the C++ API (since I know<br>
> how to trigger it there)?<br>
<br>
</div>The unit tests provide API level testing - tools/clang/unittests.<br>
Though not all API surface is readily unit testable and we'll usually<br>
allow an untested change if there's just no accessible test point...<br>
as unfortunate as it is and as much as we'd like that to change.<br>
<div><div><br>
><br>
><br>
> On Wed, Mar 19, 2014 at 11:07 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>
>><br>
>> A test case would be good, if possible<br>
>><br>
>> On Tue, Mar 18, 2014 at 9:44 PM, Keno Fischer<br>
>> <<a href="mailto:kfischer@college.harvard.edu" target="_blank">kfischer@college.harvard.edu</a>> wrote:<br>
>> > Sema::ConvertArgumentsForCall calls setNumArgs on the CallExpr. This<br>
>> > changes<br>
>> > the result of getLocStart if the SourceLocation stored in the CallExpr<br>
>> > is<br>
>> > invalid and in that case may lead to an assertion failure. This quick<br>
>> > patch<br>
>> > fixes that.<br>
>> ><br>
>> > I don't have commit access so let me know if anything else is needed.<br>
>> ><br>
>> > _______________________________________________<br>
>> > cfe-commits mailing list<br>
>> > <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
>> > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
>> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>