> On Jun 1, 2016, at 1:18 PM, Richard Smith via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > On Wed, Jun 1, 2016 at 12:42 PM, Manman Ren via cfe-commits > <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: > manmanren added a comment. > > In http://reviews.llvm.org/D20844#445762 > <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(); > > Yep, that's the bug. That source location refers to the start of the last > token in the source range.
Thanks for the clarification! > > 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? > > You can use Preprocessor::getLocForEndOfToken to get the character location > past the end of the token. (If you want the * to be after the space in your > example, you'll need to also skip that whitespace.) I will update the patch with your suggestion. Thanks, Manman > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits