From patchwork Mon Jun 24 14:23:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Remus X-Patchwork-Id: 92782 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 613E4384772F for ; Mon, 24 Jun 2024 19:00:48 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id E32FB385840D for ; Mon, 24 Jun 2024 19:00:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E32FB385840D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E32FB385840D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719255605; cv=none; b=WCts4rgNWPG38c5yw8RXUR2y+Zg7v1MM7ZZUKj7yPw01ezVpxxIgunCA6Pn8TAXW6v2qDBCm8ll6iUB7Qk/8a6Gi+OE5/btorm0LsutldQ2OPijbvPFts881x4HIjKKdEtjbRR8tS7Ff0HUR8oYrFQeI2wS/CNaXAmjfW+VrEeI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1719255605; c=relaxed/simple; bh=XK1lr/dRpZSKH9uzV8y7AIqVWDfC59/PWEZyPvfo8fY=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=rTJKRv5p6Sbn+0IPaQoE16wm/sIafz4tMre46v9jbEPKggV8dXkHfzI592w9mcpx0tbgAoli9Usy5gXmy8l3VZ6pRSG4KBJjvgYyvxbU56ANLRvEjCumFV8BUNZTVk1AO5g1tIxDrWKakgvMdo5aXmtHyHMdk478nja29UmDkPs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45ODuwKa022465; Mon, 24 Jun 2024 14:27:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from :to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=pp1; bh=Jmk37mZ/zQgOJ dKDFpxGQIgtQ7ExjgC1xk1R98Wwr48=; b=EbX27MHw1dAXtpSHCRpfT92VCwYZb 2ZgivIT8t7A3EiwZOtpOpv6kNERT90iiKiEwozV/nTb4iQnXCry2gKsN5eCJkeCE XspONYOUe4YtXKZZ1r0sbZ8EBA0b/WvJykVLRSKFSvlQCg+gJ7rDji60sZmeYTnb GuLlawkFpM1HZJWy4IsyAkXWu5NaVzXgRB+8GIu0txHSA9yRg0mF6TVsJNBAtYqB WScPOeJXRoIcqZhFMUsYEzk8jkes9uwb8fsI5nf+cCCDhwKnoOt0UmVV2qG8dnkl f336MOWYOHhcVBjsclxkhYzPGMdKGdrOrhq55YXjDiRhwCGdTBYW8oo7Q== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3yy7y20gjn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Jun 2024 14:27:18 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 45ODBUgE000627; Mon, 24 Jun 2024 14:23:44 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3yxaems48e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 24 Jun 2024 14:23:43 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 45OENcwN56689144 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jun 2024 14:23:40 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 272F72006E; Mon, 24 Jun 2024 14:23:38 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0D0F02006C; Mon, 24 Jun 2024 14:23:38 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 24 Jun 2024 14:23:38 +0000 (GMT) From: Jens Remus To: binutils@sourceware.org, Indu Bhagat Cc: Jens Remus , Andreas Krebbel Subject: [PATCH v4 07/15] gas: Warn if SFrame FDE is skipped due to non-default return column Date: Mon, 24 Jun 2024 16:23:26 +0200 Message-Id: <20240624142334.3283823-8-jremus@linux.ibm.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240624142334.3283823-1-jremus@linux.ibm.com> References: <20240624142334.3283823-1-jremus@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: S2NTm165Kz28pVGIPU59TFi6s_HySj9R X-Proofpoint-ORIG-GUID: S2NTm165Kz28pVGIPU59TFi6s_HySj9R X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-06-24_11,2024-06-24_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxlogscore=999 lowpriorityscore=0 mlxscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 adultscore=0 phishscore=0 clxscore=1015 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2406140001 definitions=main-2406240115 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+patchwork=sourceware.org@sourceware.org Print a warning message if SFrame FDE is skipped due to a non-default DWARF return column (i.e. return address (RA) register number). This may be caused by the use of CFI directive .cfi_return_column with a non-default return address (RA) register number in the processed assembler source code. Warning: skipping SFrame FDE due to non-default DWARF return column gas/ * gen-sframe.c: Warn if SFrame FDE is skipped due to non-default DWARF return column. gas/testsuite/ * gas/cfi-sframe/common-empty-3.d: Update test case to expect for new warning message when SFrame FDE is skipped due to a non-default DWARF return column. Reviewed-by: Andreas Krebbel Reviewed-by: Indu Bhagat Signed-off-by: Jens Remus --- Notes (jremus): Changes v2 -> v3: - Enhance comment in code as suggested by Indu. - Corrected formatting of ChangeLog in commit message. Without this patch the assembler would generate incomplete SFrame information without warning for the s390-specific SFrame error test case 4, that gets introduced by patch "s390: Initial support to generate .sframe from CFI directives in assembler". gas/gen-sframe.c | 10 +++++++--- gas/testsuite/gas/cfi-sframe/common-empty-3.d | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c index 52c2f3f4ff89..fac5b6f0fa62 100644 --- a/gas/gen-sframe.c +++ b/gas/gen-sframe.c @@ -1345,9 +1345,12 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx, xlate_ctx->dw_fde = dw_fde; - /* If the return column is not RIP, SFrame format cannot represent it. */ + /* SFrame format cannot represent a non-default DWARF return column reg. */ if (xlate_ctx->dw_fde->return_column != DWARF2_DEFAULT_RETURN_COLUMN) - return SFRAME_XLATE_ERR_NOTREPRESENTED; + { + as_warn (_("skipping SFrame FDE due to non-default DWARF return column")); + return SFRAME_XLATE_ERR_NOTREPRESENTED; + } /* Iterate over the CFIs and create SFrame FREs. */ for (cfi_insn = dw_fde->data; cfi_insn; cfi_insn = cfi_insn->next) @@ -1357,7 +1360,8 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx, if (err != SFRAME_XLATE_OK) { /* Skip generating SFrame stack trace info for the function if any - offending CFI is encountered by sframe_do_cfi_insn (). */ + offending CFI is encountered by sframe_do_cfi_insn (). Warning + message already printed by sframe_do_cfi_insn (). */ return err; /* Return the error code. */ } } diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-3.d b/gas/testsuite/gas/cfi-sframe/common-empty-3.d index 5914c620760d..d17521dd88ea 100644 --- a/gas/testsuite/gas/cfi-sframe/common-empty-3.d +++ b/gas/testsuite/gas/cfi-sframe/common-empty-3.d @@ -1,4 +1,5 @@ #as: --gsframe +#warning: skipping SFrame FDE due to non-default DWARF return column #objdump: --sframe=.sframe #name: SFrame supports only default return column #...