From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id C092E3852C4D for ; Wed, 23 Nov 2022 15:29:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C092E3852C4D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669217345; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=SOgIphZSOQAcx6KAMQsvcdTqi85LPZAt/biEO98+8eA=; b=b27WfcApUygVMQ+4jROF+jUb4HzdDqC8xSB4UtB+AV/p9DCfY2gIl3MnKWlFeCHxb873gW TkOeIvg4EqUN3lWbu9ZJ2X/u8DRe7B+Ocx8YQsj5TcsdXgG164XoL65i2o45wjxrwQL9jp K2EM6M9NFezlIBz3ASox2SsHYm7Yv44= Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-635-3wagIFaMMYCnle5WxI2Xlw-1; Wed, 23 Nov 2022 10:29:04 -0500 X-MC-Unique: 3wagIFaMMYCnle5WxI2Xlw-1 Received: by mail-qk1-f198.google.com with SMTP id u5-20020a05620a0c4500b006fb30780443so23137209qki.22 for ; Wed, 23 Nov 2022 07:29:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=TL74YEvSflxVMpeTGGmguvSGcQenftaj9KkDN/IbZKw=; b=5C0BDaN0qTRRgyrJbH0neXpucSzXE3am4OwAHzEBLohO25cpcy1eGlXrzt/CPtteRG G+pZAuyYdJqV1Ijc9vNB46S2R7lCtlo4fzHYZFqNQDfSn6J1aRsoMbYjC6uJNwolvZXU DfReb3jau37xg907pc7MB21RmkLY3ZHx/DNEMv5CgqihC9O94/u2LonEGR/CCFXrJqI3 8qznn9mYGOqFYsJzwGzUGAdAIBom8kjOipc7Y+Gkrc53Xk+BCD4CmqzCaGs75LcpzZVe 5K3lkDKn1AzLMz/P8T5zA32rS04e8CgNGCIPjmJnWcVw4Kk+pxVDUC6GZhRUlPK5C34M SKmA== X-Gm-Message-State: ANoB5pnWZHuWLBIOb3m+CkZUERa6jsLmRqZyVRS0f853yHB9nuBYvZIN MXgG+VNdbgxZnnU41npd55j5kdY96EcmWCWgovN1qEQuxqqLFccX4h45tW3Wh0grJceCRhfbFNQ fGQYAlT2H8zJJMGSUzA== X-Received: by 2002:a05:6214:2e12:b0:4c6:d6b2:736a with SMTP id mx18-20020a0562142e1200b004c6d6b2736amr1231570qvb.57.1669217341915; Wed, 23 Nov 2022 07:29:01 -0800 (PST) X-Google-Smtp-Source: AA0mqf7zK1P66QzDvL4Wuqva6eul+jhMBds22hldyWz2649B93SQITI18pjVsYQJImU1pOa+m70hsA== X-Received: by 2002:a05:6214:2e12:b0:4c6:d6b2:736a with SMTP id mx18-20020a0562142e1200b004c6d6b2736amr1231523qvb.57.1669217341230; Wed, 23 Nov 2022 07:29:01 -0800 (PST) Received: from [192.168.1.137] (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id f1-20020ac80681000000b0035cf31005e2sm9945534qth.73.2022.11.23.07.29.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 23 Nov 2022 07:29:00 -0800 (PST) Message-ID: <863d38ab-6458-90e1-8281-6b9c91cd470a@redhat.com> Date: Wed, 23 Nov 2022 10:28:59 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: [PATCH 2/5] c++: Set the locus of the function result decl From: Jason Merrill To: Bernhard Reutner-Fischer , gcc-patches@gcc.gnu.org Cc: Bernhard Reutner-Fischer References: <20221119095657.101929-1-aldot@gcc.gnu.org> <20221120170604.2534647-1-aldot@gcc.gnu.org> <3d2485a6-ca86-aece-6c28-f7cc8547e8d3@redhat.com> In-Reply-To: <3d2485a6-ca86-aece-6c28-f7cc8547e8d3@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------jq50w0X0ZaRO7lSAl1mnDLyH" Content-Language: en-US X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=unavailable 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. --------------jq50w0X0ZaRO7lSAl1mnDLyH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/22/22 15:25, Jason Merrill wrote: > On 11/20/22 12:06, Bernhard Reutner-Fischer wrote: >> Hi Jason! >> >> The "meh" of result-decl-plugin-test-2.C should likely be omitted, >> grokdeclarator would need some changes to add richloc hints and we >> would not >> be able to make a reliable guess what to remove precisely. >> C.f. /* Check all other uses of type modifiers.  */ >> Furthermore it is unrelated to DECL_RESULT so not of direct interest >> here. The other tests in test-2.C, f() and huh() should work though. >> >> I don't know if it's acceptable to change ipa-pure-const to make the >> missing noreturn warning more precise and emit a fixit-hint. At least it >> would be a real test for the DECL_RESULT and would spare us the plugin. > > The main problem I see with that change is that the syntax of the fixit > might be wrong for non-C-family front-ends. > > Here's a version of the patch that fixes template/method handling, and > adjusts -Waggregate-return as well: Actually, that broke some of the spaceship tests, fixed by this version: --------------jq50w0X0ZaRO7lSAl1mnDLyH Content-Type: text/x-patch; charset=UTF-8; name="0001-c-Set-the-locus-of-the-function-result-decl.patch" Content-Disposition: attachment; filename="0001-c-Set-the-locus-of-the-function-result-decl.patch" Content-Transfer-Encoding: base64 RnJvbSAzYzgxMDZjOTVlYzA3ZDE3ZmY1YWRlMTczMTI2MDY3YzU0MGFiN2NjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuaGFyZCBSZXV0bmVyLUZpc2NoZXIgPHJlcC5kb3Qubm9w QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyMCBOb3YgMjAyMiAxODowNjowNCArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIGMrKzogU2V0IHRoZSBsb2N1cyBvZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGRlY2wK VG86IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnCgpnY2MvY3AvQ2hhbmdlTG9nOgoKCSogZGVjbC5j YyAoZ3Jva2RlY2xhcmF0b3IpOiBCdWlsZCBSRVNVTFRfREVDTC4KCShzdGFydF9wcmVwYXJzZWRf ZnVuY3Rpb24pOiBDb3B5IGxvY2F0aW9uIGZyb20gdGVtcGxhdGUuCgkqIHNlbWFudGljcy5jYyAo YXBwbHlfZGVkdWNlZF9yZXR1cm5fdHlwZSk6IEhhbmRsZQoJYXJnICE9IGN1cnJlbnRfZnVuY3Rp b25fZGVjbC4KCSogbWV0aG9kLmNjIChpbXBsaWNpdGx5X2RlY2xhcmVfZm4pOiBVc2UgaXQuCgpn Y2MvQ2hhbmdlTG9nOgoKCSogZnVuY3Rpb24uY2MgKGluaXRfZnVuY3Rpb25fc3RhcnQpOiBVc2Ug REVDTF9SRVNVTFQgbG9jYXRpb24KCWZvciAtV2FnZ3JlZ2F0ZS1yZXR1cm4gd2FybmluZy4KCSog aXBhLXB1cmUtY29uc3QuY2MgKHN1Z2dlc3RfYXR0cmlidXRlKTogQWRkIGZpeGl0LWhpbnQgZm9y IHRoZQoJbm9yZXR1cm4gYXR0cmlidXRlLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBj LWMrKy1jb21tb24vcHI2ODgzMy0xLmM6IEFkanVzdCBub3JldHVybiB3YXJuaW5nIGxpbmUgbnVt YmVyLgoJKiBnY2MuZGcvbm9yZXR1cm4tMS5jOiBMaWtld2lzZS4KCSogZysrLmRnL2RpYWdub3N0 aWMvcmV0dXJuLXR5cGUtbG9jMS5DOiBOZXcgdGVzdC4KCSogZysrLmRnL290aGVyL3Jlc3VsdGRl Y2wtMS5DOiBOZXcgdGVzdC4KCkNvLWF1dGhvcmVkLWJ5OiBKYXNvbiBNZXJyaWxsIDxqYXNvbkBy ZWRoYXQuY29tPgotLS0KIGdjYy9jcC9kZWNsLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDI2ICsrKysrKysrKysrKystLQogZ2NjL2NwL21ldGhvZC5jYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIGdjYy9jcC9zZW1hbnRpY3MuY2MgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDE1ICsrKystLS0tLQogZ2NjL2Z1bmN0aW9uLmNjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIGdjYy9pcGEtcHVyZS1jb25zdC5jYyAgICAgICAg ICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKystCiBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1v bi9wcjY4ODMzLTEuYyAgICAgICAgfCAgMiArLQogLi4uL2crKy5kZy9kaWFnbm9zdGljL3JldHVy bi10eXBlLWxvYzEuQyAgICAgIHwgMjAgKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2crKy5k Zy9vdGhlci9yZXN1bHRkZWNsLTEuQyAgICAgfCAzMiArKysrKysrKysrKysrKysrKysrCiBnY2Mv dGVzdHN1aXRlL2djYy5kZy9ub3JldHVybi0xLmMgICAgICAgICAgICAgfCAgMiArLQogOSBmaWxl cyBjaGFuZ2VkLCAxMDEgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZGlhZ25vc3RpYy9yZXR1cm4tdHlwZS1sb2Mx LkMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9yZXN1bHRk ZWNsLTEuQwoKZGlmZiAtLWdpdCBhL2djYy9jcC9kZWNsLmNjIGIvZ2NjL2NwL2RlY2wuY2MKaW5k ZXggNTQ0ZWZkYzk5MTQuLjJjNWNkOTMwZTBhIDEwMDY0NAotLS0gYS9nY2MvY3AvZGVjbC5jYwor KysgYi9nY2MvY3AvZGVjbC5jYwpAQCAtMTQ3NzQsNiArMTQ3NzQsMTggQEAgZ3Jva2RlY2xhcmF0 b3IgKGNvbnN0IGNwX2RlY2xhcmF0b3IgKmRlY2xhcmF0b3IsCiAJZWxzZSBpZiAoY29uc3Rpbml0 X3ApCiAJICBERUNMX0RFQ0xBUkVEX0NPTlNUSU5JVF9QIChkZWNsKSA9IHRydWU7CiAgICAgICB9 CisgICAgZWxzZSBpZiAoVFJFRV9DT0RFIChkZWNsKSA9PSBGVU5DVElPTl9ERUNMKQorICAgICAg eworCWxvY2F0aW9uX3QgbG9jID0gc21hbGxlc3RfdHlwZV9sb2NhdGlvbiAoZGVjbHNwZWNzKTsK KwlpZiAobG9jICE9IFVOS05PV05fTE9DQVRJT04pCisJICB7CisJICAgIHRyZWUgcmVzdHlwZSA9 IFRSRUVfVFlQRSAoVFJFRV9UWVBFIChkZWNsKSk7CisJICAgIHRyZWUgcmVzZGVjbCA9IGJ1aWxk X2RlY2wgKGxvYywgUkVTVUxUX0RFQ0wsIDAsIHJlc3R5cGUpOworCSAgICBERUNMX0FSVElGSUNJ QUwgKHJlc2RlY2wpID0gMTsKKwkgICAgREVDTF9JR05PUkVEX1AgKHJlc2RlY2wpID0gMTsKKwkg ICAgREVDTF9SRVNVTFQgKGRlY2wpID0gcmVzZGVjbDsKKwkgIH0KKyAgICAgIH0KIAogICAgIC8q IFJlY29yZCBjb25zdGFuY3kgYW5kIHZvbGF0aWxpdHkgb24gdGhlIERFQ0wgaXRzZWxmIC4gIFRo ZXJlJ3MKICAgICAgICBubyBuZWVkIHRvIGRvIHRoaXMgd2hlbiBwcm9jZXNzaW5nIGEgdGVtcGxh dGU7IHdlJ2xsIGRvIHRoaXMKQEAgLTE3MzI4LDkgKzE3MzQwLDE5IEBAIHN0YXJ0X3ByZXBhcnNl ZF9mdW5jdGlvbiAodHJlZSBkZWNsMSwgdHJlZSBhdHRycywgaW50IGZsYWdzKQogCiAgIGlmIChE RUNMX1JFU1VMVCAoZGVjbDEpID09IE5VTExfVFJFRSkKICAgICB7Ci0gICAgICB0cmVlIHJlc2Rl Y2w7CisgICAgICAvKiBJbiBhIHRlbXBsYXRlIGluc3RhbnRpYXRpb24sIGNvcHkgdGhlIHJldHVy biB0eXBlIGxvY2F0aW9uLiAgV2hlbgorCSBwYXJzaW5nLCB0aGUgbG9jYXRpb24gd2lsbCBiZSBz ZXQgaW4gZ3Jva2RlY2xhcmF0b3IuICAqLworICAgICAgbG9jYXRpb25fdCBsb2MgPSBpbnB1dF9s b2NhdGlvbjsKKyAgICAgIGlmIChERUNMX1RFTVBMQVRFX0lOU1RBTlRJQVRJT04gKGRlY2wxKQor CSAgJiYgIURFQ0xfQ1hYX0NPTlNUUlVDVE9SX1AgKGRlY2wxKQorCSAgJiYgIURFQ0xfQ1hYX0RF U1RSVUNUT1JfUCAoZGVjbDEpKQorCXsKKwkgIHRyZWUgdG1wbCA9IHRlbXBsYXRlX2Zvcl9zdWJz dGl0dXRpb24gKGRlY2wxKTsKKwkgIHRyZWUgcmVzID0gREVDTF9SRVNVTFQgKERFQ0xfVEVNUExB VEVfUkVTVUxUICh0bXBsKSk7CisJICBsb2MgPSBERUNMX1NPVVJDRV9MT0NBVElPTiAocmVzKTsK Kwl9CiAKLSAgICAgIHJlc2RlY2wgPSBidWlsZF9kZWNsIChpbnB1dF9sb2NhdGlvbiwgUkVTVUxU X0RFQ0wsIDAsIHJlc3R5cGUpOworICAgICAgdHJlZSByZXNkZWNsID0gYnVpbGRfZGVjbCAobG9j LCBSRVNVTFRfREVDTCwgMCwgcmVzdHlwZSk7CiAgICAgICBERUNMX0FSVElGSUNJQUwgKHJlc2Rl Y2wpID0gMTsKICAgICAgIERFQ0xfSUdOT1JFRF9QIChyZXNkZWNsKSA9IDE7CiAgICAgICBERUNM X1JFU1VMVCAoZGVjbDEpID0gcmVzZGVjbDsKZGlmZiAtLWdpdCBhL2djYy9jcC9tZXRob2QuY2Mg Yi9nY2MvY3AvbWV0aG9kLmNjCmluZGV4IDFlOTYyYjZlM2IxLi43YjRkNWE1OTgyMyAxMDA2NDQK LS0tIGEvZ2NjL2NwL21ldGhvZC5jYworKysgYi9nY2MvY3AvbWV0aG9kLmNjCkBAIC0zMDc5LDcg KzMwNzksNyBAQCBpbXBsaWNpdGx5X2RlY2xhcmVfZm4gKHNwZWNpYWxfZnVuY3Rpb25fa2luZCBr aW5kLCB0cmVlIHR5cGUsCiAgICAgewogICAgICAgZm4gPSBjb3B5X29wZXJhdG9yX2ZuIChwYXR0 ZXJuX2ZuLCBFUV9FWFBSKTsKICAgICAgIERFQ0xfQVJUSUZJQ0lBTCAoZm4pID0gMTsKLSAgICAg IFRSRUVfVFlQRSAoZm4pID0gY2hhbmdlX3JldHVybl90eXBlIChib29sZWFuX3R5cGVfbm9kZSwg VFJFRV9UWVBFIChmbikpOworICAgICAgYXBwbHlfZGVkdWNlZF9yZXR1cm5fdHlwZSAoZm4sIGJv b2xlYW5fdHlwZV9ub2RlKTsKICAgICAgIHJldHVybiBmbjsKICAgICB9CiAKZGlmZiAtLWdpdCBh L2djYy9jcC9zZW1hbnRpY3MuY2MgYi9nY2MvY3Avc2VtYW50aWNzLmNjCmluZGV4IDk0MDFiMzVh Nzg5Li5hYjUyZTU2ZDZjMSAxMDA2NDQKLS0tIGEvZ2NjL2NwL3NlbWFudGljcy5jYworKysgYi9n Y2MvY3Avc2VtYW50aWNzLmNjCkBAIC0xMjMyNSwyNCArMTIzMjUsMjMgQEAgYXBwbHlfZGVkdWNl ZF9yZXR1cm5fdHlwZSAodHJlZSBmY28sIHRyZWUgcmV0dXJuX3R5cGUpCiAgIC8qIFdlIGFscmVh ZHkgaGF2ZSBhIERFQ0xfUkVTVUxUIGZyb20gc3RhcnRfcHJlcGFyc2VkX2Z1bmN0aW9uLgogICAg ICBOb3cgd2UgbmVlZCB0byByZWRvIHRoZSB3b3JrIGl0IGFuZCBhbGxvY2F0ZV9zdHJ1Y3RfZnVu Y3Rpb24KICAgICAgZGlkIHRvIHJlZmxlY3QgdGhlIG5ldyB0eXBlLiAgKi8KLSAgZ2NjX2Fzc2Vy dCAoY3VycmVudF9mdW5jdGlvbl9kZWNsID09IGZjbyk7Ci0gIHJlc3VsdCA9IGJ1aWxkX2RlY2wg KGlucHV0X2xvY2F0aW9uLCBSRVNVTFRfREVDTCwgTlVMTF9UUkVFLAorICByZXN1bHQgPSBidWls ZF9kZWNsIChERUNMX1NPVVJDRV9MT0NBVElPTiAocmVzdWx0KSwgUkVTVUxUX0RFQ0wsIE5VTExf VFJFRSwKIAkJICAgICAgIFRZUEVfTUFJTl9WQVJJQU5UIChyZXR1cm5fdHlwZSkpOwogICBERUNM X0FSVElGSUNJQUwgKHJlc3VsdCkgPSAxOwogICBERUNMX0lHTk9SRURfUCAocmVzdWx0KSA9IDE7 CiAgIGNwX2FwcGx5X3R5cGVfcXVhbHNfdG9fZGVjbCAoY3BfdHlwZV9xdWFscyAocmV0dXJuX3R5 cGUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCk7Ci0KICAgREVDTF9S RVNVTFQgKGZjbykgPSByZXN1bHQ7CiAKICAgaWYgKCFwcm9jZXNzaW5nX3RlbXBsYXRlX2RlY2wp Ci0gICAgewotICAgICAgYm9vbCBhZ2dyID0gYWdncmVnYXRlX3ZhbHVlX3AgKHJlc3VsdCwgZmNv KTsKKyAgICBpZiAoZnVuY3Rpb24gKmZ1biA9IERFQ0xfU1RSVUNUX0ZVTkNUSU9OIChmY28pKQor ICAgICAgeworCWJvb2wgYWdnciA9IGFnZ3JlZ2F0ZV92YWx1ZV9wIChyZXN1bHQsIGZjbyk7CiAj aWZkZWYgUENDX1NUQVRJQ19TVFJVQ1RfUkVUVVJOCi0gICAgICBjZnVuLT5yZXR1cm5zX3BjY19z dHJ1Y3QgPSBhZ2dyOworCWZ1bi0+cmV0dXJuc19wY2Nfc3RydWN0ID0gYWdncjsKICNlbmRpZgot ICAgICAgY2Z1bi0+cmV0dXJuc19zdHJ1Y3QgPSBhZ2dyOwotICAgIH0KKwlmdW4tPnJldHVybnNf c3RydWN0ID0gYWdncjsKKyAgICAgIH0KIH0KIAogLyogREVDTCBpcyBhIGxvY2FsIHZhcmlhYmxl IG9yIHBhcmFtZXRlciBmcm9tIHRoZSBzdXJyb3VuZGluZyBzY29wZSBvZiBhCmRpZmYgLS1naXQg YS9nY2MvZnVuY3Rpb24uY2MgYi9nY2MvZnVuY3Rpb24uY2MKaW5kZXggOWM4NzczYmJjNTkuLmRj MzMzYzI3ZTkyIDEwMDY0NAotLS0gYS9nY2MvZnVuY3Rpb24uY2MKKysrIGIvZ2NjL2Z1bmN0aW9u LmNjCkBAIC00OTk3LDcgKzQ5OTcsOCBAQCBpbml0X2Z1bmN0aW9uX3N0YXJ0ICh0cmVlIHN1YnIp CiAgIC8qIFdhcm4gaWYgdGhpcyB2YWx1ZSBpcyBhbiBhZ2dyZWdhdGUgdHlwZSwKICAgICAgcmVn YXJkbGVzcyBvZiB3aGljaCBjYWxsaW5nIGNvbnZlbnRpb24gd2UgYXJlIHVzaW5nIGZvciBpdC4g ICovCiAgIGlmIChBR0dSRUdBVEVfVFlQRV9QIChUUkVFX1RZUEUgKERFQ0xfUkVTVUxUIChzdWJy KSkpKQotICAgIHdhcm5pbmcgKE9QVF9XYWdncmVnYXRlX3JldHVybiwgImZ1bmN0aW9uIHJldHVy bnMgYW4gYWdncmVnYXRlIik7CisgICAgd2FybmluZ19hdCAoREVDTF9TT1VSQ0VfTE9DQVRJT04g KERFQ0xfUkVTVUxUIChzdWJyKSksCisJCU9QVF9XYWdncmVnYXRlX3JldHVybiwgImZ1bmN0aW9u IHJldHVybnMgYW4gYWdncmVnYXRlIik7CiB9CiAKIC8qIEV4cGFuZCBjb2RlIHRvIHZlcmlmeSB0 aGUgc3RhY2tfcHJvdGVjdF9ndWFyZC4gIFRoaXMgaXMgaW52b2tlZCBhdApkaWZmIC0tZ2l0IGEv Z2NjL2lwYS1wdXJlLWNvbnN0LmNjIGIvZ2NjL2lwYS1wdXJlLWNvbnN0LmNjCmluZGV4IDU3MmE2 ZGEyNzRmLi44ZjZlOGY2M2Q5MSAxMDA2NDQKLS0tIGEvZ2NjL2lwYS1wdXJlLWNvbnN0LmNjCisr KyBiL2djYy9pcGEtcHVyZS1jb25zdC5jYwpAQCAtNjMsNiArNjMsNyBAQCBhbG9uZyB3aXRoIEdD Qzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogI2luY2x1ZGUgImlwYS1mbnN1 bW1hcnkuaCIKICNpbmNsdWRlICJzeW10YWItdGh1bmtzLmgiCiAjaW5jbHVkZSAiZGJnY250Lmgi CisjaW5jbHVkZSAiZ2NjLXJpY2gtbG9jYXRpb24uaCIKIAogLyogTGF0dGljZSB2YWx1ZXMgZm9y IGNvbnN0IGFuZCBwdXJlIGZ1bmN0aW9ucy4gIEV2ZXJ5dGhpbmcgc3RhcnRzIG91dAogICAgYmVp bmcgY29uc3QsIHRoZW4gbWF5IGRyb3AgdG8gcHVyZSBhbmQgdGhlbiBuZWl0aGVyIGRlcGVuZGlu ZyBvbgpAQCAtMjEyLDcgKzIxMywxOCBAQCBzdWdnZXN0X2F0dHJpYnV0ZSAoaW50IG9wdGlvbiwg dHJlZSBkZWNsLCBib29sIGtub3duX2Zpbml0ZSwKICAgaWYgKHdhcm5lZF9hYm91dC0+Y29udGFp bnMgKGRlY2wpKQogICAgIHJldHVybiB3YXJuZWRfYWJvdXQ7CiAgIHdhcm5lZF9hYm91dC0+YWRk IChkZWNsKTsKLSAgd2FybmluZ19hdCAoREVDTF9TT1VSQ0VfTE9DQVRJT04gKGRlY2wpLAorCisg IGdjY19yaWNoX2xvY2F0aW9uIHJpY2hsb2MgKG9wdGlvbiA9PSBPUFRfV3N1Z2dlc3RfYXR0cmli dXRlX25vcmV0dXJuCisJCQkgICAgID8gREVDTF9TT1VSQ0VfTE9DQVRJT04gKERFQ0xfUkVTVUxU IChkZWNsKSkKKwkJCSAgICAgOiBERUNMX1NPVVJDRV9MT0NBVElPTiAoZGVjbCkpOworICBpZiAo b3B0aW9uID09IE9QVF9Xc3VnZ2VzdF9hdHRyaWJ1dGVfbm9yZXR1cm4pCisgICAgeworICAgICAg cmljaGxvYy5hZGRfZml4aXRfcmVwbGFjZQorCShJREVOVElGSUVSX1BPSU5URVIgKFRZUEVfSURF TlRJRklFUiAodm9pZF90eXBlX25vZGUpKSk7CisgICAgICByaWNobG9jLmFkZF9maXhpdF9pbnNl cnRfYmVmb3JlIChERUNMX1NPVVJDRV9MT0NBVElPTiAoZGVjbCksCisJCQkJICAgICAgICIgX19h dHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkgIik7CisgICAgfQorICB3YXJuaW5nX2F0ICgmcmlj aGxvYywKIAkgICAgICBvcHRpb24sCiAJICAgICAga25vd25fZmluaXRlCiAJICAgICAgPyBHXygi ZnVuY3Rpb24gbWlnaHQgYmUgY2FuZGlkYXRlIGZvciBhdHRyaWJ1dGUgJXFzIikKZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNjg4MzMtMS5jIGIvZ2NjL3Rlc3RzdWl0 ZS9jLWMrKy1jb21tb24vcHI2ODgzMy0xLmMKaW5kZXggYTZhZWZhZDVjOTguLmIyN2I3ODNkNjFh IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjY4ODMzLTEuYworKysg Yi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjY4ODMzLTEuYwpAQCAtMTUsNyArMTUsNyBA QCBmMSAoY29uc3QgY2hhciAqZm10KQogCiBleHRlcm4gdm9pZCBmMiAodm9pZCk7CiB2b2lkCi1m MiAodm9pZCkgLyogeyBkZy1lcnJvciAiY2FuZGlkYXRlIGZvciBhdHRyaWJ1dGUgJ25vcmV0dXJu JyIgImRldGVjdCBub3JldHVybiBjYW5kaWRhdGUiIH0gKi8KK2YyICh2b2lkKSAvKiB7IGRnLWVy cm9yICJjYW5kaWRhdGUgZm9yIGF0dHJpYnV0ZSAnbm9yZXR1cm4nIiAiZGV0ZWN0IG5vcmV0dXJu IGNhbmRpZGF0ZSIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLwogewogICBfX2J1aWx0aW5fZXhp dCAoMCk7CiB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9kaWFnbm9zdGljL3Jl dHVybi10eXBlLWxvYzEuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL2RpYWdub3N0aWMvcmV0dXJu LXR5cGUtbG9jMS5DCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mOTYx NzllZDRkNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL2RpYWdub3N0 aWMvcmV0dXJuLXR5cGUtbG9jMS5DCkBAIC0wLDAgKzEsMjAgQEAKKy8vIHsgZGctZG8gY29tcGls ZSB7IHRhcmdldCBjKysxMSB9IH0KKy8vIHsgZGctYWRkaXRpb25hbC1vcHRpb25zIC1XYWdncmVn YXRlLXJldHVybiB9CisKK3N0cnVjdCBCIHsgaW50IGksajsgfTsKKwordGVtcGxhdGUgPGNsYXNz IFQ+CitzdHJ1Y3QgQQoreworICB0ZW1wbGF0ZSA8Y2xhc3MgVT4KKyAgVQkJCQkvLyB7IGRnLXdh cm5pbmcgImFnZ3JlZ2F0ZSIgfQorICBmKCkgeyByZXR1cm4ge307IH0KK307CisKK2ludCBtYWlu KCkKK3sKKyAgQTxpbnQ+KCkuZjxCPigpOwkJLy8geyBkZy13YXJuaW5nICJhZ2dyZWdhdGUiIH0K K30KKworQgkJCQkvLyB7IGRnLXdhcm5pbmcgImFnZ3JlZ2F0ZSIgfQorZygpIHsgcmV0dXJuIHt9 OyB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9yZXN1bHRkZWNsLTEu QyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL3Jlc3VsdGRlY2wtMS5DCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMzk1MWMzMzlhOQotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL3Jlc3VsdGRlY2wtMS5DCkBAIC0wLDAgKzEs MzIgQEAKKy8qIFZlcmlmeSBjb3JyZWN0IHJlc3VsdCBkZWNsIGxvY2F0aW9uLiAgKi8KKy8vIHsg ZGctb3B0aW9ucyAiLWZkaWFnbm9zdGljcy1nZW5lcmF0ZS1wYXRjaCAtTzEgLWZpcGEtcHVyZS1j b25zdCAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuIiB9CisvLworLy8gZm9vNDogcmVtIGlu dCwgYWRkOiB2b2lkIGF0dHJpYnV0ZSgobm9yZXR1cm4pKQorCisKKworaW50Citmb280KHZvaWQp Cit7IHdoaWxlICgxKTsgfQorCisKKyNpZiAwCisvLyB7IGRnLXdhcm5pbmcgImZ1bmN0aW9uIG1p Z2h0IGJlIGNhbmRpZGF0ZSBmb3IgYXR0cmlidXRlIC5ub3JldHVybi4iICIiIHsgdGFyZ2V0ICot Ki0qIH0gLi02IH0gLy8gdGhlIGZubmFtZSBpcyBhdCBsaW5lIC4tNSB0aG91Z2gKKy8vIHBydW5l IHRoZSBkaWZmIHBhdGguLgorLyogeyBkZy1yZWdleHAgIlxcLVxcLVxcLSAuKiIgfSAqLworLyog eyBkZy1yZWdleHAgIlxcK1xcK1xcKyAuKiIgfSAqLworeyBkZy1iZWdpbi1tdWx0aWxpbmUtb3V0 cHV0ICIiIH0KK0BAIC01LDggKzUsOCBAQAorIAorIAorIAorLWludAorLWZvbzQodm9pZCkKKyt2 b2lkCisrIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpIGZvbzQodm9pZCkKKyB7IHdoaWxl ICgxKTsgfQorIAorIAoreyBkZy1lbmQtbXVsdGlsaW5lLW91dHB1dCAiIiB9CisjZW5kaWYKKwpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvbm9yZXR1cm4tMS5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvbm9yZXR1cm4tMS5jCmluZGV4IGNkYmZiOGRkNjY3Li5hNzEzZWU5MjRmYyAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvbm9yZXR1cm4tMS5jCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLmRnL25vcmV0dXJuLTEuYwpAQCAtMjUsNyArMjUsNyBAQCBmb28zKHZvaWQp CiAKIGV4dGVybiB2b2lkIGZvbzQodm9pZCk7CiB2b2lkCi1mb280KHZvaWQpIC8qIHsgZGctd2Fy bmluZyAiY2FuZGlkYXRlIGZvciBhdHRyaWJ1dGUgJ25vcmV0dXJuJyIgImRldGVjdCBub3JldHVy biBjYW5kaWRhdGUiIH0gKi8KK2ZvbzQodm9pZCkgLyogeyBkZy13YXJuaW5nICJjYW5kaWRhdGUg Zm9yIGF0dHJpYnV0ZSAnbm9yZXR1cm4nIiAiZGV0ZWN0IG5vcmV0dXJuIGNhbmRpZGF0ZSIgeyB0 YXJnZXQgKi0qLSogfSAuLTEgfSAqLwogewogICBleGl0KDApOwogfQotLSAKMi4zMS4xCgo= --------------jq50w0X0ZaRO7lSAl1mnDLyH--