forked from OSchip/llvm-project
A code modification hint for files that don't end in a newline.
Eventually, would be nice to be able to run these modifications even when we don't want the warning or errors for the actual diagnostic. llvm-svn: 68272
This commit is contained in:
parent
43533c7f40
commit
0be8875ea4
|
@ -1224,7 +1224,9 @@ bool Lexer::LexEndOfFile(Token &Result, const char *CurPtr) {
|
|||
// C99 5.1.1.2p2: If the file is non-empty and didn't end in a newline, issue
|
||||
// a pedwarn.
|
||||
if (CurPtr != BufferStart && (CurPtr[-1] != '\n' && CurPtr[-1] != '\r'))
|
||||
Diag(BufferEnd, diag::ext_no_newline_eof);
|
||||
Diag(BufferEnd, diag::ext_no_newline_eof)
|
||||
<< CodeModificationHint::CreateInsertion(getSourceLocation(BufferEnd),
|
||||
"\n");
|
||||
|
||||
BufferPtr = CurPtr;
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
// RUN: clang-cc -fsyntax-only -pedantic -fixit %s -o - | clang-cc -pedantic -Werror -x c -
|
||||
|
||||
/* This is a test of the various code modification hints that are
|
||||
provided as part of warning or extension diagnostics. Eventually,
|
||||
we would like to actually try to perform the suggested
|
||||
modifications and compile the result to test that no warnings
|
||||
remain. */
|
||||
// FIXME: If you put a space at the end of the line, it doesn't work yet!
|
||||
char *s = "hi\
|
||||
there";
|
||||
|
||||
// The following line isn't terminated, don't fix it.
|
||||
int i; // expected-error{{no newline at end of file}}
|
Loading…
Reference in New Issue