How about this version? Here I use libiberty/hashtab.c to determine function name ambiguity. It turns out the bug exists for constructors too. I.e. l->function_name for "Derived" in the gdb.cp/mb-ctor testcase is "Derived" for both locations. I wonder if for this particular situation l->function_name should record an "enhanced" name to distinguish them.