From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id BCCB13858C00; Thu, 23 Feb 2023 21:14:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BCCB13858C00 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x42f.google.com with SMTP id l1so11594077wry.10; Thu, 23 Feb 2023 13:14:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=mR4ACimufBx3NekLUblJq/C57F91ni2DUu350FLtasg=; b=mMcOxdrG7R1u/cmJJGeCAJjc+3GA3lecuezM8AjnuSFQNboaQQ4mKzLtjRY7+4QguU RaBDKSeQw81Bt+zT137zwucL71HYr5WZgqH2Qetsk+3b7gom8mkno7g5E5lnkBZ5qqZY aelECp1QhvC2EAqakBWOwY9/dDjs8PdSKl6bzo0pyiLtmSyuWpovAQZFF8souKbqf51r f0RfSKVsYwMEDPKBWsB/mUT4Z/n9mNIa/XFvL8d5hQBw13moeNfDm+1s/cwj5OQLLV9h 6BWRuzi1HxGVL0osV7eNGNGNMdmNU6EXBAsdK+L16XkDAgYCzKb8DS6LnecyImSdCLa3 j/5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=mR4ACimufBx3NekLUblJq/C57F91ni2DUu350FLtasg=; b=rz8ypjb3fSryoSL4Q/4eSP95T6r2jGtbkZSMRirCo9+LT/TUWU3k0K69Z7fUzaDeRP 1Aw3WOyaVIQyZ/aP+bGWPX44oVJV3w48Xm9MFoaCl0W30X8wRR3MC+VTf8G60OFEVyQo CbHscxP1Phs7Cs/R/SlPo64dgTWT9zcB3EIJGzKxgt+va2P2gzz72GVyOTmsP0p+RRTT amTBHYihuazaCaR17aknvURnVKKmP2FuGT8+JXzZiZSV9ceVwqvs6oW0SpNE0MPVZU+I Kq3LOvq1SYT29XKEHJbmKcFQ0xyr69ERXXDXP2+cpdEJggQmb3QoSldjTOk2HKRjF+Sc G1yQ== X-Gm-Message-State: AO0yUKXFBV4LxriHAcJ6JZCeZaxYxGy1E1Zi9vjo0rbDDrFhjCd4ab4B P0I7kc6Lj+OiaH3OToqzwgrjgNPiwtg= X-Google-Smtp-Source: AK7set8oSfR+tWS8iEwkunfXfODjjG7ZPfKELJbcGnu3/r4zv4sK0hd+769n6FPCieH7Ofis+nUtuQ== X-Received: by 2002:a5d:6d8c:0:b0:2c7:e48:8c87 with SMTP id l12-20020a5d6d8c000000b002c70e488c87mr5187220wrs.25.1677186890745; Thu, 23 Feb 2023 13:14:50 -0800 (PST) Received: from ?IPV6:2a01:e0a:1dc:b1c0:37a2:d8b0:66af:9996? ([2a01:e0a:1dc:b1c0:37a2:d8b0:66af:9996]) by smtp.googlemail.com with ESMTPSA id x13-20020a5d6b4d000000b002c6e8af1037sm14110541wrw.104.2023.02.23.13.14.48 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 23 Feb 2023 13:14:49 -0800 (PST) Content-Type: multipart/mixed; boundary="------------PKKJwdb9z0QtVgLRHfAq1aYd" Message-ID: <860b46c8-fc2a-3024-5fd2-5130ca8c27c8@gmail.com> Date: Thu, 23 Feb 2023 22:14:48 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Content-Language: fr To: "libstdc++@gcc.gnu.org" Cc: gcc-patches From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= Subject: [PATCH] Fix std::unordered_map key range insertion X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------PKKJwdb9z0QtVgLRHfAq1aYd Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Based on my work on PR 96088 for std::map I imagine this use case of inserting a range of keys into an associative container. It behaves as operator[] by inserting a default value for each key. I wonder if the Standard says that it should work. Or maybe we want to support it ? I haven't checked if it used to work before we introduced the _ConvertToValueType type. I have no old enough gcc to do so. It is not supported by std::map neither, even without _ConvertToValueType so I guess it was not working for std::unordered_map prior to it. If it can be considered as a bug I'll create a PR. François --------------PKKJwdb9z0QtVgLRHfAq1aYd Content-Type: text/x-patch; charset=UTF-8; name="umap.patch" Content-Disposition: attachment; filename="umap.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvaGFzaHRhYmxlX3BvbGlj eS5oIGIvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9oYXNodGFibGVfcG9saWN5LmgKaW5k ZXggY2NlNGUyODQ0Y2YuLjRhODlkMGVlMWM4IDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMv aW5jbHVkZS9iaXRzL2hhc2h0YWJsZV9wb2xpY3kuaAorKysgYi9saWJzdGRjKystdjMvaW5j bHVkZS9iaXRzL2hhc2h0YWJsZV9wb2xpY3kuaApAQCAtMTI1LDE1ICsxMjUsMTUgQEAgbmFt ZXNwYWNlIF9fZGV0YWlsCiAJeyByZXR1cm4gc3RkOjpmb3J3YXJkPF9LdD4oX19rKTsgfQog ICAgIH07CiAKLSAgdGVtcGxhdGU8dHlwZW5hbWUgX1ZhbHVlPgotICAgIHN0cnVjdCBfQ29u dmVydFRvVmFsdWVUeXBlPF9TZWxlY3Qxc3QsIF9WYWx1ZT4KKyAgdGVtcGxhdGU8dHlwZW5h bWUgX0tleSwgdHlwZW5hbWUgX1ZhbHVlPgorICAgIHN0cnVjdCBfQ29udmVydFRvVmFsdWVU eXBlPF9TZWxlY3Qxc3QsIHN0ZDo6cGFpcjxfS2V5LCBfVmFsdWU+PgogICAgIHsKLSAgICAg IGNvbnN0ZXhwciBfVmFsdWUmJgotICAgICAgb3BlcmF0b3IoKShfVmFsdWUmJiBfX3gpIGNv bnN0IG5vZXhjZXB0CisgICAgICBjb25zdGV4cHIgc3RkOjpwYWlyPF9LZXksIF9WYWx1ZT4m JgorICAgICAgb3BlcmF0b3IoKShzdGQ6OnBhaXI8X0tleSwgX1ZhbHVlPiYmIF9feCkgY29u c3Qgbm9leGNlcHQKICAgICAgIHsgcmV0dXJuIHN0ZDo6bW92ZShfX3gpOyB9CiAKLSAgICAg IGNvbnN0ZXhwciBjb25zdCBfVmFsdWUmCi0gICAgICBvcGVyYXRvcigpKGNvbnN0IF9WYWx1 ZSYgX194KSBjb25zdCBub2V4Y2VwdAorICAgICAgY29uc3RleHByIGNvbnN0IHN0ZDo6cGFp cjxfS2V5LCBfVmFsdWU+JgorICAgICAgb3BlcmF0b3IoKShjb25zdCBzdGQ6OnBhaXI8X0tl eSwgX1ZhbHVlPiYgX194KSBjb25zdCBub2V4Y2VwdAogICAgICAgeyByZXR1cm4gX194OyB9 CiAKICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9LdCwgdHlwZW5hbWUgX1ZhbD4KQEAgLTE0 NSw2ICsxNDUsMjYgQEAgbmFtZXNwYWNlIF9fZGV0YWlsCiAJY29uc3RleHByIGNvbnN0IHN0 ZDo6cGFpcjxfS3QsIF9WYWw+JgogCW9wZXJhdG9yKCkoY29uc3Qgc3RkOjpwYWlyPF9LdCwg X1ZhbD4mIF9feCkgY29uc3Qgbm9leGNlcHQKIAl7IHJldHVybiBfX3g7IH0KKworICAgICAg dGVtcGxhdGU8dHlwZW5hbWUgX0t0PgorCXVzaW5nIF9faXNfY29ucyA9IHN0ZDo6aXNfY29u c3RydWN0aWJsZTxfS2V5LCBfS3QmJj47CisKKyAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIF9L dD4KKwl1c2luZyBfSUZjb25zID0gc3RkOjplbmFibGVfaWY8X19pc19jb25zPF9LdD46OnZh bHVlPjsKKworICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgX0t0PgorCXVzaW5nIF9JRmNvbnNw ID0gdHlwZW5hbWUgX0lGY29uczxfS3Q+Ojp0eXBlOworCisgICAgICB0ZW1wbGF0ZTx0eXBl bmFtZSBfS3QsIHR5cGVuYW1lID0gX0lGY29uc3A8X0t0Pj4KKwlzdGQ6OnBhaXI8X0t0LCBf VmFsdWU+CisJb3BlcmF0b3IoKShfS3QmJiBfX2t0KSBjb25zdAorCXsKKwkgIHJldHVybiB7 CisJICAgIHN0ZDo6cGllY2V3aXNlX2NvbnN0cnVjdCwKKwkgICAgc3RkOjpmb3J3YXJkX2Fz X3R1cGxlKHN0ZDo6Zm9yd2FyZDxfS3Q+KF9fa3QpKSwKKwkgICAgc3RkOjp0dXBsZTw+KCkK KwkgIH07CisJfQogICAgIH07CiAKICAgdGVtcGxhdGU8dHlwZW5hbWUgX0V4S2V5PgpkaWZm IC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yM19jb250YWluZXJzL3Vub3JkZXJl ZF9tYXAvOTYwODguY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIzX2NvbnRhaW5lcnMv dW5vcmRlcmVkX21hcC85NjA4OC5jYwppbmRleCA3NTRiNTI5YzY3Yy4uYTNiZjZjZTUzMDcg MTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjNfY29udGFpbmVycy91bm9y ZGVyZWRfbWFwLzk2MDg4LmNjCisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjNfY29u dGFpbmVycy91bm9yZGVyZWRfbWFwLzk2MDg4LmNjCkBAIC0yNjQsNiArMjY0LDI4IEBAIHRl c3QwMygpCiAgIH0KIH0KIAordm9pZAordGVzdDA0KCkKK3sKKyAgY29uc3Qgc3RkOjppbml0 aWFsaXplcl9saXN0PGNvbnN0IGNoYXIqPiBzdHJsc3QgPQorICAgIHsgImxvbmdfc3RyX2Zv cl9keW5hbWljX2FsbG9jYXRpbmciIH07CisgIF9fZ251X3Rlc3Q6OmNvdW50ZXI6OnJlc2V0 KCk7CisgIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgaW50LAorCQkgICAgIGhh c2hfc3RyaW5nX3ZpZXdfZnVuY3RvciwKKwkJICAgICBzdGQ6OmVxdWFsX3RvPHN0ZDo6c3Ry aW5nX3ZpZXc+PiB1bTsKKyAgdW0uaW5zZXJ0KHN0cmxzdC5iZWdpbigpLCBzdHJsc3QuZW5k KCkpOworICBWRVJJRlkoIHVtLnNpemUoKSA9PSAxICk7CisKKyAgVkVSSUZZKCBfX2dudV90 ZXN0Ojpjb3VudGVyOjpjb3VudCgpID09IDMgKTsKKyAgVkVSSUZZKCBfX2dudV90ZXN0Ojpj b3VudGVyOjpnZXQoKS5fTV9pbmNyZW1lbnRzID09IDMgKTsKKworICB1bS5pbnNlcnQoc3Ry bHN0LmJlZ2luKCksIHN0cmxzdC5lbmQoKSk7CisgIFZFUklGWSggdW0uc2l6ZSgpID09IDEg KTsKKworICBWRVJJRlkoIF9fZ251X3Rlc3Q6OmNvdW50ZXI6OmNvdW50KCkgPT0gMyApOwor ICBWRVJJRlkoIF9fZ251X3Rlc3Q6OmNvdW50ZXI6OmdldCgpLl9NX2luY3JlbWVudHMgPT0g MyApOworfQorCiBpbnQKIG1haW4oKQogewpAQCAtMjc0LDUgKzI5Niw2IEBAIG1haW4oKQog ICB0ZXN0MjEoKTsKICAgdGVzdDIyKCk7CiAgIHRlc3QwMygpOworICB0ZXN0MDQoKTsKICAg cmV0dXJuIDA7CiB9Cg== --------------PKKJwdb9z0QtVgLRHfAq1aYd--