From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by sourceware.org (Postfix) with ESMTPS id 230063858C01 for ; Wed, 23 Aug 2023 13:02:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 230063858C01 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-lf1-x143.google.com with SMTP id 2adb3069b0e04-500760b296aso4498703e87.0 for ; Wed, 23 Aug 2023 06:02:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692795771; x=1693400571; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=av1nyJgRbOCFRozhg22LNNo0RjVexC3qXiuMHuii7hY=; b=PH9M5nUDaaj1+/EJW0LvvoCAcKbAGguh8HxJtJlkRMs7CV4F/B3NoEfdDDj00bfhPc iv2sUNciw9p9rLV1T4lPvr08bxxlNkSjNz6VeVONfbCyHMs/8j2npv3AAlE6Hf57cAkj uSUbVG8wT+k0S6v9wKegDMDJtKlTAKaBg0XD7o4j3/gHQ2sQ70kDwJxWeK2PhABtxjN0 i7bobaEaigdwKEwLGT5c79GpP8Zkjpr/WvtR88xn9mC23Gc9w1GzYHYBm/wRb663pDLn jZ7aPlGeYQf1HIOcq2iZZnyhuLswIDXWGcrKIAneVhu8IdMF793EBZkaP+9rVzsk5+Fm GUAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692795771; x=1693400571; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=av1nyJgRbOCFRozhg22LNNo0RjVexC3qXiuMHuii7hY=; b=OcQE2sBSLxP82n5l4tpCzMAsbgG+VodWFOOnIFsjuWa+nZB9gw2T1HmBViFQV/GAOc 4tIHPs7QPGtlSbK8zFyTHtxgiikdWXXtp9rUKcDB678MQSf4/JKtFgsSsGg/U1wpKPPc sjmhXWaIwCjmiGFcbL0/tt+xRqDelQdSEwmMWkbGV4kxc8oSSojcamonjNvXyFKr03/h 9hvk720fIpeOBkoZFKdo0ZFetUH/UVwNYtPB2vpcPglQ/e15zyBVXx2aOoMYNe+2uY6S zBtk2LgohNIJ946TFCSYV5vwudGWSzay6Brs/r7UULkTTuGaEEhN5lO5RqXNDNu2NNVN cNbw== X-Gm-Message-State: AOJu0YyoqIomAHDzxCN7Eajw3M5vtHeItUX7KbDcNqArrX/xfS/OWvAH N62aHRLPG5HiWwk7A8z6YpMBsKC1VOCrz0s5plxk4Pu/gMLqkKgILo8= X-Google-Smtp-Source: AGHT+IEGUfGlCR/NlU+9AQFvP6Iv8R1fp//C7MtJIXyzG6/lhicxvjcBLAU8/YIzpOhwYlR6mqKqG5vedK3foHqeSPo= X-Received: by 2002:a05:6512:239f:b0:4fe:2815:8ba7 with SMTP id c31-20020a056512239f00b004fe28158ba7mr4792551lfv.25.1692795771218; Wed, 23 Aug 2023 06:02:51 -0700 (PDT) MIME-Version: 1.0 From: Javier Martinez Date: Wed, 23 Aug 2023 15:02:40 +0200 Message-ID: Subject: [PATCH v5] c++: extend cold, hot attributes to classes To: gcc-patches@gcc.gnu.org Cc: jason@redhat.com Content-Type: multipart/mixed; boundary="0000000000009f3d14060396ba7c" X-Spam-Status: No, score=-9.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,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: --0000000000009f3d14060396ba7c Content-Type: multipart/alternative; boundary="0000000000009f3d12060396ba7a" --0000000000009f3d12060396ba7a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Aug 22, 2023 at 7:50=E2=80=AFPM Jason Merrill wr= ote: > You still need an update to doc/extend.texi for this additional use of > the attribute. Sorry I didn't think of that before. I should have caught that too, many thanks. Also addressed the formatting comments. Patch attached. Signed-off-by: Javier Martinez --0000000000009f3d12060396ba7a-- --0000000000009f3d14060396ba7c Content-Type: text/x-patch; charset="US-ASCII"; name="0001-extend-cold-hot-attributes-to-classes.patch" Content-Disposition: attachment; filename="0001-extend-cold-hot-attributes-to-classes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_llnqvd9k0 U2lnbmVkLW9mZi1ieTogSmF2aWVyIE1hcnRpbmV6IDxqYXZpZXIubWFydGlu ZXouYnVnemlsbGFAZ21haWwuY29tPgoKZ2NjL2MtZmFtaWx5L0NoYW5nZUxv ZzoKCiAgICAgICAgKiBjLWF0dHJpYnMuY2MgKGhhbmRsZV9ob3RfYXR0cmli dXRlKTogcmVtb3ZlIHdhcm5pbmcgb24KICAgICAgICBSRUNPUkRfVFlQRSBh bmQgVU5JT05fVFlQRSB3aGVuIGluIGNfZGlhbGVjdF94eC4KICAgICAgICAo aGFuZGxlX2NvbGRfYXR0cmlidXRlKTogTGlrZXdpc2UuCgpnY2MvY3AvQ2hh bmdlTG9nOgoKICAgICAgICAqIGNsYXNzLmNjIChwcm9wYWdhdGVfY2xhc3Nf d2FybXRoX2F0dHJpYnV0ZSk6IE5ldyBmdW5jdGlvbi4KICAgICAgICAoY2hl Y2tfYmFzZXNfYW5kX21lbWJlcnMpOiBwcm9wYWdhdGUgaG90IGFuZCBjb2xk IGF0dHJpYnV0ZXMKICAgICAgICB0byBhbGwgRlVOQ1RJT05fREVDTCB3aGVu IHRoZSByZWNvcmQgaXMgbWFya2VkIGhvdCBvciBjb2xkLgogICAgICAgICog Y3AtdHJlZS5oIChtYXliZV9wcm9wYWdhdGVfd2FybXRoX2F0dHJpYnV0ZXMp OiBOZXcgZnVuY3Rpb24uCiAgICAgICAgKiBkZWNsMi5jYyAobWF5YmVfcHJv cGFnYXRlX3dhcm10aF9hdHRyaWJ1dGVzKTogTmV3IGZ1bmN0aW9uLgogICAg ICAgICogbWV0aG9kLmNjIChsYXppbHlfZGVjbGFyZV9mbik6IHByb3BhZ2F0 ZSBob3QgYW5kIGNvbGQKICAgICAgICBhdHRyaWJ1dGVzIHRvIGxhemlseSBk ZWNsYXJlZCBmdW5jdGlvbnMgd2hlbiB0aGUgcmVjb3JkIGlzCiAgICAgICAg bWFya2VkIGhvdCBvciBjb2xkLgoKZ2NjL0NoYW5nZUxvZzoKCiAgICAgICAg KiBkb2MvZXh0ZW5kLnRleGk6IERvY3VtZW50IGF0dHJpYnV0ZXMgaG90LCBj b2xkIG9uIEMrKyB0eXBlcy4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoK ICAgICAgICAqIGcrKy5kZy9leHQvYXR0ci1ob3RuZXNzLkM6IE5ldyB0ZXN0 LgoKLS0tCiBnY2MvYy1mYW1pbHkvYy1hdHRyaWJzLmNjICAgICAgICAgICAg ICAgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKystCiBnY2MvY3AvY2xh c3MuY2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOSArKysrKysrKysr KysrKwogZ2NjL2NwL2NwLXRyZWUuaCAgICAgICAgICAgICAgICAgICAgICAg IHwgIDEgKwogZ2NjL2NwL2RlY2wyLmNjICAgICAgICAgICAgICAgICAgICAg ICAgIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKwogZ2NjL2NwL21ldGhv ZC5jYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrCiBnY2MvZG9j L2V4dGVuZC50ZXhpICAgICAgICAgICAgICAgICAgICAgfCAzNyArKysrKysr KysrKysrKysrKy0KIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9hdHRyLWhv dG5lc3MuQyB8IDE2ICsrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDE3OSBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9hdHRyLWhvdG5lc3MuQwoK ZGlmZiAtLWdpdCBhL2djYy9jLWZhbWlseS9jLWF0dHJpYnMuY2MgYi9nY2Mv Yy1mYW1pbHkvYy1hdHRyaWJzLmNjCmluZGV4IGUyNzkyY2E2ODk4Li41ZDgz ZjU0NTYxZCAxMDA2NDQKLS0tIGEvZ2NjL2MtZmFtaWx5L2MtYXR0cmlicy5j YworKysgYi9nY2MvYy1mYW1pbHkvYy1hdHRyaWJzLmNjCkBAIC00NTIsMTAg KzQ1MiwxMCBAQCBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX3NwZWMgY19jb21t b25fYXR0cmlidXRlX3RhYmxlW10gPQogICB7ICJhbGxvY19zaXplIiwJICAg ICAgMSwgMiwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLAogCQkJICAgICAg aGFuZGxlX2FsbG9jX3NpemVfYXR0cmlidXRlLAogCSAgICAgICAgICAgICAg ICAgICAgICBhdHRyX2FsbG9jX2V4Y2x1c2lvbnMgfSwKLSAgeyAiY29sZCIs ICAgICAgICAgICAgICAgICAgIDAsIDAsIHRydWUsICBmYWxzZSwgZmFsc2Us IGZhbHNlLAorICB7ICJjb2xkIiwJCSAgICAgIDAsIDAsIGZhbHNlLCAgZmFs c2UsIGZhbHNlLCBmYWxzZSwKIAkJCSAgICAgIGhhbmRsZV9jb2xkX2F0dHJp YnV0ZSwKIAkgICAgICAgICAgICAgICAgICAgICAgYXR0cl9jb2xkX2hvdF9l eGNsdXNpb25zIH0sCi0gIHsgImhvdCIsICAgICAgICAgICAgICAgICAgICAw LCAwLCB0cnVlLCAgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgeyAiaG90IiwJ CSAgICAgIDAsIDAsIGZhbHNlLCAgZmFsc2UsIGZhbHNlLCBmYWxzZSwKIAkJ CSAgICAgIGhhbmRsZV9ob3RfYXR0cmlidXRlLAogCSAgICAgICAgICAgICAg ICAgICAgICBhdHRyX2NvbGRfaG90X2V4Y2x1c2lvbnMgfSwKICAgeyAibm9f YWRkcmVzc19zYWZldHlfYW5hbHlzaXMiLApAQCAtMTExMCw2ICsxMTEwLDI5 IEBAIGhhbmRsZV9ob3RfYXR0cmlidXRlICh0cmVlICpub2RlLCB0cmVlIG5h bWUsIHRyZWUgQVJHX1VOVVNFRCAoYXJncyksCiAgICAgewogICAgICAgLyog QXR0cmlidXRlIGhvdCBwcm9jZXNzaW5nIGlzIGRvbmUgbGF0ZXIgd2l0aCBs b29rdXBfYXR0cmlidXRlLiAgKi8KICAgICB9CisgIGVsc2UgaWYgKChUUkVF X0NPREUgKCpub2RlKSA9PSBSRUNPUkRfVFlQRQorCSAgICB8fCBUUkVFX0NP REUgKCpub2RlKSA9PSBVTklPTl9UWVBFKQorCSAgICYmIGNfZGlhbGVjdF9j eHggKCkKKwkgICAmJiAoZmxhZ3MgJiAoaW50KSBBVFRSX0ZMQUdfVFlQRV9J Tl9QTEFDRSkpCisgICAgeworICAgICAgLyogQ2hlY2sgY29uZmxpY3QgaGVy ZSBhcyBkZWNsX2F0dHJpYnV0ZXMgd2lsbCBvdGhlcndpc2Ugb25seSBjYXRj aAorCSBpdCBsYXRlIGF0IHRoZSBmdW5jdGlvbiB3aGVuIHRoZSBhdHRyaWJ1 dGUgaXMgdXNlZCBvbiBhIGNsYXNzLiAgKi8KKyAgICAgIHRyZWUgY29sZF9h dHRyID0gbG9va3VwX2F0dHJpYnV0ZSAoImNvbGQiLCBUWVBFX0FUVFJJQlVU RVMgKCpub2RlKSk7CisgICAgICBpZiAoY29sZF9hdHRyKQorCXsKKwkgIHdh cm5pbmcgKE9QVF9XYXR0cmlidXRlcywgImlnbm9yaW5nIGF0dHJpYnV0ZSAl cUUgYmVjYXVzZSBpdCAiCisJCSAgICJjb25mbGljdHMgd2l0aCBhdHRyaWJ1 dGUgJXFzIiwgbmFtZSwgImNvbGQiKTsKKwkgICpub19hZGRfYXR0cnMgPSB0 cnVlOworCX0KKyAgICB9CisgIGVsc2UgaWYgKGZsYWdzICYgKChpbnQpIEFU VFJfRkxBR19GVU5DVElPTl9ORVhUCisJCSAgICB8IChpbnQpIEFUVFJfRkxB R19ERUNMX05FWFQpKQorICAgIHsKKwkvKiBBdm9pZCBhcHBseWluZyB0aGUg YXR0cmlidXRlIHRvIGEgZnVuY3Rpb24gcmV0dXJuIHR5cGUgd2hlbgorCSAg IHVzZWQgYXM6ICB2b2lkIF9fYXR0cmlidXRlICgoaG90KSkgZm9vICh2b2lk KS4gIEl0IHdpbGwgYmUKKwkgICBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uLiAg Ki8KKwkqbm9fYWRkX2F0dHJzID0gdHJ1ZTsKKyAgICB9CiAgIGVsc2UKICAg ICB7CiAgICAgICB3YXJuaW5nIChPUFRfV2F0dHJpYnV0ZXMsICIlcUUgYXR0 cmlidXRlIGlnbm9yZWQiLCBuYW1lKTsKQEAgLTExMzEsNiArMTE1NCwyOSBA QCBoYW5kbGVfY29sZF9hdHRyaWJ1dGUgKHRyZWUgKm5vZGUsIHRyZWUgbmFt ZSwgdHJlZSBBUkdfVU5VU0VEIChhcmdzKSwKICAgICB7CiAgICAgICAvKiBB dHRyaWJ1dGUgY29sZCBwcm9jZXNzaW5nIGlzIGRvbmUgbGF0ZXIgd2l0aCBs b29rdXBfYXR0cmlidXRlLiAgKi8KICAgICB9CisgIGVsc2UgaWYgKChUUkVF X0NPREUgKCpub2RlKSA9PSBSRUNPUkRfVFlQRQorCSAgICB8fCBUUkVFX0NP REUgKCpub2RlKSA9PSBVTklPTl9UWVBFKQorCSAgICYmIGNfZGlhbGVjdF9j eHggKCkKKwkgICAmJiAoZmxhZ3MgJiAoaW50KSBBVFRSX0ZMQUdfVFlQRV9J Tl9QTEFDRSkpCisgICAgeworICAgICAgLyogQ2hlY2sgY29uZmxpY3QgaGVy ZSBhcyBkZWNsX2F0dHJpYnV0ZXMgd2lsbCBvdGhlcndpc2Ugb25seSBjYXRj aAorCSBpdCBsYXRlIGF0IHRoZSBmdW5jdGlvbiB3aGVuIHRoZSBhdHRyaWJ1 dGUgaXMgdXNlZCBvbiBhIGNsYXNzLiAgKi8KKyAgICAgIHRyZWUgaG90X2F0 dHIgPSBsb29rdXBfYXR0cmlidXRlICgiaG90IiwgVFlQRV9BVFRSSUJVVEVT ICgqbm9kZSkpOworICAgICAgaWYgKGhvdF9hdHRyKQorCXsKKwkgIHdhcm5p bmcgKE9QVF9XYXR0cmlidXRlcywgImlnbm9yaW5nIGF0dHJpYnV0ZSAlcUUg YmVjYXVzZSBpdCAiCisJCSAgICJjb25mbGljdHMgd2l0aCBhdHRyaWJ1dGUg JXFzIiwgbmFtZSwgImhvdCIpOworCSAgKm5vX2FkZF9hdHRycyA9IHRydWU7 CisJfQorICAgIH0KKyAgZWxzZSBpZiAoZmxhZ3MgJiAoKGludCkgQVRUUl9G TEFHX0ZVTkNUSU9OX05FWFQKKwkJICAgIHwgKGludCkgQVRUUl9GTEFHX0RF Q0xfTkVYVCkpCisgICAgeworCS8qIEF2b2lkIGFwcGx5aW5nIHRoZSBhdHRy aWJ1dGUgdG8gYSBmdW5jdGlvbiByZXR1cm4gdHlwZSB3aGVuCisJICAgdXNl ZCBhczogIHZvaWQgX19hdHRyaWJ1dGUgKChjb2xkKSkgZm9vICh2b2lkKS4g IEl0IHdpbGwgYmUKKwkgICBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uLiAgKi8K Kwkqbm9fYWRkX2F0dHJzID0gdHJ1ZTsKKyAgICB9CiAgIGVsc2UKICAgICB7 CiAgICAgICB3YXJuaW5nIChPUFRfV2F0dHJpYnV0ZXMsICIlcUUgYXR0cmli dXRlIGlnbm9yZWQiLCBuYW1lKTsKZGlmZiAtLWdpdCBhL2djYy9jcC9jbGFz cy5jYyBiL2djYy9jcC9jbGFzcy5jYwppbmRleCA3Nzg3NTkyMzdkYy4uMGJi Njc5ZjE1YmUgMTAwNjQ0Ci0tLSBhL2djYy9jcC9jbGFzcy5jYworKysgYi9n Y2MvY3AvY2xhc3MuY2MKQEAgLTIwNSw2ICsyMDUsNyBAQCBzdGF0aWMgdHJl ZSBnZXRfdmNhbGxfaW5kZXggKHRyZWUsIHRyZWUpOwogc3RhdGljIGJvb2wg dHlwZV9tYXliZV9jb25zdGV4cHJfZGVmYXVsdF9jb25zdHJ1Y3RvciAodHJl ZSk7CiBzdGF0aWMgYm9vbCB0eXBlX21heWJlX2NvbnN0ZXhwcl9kZXN0cnVj dG9yICh0cmVlKTsKIHN0YXRpYyBib29sIGZpZWxkX3BvdmVybGFwcGluZ19w ICh0cmVlKTsKK3N0YXRpYyB2b2lkIHByb3BhZ2F0ZV9jbGFzc193YXJtdGhf YXR0cmlidXRlICh0cmVlKTsKIAogLyogU2V0IENVUlJFTlRfQUNDRVNTX1NQ RUNJRklFUiBiYXNlZCBvbiB0aGUgcHJvdGVjdGlvbiBvZiBERUNMLiAgKi8K IApAQCAtNjI1Myw2ICs2MjU0LDEyIEBAIGNoZWNrX2Jhc2VzX2FuZF9tZW1i ZXJzICh0cmVlIHQpCiAgICAgIGFsbG9jYXRpbmcgYW4gYXJyYXkgb2YgdGhp cyB0eXBlLiAgKi8KICAgTEFOR19UWVBFX0NMQVNTX0NIRUNLICh0KS0+dmVj X25ld191c2VzX2Nvb2tpZQogICAgID0gdHlwZV9yZXF1aXJlc19hcnJheV9j b29raWUgKHQpOworCisgIC8qIENsYXNzZXMgbWFya2VkIGhvdCBvciBjb2xk IHByb3BhZ2F0ZSB0aGUgYXR0cmlidXRlIHRvIGFsbCBtZW1iZXJzLiAgV2UK KyAgICAgbWF5IGRvIHRoaXMgbm93IHRoYXQgbWV0aG9kcyBhcmUgZGVjbGFy ZWQuICBUaGlzIGRvZXMgbWlzcyBzb21lIGxhemlseQorICAgICBkZWNsYXJl ZCBzcGVjaWFsIG1lbWJlciBmdW5jdGlvbnMgKENMQVNTVFlQRV9MQVpZXyop LCB3aGljaCBhcmUgaGFuZGxlZAorICAgICBpbiBsYXppbHlfZGVjbGFyZV9m biBsYXRlciBvbi4gICovCisgIHByb3BhZ2F0ZV9jbGFzc193YXJtdGhfYXR0 cmlidXRlICh0KTsKIH0KIAogLyogSWYgVCBuZWVkcyBhIHBvaW50ZXIgdG8g aXRzIHZpcnR1YWwgZnVuY3Rpb24gdGFibGUsIHNldCBUWVBFX1ZGSUVMRApA QCAtNzczMyw2ICs3NzQwLDI4IEBAIHVucmV2ZXJzZV9tZW1iZXJfZGVjbGFy YXRpb25zICh0cmVlIHQpCiAgICAgfQogfQogCisvKiBDbGFzc2VzLCBzdHJ1 Y3RzIG9yIHVuaW9ucyBUIG1hcmtlZCB3aXRoIGhvdG5lc3MgYXR0cmlidXRl cyBwcm9wYWdhdGUKKyAgIHRoZSBhdHRyaWJ1dGUgdG8gYWxsIG1ldGhvZHMu ICAqLworCit2b2lkCitwcm9wYWdhdGVfY2xhc3Nfd2FybXRoX2F0dHJpYnV0 ZSAodHJlZSB0KQoreworICBpZiAodCA9PSBOVUxMX1RSRUUKKyAgICAgIHx8 ICEoVFJFRV9DT0RFICh0KSA9PSBSRUNPUkRfVFlQRQorCSAgIHx8IFRSRUVf Q09ERSAodCkgPT0gVU5JT05fVFlQRSkpCisgICAgcmV0dXJuOworCisgIHRy ZWUgY2xhc3NfaGFzX2NvbGRfYXR0cgorICAgID0gbG9va3VwX2F0dHJpYnV0 ZSAoImNvbGQiLCBUWVBFX0FUVFJJQlVURVMgKHQpKTsKKyAgdHJlZSBjbGFz c19oYXNfaG90X2F0dHIKKyAgICA9IGxvb2t1cF9hdHRyaWJ1dGUgKCJob3Qi LCBUWVBFX0FUVFJJQlVURVMgKHQpKTsKKworICBpZiAoY2xhc3NfaGFzX2Nv bGRfYXR0ciB8fCBjbGFzc19oYXNfaG90X2F0dHIpCisgICAgZm9yICh0cmVl IGYgPSBUWVBFX0ZJRUxEUyAodCk7IGY7IGYgPSBERUNMX0NIQUlOIChmKSkK KyAgICAgIGlmIChUUkVFX0NPREUgKGYpID09IEZVTkNUSU9OX0RFQ0wpCisJ bWF5YmVfcHJvcGFnYXRlX3dhcm10aF9hdHRyaWJ1dGVzIChmLCB0KTsKK30K KwogdHJlZQogZmluaXNoX3N0cnVjdCAodHJlZSB0LCB0cmVlIGF0dHJpYnV0 ZXMpCiB7CmRpZmYgLS1naXQgYS9nY2MvY3AvY3AtdHJlZS5oIGIvZ2NjL2Nw L2NwLXRyZWUuaAppbmRleCBkMDUxZWU4NWY3MC4uNDkzMWE0NTYwN2UgMTAw NjQ0Ci0tLSBhL2djYy9jcC9jcC10cmVlLmgKKysrIGIvZ2NjL2NwL2NwLXRy ZWUuaApAQCAtNzAzMyw2ICs3MDMzLDcgQEAgZXh0ZXJuIGludCBwYXJtX2lu ZGV4ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyZWUpOwogZXh0ZXJu IHRyZWUgdnR2X3N0YXJ0X3ZlcmlmaWNhdGlvbl9jb25zdHJ1Y3Rvcl9pbml0 X2Z1bmN0aW9uICh2b2lkKTsKIGV4dGVybiB0cmVlIHZ0dl9maW5pc2hfdmVy aWZpY2F0aW9uX2NvbnN0cnVjdG9yX2luaXRfZnVuY3Rpb24gKHRyZWUpOwog ZXh0ZXJuIHZvaWQgY3BfY2hlY2tfY29uc3RfYXR0cmlidXRlcyAodHJlZSk7 CitleHRlcm4gdm9pZCBtYXliZV9wcm9wYWdhdGVfd2FybXRoX2F0dHJpYnV0 ZXMgKHRyZWUsIHRyZWUpOwogCiAvKiBpbiBlcnJvci5jYyAqLwogZXh0ZXJu IGNvbnN0IGNoYXIgKnR5cGVfYXNfc3RyaW5nCQkodHJlZSwgaW50KTsKZGlm ZiAtLWdpdCBhL2djYy9jcC9kZWNsMi5jYyBiL2djYy9jcC9kZWNsMi5jYwpp bmRleCBiNDAyYmVmYmE2ZC4uNWRhZTZmM2JiYzAgMTAwNjQ0Ci0tLSBhL2dj Yy9jcC9kZWNsMi5jYworKysgYi9nY2MvY3AvZGVjbDIuY2MKQEAgLTE2MDQs NiArMTYwNCw1MCBAQCBjcF9jaGVja19jb25zdF9hdHRyaWJ1dGVzICh0cmVl IGF0dHJpYnV0ZXMpCiAgICAgfQogfQogCisvKiBDb3BpZXMgaG90IG9yIGNv bGQgYXR0cmlidXRlcyB0byBhIGZ1bmN0aW9uIEZOIGlmIHByZXNlbnQgb24g dGhlCisgICBlbmNhcHN1bGF0aW5nIGNsYXNzLCBzdHJ1Y3QsIG9yIHVuaW9u IFRZUEUuICAqLworCit2b2lkCittYXliZV9wcm9wYWdhdGVfd2FybXRoX2F0 dHJpYnV0ZXMgKHRyZWUgZm4sIHRyZWUgdHlwZSkKK3sKKyAgaWYgKGZuID09 IE5VTExfVFJFRSB8fCB0eXBlID09IE5VTExfVFJFRQorICAgICAgfHwgIShU UkVFX0NPREUgKHR5cGUpID09IFJFQ09SRF9UWVBFCisJICAgfHwgVFJFRV9D T0RFICh0eXBlKSA9PSBVTklPTl9UWVBFKSkKKyAgICByZXR1cm47CisKKyAg dHJlZSBoYXNfY29sZF9hdHRyID0gbG9va3VwX2F0dHJpYnV0ZSAoImNvbGQi LCBUWVBFX0FUVFJJQlVURVMgKHR5cGUpKTsKKyAgdHJlZSBoYXNfaG90X2F0 dHIgPSBsb29rdXBfYXR0cmlidXRlICgiaG90IiwgVFlQRV9BVFRSSUJVVEVT ICh0eXBlKSk7CisKKyAgaWYgKGhhc19jb2xkX2F0dHIgfHwgaGFzX2hvdF9h dHRyKQorICAgIHsKKyAgICAgIC8qIFRyYW5zcGFyZW50bHkgaWdub3JlIHRo ZSBuZXcgd2FybXRoIGF0dHJpYnV0ZSBpZiBpdAorCSBjb25mbGljdHMgd2l0 aCBhIHByZXNlbnQgZnVuY3Rpb24gYXR0cmlidXRlLiAgT3RoZXJ3aXNlCisJ IGRlY2xfYXR0cmlidXRlIHdvdWxkIHN0aWxsIGhvbm91ciB0aGUgcHJlc2Vu dCBhdHRyaWJ1dGUsCisJIGJ1dCBwcm9kdWNpbmcgYW4gdW5kZXNpcmVkIHdh cm5pbmcgaW4gdGhlIHByb2Nlc3MuICAqLworCisgICAgICBpZiAoaGFzX2Nv bGRfYXR0cikKKwl7CisJICBpZiAobG9va3VwX2F0dHJpYnV0ZSAoImhvdCIs IERFQ0xfQVRUUklCVVRFUyAoZm4pKSA9PSBOVUxMKQorCSAgICB7CisJICAg ICAgdHJlZSBjb2xkX2NvbnMKKwkJPSB0cmVlX2NvbnMgKGdldF9pZGVudGlm aWVyICgiY29sZCIpLCBOVUxMLCBOVUxMKTsKKworCSAgICAgIGRlY2xfYXR0 cmlidXRlcyAoJmZuLCBjb2xkX2NvbnMsIDApOworCSAgICB9CisJfQorICAg ICAgZWxzZSBpZiAoaGFzX2hvdF9hdHRyKQorCXsKKwkgIGlmIChsb29rdXBf YXR0cmlidXRlICgiY29sZCIsIERFQ0xfQVRUUklCVVRFUyAoZm4pKSA9PSBO VUxMKQorCSAgICB7CisJICAgICAgdHJlZSBob3RfY29ucworCQk9IHRyZWVf Y29ucyAoZ2V0X2lkZW50aWZpZXIgKCJob3QiKSwgTlVMTCwgTlVMTCk7CisK KwkgICAgICBkZWNsX2F0dHJpYnV0ZXMgKCZmbiwgaG90X2NvbnMsIDApOwor CSAgICB9CisJfQorICAgIH0KK30KKwogLyogUmV0dXJuIHRoZSBsYXN0IHB1 c2hlZCBkZWNsYXJhdGlvbiBmb3IgdGhlIHN5bWJvbCBERUNMIG9yIE5VTEwK ICAgIHdoZW4gbm8gc3VjaCBkZWNsYXJhdGlvbiBleGlzdHMuICAqLwogCmRp ZmYgLS1naXQgYS9nY2MvY3AvbWV0aG9kLmNjIGIvZ2NjL2NwL21ldGhvZC5j YwppbmRleCA0YmEwMDE3NTA0OC4uYTcwZGQ1ZDZhZGMgMTAwNjQ0Ci0tLSBh L2djYy9jcC9tZXRob2QuY2MKKysrIGIvZ2NjL2NwL21ldGhvZC5jYwpAQCAt MzU5Miw2ICszNTkyLDEyIEBAIGxhemlseV9kZWNsYXJlX2ZuIChzcGVjaWFs X2Z1bmN0aW9uX2tpbmQgc2ZrLCB0cmVlIHR5cGUpCiAgICAgLyogQ3JlYXRl IGFwcHJvcHJpYXRlIGNsb25lcy4gICovCiAgICAgY2xvbmVfY2R0b3IgKGZu LCAvKnVwZGF0ZV9tZXRob2RzPSovdHJ1ZSk7CiAKKyAgLyogQ2xhc3Nlcywg c3RydWN0cyBvciB1bmlvbnMgVFlQRSBtYXJrZWQgd2l0aCBob3RuZXNzIGF0 dHJpYnV0ZXMgcHJvcGFnYXRlCisgICAgIHRoZSBhdHRyaWJ1dGUgdG8gYWxs IG1ldGhvZHMuICBUaGlzIGlzIHR5cGljYWxseSBkb25lIGluCisgICAgIGNo ZWNrX2Jhc2VzX2FuZF9tZW1iZXJzLCBidXQgd2UgbXVzdCBhbHNvIGluamVj dCB0aGVtIGhlcmUgZm9yIGRlZmVycmVkCisgICAgIGxhemlseS1kZWNsYXJl ZCBmdW5jdGlvbnMuICAqLworICBtYXliZV9wcm9wYWdhdGVfd2FybXRoX2F0 dHJpYnV0ZXMgKGZuLCB0eXBlKTsKKwogICByZXR1cm4gZm47CiB9CiAKZGlm ZiAtLWdpdCBhL2djYy9kb2MvZXh0ZW5kLnRleGkgYi9nY2MvZG9jL2V4dGVu ZC50ZXhpCmluZGV4IDg5YzViNGVhMmIyLi5jZTNjMDRlMGZhYyAxMDA2NDQK LS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQorKysgYi9nY2MvZG9jL2V4dGVu ZC50ZXhpCkBAIC0yODY3LDcgKzI4NjcsMTAgQEAgaW1wcm92aW5nIGNvZGUg bG9jYWxpdHkgb2Ygbm9uLWNvbGQgcGFydHMgb2YgcHJvZ3JhbS4gIFRoZSBw YXRocyBsZWFkaW5nCiB0byBjYWxscyBvZiBjb2xkIGZ1bmN0aW9ucyB3aXRo aW4gY29kZSBhcmUgbWFya2VkIGFzIHVubGlrZWx5IGJ5IHRoZSBicmFuY2gK IHByZWRpY3Rpb24gbWVjaGFuaXNtLiAgSXQgaXMgdGh1cyB1c2VmdWwgdG8g bWFyayBmdW5jdGlvbnMgdXNlZCB0byBoYW5kbGUKIHVubGlrZWx5IGNvbmRp dGlvbnMsIHN1Y2ggYXMgQGNvZGV7cGVycm9yfSwgYXMgY29sZCB0byBpbXBy b3ZlIG9wdGltaXphdGlvbgotb2YgaG90IGZ1bmN0aW9ucyB0aGF0IGRvIGNh bGwgbWFya2VkIGZ1bmN0aW9ucyBpbiByYXJlIG9jY2FzaW9ucy4KK29mIGhv dCBmdW5jdGlvbnMgdGhhdCBkbyBjYWxsIG1hcmtlZCBmdW5jdGlvbnMgaW4g cmFyZSBvY2Nhc2lvbnMuICBJbiBDKyssCit0aGUgQGNvZGV7Y29sZH0gYXR0 cmlidXRlIGNhbiBiZSBhcHBsaWVkIHRvIHR5cGVzIHdpdGggdGhlIGVmZmVj dCBvZiBiZWluZworcHJvcGFnYXRlZCB0byBtZW1iZXIgZnVuY3Rpb25zLiAg U2VlCitAcmVme0MrKyBBdHRyaWJ1dGVzfS4KIAogV2hlbiBwcm9maWxlIGZl ZWRiYWNrIGlzIGF2YWlsYWJsZSwgdmlhIEBvcHRpb257LWZwcm9maWxlLXVz ZX0sIGNvbGQgZnVuY3Rpb25zCiBhcmUgYXV0b21hdGljYWxseSBkZXRlY3Rl ZCBhbmQgdGhpcyBhdHRyaWJ1dGUgaXMgaWdub3JlZC4KQEAgLTMyODYsNyAr MzI4OSw5IEBAIFRoZSBAY29kZXtob3R9IGF0dHJpYnV0ZSBvbiBhIGZ1bmN0 aW9uIGlzIHVzZWQgdG8gaW5mb3JtIHRoZSBjb21waWxlciB0aGF0CiB0aGUg ZnVuY3Rpb24gaXMgYSBob3Qgc3BvdCBvZiB0aGUgY29tcGlsZWQgcHJvZ3Jh bS4gIFRoZSBmdW5jdGlvbiBpcwogb3B0aW1pemVkIG1vcmUgYWdncmVzc2l2 ZWx5IGFuZCBvbiBtYW55IHRhcmdldHMgaXQgaXMgcGxhY2VkIGludG8gYSBz cGVjaWFsCiBzdWJzZWN0aW9uIG9mIHRoZSB0ZXh0IHNlY3Rpb24gc28gYWxs IGhvdCBmdW5jdGlvbnMgYXBwZWFyIGNsb3NlIHRvZ2V0aGVyLAotaW1wcm92 aW5nIGxvY2FsaXR5LgoraW1wcm92aW5nIGxvY2FsaXR5LiAgSW4gQysrLCB0 aGUgQGNvZGV7aG90fSBhdHRyaWJ1dGUgY2FuIGJlIGFwcGxpZWQgdG8gdHlw ZXMKK3dpdGggdGhlIGVmZmVjdCBvZiBiZWluZyBwcm9wYWdhdGVkIHRvIG1l bWJlciBmdW5jdGlvbnMuICBTZWUKK0ByZWZ7QysrIEF0dHJpYnV0ZXN9Lgog CiBXaGVuIHByb2ZpbGUgZmVlZGJhY2sgaXMgYXZhaWxhYmxlLCB2aWEgQG9w dGlvbnstZnByb2ZpbGUtdXNlfSwgaG90IGZ1bmN0aW9ucwogYXJlIGF1dG9t YXRpY2FsbHkgZGV0ZWN0ZWQgYW5kIHRoaXMgYXR0cmlidXRlIGlzIGlnbm9y ZWQuCkBAIC0yNTUzNyw2ICsyNTU0MiwzNCBAQCBjb250cm9sIGEgcmVzb3Vy Y2UsIHN1Y2ggYXMgQGNvZGV7c3RkOjpsb2NrX2d1YXJkfS4KIFRoaXMgYXR0 cmlidXRlIGlzIGFsc28gYWNjZXB0ZWQgaW4gQywgYnV0IGl0IGlzIHVubmVj ZXNzYXJ5IGJlY2F1c2UgQwogZG9lcyBub3QgaGF2ZSBjb25zdHJ1Y3RvcnMg b3IgZGVzdHJ1Y3RvcnMuCiAKK0BjaW5kZXggQGNvZGV7Y29sZH0gdHlwZSBh dHRyaWJ1dGUKK0BpdGVtIGNvbGQKKworSW4gYWRkaXRpb24gdG8gZnVuY3Rp b25zIGFuZCBsYWJlbHMsIEdOVSBDKysgYWxsb3dzIHRoZSBAY29kZXtjb2xk fQorYXR0cmlidXRlIHRvIGJlIHVzZWQgb24gQysrIGNsYXNzZXMsIHN0cnVj dHMsIG9yIHVuaW9ucy4gIEFwcGx5aW5nCit0aGUgQGNvZGV7Y29sZH0gYXR0 cmlidXRlIG9uIGEgdHlwZSBoYXMgdGhlIGVmZmVjdCBvZiB0cmVhdGluZyBl dmVyeQorbWVtYmVyIGZ1bmN0aW9uIG9mIHRoZSB0eXBlLCBpbmNsdWRpbmcg aW1wbGljaXQgc3BlY2lhbCBtZW1iZXIKK2Z1bmN0aW9ucywgYXMgY29sZC4g IElmIGEgbWVtYmVyIGZ1bmN0aW9uIGlzIG1hcmtlZCB3aXRoIHRoZQorQGNv ZGV7aG90fSBmdW5jdGlvbiBhdHRyaWJ1dGUsIHRoZSBAY29kZXtob3R9IGF0 dHJpYnV0ZSB0YWtlcworcHJlY2VkZW5jZSBhbmQgdGhlIEBjb2Rle2NvbGR9 IGF0dHJpYnV0ZSBpcyBub3QgcHJvcGFnYXRlZC4KKworRm9yIHRoZSBlZmZl Y3RzIG9mIHRoZSBAY29kZXtjb2xkfSBhdHRyaWJ1dGUgb24gZnVuY3Rpb25z LCBzZWUKK0ByZWZ7Q29tbW9uIEZ1bmN0aW9uIEF0dHJpYnV0ZXN9LgorCitA Y2luZGV4IEBjb2Rle2hvdH0gdHlwZSBhdHRyaWJ1dGUKK0BpdGVtIGhvdAor CitJbiBhZGRpdGlvbiB0byBmdW5jdGlvbnMgYW5kIGxhYmVscywgR05VIEMr KyBhbGxvd3MgdGhlIEBjb2Rle2hvdH0KK2F0dHJpYnV0ZSB0byBiZSB1c2Vk IG9uIEMrKyBjbGFzc2VzLCBzdHJ1Y3RzLCBvciB1bmlvbnMuICBBcHBseWlu ZwordGhlIEBjb2Rle2hvdH0gYXR0cmlidXRlIG9uIGEgdHlwZSBoYXMgdGhl IGVmZmVjdCBvZiB0cmVhdGluZyBldmVyeQorbWVtYmVyIGZ1bmN0aW9uIG9m IHRoZSB0eXBlLCBpbmNsdWRpbmcgaW1wbGljaXQgc3BlY2lhbCBtZW1iZXIK K2Z1bmN0aW9ucywgYXMgaG90LiAgSWYgYSBtZW1iZXIgZnVuY3Rpb24gaXMg bWFya2VkIHdpdGggdGhlCitAY29kZXtjb2xkfSBmdW5jdGlvbiBhdHRyaWJ1 dGUsIHRoZSBAY29kZXtjb2xkfSBhdHRyaWJ1dGUgdGFrZXMKK3ByZWNlZGVu Y2UgYW5kIHRoZSBAY29kZXtob3R9IGF0dHJpYnV0ZSBpcyBub3QgcHJvcGFn YXRlZC4KKworRm9yIHRoZSBlZmZlY3RzIG9mIHRoZSBAY29kZXtob3R9IGF0 dHJpYnV0ZSBvbiBmdW5jdGlvbnMsIHNlZQorQHJlZntDb21tb24gRnVuY3Rp b24gQXR0cmlidXRlc30uCisKIEBlbmQgdGFibGUKIAogQG5vZGUgRnVuY3Rp b24gTXVsdGl2ZXJzaW9uaW5nCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2crKy5kZy9leHQvYXR0ci1ob3RuZXNzLkMgYi9nY2MvdGVzdHN1aXRlL2cr Ky5kZy9leHQvYXR0ci1ob3RuZXNzLkMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmY5YTY5MzAzMDRkCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2F0dHItaG90bmVzcy5D CkBAIC0wLDAgKzEsMTYgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisv KiB7IGRnLW9wdGlvbnMgIi1PMCAtV2F0dHJpYnV0ZXMgLWZkdW1wLXRyZWUt Z2ltcGxlIiB9ICovCisKKworc3RydWN0IF9fYXR0cmlidXRlKChjb2xkKSkg QSB7IF9fYXR0cmlidXRlKChub2lubGluZSwgdXNlZCkpIHZvaWQgZm9vKHZv aWQpIHsgfSB9OworCitzdHJ1Y3QgX19hdHRyaWJ1dGUoKGhvdCkpIEIgeyBf X2F0dHJpYnV0ZSgobm9pbmxpbmUsIHVzZWQpKSB2b2lkIGZvbyh2b2lkKSB7 IH0gfTsKKworc3RydWN0IF9fYXR0cmlidXRlKChob3QsIGNvbGQpKSBDIHsg X19hdHRyaWJ1dGUoKG5vaW5saW5lLCB1c2VkKSkgdm9pZCBmb28odm9pZCkg eyB9IH07IC8qIHsgZGctd2FybmluZyAiaWdub3JpbmcgYXR0cmlidXRlIC5j b2xkLiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIGF0dHJpYnV0ZSAuaG90 LiIgfSAqLworCitzdHJ1Y3QgX19hdHRyaWJ1dGUoKGNvbGQsIGhvdCkpIEQg eyBfX2F0dHJpYnV0ZSgobm9pbmxpbmUsIHVzZWQpKSB2b2lkIGZvbyh2b2lk KSB7IH0gfTsgLyogeyBkZy13YXJuaW5nICJpZ25vcmluZyBhdHRyaWJ1dGUg LmhvdC4gYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCBhdHRyaWJ1dGUgLmNv bGQuIiB9ICovCisKKworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1w LXRpbWVzICJjb2xkIiAyICJnaW1wbGUiIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJob3QiIDIgImdpbXBsZSIgfSB9 ICovCisKLS0gCjIuMzQuMQoK --0000000000009f3d14060396ba7c--