From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 106719 invoked by alias); 16 Jul 2017 21:54:33 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 105732 invoked by uid 89); 16 Jul 2017 21:54:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-23.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy= X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail-oi0-f44.google.com Received: from mail-oi0-f44.google.com (HELO mail-oi0-f44.google.com) (209.85.218.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 16 Jul 2017 21:54:29 +0000 Received: by mail-oi0-f44.google.com with SMTP id q4so20368980oif.1; Sun, 16 Jul 2017 14:54:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=8fmprN0pjkGPBA+4dIS+b+luA+Mqi2ls0hBSaI6kpI4=; b=llZGXd0b/V1G2USO7m+zKiYL6JpMd6YbeA15Y41XfQgevjMce0eNNZhXYD/McMrvqV pMLNs+5CZKmcHc1VcWNRNrBEDYvV2CaNFqEynS7Rx7ekT30mOicW4BbtZxGvK6GwDWdK +GK0vVqNo3A26N2G0NsWNHH2nHiPIlGKIzmaqeWBZODKWBIB/2W2nXMNGgrHt0DNMgiY H+Yy/QKXj6ekY6c0bqoml2XlUdgtsOwsDYhQvljGlIHNQ3VVBecwDP9U9c2cPfk1ciBm OmCw8EaI3bzZ36ycFG/5RoyfJsKISd+RHw/11eOza2F+qsei05De3gddAByIhx9/gSvA eyCQ== X-Gm-Message-State: AIVw111pCWToE1OOib+rQoy6IDO7Wzp6WzChSlqZAGHvDN5PFZSOmeP1 IS84WttKkUgBu0xlEodI8UJKSG+bwA== X-Received: by 10.202.91.8 with SMTP id p8mr10006364oib.197.1500242067880; Sun, 16 Jul 2017 14:54:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.74.31.7 with HTTP; Sun, 16 Jul 2017 14:54:27 -0700 (PDT) From: Glen Fernandes Date: Sun, 16 Jul 2017 21:54:00 -0000 Message-ID: Subject: [PATCH] Implement std::pointer_traits::to_address as per P0653R0 To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="001a113d3a8888a26a0554765368" X-IsSubscribed: yes X-SW-Source: 2017-07/txt/msg00914.txt.bz2 --001a113d3a8888a26a0554765368 Content-Type: text/plain; charset="UTF-8" Content-length: 522 Implement pointer_traits::to_address as in P0653r0 * include/bits/allocated_ptr.h (allocated_ptr): Use pointer_traits::to_address. * include/bits/ptr_traits.h (pointer_traits): Implement to_address. * include/ext/pointer.h (pointer_traits): Define to_address in pointer_traits specialization. * testsuite/20_util/pointer_traits/requirements/explicit_instantiation.cc: Define operator->. * testsuite/20_util/pointer_traits/to_address.cc: New tests. Tested i686-pc-linux-gnu. Glen --001a113d3a8888a26a0554765368 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j5796nri0 Content-length: 8528 Y29tbWl0IDcxODA4MzliYWE2ZGZmNDhkYzdhMTUzNmEyZGUwNjg4Zjc5ZDM4 ZGMKQXV0aG9yOiBHbGVuIEZlcm5hbmRlcyA8Z2xlbmpvZmVAZ21haWwuY29t PgpEYXRlOiAgIFN1biBKdWwgMTYgMTY6NDk6MTggMjAxNyAtMDQwMAoKICAg IEltcGxlbWVudCBwb2ludGVyX3RyYWl0czo6dG9fYWRkcmVzcyBhcyBpbiBQ MDY1M3IwCiAgICAKICAgIAkqIGluY2x1ZGUvYml0cy9hbGxvY2F0ZWRfcHRy LmggKGFsbG9jYXRlZF9wdHIpOiBVc2UgcG9pbnRlcl90cmFpdHM6OnRvX2Fk ZHJlc3MuCiAgICAJKiBpbmNsdWRlL2JpdHMvcHRyX3RyYWl0cy5oIChwb2lu dGVyX3RyYWl0cyk6IEltcGxlbWVudCB0b19hZGRyZXNzLgogICAgCSogaW5j bHVkZS9leHQvcG9pbnRlci5oIChwb2ludGVyX3RyYWl0cyk6IERlZmluZSB0 b19hZGRyZXNzIGluIHBvaW50ZXJfdHJhaXRzIHNwZWNpYWxpemF0aW9uLgog ICAgCSogdGVzdHN1aXRlLzIwX3V0aWwvcG9pbnRlcl90cmFpdHMvcmVxdWly ZW1lbnRzL2V4cGxpY2l0X2luc3RhbnRpYXRpb24uY2M6IERlZmluZSBvcGVy YXRvci0+LgogICAgCSogdGVzdHN1aXRlLzIwX3V0aWwvcG9pbnRlcl90cmFp dHMvdG9fYWRkcmVzcy5jYzogTmV3IHRlc3RzLgoKZGlmZiAtLWdpdCBhL2xp YnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvYWxsb2NhdGVkX3B0ci5oIGIvbGli c3RkYysrLXYzL2luY2x1ZGUvYml0cy9hbGxvY2F0ZWRfcHRyLmgKaW5kZXgg NzczYjNmNS4uNzJlMDE3OSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvYml0cy9hbGxvY2F0ZWRfcHRyLmgKKysrIGIvbGlic3RkYysrLXYz L2luY2x1ZGUvYml0cy9hbGxvY2F0ZWRfcHRyLmgKQEAgLTgyLDE2ICs4Miwx MCBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgICAg fQogCiAgICAgICAvLy8gR2V0IHRoZSBhZGRyZXNzIHRoYXQgdGhlIG93bmVk IHBvaW50ZXIgcmVmZXJzIHRvLgotICAgICAgdmFsdWVfdHlwZSogZ2V0KCkg eyByZXR1cm4gX1NfcmF3X3B0cihfTV9wdHIpOyB9CisgICAgICB2YWx1ZV90 eXBlKiBnZXQoKQorICAgICAgeyByZXR1cm4gc3RkOjpwb2ludGVyX3RyYWl0 czxwb2ludGVyPjo6dG9fYWRkcmVzcyhfTV9wdHIpOyB9CiAKICAgICBwcml2 YXRlOgotICAgICAgc3RhdGljIHZhbHVlX3R5cGUqIF9TX3Jhd19wdHIodmFs dWVfdHlwZSogX19wdHIpIHsgcmV0dXJuIF9fcHRyOyB9Ci0KLSAgICAgIHRl bXBsYXRlPHR5cGVuYW1lIF9QdHI+Ci0Jc3RhdGljIGF1dG8KLQlfU19yYXdf cHRyKF9QdHIgX19wdHIpIC0+IGRlY2x0eXBlKF9TX3Jhd19wdHIoX19wdHIu b3BlcmF0b3ItPigpKSkKLQl7IHJldHVybiBfU19yYXdfcHRyKF9fcHRyLm9w ZXJhdG9yLT4oKSk7IH0KLQogICAgICAgX0FsbG9jKiBfTV9hbGxvYzsKICAg ICAgIHBvaW50ZXIgX01fcHRyOwogICAgIH07CmRpZmYgLS1naXQgYS9saWJz dGRjKystdjMvaW5jbHVkZS9iaXRzL3B0cl90cmFpdHMuaCBiL2xpYnN0ZGMr Ky12My9pbmNsdWRlL2JpdHMvcHRyX3RyYWl0cy5oCmluZGV4IDc5N2U3ZmMu LjkzZTk1YWQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2Jp dHMvcHRyX3RyYWl0cy5oCisrKyBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2Jp dHMvcHRyX3RyYWl0cy5oCkBAIC0xMTEsNiArMTExLDIyIEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgICAgICBwb2ludGVyX3RvKF9f bWFrZV9ub3Rfdm9pZDxlbGVtZW50X3R5cGU+JiBfX2UpCiAgICAgICB7IHJl dHVybiBfUHRyOjpwb2ludGVyX3RvKF9fZSk7IH0KIAorICAgIHByaXZhdGU6 CisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CisgICAgICBzdGF0aWMg ZWxlbWVudF90eXBlKgorICAgICAgX190b19hZGRyZXNzKF9UcCBfX3ApIG5v ZXhjZXB0CisgICAgICB7IHJldHVybiBwb2ludGVyX3RyYWl0czxfVHA+Ojp0 b19hZGRyZXNzKF9fcCk7IH0KKyAgICBwdWJsaWM6CisgICAgICAvKioKKyAg ICAgICAqICBAYnJpZWYgIE9idGFpbiBhZGRyZXNzIHJlZmVyZW5jZWQgYnkg YSBwb2ludGVyIHRvIGFuIG9iamVjdAorICAgICAgICogIEBwYXJhbSAgX19w ICBBIHBvaW50ZXIgdG8gYW4gb2JqZWN0CisgICAgICAgKiAgQHJldHVybiBA YyBwb2ludGVyX3RyYWl0czxkZWNsdHlwZShFeHByKT46OnRvX2FkZHJlc3Mo RXhwcikKKyAgICAgICAgICAgICAgICAgIHdoZXJlIEBjIEV4cHIgaXMgQGMg X19wLm9wZXJhdG9yLT4oKQorICAgICAgKi8KKyAgICAgIHN0YXRpYyBlbGVt ZW50X3R5cGUqCisgICAgICB0b19hZGRyZXNzKHBvaW50ZXIgX19wKSBub2V4 Y2VwdAorICAgICAgeyByZXR1cm4gX190b19hZGRyZXNzKF9fcC5vcGVyYXRv ci0+KCkpOyB9CisKICAgICAgIHN0YXRpY19hc3NlcnQoIWlzX3NhbWU8ZWxl bWVudF90eXBlLCBfX3VuZGVmaW5lZD46OnZhbHVlLAogCSAgInBvaW50ZXIg dHlwZSBkZWZpbmVzIGVsZW1lbnRfdHlwZSBvciBpcyBsaWtlIFNvbWVQb2lu dGVyPFQsIEFyZ3M+Iik7CiAgICAgfTsKQEAgLTE0MCw2ICsxNTYsMTQgQEAg X0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICAgIHN0YXRp YyBwb2ludGVyCiAgICAgICBwb2ludGVyX3RvKF9fbWFrZV9ub3Rfdm9pZDxl bGVtZW50X3R5cGU+JiBfX3IpIG5vZXhjZXB0CiAgICAgICB7IHJldHVybiBz dGQ6OmFkZHJlc3NvZihfX3IpOyB9CisKKyAgICAgIC8qKgorICAgICAgICog IEBicmllZiAgT2J0YWluIGFkZHJlc3MgcmVmZXJlbmNlZCBieSBhIHBvaW50 ZXIgdG8gYW4gb2JqZWN0CisgICAgICAgKiAgQHBhcmFtICBfX3AgIEEgcG9p bnRlciB0byBhbiBvYmplY3QKKyAgICAgICAqICBAcmV0dXJuIEBjIF9fcAor ICAgICAgKi8KKyAgICAgIHN0YXRpYyBlbGVtZW50X3R5cGUqCisgICAgICB0 b19hZGRyZXNzKHBvaW50ZXIgX19wKSBub2V4Y2VwdCB7IHJldHVybiBfX3A7 IH0KICAgICB9OwogCiAgIC8vLyBDb252ZW5pZW5jZSBhbGlhcyBmb3IgcmVi aW5kaW5nIHBvaW50ZXJzLgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvZXh0L3BvaW50ZXIuaCBiL2xpYnN0ZGMrKy12My9pbmNsdWRlL2V4 dC9wb2ludGVyLmgKaW5kZXggODQzMmRhMC4uZDdhYjRlMiAxMDA2NDQKLS0t IGEvbGlic3RkYysrLXYzL2luY2x1ZGUvZXh0L3BvaW50ZXIuaAorKysgYi9s aWJzdGRjKystdjMvaW5jbHVkZS9leHQvcG9pbnRlci5oCkBAIC01ODQsNiAr NTg0LDkgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAog ICAgICAgc3RhdGljIHBvaW50ZXIgcG9pbnRlcl90byh0eXBlbmFtZSBwb2lu dGVyOjpyZWZlcmVuY2UgX19yKSBub2V4Y2VwdAogICAgICAgeyByZXR1cm4g cG9pbnRlcihzdGQ6OmFkZHJlc3NvZihfX3IpKTsgfQorCisgICAgICBzdGF0 aWMgZWxlbWVudF90eXBlKiB0b19hZGRyZXNzKHBvaW50ZXIgX19wKSBub2V4 Y2VwdAorICAgICAgeyByZXR1cm4gX19wLm9wZXJhdG9yLT4oKTsgfQogICAg IH07CiAKIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgpkaWZmIC0t Z2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL3BvaW50ZXJf dHJhaXRzL3JlcXVpcmVtZW50cy9leHBsaWNpdF9pbnN0YW50aWF0aW9uLmNj IGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL3BvaW50ZXJfdHJh aXRzL3JlcXVpcmVtZW50cy9leHBsaWNpdF9pbnN0YW50aWF0aW9uLmNjCmlu ZGV4IGY1NGY3OTMuLmEzYWI1MmQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12 My90ZXN0c3VpdGUvMjBfdXRpbC9wb2ludGVyX3RyYWl0cy9yZXF1aXJlbWVu dHMvZXhwbGljaXRfaW5zdGFudGlhdGlvbi5jYworKysgYi9saWJzdGRjKyst djMvdGVzdHN1aXRlLzIwX3V0aWwvcG9pbnRlcl90cmFpdHMvcmVxdWlyZW1l bnRzL2V4cGxpY2l0X2luc3RhbnRpYXRpb24uY2MKQEAgLTI4LDEyICsyOCwx NCBAQCBzdHJ1Y3QgUDEKICAgdXNpbmcgZGlmZmVyZW5jZV90eXBlID0gbG9u ZzsKICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdXNpbmcgcmViaW5kID0gUDE8 VT47CiAgIHN0YXRpYyBQMSBwb2ludGVyX3RvKFQmKSB7IHJldHVybiB7fTsg fQorICBUKiBvcGVyYXRvci0+KCkgY29uc3Qgbm9leGNlcHQgeyByZXR1cm4g e307IH0KIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgUDIK IHsKICAgc3RhdGljIFAyIHBvaW50ZXJfdG8oVCYpIHsgcmV0dXJuIHt9OyB9 CisgIFQqIG9wZXJhdG9yLT4oKSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiB7 fTsgfQogfTsKIAogbmFtZXNwYWNlIHN0ZApkaWZmIC0tZ2l0IGEvbGlic3Rk YysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL3BvaW50ZXJfdHJhaXRzL3RvX2Fk ZHJlc3MuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwvcG9p bnRlcl90cmFpdHMvdG9fYWRkcmVzcy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zYzhjZmJkCi0tLSAvZGV2L251bGwKKysrIGIv bGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL3BvaW50ZXJfdHJhaXRz L3RvX2FkZHJlc3MuY2MKQEAgLTAsMCArMSw2OSBAQAorLy8geyBkZy1kbyBy dW4geyB0YXJnZXQgYysrMTEgfSB9CisKKy8vIENvcHlyaWdodCAoQykgMjAx MS0yMDE3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLy8KKy8v IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgSVNPIEMrKyBMaWJyYXJ5 LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKKy8vIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZQor Ly8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUKKy8vIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQorLy8g YW55IGxhdGVyIHZlcnNpb24uCisKKy8vIFRoaXMgbGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor Ly8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKy8vIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy8v IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisKKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisvLyB3aXRoIHRo aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNl ZQorLy8gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisKKyNp bmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dGVzdHN1aXRlX2hvb2tzLmg+ CisKK3N0cnVjdCBQMQoreworICB0eXBlZGVmIGludCBlbGVtZW50X3R5cGU7 CisgIGludCogdmFsdWU7CisgIGV4cGxpY2l0IFAxKGludCogcHRyKSBub2V4 Y2VwdCA6IHZhbHVlKHB0cikgeyB9CisgIGludCogb3BlcmF0b3ItPigpIGNv bnN0IG5vZXhjZXB0IHsgcmV0dXJuIHZhbHVlOyB9Cit9OworCitzdHJ1Y3Qg UDIKK3sKKyAgdHlwZWRlZiBQMTo6ZWxlbWVudF90eXBlIGVsZW1lbnRfdHlw ZTsKKyAgUDEgdmFsdWU7CisgIGV4cGxpY2l0IFAyKFAxIHB0cikgbm9leGNl cHQgOiB2YWx1ZShwdHIpIHsgfQorICBQMSBvcGVyYXRvci0+KCkgY29uc3Qg bm9leGNlcHQgeyByZXR1cm4gdmFsdWU7IH0KK307CisKK3ZvaWQgdGVzdDAx KCkKK3sKKyAgaW50IGkgPSAwOworICBQMSBwMSggJmkgKTsKKyAgVkVSSUZZ KCBzdGQ6OnBvaW50ZXJfdHJhaXRzPFAxPjo6dG9fYWRkcmVzcyhwMSkgPT0g JmkgKTsKK30KKwordm9pZCB0ZXN0MDIoKQoreworICBpbnQgaSA9IDA7Cisg IFAxIHAxKCAmaSApOworICBQMiBwMiggcDEgKTsKKyAgVkVSSUZZKCBzdGQ6 OnBvaW50ZXJfdHJhaXRzPFAyPjo6dG9fYWRkcmVzcyhwMikgPT0gJmkgKTsK K30KKwordm9pZCB0ZXN0MDMoKQoreworICBpbnQgaSA9IDA7CisgIFZFUklG WSggc3RkOjpwb2ludGVyX3RyYWl0czxpbnQqPjo6dG9fYWRkcmVzcygmaSkg PT0gJmkgKTsKKyAgVkVSSUZZKCBzdGQ6OnBvaW50ZXJfdHJhaXRzPGNvbnN0 IGludCo+Ojp0b19hZGRyZXNzKCZpKSA9PSAmaSApOworICBWRVJJRlkoIHN0 ZDo6cG9pbnRlcl90cmFpdHM8dm9pZCo+Ojp0b19hZGRyZXNzKCZpKSA9PSAm aSApOworfQorCitpbnQgbWFpbigpCit7CisgIHRlc3QwMSgpOworICB0ZXN0 MDIoKTsKKyAgdGVzdDAzKCk7CisgIHJldHVybiAwOworfQo= --001a113d3a8888a26a0554765368--