From patchwork Mon Feb 5 20:00:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 25825 Received: (qmail 62047 invoked by alias); 5 Feb 2018 20:01:02 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 61646 invoked by uid 89); 5 Feb 2018 20:00:56 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_STOCKGEN, SPF_PASS autolearn=ham version=3.3.2 spammy=nowhere, H*M:simon, H*MI:simon, 1658 X-HELO: sesbmg22.ericsson.net Received: from sesbmg22.ericsson.net (HELO sesbmg22.ericsson.net) (193.180.251.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 05 Feb 2018 20:00:52 +0000 Received: from ESESSHC018.ericsson.se (Unknown_Domain [153.88.183.72]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 44.6F.18296.1F7B87A5; Mon, 5 Feb 2018 21:00:49 +0100 (CET) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.72) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 5 Feb 2018 21:00:49 +0100 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from elxacz23q12.ca.am.ericsson.se (192.75.88.130) by DM5PR1501MB2007.namprd15.prod.outlook.com (2603:10b6:4:a1::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.464.11; Mon, 5 Feb 2018 20:00:46 +0000 From: Simon Marchi To: CC: Simon Marchi Subject: [PATCH] Fix type of values representing optimized out static members Date: Mon, 5 Feb 2018 15:00:36 -0500 Message-ID: <1517860836-9587-1-git-send-email-simon.marchi@ericsson.com> MIME-Version: 1.0 X-ClientProxiedBy: DM3PR12CA0085.namprd12.prod.outlook.com (2603:10b6:0:57::29) To DM5PR1501MB2007.namprd15.prod.outlook.com (2603:10b6:4:a1::37) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0436212-f7b9-468d-39f6-08d56cd3259e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:DM5PR1501MB2007; X-Microsoft-Exchange-Diagnostics: 1; DM5PR1501MB2007; 3:tP6v73/IvIdZlIJOBJyg6cSmRS7f+yf5qhKXE0tJPWg4PfGgpp+AMjGis2+G8LWIUSoqP379Z7hfWlFuvDMM3sF8hyqk5NMh9WHP+EwQ+RHQFSThOtR15MG0WifXWSyGXkatDyXE0h/u1kDe3eAN+nqw+cg5xKJyq12dwaxA0IP7TGZh9P2BYU3YTO9LT+XvlblcD/PX8rPV21K6t9IzTTru0z0hh+NDWASLOJk+AxQ+VtfOPXcz6pw/Q5GVScTR; 25:EoJlroDq2bNWCCOzZsKEnxrlpSj5zFMSrBJt5o3KsPiwzpzomoHe7rW1l2l+kE1dDgmVESJo0f1dlSXtK79xbxPCD01aUb2wXEwsoQJPiAsoQb7H7Wf+SkE4kqirCUDPRO7O80uKBITwynQkUJhchvqXVj4MI3pehwxxdzO3r7NR6nPqebElgCI8YKtOSY1fQM6FhyVJd65G2u7W1ZrBp+/x+OekMVMQ+2rMMgHrzEknFDoLfyDdDlwB/xaKWO6Z21IBd5Ar/XWTzOYBDQh6oaexWVqmrYBkQEMz2JlZi/THKLZohICpN5LQ/KTxrcwtI4ZdNDQT/ehzR2l9qks0eg==; 31:zrLAK36nCm/ThPXD+/RygR0b9fyUulX+FX/8rrXjadBwca8qRr+XmuHKzUSbW3SKm06IJiX4qqCj3QAUgY+G1Z6ENWpd9yMg6H6rEQzAb+wzgfr0ZKP6NEQp9moUQ2XV6/WqZIW1bWB4SxJrFlAIkRqZYZFWelWFLGY07r9NIqbCtcOOITsTPy+2C522WVrAFV2ZUylbKpdpcFlLKtj2MLU+AW5mElnfSnoe0BDXpsA= X-MS-TrafficTypeDiagnostic: DM5PR1501MB2007: X-Microsoft-Exchange-Diagnostics: 1; DM5PR1501MB2007; 20:Cc914/ATD2HTMAo4PwSuZdI9Oz6ZreyivID3+iKIttTH+FjEUD3VcpaA0IFEZXa+WnCyrYKGURRtA8C9vPU5CabetIz3MnDfBDgzVPLhEBqyegv37YCVCZ1DuEaDa2UNcCRy0kHve5RP5T5ueWTAugOrWocO7vlcvVUQETIoQzTVUVJ/mDBOA6bOcsA4KkJvuaSQX/HxGgehRXmSackF1T6IWLRDas2lItV3vMhZ30wdcVu7ADzbMKw3QLCguoFkcTKr3ontrQcoCeVpDRoEam+qvF0O3Jh8hitPwY7/Tl9vOaW6x0WghyvVj5sh2RhKIUqTYs1ByFPiitN9nvV7VlpDhWkCHvs19T0LSchmNSbQKqdIrnFwTnJjzq/lb2PP21hLpdxdtbrX6dQ4E66dsxjL1YBa4NLsCSeDgQJUcOaM7E8TMrKKhXSOreVyH0j28vD/n/HESD3z7/y1HL+ufWCUduXu/gZFyd5nOAP/EUh7GfT7xN16tzMjWX6hM9+c; 4:RUdtjlC71n4/qAVkuTiE0KBrpjATdSEw/2OunM0PPkKLM6siUBpx3m6E09zjiwfBxtWjS8B7heMQPK6WnzSRdYAqdP7gPSAe85hf3u9eg1g/g+6a56YhDdRE8SeTFMLh/36EWDozFZro2ZL1yjQIeOCu0hVtYuhNevexB/xUZtN+zOtxmYpA7Oz8O4tPHGlJqkPWv0ifBFfTdOpdDAxWyAYaXlJmSzb01Le/WpnKu8FFGIqBVx/2GACYk87D7K0VhLmCMfmzaXs/z7uDJ9IMsg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(5005006)(8121501046)(3231101)(2400082)(944501161)(3002001)(10201501046)(93006095)(93001095)(6041288)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123562045)(6072148)(201708071742011); SRVR:DM5PR1501MB2007; BCL:0; PCL:0; RULEID:; SRVR:DM5PR1501MB2007; X-Forefront-PRVS: 0574D4712B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(376002)(39860400002)(39380400002)(346002)(396003)(54534003)(199004)(189003)(2351001)(51416003)(16586007)(2906002)(106356001)(105586002)(4326008)(8936002)(50226002)(305945005)(26005)(8676002)(81166006)(6666003)(966005)(478600001)(6512007)(6306002)(53936002)(25786009)(5660300001)(1857600001)(52116002)(7736002)(6916009)(48376002)(47776003)(68736007)(386003)(81156014)(6486002)(36756003)(66066001)(50466002)(316002)(6506007)(16526019)(186003)(2361001)(86362001)(97736004)(6116002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR1501MB2007; H:elxacz23q12.ca.am.ericsson.se; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR1501MB2007; 23:g7dO92vehgIgMOXK/+0N46sCd57wMEu0z+8jSDx?= =?us-ascii?Q?7ckbwnnUzHur62mkAj4zON9L5P6xgBHi0M68Uu8zJxDomayIdbIG31NyTR0h?= =?us-ascii?Q?g/joFe51pwKHCaZWlubu0C4s75j5YOUG01DWUpS/b6jJ1rq6bgPUOoejEaFp?= =?us-ascii?Q?jenqCIu6pSUO6bUSSdfk4OFfq7gcaof9sa7YACC5jCXIN0VxRbL+OAhuKk1a?= =?us-ascii?Q?aDtSQiQm33JSaNfczMd8ao4Fb9LKCIK1BeC0ybZH7IE5l9sb3dhTHpIhFYrx?= =?us-ascii?Q?XpoaVO7Dja5ijMvNgugaKdZEaeIAxnOuEJ6g4+nTLKaJ8wwbBVMQDC8DcL5A?= =?us-ascii?Q?e6ODDyUAuI711veAVWM/koJbpYch6Q6m2PGb5B+cVrone5k5cxGyst4DA2dw?= =?us-ascii?Q?6sM1wtbeeygAEzty23VWFmWMxoWmqSkp4y4wT8LWOByKMVkJse40yU7k/9pr?= =?us-ascii?Q?BHLYkJSd2PAS0ipKcFKQmFeb0HboCgjkKoV5ph+CQ49vG2vqPqOJpU3C/KkH?= =?us-ascii?Q?+B7tIbonqMhX/Kc7dY26SDv59zuj4JrhDLZ6yCoywVtN7OqMMBT4kcsXShlO?= =?us-ascii?Q?IY7T3fgPMvJYhSkQmG+fAVdEXUZiR2INFBg2AKLFBXfOmo40YviUMueSjla+?= =?us-ascii?Q?0n7eiYiuknRjpSEHN2q/cMFK4k300FpVzPYqXZCT7ngoIeXw3Ao8sAyLc9YA?= =?us-ascii?Q?SOyw9m5I0irBNyHD1drwRTFV1veBe9DZEXu/y37IkbseNadFPO8C1EbCV4Ru?= =?us-ascii?Q?tSzhsB/0RzeHb6CX4XMN0Z/te7OGQn6YyogwPEMfbCaHoCEMi1rNJ2BdCknI?= =?us-ascii?Q?l+gfLBiIuhUQ9/J1lklnwDoW/2+S/4pvfuX/vDYomqtAmKe8bwuhG3Q2EaSF?= =?us-ascii?Q?fB7w362K0tTPiTJ2NXvOwmDZ53D52i450YVOUglRAjAyne8oD0CRz2CtYeAO?= =?us-ascii?Q?ZfUIFQPIBxjVuG8nM8O7eqgNXBhJGh0OpWXS3aL3wP15lnbTdLa7MIZ6GmoT?= =?us-ascii?Q?DWaXKa58VIOcdWrdzjMlInpyP2igTUFsN5Y1OuOlP1q8+vaEYChhStYDNGXp?= =?us-ascii?Q?u+zZQiI2eEEJEbQ2ANhqwjKfuetNA3PMtTjaJNcZiJGkqkYutzsCJxsMwKJv?= =?us-ascii?Q?m6uzMKOiV3hAChdz9op5p7NnwhntTDxANqH/SX8f0R/9myPQkyO8FL1PaiyJ?= =?us-ascii?Q?1uxzS/thE4pqAT/Q=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR1501MB2007; 6:KZcWoVkWpq7zR5jO3v9en5LuttnzCvWUZe6Q0ckAYjuiJiZ+wuz8AjUirhO6EgpV+9ydWShhjGU/x+fJK9LR7i+tx0BXO9FmY5KtTgSLnj5sugil4G6F8+q9iUZAOHMC0VG//FJZM1QOWIuqcfCJGY2lI6dwnJz08dDwatfcMN7sG9v8b72dYzzrcBc876HsOt38apqDYeZOYmtxWK0CiU60p6mOQBX6U2Sjw7H2xVZSgyyz0Vp7oN00pNOEx2OD8t3pRp0aSZc95dxaQrus0fwxCPDo7CCUSbse0hor0l2adJXdCAfyjZkJBNxlKHOaj/Nksi/38E2+df2+weU8NA9j3UNhcuDbjsAVj+VqwOM=; 5:FlM1wOsCZwtxblV0962yNExmrzyHttI2XFm/AkpmCwK8pXJDTg7jUkf+9/23zDzNWLU8Q1KGTGthlp17XWCCSk3v2FOoeqCWfPrM+xzBrBf5uhEkRsNWu3vLPuaoHXXnCIpwH3yyfqnye1x9SpFVWIzemVoANfKhFJ4UwtDxgRg=; 24:YfyaPgL2/Wi/1D2I55DJWGiT4iNy7UeEUZih90d5PPvzosoVT97odgJA4E2bs40QFrviOixPzMEJY5nsTmVNNKuOctiAhPHpudW36h3bxmw=; 7:yDtT9oJ2IYVXlBwnA2qmE/XSlEx0mtlZy9oFAGGVh94kJXG2ABph7uHgidmCudFBao1t221JsalRlEh4iLDsKquoI5E0qdIrUNYaSaTD4D2kqlDKdx6+xzOZQ/sAFKunzpDo349queVpUrPxa3azitSWAg0GVDpZ/N9XaKFiZ3PgeadCLe5vg59nfwism6XN/Q697j4nYzWddvpJPvW2EXigQZ3Ouz4nN86RURCd5UDWEbbjkyK7GA9M6FejXMUq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2018 20:00:46.6256 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f0436212-f7b9-468d-39f6-08d56cd3259e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1501MB2007 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes From: Simon Marchi As reported here: https://sourceware.org/ml/gdb/2018-02/msg00019.html the type of values representing static members that are optimized out is wrong. It currently assigns the type of the containing class rather than the type of the field. This patch fixes that. I found a place in m-static.exp already dealing with optimized out static members, so I just added some gdb_test there. gdb/ChangeLog: * value.c (value_static_field): Assign field type instead of containing type when returning an optimized out value. gdb/testsuite/ChangeLog: * gdb.cp/m-static.exp: Check type of optimized out static member. --- gdb/testsuite/gdb.cp/m-static.exp | 2 ++ gdb/value.c | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gdb/testsuite/gdb.cp/m-static.exp b/gdb/testsuite/gdb.cp/m-static.exp index 6566171..ffcbf53 100644 --- a/gdb/testsuite/gdb.cp/m-static.exp +++ b/gdb/testsuite/gdb.cp/m-static.exp @@ -165,6 +165,8 @@ if {[test_compiler_info {gcc-[0-3]-*}] setup_xfail *-*-* } gdb_test "print test4.nowhere" "" "static const int initialized nowhere (print field)" +gdb_test "ptype test4.nowhere" "type = const int" +gdb_test "print test4.nowhere.nowhere" "Attempt to extract a component of a value that is not a structure." # Same, but print the whole struct. gdb_test "print test4" "static nowhere = .*" "static const int initialized nowhere (whole struct)" diff --git a/gdb/value.c b/gdb/value.c index 9a144fb..9cd9a2f 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -2976,14 +2976,12 @@ value_static_field (struct type *type, int fieldno) reported as non-debuggable symbols. */ struct bound_minimal_symbol msym = lookup_minimal_symbol (phys_name, NULL, NULL); + struct type *field_type = TYPE_FIELD_TYPE (type, fieldno); if (!msym.minsym) - return allocate_optimized_out_value (type); + retval = allocate_optimized_out_value (field_type); else - { - retval = value_at_lazy (TYPE_FIELD_TYPE (type, fieldno), - BMSYMBOL_VALUE_ADDRESS (msym)); - } + retval = value_at_lazy (field_type, BMSYMBOL_VALUE_ADDRESS (msym)); } else retval = value_of_variable (sym.symbol, sym.block);