From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22147 invoked by alias); 31 May 2018 01:33:47 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 22136 invoked by uid 89); 31 May 2018 01:33:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=wind, sk:complai X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 31 May 2018 01:33:44 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 6AEA0560BA; Wed, 30 May 2018 21:33:43 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 3R9JFifV31SN; Wed, 30 May 2018 21:33:43 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 39292560B9; Wed, 30 May 2018 21:33:43 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 7F10783056; Wed, 30 May 2018 18:33:41 -0700 (PDT) Date: Thu, 31 May 2018 02:35:00 -0000 From: Joel Brobecker To: Tom Tromey Cc: gdb-patches@sourceware.org Subject: Re: [RFA 3/4] Remove TYPE_TAG_NAME Message-ID: <20180531013341.bbsus52d5f6fwkss@adacore.com> References: <20180417195125.14200-1-tom@tromey.com> <20180417195125.14200-4-tom@tromey.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180417195125.14200-4-tom@tromey.com> User-Agent: NeoMutt/20170113 (1.7.2) X-SW-Source: 2018-05/txt/msg00833.txt.bz2 > TYPE_TAG_NAME has been an occasional source of confusion and bugs. It > seems to me that it is only useful for C and C++ -- but even there, > not so much, because at least with DWARF there doesn't seem to be any > way to wind up with a type where the name and the tag name are both > non-NULL and different. > > So, this patch removes TYPE_TAG_NAME entirely. This should save a > little memory, but more importantly, it simplifies this part of gdb. > > A few minor test suite adjustments were needed. In some situations > the new code does not yield identical output to the old code. > > ChangeLog > 2018-04-17 Tom Tromey > > * valops.c (enum_constant_from_type, value_namespace_elt) > (value_maybe_namespace_elt): Update. > * valarith.c (find_size_for_pointer_math): Update. > * target-descriptions.c (make_gdb_type): Update. > * symmisc.c (print_symbol): Update. > * stabsread.c (define_symbol, read_type) > (complain_about_struct_wipeout, add_undefined_type) > (cleanup_undefined_types_1): Update. > * rust-lang.c (rust_tuple_type_p, rust_slice_type_p) > (rust_range_type_p, val_print_struct, rust_print_struct_def) > (rust_internal_print_type, rust_composite_type) > (rust_evaluate_funcall, rust_evaluate_subexp): Update. > * python/py-type.c (typy_get_tag): Update. > * p-typeprint.c (pascal_type_print_base): Update. > * mdebugread.c (parse_symbol, parse_type): Update. > * m2-typeprint.c (m2_long_set, m2_record_fields, m2_enum): > Update. > * guile/scm-type.c (gdbscm_type_tag): Update. > * go-lang.c (sixg_string_p): Update. > * gnu-v3-abi.c (build_gdb_vtable_type, build_std_type_info_type): > Update. > * gdbtypes.h (struct main_type) : Remove. > (TYPE_TAG_NAME): Remove. > * gdbtypes.c (type_name_no_tag): Simplify. > (check_typedef, check_types_equal, recursive_dump_type) > (copy_type_recursive, arch_composite_type): Update. > * f-typeprint.c (f_type_print_base): Update. Print "Type" prefix > in summary mode when needed. > * eval.c (evaluate_funcall): Update. > * dwarf2read.c (fixup_go_packaging, read_structure_type) > (process_structure_scope, read_enumeration_type) > (read_namespace_type, read_module_type, determine_prefix): Update. > * cp-support.c (inspect_type): Update. > * coffread.c (process_coff_symbol, decode_base_type): Update. > * c-varobj.c (c_is_path_expr_parent): Update. > * c-typeprint.c (c_type_print_base_struct_union): Update. > (c_type_print_base_1): Update. Print struct/class/union/enum in > summary when using C language. > * ax-gdb.c (gen_struct_ref, gen_namespace_elt) > (gen_maybe_namespace_elt): Update. > * ada-lang.c (ada_type_name): Simplify. > (empty_record, ada_template_to_fixed_record_type_1) > (template_to_static_fixed_type) > (to_record_with_fixed_variant_part, ada_check_typedef): Update. > > testsuite/ChangeLog > 2018-04-17 Tom Tromey > > * gdb.xml/tdesc-regs.exp (load_description): Update expected > results. > * gdb.dwarf2/method-ptr.exp: Set language to C++. > * gdb.dwarf2/member-ptr-forwardref.exp: Set language to C++. > * gdb.cp/typeid.exp (do_typeid_tests): Update type_re. > * gdb.base/maint.exp (maint_pass_if): Update. This looks good to me. Perhaps add the comment that Keith mentioned about the use of language_minimal in c_type_print_base_1. Sometimes, I wonder whether we might have over-engineered that thing. Thanks! -- Joel