From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2088.outbound.protection.outlook.com [40.107.6.88]) by sourceware.org (Postfix) with ESMTPS id 990A2384EF71 for ; Thu, 15 Dec 2022 15:15:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 990A2384EF71 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lRNzwCVZagkZdbpbNN8VLF+idWw2S3EPyZtAkJPpCLEcs4b/jjbBTzi4YNDMlyoC9W+6xY/GbnzaUEYlDIfr0JTCEY4PpthCQgMmLI3R5iw2BMBrO/FyamYqC7CiwwbPj/SJdHb0LP+n6MUWef/zPjvrE76L3gl6qCj5OCBGy0zM6syIcNdtUDQo7M2xLdVKTItzRHHcZytGUubarGteZzevfWAzNJlNOqMxdVbP1VTPdKNxq0DRypbVLAAII+vKeW4TVCtC7c87qu/UqQ1FlTBJ8Pwe24IMJAkSMq4T5/ZDDJKz8ZxPuZ5EAoJ5h5g53/d5AfQqiYca7dNGgBoGug== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fjBkczKnEuIaK3AARHQyOg3EhZesNnPCYNH2RCvDztI=; b=hhLNegqC4y1xCTnmOh5XHZZUbMuk4LS/8VDxIhgwdCobejF32yaCD6w43VzH4LLnKkE3GAroh3Dlznfmlcx2+1fknXylyvWjrxb1AETLjD95BuLN9+FUifCxtCgr2VnboL3LyudOvWmF9lCOI5HXqFJctjoFpzVUNKvXvTFJE3sI0IOWbuDZIN3Us3eOlC/91BzC7smnmqQPS75piRn6f+A/R0E+qTtKJ9gb7T+Qmi5Lx+BTTHHGrdicz+DIgkxsoPGjT49r12KNntU5jRhz+bHtnzSxIgOzupjFvirBq4/roCncccAlUIbN4o9F5l6nLCysKcRNnRjneKiRuqR2Ww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fjBkczKnEuIaK3AARHQyOg3EhZesNnPCYNH2RCvDztI=; b=E5a0O7PEpuHHZwodPIolelErbB0MQzRhWc8LM3/11h1RFJGCl4e9rSDsU3YhC6UI2js8+3wrVpS8A+ko8/Zfy8b6SLSaQ3H4H6lrBR/I9Vl2YACIl1k7Fr6lriWtbAaY2rC+SdiE5yFc3CbH8xUW0VceQFEJY7FfgmcYqnRkayR/pm77uZVo3VTlb4V6qlyUBKkEIFw5bTEes90LRGcJFLvNyTYXqf+OQwFnR20Tqwb2Xg983Ty7ib/QrS8kF9IFGJIdTRx5ftp54409gfbDu6kX+eXPMIExN0/+Ib97K7DOIzUpcmHrUx77SQ6HKLQuyHaSnVp2eKtC1xEfDsbvcQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM8PR04MB7971.eurprd04.prod.outlook.com (2603:10a6:20b:234::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.11; Thu, 15 Dec 2022 15:14:59 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5924.011; Thu, 15 Dec 2022 15:14:59 +0000 Message-ID: <15b35aca-4b74-63ff-b6e9-831879fa7cfa@suse.com> Date: Thu, 15 Dec 2022 16:14:57 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Content-Language: en-US To: Binutils Cc: Andrew Burgess , Luis Machado From: Jan Beulich Subject: [PATCH] gas: restore Dwarf info generation after macro diagnostic adjustments Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: FRYP281CA0001.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10::11) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM8PR04MB7971:EE_ X-MS-Office365-Filtering-Correlation-Id: 124bd076-4b11-41d9-da5e-08dadeaf219e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wmlHE9j5OkqXvQr76xclOc3qh6sxZ5aTmC8cnRFDQV0BHY9rBO/1NYl5DswFVVZLZz8Vdu3ITPH2U59Eig93sQB8Oy4TaDvHOze3oop+EBrwvd6KTCnk/6+9jgNXHuXWgDNqX0ReVOVldk9roS3t6FplYXpUBN1f7MpuBcGfzgRAZy9lcbWeNGVXYcIMx/Bc4JpN++z5LFncwCogP3zH3D+rWyA27K3f++ku6qdO6+pXMVrP8UBsE+UBOFaVI8hwNDbr86K+18EEliqEjFduhTGf82I99uLCrhJA34mLwn2JdcKMJt1fO3v+kVnGg9twbiQx5EBbFI5R34LkdkrUS+91dMbzgabSJ/V5rQZfC22scqZeIQRv6ZmO6le9uW0IQ3P8SFZRRARmcx/NGtQXjJ7AOV9z42X9cCsgJ+MDSwaq2wZ0JTPMDpm0pn7NIFnr0Ufu3xxf0hTeVoqOxijMm1LIL13uIB2Sm314zOG4LQfnNl+3MMyjifdJLyvH/TbGw3yrZi3N/mMt9NTDQitP0FvWOZnLQcoMxaf/LpKyfuIsuckZ0ebwfGXT53d6NCR5DfxWBHuashgG/LIZfHRCGoh8Wp/DjNr2Tb5Zj/Ob8iZjSoCow/VjFEtRp9j8Y82iq9/OBTc1g86t+uwN/EaLttulohgDoy2lPx6seftc8yBU9g1LS33qcoeX3pjpk9LLEWA7m3wVkHA7UiKPWusp+JzfNRX2q+2zI+Wf4u0RPPg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(376002)(136003)(366004)(396003)(346002)(451199015)(38100700002)(6916009)(31696002)(86362001)(66946007)(4326008)(316002)(54906003)(8676002)(6486002)(41300700001)(2906002)(5660300002)(66556008)(66476007)(8936002)(83380400001)(26005)(6506007)(186003)(2616005)(6512007)(478600001)(36756003)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Nm9YY3drOGJ6RnR6OGt3L3NnczZSaFdUUGRuWWN6Mk1FQ1p6eWI5Qy9DeFMr?= =?utf-8?B?bTBueXhqRlFOc2V4MHZTTTlTaENEckVDTVpSRDZnQkZEcExFTnV4UjMzMDBT?= =?utf-8?B?cVRtTko3bVkySXBNa05MWXpsUFp6TEJRQS9RMTV1bkFFeVBxU2NtUlJ4MWFK?= =?utf-8?B?SitnL2Q4UVRWaS8veW9XNExKN3ArNFFRd3Q0OTl3aXhrSCs5TzVBN0FHaGh2?= =?utf-8?B?TTJyOG83aTFJTitTWk9Ndk1nQS9TRWlCQXRMNDhEdWlsVDBEelZTK2d6YTVZ?= =?utf-8?B?cm5rV0pXUTRSNGcyazlFMVhUc1NsVFlIYlozWHJEcHRsUU85bVdVUVRRYk5l?= =?utf-8?B?Z1dmbDE3azQ2TkpZR2dTWkxtT1c3MFlzVmpuUWxpY0Z4ajZNSGgzZHNiRjVF?= =?utf-8?B?RXdWdGJkL2RRdENqU2FlNVBtSVRuY0x2SlQzUEl6T1F1aGExZU1xRnVNb204?= =?utf-8?B?VDAyaUNtMURQbVJDS1JvdzdIbDZTUmxXZGkrY1prZVQyQWpLS1JvampuWWZ2?= =?utf-8?B?V2pJY3VuK3lVblBkencwVkQyQVBtVGVUWUJqUWsrK1ptN2tpWUtJVXhTT2py?= =?utf-8?B?c0xXaWdCNEFqRmljakFEUXVhakNXZXY0Q1BiM2JrbkhhUkJnZEJSYzhLS0FY?= =?utf-8?B?dUtEVVJLY0FJTXUwTjdKSnkzVnpBdVhGUUd0UHlvZm43NzM3Vi9hWUZ0N2VQ?= =?utf-8?B?RndjNzlZUDBGbHI3WUJBTDFBT1RqcldCUjMwUm9yLzFWcCtXL1FHTXJoVUgz?= =?utf-8?B?djQ4bXFXQTlOSjZVY0ZmQTFkWkF5ZkV3VUViWGV0MzRlLzkwOVFGSlV5UWo1?= =?utf-8?B?OW5SYlNKU05hVVcxV0EwMmQ0QXRSWDZYdnJCRWRYSEQzTUFEdWFqdksxQ0FH?= =?utf-8?B?ZElncVNXY1FMdndJeWZHMy9VM1VKNHdwaFM1blExZXdwd21YQnpVWWk0bkI0?= =?utf-8?B?Qml4M016eDFMTGJZVksrRWxER0pGd0ZyOUpnZUdmVURQNjU4STl0TTdyQkUv?= =?utf-8?B?T084TS9INkdEVXNybHpveXVoTkQrc3BOWHRRcUFURmgxcEI5OHlJR2Nsa0Vv?= =?utf-8?B?KzJZMTRqaDhuY2dTYjdnTzJjVllQbUN0cXlUWlJhaEJ2SEg0S0ZnWDJhYzBH?= =?utf-8?B?TVJYRllNUURaL0d5b2FBVHhTdW01RXUyS1lSWm1HM1BqbDNqdklQcWpCMC9V?= =?utf-8?B?SUZuRUkzV29TNzhKMDVqQ20yazdNYmlGZ0o3c3daN3FVajd1U3BsTWNwMUtu?= =?utf-8?B?OFFZMFBobE1lMjNpQzVvb1l0aGpPYUlwdG1Rbk1CYmJ6dXNPTmROdEkrVWN5?= =?utf-8?B?Z05lQ2tmZW1EczNucHpESWgxSlZ4K3NlWmY2SDJsbE5zQjZkbjBiYmJlb0Z4?= =?utf-8?B?anVFVWw4RXVqNEk2UGlKVU51WndzT2E3QjhudzNzdnJ6cTZ0NnBnM2JNWE9Z?= =?utf-8?B?dDVRR2VvM3N5SUpUUVY2bzhKSy9RK2l6aFlPWVMwc1NFaW43a0lpcktCMnVU?= =?utf-8?B?T253REhtaHBDLzdrQm5BRTFQbU1zZ3lucUpQREFaS05jdkhnNzh6bC93YWZi?= =?utf-8?B?b0IxNXVpOGt6S3lEWWgzWVhPQndnQ3RKbUlkRFlXaVVzUTd6M0Rsc0RtRVBO?= =?utf-8?B?ZE0zbGd4RjNvN005VjE3Wm5qdHFIa1BsWUQvd3p2VUlQTXNvS0cxRTZkQ1g4?= =?utf-8?B?NDZUU1dEbG9rYVN6UDlnZ2w5Zi9EV2RpazZ0ZEQ5c2MzQ2UydVFIeGZaRG1y?= =?utf-8?B?RGlTNVNjR3ZmRW4yZWxPeVR0QzVrdHhzNksrcVNLZ3JRK090VHo3ZUNMMEVu?= =?utf-8?B?c0huU0RRb3lZZDB2d1JoYVpGTlJxNHhlVklmQnViUSs5TGRvd3V0bGVLekdv?= =?utf-8?B?eFh0b0ovMzYreEowb1dybmtKdFVIMWgyU3FtS1Z6eWhWelhWMVdBSG9SdlQ5?= =?utf-8?B?eDNMelVMdENESVRLMWxpNm5LV005RFdjcDBMUERPWklkOURmWkpERm9KWlg2?= =?utf-8?B?NENySE5yWTZiQVZiV1ZTY3Uyb0RBMGRQbFQrbmk5Wng3OUVLM3Bxd0pRdXBL?= =?utf-8?B?NFAzNnNUUmVCNk9DUkkxdVcrTE8wcVEyR0t5eS95SDFLTWhtRDdXNlFaYVA2?= =?utf-8?Q?ExEK9HbUcEnUnLDYuVMynZVvB?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 124bd076-4b11-41d9-da5e-08dadeaf219e X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Dec 2022 15:14:59.1985 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +imzb3BupsNPkCWiUFBvZiJHzmP9fomiVriBc1PXuNwtEfiG4rZFSG9zBvJvJUQHLanqZcbVd6kOX/ydo1z0pw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR04MB7971 X-Spam-Status: No, score=-3028.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: While 6fdb723799e2 ("gas: re-work line number tracking for macros and their expansions") was meant to leave generated Dwarf as is, it really didn't (and the testcase intended to catch that wasn't covering the case which broke). Its adjustment to buffer_and_nest() didn't go far enough, leading to the "linefile" directive inserted at the top to also be processed later in the PRĀ gas/16908 workaround (which clearly isn't intended - it's being put there for processing during macro expansion only). That unnoticed flaw in turn led me to work around it by a (suspicious to me already at the time) conditional in as_where(). --- a/gas/input-scrub.c +++ b/gas/input-scrub.c @@ -564,9 +564,6 @@ as_where (unsigned int *linep) do { - if (!saved->is_linefile) - break; - if (expansion != expanding_macro) /* Nothing. */; else if (saved->logical_input_file != NULL --- a/gas/macro.c +++ b/gas/macro.c @@ -120,8 +120,7 @@ buffer_and_nest (const char *from, const size_t from_len; size_t to_len = strlen (to); int depth = 1; - size_t line_start = ptr->len; - size_t more = get_line (ptr); + size_t line_start, more; if (to_len == 4 && strcasecmp (to, "ENDR") == 0) { @@ -147,6 +146,8 @@ buffer_and_nest (const char *from, const xfree (linefile); } + line_start = ptr->len; + more = get_line (ptr); while (more) { /* Try to find the first pseudo op on the line. */ --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro-include.d @@ -0,0 +1,17 @@ +#as: --gdwarf-5 -I${srcdir}/$subdir +#name: line number entries for expansions of .macro coming from .include +#readelf: -W -wl +# The am33 cr16 crx ft32 mn10* msp430 nds32* and rl78 targets do not evaluate the subtraction of symbols at assembly time. +# The d30v target emits sufficiently different debug info, apparently also covering padding it inserts. +# The riscv targets do not support the subtraction of symbols. +#xfail: am33*-* cr16-* crx-* d30v-* ft32-* mn10*-* msp430-* nds32*-* riscv*-* rl78-* + +Raw dump of debug contents .* +#... + Line Number Statements: +.*Extended opcode 2: .* +.*Special opcode .* advance Address by 0 .* and Line by 2 to 3 +.*Special opcode .* and Line by 1 to 4 +.*Special opcode .* and Line by 1 to 5 +.*Advance PC by .* +.*Extended opcode 1: End of Sequence --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro-include.inc @@ -0,0 +1,3 @@ + .macro m1 args:vararg + .nop + .endm --- /dev/null +++ b/gas/testsuite/gas/elf/dwarf-5-macro-include.s @@ -0,0 +1,5 @@ + .include "dwarf-5-macro-include.inc" + + m1 1 + m1 2 + m1 3 --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -309,6 +309,7 @@ if { [is_elf_format] } then { run_dump_test "dwarf-5-nop-for-line-table" $dump_opts run_dump_test "dwarf-5-irp" $dump_opts run_dump_test "dwarf-5-macro" $dump_opts + run_dump_test "dwarf-5-macro-include" $dump_opts run_dump_test "dwarf-3-func" $dump_opts run_dump_test "dwarf-5-func" $dump_opts run_dump_test "dwarf-5-func-global" $dump_opts