[cfe-commits] Patch to correct start location of FieldDecls in template instantiations

Richard Smith richard at metafoo.co.uk
Tue May 22 21:26:38 PDT 2012


On Tue, May 22, 2012 at 2:36 PM, Daniel Jasper <djasper at google.com> wrote:

> On Tue, May 22, 2012 at 10:03 PM, Richard Smith <richard at metafoo.co.uk>wrote:
>
>> Hi Daniel,
>>
>> On Tue, May 22, 2012 at 12:18 PM, Daniel Jasper <djasper at google.com>wrote:
>>
>>> Hello,
>>>
>>> I have noticed that the start location of FieldDecls is different in
>>> template instantiations and in the primary template (the instantiations
>>> loose the location of leading qualifiers). The reason is that the location
>>> of qualifiers is currently not tracked in the TypeLocs. However, it makes
>>> sense to use the primary template's inner start location making the two
>>> FieldDecls have the same code range independent of the TypeLoc
>>> implementation.
>>>
>>> Please find the corresponding patch attached.
>>>
>>
>> Can you add a test for this? Also, VarDecls (and the substitution of
>> function types for function declarations) seem to have the same problem. We
>> should fix all of them together.
>>
>
> Not much else there is actually tested. I could add
> RecursiveASTVisitor-tests for a couple of things, but I think this should
> be well-designed and will take more effort. I can try to find a diagnostic
> that triggers on this (start location of FieldDecls in template
> instantiations), but maybe we can get this in as a small bug-fix.
>

I've had a brief look, and didn't see a reasonable way to test this.
Committed as r157311.


> VarDecls seem to be fine, they actually use getInnerLocStart() at the
> appropriate place. So, we are actually making the behavior more consistent
> :-).
>

Right you are, I was looking at the instantiation location for the type,
which seems like a reasonable use of getTypeSpecStartLoc.

Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120522/9243e741/attachment.html>


More information about the cfe-commits mailing list