c++: using macros around user types breaks when they include comma

We may generate code such as

    basic_symbol (typename Base::kind_type t, YY_RVREF (std::pair<int,int>) v);

which, of course, breaks, because YY_RVREF sees two arguments.  Let's
not play tricks with _VA_ARGS__, I'm unsure about it portability.
Anyway, I plan to change more things in this area.

Reported by Sébastien Villemot.
http://lists.gnu.org/archive/html/bug-bison/2018-11/msg00014.html

* data/variant.hh (b4_basic_symbol_constructor_declare)
(b4_basic_symbol_constructor_define): Don't use macro on user types.
* tests/types.at: Check that we support pairs.
This commit is contained in:
Akim Demaille
2018-11-20 19:28:12 +01:00
parent b72d654fa2
commit 4e510c69b1
3 changed files with 46 additions and 9 deletions

1
THANKS
View File

@@ -151,6 +151,7 @@ Roland Levillain roland@lrde.epita.fr
Satya Kiran Popuri satyakiran@gmail.com
Sebastian Setzer sebastian.setzer.ext@siemens.com
Sebastien Fricker sebastien.fricker@gmail.com
Sébastien Villemot sebastien@debian.org
Sergei Steshenko sergstesh@yahoo.com
Shura debil_urod@ngs.ru
Simon Sobisch simonsobisch@web.de