[PATCH] D20844: FixIt: correctly set DeclSpec's range end for a type name annotation.

Manman Ren via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 1 12:42:18 PDT 2016


manmanren added a comment.

In http://reviews.llvm.org/D20844#445762, @rjmccall wrote:

> Hmm.  No, I think the original code is correct here — RangeEnd is a token range, and those are generally inclusive rather than exclusive.  The fix-it needs to be inserting at the end of the token.


We currently insert the fix-it here
SourceLocation TypeEndLoc = TSInfo->getTypeLoc().getLocEnd();

And we call "TL.setNameEndLoc(DS.getLocEnd());" for ObjCInterfaceTypeLoc.

The problem is that for annotation token, both the start and the end point to the same location. With "DS.SetRangeEnd(Tok.getAnnotationEndLoc());", the DeclSpec has the same start and end location.

Is there a way to get the real end of the annotation token, since getAnnotationEndLoc returns the start location?

Thanks,
Manman


http://reviews.llvm.org/D20844





More information about the cfe-commits mailing list