https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103617
--- Comment #5 from Andrew Macleod <amacleod at redhat dot com> --- Well, I don't know :-( It looks like the temporary variable PP uses deosn't work right for references? 263 r.set_undefined (); (gdb) n 266 if ((idx = tracer.header ("range_of_stmt ("))) (gdb) pp s w9.0_1 = w9; (gdb) pp r Attempt to take address of value not located in memory. (gdb) p $debug_arg $9 = {m_num_ranges = 0 '\000', m_max_ranges = 255 '\377', m_kind = VR_UNDEFINED, m_base = 0x7fffffffbbd0} (gdb) p $debug_arg.dump(stderr) Attempt to take address of value not located in memory. (gdb) p $debug_arg.m_num_ranges $10 = 0 '\000' It looks like it can't create a 'this' pointer by taking the address of the object.. Is this even suppose to work? It doesn't seem to work for wide_ints either: (gdb) call r.set_varying (name->typed.type) (gdb) p r.dump(stderr) int VARYING$11 = void (gdb) set $test = r.lower_bound(0) (gdb) p $test $13 = {<wide_int_storage> = {val = {-2147483648, 25376563, 140737332737664, 140737488324960, 140737488312144, 15963520, 140737488312240, 64771920, 140737488312152}, len = 1, precision = 32}, static is_sign_extended = true} (gdb) p ::debug ($test) Attempt to take address of value not located in memory.