I noticed that even with Daniel's recent C++ improvements (thanks!), vbase handling was still broken with dwarf2 because dwarf2read.c still didn't grok the complex location expression gcc now emits. As it happens, by a fluke simply adding support for the missing opcodes causes decode_locdesc to produce the answer gdb wants. The dwarf2 output expects the stack to start with the address of the object and produce the address of the base, whereas in the current gdb the stack starts with 0 and produces the negation of whatever constant is provided, which matches the stabs output. Of course, gdb tries to complain about the derefs twice in the process, but is currently muffled. So, it's not a complete solution, but it's entirely correct and fixes gdb.c++/inherit.exp. OK to commit? 2002-01-10 Jason Merrill * dwarf2read.c (decode_locdesc): Implement DW_OP_litn, DW_OP_dup. Fix DW_OP_minus.