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 E43093858CDA for ; Mon, 11 Dec 2023 19:12:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E43093858CDA Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E43093858CDA Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702321942; cv=none; b=tcjKpIUJD5+2ZzIkjdYkluOBiJ5BMREmtJL9F0vqZs876Ahp9QYZK3y8EQw1KCRKmWo1vhJ1/qA8jHqH5pF/8J5BSKI76TPj9RhN2Gr1S3dKvHOsvz2ARgItb24JSjXEMHdiO+NMNOfHaezhw2RLcAGP2OdUdMGJVQ5+kEqrFm0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1702321942; c=relaxed/simple; bh=4OkeV885iFkN2rTkzoV6KizT0rJhfZ7wz0RFgoF1Y3E=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=oVIkpJ+ylGBir7+rFg/tIRC1Lm3ObnXZIG/oZUYLQpEJH29CYmvgyLgfpEAPocJB6Ajo+11zBkvkRYk895A+druhKJ5r9ZwRuAKszzGjUoCg0ITstBPSgS6J95raEIYx15bf5tlbf13S1soZ8BLYlVoOGyIOrftvPnFDoJDTuY4= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1702321939; 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=KTJhTEgausFKirWkVrOo8fZvXvncIBkLrWwbvGiYaGI=; b=RtwY25XHmzQ92q09owMeEz0FkdlpZhSpvZJ3tW5Fj0pG+xd8WmbNhH32ds0zkndfHxB9hI RiyzsWvi6REAE3NcX57i1n2xIFf8EO/izb2mzkhCTYz/WLGy4QspCbsurF1/Cje8kk4kga vuLDc5T++g+ljMyjl6r6mlX3B661tYk= Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-590-FdxHS2kOO3O4AVEh8V7_Rw-1; Mon, 11 Dec 2023 14:12:17 -0500 X-MC-Unique: FdxHS2kOO3O4AVEh8V7_Rw-1 Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-58db2015327so5800199eaf.1 for ; Mon, 11 Dec 2023 11:12:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702321937; x=1702926737; 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=rL8fnmlCqdlb+cSLjfCGScFlz0zRGLbfJsPIuCE32N4=; b=W/6z7j93F4DhiW2/zCiwwvB17fz+i2P8yAdiESc/FmJBuAZPEQtNJpxeB1sfBUet1i 2IeN0MZcukug5ZxJYB1aMcjlVtF0cN/67gAtAbHdr52trx4jkE0uDiZt9jMj18XsgtMr BKWoByh1WPkD9S9pFEVu/hXM+YXq972sG5hc7nH7nf2FDMb3SSw3evaYSy5M0OJtJRpw X0T1aLQlURFLHgOOzOcLKR60Etd29ASLMfYquhSggPrW+XoAVrrbNKohqCn1rZ7hqS3E ROTPCSLe0mBldNcCHUX6qgZDL3Yl5r1K93ZdFxBNEt2kc6nbd8GEh5LzmZOi7X0E1Taw EHrA== X-Gm-Message-State: AOJu0YwYq7ysTwdd3nOaQyeqP5GM21jQsxNXVLKU65NaYVYuqXHeLbvJ gcPFAQjiQhMkoP14DTjm46acUoLguckKQM+S8S6zB+VVmDYR9VZ8mQE32C530HDerDKy5gzuJEb nVD8LE2rrgNyXQGSjSQ== X-Received: by 2002:a05:6358:2489:b0:16d:fc9b:6fce with SMTP id m9-20020a056358248900b0016dfc9b6fcemr5617923rwc.4.1702321937025; Mon, 11 Dec 2023 11:12:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IHqx/5mdgzLsTQKQupGVOJrQ/bTKPKmOMTr6y9wE/QTbfrWixmxOJC9WevI3RP/X7py9x/dZA== X-Received: by 2002:a05:6358:2489:b0:16d:fc9b:6fce with SMTP id m9-20020a056358248900b0016dfc9b6fcemr5617910rwc.4.1702321936614; Mon, 11 Dec 2023 11:12:16 -0800 (PST) Received: from [192.168.1.108] (130-44-146-16.s12558.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.146.16]) by smtp.gmail.com with ESMTPSA id mh10-20020a056214564a00b0067a4059068esm3527174qvb.124.2023.12.11.11.12.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 11 Dec 2023 11:12:15 -0800 (PST) Message-ID: Date: Mon, 11 Dec 2023 14:12:14 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] c++: End lifetime of objects in constexpr after destructor call [PR71093] To: Richard Biener Cc: Nathaniel Shead , gcc-patches@gcc.gnu.org References: From: Jason Merrill In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------qwzCidczQ2kq2Vmu5kKqceNw" Content-Language: en-US X-Spam-Status: No, score=-12.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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. --------------qwzCidczQ2kq2Vmu5kKqceNw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12/11/23 03:02, Richard Biener wrote: > On Sun, 10 Dec 2023, Jason Merrill wrote: > >> On 12/10/23 05:22, Richard Biener wrote: >>>> Am 09.12.2023 um 21:13 schrieb Jason Merrill : >>>> >>>> On 11/2/23 21:18, Nathaniel Shead wrote: >>>>> Bootstrapped and regtested on x86-64_pc_linux_gnu. >>>>> I'm not entirely sure if the change I made to have destructors clobber >>>>> with >>>>> CLOBBER_EOL instead of CLOBBER_UNDEF is appropriate, but nothing seemed to >>>>> have >>>>> broken by doing this and I wasn't able to find anything else that really >>>>> depended on this distinction other than a warning pass. Otherwise I could >>>>> experiment with a new clobber kind for destructor calls. >>>> >>>> It seems wrong to me: CLOBBER_EOL is documented to mean that the storage is >>>> expiring at that point as well, which a (pseudo-)destructor does not imply; >>>> it's perfectly valid to destroy an object and then create another in the >>>> same storage. >>>> >>>> We probably do want another clobber kind for end of object lifetime. And/or >>>> one for beginning of object lifetime. >>> >>> There?s not much semantically different between UNDEF and end of object but >>> not storage lifetime? At least for what middle-end optimizations do. >> >> That's fine for the middle-end, but Nathaniel's patch wants to distinguish >> between the clobbers at beginning and end of object lifetime in order to >> diagnose stores to an out-of-lifetime object in constexpr evaluation. > > Ah, I see. I did want to add CLOBBER_SOL (start-of-life) when working > on PR90348, but I always fail to finish working on that stack-slot sharing > issue. But it would be for the storage life, not object life, also > added by gimplification. > >> One option might be to remove the clobber at the beginning of the constructor; >> are there any useful optimizations enabled by that, or is it just pedantically >> breaking people's code? > > It's allowing DSE to the object that was live before the new one. Not > all objects require explicit destruction (which would get you a clobber) > before storage can be re-used. > >>> EOL is used by stack slot sharing and that operates on the underlying >>> storage, not individual objects live in it. >> >> I wonder about changing the name to EOS (end of storage [duration]) to avoid >> similar confusion with object lifetime? > > EOS{L,D}? But sure, better names (and documentation) are appreciated. Maybe something like this? Or shall we write out the names like CLOBBER_OBJECT_START, CLOBBER_STORAGE_END, etc? --------------qwzCidczQ2kq2Vmu5kKqceNw Content-Type: text/x-patch; charset=UTF-8; name="0001-tree-add-to-clobber_kind.patch" Content-Disposition: attachment; filename="0001-tree-add-to-clobber_kind.patch" Content-Transfer-Encoding: base64 RnJvbSAxNGY3MWE5NDc5YmQwY2Y0MjQ5YzhjOWU5MTdhOWNhZjNlYWM4YzgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpEYXRl OiBNb24sIDExIERlYyAyMDIzIDExOjM1OjMxIC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gdHJlZTog YWRkIHRvIGNsb2JiZXJfa2luZApUbzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcKCkluIGRpc2N1 c3Npb24gb2YgUFI3MTA5MyBpdCBjYW1lIHVwIHRoYXQgbW9yZSBjbG9iYmVyX2tpbmQgb3B0aW9u cyB3b3VsZCBiZQp1c2VmdWwgd2l0aGluIHRoZSBDKysgZnJvbnQtZW5kLgoKZ2NjL0NoYW5nZUxv ZzoKCgkqIHRyZWUtY29yZS5oIChlbnVtIGNsb2JiZXJfa2luZCk6IFJlbmFtZSBDTE9CQkVSX0VP TCB0bwoJQ0xPQkJFUl9FT1NELiAgQWRkIENMT0JCRVJfQk9TRCwgQ0xPQkJFUl9CT0JMLCBDTE9C QkVSX0VPQkwuCgkqIGdpbXBsZS1sb3dlci1iaXRpbnQuY2MKCSogZ2ltcGxlLXNzYS13YXJuLWFj Y2Vzcy5jYwoJKiBnaW1wbGlmeS5jYwoJKiB0cmVlLWlubGluZS5jYwoJKiB0cmVlLXByZXR0eS1w cmludC5jYwoJKiB0cmVlLXNzYS1jY3AuY2M6IEFkanVzdCBmb3IgcmVuYW1lLgotLS0KIGdjYy90 cmVlLWNvcmUuaCAgICAgICAgICAgICAgIHwgMTMgKysrKysrKysrKy0tLQogZ2NjL2dpbXBsZS1s b3dlci1iaXRpbnQuY2MgICAgfCAgOCArKysrLS0tLQogZ2NjL2dpbXBsZS1zc2Etd2Fybi1hY2Nl c3MuY2MgfCAgMiArLQogZ2NjL2dpbXBsaWZ5LmNjICAgICAgICAgICAgICAgfCAgOCArKysrLS0t LQogZ2NjL3RyZWUtaW5saW5lLmNjICAgICAgICAgICAgfCAgNCArKy0tCiBnY2MvdHJlZS1wcmV0 dHktcHJpbnQuY2MgICAgICB8ICAyICstCiBnY2MvdHJlZS1zc2EtY2NwLmNjICAgICAgICAgICB8 ICAyICstCiA3IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2djYy90cmVlLWNvcmUuaCBiL2djYy90cmVlLWNvcmUuaAppbmRleCAw NGMwNGNmMmYzNy4uYmRmMTQ2MDVjOTEgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLWNvcmUuaAorKysg Yi9nY2MvdHJlZS1jb3JlLmgKQEAgLTk4NiwxMiArOTg2LDE5IEBAIGVudW0gYW5ub3RfZXhwcl9r aW5kIHsKICAgYW5ub3RfZXhwcl9raW5kX2xhc3QKIH07CiAKLS8qIFRoZSBraW5kIG9mIGEgVFJF RV9DTE9CQkVSX1AgQ09OU1RSVUNUT1Igbm9kZS4gICovCisvKiBUaGUga2luZCBvZiBhIFRSRUVf Q0xPQkJFUl9QIENPTlNUUlVDVE9SIG5vZGUuICBPdGhlciB0aGFuIF9VTkRFRiwgdGhlc2UgYXJl CisgICBpbiByb3VnaGx5IHNlcXVlbnRpYWwgb3JkZXIuICAqLwogZW51bSBjbG9iYmVyX2tpbmQg ewogICAvKiBVbnNwZWNpZmllZCwgdGhpcyBjbG9iYmVyIGFjdHMgYXMgYSBzdG9yZSBvZiBhbiB1 bmRlZmluZWQgdmFsdWUuICAqLwogICBDTE9CQkVSX1VOREVGLAotICAvKiBUaGlzIGNsb2JiZXIg ZW5kcyB0aGUgbGlmZXRpbWUgb2YgdGhlIHN0b3JhZ2UuICAqLwotICBDTE9CQkVSX0VPTCwKKyAg LyogQmVnaW5uaW5nIG9mIHN0b3JhZ2UgZHVyYXRpb24sIGUuZy4gbWFsbG9jLiAgKi8KKyAgQ0xP QkJFUl9CT1NELAorICAvKiBCZWdpbm5pbmcgb2Ygb2JqZWN0IGxpZmV0aW1lLCBlLmcuIEMrKyBj b25zdHJ1Y3Rvci4gICovCisgIENMT0JCRVJfQk9CTCwKKyAgLyogRW5kIG9mIG9iamVjdCBsaWZl dGltZSwgZS5nLiBDKysgZGVzdHJ1Y3Rvci4gICovCisgIENMT0JCRVJfRU9CTCwKKyAgLyogRW5k IG9mIHN0b3JhZ2UgZHVyYXRpb24sIGUuZy4gZnJlZS4gICovCisgIENMT0JCRVJfRU9TRCwKICAg Q0xPQkJFUl9MQVNUCiB9OwogCmRpZmYgLS1naXQgYS9nY2MvZ2ltcGxlLWxvd2VyLWJpdGludC5j YyBiL2djYy9naW1wbGUtbG93ZXItYml0aW50LmNjCmluZGV4IGM1NWMzMmZiNDBkLi4wMGMzYTVi MjBhOCAxMDA2NDQKLS0tIGEvZ2NjL2dpbXBsZS1sb3dlci1iaXRpbnQuY2MKKysrIGIvZ2NjL2dp bXBsZS1sb3dlci1iaXRpbnQuY2MKQEAgLTgwNiw3ICs4MDYsNyBAQCBiaXRpbnRfbGFyZ2VfaHVn ZTo6aGFuZGxlX29wZXJhbmQgKHRyZWUgb3AsIHRyZWUgaWR4KQogCSAgJiYgbV9hZnRlcl9zdG10 CiAJICAmJiBiaXRtYXBfYml0X3AgKG1fc2luZ2xlX3VzZV9uYW1lcywgU1NBX05BTUVfVkVSU0lP TiAob3ApKSkKIAl7Ci0JICB0cmVlIGNsb2JiZXIgPSBidWlsZF9jbG9iYmVyIChUUkVFX1RZUEUg KG1fdmFyc1twXSksIENMT0JCRVJfRU9MKTsKKwkgIHRyZWUgY2xvYmJlciA9IGJ1aWxkX2Nsb2Ji ZXIgKFRSRUVfVFlQRSAobV92YXJzW3BdKSwgQ0xPQkJFUl9FT1NEKTsKIAkgIGcgPSBnaW1wbGVf YnVpbGRfYXNzaWduIChtX3ZhcnNbcF0sIGNsb2JiZXIpOwogCSAgZ2ltcGxlX3N0bXRfaXRlcmF0 b3IgZ3NpID0gZ3NpX2Zvcl9zdG10IChtX2FmdGVyX3N0bXQpOwogCSAgZ3NpX2luc2VydF9hZnRl ciAoJmdzaSwgZywgR1NJX1NBTUVfU1RNVCk7CkBAIC0yMDYzLDcgKzIwNjMsNyBAQCBiaXRpbnRf bGFyZ2VfaHVnZTo6aGFuZGxlX29wZXJhbmRfYWRkciAodHJlZSBvcCwgZ2ltcGxlICpzdG10LAog ICAgICAgdHJlZSByZXQgPSBidWlsZF9mb2xkX2FkZHJfZXhwciAodmFyKTsKICAgICAgIGlmICgh c3RtdF9lbmRzX2JiX3AgKGdzaV9zdG10IChtX2dzaSkpKQogCXsKLQkgIHRyZWUgY2xvYmJlciA9 IGJ1aWxkX2Nsb2JiZXIgKGF0eXBlLCBDTE9CQkVSX0VPTCk7CisJICB0cmVlIGNsb2JiZXIgPSBi dWlsZF9jbG9iYmVyIChhdHlwZSwgQ0xPQkJFUl9FT1NEKTsKIAkgIGcgPSBnaW1wbGVfYnVpbGRf YXNzaWduICh2YXIsIGNsb2JiZXIpOwogCSAgZ3NpX2luc2VydF9hZnRlciAoJm1fZ3NpLCBnLCBH U0lfU0FNRV9TVE1UKTsKIAl9CkBAIC0yMTAwLDcgKzIxMDAsNyBAQCBiaXRpbnRfbGFyZ2VfaHVn ZTo6aGFuZGxlX29wZXJhbmRfYWRkciAodHJlZSBvcCwgZ2ltcGxlICpzdG10LAogCSAgICAgIHJl dCA9IGJ1aWxkX2ZvbGRfYWRkcl9leHByICh2YXIpOwogCSAgICAgIGlmICghc3RtdF9lbmRzX2Ji X3AgKGdzaV9zdG10IChtX2dzaSkpKQogCQl7Ci0JCSAgdHJlZSBjbG9iYmVyID0gYnVpbGRfY2xv YmJlciAobV9saW1iX3R5cGUsIENMT0JCRVJfRU9MKTsKKwkJICB0cmVlIGNsb2JiZXIgPSBidWls ZF9jbG9iYmVyIChtX2xpbWJfdHlwZSwgQ0xPQkJFUl9FT1NEKTsKIAkJICBnID0gZ2ltcGxlX2J1 aWxkX2Fzc2lnbiAodmFyLCBjbG9iYmVyKTsKIAkJICBnc2lfaW5zZXJ0X2FmdGVyICgmbV9nc2ks IGcsIEdTSV9TQU1FX1NUTVQpOwogCQl9CkBAIC0zNzA3LDcgKzM3MDcsNyBAQCBiaXRpbnRfbGFy Z2VfaHVnZTo6ZmluaXNoX2FyaXRoX292ZXJmbG93ICh0cmVlIHZhciwgdHJlZSBvYmosIHRyZWUg dHlwZSwKICAgICB9CiAgIGlmICh2YXIpCiAgICAgewotICAgICAgdHJlZSBjbG9iYmVyID0gYnVp bGRfY2xvYmJlciAoVFJFRV9UWVBFICh2YXIpLCBDTE9CQkVSX0VPTCk7CisgICAgICB0cmVlIGNs b2JiZXIgPSBidWlsZF9jbG9iYmVyIChUUkVFX1RZUEUgKHZhciksIENMT0JCRVJfRU9TRCk7CiAg ICAgICBnID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAodmFyLCBjbG9iYmVyKTsKICAgICAgIGdzaV9p bnNlcnRfYWZ0ZXIgKCZtX2dzaSwgZywgR1NJX1NBTUVfU1RNVCk7CiAgICAgfQpkaWZmIC0tZ2l0 IGEvZ2NjL2dpbXBsZS1zc2Etd2Fybi1hY2Nlc3MuY2MgYi9nY2MvZ2ltcGxlLXNzYS13YXJuLWFj Y2Vzcy5jYwppbmRleCAxNjQ2YmQxYmUxNC4uZTcxZTM3MjE0YzUgMTAwNjQ0Ci0tLSBhL2djYy9n aW1wbGUtc3NhLXdhcm4tYWNjZXNzLmNjCisrKyBiL2djYy9naW1wbGUtc3NhLXdhcm4tYWNjZXNz LmNjCkBAIC00MzY0LDcgKzQzNjQsNyBAQCB2b2lkCiBwYXNzX3dhY2Nlc3M6OmNoZWNrX3N0bXQg KGdpbXBsZSAqc3RtdCkKIHsKICAgaWYgKG1fY2hlY2tfZGFuZ2xpbmdfcAotICAgICAgJiYgZ2lt cGxlX2Nsb2JiZXJfcCAoc3RtdCwgQ0xPQkJFUl9FT0wpKQorICAgICAgJiYgZ2ltcGxlX2Nsb2Ji ZXJfcCAoc3RtdCwgQ0xPQkJFUl9FT1NEKSkKICAgICB7CiAgICAgICAvKiBJZ25vcmUgY2xvYmJl ciBzdGF0ZW1lbnRzIGluIGJsb2NrcyB3aXRoIGV4Y2VwdGlvbmFsIGVkZ2VzLiAgKi8KICAgICAg IGJhc2ljX2Jsb2NrIGJiID0gZ2ltcGxlX2JiIChzdG10KTsKZGlmZiAtLWdpdCBhL2djYy9naW1w bGlmeS5jYyBiL2djYy9naW1wbGlmeS5jYwppbmRleCAzNDJlNDNhN2YyNS4uZjdhMmE0ZDQ3MmMg MTAwNjQ0Ci0tLSBhL2djYy9naW1wbGlmeS5jYworKysgYi9nY2MvZ2ltcGxpZnkuY2MKQEAgLTE1 MTgsNyArMTUxOCw3IEBAIGdpbXBsaWZ5X2JpbmRfZXhwciAodHJlZSAqZXhwcl9wLCBnaW1wbGVf c2VxICpwcmVfcCkKIAkJICAgICAgdG1wID0gYnVpbGRfY2FsbF9leHByX2xvYyAoRVhQUl9MT0NB VElPTiAoKmUpLCB0bXAsIDIsIHYsCiAJCQkJCQkgYnVpbGRfemVyb19jc3QgKHB0cl90eXBlX25v ZGUpKTsKIAkJICAgICAgdHNpX2xpbmtfYWZ0ZXIgKCZlLCB0bXAsIFRTSV9TQU1FX1NUTVQpOwot CQkgICAgICB0bXAgPSBidWlsZF9jbG9iYmVyIChUUkVFX1RZUEUgKHYpLCBDTE9CQkVSX0VPTCk7 CisJCSAgICAgIHRtcCA9IGJ1aWxkX2Nsb2JiZXIgKFRSRUVfVFlQRSAodiksIENMT0JCRVJfRU9T RCk7CiAJCSAgICAgIHRtcCA9IGZvbGRfYnVpbGQyX2xvYyAobG9jLCBNT0RJRllfRVhQUiwgVFJF RV9UWVBFICh2KSwgdiwKIAkJCQkJICAgICBmb2xkX2NvbnZlcnQgKFRSRUVfVFlQRSAodiksIHRt cCkpOwogCQkgICAgICArK2U7CkBAIC0xNjUxLDcgKzE2NTEsNyBAQCBnaW1wbGlmeV9iaW5kX2V4 cHIgKHRyZWUgKmV4cHJfcCwgZ2ltcGxlX3NlcSAqcHJlX3ApCiAJCQkJCSBidWlsZF96ZXJvX2Nz dCAocHRyX3R5cGVfbm9kZSkpOwogCSAgICAgIGdpbXBsaWZ5X2FuZF9hZGQgKHRtcCwgJmNsZWFu dXApOwogCSAgICAgIGdpbXBsZSAqY2xvYmJlcl9zdG10OwotCSAgICAgIHRtcCA9IGJ1aWxkX2Ns b2JiZXIgKFRSRUVfVFlQRSAodiksIENMT0JCRVJfRU9MKTsKKwkgICAgICB0bXAgPSBidWlsZF9j bG9iYmVyIChUUkVFX1RZUEUgKHYpLCBDTE9CQkVSX0VPU0QpOwogCSAgICAgIGNsb2JiZXJfc3Rt dCA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKHYsIHRtcCk7CiAJICAgICAgZ2ltcGxlX3NldF9sb2Nh dGlvbiAoY2xvYmJlcl9zdG10LCBlbmRfbG9jdXMpOwogCSAgICAgIGdpbXBsaWZ5X3NlcV9hZGRf c3RtdCAoJmNsZWFudXAsIGNsb2JiZXJfc3RtdCk7CkBAIC0xNjY1LDcgKzE2NjUsNyBAQCBnaW1w bGlmeV9iaW5kX2V4cHIgKHRyZWUgKmV4cHJfcCwgZ2ltcGxlX3NlcSAqcHJlX3ApCiAJICAgICAg JiYgIWlzX2dpbXBsZV9yZWcgKHQpCiAJICAgICAgJiYgZmxhZ19zdGFja19yZXVzZSAhPSBTUl9O T05FKQogCSAgICB7Ci0JICAgICAgdHJlZSBjbG9iYmVyID0gYnVpbGRfY2xvYmJlciAoVFJFRV9U WVBFICh0KSwgQ0xPQkJFUl9FT0wpOworCSAgICAgIHRyZWUgY2xvYmJlciA9IGJ1aWxkX2Nsb2Ji ZXIgKFRSRUVfVFlQRSAodCksIENMT0JCRVJfRU9TRCk7CiAJICAgICAgZ2ltcGxlICpjbG9iYmVy X3N0bXQ7CiAJICAgICAgY2xvYmJlcl9zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAodCwgY2xv YmJlcik7CiAJICAgICAgZ2ltcGxlX3NldF9sb2NhdGlvbiAoY2xvYmJlcl9zdG10LCBlbmRfbG9j dXMpOwpAQCAtNzQxNyw3ICs3NDE3LDcgQEAgZ2ltcGxpZnlfdGFyZ2V0X2V4cHIgKHRyZWUgKmV4 cHJfcCwgZ2ltcGxlX3NlcSAqcHJlX3AsIGdpbXBsZV9zZXEgKnBvc3RfcCkKIAl7CiAJICBpZiAo ZmxhZ19zdGFja19yZXVzZSA9PSBTUl9BTEwpCiAJICAgIHsKLQkgICAgICB0cmVlIGNsb2JiZXIg PSBidWlsZF9jbG9iYmVyIChUUkVFX1RZUEUgKHRlbXApLCBDTE9CQkVSX0VPTCk7CisJICAgICAg dHJlZSBjbG9iYmVyID0gYnVpbGRfY2xvYmJlciAoVFJFRV9UWVBFICh0ZW1wKSwgQ0xPQkJFUl9F T1NEKTsKIAkgICAgICBjbG9iYmVyID0gYnVpbGQyIChNT0RJRllfRVhQUiwgVFJFRV9UWVBFICh0 ZW1wKSwgdGVtcCwgY2xvYmJlcik7CiAJICAgICAgZ2ltcGxlX3B1c2hfY2xlYW51cCAodGVtcCwg Y2xvYmJlciwgZmFsc2UsIHByZV9wLCB0cnVlKTsKIAkgICAgfQpkaWZmIC0tZ2l0IGEvZ2NjL3Ry ZWUtaW5saW5lLmNjIGIvZ2NjL3RyZWUtaW5saW5lLmNjCmluZGV4IGE0ZmM4MzlhMjJkLi5lNTkz NDJiMTQ1OCAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtaW5saW5lLmNjCisrKyBiL2djYy90cmVlLWlu bGluZS5jYwpAQCAtNTEzNiw3ICs1MTM2LDcgQEAgZXhwYW5kX2NhbGxfaW5saW5lIChiYXNpY19i bG9jayBiYiwgZ2ltcGxlICpzdG10LCBjb3B5X2JvZHlfZGF0YSAqaWQsCiAJICAgICAgJiYgIWlz X2dpbXBsZV9yZWcgKCp2YXJwKQogCSAgICAgICYmICEoaWQtPmRlYnVnX21hcCAmJiBpZC0+ZGVi dWdfbWFwLT5nZXQgKHApKSkKIAkgICAgewotCSAgICAgIHRyZWUgY2xvYmJlciA9IGJ1aWxkX2Ns b2JiZXIgKFRSRUVfVFlQRSAoKnZhcnApLCBDTE9CQkVSX0VPTCk7CisJICAgICAgdHJlZSBjbG9i YmVyID0gYnVpbGRfY2xvYmJlciAoVFJFRV9UWVBFICgqdmFycCksIENMT0JCRVJfRU9TRCk7CiAJ ICAgICAgZ2ltcGxlICpjbG9iYmVyX3N0bXQ7CiAJICAgICAgY2xvYmJlcl9zdG10ID0gZ2ltcGxl X2J1aWxkX2Fzc2lnbiAoKnZhcnAsIGNsb2JiZXIpOwogCSAgICAgIGdpbXBsZV9zZXRfbG9jYXRp b24gKGNsb2JiZXJfc3RtdCwgZ2ltcGxlX2xvY2F0aW9uIChzdG10KSk7CkBAIC01MjA4LDcgKzUy MDgsNyBAQCBleHBhbmRfY2FsbF9pbmxpbmUgKGJhc2ljX2Jsb2NrIGJiLCBnaW1wbGUgKnN0bXQs IGNvcHlfYm9keV9kYXRhICppZCwKIAkgICYmICFpc19naW1wbGVfcmVnIChpZC0+cmV0dmFyKQog CSAgJiYgIXN0bXRfZW5kc19iYl9wIChzdG10KSkKIAl7Ci0JICB0cmVlIGNsb2JiZXIgPSBidWls ZF9jbG9iYmVyIChUUkVFX1RZUEUgKGlkLT5yZXR2YXIpLCBDTE9CQkVSX0VPTCk7CisJICB0cmVl IGNsb2JiZXIgPSBidWlsZF9jbG9iYmVyIChUUkVFX1RZUEUgKGlkLT5yZXR2YXIpLCBDTE9CQkVS X0VPU0QpOwogCSAgZ2ltcGxlICpjbG9iYmVyX3N0bXQ7CiAJICBjbG9iYmVyX3N0bXQgPSBnaW1w bGVfYnVpbGRfYXNzaWduIChpZC0+cmV0dmFyLCBjbG9iYmVyKTsKIAkgIGdpbXBsZV9zZXRfbG9j YXRpb24gKGNsb2JiZXJfc3RtdCwgZ2ltcGxlX2xvY2F0aW9uIChvbGRfc3RtdCkpOwpkaWZmIC0t Z2l0IGEvZ2NjL3RyZWUtcHJldHR5LXByaW50LmNjIGIvZ2NjL3RyZWUtcHJldHR5LXByaW50LmNj CmluZGV4IDBkYWJiNmQxNTgwLi5mMDVlZjdhNDRhMyAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtcHJl dHR5LXByaW50LmNjCisrKyBiL2djYy90cmVlLXByZXR0eS1wcmludC5jYwpAQCAtMjYyNCw3ICsy NjI0LDcgQEAgZHVtcF9nZW5lcmljX25vZGUgKHByZXR0eV9wcmludGVyICpwcCwgdHJlZSBub2Rl LCBpbnQgc3BjLCBkdW1wX2ZsYWdzX3QgZmxhZ3MsCiAJaWYgKFRSRUVfQ0xPQkJFUl9QIChub2Rl KSkKIAkgIHsKIAkgICAgcHBfc3RyaW5nIChwcCwgIkNMT0JCRVIiKTsKLQkgICAgaWYgKENMT0JC RVJfS0lORCAobm9kZSkgPT0gQ0xPQkJFUl9FT0wpCisJICAgIGlmIChDTE9CQkVSX0tJTkQgKG5v ZGUpID09IENMT0JCRVJfRU9TRCkKIAkgICAgICBwcF9zdHJpbmcgKHBwLCAiKGVvbCkiKTsKIAkg IH0KIAllbHNlIGlmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAobm9kZSkpID09IFJFQ09SRF9UWVBF CmRpZmYgLS1naXQgYS9nY2MvdHJlZS1zc2EtY2NwLmNjIGIvZ2NjL3RyZWUtc3NhLWNjcC5jYwpp bmRleCBkZGNiYWFhYTQxNy4uMjQ1YWJhYWYxY2YgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLXNzYS1j Y3AuY2MKKysrIGIvZ2NjL3RyZWUtc3NhLWNjcC5jYwpAQCAtMjUyNSw3ICsyNTI1LDcgQEAgaW5z ZXJ0X2Nsb2JiZXJfYmVmb3JlX3N0YWNrX3Jlc3RvcmUgKHRyZWUgc2F2ZWRfdmFsLCB0cmVlIHZh ciwKICAgRk9SX0VBQ0hfSU1NX1VTRV9TVE1UIChzdG10LCBpdGVyLCBzYXZlZF92YWwpCiAgICAg aWYgKGdpbXBsZV9jYWxsX2J1aWx0aW5fcCAoc3RtdCwgQlVJTFRfSU5fU1RBQ0tfUkVTVE9SRSkp CiAgICAgICB7Ci0JY2xvYmJlciA9IGJ1aWxkX2Nsb2JiZXIgKFRSRUVfVFlQRSAodmFyKSwgQ0xP QkJFUl9FT0wpOworCWNsb2JiZXIgPSBidWlsZF9jbG9iYmVyIChUUkVFX1RZUEUgKHZhciksIENM T0JCRVJfRU9TRCk7CiAJY2xvYmJlcl9zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAodmFyLCBj bG9iYmVyKTsKIAogCWkgPSBnc2lfZm9yX3N0bXQgKHN0bXQpOwotLSAKMi4zOS4zCgo= --------------qwzCidczQ2kq2Vmu5kKqceNw--