From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 3934038708DF; Mon, 13 May 2024 12:04:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3934038708DF Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3934038708DF Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715601891; cv=none; b=rt4ZzfvUH7DN41fw2E1lLNsQxglwSx7nxws9O1yl/7icDDvF73PIK4zeCoiCXe/jx2jdL8s+7gPclapwiXENtL/ZDJz/ZPdBaibTiVEUot/eADyN169gADG/qOphvP3vWfF6wCkC7F3xvXHwuxTqGv47yiBxQq6HKeUrSJL6UpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1715601891; c=relaxed/simple; bh=L+hbT0EN50MQeJ2Q156Q+0nspYdLe068632D+rxEI7E=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=noT+KH0educIxoEFLp8piLAvZ40dS9dC1dhpcLVDMcelgiq03AepiOwjdL+MfwZ1LvxyULgtAVlVEhUMKrFTM717/cxPQWDKyFoDl6AJkVTwABXSCjSRxGPGWLA80/YwvkbN+Iwd8Y2o4i+9hOrEnsfQxjc8bF7IxUfSJp4GVsQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s6P9t-0003Oe-L7; Mon, 13 May 2024 02:27:39 -0400 Received: from pps.filterd (m0353727.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 44D4dpZ6000309; Mon, 13 May 2024 06:27:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : mime-version : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding; s=pp1; bh=NxbMEDfsYf1tPpxIsaHc7a6vf8UFQlKR06xwJEedUSw=; b=gOv/BlY2tzWdX6vO26oZh4UScvvW/5Ud9GzV/T4B+V8EtIvgqEs+ECyz9OY07xlcSU+C m9KoIDvv509Qm4YjLAr1e5UzwFNSVbSddJTDl7jLv6mnJIQ5xeSFHHiVoTG2WArVjreK +lzAkkaoSjDfaZxgXxj92e/NNN0C6Jg7DvoUacyOxzDh3iyeA7g9/caioHECMfYm0eXa pgL7EtsilFMh7wEV+h6LbTnMYFcZzmoRXRRITsksBeJfSnHA1FW6xciYnOCDypYZ7cGc +YQSZN5Qn0PXP6Q9nxHCOI3dAO9WSZQdrFPeusvLCHkLaX0siTDnDrxv3XZ9DPXo7WXv zw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3y3aw68b1k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 May 2024 06:27:34 +0000 Received: from m0353727.ppops.net (m0353727.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 44D6RXI3010166; Mon, 13 May 2024 06:27:33 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3y3aw68b1h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 May 2024 06:27:33 +0000 Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 44D5tr43018764; Mon, 13 May 2024 06:27:32 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 3y2k0t67jn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 13 May 2024 06:27:32 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 44D6RR6v28639648 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 13 May 2024 06:27:29 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 50DAD20043; Mon, 13 May 2024 06:27:27 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 112DD20040; Mon, 13 May 2024 06:27:25 +0000 (GMT) Received: from [9.200.58.104] (unknown [9.200.58.104]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 13 May 2024 06:27:24 +0000 (GMT) Message-ID: Date: Mon, 13 May 2024 14:27:23 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH] report message for operator %a on unaddressible exp Content-Language: en-US To: Jiufu Guo Cc: segher@kernel.crashing.org, dje.gcc@gmail.com, linkw@gcc.gnu.org, bergner@linux.ibm.com, gcc-patches@gcc.gnu.org References: <20240513025712.889169-1-guojiufu@linux.ibm.com> From: "Kewen.Lin" In-Reply-To: <20240513025712.889169-1-guojiufu@linux.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 1h4Iq-yCwiSqV6f6ojtYKmzy3k5OEfPr X-Proofpoint-GUID: yLrpX4ykK328LfWeMVEsqlP_iGItkyDL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-13_04,2024-05-10_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxlogscore=999 mlxscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 spamscore=0 lowpriorityscore=0 malwarescore=0 phishscore=0 suspectscore=0 adultscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2405010000 definitions=main-2405130041 Received-SPF: pass client-ip=148.163.156.1; envelope-from=linkw@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_EF=-0.1,NICE_REPLY_A=-2.412,RCVD_IN_MSPIKE_H4=-0.01,RCVD_IN_MSPIKE_WL=-0.01,SPF_HELO_NONE=0.001,SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,KAM_STOCKGEN,NICE_REPLY_A,SPF_HELO_PASS,SPF_SOFTFAIL,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: Hi, on 2024/5/13 10:57, Jiufu Guo wrote: > Hi, > > For PR96866, when gcc print asm code for modifier "%a" which requires > an address operand, while the operand is with the constraint "X" which > allow non-address form. An error message would be reported to indicate > the invalid asm operands. > > Bootstrap®test pass on ppc64{,le}. > Is this ok for trunk? > > BR, > Jeff(Jiufu Guo) > > PR target/96866 > > gcc/ChangeLog: > > * config/rs6000/rs6000.cc (print_operand_address): > > gcc/testsuite/ChangeLog: > > * gcc.target/powerpc/pr96866-1.c: New test. > * gcc.target/powerpc/pr96866-2.c: New test. > > --- > gcc/config/rs6000/rs6000.cc | 6 ++++++ > gcc/testsuite/gcc.target/powerpc/pr96866-1.c | 15 +++++++++++++++ > gcc/testsuite/gcc.target/powerpc/pr96866-2.c | 10 ++++++++++ > 3 files changed, 31 insertions(+) > create mode 100644 gcc/testsuite/gcc.target/powerpc/pr96866-1.c > create mode 100644 gcc/testsuite/gcc.target/powerpc/pr96866-2.c > > diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc > index 117999613d8..50943d76f79 100644 > --- a/gcc/config/rs6000/rs6000.cc > +++ b/gcc/config/rs6000/rs6000.cc > @@ -14659,6 +14659,12 @@ print_operand_address (FILE *file, rtx x) > else if (SYMBOL_REF_P (x) || GET_CODE (x) == CONST > || GET_CODE (x) == LABEL_REF) > { > + if (this_is_asm_operands && !address_operand (x, VOIDmode)) Do we really need this_is_asm_operands here? > + { > + output_operand_lossage ("invalid expression as operand"); > + return; > + } > + > output_addr_const (file, x); > if (small_data_operand (x, GET_MODE (x))) > fprintf (file, "@%s(%s)", SMALL_DATA_RELOC, > diff --git a/gcc/testsuite/gcc.target/powerpc/pr96866-1.c b/gcc/testsuite/gcc.target/powerpc/pr96866-1.c > new file mode 100644 > index 00000000000..6554a472a11 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr96866-1.c > @@ -0,0 +1,15 @@ > +/* It's to verify no ICE here, ignore error messages about invalid 'asm'. */ > +/* { dg-excess-errors "pr96866-2.c" } */ > +/* { dg-options "-fPIC -O2" } */ Nit: If these two options are required, it would be good to have a comment explaining it a bit when it's not obvious. > + > +int x[2]; > + > +int __attribute__ ((noipa)) > +f1 (void) > +{ > + int n; > + int *p = x; > + *p++; > + __asm__ volatile("ld %0, %a1" : "=r"(n) : "X"(p)); > + return n; > +} > diff --git a/gcc/testsuite/gcc.target/powerpc/pr96866-2.c b/gcc/testsuite/gcc.target/powerpc/pr96866-2.c > new file mode 100644 > index 00000000000..a5ec96f29dd > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr96866-2.c > @@ -0,0 +1,10 @@ > +/* It's to verify no ICE here, ignore error messages about invalid 'asm'. */ > +/* { dg-excess-errors "pr96866-2.c" } */ > +/* { dg-options "-fPIC -O2" } */ Ditto. BR, Kewen > + > +void > +f (void) > +{ > + extern int x; > + __asm__ volatile("#%a0" ::"X"(&x)); > +}