Skip to content
Snippets Groups Projects
  • Jason Merrill's avatar
    ac6e77aa
    libcpp: __VA_OPT__ tweak · ac6e77aa
    Jason Merrill authored
    > We want to remove the latter <placemarker> but not the former one, and
    > the patch adds the vaopt_padding_tokens counter for it to control
    > how many placemarkers are removed on vaopt_state::END.
    > As can be seen in #c1 and #c2 of the PR, I've tried various approaches,
    > but neither worked out for all the cases except the posted one.
    
    I notice that the second placemarker you mention is avoid_paste, which seems
    relevant.  This seems to also work, at least it doesn't seem to break any of
    the va_opt tests.
    
    2021-09-01  Jason Merrill  <jason@redhat.com>
    
    	* macro.c (replace_args): When __VA_OPT__ is on the LHS of ##,
    	remove trailing avoid_paste tokens.
    ac6e77aa
    History
    libcpp: __VA_OPT__ tweak
    Jason Merrill authored
    > We want to remove the latter <placemarker> but not the former one, and
    > the patch adds the vaopt_padding_tokens counter for it to control
    > how many placemarkers are removed on vaopt_state::END.
    > As can be seen in #c1 and #c2 of the PR, I've tried various approaches,
    > but neither worked out for all the cases except the posted one.
    
    I notice that the second placemarker you mention is avoid_paste, which seems
    relevant.  This seems to also work, at least it doesn't seem to break any of
    the va_opt tests.
    
    2021-09-01  Jason Merrill  <jason@redhat.com>
    
    	* macro.c (replace_args): When __VA_OPT__ is on the LHS of ##,
    	remove trailing avoid_paste tokens.