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.133.124]) by sourceware.org (Postfix) with ESMTPS id B31B83858C1F for ; Tue, 22 Nov 2022 20:25:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B31B83858C1F 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=1669148741; 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=umYxNr/HlYHT89toNS19ehIeSDIMrjSFRZ2gzDRyAHw=; b=Bygqa42IFEchaZzF0UtuqNL84mr9pq8+0nJXRYCLGAJlEGzwAQk4dQHtXiDvf9Ku2+8LCd OB+HA6pHn+AdPD2X7byegMdJat4MgBruE5VYTGJF/tNXg9CpHjl87GeuoqVaODqwToDE2a Kdua+tilwuzm79ILm+Req2xBnTbE1QA= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-508-bY_g-_NqP0e9KSwJ1qbY7A-1; Tue, 22 Nov 2022 15:25:38 -0500 X-MC-Unique: bY_g-_NqP0e9KSwJ1qbY7A-1 Received: by mail-qk1-f199.google.com with SMTP id bm2-20020a05620a198200b006fa6eeee4a9so20401401qkb.14 for ; Tue, 22 Nov 2022 12:25:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Om07cODdsqTEk3oItMKQfyxZrAd8RJ/tmLD9enHXl6g=; b=zxVuF3kipq4cP+LtpMWnYydPVzu3oBD33Nen4o9PRUFV18WlKp+Dgdn2Ey4ewaL8bz Y8vZLTAL7xJrKXM/9djFtQEVOSBVrERayYSUC6coabBubcJ/uc4LlRSlAOiUcVpQYmQU TCJxhxPuaSWJMOEHwITNUhcYwHlhzim/xyfCjv7W+hTOZpPc7o1+52pp2JrWAiOyaSLn gZZPti5sWJMCbncg7qefNHVbxxWImGv1ZUaPngobPTUy4b5I2fvyyj4oRTw+YxGLpoqF ZRyDIWwjKVJt/4nJVneP3y4jYlVe3+HaxIRVmCr0kKJDS3iS8hPGkc15XWjOVqSIoftd tE8g== X-Gm-Message-State: ANoB5pnWF/9MeHtXgoqHXZO2VDmTDj6WiLP77qm1OPLrrRi1st+tFVBv lTDEhzvPy79bgaOCS3SMiCvwfdZ9iELQmBfOOclKHhmS7fYH8Y0Fc6whaehGkH2Z2F7Wmxw8afJ ngvuwZvPpyzpVyuTQsQ== X-Received: by 2002:ac8:5308:0:b0:3a5:2fd3:7d8d with SMTP id t8-20020ac85308000000b003a52fd37d8dmr23240080qtn.427.1669148737371; Tue, 22 Nov 2022 12:25:37 -0800 (PST) X-Google-Smtp-Source: AA0mqf6EUQ6J1o4pe69NgranwpRp2zIDlaRaeWHQidcYe4o9uq6yu7JEC54cz28ec0n/MRyjS9Zc+w== X-Received: by 2002:ac8:5308:0:b0:3a5:2fd3:7d8d with SMTP id t8-20020ac85308000000b003a52fd37d8dmr23240058qtn.427.1669148737006; Tue, 22 Nov 2022 12:25:37 -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 h17-20020a05620a245100b006cfc1d827cbsm11054844qkn.9.2022.11.22.12.25.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 22 Nov 2022 12:25:36 -0800 (PST) Message-ID: <3d2485a6-ca86-aece-6c28-f7cc8547e8d3@redhat.com> Date: Tue, 22 Nov 2022 15:25:35 -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 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> From: Jason Merrill In-Reply-To: <20221120170604.2534647-1-aldot@gcc.gnu.org> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------tVSNLUzyXshO4qf00vJAXKch" 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. --------------tVSNLUzyXshO4qf00vJAXKch Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 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: --------------tVSNLUzyXshO4qf00vJAXKch 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 RnJvbSA1MDc1ZDJhYzEyZjY1NWY4ZjgzZjZmM2JlMjdlMmMxMTQxZTFjZTk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCZXJuaGFyZCBSZXV0bmVyLUZpc2NoZXIgPHJlcC5kb3Qubm9w QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyMCBOb3YgMjAyMiAxODowNjowNCArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIGMrKzogU2V0IHRoZSBsb2N1cyBvZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGRlY2wK VG86IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnCgpnY2MvY3AvQ2hhbmdlTG9nOgoKCSogZGVjbC5j YyAoZ3Jva2RlY2xhcmF0b3IpOiBCdWlsZCBSRVNVTFRfREVDTC4KCShzdGFydF9wcmVwYXJzZWRf ZnVuY3Rpb24pOiBDb3B5IGxvY2F0aW9uIGZyb20gdGVtcGxhdGUuCgpnY2MvQ2hhbmdlTG9nOgoK CSogZnVuY3Rpb24uY2MgKGluaXRfZnVuY3Rpb25fc3RhcnQpOiBVc2UgREVDTF9SRVNVTFQgbG9j YXRpb24KCWZvciAtV2FnZ3JlZ2F0ZS1yZXR1cm4gd2FybmluZy4KCSogaXBhLXB1cmUtY29uc3Qu Y2MgKHN1Z2dlc3RfYXR0cmlidXRlKTogQWRkIGZpeGl0LWhpbnQgZm9yIHRoZQoJbm9yZXR1cm4g YXR0cmlidXRlLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBjLWMrKy1jb21tb24vcHI2 ODgzMy0xLmM6IEFkanVzdCBub3JldHVybiB3YXJuaW5nIGxpbmUgbnVtYmVyLgoJKiBnY2MuZGcv bm9yZXR1cm4tMS5jOiBMaWtld2lzZS4KCSogZysrLmRnL2RpYWdub3N0aWMvcmV0dXJuLXR5cGUt bG9jMS5DOiBOZXcgdGVzdC4KCSogZysrLmRnL290aGVyL3Jlc3VsdGRlY2wtMS5DOiBOZXcgdGVz dC4KCkNvLWF1dGhvcmVkLWJ5OiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgotLS0K IGdjYy9jcC9kZWNsLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysr KysrKysrKystLQogZ2NjL2Z1bmN0aW9uLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDMgKy0KIGdjYy9pcGEtcHVyZS1jb25zdC5jYyAgICAgICAgICAgICAgICAgICAgICAgICB8 IDE0ICsrKysrKystCiBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjY4ODMzLTEuYyAgICAg ICAgfCAgMiArLQogLi4uL2crKy5kZy9kaWFnbm9zdGljL3JldHVybi10eXBlLWxvYzEuQyAgICAg IHwgMjAgKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9yZXN1bHRkZWNs LTEuQyAgICAgfCAzMiArKysrKysrKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2djYy5kZy9u b3JldHVybi0xLmMgICAgICAgICAgICAgfCAgMiArLQogNyBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNl cnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZysrLmRnL2RpYWdub3N0aWMvcmV0dXJuLXR5cGUtbG9jMS5DCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvcmVzdWx0ZGVjbC0xLkMKCmRpZmYgLS1naXQg YS9nY2MvY3AvZGVjbC5jYyBiL2djYy9jcC9kZWNsLmNjCmluZGV4IDU0NGVmZGM5OTE0Li4yYzVj ZDkzMGUwYSAxMDA2NDQKLS0tIGEvZ2NjL2NwL2RlY2wuY2MKKysrIGIvZ2NjL2NwL2RlY2wuY2MK QEAgLTE0Nzc0LDYgKzE0Nzc0LDE4IEBAIGdyb2tkZWNsYXJhdG9yIChjb25zdCBjcF9kZWNsYXJh dG9yICpkZWNsYXJhdG9yLAogCWVsc2UgaWYgKGNvbnN0aW5pdF9wKQogCSAgREVDTF9ERUNMQVJF RF9DT05TVElOSVRfUCAoZGVjbCkgPSB0cnVlOwogICAgICAgfQorICAgIGVsc2UgaWYgKFRSRUVf Q09ERSAoZGVjbCkgPT0gRlVOQ1RJT05fREVDTCkKKyAgICAgIHsKKwlsb2NhdGlvbl90IGxvYyA9 IHNtYWxsZXN0X3R5cGVfbG9jYXRpb24gKGRlY2xzcGVjcyk7CisJaWYgKGxvYyAhPSBVTktOT1dO X0xPQ0FUSU9OKQorCSAgeworCSAgICB0cmVlIHJlc3R5cGUgPSBUUkVFX1RZUEUgKFRSRUVfVFlQ RSAoZGVjbCkpOworCSAgICB0cmVlIHJlc2RlY2wgPSBidWlsZF9kZWNsIChsb2MsIFJFU1VMVF9E RUNMLCAwLCByZXN0eXBlKTsKKwkgICAgREVDTF9BUlRJRklDSUFMIChyZXNkZWNsKSA9IDE7CisJ ICAgIERFQ0xfSUdOT1JFRF9QIChyZXNkZWNsKSA9IDE7CisJICAgIERFQ0xfUkVTVUxUIChkZWNs KSA9IHJlc2RlY2w7CisJICB9CisgICAgICB9CiAKICAgICAvKiBSZWNvcmQgY29uc3RhbmN5IGFu ZCB2b2xhdGlsaXR5IG9uIHRoZSBERUNMIGl0c2VsZiAuICBUaGVyZSdzCiAgICAgICAgbm8gbmVl ZCB0byBkbyB0aGlzIHdoZW4gcHJvY2Vzc2luZyBhIHRlbXBsYXRlOyB3ZSdsbCBkbyB0aGlzCkBA IC0xNzMyOCw5ICsxNzM0MCwxOSBAQCBzdGFydF9wcmVwYXJzZWRfZnVuY3Rpb24gKHRyZWUgZGVj bDEsIHRyZWUgYXR0cnMsIGludCBmbGFncykKIAogICBpZiAoREVDTF9SRVNVTFQgKGRlY2wxKSA9 PSBOVUxMX1RSRUUpCiAgICAgewotICAgICAgdHJlZSByZXNkZWNsOworICAgICAgLyogSW4gYSB0 ZW1wbGF0ZSBpbnN0YW50aWF0aW9uLCBjb3B5IHRoZSByZXR1cm4gdHlwZSBsb2NhdGlvbi4gIFdo ZW4KKwkgcGFyc2luZywgdGhlIGxvY2F0aW9uIHdpbGwgYmUgc2V0IGluIGdyb2tkZWNsYXJhdG9y LiAgKi8KKyAgICAgIGxvY2F0aW9uX3QgbG9jID0gaW5wdXRfbG9jYXRpb247CisgICAgICBpZiAo REVDTF9URU1QTEFURV9JTlNUQU5USUFUSU9OIChkZWNsMSkKKwkgICYmICFERUNMX0NYWF9DT05T VFJVQ1RPUl9QIChkZWNsMSkKKwkgICYmICFERUNMX0NYWF9ERVNUUlVDVE9SX1AgKGRlY2wxKSkK Kwl7CisJICB0cmVlIHRtcGwgPSB0ZW1wbGF0ZV9mb3Jfc3Vic3RpdHV0aW9uIChkZWNsMSk7CisJ ICB0cmVlIHJlcyA9IERFQ0xfUkVTVUxUIChERUNMX1RFTVBMQVRFX1JFU1VMVCAodG1wbCkpOwor CSAgbG9jID0gREVDTF9TT1VSQ0VfTE9DQVRJT04gKHJlcyk7CisJfQogCi0gICAgICByZXNkZWNs ID0gYnVpbGRfZGVjbCAoaW5wdXRfbG9jYXRpb24sIFJFU1VMVF9ERUNMLCAwLCByZXN0eXBlKTsK KyAgICAgIHRyZWUgcmVzZGVjbCA9IGJ1aWxkX2RlY2wgKGxvYywgUkVTVUxUX0RFQ0wsIDAsIHJl c3R5cGUpOwogICAgICAgREVDTF9BUlRJRklDSUFMIChyZXNkZWNsKSA9IDE7CiAgICAgICBERUNM X0lHTk9SRURfUCAocmVzZGVjbCkgPSAxOwogICAgICAgREVDTF9SRVNVTFQgKGRlY2wxKSA9IHJl c2RlY2w7CmRpZmYgLS1naXQgYS9nY2MvZnVuY3Rpb24uY2MgYi9nY2MvZnVuY3Rpb24uY2MKaW5k ZXggOWM4NzczYmJjNTkuLmRjMzMzYzI3ZTkyIDEwMDY0NAotLS0gYS9nY2MvZnVuY3Rpb24uY2MK KysrIGIvZ2NjL2Z1bmN0aW9uLmNjCkBAIC00OTk3LDcgKzQ5OTcsOCBAQCBpbml0X2Z1bmN0aW9u X3N0YXJ0ICh0cmVlIHN1YnIpCiAgIC8qIFdhcm4gaWYgdGhpcyB2YWx1ZSBpcyBhbiBhZ2dyZWdh dGUgdHlwZSwKICAgICAgcmVnYXJkbGVzcyBvZiB3aGljaCBjYWxsaW5nIGNvbnZlbnRpb24gd2Ug YXJlIHVzaW5nIGZvciBpdC4gICovCiAgIGlmIChBR0dSRUdBVEVfVFlQRV9QIChUUkVFX1RZUEUg KERFQ0xfUkVTVUxUIChzdWJyKSkpKQotICAgIHdhcm5pbmcgKE9QVF9XYWdncmVnYXRlX3JldHVy biwgImZ1bmN0aW9uIHJldHVybnMgYW4gYWdncmVnYXRlIik7CisgICAgd2FybmluZ19hdCAoREVD TF9TT1VSQ0VfTE9DQVRJT04gKERFQ0xfUkVTVUxUIChzdWJyKSksCisJCU9QVF9XYWdncmVnYXRl X3JldHVybiwgImZ1bmN0aW9uIHJldHVybnMgYW4gYWdncmVnYXRlIik7CiB9CiAKIC8qIEV4cGFu ZCBjb2RlIHRvIHZlcmlmeSB0aGUgc3RhY2tfcHJvdGVjdF9ndWFyZC4gIFRoaXMgaXMgaW52b2tl ZCBhdApkaWZmIC0tZ2l0IGEvZ2NjL2lwYS1wdXJlLWNvbnN0LmNjIGIvZ2NjL2lwYS1wdXJlLWNv bnN0LmNjCmluZGV4IDU3MmE2ZGEyNzRmLi44ZjZlOGY2M2Q5MSAxMDA2NDQKLS0tIGEvZ2NjL2lw YS1wdXJlLWNvbnN0LmNjCisrKyBiL2djYy9pcGEtcHVyZS1jb25zdC5jYwpAQCAtNjMsNiArNjMs NyBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQog I2luY2x1ZGUgImlwYS1mbnN1bW1hcnkuaCIKICNpbmNsdWRlICJzeW10YWItdGh1bmtzLmgiCiAj aW5jbHVkZSAiZGJnY250LmgiCisjaW5jbHVkZSAiZ2NjLXJpY2gtbG9jYXRpb24uaCIKIAogLyog TGF0dGljZSB2YWx1ZXMgZm9yIGNvbnN0IGFuZCBwdXJlIGZ1bmN0aW9ucy4gIEV2ZXJ5dGhpbmcg c3RhcnRzIG91dAogICAgYmVpbmcgY29uc3QsIHRoZW4gbWF5IGRyb3AgdG8gcHVyZSBhbmQgdGhl biBuZWl0aGVyIGRlcGVuZGluZyBvbgpAQCAtMjEyLDcgKzIxMywxOCBAQCBzdWdnZXN0X2F0dHJp YnV0ZSAoaW50IG9wdGlvbiwgdHJlZSBkZWNsLCBib29sIGtub3duX2Zpbml0ZSwKICAgaWYgKHdh cm5lZF9hYm91dC0+Y29udGFpbnMgKGRlY2wpKQogICAgIHJldHVybiB3YXJuZWRfYWJvdXQ7CiAg IHdhcm5lZF9hYm91dC0+YWRkIChkZWNsKTsKLSAgd2FybmluZ19hdCAoREVDTF9TT1VSQ0VfTE9D QVRJT04gKGRlY2wpLAorCisgIGdjY19yaWNoX2xvY2F0aW9uIHJpY2hsb2MgKG9wdGlvbiA9PSBP UFRfV3N1Z2dlc3RfYXR0cmlidXRlX25vcmV0dXJuCisJCQkgICAgID8gREVDTF9TT1VSQ0VfTE9D QVRJT04gKERFQ0xfUkVTVUxUIChkZWNsKSkKKwkJCSAgICAgOiBERUNMX1NPVVJDRV9MT0NBVElP TiAoZGVjbCkpOworICBpZiAob3B0aW9uID09IE9QVF9Xc3VnZ2VzdF9hdHRyaWJ1dGVfbm9yZXR1 cm4pCisgICAgeworICAgICAgcmljaGxvYy5hZGRfZml4aXRfcmVwbGFjZQorCShJREVOVElGSUVS X1BPSU5URVIgKFRZUEVfSURFTlRJRklFUiAodm9pZF90eXBlX25vZGUpKSk7CisgICAgICByaWNo bG9jLmFkZF9maXhpdF9pbnNlcnRfYmVmb3JlIChERUNMX1NPVVJDRV9MT0NBVElPTiAoZGVjbCks CisJCQkJICAgICAgICIgX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkgIik7CisgICAgfQor ICB3YXJuaW5nX2F0ICgmcmljaGxvYywKIAkgICAgICBvcHRpb24sCiAJICAgICAga25vd25fZmlu aXRlCiAJICAgICAgPyBHXygiZnVuY3Rpb24gbWlnaHQgYmUgY2FuZGlkYXRlIGZvciBhdHRyaWJ1 dGUgJXFzIikKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL3ByNjg4MzMt MS5jIGIvZ2NjL3Rlc3RzdWl0ZS9jLWMrKy1jb21tb24vcHI2ODgzMy0xLmMKaW5kZXggYTZhZWZh ZDVjOTguLmIyN2I3ODNkNjFhIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1v bi9wcjY4ODMzLTEuYworKysgYi9nY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9wcjY4ODMzLTEu YwpAQCAtMTUsNyArMTUsNyBAQCBmMSAoY29uc3QgY2hhciAqZm10KQogCiBleHRlcm4gdm9pZCBm MiAodm9pZCk7CiB2b2lkCi1mMiAodm9pZCkgLyogeyBkZy1lcnJvciAiY2FuZGlkYXRlIGZvciBh dHRyaWJ1dGUgJ25vcmV0dXJuJyIgImRldGVjdCBub3JldHVybiBjYW5kaWRhdGUiIH0gKi8KK2Yy ICh2b2lkKSAvKiB7IGRnLWVycm9yICJjYW5kaWRhdGUgZm9yIGF0dHJpYnV0ZSAnbm9yZXR1cm4n IiAiZGV0ZWN0IG5vcmV0dXJuIGNhbmRpZGF0ZSIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLwog ewogICBfX2J1aWx0aW5fZXhpdCAoMCk7CiB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2cr Ky5kZy9kaWFnbm9zdGljL3JldHVybi10eXBlLWxvYzEuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRn L2RpYWdub3N0aWMvcmV0dXJuLXR5cGUtbG9jMS5DCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5mOTYxNzllZDRkNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3Vp dGUvZysrLmRnL2RpYWdub3N0aWMvcmV0dXJuLXR5cGUtbG9jMS5DCkBAIC0wLDAgKzEsMjAgQEAK Ky8vIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCBjKysxMSB9IH0KKy8vIHsgZGctYWRkaXRpb25h bC1vcHRpb25zIC1XYWdncmVnYXRlLXJldHVybiB9CisKK3N0cnVjdCBCIHsgaW50IGksajsgfTsK KwordGVtcGxhdGUgPGNsYXNzIFQ+CitzdHJ1Y3QgQQoreworICB0ZW1wbGF0ZSA8Y2xhc3MgVT4K KyAgVQkJCQkvLyB7IGRnLXdhcm5pbmcgImFnZ3JlZ2F0ZSIgfQorICBmKCkgeyByZXR1cm4ge307 IH0KK307CisKK2ludCBtYWluKCkKK3sKKyAgQTxpbnQ+KCkuZjxCPigpOwkJLy8geyBkZy13YXJu aW5nICJhZ2dyZWdhdGUiIH0KK30KKworQgkJCQkvLyB7IGRnLXdhcm5pbmcgImFnZ3JlZ2F0ZSIg fQorZygpIHsgcmV0dXJuIHt9OyB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9v dGhlci9yZXN1bHRkZWNsLTEuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL3Jlc3VsdGRl Y2wtMS5DCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMzk1MWMzMzlh OQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL3Jlc3VsdGRl Y2wtMS5DCkBAIC0wLDAgKzEsMzIgQEAKKy8qIFZlcmlmeSBjb3JyZWN0IHJlc3VsdCBkZWNsIGxv Y2F0aW9uLiAgKi8KKy8vIHsgZGctb3B0aW9ucyAiLWZkaWFnbm9zdGljcy1nZW5lcmF0ZS1wYXRj aCAtTzEgLWZpcGEtcHVyZS1jb25zdCAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuIiB9Cisv LworLy8gZm9vNDogcmVtIGludCwgYWRkOiB2b2lkIGF0dHJpYnV0ZSgobm9yZXR1cm4pKQorCisK KworaW50Citmb280KHZvaWQpCit7IHdoaWxlICgxKTsgfQorCisKKyNpZiAwCisvLyB7IGRnLXdh cm5pbmcgImZ1bmN0aW9uIG1pZ2h0IGJlIGNhbmRpZGF0ZSBmb3IgYXR0cmlidXRlIC5ub3JldHVy bi4iICIiIHsgdGFyZ2V0ICotKi0qIH0gLi02IH0gLy8gdGhlIGZubmFtZSBpcyBhdCBsaW5lIC4t NSB0aG91Z2gKKy8vIHBydW5lIHRoZSBkaWZmIHBhdGguLgorLyogeyBkZy1yZWdleHAgIlxcLVxc LVxcLSAuKiIgfSAqLworLyogeyBkZy1yZWdleHAgIlxcK1xcK1xcKyAuKiIgfSAqLworeyBkZy1i ZWdpbi1tdWx0aWxpbmUtb3V0cHV0ICIiIH0KK0BAIC01LDggKzUsOCBAQAorIAorIAorIAorLWlu dAorLWZvbzQodm9pZCkKKyt2b2lkCisrIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpIGZv bzQodm9pZCkKKyB7IHdoaWxlICgxKTsgfQorIAorIAoreyBkZy1lbmQtbXVsdGlsaW5lLW91dHB1 dCAiIiB9CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvbm9yZXR1 cm4tMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvbm9yZXR1cm4tMS5jCmluZGV4IGNkYmZiOGRk NjY3Li5hNzEzZWU5MjRmYyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvbm9yZXR1 cm4tMS5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL25vcmV0dXJuLTEuYwpAQCAtMjUsNyAr MjUsNyBAQCBmb28zKHZvaWQpCiAKIGV4dGVybiB2b2lkIGZvbzQodm9pZCk7CiB2b2lkCi1mb280 KHZvaWQpIC8qIHsgZGctd2FybmluZyAiY2FuZGlkYXRlIGZvciBhdHRyaWJ1dGUgJ25vcmV0dXJu JyIgImRldGVjdCBub3JldHVybiBjYW5kaWRhdGUiIH0gKi8KK2ZvbzQodm9pZCkgLyogeyBkZy13 YXJuaW5nICJjYW5kaWRhdGUgZm9yIGF0dHJpYnV0ZSAnbm9yZXR1cm4nIiAiZGV0ZWN0IG5vcmV0 dXJuIGNhbmRpZGF0ZSIgeyB0YXJnZXQgKi0qLSogfSAuLTEgfSAqLwogewogICBleGl0KDApOwog fQotLSAKMi4zMS4xCgo= --------------tVSNLUzyXshO4qf00vJAXKch--