aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorAlex Coplan <alex.coplan@arm.com>2024-11-26 15:10:29 +0000
committerAlex Coplan <alex.coplan@arm.com>2024-11-26 15:10:29 +0000
commit098a41cb972d3711ebcb518a72a1addfdb6c70cf (patch)
tree5734c60f247870a2990a8f7539949dd72af3c0d9 /gcc/fortran
parenta22dfe208d94105a6e587a3b25e8fe8d62444d8a (diff)
downloadgcc-098a41cb972d3711ebcb518a72a1addfdb6c70cf.zip
gcc-098a41cb972d3711ebcb518a72a1addfdb6c70cf.tar.gz
gcc-098a41cb972d3711ebcb518a72a1addfdb6c70cf.tar.bz2
gdbhooks: Handle references to vec* in VecPrinter
vec.h has this method: template<typename T, typename A> inline T * vec_safe_push (vec<T, A, vl_embed> *&v, const T &obj CXX_MEM_STAT_INFO) where v is a reference to a pointer to vec. This matches the regex for VecPrinter, so gdbhooks.py attempts to print it but chokes on the reference. I see the following: #1 0x0000000002b84b7b in vec_safe_push<edge_def*, va_gc> (v=Traceback (most recent call last): File "$SRC/gcc/gcc/gdbhooks.py", line 486, in to_string return '0x%x' % intptr(self.gdbval) File "$SRC/gcc/gcc/gdbhooks.py", line 168, in intptr return long(gdbval) if sys.version_info.major == 2 else int(gdbval) gdb.error: Cannot convert value to long. This patch makes VecPrinter handle such references by stripping them (dereferencing) at the top of the relevant functions. gcc/ChangeLog: * gdbhooks.py (strip_ref): New. Use it ... (VecPrinter.to_string): ... here, (VecPrinter.children): ... and here.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions