https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107965
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Component|libstdc++ |debug Last reconfirmed| |2022-12-05 CC| |jason at gcc dot gnu.org --- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Richard Biener from comment #3) > so gdb has no idea that x only becomes live after the call to the CTOR > (or during that). Instead GCC says it lives throughout the whole > function on the frame. That's clearly a GCC bug then, because that is not how C++ works. > Even the original IL from the frontend has no > hint that would allow the middle-end to emit different DWARF. So let's change component to 'debug'. There's definitely nothing the libstdc++ printers can do here. (In reply to Richard Biener from comment #4) > I would suggest to make the pretty-printers more robust with respect to > memory errrors (can those errors be catched and the printing avoided > somehow?) There's no single type of error reported in such cases (e.g. the OverflowError shown above depends on the specific values of the uninitialized bytes, even the same printer won't fail with the same error every time). The only way to be more robust is to catch *all* exceptions, and swallow all errors from any point in the printers. That then hides real errors, and makes them impossible to develop/debug. It would mean changes in at least 50 places, which would all have to be individually disabled to allow real errors to propagate when trying to debug or improve the printers. I don't want to do that.