gdb: provide const-correct versions of addrmap::find and addrmap::foreach
authorSimon Marchi <simon.marchi@polymtl.ca>
Fri, 27 Jan 2023 19:46:50 +0000 (14:46 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Mon, 30 Jan 2023 15:22:42 +0000 (10:22 -0500)
commit5867ab870b8aa36ae490ec6e4e8e4c55be11ccf1
treec5049320fa15c17055ef6bf20935118170545080
parent8d31d08fe61059fb94c02ae30c2b7cd0ea738df0
gdb: provide const-correct versions of addrmap::find and addrmap::foreach

Users of addrmap::find and addrmap::foreach that have a const addrmap
should ideally receive const pointers to objects, to indicate they
should not be modified.  However, users that have a non-const addrmap
should still receive a non-const pointer.

To achieve this, without adding more virtual methods, make the existing
find and foreach virtual methods private and prefix them with "do_".
Add small non-const and const wrappers for find and foreach.

Obviously, the const can be cast away, but if using static_cast
instead of C-style casts, then the compiler won't let you cast
the const away.  I changed all the callers of addrmap::find and
addrmap::foreach I could find to make them use static_cast.

Change-Id: Ia8e69d022564f80d961413658fe6068edc71a094
gdb/addrmap.c
gdb/addrmap.h
gdb/dwarf2/cooked-index.h
gdb/dwarf2/index-write.c
gdb/dwarf2/read.c