> 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

Reply via email to