X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Flanguage.c;h=bf990da8a9753fac3420f6c0b0eb0ed12d8a46d7;hb=4d4eaa30055138112bd17ed6933f2da39760d9e6;hp=0e13c7185b76b57fa445d4642ac863c9d28f4281;hpb=91ae903f89f6869c8163d33cad1f90c87469d55b;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/language.c b/gdb/language.c index 0e13c7185b..bf990da8a9 100644 --- a/gdb/language.c +++ b/gdb/language.c @@ -652,21 +652,23 @@ language_class_name_from_physname (const struct language_defn *lang, return NULL; } -/* Return non-zero if TYPE should be passed (and returned) by - reference at the language level. */ -int +/* Return information about whether TYPE should be passed + (and returned) by reference at the language level. */ + +struct language_pass_by_ref_info language_pass_by_reference (struct type *type) { return current_language->la_pass_by_reference (type); } -/* Return zero; by default, types are passed by value at the language - level. The target ABI may pass or return some structs by reference - independent of this. */ -int +/* Return a default struct that provides pass-by-reference information + about the given TYPE. Languages should update the default values + as appropriate. */ + +struct language_pass_by_ref_info default_pass_by_reference (struct type *type) { - return 0; + return {}; } /* Return the default string containing the list of characters @@ -1048,10 +1050,10 @@ language_alloc_type_symbol (enum language lang, struct type *type) gdb_assert (!TYPE_OBJFILE_OWNED (type)); gdbarch = TYPE_OWNER (type).gdbarch; - symbol = GDBARCH_OBSTACK_ZALLOC (gdbarch, struct symbol); + symbol = new (gdbarch_obstack (gdbarch)) struct symbol (); - symbol->ginfo.name = TYPE_NAME (type); - symbol->ginfo.language = lang; + symbol->m_name = TYPE_NAME (type); + symbol->set_language (lang, nullptr); symbol->owner.arch = gdbarch; SYMBOL_OBJFILE_OWNED (symbol) = 0; SYMBOL_TYPE (symbol) = type;