This implements __VA_OPT__, a new preprocessor feature added in C++2A. The paper can be found here: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0306r4.html gcc/ChangeLog * doc/cpp.texi (Variadic Macros): Document __VA_OPT__. gcc/testsuite/ChangeLog * c-c++-common/cpp/va-opt-pedantic.c: New file. * c-c++-common/cpp/va-opt.c: New file. * c-c++-common/cpp/va-opt-error.c: New file. libcpp/ChangeLog * pch.c (cpp_read_state): Set n__VA_OPT__. * macro.c (vaopt_state): New class. (_cpp_arguments_ok): Check va_opt flag. (replace_args, create_iso_definition): Use vaopt_state. * lex.c (lex_identifier_intern): Possibly issue errors for __VA_OPT__. (lex_identifier): Likewise. (maybe_va_opt_error): New function. * internal.h (struct lexer_state) <va_args_ok>: Update comment. (struct spec_nodes) <n__VA_OPT__>: New field. * init.c (struct lang_flags) <va_opt>: New field. (lang_defaults): Add entries for C++2A. Update all entries for va_opt. (cpp_set_lang): Initialize va_opt. * include/cpplib.h (struct cpp_options) <va_opt>: New field. * identifiers.c (_cpp_init_hashtable): Initialize n__VA_OPT__. From-SVN: r254707
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
diagnostic-pragma-1.c | Loading commit data... | |
normalize-3.c | Loading commit data... | |
openacc-define-1.c | Loading commit data... | |
openacc-define-2.c | Loading commit data... | |
openacc-define-3.c | Loading commit data... | |
openmp-define-1.c | Loading commit data... | |
openmp-define-2.c | Loading commit data... | |
openmp-define-3.c | Loading commit data... | |
pr45457.c | Loading commit data... | |
pr57580.c | Loading commit data... | |
pr58844-1.c | Loading commit data... | |
pr58844-2.c | Loading commit data... | |
pr60400-1.h | Loading commit data... | |
pr60400-2.h | Loading commit data... | |
pr60400.c | Loading commit data... | |
pr63831-1.c | Loading commit data... | |
pr63831-2.c | Loading commit data... | |
pr65238-1.c | Loading commit data... | |
ucnid-2011-1.c | Loading commit data... | |
va-opt-error.c | Loading commit data... | |
va-opt-pedantic.c | Loading commit data... | |
va-opt.c | Loading commit data... | |
warning-directive-1.c | Loading commit data... | |
warning-directive-2.c | Loading commit data... | |
warning-directive-3.c | Loading commit data... | |
warning-directive-4.c | Loading commit data... | |
warning-zero-in-literals-1.c | Loading commit data... | |
warning-zero-location-2.c | Loading commit data... | |
warning-zero-location.c | Loading commit data... |