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.96) (envelope-from ) id 1vtN6y-002Jm8-1a for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Feb 2026 09:47:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vtN6x-007J2b-1F for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Feb 2026 09:47:47 +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.96) (envelope-from ) id 1vtN6w-007J2T-2R for pgsql-hackers@lists.postgresql.org; Fri, 20 Feb 2026 09:47:47 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vtN6s-00000000LQ2-251C for pgsql-hackers@lists.postgresql.org; Fri, 20 Feb 2026 09:47:45 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-65c5a778923so2691177a12.2 for ; Fri, 20 Feb 2026 01:47:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1771580862; x=1772185662; darn=lists.postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=VQCXBJNGUTi5TvraHZiKDq3r39bkUprHDcPkSFXqe9s=; b=l08G0bt/zpoV2BqxguZvwQ4dl7dHEnt8wbGF6fkHxvJBf7Nxz7B7omN48JQCjUM8+/ MzgIpMAFvqmAg0VbVyHOSS+D1+/lTP/Z6UmBcDiz1Xz0P9lzquv8pIkzJ2BdNR+Z1Jmm bexEeU4G8LG27ojaZhVt6R67j0V2r095MM9x/ChM6Vf+hTHaemWLLG7UywqCvRNgPUF0 00osUzEfRyzJ+nEEw2QOG/qPSK0Y8jKsuFHNisl/dNXmEe/RE3KNIP4pwZNAId41umT4 MywRoztGUfz0+NWilq3JIlaNLsOOPuMF5YJ/odcLaHMIvlSrptiAzZvnuN4cSn/tCltY yZtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771580862; x=1772185662; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=VQCXBJNGUTi5TvraHZiKDq3r39bkUprHDcPkSFXqe9s=; b=Ds0YDlz6QLM1dMXBAg4nU+EF+EPRakvnPC3AvjiRUL+phDwpSwNvQp+IjhQNRM92qL t1m+V2O9Zwt7DWxtp39yl1nHtxpfqOnO1AAUri1LuZuajLAqPStjvVi3kjC+cUdyGS3D 97kNXr29P82uowiMyGYO6kS+gqBL9HbXU1/Hy0SmZSljcUNJItbCR3MiUCQja3Mv/f0T cPSJpyZZyRy7w08cXdCHOhYGJ0McHF8TabXcmOCJPgtihreeWIely7JZhkuGoN4VVqsb sLeB8Xke686TqGvFqWz4Q9PFAluq+K0M11Q7CemnkKTrBszlqIeSs/jOh2qwW6QSuNdp r5xw== X-Gm-Message-State: AOJu0YxiM6QRjJwrZQB9T8D7Y+AkD4p2aso2z1HzpoknuwQUQsKTL+o1 mDbYyzczCbLkzeB5ZaEgb9Wr5Xmzwb3rokt3EMoGdAtHb+M8iLt4FuBgHWNs0d/uOmo= X-Gm-Gg: AZuq6aKu1Cp3weno43cOjmbStXNXI5Nng7CuIs80jY4DMInRkJUTlxy85vF3u8ebx/P 0HeGdMHP8Cl+lh2jsY0uoVemhprzIuzN2chWtxalylMnd8jcx9VIfoMDOigiAtM1E7QXlvdfS4l 0rYjXRMSovBgcb2Q2EOxV2Yye+aGe0ZnzLy9IwiUeFvrxgqn35spNZDgmeowKNj3mSiY6JZXS3R 8T3m5m28/LUpqSfhapmxs+PqlZ+Wajar3rSCwdBjVuzaVLNzXXKoGmKLpMHaRlRQEMk3uz1/1jF BXojkbaniNrYrQtVviBjJapCY401d3aQ0dYWe4Uabu4sEhqYTTXqjSOaYaa/2tsJ3lTGLLp8nv8 XtYpv9EcmfJo9KnKPzXC6N1fPwBSEI5/MOKRzcFrdWq8D/aTEgRSQiMIGsJTdkx4J/1wbI5Nv3G F3+zssbJ1/iaLMbVghtIcC6v3MVcKsi8z6Y4bYhfPrCFGAxaNr X-Received: by 2002:a17:907:c24:b0:b8f:7200:63bd with SMTP id a640c23a62f3a-b8fc3ca8153mr1273031766b.42.1771580861453; Fri, 20 Feb 2026 01:47:41 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8fc767552bsm653939066b.55.2026.02.20.01.47.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 20 Feb 2026 01:47:40 -0800 (PST) Content-Type: multipart/mixed; boundary=32dbe022ccb44e0ce7a63a3310d0c553e6a2064bd9bb0374c449db5cd914 Mime-Version: 1.0 Date: Fri, 20 Feb 2026 10:47:40 +0100 Message-Id: Cc: "PostgreSQL Hackers" , "Thomas Munro" Subject: Re: Make copyObject work in C++ To: "Peter Eisentraut" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <4d8b9e53-3f37-43f0-a4aa-5bda9c7961b3@eisentraut.org> <4e82f77b-acad-4356-94f6-8255135fb36b@eisentraut.org> <2h2n2gyw2f4ucicbl3drtdkjt2wzf6b2r4wqm7xwks6vpx5j7n@imymv4hkz5jz> <8f8776be-6d8f-4e1c-8d21-e55052edd91b@eisentraut.org> In-Reply-To: <8f8776be-6d8f-4e1c-8d21-e55052edd91b@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --32dbe022ccb44e0ce7a63a3310d0c553e6a2064bd9bb0374c449db5cd914 Content-Type: multipart/alternative; boundary=dbdec75e0e5fbc110097383db4e346e99734fe5ee951c59f1fa7b9e675cc --dbdec75e0e5fbc110097383db4e346e99734fe5ee951c59f1fa7b9e675cc Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Thu Feb 19, 2026 at 9:31 AM CET, Peter Eisentraut wrote: > What I suggest we should do here is: > > 1. Add a configure test that checks if the C++ compiler supports typeof. > > 2. If not, #define typeof to the above expression. > > Then code can continue to use typeof unchanged. Makes total sense, I didn't realise decltype and typeof were not quite the same thing. Attached is an updated patchset that does that. It also includes a patch that improves unconstify and unvolatize by using StaticAssertVariableIsOfTypeMacro instead of a custom version of that assertion. (Like I said, in a future patch I intend to make StaticAssertVariableIsOfTypeMacro work in C++ as well, but this seemed like a good improvement anyway) --dbdec75e0e5fbc110097383db4e346e99734fe5ee951c59f1fa7b9e675cc-- --32dbe022ccb44e0ce7a63a3310d0c553e6a2064bd9bb0374c449db5cd914 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v9-0001-Support-using-copyObject-in-C.patch Content-Type: text/x-patch; charset=utf-8; name=v9-0001-Support-using-copyObject-in-C.patch RnJvbSAxZmY5Mjc5ZjNhY2IyMDdlMjNlOGIyMGIyMzQyOTI4M2I4MWE5NGZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDUgRGVjIDIwMjUgMTU6Mzc6NTkgKzAxMDAKU3ViamVjdDogW1BBVENIIHY5 IDEvM10gU3VwcG9ydCB1c2luZyBjb3B5T2JqZWN0IGluIEMrKwoKQ2FsbGluZyBjb3B5T2JqZWN0 IGluIEMrKyB3aXRob3V0IEdOVSBleHRlbnNpb25zIChlLmcuIHRoZW4gdXNpbmcKLXN0ZD1jKysx MSBpbnN0ZWFkIG9mIC1zdGQ9Z251KysxMSkgZmFpbHMgd2l0aCBhbiBlcnJvciBsaWtlIHRoaXM6 CgplcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAndHlwZW9mJzsgZGlkIHlvdSBt ZWFuICd0eXBlaWQnCgpUaGlzIGlzIGR1ZSB0byB0aGUgQyBjb21waWxlciB1c2VkIHRvIGNvbXBp bGUgcG9zdGdyZXMgc3VwcG9ydGluZwp0eXBlb2YsIGJ1dCB0aGF0IGZ1bmN0aW9uIGFjdHVhbGx5 IG5vdCBiZWluZyBwcmVzZW50IGluIHRoZSBDKysKY29tcGlsZXIuIFRoaXMgZml4ZXMgdGhhdCBi eSBleHBsaWNpdGVseSBjaGVja2luZyBmb3IgdHlwZW9mIHN1cHBvcnQgaW4KQysrIGFuZCB0aGVu IGVpdGhlciB1c2UgdGhhdCwgb3IgZGVmaW5lIHR5cGVvZiBvdXJzZWx2ZXMgYXM6CgogICAgc3Rk OjpyZW1vdmVfcmVmZXJlbmNlX3Q8ZGVjbHR5cGUoeCk+CgpBY2NvcmRpbmcgdG8gdGhlIHBhcGVy IHRoYXQgbGVkIHRvIGFkZGluZyB0eXBlb2YgdG8gdGhlIEMgc3RhbmRhcmQsCnRoYXQncyB0aGUg QysrIGVxdWl2YWxlbnQgb2YgdGhlIEMgdHlwZW9mOgpodHRwczovL3d3dy5vcGVuLXN0ZC5vcmcv anRjMS9zYzIyL3dnMTQvd3d3L2RvY3MvbjI5MjcuaHRtI2V4aXN0aW5nLWRlY2x0eXBlCi0tLQog Y29uZmlnL2MtY29tcGlsZXIubTQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjkgKysrKysr KysrKwogY29uZmlndXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTQg KysrKysrKysrKysrKysrKysrKwogY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDEgKwogbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMjUgKysrKysrKysrCiBzcmMvaW5jbHVkZS9jLmggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAyMSArKysrKysrKwogc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gICAg ICAgICAgICAgICAgICAgIHwgIDQgKysKIC4uLi90ZXN0X2NwbHVzcGx1c2V4dC90ZXN0X2NwbHVz cGx1c2V4dC5jcHAgICB8ICAyICsKIDcgZmlsZXMgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9jb25maWcvYy1jb21waWxlci5tNCBiL2NvbmZpZy9jLWNvbXBpbGVyLm00 CmluZGV4IDE1MDlkYmZhMmFiLi41YjNjYmM3ZThlOCAxMDA2NDQKLS0tIGEvY29uZmlnL2MtY29t cGlsZXIubTQKKysrIGIvY29uZmlnL2MtY29tcGlsZXIubTQKQEAgLTE5Myw2ICsxOTMsMzUgQEAg ZmldKSMgUEdBQ19DX1RZUEVPRgogCiAKIAorIyBQR0FDX0NYWF9UWVBFT0YKKyMgLS0tLS0tLS0t LS0tLS0tLQorIyBDaGVjayBpZiB0aGUgQysrIGNvbXBpbGVyIHVuZGVyc3RhbmRzIHR5cGVvZiBv ciBhIHZhcmlhbnQuICBEZWZpbmUKKyMgSEFWRV9DWFhfVFlQRU9GIGlmIHNvLCBhbmQgZGVmaW5l ICdwZ19jeHhfdHlwZW9mJyB0byB0aGUgYWN0dWFsIGtleSB3b3JkLgorIworQUNfREVGVU4oW1BH QUNfQ1hYX1RZUEVPRl0sCitbQUNfQ0FDSEVfQ0hFQ0soZm9yIEMrKyB0eXBlb2YsIHBnYWNfY3Zf Y3h4X3R5cGVvZiwKK1twZ2FjX2N2X2N4eF90eXBlb2Y9bm8KK0FDX0xBTkdfUFVTSChDKyspCitm b3IgcGdhY19rdyBpbiB0eXBlb2YgX190eXBlb2ZfXzsgZG8KKyAgQUNfQ09NUElMRV9JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbXSwKK1tpbnQgeCA9IDA7CiskcGdhY19rdyh4KSB5OworeSA9IHg7 CityZXR1cm4geTtdKV0sCitbcGdhY19jdl9jeHhfdHlwZW9mPSRwZ2FjX2t3XSkKKyAgdGVzdCAi JHBnYWNfY3ZfY3h4X3R5cGVvZiIgIT0gbm8gJiYgYnJlYWsKK2RvbmUKK0FDX0xBTkdfUE9QKFtd KV0pCitpZiB0ZXN0ICIkcGdhY19jdl9jeHhfdHlwZW9mIiAhPSBubzsgdGhlbgorICBBQ19ERUZJ TkUoSEFWRV9DWFhfVFlQRU9GLCAxLAorICAgICAgICAgICAgW0RlZmluZSB0byAxIGlmIHlvdXIg QysrIGNvbXBpbGVyIHVuZGVyc3RhbmRzIGB0eXBlb2YnIG9yIHNvbWV0aGluZyBzaW1pbGFyLl0p CisgIGlmIHRlc3QgIiRwZ2FjX2N2X2N4eF90eXBlb2YiICE9IHR5cGVvZjsgdGhlbgorICAgIEFD X0RFRklORV9VTlFVT1RFRChwZ19jeHhfdHlwZW9mLCAkcGdhY19jdl9jeHhfdHlwZW9mLCBbRGVm aW5lIHRvIGhvdyB0aGUgQysrIGNvbXBpbGVyIHNwZWxscyBgdHlwZW9mJy5dKQorICBmaQorZmld KSMgUEdBQ19DWFhfVFlQRU9GCisKKworCiAjIFBHQUNfQ19UWVBFU19DT01QQVRJQkxFCiAjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIENoZWNrIGlmIHRoZSBDIGNvbXBpbGVyIHVuZGVyc3Rh bmRzIF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AsCmRpZmYgLS1naXQgYS9jb25maWd1cmUg Yi9jb25maWd1cmUKaW5kZXggZTFhMDgxMjk5NzQuLjM5OTVhMTZmZDFjIDEwMDc1NQotLS0gYS9j b25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xNDk2OCw2ICsxNDk2OCw2MCBAQCBfQUNFT0YK IAogICBmaQogZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yIEMrKyB0eXBlb2YiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMrKyB0 eXBlb2YuLi4gIiA+JjY7IH0KK2lmICR7cGdhY19jdl9jeHhfdHlwZW9mKzp9IGZhbHNlOyB0aGVu IDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgcGdhY19jdl9jeHhfdHlw ZW9mPW5vCithY19leHQ9Y3BwCithY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJworYWNfY29tcGls ZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNf bGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERG TEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQorCitmb3IgcGdhY19rdyBpbiB0eXBlb2YgX190eXBlb2ZfXzsgZG8K KyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNv bmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKK2ludCB4ID0gMDsKKyRwZ2FjX2t3KHgp IHk7Cit5ID0geDsKK3JldHVybiB5OworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBh Y19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgcGdhY19jdl9jeHhfdHlw ZW9mPSRwZ2FjX2t3CitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdGVzdC4kYWNfZXh0CisgIHRlc3QgIiRwZ2FjX2N2X2N4eF90eXBlb2YiICE9IG5v ICYmIGJyZWFrCitkb25lCithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2Nv bXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2Fj X2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxB R1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2Nf Y29tcGlsZXJfZ251CisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJHBnYWNfY3ZfY3h4X3R5cGVvZiIgPiY1CiskYXNfZWNobyAiJHBnYWNfY3Zf Y3h4X3R5cGVvZiIgPiY2OyB9CitpZiB0ZXN0ICIkcGdhY19jdl9jeHhfdHlwZW9mIiAhPSBubzsg dGhlbgorCiskYXNfZWNobyAiI2RlZmluZSBIQVZFX0NYWF9UWVBFT0YgMSIgPj5jb25mZGVmcy5o CisKKyAgaWYgdGVzdCAiJHBnYWNfY3ZfY3h4X3R5cGVvZiIgIT0gdHlwZW9mOyB0aGVuCisKK2Nh dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgcGdfY3h4X3R5cGVvZiAkcGdhY19jdl9j eHhfdHlwZW9mCitfQUNFT0YKKworICBmaQorZmkKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3Ai ID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxl X3AuLi4gIiA+JjY7IH0KIGlmICR7cGdhY19jdl9fdHlwZXNfY29tcGF0aWJsZSs6fSBmYWxzZTsg dGhlbiA6CmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggY2M4 NWMyMzNjMDMuLjc1NGRjNTBkNmJhIDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29u ZmlndXJlLmFjCkBAIC0xNzE2LDYgKzE3MTYsNyBAQCBQR0FDX1BSSU5URl9BUkNIRVRZUEUKIFBH QUNfQ1hYX1BSSU5URl9BUkNIRVRZUEUKIFBHQUNfQ19TVEFURU1FTlRfRVhQUkVTU0lPTlMKIFBH QUNfQ19UWVBFT0YKK1BHQUNfQ1hYX1RZUEVPRgogUEdBQ19DX1RZUEVTX0NPTVBBVElCTEUKIFBH QUNfQ19CVUlMVElOX0NPTlNUQU5UX1AKIFBHQUNfQ19CVUlMVElOX09QX09WRVJGTE9XCmRpZmYg LS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDA1NWU5NjMxNWQwLi4wNmFi OTE3MzY1ZSAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTI4 ODIsNiArMjg4MiwzMSBAQCBpbnQgbWFpbih2b2lkKQogICBlbmRpZgogZW5kZm9yZWFjaAogCisj IENoZWNrIGlmIHRoZSBDKysgY29tcGlsZXIgdW5kZXJzdGFuZHMgdHlwZW9mIG9yIGEgdmFyaWFu dC4KK2lmIGhhdmVfY3h4CisgIGZvcmVhY2gga3cgOiBbJ3R5cGVvZicsICdfX3R5cGVvZl9fJ10K KyAgICBpZiBjeHguY29tcGlsZXMoJycnCitpbnQgbWFpbih2b2lkKQoreworICAgIGludCB4ID0g MDsKKyAgICBAMEAoeCkgeTsKKyAgICB5ID0geDsKKyAgICByZXR1cm4geTsKK30KKycnJy5mb3Jt YXQoa3cpLAorICAgICAgbmFtZTogJ0MrKyAnICsga3csCisgICAgICBhcmdzOiB0ZXN0X2NfYXJn cywgaW5jbHVkZV9kaXJlY3RvcmllczogcG9zdGdyZXNfaW5jKQorCisgICAgICBjZGF0YS5zZXQo J0hBVkVfQ1hYX1RZUEVPRicsIDEpCisgICAgICBpZiBrdyAhPSAndHlwZW9mJworICAgICAgICBj ZGF0YS5zZXQoJ3BnX2N4eF90eXBlb2YnLCBrdykKKyAgICAgIGVuZGlmCisKKyAgICAgIGJyZWFr CisgICAgZW5kaWYKKyAgZW5kZm9yZWFjaAorZW5kaWYKKwogCiAjIE1TVkMgZG9lc24ndCBjb3Bl IHdlbGwgd2l0aCBkZWZpbmluZyByZXN0cmljdCB0byBfX3Jlc3RyaWN0LCB0aGUKICMgc3BlbGxp bmcgaXQgdW5kZXJzdGFuZHMsIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRleCA3ZWU0NzUxOTkyZi4uYzNi M2U5ZWVhNGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9j LmgKQEAgLTQyNCw2ICs0MjQsMjcgQEAKICNkZWZpbmUgdW5saWtlbHkoeCkgKCh4KSAhPSAwKQog I2VuZGlmCiAKKy8qCisgKiBQcm92aWRlIHR5cGVvZiBpbiBDKysgZm9yIEMrKyBjb21waWxlcnMg dGhhdCBkb24ndCBzdXBwb3J0IHR5cGVvZiBuYXRpdmVseS4KKyAqIEl0IG1pZ2h0IGJlIHNwZWxs ZWQgX190eXBlb2ZfXyBpbnN0ZWFkIG9mIHR5cGVvZiwgaW4gd2hpY2ggY2FzZQorICogcGdfY3h4 X3R5cGVvZiBwcm92aWRlcyB0aGF0IG1hcHBpbmcuIElmIG5laXRoZXIgaXMgc3VwcG9ydGVkLCB3 ZSBjYW4gdXNlCisgKiBkZWNsdHlwZSwgYnV0IHRvIG1ha2UgaXQgZXF1aXZhbGVudCB0byBDJ3Mg dHlwZW9mLCB3ZSBuZWVkIHRvIHJlbW92ZQorICogcmVmZXJlbmNlcyBmcm9tIHRoZSByZXN1bHQg WzFdLiBBbHNvIGVuc3VyZSBIQVZFX1RZUEVPRiBpcyBzZXQgc28gdGhhdAorICogdHlwZW9mLWRl cGVuZGVudCBjb2RlIGlzIGFsd2F5cyBlbmFibGVkIGluIEMrKyBtb2RlLgorICoKKyAqIFsxXTog aHR0cHM6Ly93d3cub3Blbi1zdGQub3JnL2p0YzEvc2MyMi93ZzE0L3d3dy9kb2NzL24yOTI3Lmh0 bSNleGlzdGluZy1kZWNsdHlwZQorICovCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyNpZmRl ZiBwZ19jeHhfdHlwZW9mCisjZGVmaW5lIHR5cGVvZih4KSBwZ19jeHhfdHlwZW9mKHgpCisjZWxp ZiAhZGVmaW5lZChIQVZFX0NYWF9UWVBFT0YpCisjZGVmaW5lIHR5cGVvZih4KSBzdGQ6OnJlbW92 ZV9yZWZlcmVuY2VfdDxkZWNsdHlwZSh4KT4KKyNlbmRpZgorI2lmbmRlZiBIQVZFX1RZUEVPRgor I2RlZmluZSBIQVZFX1RZUEVPRiAxCisjZW5kaWYKKyNlbmRpZgorCiAvKgogICogQ3BwQXNTdHJp bmcKICAqCQlDb252ZXJ0IHRoZSBhcmd1bWVudCB0byBhIHN0cmluZywgdXNpbmcgdGhlIEMgcHJl cHJvY2Vzc29yLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gYi9zcmMv aW5jbHVkZS9wZ19jb25maWcuaC5pbgppbmRleCAzODI0YTU1NzFiYi4uMDA1OTQwODU2OWQgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCisrKyBiL3NyYy9pbmNsdWRlL3Bn X2NvbmZpZy5oLmluCkBAIC00NTQsNiArNDU0LDEwIEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3Vy IGNvbXBpbGVyIHVuZGVyc3RhbmRzIGB0eXBlb2YnIG9yIHNvbWV0aGluZyBzaW1pbGFyLiAqLwog I3VuZGVmIEhBVkVfVFlQRU9GCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdXIgQysrIGNvbXBpbGVy IHVuZGVyc3RhbmRzIGB0eXBlb2YnIG9yIHNvbWV0aGluZyBzaW1pbGFyLgorICAgKi8KKyN1bmRl ZiBIQVZFX0NYWF9UWVBFT0YKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx1Y2hh ci5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX1VDSEFSX0gKIApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2NwbHVzcGx1c2V4dC90ZXN0X2NwbHVzcGx1c2V4dC5jcHAg Yi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfY3BsdXNwbHVzZXh0L3Rlc3RfY3BsdXNwbHVzZXh0LmNw cAppbmRleCA4YzJlYWJjY2E0My4uNWU2YzhmODVmNmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvdGVzdF9jcGx1c3BsdXNleHQuY3BwCisrKyBiL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9jcGx1c3BsdXNleHQvdGVzdF9jcGx1c3BsdXNleHQuY3BwCkBAIC0z Nyw2ICszNyw3IEBAIHRlc3RfY3BsdXNwbHVzX2FkZChQR19GVU5DVElPTl9BUkdTKQogCWludDMy CQlhID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCWludDMyCQliID0gUEdfR0VUQVJHX0lOVDMyKDEp OwogCVJhbmdlVGJsUmVmICpub2RlID0gbWFrZU5vZGUoUmFuZ2VUYmxSZWYpOworCVJhbmdlVGJs UmVmICpjb3B5ID0gY29weU9iamVjdChub2RlKTsKIAlMaXN0CSAgICpsaXN0ID0gbGlzdF9tYWtl MShub2RlKTsKIAogCWZvcmVhY2hfcHRyKFJhbmdlVGJsUmVmLCBydHIsIGxpc3QpCkBAIC01NCw2 ICs1NSw3IEBAIHRlc3RfY3BsdXNwbHVzX2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJbGlzdF9m cmVlKGxpc3QpOwogCXBmcmVlKG5vZGUpOworCXBmcmVlKGNvcHkpOwogCiAJUEdfUkVUVVJOX0lO VDMyKGEgKyBiKTsKIH0KCmJhc2UtY29tbWl0OiBiYTQwMTgyOGMxOTRjMTcwMzFhNmEyZGVkZDk3 YmMwZGVmZDgwZDRiCi0tIAoyLjUzLjAKCg== --32dbe022ccb44e0ce7a63a3310d0c553e6a2064bd9bb0374c449db5cd914 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v9-0002-Use-typeof-everywhere-instead-of-compiler-specifi.patch Content-Type: text/x-patch; charset=utf-8; name=v9-0002-Use-typeof-everywhere-instead-of-compiler-specifi.patch RnJvbSBjMDUzNzQ4M2ZiZGFjZTY5NjdkZjNhYTFiNzZmMWRiNmM2NmE1ODgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDggRGVjIDIwMjUgMDg6MTM6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIHY5 IDIvM10gVXNlIHR5cGVvZiBldmVyeXdoZXJlIGluc3RlYWQgb2YgY29tcGlsZXIgc3BlY2lmaWMK IHNwZWxsaW5ncwoKV2UgZGVmaW5lIHR5cGVvZiBvdXJzZWx2ZXMgYXMgX190eXBlb2ZfXyBpZiBp dCBkb2VzIG5vdCBleGlzdC4gU28gbGV0J3MKYWN0dWFsbHkgdXNlIHRoYXQgZm9yIGNvbnNpc3Rl bmN5LiBUaGUgbWVzb24vYXV0b2NvbmYgY2hlY2tzIGZvcgpfX2J1aWx0aW5fdHlwZXNfY29tcGF0 aWJsZV9wIHN0aWxsIHVzZSBfX3R5cGVvZl9fIHRob3VnaCwgYmVjYXVzZSB0aGVyZQp3ZSBoYXZl IG5vdCByZWRlZmluZWQgaXQuCi0tLQogc3JjL2luY2x1ZGUvYy5oIHwgOCArKysrLS0tLQogMSBm aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jLmggYi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggYzNiM2U5ZWVhNGUuLjA3 ZTkzMWE2Yzg5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jLmgKKysrIGIvc3JjL2luY2x1ZGUv Yy5oCkBAIC0xMDA4LDEwICsxMDA4LDEwIEBAIHBnX25vcmV0dXJuIGV4dGVybiB2b2lkIEV4Y2Vw dGlvbmFsQ29uZGl0aW9uKGNvbnN0IGNoYXIgKmNvbmRpdGlvbk5hbWUsCiAgKi8KICNpZmRlZiBI QVZFX19CVUlMVElOX1RZUEVTX0NPTVBBVElCTEVfUAogI2RlZmluZSBTdGF0aWNBc3NlcnRWYXJp YWJsZUlzT2ZUeXBlKHZhcm5hbWUsIHR5cGVuYW1lKSBcCi0JU3RhdGljQXNzZXJ0RGVjbChfX2J1 aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKF9fdHlwZW9mX18odmFybmFtZSksIHR5cGVuYW1lKSwg XAorCVN0YXRpY0Fzc2VydERlY2woX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2Yo dmFybmFtZSksIHR5cGVuYW1lKSwgXAogCUNwcEFzU3RyaW5nKHZhcm5hbWUpICIgZG9lcyBub3Qg aGF2ZSB0eXBlICIgQ3BwQXNTdHJpbmcodHlwZW5hbWUpKQogI2RlZmluZSBTdGF0aWNBc3NlcnRW YXJpYWJsZUlzT2ZUeXBlTWFjcm8odmFybmFtZSwgdHlwZW5hbWUpIFwKLQkoU3RhdGljQXNzZXJ0 RXhwcihfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKF9fdHlwZW9mX18odmFybmFtZSksIHR5 cGVuYW1lKSwgXAorCShTdGF0aWNBc3NlcnRFeHByKF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxl X3AodHlwZW9mKHZhcm5hbWUpLCB0eXBlbmFtZSksIFwKIAkgQ3BwQXNTdHJpbmcodmFybmFtZSkg IiBkb2VzIG5vdCBoYXZlIHR5cGUgIiBDcHBBc1N0cmluZyh0eXBlbmFtZSkpKQogI2Vsc2UJCQkJ CQkJLyogIUhBVkVfX0JVSUxUSU5fVFlQRVNfQ09NUEFUSUJMRV9QICovCiAjZGVmaW5lIFN0YXRp Y0Fzc2VydFZhcmlhYmxlSXNPZlR5cGUodmFybmFtZSwgdHlwZW5hbWUpIFwKQEAgLTEyNzUsMTEg KzEyNzUsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgUEdBbGlnbmVkWExvZ0Jsb2NrIFBHQWxpZ25lZFhM b2dCbG9jazsKICNkZWZpbmUgdW52b2xhdGl6ZSh1bmRlcmx5aW5nX3R5cGUsIGV4cHIpIGNvbnN0 X2Nhc3Q8dW5kZXJseWluZ190eXBlPihleHByKQogI2VsaWYgZGVmaW5lZChIQVZFX19CVUlMVElO X1RZUEVTX0NPTVBBVElCTEVfUCkKICNkZWZpbmUgdW5jb25zdGlmeSh1bmRlcmx5aW5nX3R5cGUs IGV4cHIpIFwKLQkoU3RhdGljQXNzZXJ0RXhwcihfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9w KF9fdHlwZW9mKGV4cHIpLCBjb25zdCB1bmRlcmx5aW5nX3R5cGUpLCBcCisJKFN0YXRpY0Fzc2Vy dEV4cHIoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoZXhwciksIGNvbnN0IHVu ZGVybHlpbmdfdHlwZSksIFwKIAkJCQkJICAid3JvbmcgY2FzdCIpLCBcCiAJICh1bmRlcmx5aW5n X3R5cGUpIChleHByKSkKICNkZWZpbmUgdW52b2xhdGl6ZSh1bmRlcmx5aW5nX3R5cGUsIGV4cHIp IFwKLQkoU3RhdGljQXNzZXJ0RXhwcihfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKF9fdHlw ZW9mKGV4cHIpLCB2b2xhdGlsZSB1bmRlcmx5aW5nX3R5cGUpLCBcCisJKFN0YXRpY0Fzc2VydEV4 cHIoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0eXBlb2YoZXhwciksIHZvbGF0aWxlIHVu ZGVybHlpbmdfdHlwZSksIFwKIAkJCQkJICAid3JvbmcgY2FzdCIpLCBcCiAJICh1bmRlcmx5aW5n X3R5cGUpIChleHByKSkKICNlbHNlCi0tIAoyLjUzLjAKCg== --32dbe022ccb44e0ce7a63a3310d0c553e6a2064bd9bb0374c449db5cd914 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v9-0003-Make-unconstify-and-unvolatize-use-StaticAssertVa.patch Content-Type: text/x-patch; charset=utf-8; name=v9-0003-Make-unconstify-and-unvolatize-use-StaticAssertVa.patch RnJvbSAzNzAyMWY3YjJjYWU1ODBjYTM0OGM4NjAwZjk2NDRmOTI4YjQ4MjMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUaHUsIDE5IEZlYiAyMDI2IDIzOjU1OjQzICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 OSAzLzNdIE1ha2UgdW5jb25zdGlmeSBhbmQgdW52b2xhdGl6ZSB1c2UKIFN0YXRpY0Fzc2VydFZh cmlhYmxlSXNPZlR5cGVNYWNybwoKVGhlIHVuY29uc3RpZnkgYW5kIHVudm9sYXRpemUgbWFjcm9z IGhhZCBhbiBhbG1vc3QgaWRlbnRpY2FsIGFzc2VydGlvbgphcyB3YXMgYWxyZWFkeSBkZWZpbmVk IGluIFN0YXRpY0Fzc2VydFZhcmlhYmxlSXNPZlR5cGVNYWNybywgb25seSBpdCBoYWQKYSBsZXNz IHVzZWZ1bCBlcnJvciBtZXNzYWdlIGFuZCBkaWRuJ3QgaGF2ZSBhIHNpemVvZiBmYWxsYmFjay4K LS0tCiBzcmMvaW5jbHVkZS9jLmggfCAxMyArKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jLmggYi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggMDdlOTMxYTZjODkuLjVmYTM2NjkxNGQ4IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jLmgKKysrIGIvc3JjL2luY2x1ZGUvYy5oCkBAIC0xMjcz LDIwICsxMjczLDEzIEBAIHR5cGVkZWYgc3RydWN0IFBHQWxpZ25lZFhMb2dCbG9jayBQR0FsaWdu ZWRYTG9nQmxvY2s7CiAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKICNkZWZpbmUgdW5jb25zdGlm eSh1bmRlcmx5aW5nX3R5cGUsIGV4cHIpIGNvbnN0X2Nhc3Q8dW5kZXJseWluZ190eXBlPihleHBy KQogI2RlZmluZSB1bnZvbGF0aXplKHVuZGVybHlpbmdfdHlwZSwgZXhwcikgY29uc3RfY2FzdDx1 bmRlcmx5aW5nX3R5cGU+KGV4cHIpCi0jZWxpZiBkZWZpbmVkKEhBVkVfX0JVSUxUSU5fVFlQRVNf Q09NUEFUSUJMRV9QKQorI2Vsc2UKICNkZWZpbmUgdW5jb25zdGlmeSh1bmRlcmx5aW5nX3R5cGUs IGV4cHIpIFwKLQkoU3RhdGljQXNzZXJ0RXhwcihfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9w KHR5cGVvZihleHByKSwgY29uc3QgdW5kZXJseWluZ190eXBlKSwgXAotCQkJCQkgICJ3cm9uZyBj YXN0IiksIFwKKwkoU3RhdGljQXNzZXJ0VmFyaWFibGVJc09mVHlwZU1hY3JvKGV4cHIsIGNvbnN0 IHVuZGVybHlpbmdfdHlwZSksIFwKIAkgKHVuZGVybHlpbmdfdHlwZSkgKGV4cHIpKQogI2RlZmlu ZSB1bnZvbGF0aXplKHVuZGVybHlpbmdfdHlwZSwgZXhwcikgXAotCShTdGF0aWNBc3NlcnRFeHBy KF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlwZW9mKGV4cHIpLCB2b2xhdGlsZSB1bmRl cmx5aW5nX3R5cGUpLCBcCi0JCQkJCSAgIndyb25nIGNhc3QiKSwgXAorCShTdGF0aWNBc3NlcnRW YXJpYWJsZUlzT2ZUeXBlTWFjcm8oZXhwciwgdm9sYXRpbGUgdW5kZXJseWluZ190eXBlKSwgXAog CSAodW5kZXJseWluZ190eXBlKSAoZXhwcikpCi0jZWxzZQotI2RlZmluZSB1bmNvbnN0aWZ5KHVu ZGVybHlpbmdfdHlwZSwgZXhwcikgXAotCSgodW5kZXJseWluZ190eXBlKSAoZXhwcikpCi0jZGVm aW5lIHVudm9sYXRpemUodW5kZXJseWluZ190eXBlLCBleHByKSBcCi0JKCh1bmRlcmx5aW5nX3R5 cGUpIChleHByKSkKICNlbmRpZgogCiAvKgotLSAKMi41My4wCgo= --32dbe022ccb44e0ce7a63a3310d0c553e6a2064bd9bb0374c449db5cd914--