[PATCH] D25406: Fix doubled whitespace in modernize-use-auto fixit

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 10 13:36:34 PDT 2016


aaron.ballman added inline comments.


================
Comment at: clang-tidy/modernize/UseAutoCheck.cpp:378
+      Lexer::getLocForEndOfToken(Range.getEnd(), 0, SM, Context->getLangOpts());
+  bool Whitespace = isWhitespace(*FullSourceLoc(Next, SM).getCharacterData());
+
----------------
malcolm.parsons wrote:
> aaron.ballman wrote:
> > Oye, this is deceptively expensive because you now have to go back to the actual source file for this information. That source file may live on a network share somewhere, for instance.
> > 
> > Can you use `Token::hasLeadingSpace()` instead?
> > 
> > Also, doesn't this still need to care about the `RemoveStars` option?
> Where would I get a Token from?
Hrm, might not be as trivial as I was hoping (I thought we had a way to go from a `SourceLocation` back to a `Token`, but I'm not seeing one off-hand). Regardless, I worry about the expense of going all the way back to the source for this.

@alexfh -- should this functionality be a part of a more general "we've made a fixit, now make it not look ugly?" pass? At least then, if we go back to the source, we can do it in a more controlled manner and hopefully get some performance back from that.


https://reviews.llvm.org/D25406





More information about the cfe-commits mailing list