From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by sourceware.org (Postfix) with ESMTPS id 535CB3858D1E for ; Fri, 30 Sep 2022 22:17:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 535CB3858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=dabbelt.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=dabbelt.com Received: by mail-pj1-x1032.google.com with SMTP id u59-20020a17090a51c100b00205d3c44162so10345667pjh.2 for ; Fri, 30 Sep 2022 15:17:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dabbelt-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:to:from:cc :in-reply-to:subject:date:from:to:cc:subject:date; bh=OAQfnWG+LH4lRvpIzxT++gNLM1CjcSQfbqd00CQMv8g=; b=qbPeZq1jTrltP1+CVHu4uvenKZntkgfv+Xm1lMC9i3nYdTsVon4ezvgrtgd57K0K5C QIHnHHeqrVAwTRgd+LnT9XlFZK/rjYVj3cmbk1UrAvPzyPPNhwNNCcOqVr4AIM1FgwAi bx8wzjZ3JlzeYG2pd/dddAyw+PoAu7hYwUS2B/gSSAKtVj7rt8LES1pnrHl/GnS7dHeQ 52z+v9GKUydDjP0UrcenJ/iz/mLWlIVWWrYqiVJt4FmtkY6438+kdXmwEuLMwcB24yvY Ovts+2d0t/+wx4rXtIFMAl9DSwvmsp0Rek5K5EByieyzDAwCVR2yV244SFO8nb8GrYlg Yy+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:to:from:cc :in-reply-to:subject:date:x-gm-message-state:from:to:cc:subject:date; bh=OAQfnWG+LH4lRvpIzxT++gNLM1CjcSQfbqd00CQMv8g=; b=yEqf+8uwixPlXHI/cUgyF8hUolSG4s9WlRsNWc83aMATOe1Q51BHRH7FlHQnsauGT+ j9sOwTV7aFkcnEY9mDPqIOZzBcOFw8mS42WN0cpp68R5LzBHFfCZDqTNWDv0s0FTYhuP sLuuc/tHBSr2fUJ8ew/HEx0rb948nQ4ZeTXa/mk5RF3PolOpG/4smocHrftLNCb9WjId QO288nVHznBXcKoYyfUW47y3mbGA3Klr9JNYJvuiPMqKYf6iNBiC5UkrO8xYiaMtvUVL ZFhl6KcHj3JyQbz4czji25XqAHP5uEPRgcf2XE3PCqR/pPFrvZwJeGsaNrksfIfVvd5A Fnyg== X-Gm-Message-State: ACrzQf3bVYHn/yx8pgf4/9pnTA2nHHXV8oG/fZfHJABzocIQ/arQDT9e lKKZu3Sp+fCdMknQQ9TNE/8nzA== X-Google-Smtp-Source: AMsMyM7y1PsqLosYkw5CQWKAs5mba59njscYOcXoXDXy1jbP+nTMUJcavCuV9Z703ShJMZGaOPwH3Q== X-Received: by 2002:a17:902:e851:b0:178:2989:e26e with SMTP id t17-20020a170902e85100b001782989e26emr11021100plg.83.1664576256199; Fri, 30 Sep 2022 15:17:36 -0700 (PDT) Received: from localhost (76-210-143-223.lightspeed.sntcca.sbcglobal.net. [76.210.143.223]) by smtp.gmail.com with ESMTPSA id h7-20020a17090a130700b00206023cbcc7sm1239573pja.15.2022.09.30.15.17.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Sep 2022 15:17:35 -0700 (PDT) Date: Fri, 30 Sep 2022 15:17:35 -0700 (PDT) X-Google-Original-Date: Fri, 30 Sep 2022 15:17:33 PDT (-0700) Subject: Re: [PATCH] RISC-V: fix build after "Add support for arbitrary immediate encoding formats" In-Reply-To: CC: jbeulich@suse.com, binutils@sourceware.org, Andrew Waterman , Jim Wilson , nelson@rivosinc.com From: Palmer Dabbelt To: christoph.muellner@vrull.eu Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,RCVD_IN_DNSWL_NONE,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 List-Id: On Fri, 30 Sep 2022 03:26:29 PDT (-0700), christoph.muellner@vrull.eu wrote: > Hi Jan, > > Thanks for pointing that out! > > BR > Christoph > > On Fri, Sep 30, 2022 at 11:41 AM Jan Beulich wrote: > >> Pre- and post-increment/decrement are side effects, the behavior of >> which is undefined when combined with passing an address of the accessed >> variable in the same function invocation. There's no need for the >> increments here - simply adding 1 achieves the intended effect without >> triggering compiler diagnostics (which are fatal with -Werror). >> --- >> Committing as obvious. Thanks, sorry we missed this one. That said: I'd argue that the sscanf() version of these routines were much less prone to these sorts of string parsing issues, I re-wrote these because I'd run into a handful of issues when trying to forward-port the original T-Head patches. I don't remember exactly what the issues were, though (sorry if I missed something during the patch review, I've been pretty out of it over the last few weeks). >> >> --- a/gas/config/tc-riscv.c >> +++ b/gas/config/tc-riscv.c >> @@ -1287,10 +1287,10 @@ validate_riscv_insn (const struct riscv_ >> case 'u': /* 'XuN@S' ... N-bit unsigned immediate at bit >> S. */ >> goto use_imm; >> use_imm: >> - n = strtol (++oparg, (char **)&oparg, 10); >> + n = strtol (oparg + 1, (char **)&oparg, 10); >> if (*oparg != '@') >> goto unknown_validate_operand; >> - s = strtol (++oparg, (char **)&oparg, 10); >> + s = strtol (oparg + 1, (char **)&oparg, 10); >> oparg--; >> >> USE_IMM (n, s); >> @@ -3327,10 +3327,10 @@ riscv_ip (char *str, struct riscv_cl_ins >> sign = false; >> goto parse_imm; >> parse_imm: >> - n = strtol (++oparg, (char **)&oparg, 10); >> + n = strtol (oparg + 1, (char **)&oparg, 10); >> if (*oparg != '@') >> goto unknown_riscv_ip_operand; >> - s = strtol (++oparg, (char **)&oparg, 10); >> + s = strtol (oparg + 1, (char **)&oparg, 10); >> oparg--; >> >> my_getExpression (imm_expr, asarg); >> --- a/opcodes/riscv-dis.c >> +++ b/opcodes/riscv-dis.c >> @@ -586,10 +586,10 @@ print_insn_args (const char *oparg, insn >> sign = false; >> goto print_imm; >> print_imm: >> - n = strtol (++oparg, (char **)&oparg, 10); >> + n = strtol (oparg + 1, (char **)&oparg, 10); >> if (*oparg != '@') >> goto undefined_modifier; >> - s = strtol (++oparg, (char **)&oparg, 10); >> + s = strtol (oparg + 1, (char **)&oparg, 10); >> oparg--; >> >> if (!sign) >>