From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2049.outbound.protection.outlook.com [40.107.244.49]) by sourceware.org (Postfix) with ESMTPS id 877893951866 for ; Mon, 7 Dec 2020 19:01:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 877893951866 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RY8DJtMpmkit5ak68jEFRyo1YhpXDoH0x+PC7gSuZUtvLvzviZalCcTVWJJwUn6/pcoHVeCs2ko54atYEWyW+3+qOHaBenOERqYyCQ7iGTtvCgBi1v21wCiiEDtsf0PG2ErZCmKeYomoYaoatgwVJThLwOGgc2jh1SPjJ9fGEFLHqQzXXlbefnLHCmFm+K1noQorbCaizyue87NE9/+j8HnJVzppD8LUTMZPdFifUKlU0bSbDr3+WI49GIFXL7ZIZYeDlU+/ZE4C6cT9+tTSo2E2bmKImmyktEjN7cCf8FQJQKuUvfXrzDp6qdhxVlx19UQHp1rOG7DYt+PJVlA9fg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r4YCZbwm6ewaFqzXpD2raU/qtBumhFiu64e0p8ZdapA=; b=iSEwYS+PGncb+e0sSEyMzu3sUUHr3a7LSGI9zEvR1ZNquh7L0b+7ZM+wht6FKVxvDxneQJLRRAJNWb/1mrh9YKaSncwpLVSEZ4GuBlmOXcvY3DePdNnA5LSt0hxeMbA/Hqo3KpomL6wuV6xMoAF1YbKGsaBij6j5XiGn6N6k1THdH/LAcA8/z5phkqFcz0l2YuoLJuSK6iweCQOx5BM7+S7XREK0hTsnbezamj6xZzvYRJ1dnaUtUngEtBRzxzzCPcm1CSUmfPUGTH4Yf/CvP5uPrz3Dd1zvLnSnnzLojUdkVHNZAlCu50uQrQ7YfQ5PHbe+YCGBsLw2F9DXXuQDGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from DM6PR12MB2762.namprd12.prod.outlook.com (2603:10b6:5:45::15) by DM6PR12MB4561.namprd12.prod.outlook.com (2603:10b6:5:2ac::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.18; Mon, 7 Dec 2020 19:01:03 +0000 Received: from DM6PR12MB2762.namprd12.prod.outlook.com ([fe80::6841:61df:984b:b3c]) by DM6PR12MB2762.namprd12.prod.outlook.com ([fe80::6841:61df:984b:b3c%3]) with mapi id 15.20.3632.021; Mon, 7 Dec 2020 19:01:03 +0000 From: Zoran Zaric To: gdb-patches@sourceware.org Cc: Zoran Zaric Subject: [PATCH 10/30] Remove empty frame and full evaluators Date: Mon, 7 Dec 2020 19:00:11 +0000 Message-Id: <20201207190031.13341-11-Zoran.Zaric@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201207190031.13341-1-Zoran.Zaric@amd.com> References: <20201207190031.13341-1-Zoran.Zaric@amd.com> Content-Type: text/plain X-Originating-IP: [2a00:23c7:5a85:6801:5c7:2db6:d2c2:ae4e] X-ClientProxiedBy: AM4PR0101CA0053.eurprd01.prod.exchangelabs.com (2603:10a6:200:41::21) To DM6PR12MB2762.namprd12.prod.outlook.com (2603:10b6:5:45::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (2a00:23c7:5a85:6801:5c7:2db6:d2c2:ae4e) by AM4PR0101CA0053.eurprd01.prod.exchangelabs.com (2603:10a6:200:41::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3632.17 via Frontend Transport; Mon, 7 Dec 2020 19:01:02 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5a1d9721-1353-452a-5fa3-08d89ae271dd X-MS-TrafficTypeDiagnostic: DM6PR12MB4561: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: obdWsjsrLZwkUqHd3yHOJjSYHTX52VAJAfu6mAE44Oj5dFigcsaP2vfgwmZRl+bc6NWQMl2/SXR0sX9fP868oay54rvlXGhfVZU7aDgQ7S+pu64yJIgu7qwGnVe6pEpDVH7hq2S+6SMByQysUwK3iUFCj2ZLs4nououPSoVD/tVZlDv7yN7jQELipNgpn7dX7rZiP3k84AxTIpYFcbJQ6u9BJ8SjQz/rIzjX0egsM4CSHzfcEemHkpF0pZZr/CUl4Q5bogR03RlYweKOt7cVH28O2AR2CnKDyKSpnbNzrhuxzBnE7MG2SbwSbPZ3CgSxqQ8ZKrT5M+KYcdZilBkQr5coVp96sSeofmWo4fY0IQ17JBuO/EbR45wOF9ClOXXs X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB2762.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(39860400002)(366004)(136003)(396003)(1076003)(83380400001)(86362001)(6506007)(4326008)(69590400008)(52116002)(36756003)(2906002)(6512007)(8676002)(6486002)(16526019)(2616005)(66946007)(66476007)(66556008)(6916009)(5660300002)(186003)(8936002)(478600001)(6666004)(316002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?n7n7mNg0IUjgerQcAKeLqQM+JkMMqALUMz+/OKDXZVrFPysw/6S9X+X/ImzI?= =?us-ascii?Q?f5d56p6kXKsvvQCwwoKTyE1OakH9dGk05G8q2yfM5q+IsHApIQNeiQMoLk8E?= =?us-ascii?Q?FaecjA7TnfEW5kpGxAM0rBBfqBAQIuLD/aWIk6YgFGnvf6VyfMbZOK8SWiid?= =?us-ascii?Q?1U/AY7navB3q6lAnN8fkxbaNOfVrN50NNn+y31673FFls2NdddWtxAv25tPr?= =?us-ascii?Q?kK1iF4Sa4W3gKeUndM05b99HOJdS88Hmx4TrRZPQky/mWL2rG3Nh3loV82xs?= =?us-ascii?Q?13psNKTNIUld6aZj8yJeEQbxuzYJ6poJ+oXNcadM7f2MBjX8YxI5i76vby71?= =?us-ascii?Q?vpyKRtnrAn0YFXSA97U1VBiSH93adGHWxIwC7vSWVQsRhlXwOxuTGReGrwrC?= =?us-ascii?Q?VBt5c62GQeHLnrmAA3Hq+UMkLFiRCLQgrc1HOxjBlmJYBXsrCtQLbc8DY06t?= =?us-ascii?Q?2tK2rluFb9/Gdq3XDEccpGc9j1+nv0jaj+A0mWaCmNxE/2kpVwDLTljHH7y6?= =?us-ascii?Q?dl7BpHc8Ux/sr7muEBXoCHXH4QZTY+8zldnv6scgr93GpdSm6lJkOWwYwpsT?= =?us-ascii?Q?S4DCfeGMMZRqA5cU1zWvhJIpCC6MqgUQ+b5qiJC/c538MherAPSDgRrTR09X?= =?us-ascii?Q?AUhLeWm2XGtz1RuxUsgDizy+l1DBfZzCDJZmOSNlGHnSW0zzVDmVNAQjSPwc?= =?us-ascii?Q?iAHeY9gljL12cXs3H7AqHRpZhhYEU8/zTo3WdAxvRy0+Z75EwOg9CoNUtcOT?= =?us-ascii?Q?Sp8YQP/XIinaJ1zwLpbJhxhCTWIHSVPzz33SRKG9qulRyrx25V8FNh2ffZAN?= =?us-ascii?Q?VT6Xadx5IgO60Mm5915m0bZFOMeZeSDac6h82qwUC4iLXXILbK5bFjahxB3L?= =?us-ascii?Q?b0FM7p5s2x8zkXb+2OJyQmgDxC0W4Ks3VzuR9PakVE6S2mDvewZWUIYMrjG9?= =?us-ascii?Q?ZtfGuV2/6k7wMvBTOlqk/w5OuAwHBwdg4NHX4e9KE5IwkjGJQyPdzyP2RnQ0?= =?us-ascii?Q?MRDq5JA+PNKCLwvVnNhR4PFubazp8fUCgbxLml2NlG0DSthy5CNs8Hr/+puH?= =?us-ascii?Q?FJ+zB+ke?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB2762.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2020 19:01:03.5665 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-Network-Message-Id: 5a1d9721-1353-452a-5fa3-08d89ae271dd X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: K+YjfLIhXvHaipzglEI9H0cRR8Lvf1F1p3o9MAGdc4EvPe30RaT+r8oJJIzaJBiOIMgg4Nb/HbEM6nkk6X3i5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4561 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Dec 2020 19:01:13 -0000 From: Zoran Zaric There are no virtual methods that require different specialization in dwarf_expr_context class. This means that derived classes dwarf_expr_executor and dwarf_evaluate_loc_desc are not needed any more. As a result of this, the evaluate_for_locexpr_baton class base class is now the dwarf_expr_context class. There might be a need for a better class hierarchy when we know more about the direction of the future DWARF versions and gdb extensions, but that is out of the scope of this patch series. gdb/ChangeLog: * dwarf2/frame.c (class dwarf_expr_executor): Remove class. (execute_stack_op): Instantiate dwarf_expr_context instead of dwarf_evaluate_loc_desc class. * dwarf2/loc.c (class dwarf_evaluate_loc_desc): Remove class. (dwarf2_evaluate_loc_desc_full): Instantiate dwarf_expr_context instead of dwarf_evaluate_loc_desc class. (struct evaluate_for_locexpr_baton): Derive from dwarf_expr_context. --- gdb/dwarf2/frame.c | 18 +----------------- gdb/dwarf2/loc.c | 16 ++++------------ 2 files changed, 5 insertions(+), 29 deletions(-) diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c index 3eb2aa9991..9081ec0c92 100644 --- a/gdb/dwarf2/frame.c +++ b/gdb/dwarf2/frame.c @@ -223,22 +223,6 @@ register %s (#%d) at %s"), } } -class dwarf_expr_executor : public dwarf_expr_context -{ -public: - - dwarf_expr_executor (dwarf2_per_objfile *per_objfile) - : dwarf_expr_context (per_objfile) - {} - - private: - - void invalid (const char *op) ATTRIBUTE_NORETURN - { - error (_("%s is invalid in this context"), op); - } -}; - static CORE_ADDR execute_stack_op (const gdb_byte *exp, ULONGEST len, int addr_size, struct frame_info *this_frame, CORE_ADDR initial, @@ -246,7 +230,7 @@ execute_stack_op (const gdb_byte *exp, ULONGEST len, int addr_size, { CORE_ADDR result; - dwarf_expr_executor ctx (per_objfile); + dwarf_expr_context ctx (per_objfile); scoped_value_mark free_values; ctx.frame = this_frame; diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index 2750907c9e..2e353f1b31 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -618,14 +618,6 @@ sect_variable_value (sect_offset sect_off, type, true); } -class dwarf_evaluate_loc_desc : public dwarf_expr_context -{ -public: - dwarf_evaluate_loc_desc (dwarf2_per_objfile *per_objfile) - : dwarf_expr_context (per_objfile) - {} -}; - /* See dwarf2loc.h. */ unsigned int entry_values_debug = 0; @@ -2029,7 +2021,7 @@ dwarf2_evaluate_loc_desc_full (struct type *type, struct frame_info *frame, if (size == 0) return allocate_optimized_out_value (subobj_type); - dwarf_evaluate_loc_desc ctx (per_objfile); + dwarf_expr_context ctx (per_objfile); ctx.frame = frame; ctx.per_cu = per_cu; ctx.obj_address = 0; @@ -2229,16 +2221,16 @@ dwarf2_evaluate_loc_desc (struct type *type, struct frame_info *frame, per_objfile, NULL, 0); } -/* A specialization of dwarf_evaluate_loc_desc that is used by +/* A specialization of dwarf_expr_context that is used by dwarf2_locexpr_baton_eval. This subclass exists to handle the case where a caller of dwarf2_locexpr_baton_eval passes in some data, but with the address being 0. In this situation, we arrange for memory reads to come from the passed-in buffer. */ -struct evaluate_for_locexpr_baton : public dwarf_evaluate_loc_desc +struct evaluate_for_locexpr_baton : public dwarf_expr_context { evaluate_for_locexpr_baton (dwarf2_per_objfile *per_objfile) - : dwarf_evaluate_loc_desc (per_objfile) + : dwarf_expr_context (per_objfile) {} /* The data that was passed in. */ -- 2.17.1