From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id C60A63861863 for ; Thu, 15 Feb 2024 15:58:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C60A63861863 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 C60A63861863 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=1708012716; cv=none; b=wwkQFUNr+9Y9RniXUM8xIhQbE6My/9qxrkMqj97h8NPZpJvVndO9NOziifFGOlLcJ+mNLwqIiopL40He4/J3s7UHiB3XnanaqOat4lFjwf7S4Lk08CP7IY4iGPRAgoMWtvNLM8p555KWk8hUPymK0tD/aDUY721ZNeUjrfEUVnY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708012716; c=relaxed/simple; bh=FJs0FPHOftygQnrMzYUUetEdPuchROTBYQxfLd14ZHc=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=S6Q9UejDMEztkWcF9KhGzlcOkX1CI979SApORhYweCyndw3Nl6pC+LpWSYLvzKIjhQDaWjfL5jBk5lr3ngh+zGkoIlddU5anhDF4QNxOWS3ai+0gzXpiiNlCAF1ajjkdYQfEImDB36+UX4WgeMKjdS49qBqc9KnlwZqDNVQM7zQ= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41FFcAnC002156 for ; Thu, 15 Feb 2024 15:58:34 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=t29p69KQvmUf/Q7aoDfolskMbsCvwAKRjaZTpY76bUA=; b=ePqv/KKzuzhlDEjp3XZNr48wxGVkgEMbrSxWR3orbrN8gIdP6IFLIxlK4WUzxcrKCUME sB5ji+mLBqLd99MOUYxZ4MwPQQRX+rqsCSGEwl3Il1lZ5RARKXat5cP7a1D2O94xTmAZ tZDtdAy9dmkFQ7mv+TlB9BBUAb8BB3n15xqaW4tjpXPaT7j15zPjKq9+AwMgvOgmREbd uXDGObMEbvMMYX75LLg/v2Lw4wOHotw0Eg+4A0PJAw+CujsfHnxBafnsKabSWmKNLdtu Vm+qrAmYggs+LzAnu+hos2aAVAnpGBcOsPQS73R9G5xnA9Lg8LO4AmoE7jalS0BxIs2m mQ== 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 3w9ne1rfug-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 15 Feb 2024 15:58:34 +0000 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 41FEVIU6016307 for ; Thu, 15 Feb 2024 15:58:33 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3w6mymwn0y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 15 Feb 2024 15:58:33 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 41FFwShe10224342 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Feb 2024 15:58:30 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5C1672004D; Thu, 15 Feb 2024 15:58:28 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3CED32004E; Thu, 15 Feb 2024 15:58:28 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 15 Feb 2024 15:58:28 +0000 (GMT) From: Jens Remus To: binutils@sourceware.org Cc: Jens Remus , Andreas Krebbel Subject: [PATCH 02/14] s390: Enhance handling of syntax errors in assembler Date: Thu, 15 Feb 2024 16:58:09 +0100 Message-Id: <20240215155821.4065623-3-jremus@linux.ibm.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240215155821.4065623-1-jremus@linux.ibm.com> References: <20240215155821.4065623-1-jremus@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: XcdEt99SUqj4h6gzgvtq78xpdMrT5d4T X-Proofpoint-GUID: XcdEt99SUqj4h6gzgvtq78xpdMrT5d4T X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-15_14,2024-02-14_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 mlxscore=0 bulkscore=0 clxscore=1011 phishscore=0 priorityscore=1501 mlxlogscore=758 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402150129 X-Spam-Status: No, score=-12.0 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,T_SCC_BODY_TEXT_LINE 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: Do not consume any unexpected character including newline ('\n') when detecting a syntax error when parsing an operand block with parenthesis. This resolves the unfavorable assembler messages from the example below, including consuming the newline at the end of the current statement and reporting the next statement as junk. While at it change the only pre-increment of the current instruction string pointer into a post-increment to align with the other instances. Example assembler source: mvi 16(),32 # syntax error a %r1,16(%r2 # syntax error a %r1,16(%r2) mvc 16(1,),32(%r2) # syntax error mvc 16(1,%r1,32(%r2 # syntax error Assembler messages without commit: 1: Error: bad expression 1: Error: syntax error; missing ')' after base register 1: Error: syntax error; expected ',' 1: Error: junk at end of line: `32' 2: Error: syntax error; missing ')' after base register 2: Error: junk at end of line: `a %r1,16(%r2)' 4: Error: bad expression 4: Error: syntax error; missing ')' after base register 4: Error: syntax error; expected ',' 4: Error: operand out of range (32 is not between 0 and 15) 4: Error: syntax error; missing ')' after base register 4: Error: junk at end of line: `%r2)' 5: Error: syntax error; missing ')' after base register 5: Error: syntax error; expected ',' 5: Error: operand out of range (32 is not between 0 and 15) 5: Error: syntax error; missing ')' after base register 5: Error: junk at end of line: `%r2' Assembler messages with commit: 1: Error: bad expression 1: Error: syntax error; missing ')' after base register 2: Error: syntax error; missing ')' after base register 4: Error: bad expression 4: Error: syntax error; missing ')' after base register 5: Error: syntax error; missing ')' after base register 5: Error: syntax error; missing ')' after base register gas/ * config/tc-s390.c: Do not erroneously consume newline when parsing an addressing operand with parentheses. Reviewed-by: Andreas Krebbel Signed-off-by: Jens Remus --- gas/config/tc-s390.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index 1b7935a848d0..019f26b2f4ab 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -1526,8 +1526,10 @@ md_gather_operands (char *str, else if (operand->flags & S390_OPERAND_BASE) { /* After the base register the parenthesised block ends. */ - if (*str++ != ')') + if (*str != ')') as_bad (_("syntax error; missing ')' after base register")); + else + str++; skip_optional = 0; if (*str == '\0' && skip_optargs_p (opcode->flags, &opindex_ptr[1])) @@ -1584,7 +1586,7 @@ md_gather_operands (char *str, } while (ISSPACE (*str)) - ++str; + str++; /* Check for tls instruction marker. */ reloc = s390_tls_suffix (&str, &ex); -- 2.40.1