From nobody Mon Feb 9 20:34:54 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1630698805; cv=none; d=zohomail.com; s=zohoarc; b=eqWsS3mI128PjZjaZQHe2nC91YGs+ReicYAKd+Xj5B3ZM/wJNL/XnlJiN7XfgLCV9ZAMOKV9fa4AyD99yWmTJoyuhra5HVhNQ1S7JAj4f8r9KmpxyNStZBp/67o+IowW4Z0KJu/SI0Doe/cSWUfFBO3Bopk+d22yRF+d7xcbnZ0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1630698805; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6Cdr/4ksTApBPzwkIEiFKujnttTP2oviLVmsZAoMmxk=; b=bRRoqWujlRjkjoSn171ziRm1pwkwSJ0/YTEfe8lSmhICYjkwryZH4LzqqkB0YAwQdoFRY+rsL9hm9xTdqUYAw0E8g2+jiwUe4orZw3zHE0oIzbffHCugNinkmSH0nHwDI/Z0nZbVHllF2xFsHveonLTVs9R7Lm/lvM7HQJwuZA4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1630698805783691.6118393809958; Fri, 3 Sep 2021 12:53:25 -0700 (PDT) Received: from localhost ([::1]:37684 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mMFFc-00023b-26 for importer@patchew.org; Fri, 03 Sep 2021 15:53:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42610) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMEvE-0005m1-ND for qemu-devel@nongnu.org; Fri, 03 Sep 2021 15:32:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:54061) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMEvD-0003bi-4j for qemu-devel@nongnu.org; Fri, 03 Sep 2021 15:32:20 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-384-Iu0oWu5QMgCCHrgy2Ag8FQ-1; Fri, 03 Sep 2021 15:32:17 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 853BA501E1; Fri, 3 Sep 2021 19:32:16 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-112-13.ams2.redhat.com [10.36.112.13]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8D19610023AE; Fri, 3 Sep 2021 19:32:12 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id D2AA61138223; Fri, 3 Sep 2021 21:32:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1630697538; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6Cdr/4ksTApBPzwkIEiFKujnttTP2oviLVmsZAoMmxk=; b=UDfs1TZNiQbb9TTjc9Tq60/iub1Kvp6Sbzo+7snSzJpFL4NGHWoUrEGC9f9vWROuGvK4U2 Rae3FFsKRowH5koMkvsIWZ0erPhyQZXHBZnkFpkQOS+jCc38MVhyXMXbyw82u1jsZ6STyC a2yBUgaKHekSDbFS2lrmkVN1QOZfQiw= X-MC-Unique: Iu0oWu5QMgCCHrgy2Ag8FQ-1 From: Markus Armbruster To: qemu-devel@nongnu.org Subject: [PULL 06/13] qapi: Fix C code generation for 'if' Date: Fri, 3 Sep 2021 21:32:02 +0200 Message-Id: <20210903193209.1426791-7-armbru@redhat.com> In-Reply-To: <20210903193209.1426791-1-armbru@redhat.com> References: <20210903193209.1426791-1-armbru@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=armbru@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.392, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: peter.maydell@linaro.org, =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1630698806164100003 When commit 5d83b9a130 "qapi: replace if condition list with dict {'all': [...]}" made cgen_ifcond() and docgen_ifcond() recursive, it messed up parenthesises in the former, and got them right in the latter, as the previous commit demonstrates. To fix, adopt the latter's working code for the former. This generates the correct code from the previous commit's commit message. Fixes: 5d83b9a130690f879d5f33e991beabe69cb88bc8 Signed-off-by: Markus Armbruster Message-Id: <20210831123809.1107782-6-armbru@redhat.com> Reviewed-by: Marc-Andr=C3=A9 Lureau --- scripts/qapi/common.py | 4 ++-- tests/qapi-schema/qapi-schema-test.json | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py index 1c1dc87ccb..f31e077d7b 100644 --- a/scripts/qapi/common.py +++ b/scripts/qapi/common.py @@ -209,9 +209,9 @@ def cgen_ifcond(ifcond: Optional[Union[str, Dict[str, A= ny]]]) -> str: oper, operands =3D next(iter(ifcond.items())) if oper =3D=3D 'not': return '!' + cgen_ifcond(operands) - oper =3D {'all': '&&', 'any': '||'}[oper] + oper =3D {'all': ' && ', 'any': ' || '}[oper] operands =3D [cgen_ifcond(o) for o in operands] - return '(' + (') ' + oper + ' (').join(operands) + ')' + return '(' + oper.join(operands) + ')' =20 =20 def docgen_ifcond(ifcond: Optional[Union[str, Dict[str, Any]]]) -> str: diff --git a/tests/qapi-schema/qapi-schema-test.json b/tests/qapi-schema/qa= pi-schema-test.json index 6e37758280..b6c36a9eee 100644 --- a/tests/qapi-schema/qapi-schema-test.json +++ b/tests/qapi-schema/qapi-schema-test.json @@ -262,7 +262,6 @@ 'if': { 'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT'] } } =20 { 'event': 'TEST_IF_EVENT2', 'data': {}, - # FIXME C #if generated for this conditional is wrong 'if': { 'not': { 'any': [ { 'not': 'TEST_IF_EVT' }, { 'not': 'TEST_IF_STRUCT' } ] } } } =20 --=20 2.31.1