llvm-project/clang/lib/Lex
Jordan Rose de1a29277e Disable _Pragma during HTML macro rewriting to keep from crashing.
The preprocessor's handling of diagnostic push/pops is stateful, so
encountering pragmas during a re-parse causes problems. HTMLRewrite
already filters out normal # directives including #pragma, so it's
clear it's not expected to be interpreting pragmas in this mode.

This fix adds a flag to Preprocessor to explicitly disable pragmas.
The "right" fix might be to separate pragma lexing from pragma
parsing so that we can throw away pragmas like we do preprocessor
directives, but right now it's important to get the fix in.

Note that this has nothing to do with the "hack" of re-using the
input preprocessor in HTMLRewrite. Even if we someday copy the
preprocessor instead of re-using it, the copy would (and should) include
the diagnostic level tables and have the same problems.

llvm-svn: 158214
2012-06-08 18:06:21 +00:00
..
CMakeLists.txt Update the CMake build for r146959's new files. 2011-12-20 08:42:15 +00:00
HeaderMap.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
HeaderSearch.cpp [Lex] Add support for 'user specified system frameworks' (see test case). 2012-04-05 17:10:06 +00:00
Lexer.cpp Insert a space if necessary when suggesting CFBridgingRetain/Release. 2012-06-07 01:10:31 +00:00
LiteralSupport.cpp In StringLiteralParser::init, make sure we emit an error when 2012-05-03 17:50:32 +00:00
MacroArgs.cpp Correct handling of _Pragma macro inside a macro argument. 2012-04-03 16:47:40 +00:00
MacroArgs.h Fixed exapnsion range for # and ##. 2011-10-03 18:39:03 +00:00
MacroInfo.cpp For modules, all macros that aren't include guards are implicitly 2011-10-17 15:32:29 +00:00
Makefile BUILD_ARCHIVE is the default for libraries, no need to set it. 2010-07-18 00:14:47 +00:00
ModuleMap.cpp Make ModuleMapParser own its TargetInfo, so it doesn't get leaked. 2012-03-29 14:07:03 +00:00
PPCaching.cpp [preprocessor] In Preprocessor::CachingLex() check whether there were more tokens 2012-04-04 02:57:01 +00:00
PPCallbacks.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
PPDirectives.cpp Add a -rewrite-includes option, which is similar to -rewrite-macros, but only expands #include directives. 2012-06-06 18:52:13 +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 [preprocessor] Make sure that MacroExpands callbacks are always in source order. 2012-05-10 18:57:19 +00:00
PTHLexer.cpp Basic: import OwningPtr<> into clang namespace 2012-02-05 02:12:40 +00:00
Pragma.cpp Disable _Pragma during HTML macro rewriting to keep from crashing. 2012-06-08 18:06:21 +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 Disable _Pragma during HTML macro rewriting to keep from crashing. 2012-06-08 18:06:21 +00:00
PreprocessorLexer.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
ScratchBuffer.cpp Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset. 2011-09-19 20:40:19 +00:00
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