Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1gCr9K-0008Ez-6h for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Oct 2018 19:06:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1gCr9H-000188-EL for pgsql-hackers@arkaria.postgresql.org; Wed, 17 Oct 2018 19:06:27 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1gCr9G-000180-AS for pgsql-hackers@lists.postgresql.org; Wed, 17 Oct 2018 19:06:27 +0000 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1gCr9C-0000Cv-Ar for pgsql-hackers@postgresql.org; Wed, 17 Oct 2018 19:06:25 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id 82B72C31; Wed, 17 Oct 2018 15:06:18 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Wed, 17 Oct 2018 15:06:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=AyqQOl AtkMtihMpgradZLDQYgFl8ZUaHrRnKEFHTVeE=; b=s3K8il1lE2+UbSe0lOLBdG De3oVZRoEcLYIGBnVMA2USYyoZ+bsmYW9y8a89xfu2aPu5IRUbzmL9kWXwcc1Trv FjWbb4/Z3lP8lP18p9bcZcnM+Vhqv0nO32y8y2niEYwLS0YzhOVCgDRmOoeA3MaW zpK7x+BKtHQq8OGeXmvcu8UthfIuRy6LFwRLe/RBYPLtMWOSnlTyf8OhMwqF6dT3 XpuRJCxU+eMXqN9sYknqaG8B9r6kch1RJPPuLsLwpOrNSrDRz9Q9RNFfTkTcEyJR w1KwCJfjWxrbgPF+J3AWpdZO94E6waJtsHRQG5qFvUFgWHKIE0sAgC/NHY2RN7EQ == X-ME-Sender: X-ME-Proxy: Received: from april.pezone.net (p5df39409.dip0.t-ipconnect.de [93.243.148.9]) by mail.messagingengine.com (Postfix) with ESMTPA id DA227E4071; Wed, 17 Oct 2018 15:06:15 -0400 (EDT) Subject: Re: Large writable variables To: Andres Freund , pgsql-hackers@postgresql.org, Thomas Munro References: <20181015200754.7y7zfuzsoux2c4ya@alap3.anarazel.de> <20181016045051.wr35ubb6h7h3ee2b@alap3.anarazel.de> <20181016050200.c65yjz2qgxulgouv@alap3.anarazel.de> <20181016063013.kigj6e5pqx6n75y3@alap3.anarazel.de> From: Peter Eisentraut Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= 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 3jI= Organization: 2ndQuadrant Message-ID: <200cf391-4a60-4c69-85d8-c715c7bce4de@2ndquadrant.com> Date: Wed, 17 Oct 2018 21:06:13 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20181016063013.kigj6e5pqx6n75y3@alap3.anarazel.de> Content-Type: multipart/mixed; boundary="------------89A99B2DC67AA503D481C49E" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------89A99B2DC67AA503D481C49E Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 16/10/2018 08:30, Andres Freund wrote: > This just reminded me that a couple times I wanted a cast that casts > away const, but otherwise makes sure the type stays the same. I don't > think there's a way to do that in C, but we can write one that verifies > the cast doesn't do something bad if gcc is used: > > #if defined(HAVE__BUILTIN_TYPES_COMPATIBLE_P) > #define unconstify(cst, var) StaticAssertExpr(__builtin_types_compatible_p(__typeof(var), const cst), "wrong cast"), (cst) (var) > #else > #define unconstify(cst, var) ((cst) (var)) > #endif > > Does anybody besides me see value in adding a cleaned up version of > that? I've had the attached patch lying around. As you can see there, there are a few places where it could be useful, but not too many. The name CONST_CAST() is adapted from C++. Your version with __builtin_types_compatible_p() doesn't work for casting between char * and const char *, so it wouldn't be very useful. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------89A99B2DC67AA503D481C49E Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Add-CONST_CAST-macro.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-CONST_CAST-macro.patch" RnJvbSAzMTU3NmIzNzY4N2Y0NGZjMTRiY2YwOTkwZWI0ODk0NjZiNzRiZjI5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlcl9lQGdteC5u ZXQ+CkRhdGU6IFdlZCwgMjMgTWF5IDIwMTggMDk6MTA6NTEgLTA0MDAKU3ViamVjdDogW1BB VENIXSBBZGQgQ09OU1RfQ0FTVCBtYWNybwoKLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv anNvbi5jICAgICAgIHwgNCArKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbWlzYy5jICAg ICAgIHwgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyAgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9kZm1nci5jICAgICB8IDQgKystLQogc3JjL2lu Y2x1ZGUvYy5oICAgICAgICAgICAgICAgICAgICB8IDYgKysrKysrCiBzcmMvaW50ZXJmYWNl cy9saWJwcS9wcWV4cGJ1ZmZlci5jIHwgMiArLQogc3JjL3BvcnQvd2luMzJzZXRsb2NhbGUu YyAgICAgICAgICB8IDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwg OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNv bi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb24uYwppbmRleCA2ZjBmZTk0ZDYzLi42 MTkwYjAxZGQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbi5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uLmMKQEAgLTIwNywxMiArMjA3LDEyIEBA IElzVmFsaWRKc29uTnVtYmVyKGNvbnN0IGNoYXIgKnN0ciwgaW50IGxlbikKIAkgKi8KIAlp ZiAoKnN0ciA9PSAnLScpCiAJewotCQlkdW1teV9sZXguaW5wdXQgPSAoY2hhciAqKSBzdHIg KyAxOworCQlkdW1teV9sZXguaW5wdXQgPSBDT05TVF9DQVNUKGNoYXIgKiwgc3RyKSArIDE7 CiAJCWR1bW15X2xleC5pbnB1dF9sZW5ndGggPSBsZW4gLSAxOwogCX0KIAllbHNlCiAJewot CQlkdW1teV9sZXguaW5wdXQgPSAoY2hhciAqKSBzdHI7CisJCWR1bW15X2xleC5pbnB1dCA9 IENPTlNUX0NBU1QoY2hhciAqLCBzdHIpOwogCQlkdW1teV9sZXguaW5wdXRfbGVuZ3RoID0g bGVuOwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21pc2MuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9taXNjLmMKaW5kZXggNmVhMzY3OTgzNS4uMTc5YmE4 MTg4MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21pc2MuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvbWlzYy5jCkBAIC00MjMsNyArNDIzLDcgQEAgcGdfZ2V0 X2tleXdvcmRzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCUhlYXBUdXBsZQl0dXBsZTsKIAogCQkv KiBjYXN0LWF3YXktY29uc3QgaXMgdWdseSBidXQgYWx0ZXJuYXRpdmVzIGFyZW4ndCBtdWNo IGJldHRlciAqLwotCQl2YWx1ZXNbMF0gPSAoY2hhciAqKSBTY2FuS2V5d29yZHNbZnVuY2N0 eC0+Y2FsbF9jbnRyXS5uYW1lOworCQl2YWx1ZXNbMF0gPSBDT05TVF9DQVNUKGNoYXIgKiwg U2NhbktleXdvcmRzW2Z1bmNjdHgtPmNhbGxfY250cl0ubmFtZSk7CiAKIAkJc3dpdGNoIChT Y2FuS2V5d29yZHNbZnVuY2N0eC0+Y2FsbF9jbnRyXS5jYXRlZ29yeSkKIAkJewpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMKaW5kZXggYTVlODEyZDAyNi4uYTk4ZWMyZjhkZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0xODIsNyArMTgyLDcgQEAgY2hhciAqCiB0ZXh0 X3RvX2NzdHJpbmcoY29uc3QgdGV4dCAqdCkKIHsKIAkvKiBtdXN0IGNhc3QgYXdheSB0aGUg Y29uc3QsIHVuZm9ydHVuYXRlbHkgKi8KLQl0ZXh0CSAgICp0dW5wYWNrZWQgPSBwZ19kZXRv YXN0X2RhdHVtX3BhY2tlZCgoc3RydWN0IHZhcmxlbmEgKikgdCk7CisJdGV4dAkgICAqdHVu cGFja2VkID0gcGdfZGV0b2FzdF9kYXR1bV9wYWNrZWQoQ09OU1RfQ0FTVCh0ZXh0ICosIHQp KTsKIAlpbnQJCQlsZW4gPSBWQVJTSVpFX0FOWV9FWEhEUih0dW5wYWNrZWQpOwogCWNoYXIJ ICAgKnJlc3VsdDsKIApAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQKIHRleHRfdG9fY3N0cmlu Z19idWZmZXIoY29uc3QgdGV4dCAqc3JjLCBjaGFyICpkc3QsIHNpemVfdCBkc3RfbGVuKQog ewogCS8qIG11c3QgY2FzdCBhd2F5IHRoZSBjb25zdCwgdW5mb3J0dW5hdGVseSAqLwotCXRl eHQJICAgKnNyY3VucGFja2VkID0gcGdfZGV0b2FzdF9kYXR1bV9wYWNrZWQoKHN0cnVjdCB2 YXJsZW5hICopIHNyYyk7CisJdGV4dAkgICAqc3JjdW5wYWNrZWQgPSBwZ19kZXRvYXN0X2Rh dHVtX3BhY2tlZChDT05TVF9DQVNUKHRleHQgKiwgc3JjKSk7CiAJc2l6ZV90CQlzcmNfbGVu ID0gVkFSU0laRV9BTllfRVhIRFIoc3JjdW5wYWNrZWQpOwogCiAJaWYgKGRzdF9sZW4gPiAw KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9kZm1nci5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9kZm1nci5jCmluZGV4IDRhNWNjN2NmYzcuLmIyZmY3YWVmMzUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZGZtZ3IuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9mbWdyL2RmbWdyLmMKQEAgLTEyNiw3ICsxMjYsNyBAQCBsb2FkX2V4 dGVybmFsX2Z1bmN0aW9uKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpmdW5j bmFtZSwKIAkgKiBzaG91bGQgZGVjbGFyZSBpdHMgc2Vjb25kIGFyZ3VtZW50IGFzICJjb25z dCBjaGFyICoiLCBidXQgb2xkZXIKIAkgKiBwbGF0Zm9ybXMgbWlnaHQgbm90LCBzbyBmb3Ig dGhlIHRpbWUgYmVpbmcgd2UganVzdCBjYXN0IGF3YXkgY29uc3QuCiAJICovCi0JcmV0dmFs ID0gKFBHRnVuY3Rpb24pIGRsc3ltKGxpYl9oYW5kbGUsIChjaGFyICopIGZ1bmNuYW1lKTsK KwlyZXR2YWwgPSAoUEdGdW5jdGlvbikgZGxzeW0obGliX2hhbmRsZSwgQ09OU1RfQ0FTVChj aGFyICosIGZ1bmNuYW1lKSk7CiAKIAlpZiAocmV0dmFsID09IE5VTEwgJiYgc2lnbmFsTm90 Rm91bmQpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xNzUsNyArMTc1LDcgQEAgUEdGdW5jdGlv bgogbG9va3VwX2V4dGVybmFsX2Z1bmN0aW9uKHZvaWQgKmZpbGVoYW5kbGUsIGNvbnN0IGNo YXIgKmZ1bmNuYW1lKQogewogCS8qIGFzIGFib3ZlLCBjYXN0IGF3YXkgY29uc3QgZm9yIHRo ZSB0aW1lIGJlaW5nICovCi0JcmV0dXJuIChQR0Z1bmN0aW9uKSBkbHN5bShmaWxlaGFuZGxl LCAoY2hhciAqKSBmdW5jbmFtZSk7CisJcmV0dXJuIChQR0Z1bmN0aW9uKSBkbHN5bShmaWxl aGFuZGxlLCBDT05TVF9DQVNUKGNoYXIgKiwgZnVuY25hbWUpKTsKIH0KIAogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jLmggYi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggNGE3NTdiYzhl YS4uNjM0MWIyNTEyZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYy5oCisrKyBiL3NyYy9p bmNsdWRlL2MuaApAQCAtMjA4LDYgKzIwOCwxMiBAQAogI2RlZmluZSB1bmxpa2VseSh4KSAo KHgpICE9IDApCiAjZW5kaWYKIAorLyoKKyAqIFNhZmVyIGNhc3RpbmcgLS0gdXNlIHRoaXMg Zm9yIGNhc3RpbmcgYXdheSBjb25zdCBvciB2b2xhdGlsZS4gIEl0IGVuc3VyZXMKKyAqIHRo YXQgdGhlIHNvdXJjZSBhbmQgdGFyZ2V0IHR5cGVzIGFyZSBvdGhlcndpc2UgY29tcGF0aWJs ZS4KKyAqLworI2RlZmluZSBDT05TVF9DQVNUKHQsIHgpICgodm9pZCkoKHQpMCA9PSAoeCkp LCAodCkoeCkpCisKIC8qCiAgKiBDcHBBc1N0cmluZwogICoJCUNvbnZlcnQgdGhlIGFyZ3Vt ZW50IHRvIGEgc3RyaW5nLCB1c2luZyB0aGUgQyBwcmVwcm9jZXNzb3IuCmRpZmYgLS1naXQg YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvcHFleHBidWZmZXIuYwppbmRleCA0M2MzNmMzYmZmLi40MDE1YjU4YTA4IDEwMDY0 NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jCisrKyBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmMKQEAgLTU3LDcgKzU3LDcgQEAgbWFya1BR RXhwQnVmZmVyQnJva2VuKFBRRXhwQnVmZmVyIHN0cikKIAkgKiB0byBwdXQgb29tX2J1ZmZl ciBpbiByZWFkLW9ubHkgc3RvcmFnZSwgc28gdGhhdCBhbnlvbmUgd2hvIHRyaWVzIHRvCiAJ ICogc2NyaWJibGUgb24gYSBicm9rZW4gUFFFeHBCdWZmZXIgd2lsbCBnZXQgYSBmYWlsdXJl LgogCSAqLwotCXN0ci0+ZGF0YSA9IChjaGFyICopIG9vbV9idWZmZXI7CisJc3RyLT5kYXRh ID0gQ09OU1RfQ0FTVChjaGFyICosIG9vbV9idWZmZXIpOwogCXN0ci0+bGVuID0gMDsKIAlz dHItPm1heGxlbiA9IDA7CiB9CmRpZmYgLS1naXQgYS9zcmMvcG9ydC93aW4zMnNldGxvY2Fs ZS5jIGIvc3JjL3BvcnQvd2luMzJzZXRsb2NhbGUuYwppbmRleCAwNTk3YzJhZmNhLi4zNTE0 YjU2MDZhIDEwMDY0NAotLS0gYS9zcmMvcG9ydC93aW4zMnNldGxvY2FsZS5jCisrKyBiL3Ny Yy9wb3J0L3dpbjMyc2V0bG9jYWxlLmMKQEAgLTE4Myw3ICsxODMsNyBAQCBwZ3dpbjMyX3Nl dGxvY2FsZShpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKmxvY2FsZSkKIAkgKiBmb3JiaWRk ZW4gdG8gbW9kaWZ5LCBzbyBjYXN0aW5nIGF3YXkgdGhlICJjb25zdCIgaXMgaW5ub2N1b3Vz LgogCSAqLwogCWlmIChyZXN1bHQpCi0JCXJlc3VsdCA9IChjaGFyICopIG1hcF9sb2NhbGUo bG9jYWxlX21hcF9yZXN1bHQsIHJlc3VsdCk7CisJCXJlc3VsdCA9IENPTlNUX0NBU1QoY2hh ciAqLCBtYXBfbG9jYWxlKGxvY2FsZV9tYXBfcmVzdWx0LCByZXN1bHQpKTsKIAogCXJldHVy biByZXN1bHQ7CiB9Ci0tIAoyLjE5LjEKCg== --------------89A99B2DC67AA503D481C49E--