Message ID | 018d8c82-9a91-45e2-9149-1cc081669c25@suse.com |
---|---|
State | New |
Headers |
Return-Path: <binutils-bounces~patchwork=sourceware.org@sourceware.org> 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 B0E39385843B for <patchwork@sourceware.org>; Mon, 27 Jan 2025 16:32:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B0E39385843B Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=I7WrOYHe X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by sourceware.org (Postfix) with ESMTPS id 1BCEF3858039 for <binutils@sourceware.org>; Mon, 27 Jan 2025 16:21:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1BCEF3858039 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-Filter: OpenARC Filter v1.0.0 sourceware.org 1BCEF3858039 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::636 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1737994911; cv=none; b=CqM1Mpkdz+MPoVpg2s2GJj3sNvyxBoX/xXkgwEpFmTcpMK/UmtiZRvk9gg4G72cpV9F+f+xBK9PGGcJfJQI8FoKit7cGBuqX3rW0N243Fx0xhSyZRb8pErq527j5silvZ9AQ+rea4Wqbi/K3ez7pQjLFRSpu6hQiTT2qa4wthJw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1737994911; c=relaxed/simple; bh=I/xstt49lmyceczzCSaGJmpVty6Ro/U35tSqb0dqYkY=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=Omdro18WN5YOHWEkqsDJBYKDOHIRmh2VU0ywFq2BOp/XVe3JnNsBm47Vf4fylvQ/zX7S2MU6ahn1ZahWhrpwpVguYGRCwD8IaS2yQZR6rU3kmiOSrmb994Y3S/K/4iKqRy3ja188AYE+EWEmkl5ErQWA9P4PA9ujt3db35BFngw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1BCEF3858039 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-ab34a170526so774190366b.0 for <binutils@sourceware.org>; Mon, 27 Jan 2025 08:21:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1737994910; x=1738599710; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=9c6WV6tQSBHI5gG+vXuWmmAl+VK91hu0xtjJ2C5V61I=; b=I7WrOYHew8OhR0vIMSS2sUiRl20gQZxpEp1Ct2T0gjLQLSNQ3pfFVXNZEEWoiMVW7u 1kB3YB5oxpdybF/A2gaedvbX8nFhSUG1s70F2RZXFbCZ2Hf30mJtJZhzgSOScsGnMuRX YG9QAPX5G4pfno3if7JsOyT4kA8Lnl9sou4mpxSrAOM8GvBuFguU8aKSLb3AbtD0u/8j 95e1t714Db/UvPIpCbE9FwodsknfB+0dQRpooVFdrdLFynlvVicLxfOtUz5QQQk4YvCt 7VeoQLWvSt66Mun8l/925ogubu4LMS5UvhEM1KnGP2RuYoq0s7iL8H00ebiAVNxcPDzu wRIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737994910; x=1738599710; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9c6WV6tQSBHI5gG+vXuWmmAl+VK91hu0xtjJ2C5V61I=; b=VuF4WH9Sn1dozqgTlf0YczfTU4VWrmm9uc11VCjDN2RMPPH5Ojt//byMBZ5+K6j/PI CZG3L4m+5nqglRNtYEtSjcdtqgwLW/lIe/aouHpYePi3sbczhtjqFdHfTc7BCbE3T7x2 HXB/yaUEiJqMhAg9d/0XIjCF7Ks0CY5Uw7F11Wo3uwHjOdCZK+FsUyLFO9iMBsUoJ9Hq Av5RbvoJxX9wC3OnmbkHkMIdTKHxvysTwI9NNBgysPL03IjT8H3zEap8CJYSRh/QDCys v4rnVHvcU+wrTfHrSH8eZGVrbdb8AEjHILkO69tTPzCRlam3BEnAGl/WxUaH5QznUWku taPA== X-Gm-Message-State: AOJu0Yw+5f0wqeGGX978brcmUfUYnRUwPufYi2tqGe/0nsXtB/s+LggI /odMEWUFfLUlgT7kTIAEVpFo7NPbAZIkbMAK5MhQ3yx+yH+JPoi0PVuQzDCYpwW5Ao+rm+H7Euo = X-Gm-Gg: ASbGncu7+LluR9OaOJJDAp+F/h9zHea6cILNstda106JArB/nAYZ2w67NK761+JtAU+ +rX8K+jtO5HBAMT9RpK3dfajfTll7byo5sEGnGwj5nKbGmUHNEpbI2l6xnbPsaleVsdFSO7ztQx 5nrsp24WP4lNsYrP9OV2DgeCRQ6fU2q2MXYkO4zPmk5TdtguMrJ4+2kuSRwPfBgzWMtAA/2l7xb d1RE7ZjLhCht60dBsY2HmuVvGdgGZw+Llyw1ijUfNZMQoHrBpN5PoMbb9+pQLM+KTaXQflcPhej ArySD72OBv6J2bgoG8+MerVwjTeJlkIQwO845dOTPJDV02JGCU22gNNvKQx9glW16w== X-Google-Smtp-Source: AGHT+IEol9vvAnbGzyUwLRmqTdeb48N/iw88XBqMtnPetJyiujAgMvE5UDT72hu2HkesD33yBO412A== X-Received: by 2002:a17:907:7e95:b0:ab2:ffcb:edb4 with SMTP id a640c23a62f3a-ab38b162801mr3254305266b.25.1737994909768; Mon, 27 Jan 2025 08:21:49 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6a00be2b7sm253036866b.19.2025.01.27.08.21.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Jan 2025 08:21:49 -0800 (PST) Message-ID: <018d8c82-9a91-45e2-9149-1cc081669c25@suse.com> Date: Mon, 27 Jan 2025 17:21:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 22/65] kvx: use is_whitespace() From: Jan Beulich <jbeulich@suse.com> To: Binutils <binutils@sourceware.org> References: <2316ac5c-7870-4b46-9c80-eaecaef93a31@suse.com> Content-Language: en-US Cc: Paul Iannetta <piannetta@kalrayinc.com> Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <2316ac5c-7870-4b46-9c80-eaecaef93a31@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3022.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list <binutils.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/binutils>, <mailto:binutils-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/binutils/> List-Post: <mailto:binutils@sourceware.org> List-Help: <mailto:binutils-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/binutils>, <mailto:binutils-request@sourceware.org?subject=subscribe> Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org |
Series |
gas: whitespace handling
|
|
Checks
Context | Check | Description |
---|---|---|
linaro-tcwg-bot/tcwg_binutils_build--master-arm | fail | Patch failed to apply |
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 | fail | Patch failed to apply |
Commit Message
Jan Beulich
Jan. 27, 2025, 4:21 p.m. UTC
Wherever blanks are permissible in input, tabs ought to be permissible, too. This is particularly relevant when -f is passed to gas (alongside appropriate input). Also convert open-coded checks where tabs were already included. At the same time use is_end_of_stmt() instead of open- coded checks in adjacent code. --- read_token()'s check for \n looks odd to me; I'm hence leaving it alone. --- v2: New.
Comments
On Mon, Jan 27, 2025 at 05:21:48PM +0100, Jan Beulich wrote: > Wherever blanks are permissible in input, tabs ought to be permissible, > too. This is particularly relevant when -f is passed to gas (alongside > appropriate input). Also convert open-coded checks where tabs were > already included. At the same time use is_end_of_stmt() instead of open- > coded checks in adjacent code. > --- > read_token()'s check for \n looks odd to me; I'm hence leaving it alone. > --- > v2: New. > > --- a/gas/config/kvx-parse.c > +++ b/gas/config/kvx-parse.c > @@ -597,12 +597,12 @@ read_token (struct token_s *tok) > { > if ('0' <= str[*begin - i] && str[*begin - i] <= '9') > last_imm_p = 1; > - else if (str[*begin - i] != ' ' && str[*begin - i] != '\t') > + else if (!is_whitespace (str[*begin - i])) > break; > } > > /* Eat up all leading spaces. */ > - while (str[*begin] && (str[*begin] == ' ' || str[*begin] == '\n')) > + while (str[*begin] && (is_whitespace (str[*begin]) || str[*begin] == '\n')) > *begin += 1; > I think the check str[*begin] == '\n' can be safely dropped. This should never happen. Thank you for pointing it out. > *end = *begin; > @@ -624,7 +624,9 @@ read_token (struct token_s *tok) > } > > if (str[*begin] == '.' > - && (!(*begin > 0 && (str[*begin - 1] == ' ' || is_delim(str[*begin - 1]))) > + && (!(*begin > 0 > + && (is_whitespace (str[*begin - 1]) > + || is_delim (str[*begin - 1]))) > || last_imm_p)) > modifier_p = 1; > > @@ -633,7 +635,8 @@ read_token (struct token_s *tok) > *end += 1; > > /* Stop when reaching the start of the new token. */ > - while (!(!str[*end] || is_delim (str[*end]) || str[*end] == ' ' || (modifier_p && str[*end] == '.'))) > + while (!(!str[*end] || is_delim (str[*end]) || is_whitespace (str[*end]) > + || (modifier_p && str[*end] == '.'))) > *end += 1; > > } > --- a/gas/config/tc-kvx.c > +++ b/gas/config/tc-kvx.c > @@ -1279,7 +1279,7 @@ md_assemble (char *line) > if (get_byte_counter (now_seg) & 3) > as_fatal ("code segment not word aligned in md_assemble"); > > - while (line_cursor && line_cursor[0] && (line_cursor[0] == ' ')) > + while (is_whitespace (line_cursor[0])) > line_cursor++; > > /* ;; was converted to "be" by line hook */ > @@ -2125,7 +2125,7 @@ kvx_md_start_line_hook (void) > { > char *t; > > - for (t = input_line_pointer; t && t[0] == ' '; t++); > + for (t = input_line_pointer; is_whitespace (t[0]); t++); > > /* Detect illegal syntax patterns: > * - two bundle ends on the same line: ;; ;; > @@ -2144,9 +2144,9 @@ kvx_md_start_line_hook (void) > while (tmp_t && tmp_t[0]) > { > while (tmp_t && tmp_t[0] && > - ((tmp_t[0] == ' ') || (tmp_t[0] == '\n'))) > + (is_whitespace (tmp_t[0]) || is_end_of_stmt (tmp_t[0]))) > { > - if (tmp_t[0] == '\n') > + if (is_end_of_stmt (tmp_t[0])) > newline_seen = true; > tmp_t++; > } > > > > > Thank you for doing this. I've applied your patch and tested it, and it looks fine to me. Paul
--- a/gas/config/kvx-parse.c +++ b/gas/config/kvx-parse.c @@ -597,12 +597,12 @@ read_token (struct token_s *tok) { if ('0' <= str[*begin - i] && str[*begin - i] <= '9') last_imm_p = 1; - else if (str[*begin - i] != ' ' && str[*begin - i] != '\t') + else if (!is_whitespace (str[*begin - i])) break; } /* Eat up all leading spaces. */ - while (str[*begin] && (str[*begin] == ' ' || str[*begin] == '\n')) + while (str[*begin] && (is_whitespace (str[*begin]) || str[*begin] == '\n')) *begin += 1; *end = *begin; @@ -624,7 +624,9 @@ read_token (struct token_s *tok) } if (str[*begin] == '.' - && (!(*begin > 0 && (str[*begin - 1] == ' ' || is_delim(str[*begin - 1]))) + && (!(*begin > 0 + && (is_whitespace (str[*begin - 1]) + || is_delim (str[*begin - 1]))) || last_imm_p)) modifier_p = 1; @@ -633,7 +635,8 @@ read_token (struct token_s *tok) *end += 1; /* Stop when reaching the start of the new token. */ - while (!(!str[*end] || is_delim (str[*end]) || str[*end] == ' ' || (modifier_p && str[*end] == '.'))) + while (!(!str[*end] || is_delim (str[*end]) || is_whitespace (str[*end]) + || (modifier_p && str[*end] == '.'))) *end += 1; } --- a/gas/config/tc-kvx.c +++ b/gas/config/tc-kvx.c @@ -1279,7 +1279,7 @@ md_assemble (char *line) if (get_byte_counter (now_seg) & 3) as_fatal ("code segment not word aligned in md_assemble"); - while (line_cursor && line_cursor[0] && (line_cursor[0] == ' ')) + while (is_whitespace (line_cursor[0])) line_cursor++; /* ;; was converted to "be" by line hook */ @@ -2125,7 +2125,7 @@ kvx_md_start_line_hook (void) { char *t; - for (t = input_line_pointer; t && t[0] == ' '; t++); + for (t = input_line_pointer; is_whitespace (t[0]); t++); /* Detect illegal syntax patterns: * - two bundle ends on the same line: ;; ;; @@ -2144,9 +2144,9 @@ kvx_md_start_line_hook (void) while (tmp_t && tmp_t[0]) { while (tmp_t && tmp_t[0] && - ((tmp_t[0] == ' ') || (tmp_t[0] == '\n'))) + (is_whitespace (tmp_t[0]) || is_end_of_stmt (tmp_t[0]))) { - if (tmp_t[0] == '\n') + if (is_end_of_stmt (tmp_t[0])) newline_seen = true; tmp_t++; }