From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21000 invoked by alias); 31 Oct 2019 17:22:24 -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 20940 invoked by uid 89); 31 Oct 2019 17:22:23 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-8.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.1 spammy=*die, issuing X-HELO: mx1.osci.io Received: from polly.osci.io (HELO mx1.osci.io) (8.43.85.229) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 31 Oct 2019 17:22:21 +0000 Received: by mx1.osci.io (Postfix, from userid 994) id CACB020339; Thu, 31 Oct 2019 13:22:19 -0400 (EDT) Received: from gnutoolchain-gerrit.osci.io (gnutoolchain-gerrit.osci.io [8.43.85.239]) by mx1.osci.io (Postfix) with ESMTP id 290F920266; Thu, 31 Oct 2019 13:22:17 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by gnutoolchain-gerrit.osci.io (Postfix) with ESMTP id 0B47320AF6; Thu, 31 Oct 2019 13:22:17 -0400 (EDT) X-Gerrit-PatchSet: 1 Date: Thu, 31 Oct 2019 17:22:00 -0000 From: "Tankut Baris Aktemur (Code Review)" To: gdb-patches@sourceware.org Cc: Simon Marchi , Tom Tromey , Andrew Burgess Auto-Submitted: auto-generated X-Gerrit-MessageType: comment Subject: [review] gdb: recognize new DWARF attributes: defaulted, deleted, calling conv. X-Gerrit-Change-Id: I54192f363115b78ec7435a8563b73fcace420765 X-Gerrit-Change-Number: 135 X-Gerrit-ChangeURL: X-Gerrit-Commit: be2a724c69fd89d32b0829d500820f9c7f448c84 In-Reply-To: References: X-Gerrit-Comment-Date: Thu, 31 Oct 2019 13:22:16 -0400 Reply-To: gnutoolchain-gerrit@osci.io MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Disposition: inline User-Agent: Gerrit/3.0.3-75-g9005159e5d Content-Type: text/plain; charset=UTF-8 Message-Id: <20191031172217.0B47320AF6@gnutoolchain-gerrit.osci.io> X-SW-Source: 2019-10/txt/msg01177.txt.bz2 Tankut Baris Aktemur has posted comments on this change. Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135 ...................................................................... Patch Set 1: (5 comments) > I assume this is used elsewhere in your series. Now that we're on gerrit and can't > do cover letters, I think it would be helpful if supporting patches like this could > mention facts like that... something for us all to consider as we write commit > messages. Yes. I update the commit message in v2. https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135/1/gdb/dwarf2read.c File gdb/dwarf2read.c: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135/1/gdb/dwarf2read.c@15533 PS1, Line 15533: 15422 | dwarf2_add_member_fn (struct field_info *fip, struct die_info *die, | ... 15528 | if (attr && DW_UNSND (attr) != 0) 15529 | fnp->is_artificial = 1; 15530 | 15531 | /* Check for defaulted methods. */ 15532 | attr = dwarf2_attr (die, DW_AT_defaulted, cu); 15533 > if (attr) 15534 | fnp->defaulted = DW_UNSND (attr); 15535 | 15536 | /* Check for deleted methods. */ 15537 | attr = dwarf2_attr (die, DW_AT_deleted, cu); 15538 | if (attr && DW_UNSND (attr) != 0) > Use: […] Done https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135/1/gdb/dwarf2read.c@15534 PS1, Line 15534: 15422 | dwarf2_add_member_fn (struct field_info *fip, struct die_info *die, | ... 15529 | fnp->is_artificial = 1; 15530 | 15531 | /* Check for defaulted methods. */ 15532 | attr = dwarf2_attr (die, DW_AT_defaulted, cu); 15533 | if (attr) 15534 > fnp->defaulted = DW_UNSND (attr); 15535 | 15536 | /* Check for deleted methods. */ 15537 | attr = dwarf2_attr (die, DW_AT_deleted, cu); 15538 | if (attr && DW_UNSND (attr) != 0) 15539 | fnp->is_deleted = 1; > Shouldn't we do a bit of validation here, making sure `attr` is one of the valid values, issuing a c […] Done https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135/1/gdb/gdbtypes.h File gdb/gdbtypes.h: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135/1/gdb/gdbtypes.h@929 PS1, Line 929: 899 | struct fn_field | ... 924 | struct type *fcontext; 925 | 926 | /* * DW_AT_defaulted attribute for this function; the value is one 927 | of the DW_DEFAULTED enum dwarf_defaulted_attribute constants. */ 928 | 929 > unsigned int defaulted; 930 | 931 | /* Attributes. */ 932 | 933 | unsigned int is_const:1; 934 | unsigned int is_volatile:1; > Should this be a bit-field or a narrower integer type? […] In v2, I make this 2-bit-wide and move down for better packing. https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135/1/gdb/gdbtypes.h@929 PS1, Line 929: 899 | struct fn_field | ... 924 | struct type *fcontext; 925 | 926 | /* * DW_AT_defaulted attribute for this function; the value is one 927 | of the DW_DEFAULTED enum dwarf_defaulted_attribute constants. */ 928 | 929 > unsigned int defaulted; 930 | 931 | /* Attributes. */ 932 | 933 | unsigned int is_const:1; 934 | unsigned int is_volatile:1; > It would be good for this field to be an enum. […] In v2, I make this an ENUM_BITFIELD. https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/135/1/gdb/gdbtypes.h@1101 PS1, Line 1101: 986 | struct cplus_struct_type | ... 1096 | 1097 | /* * The calling convention for this type, fetched from the 1098 | DW_AT_calling_convention attribute. The value is one of the 1099 | DW_CC enum dwarf_calling_convention constants. */ 1100 | 1101 > unsigned calling_convention : 8; 1102 | }; 1103 | 1104 | /* * Struct used to store conversion rankings. */ 1105 | 1106 | struct rank > Ah, thanks for pointing out this other usage in func_type. […] Yes, agree. In v2, I make this an ENUM_BITFIELD and move near `is_dynamic`. -- Gerrit-Project: binutils-gdb Gerrit-Branch: master Gerrit-Change-Id: I54192f363115b78ec7435a8563b73fcace420765 Gerrit-Change-Number: 135 Gerrit-PatchSet: 1 Gerrit-Owner: Tankut Baris Aktemur Gerrit-Reviewer: Andrew Burgess Gerrit-Reviewer: Tankut Baris Aktemur Gerrit-CC: Simon Marchi Gerrit-CC: Tom Tromey Gerrit-Comment-Date: Thu, 31 Oct 2019 17:22:16 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Tom Tromey Comment-In-Reply-To: Tankut Baris Aktemur Comment-In-Reply-To: Simon Marchi Gerrit-MessageType: comment