]> granicus.if.org Git - clang/commit
[c++20] Implement tweaked __VA_OPT__ rules from P1042R1:
authorRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 4 May 2019 06:46:18 +0000 (06:46 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Sat, 4 May 2019 06:46:18 +0000 (06:46 +0000)
commitcebd04fa37ed155f64176e6336c7d221162da5a5
tree0a5e58eedd4ed0f22697f18876c4e9cd4a4642c1
parent32fd9fe276440ee328369c6e3168b52a289b5b2f
[c++20] Implement tweaked __VA_OPT__ rules from P1042R1:

 * __VA_OPT__ is expanded if the *expanded* __VA_ARGS__ is non-empty,
   not if the original argument contained no tokens.
 * Placemarkers at the start and end of __VA_OPT__ are retained just
   long enough to paste them with adjacent ## operators. We never paste
   "across" a discarded placemarker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@359964 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Lex/MacroArgs.h
include/clang/Lex/VariadicMacroSupport.h
lib/Lex/MacroArgs.cpp
lib/Lex/TokenLexer.cpp
test/Preprocessor/macro_vaopt_expand.cpp
test/Preprocessor/macro_vaopt_p1042r1.cpp [new file with mode: 0644]
www/cxx_status.html