From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by sourceware.org (Postfix) with ESMTPS id 9CF803858D20; Tue, 15 Feb 2022 09:05:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9CF803858D20 Received: by mail-wm1-x32d.google.com with SMTP id k127-20020a1ca185000000b0037bc4be8713so970227wme.3; Tue, 15 Feb 2022 01:05:50 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:cc:from:subject; bh=OM1pwMaZ7Z6sP1KL7JxOeZpc2m0Aw4SrnlfVxbJog0k=; b=ziu8SVCmYyZOsUajkvBmpbRcltTTNfa3LnPKhx+q8nPUrR9dM9FbViS0DOLiKjyME4 bZcrjR8N0VLXzCGqPJDqZMXgJ+BKD6hLkbTzoMH40Pb8ROTdHCOFi18PIOppMvGDY7RM HhZmfdd8f0lH+lBUXkJcO97Xl9ITKfW4buKsTbjVBtiuswVBU8eIn2/YVqq10ogOlGYb U4nWf7JV3WxA2Op4QPF9aXI30LO4pQ/H8O4t9+O31eSRdVz9zKZ+LhsmxEMeazBO+Nsf i3smiR5pn2F9ybd0ilzmvxhKx5d684YoyDKdpEboqq/cn0vIcL54rm5G1BXpp9aWyCbo UOlA== X-Gm-Message-State: AOAM533PUJ8nBX3JGyRkvfbyUO8He2ZfD8nXkemzAoFM5P4114D5ODOp HSWDr6opWjL2lMZ3Dbi3iAEfDWTeMMo= X-Google-Smtp-Source: ABdhPJwQRitA0yAz8Sjp7Zo3HeSisMPPYQpyJSs5hEDVBQ9+CQHv1LYEp1JHVKDWpAWR2wHsPfm7Hg== X-Received: by 2002:a7b:c8d4:0:b0:37c:32be:55b4 with SMTP id f20-20020a7bc8d4000000b0037c32be55b4mr2208032wml.53.1644915949243; Tue, 15 Feb 2022 01:05:49 -0800 (PST) Received: from ?IPV6:2a01:e0a:1dc:b1c0:15ac:685:187a:ad9b? ([2a01:e0a:1dc:b1c0:15ac:685:187a:ad9b]) by smtp.googlemail.com with ESMTPSA id h21sm6191168wmq.26.2022.02.15.01.05.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 15 Feb 2022 01:05:48 -0800 (PST) Content-Type: multipart/mixed; boundary="------------t0fbJcKPFK9r6g7h8Mta9fLH" Message-ID: <2fe3937d-1b9a-a547-bb41-225d3d5426a2@gmail.com> Date: Tue, 15 Feb 2022 10:05:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Content-Language: en-US To: "libstdc++@gcc.gnu.org" Cc: gcc-patches From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= Subject: [PATCH][_Hashtable] Fix insertion of range of type convertible to value_type PR 56112 X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, URIBL_SBL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Feb 2022 09:05:52 -0000 This is a multi-part message in MIME format. --------------t0fbJcKPFK9r6g7h8Mta9fLH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit We have a regression regarding management of types convertible to value_type. It is an occurrence of PR 56112 but for the insert method.     libstdc++: [_Hashtable] Insert range of types convertible to value_type PR 56112     Fix insertion of range of types convertible to value_type.     libstdc++-v3/ChangeLog:             PR libstdc++/56112             * include/bits/hashtable.h             (_Hashtable<>::_M_insert_unique_aux): New.             (_Hashtable<>::_S_to_value): New.             (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.             * testsuite/23_containers/unordered_map/cons/56112.cc: Use dg-do compile.             * testsuite/23_containers/unordered_set/cons/56112.cc: New test. Tested under Linux x86_64. Ok to commit ? François --------------t0fbJcKPFK9r6g7h8Mta9fLH Content-Type: text/x-patch; charset=UTF-8; name="pr56112.patch" Content-Disposition: attachment; filename="pr56112.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvaGFzaHRhYmxlLmggYi9s aWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2hhc2h0YWJsZS5oCmluZGV4IDVlMWE0MTdmN2Nk Li41YTUwMmMwMmZlMCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9o YXNodGFibGUuaAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2hhc2h0YWJsZS5o CkBAIC04OTgsMTQgKzg5OCw1MSBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lP TgogCiAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfQXJnLCB0eXBlbmFtZSBfTm9kZUdlbmVy YXRvcj4KIAlzdGQ6OnBhaXI8aXRlcmF0b3IsIGJvb2w+Ci0JX01faW5zZXJ0KF9BcmcmJiBf X2FyZywgY29uc3QgX05vZGVHZW5lcmF0b3ImIF9fbm9kZV9nZW4sCi0JCSAgdHJ1ZV90eXBl IC8qIF9fdWtzICovKQorCV9NX2luc2VydF91bmlxdWVfYXV4KF9BcmcmJiBfX2FyZywgY29u c3QgX05vZGVHZW5lcmF0b3ImIF9fbm9kZV9nZW4pCiAJewogCSAgcmV0dXJuIF9NX2luc2Vy dF91bmlxdWUoCiAJICAgIF9TX2ZvcndhcmRfa2V5KF9FeHRyYWN0S2V5e30oc3RkOjpmb3J3 YXJkPF9Bcmc+KF9fYXJnKSkpLAogCSAgICBzdGQ6OmZvcndhcmQ8X0FyZz4oX19hcmcpLCBf X25vZGVfZ2VuKTsKIAl9CiAKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9LdD4KKwlzdGF0 aWMgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19zYW1lPF9FeHRyYWN0S2V5LAor CQkJCQkJICAgIF9fZGV0YWlsOjpfSWRlbnRpdHk+Ojp2YWx1ZSwKKwkJCQkgICAgICAgX0t0 JiY+Ojp0eXBlCisJX1NfdG9fdmFsdWUoX0t0JiYgX194KSBub2V4Y2VwdAorCXsgcmV0dXJu IHN0ZDo6Zm9yd2FyZDxfS3Q+KF9feCk7IH0KKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg X0t0LCB0eXBlbmFtZSBfVmFsPgorCXN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxz dGQ6OmlzX3NhbWU8X0V4dHJhY3RLZXksCisJCQkJCQkgICBfX2RldGFpbDo6X1NlbGVjdDFz dD46OnZhbHVlLAorCQkJCSAgICAgICBjb25zdCBzdGQ6OnBhaXI8X0t0LCBfVmFsPiY+Ojp0 eXBlCisJX1NfdG9fdmFsdWUoY29uc3Qgc3RkOjpwYWlyPF9LdCwgX1ZhbD4mIF9feCkgbm9l eGNlcHQKKwl7IHJldHVybiBfX3g7IH0KKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgX0t0 LCB0eXBlbmFtZSBfVmFsPgorCXN0YXRpYyB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxzdGQ6 OmlzX3NhbWU8X0V4dHJhY3RLZXksCisJCQkJCQkgICBfX2RldGFpbDo6X1NlbGVjdDFzdD46 OnZhbHVlLAorCQkJCSAgICAgICBzdGQ6OnBhaXI8X0t0LCBfVmFsPiYmPjo6dHlwZQorCV9T X3RvX3ZhbHVlKHN0ZDo6cGFpcjxfS3QsIF9WYWw+JiYgX194KSBub2V4Y2VwdAorCXsgcmV0 dXJuIHN0ZDo6bW92ZShfX3gpOyB9CisKKyAgICAgIHN0YXRpYyB2YWx1ZV90eXBlJiYKKyAg ICAgIF9TX3RvX3ZhbHVlKHZhbHVlX3R5cGUmJiBfX3gpIG5vZXhjZXB0CisgICAgICB7IHJl dHVybiBzdGQ6Om1vdmUoX194KTsgfQorCisgICAgICBzdGF0aWMgY29uc3QgdmFsdWVfdHlw ZSYKKyAgICAgIF9TX3RvX3ZhbHVlKGNvbnN0IHZhbHVlX3R5cGUmIF9feCkgbm9leGNlcHQK KyAgICAgIHsgcmV0dXJuIF9feDsgfQorCisgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBfQXJn LCB0eXBlbmFtZSBfTm9kZUdlbmVyYXRvcj4KKwlzdGQ6OnBhaXI8aXRlcmF0b3IsIGJvb2w+ CisJX01faW5zZXJ0KF9BcmcmJiBfX2FyZywgY29uc3QgX05vZGVHZW5lcmF0b3ImIF9fbm9k ZV9nZW4sCisJCSAgdHJ1ZV90eXBlIC8qIF9fdWtzICovKQorCXsKKwkgIHJldHVybiBfTV9p bnNlcnRfdW5pcXVlX2F1eCgKKwkgICAgX1NfdG9fdmFsdWUoc3RkOjpmb3J3YXJkPF9Bcmc+ KF9fYXJnKSksIF9fbm9kZV9nZW4pOworCX0KKwogICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg X0FyZywgdHlwZW5hbWUgX05vZGVHZW5lcmF0b3I+CiAJaXRlcmF0b3IKIAlfTV9pbnNlcnQo X0FyZyYmIF9fYXJnLCBjb25zdCBfTm9kZUdlbmVyYXRvciYgX19ub2RlX2dlbiwKZGlmZiAt LWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjNfY29udGFpbmVycy91bm9yZGVyZWRf bWFwL2NvbnMvNTYxMTIuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIzX2NvbnRhaW5l cnMvdW5vcmRlcmVkX21hcC9jb25zLzU2MTEyLmNjCmluZGV4IGM0Y2RlZWUyMzRjLi44ZWMw ZDg5YWY2OSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yM19jb250YWlu ZXJzL3Vub3JkZXJlZF9tYXAvY29ucy81NjExMi5jYworKysgYi9saWJzdGRjKystdjMvdGVz dHN1aXRlLzIzX2NvbnRhaW5lcnMvdW5vcmRlcmVkX21hcC9jb25zLzU2MTEyLmNjCkBAIC0x LDQgKzEsNCBAQAotLy8geyBkZy1kbyBydW4geyB0YXJnZXQgYysrMTEgfSB9CisvLyB7IGRn LWRvIGNvbXBpbGUgeyB0YXJnZXQgYysrMTEgfSB9CiAKIC8vIENvcHlyaWdodCAoQykgMjAx My0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogLy8KQEAgLTI1LDIwICsy NSwyMyBAQCBzdHJ1Y3QgS2V5CiAgIGV4cGxpY2l0IEtleShjb25zdCBpbnQqIHApIDogdmFs dWUocCkgeyB9CiAgIH5LZXkoKSB7IHZhbHVlID0gbnVsbHB0cjsgfQogCi0gIGJvb2wgb3Bl cmF0b3I9PShjb25zdCBLZXkmIGspIGNvbnN0IHsgcmV0dXJuICp2YWx1ZSA9PSAqay52YWx1 ZTsgfQorICBib29sIG9wZXJhdG9yPT0oY29uc3QgS2V5JiBrKSBjb25zdAorICB7IHJldHVy biAqdmFsdWUgPT0gKmsudmFsdWU7IH0KIAogICBjb25zdCBpbnQqIHZhbHVlOwogfTsKIAog c3RydWN0IGhhc2gKIHsKLSAgc3RkOjpzaXplX3Qgb3BlcmF0b3IoKShjb25zdCBLZXkmIGsp IGNvbnN0IG5vZXhjZXB0IHsgcmV0dXJuICprLnZhbHVlOyB9CisgIHN0ZDo6c2l6ZV90IG9w ZXJhdG9yKCkoY29uc3QgS2V5JiBrKSBjb25zdCBub2V4Y2VwdAorICB7IHJldHVybiAqay52 YWx1ZTsgfQogfTsKIAogc3RydWN0IFMKIHsKICAgaW50IHZhbHVlOwotICBvcGVyYXRvciBz dGQ6OnBhaXI8Y29uc3QgS2V5LCBpbnQ+KCkgY29uc3QgeyByZXR1cm4ge0tleSgmdmFsdWUp LCB2YWx1ZX07IH0KKyAgb3BlcmF0b3Igc3RkOjpwYWlyPGNvbnN0IEtleSwgaW50PigpIGNv bnN0CisgIHsgcmV0dXJuIHtLZXkoJnZhbHVlKSwgdmFsdWV9OyB9CiB9OwogCiBpbnQgbWFp bigpCkBAIC00Niw0ICs0OSw3IEBAIGludCBtYWluKCkKICAgICBTIHNbMV0gPSB7IHsyfSB9 OwogICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxLZXksIGludCwgaGFzaD4gbShzLCBzKzEpOwog ICAgIHN0ZDo6dW5vcmRlcmVkX211bHRpbWFwPEtleSwgaW50LCBoYXNoPiBtbShzLCBzKzEp OworCisgICAgbS5pbnNlcnQocywgcyArIDEpOworICAgIG1tLmluc2VydChzLCBzICsgMSk7 CiB9CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIzX2NvbnRhaW5lcnMv dW5vcmRlcmVkX3NldC9jb25zLzU2MTEyLmNjIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8y M19jb250YWluZXJzL3Vub3JkZXJlZF9zZXQvY29ucy81NjExMi5jYwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWEzNGVkNGM2MDMKLS0tIC9kZXYvbnVsbAor KysgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIzX2NvbnRhaW5lcnMvdW5vcmRlcmVkX3Nl dC9jb25zLzU2MTEyLmNjCkBAIC0wLDAgKzEsNTUgQEAKKy8vIHsgZGctZG8gY29tcGlsZSB7 IHRhcmdldCBjKysxMSB9IH0KKworLy8gQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorLy8KKy8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBH TlUgSVNPIEMrKyBMaWJyYXJ5LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKKy8vIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZQor Ly8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUKKy8vIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g Mywgb3IgKGF0IHlvdXIgb3B0aW9uKQorLy8gYW55IGxhdGVyIHZlcnNpb24uCisKKy8vIFRo aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKy8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy8vIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisv LyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNl ZQorLy8gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisjaW5jbHVkZSA8dW5v cmRlcmVkX21hcD4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCitzdHJ1Y3QgS2V5Cit7CisgIGV4 cGxpY2l0IEtleShjb25zdCBpbnQqIHApIDogdmFsdWUocCkgeyB9CisgIH5LZXkoKSB7IHZh bHVlID0gbnVsbHB0cjsgfQorCisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBLZXkmIGspIGNv bnN0CisgIHsgcmV0dXJuICp2YWx1ZSA9PSAqay52YWx1ZTsgfQorCisgIGNvbnN0IGludCog dmFsdWU7Cit9OworCitzdHJ1Y3QgaGFzaAoreworICBzdGQ6OnNpemVfdCBvcGVyYXRvcigp KGNvbnN0IEtleSYgaykgY29uc3Qgbm9leGNlcHQKKyAgeyByZXR1cm4gKmsudmFsdWU7IH0K K307CisKK3N0cnVjdCBTCit7CisgIGludCB2YWx1ZTsKKyAgb3BlcmF0b3IgS2V5KCkgY29u c3QKKyAgeyByZXR1cm4gS2V5KCZ2YWx1ZSk7IH0KK307CisKK2ludCBtYWluKCkKK3sKKyAg ICBTIHNbMV0gPSB7IHsyfSB9OworICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxLZXksIGhhc2g+ IG0ocywgcysxKTsKKyAgICBzdGQ6OnVub3JkZXJlZF9tdWx0aXNldDxLZXksIGhhc2g+IG1t KHMsIHMrMSk7CisKKyAgICBtLmluc2VydChzLCBzICsgMSk7CisgICAgbW0uaW5zZXJ0KHMs IHMgKyAxKTsKK30K --------------t0fbJcKPFK9r6g7h8Mta9fLH--