analyzer: workaround for nested pp_printf
The dumps from the analyzer sometimes contain garbled output. The root cause is due to nesting of calls to pp_printf: I'm using pp_printf with %qT to print types with a PP using default_tree_printer. default_tree_printer handles 'T' (and various other codes) via dump_generic_node (pp, t, 0, TDF_SLIM, 0); and dump_generic_node can call pp_printf in various ways, leading to a pp_printf within a pp_printf, and garbled output. I don't think it's feasible to fix pp_printf to be reentrant, in stage 4, at least, so for the moment this patch works around it in the analyzer. gcc/analyzer/ChangeLog: * region-model.cc (print_quoted_type): New function. (svalue::print): Use it to replace %qT. (region::dump_to_pp): Likewise. (region::dump_child_label): Likewise. (region::print_fields): Likewise.
Showing
Please
register
or
sign in
to comment