llvm-project/clang/lib/Lex
Justin Bogner 5353513058 Lex: Don't restrict legal UCNs when preprocessing assembly
The C and C++ standards disallow using universal character names to
refer to some characters, such as basic ascii and control characters,
so we reject these sequences in the lexer. However, when the
preprocessor isn't being used on C or C++, it doesn't make sense to
apply these restrictions.

Notably, accepting these characters avoids issues with unicode escapes
when GHC uses the compiler as a preprocessor on haskell sources.

Fixes rdar://problem/14742289

llvm-svn: 193067
2013-10-21 05:02:28 +00:00
..
CMakeLists.txt clang/Lex: [CMake] Update CMakefiles since r169229. 2012-12-04 07:40:33 +00:00
HeaderMap.cpp Use only explicit bool conversion operator 2013-05-15 07:37:26 +00:00
HeaderSearch.cpp Add -fmodule-map-file option. 2013-09-24 09:27:13 +00:00
Lexer.cpp Lex: Don't restrict legal UCNs when preprocessing assembly 2013-10-21 05:02:28 +00:00
LiteralSupport.cpp NumericLiteralParser::ParseNumberStartingWithZero(): Try to appease MSC16's miscompilation. 2013-09-27 04:42:28 +00:00
MacroArgs.cpp [Preprocessor] For the MacroExpands preprocessor callback, also pass the MacroArgs object that provides information about 2013-05-03 22:31:32 +00:00
MacroInfo.cpp [preprocessor] Minor optimization following r178671. 2013-04-03 21:29:07 +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 Fix uninitialized value bug discovered buy msan buildbot. 2013-09-24 12:30:27 +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
PPConditionalDirectiveRecord.cpp Add condition expression result to if and elif callbacks. 2013-07-18 00:00:36 +00:00
PPDirectives.cpp Per updates to D3781, allow underscore under ' in a pp-number, and allow ' in a #line directive. 2013-09-26 18:13:20 +00:00
PPExpressions.cpp Partially revert r186903. 2013-07-26 00:06:45 +00:00
PPLexerChange.cpp Relax header guard mismatch warning with edit distance heuristic. 2013-10-12 23:17:37 +00:00
PPMacroExpansion.cpp [-fms-extensions] Permit 'override' in C++98 and 'sealed' as a synonym for 'final' 2013-10-18 00:33:31 +00:00
PTHLexer.cpp Make Preprocessor::Lex non-recursive. 2013-09-19 00:41:32 +00:00
Pragma.cpp Accept #pragma warning(push, 0) without warning 2013-10-02 15:19:23 +00:00
PreprocessingRecord.cpp Add SourceRange to PPCallbacks::Defined callback. 2013-07-19 18:50:04 +00:00
Preprocessor.cpp Make Preprocessor::Lex non-recursive. 2013-09-19 00:41:32 +00:00
PreprocessorLexer.cpp Make Preprocessor::Lex non-recursive. 2013-09-19 00:41:32 +00:00
ScratchBuffer.cpp Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset. 2011-09-19 20:40:19 +00:00
TokenConcatenation.cpp Simplify logic for avoiding concatenation after numeric constants. 2013-02-08 22:30:31 +00:00
TokenLexer.cpp Make Preprocessor::Lex non-recursive. 2013-09-19 00:41:32 +00:00
UnicodeCharSets.h Use new UnicodeCharSet interface. 2013-08-29 12:12:31 +00:00