mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-14 06:29:38 +00:00
CommentLexer: When proceeding with a typo corrected name don't clobber the token.
This would crash if the token is used in another diagnostic. PR18051. llvm-svn: 196048
This commit is contained in:
parent
45479dcf49
commit
2dece5747a
@ -353,16 +353,17 @@ void Lexer::lexCommentText(Token &T) {
|
||||
|
||||
const CommandInfo *Info = Traits.getCommandInfoOrNULL(CommandName);
|
||||
if (!Info) {
|
||||
formTokenWithChars(T, TokenPtr, tok::unknown_command);
|
||||
T.setUnknownCommandName(CommandName);
|
||||
if ((Info = Traits.getTypoCorrectCommandInfo(CommandName))) {
|
||||
StringRef CorrectedName = Info->Name;
|
||||
SourceRange CommandRange(T.getLocation().getLocWithOffset(1),
|
||||
T.getEndLocation());
|
||||
Diag(T.getLocation(), diag::warn_correct_comment_command_name)
|
||||
SourceLocation Loc = getSourceLocation(BufferPtr);
|
||||
SourceRange CommandRange(Loc.getLocWithOffset(1),
|
||||
getSourceLocation(TokenPtr));
|
||||
Diag(Loc, diag::warn_correct_comment_command_name)
|
||||
<< CommandName << CorrectedName
|
||||
<< FixItHint::CreateReplacement(CommandRange, CorrectedName);
|
||||
} else {
|
||||
formTokenWithChars(T, TokenPtr, tok::unknown_command);
|
||||
T.setUnknownCommandName(CommandName);
|
||||
Diag(T.getLocation(), diag::warn_unknown_comment_command_name);
|
||||
return;
|
||||
}
|
||||
|
@ -70,6 +70,11 @@ int gorf();
|
||||
/// \t bbb IS_DOXYGEN_END
|
||||
int Bar();
|
||||
|
||||
// expected-warning@+2 {{unknown command tag name 'encode'; did you mean 'endcode'?}}
|
||||
// expected-warning@+1 {{'\endcode' command does not terminate a verbatim text block}}
|
||||
/// \encode PR18051
|
||||
int PR18051();
|
||||
|
||||
// CHECK: fix-it:"{{.*}}":{5:12-5:22}:"a"
|
||||
// CHECK: fix-it:"{{.*}}":{9:12-9:15}:"aaa"
|
||||
// CHECK: fix-it:"{{.*}}":{13:13-13:23}:"T"
|
||||
@ -83,3 +88,4 @@ int Bar();
|
||||
// CHECK: fix-it:"{{.*}}":{58:30-58:30}:" MY_ATTR_DEPRECATED"
|
||||
// CHECK: fix-it:"{{.*}}":{63:6-63:11}:"return"
|
||||
// CHECK: fix-it:"{{.*}}":{67:6-67:11}:"foobar"
|
||||
// CHECK: fix-it:"{{.*}}":{75:6-75:12}:"endcode"
|
||||
|
Loading…
x
Reference in New Issue
Block a user