From 807bf60cfc08dda89e81b171d8667a6a491afe26 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sun, 23 Dec 2018 19:37:30 +0100 Subject: c++: fix double free when a symbol_type was moved Currently the following piece of code crashes (with parse.assert), because we don't record that s was moved-from, and we invoke its dtor. { auto s = parser::make_INT (42); auto s2 = std::move (s); } Reported by Wolfgang Thaller. http://lists.gnu.org/archive/html/bug-bison/2018-12/msg00077.html * data/c++.m4 (by_type): Provide a move-ctor. (basic_symbol): Be sure not to read a moved-from value. * tests/c++.at (C++ Variant-based Symbols Unit Tests): Check this case. --- THANKS | 1 + 1 file changed, 1 insertion(+) (limited to 'THANKS') diff --git a/THANKS b/THANKS index cb0c5737..86c23eef 100644 --- a/THANKS +++ b/THANKS @@ -180,6 +180,7 @@ Wayne Green wayne@infosavvy.com Wei Song wsong83@gmail.com Wojciech Polak polak@gnu.org Wolfgang S. Kechel wolfgang.kechel@prs.de +Wolfgang Thaller wolfgang.thaller@gmx.net Wolfram Wagner ww@mpi-sb.mpg.de Wwp subscript@free.fr xolodho xolodho@gmail.com -- cgit v1.2.1