diff options
author | Seth Cantrell <seth.cantrell@gmail.com> | 2012-04-13 01:00:34 +0000 |
---|---|---|
committer | Seth Cantrell <seth.cantrell@gmail.com> | 2012-04-13 01:00:34 +0000 |
commit | d55522287e217746996238c6ab206babeec336d5 (patch) | |
tree | bb7aa551372132db8ec48737e6ecb9d638616a79 | |
parent | 2c39d71bb7cefdfe6116fa52454f3b3dc5abd517 (diff) |
C++11 no longer requires files to end with a newline
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154643 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Lex/Lexer.cpp | 3 | ||||
-rw-r--r-- | test/Lexer/newline-eof-c++11.cpp | 4 | ||||
-rw-r--r-- | test/Lexer/newline-eof.c | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/lib/Lex/Lexer.cpp b/lib/Lex/Lexer.cpp index c817e3f105..f0c2c8e4f6 100644 --- a/lib/Lex/Lexer.cpp +++ b/lib/Lex/Lexer.cpp @@ -2375,7 +2375,8 @@ 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')) + if (CurPtr != BufferStart && (CurPtr[-1] != '\n' && CurPtr[-1] != '\r') + && !LangOpts.CPlusPlus0x) // C++11 [lex.phases] 2.2 p2 Diag(BufferEnd, diag::ext_no_newline_eof) << FixItHint::CreateInsertion(getSourceLocation(BufferEnd), "\n"); diff --git a/test/Lexer/newline-eof-c++11.cpp b/test/Lexer/newline-eof-c++11.cpp new file mode 100644 index 0000000000..3c45f28336 --- /dev/null +++ b/test/Lexer/newline-eof-c++11.cpp @@ -0,0 +1,4 @@ +// RUN: %clang_cc1 -fsyntax-only -std=c++11 -Wnewline-eof -verify %s + +// The following line isn't terminated, don't fix it. +void foo() {}
\ No newline at end of file diff --git a/test/Lexer/newline-eof.c b/test/Lexer/newline-eof.c index 2f95dc7593..12087b2370 100644 --- a/test/Lexer/newline-eof.c +++ b/test/Lexer/newline-eof.c @@ -1,5 +1,5 @@ -// RUN: %clang -fsyntax-only -Wnewline-eof -verify %s +// RUN: %clang -cc1 -fsyntax-only -Wnewline-eof -verify %s // rdar://9133072 // The following line isn't terminated, don't fix it. -void foo() {} // expected-warning{{No newline at end of file}}
\ No newline at end of file +void foo() {} // expected-warning{{no newline at end of file}}
\ No newline at end of file |