Not exactly my area, but the patch is really simple and turns a crash
into a fairly reasonable error message, so LGTM!

On 20 August 2012 17:51, Magee, Josh <[email protected]> wrote:
> Hi,
>
> This is my first attempt at submitting a patch. :-)
>
> The patch fixes an assertion that occurs when rewriting an 
> UnresolvedLookupExpr
> instance consisting of a call to a templated function with no explicit 
> template
> arguments.  In the regression test included with this patch, the function 
> "bar"
> is called without explicit template arguments.  While this is an error, it
> should generate a diagnostic error message without triggering the assertion.
>
> The assertion occurs because it is forbidden to call 'getNumTemplateArgs' and
> 'getTemplateArgs' on objects without explicit template arguments (as spelled
> out in a comment in include/clang/AST/ExprCXX.h, right before
> getExplicitTemplateArgs).  The fix is to guard the call to
> TransformTemplateArguments so that it is only invoked if there really are
> explicit template arguments.
>
> Another possible solution would be to check for explicit template arguments
> inside getNumTemplateArgs() and friends, which is actually how
> corresponding/similar methods are implemented for DeclRefExpr in Expr.h.  
> Given
> the comment mentioned above, it seems that this inconsistency is by design.
> I'd be interested to know the motivation behind the difference in design.
>
>
> Thank you!
> Josh Magee
>

Thanks,
Rafael
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to