| Summary: | Token-based policy broken by __VA_OPT__ | ||
|---|---|---|---|
| Product: | gcc | Reporter: | Jun Woong <woong.jun> |
| Component: | preprocessor | Assignee: | Jason Merrill <jason> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | jason |
| Priority: | P3 | ||
| Version: | 8.0 | ||
| Target Milestone: | 8.0 | ||
| Host: | Target: | ||
| Build: | Known to work: | ||
| Known to fail: | Last reconfirmed: | ||
|
Description
Jun Woong
2018-01-06 01:24:26 UTC
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 Fixed. |