llvm-project/clang/Driver
Chris Lattner 1f1b0dbc28 Make a significant change to invert the control flow handling
predefined macros.  Previously, these were handled by the driver,
now they are handled by the preprocessor.

Some fallout of this:

1. Instead of preprocessing two buffers (the predefines, then the 
   main source file)  we now start preprocessing the main source 
   file and inject the predefines as a "psuedo #include" from the
   main source file.
2. #1 allows us to nuke the Lexer::IsMainFile flag and simplify
   Preprocessor::isInPrimaryFile.
3. The driver doesn't have to know about standard #defines, the
   preprocessor knows, which is nice for people wanting to define
   their own drivers.
4. This allows us to put normal tokens in the predefine buffer,
   for example a definition for __builtin_va_list that is 
   target-specific, and a typedef for id in objc.

llvm-svn: 42818
2007-10-09 22:10:18 +00:00
..
ASTConsumers.cpp Added a new class for Interfaces qualified by protocol list. 2007-10-08 23:06:41 +00:00
ASTConsumers.h Rename ASTStreamers.* -> ASTConsumers.* 2007-10-07 06:04:32 +00:00
DiagChecker.cpp Make a significant change to invert the control flow handling 2007-10-09 22:10:18 +00:00
Makefile Initial checkin of rewriter interface. It is just stubbed out for now. 2007-09-15 22:21:22 +00:00
PPCBuiltins.def Add support for target-specific builtins, including detecting nonportability 2007-01-29 05:24:35 +00:00
PrintParserCallbacks.cpp move IdentifierTable.h from liblex to libbasic. 2007-10-07 08:58:51 +00:00
PrintPreprocessedOutput.cpp Make a significant change to invert the control flow handling 2007-10-09 22:10:18 +00:00
Targets.cpp speed up clang startup another 28% by avoiding std::vector<std::string> 2007-10-06 06:57:34 +00:00
TextDiagnosticBuffer.cpp Submitted by: Bill Wendling 2007-06-27 03:19:45 +00:00
TextDiagnosticBuffer.h Clients should only get read-only access to diagnostic info. 2007-06-28 05:18:35 +00:00
TextDiagnosticPrinter.cpp remove sorry. 2007-09-06 00:14:09 +00:00
TextDiagnosticPrinter.h Finally bite the bullet and make the major change: split the clang namespace 2007-06-15 23:05:46 +00:00
TextDiagnostics.cpp Reimplement SourceLocation. Instead of having a 2007-07-20 16:37:10 +00:00
TextDiagnostics.h Finally bite the bullet and make the major change: split the clang namespace 2007-06-15 23:05:46 +00:00
X86Builtins.def Bug #: 2007-03-16 00:33:25 +00:00
clang.cpp Make a significant change to invert the control flow handling 2007-10-09 22:10:18 +00:00
clang.h Removed inclusion of <memory>, which is no longer needed since we 2007-09-26 19:41:07 +00:00