[Bug preprocessor/83708] Token-based policy broken by __VA_OPT__

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 15 17:44:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83708

--- Comment #1 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Thu Feb 15 17:43:01 2018
New Revision: 257696

URL: https://gcc.gnu.org/viewcvs?rev=257696&root=gcc&view=rev
Log:
        PR preprocessor/83063 - __VA_OPT__ and ##

        PR preprocessor/83708
        * macro.c (vaopt_state): Reorder m_last_was_paste before m_state.
        (vaopt_state::vaopt_state): Adjust.
        (vaopt_state::update_flags): Add BEGIN and END.
        (vaopt_state::update): Return them.
        (copy_paste_flag): Factor out of replace_args.
        (last_token_is): New.
        (replace_args): Handle BEGIN and END.  Avoid padding there.
        (tokens_buff_last_token_ptr): Return NULL if no tokens.

Added:
    trunk/gcc/testsuite/c-c++-common/cpp/va-opt-2.c
    trunk/gcc/testsuite/c-c++-common/cpp/va-opt-3.c
Modified:
    trunk/libcpp/ChangeLog
    trunk/libcpp/macro.c


More information about the Gcc-bugs mailing list