From: Tom Tromey Date: Sat, 3 May 2025 17:28:22 +0000 (-0600) Subject: Do not set yydebug in cp-name-parser.y X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1edb555c59cea300eb4ed9fec7cb86790acc2234;p=thirdparty%2Fbinutils-gdb.git Do not set yydebug in cp-name-parser.y This reverts the change to cp-name-parser.y, avoiding a TSan report. Approved-By: Simon Marchi --- diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y index e7317b732cc..d4ab98c7a10 100644 --- a/gdb/cp-name-parser.y +++ b/gdb/cp-name-parser.y @@ -2047,9 +2047,11 @@ cp_demangled_name_to_comp (const char *demangled_name, auto result = std::make_unique (); cpname_state state (demangled_name, result.get ()); - scoped_restore restore_yydebug = make_scoped_restore (&yydebug, - parser_debug); - + /* Note that we can't set yydebug here, as is done in the other + parsers. Bison implements yydebug as a global, even with a pure + parser, and this parser is run from worker threads. So, changing + yydebug causes TSan reports. If you need to debug this parser, + debug gdb and set the global from the outer gdb. */ if (yyparse (&state)) { if (state.global_errmsg && errmsg)