https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87671
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- That does seem to explain the difference. With GCC 8 GDB thinks that 'ptr' is passed in the register %rsi so the value in the register is the value of the unique_ptr's member. With GCC 9 it correctly knows that the param is passed by invisible reference, and so the value in the register is the address of the unique_ptr on the stack. This was fixed on trunk by r263164 so is a dup of PR 86687 *** This bug has been marked as a duplicate of bug 86687 ***