Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1ua9u7-00HCWe-DV for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Jul 2025 09:18:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1ua9u4-003I7R-TI for pgsql-hackers@arkaria.postgresql.org; Fri, 11 Jul 2025 09:18:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uZxR8-00GhCP-Pw for pgsql-hackers@lists.postgresql.org; Thu, 10 Jul 2025 20:00:07 +0000 Received: from mail.postgrespro.ru ([93.174.132.70]) by makus.postgresql.org with smtp (Exim 4.96) (envelope-from ) id 1uZxR6-006d01-1w for pgsql-hackers@postgresql.org; Thu, 10 Jul 2025 20:00:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1752177600; bh=96KgXJg2SCsJhlBwQr45v7ae5tn1mNF4gbzT5kVhHmI=; h=Date:From:To:Subject:Message-ID:From; b=IhH4MTJCl6XGzX0it7hP5tdbE/Fci8LmWCO6XJmSoOObl3bNcIvNGrlPrZW14LtSN Afr3EE9J2/R7AyUsObMcRkG0frTL8/nVNKWHWhzfq6Fqp2FJAuvLeuiAkqJAYvjv2d 5yuLvQwxNchEvlLrrcnCc7TRdjDw8NEwyUy3GRj4o2PWos9Nnf32FD69AKLam2ctxn RCTLoGKezkJu/P97CDVpDGiVa1bH6ZUHeu4gtjbC8o/uXci4yIOv6y62t/9NM6bKer VXy7YlhiMMAnGOvx+YWl7KdljdWG/lDK8CK3EoZBO2J3WdtU4zgbMfYV1tbt1wd2oo Xrs5bTGTmtPow== Received: from mail.postgrespro.ru (webmail-slave-mstn.l.postgrespro.ru [192.168.2.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: d.mityugov@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 9D60260EB6 for ; Thu, 10 Jul 2025 23:00:00 +0300 (MSK) MIME-Version: 1.0 Date: Thu, 10 Jul 2025 23:00:00 +0300 From: Dmitry Mityugov To: pgsql-hackers@postgresql.org Subject: patch: Use pg_assume in jsonb_util.c to fix GCC 15 warnings Message-ID: <0c623e8a204187b87b4736792398eaf1@postgrespro.ru> X-Sender: d.mityugov@postgrespro.ru Content-Type: multipart/mixed; boundary="=_63272035bb6acd09af399c5442e6c953" X-KSMG-AntiPhishing: NotDetected, bases: 2025/07/10 19:15:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/07/10 16:51:00 #27633472 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_63272035bb6acd09af399c5442e6c953 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed When compiled with Assert() macro disabled, GCC 15 produces warnings about possibly uninitialized variables in src/backend/utils/adt/jsonb_util.c module. This problem was discussed in detail in this thread, in April 2025: https://www.postgresql.org/message-id/988bf1bc-3f1f-99f3-bf98-222f1cd9dc5e@xs4all.nl . Recently introduced pg_assume() macro let fix such problems easily. The attached patch fixes them in jsonb_util.c module. I verified that PostgreSQL compiles clearly with this patch and GCC 15.1.1 on an x86 64-bit machine (with and without --enable-cassert), and with GCC 14.2.1 on a 64-bit ARM machine. `make check` also passes. I'm attaching the patch. Regards, Dmitry --=_63272035bb6acd09af399c5442e6c953 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-Use-pg_assume-in-jsonb_util.c-to-fix-GCC-15-warning.patch Content-Disposition: attachment; filename=0001-Use-pg_assume-in-jsonb_util.c-to-fix-GCC-15-warning.patch; size=1173 RnJvbTogRG1pdHJ5IE1pdHl1Z292IDxkLm1pdHl1Z292QHBvc3RncmVzcHJvLnJ1PgpEYXRlOiBU aHUsIDEwIEp1bCAyMDI1IDIyOjA1OjEyICswMzAwClN1YmplY3Q6IFVzZSBwZ19hc3N1bWUgaW4g anNvbmJfdXRpbC5jIHRvIGZpeCBHQ0MgMTUgd2FybmluZ3MKClJlY2VudGx5IGludHJvZHVjZWQg cGdfYXNzdW1lIG1hY3JvIGlzIGEgZ3JlYXQgdG9vbCB0byBzaWxlbmNlIEdDQyAxNSB3YXJuaW5n cwpnZW5lcmF0ZWQgZm9yIHJlbGVhc2UgYnVpbGRzLCB3aGVuIEFzc2VydCgpIG1hY3JvIGlzIGRp c2FibGVkLiBUaGlzIHBhdGNoIGZpeGVzCnR3byBvZiB0aGVtIGluIGJhY2tlbmQvdXRpbHMvYWR0 L2pzb25iX3V0aWwuYyBtb2R1bGUuCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iX3V0 aWwuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmJfdXRpbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iX3V0aWwuYwppbmRleCBjMThiZjc0MTUyMS4uMjQ3 ODM0NmNlMTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYl91dGlsLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iX3V0aWwuYwpAQCAtMjkxLDggKzI5MSw4 IEBAIGNvbXBhcmVKc29uYkNvbnRhaW5lcnMoSnNvbmJDb250YWluZXIgKmEsIEpzb25iQ29udGFp bmVyICpiKQogCQkJICogV0pCX0JFR0lOX0FSUkFZIGFuZCBXSkJfQkVHSU5fT0JKRUNUIHRva2Vu cyBmaXJzdCwgYW5kCiAJCQkgKiBjb25jbHVkZWQgdGhhdCB0aGV5IGRvbid0IG1hdGNoLgogCQkJ ICovCi0JCQlBc3NlcnQocmEgIT0gV0pCX0VORF9BUlJBWSAmJiByYSAhPSBXSkJfRU5EX09CSkVD VCk7Ci0JCQlBc3NlcnQocmIgIT0gV0pCX0VORF9BUlJBWSAmJiByYiAhPSBXSkJfRU5EX09CSkVD VCk7CisJCQlwZ19hc3N1bWUocmEgIT0gV0pCX0VORF9BUlJBWSAmJiByYSAhPSBXSkJfRU5EX09C SkVDVCk7CisJCQlwZ19hc3N1bWUocmIgIT0gV0pCX0VORF9BUlJBWSAmJiByYiAhPSBXSkJfRU5E X09CSkVDVCk7CiAKIAkJCUFzc2VydCh2YS50eXBlICE9IHZiLnR5cGUpOwogCQkJQXNzZXJ0KHZh LnR5cGUgIT0gamJ2QmluYXJ5KTsKLS0gCjIuNTAuMQoK --=_63272035bb6acd09af399c5442e6c953--