llvm-project/clang
Erich Keane 5a2b322e0d [Preprocessor] Correct internal token parsing of newline characters in CRLF
Discovered due to a goofy git setup, the test system-headerline-directive.c 
(and a few others) failed because the token-consumption will consume only the 
'\r' in CRLF, making the preprocessor's printed value give the wrong line number 
when returning from an include. For example:

(line 1):#include <noline.h>\r\n

The "file exit" code causes the printer to try to print the 'returned to the 
main file' line. It looks up what the current line number is. However, since the 
current 'token' is the '\n' (since only the \r was consumed), it will give the 
line number as '1", not '2'. This results in a few failed tests, but more 
importantly, results in error messages being incorrect when compiling a 
previously preprocessed file.

Differential Revision: https://reviews.llvm.org/D37079

llvm-svn: 311683
2017-08-24 18:36:07 +00:00
..
INPUTS
bindings [libclang] Support for querying whether an enum is scoped 2017-07-12 11:35:11 +00:00
cmake Remove LLVMFuzzer from list of bundled libraries for Fuchsia 2017-08-23 00:09:33 +00:00
docs clang-format: add an option -verbose to list the files being processed 2017-08-12 15:15:10 +00:00
examples Add LLVMOption to clang-interpreter, corresponding to r291938. 2017-01-14 08:54:05 +00:00
include Revert "[ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any)." 2017-08-24 18:18:24 +00:00
lib [Preprocessor] Correct internal token parsing of newline characters in CRLF 2017-08-24 18:36:07 +00:00
runtime
test [Preprocessor] Correct internal token parsing of newline characters in CRLF 2017-08-24 18:36:07 +00:00
tools Fix ClangFormatFuzzer. 2017-08-24 00:30:28 +00:00
unittests [clang-format] Emit absolute splits before lines for comments, try 2 2017-08-24 16:41:10 +00:00
utils Do not look through pack expansions when looking for unexpanded parameter packs. 2017-08-15 22:58:45 +00:00
www [c++2a] Implement P0409R2 - Allow lambda capture [=,this] (by hamzasood) 2017-08-19 03:43:07 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Integrate Kostya's clang-proto-fuzzer with LLVM. 2017-08-08 20:15:04 +00:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt Remove test commit. 2017-06-30 03:03:28 +00:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/