From 97e20099d3b02baafe244e975aebe09020d2ab34 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 7 Nov 2022 11:12:35 -0700 Subject: Allow 'ptype/o' for assembly PR exp/28359 points out that 'ptype/o' does not work when the current language is "asm". I tracked this down to a hard-coded list of languages in typeprint.c. This patch replaces this list with a method on 'language_defn' instead. If all languages are ever updated to have this feature, the method could be removed; but in the meantime this lets each language control what happens. I looked at having each print_type method simply modify the flags itself, but this doesn't work very well with the feature that disables method-printing by default (but allows it via a flag). Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28359 Approved-By: Andrew Burgess Approved-By: Keith Seitz --- gdb/language.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gdb/language.h') diff --git a/gdb/language.h b/gdb/language.h index 871b00b..c1c735a 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -451,6 +451,13 @@ struct language_defn return nullptr; } + /* Return true if this class' implementation of print_type can + handle the /o modifier. */ + virtual bool can_print_type_offsets () const + { + return false; + } + /* Print TYPE to STREAM using syntax appropriate for this language. LEVEL is the depth to indent lines by. VARSTRING, if not NULL or the empty string, is the name of a variable and TYPE should be printed in -- cgit v1.1