llvm-project/clang/lib/Lex
Argyrios Kyrtzidis 977026c5f5 [Preprocessor] Prevent expansion of y in x ## y when x is empty
When x is empty, x ## is suppressed, and when y gets expanded, the fact that it follows ## is not
available in the macro expansion result. The macro definition can be checked instead, the ## will
be available there regardless of what x expands to.

Fixes http://llvm.org/PR12767

Patch by Harald van Dijk!

llvm-svn: 182699
2013-05-25 01:35:18 +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 [Modules] Make r180934 more efficient by only loading top-level module maps in system header directories. 2013-05-10 22:52:27 +00:00
Lexer.cpp Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros. 2013-05-24 21:42:04 +00:00
LiteralSupport.cpp Note that we support (and in fact have supported since the dawn of time itself) 2013-04-19 20:47:20 +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 [Modules] Make r180934 more efficient by only loading top-level module maps in system header directories. 2013-05-10 22:52: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 [preprocessor] Use MacroDirective in the preprocessor callbacks to make available the 2013-02-24 00:05:14 +00:00
PPDirectives.cpp [modules] If we hit a failure while loading a PCH/module, abort parsing instead of trying to continue in an invalid state. 2013-05-24 05:44:08 +00:00
PPExpressions.cpp [Preprocessor/Modules] Separate the macro directives kinds into their own MacroDirective's subclasses. 2013-03-26 17:17:01 +00:00
PPLexerChange.cpp Add -Wincomplete-module, which detects when a header is included from a module but isn't itself part of a module. 2013-05-20 13:49:41 +00:00
PPMacroExpansion.cpp C++1y: provide full 'auto' return type deduction for lambda expressions. This 2013-05-12 03:09:35 +00:00
PTHLexer.cpp Remove duplicate includes. 2012-12-21 17:07:08 +00:00
Pragma.cpp Move PragmaCommentHandler to lib/Parse in preparation for calling Sema 2013-05-06 21:02:12 +00:00
PreprocessingRecord.cpp [Preprocessor] For the MacroExpands preprocessor callback, also pass the MacroArgs object that provides information about 2013-05-03 22:31:32 +00:00
Preprocessor.cpp [Preprocessor] For the MacroExpands preprocessor callback, also pass the MacroArgs object that provides information about 2013-05-03 22:31:32 +00:00
PreprocessorLexer.cpp Sort all of Clang's files under 'lib', and fix up the broken headers 2012-12-04 09:13:33 +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 [Preprocessor] Prevent expansion of y in x ## y when x is empty 2013-05-25 01:35:18 +00:00
UnicodeCharSets.h Properly validate UCNs for C99 and C++03 (both more restrictive than C(++)11). 2013-02-09 01:10:25 +00:00