hanchenye-llvm-project/clang/lib/Lex
Argyrios Kyrtzidis a956450eb7 [preprocessor] Handle correctly inclusion directives that have macro expansions, e.g
"#include MACRO(STUFF)".

-As an inclusion position for the included file, use the file location of the file where it
was included but *after* the macro expansions. We want the macro expansions to be considered
as before-in-translation-unit for everything in the included file.

-In the preprocessing record take into account that only inclusion directives can be encountered
as "out-of-order" (by comparing the start of the range which for inclusions is the hash location)
and use binary search if there is an extreme number of macro expansions in the include directive.

Fixes rdar://11111779

llvm-svn: 153527
2012-03-27 18:47:48 +00:00
..
CMakeLists.txt
HeaderMap.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
HeaderSearch.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
Lexer.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
LiteralSupport.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
MacroArgs.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
MacroArgs.h
MacroInfo.cpp
Makefile
ModuleMap.cpp User-defined literals: reject string and character UDLs in all places where the 2012-03-06 03:21:47 +00:00
PPCaching.cpp
PPCallbacks.cpp
PPDirectives.cpp [preprocessor] Handle correctly inclusion directives that have macro expansions, e.g 2012-03-27 18:47:48 +00:00
PPExpressions.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
PPLexerChange.cpp From Vassil Vassilev: 2012-03-16 10:40:17 +00:00
PPMacroExpansion.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
PTHLexer.cpp
Pragma.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
PreprocessingRecord.cpp [preprocessor] Handle correctly inclusion directives that have macro expansions, e.g 2012-03-27 18:47:48 +00:00
Preprocessor.cpp From Vassil Vassilev: 2012-03-16 10:40:17 +00:00
PreprocessorLexer.cpp
ScratchBuffer.cpp
TokenConcatenation.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00
TokenLexer.cpp Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). 2012-03-11 07:00:24 +00:00