From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o90.zoho.com (sender4-pp-o90.zoho.com [136.143.188.90]) by sourceware.org (Postfix) with ESMTPS id 62D423858D33; Fri, 22 Dec 2023 15:25:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 62D423858D33 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=zoho.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=zoho.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 62D423858D33 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=136.143.188.90 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1703258752; cv=pass; b=GgV8fYkyM2ttv3a2Fq3yBygLqoSk6NKBNKwgZ9nMKuid0lh4aBIaCAnCBn0Z0UlUifu3CTzOVwJU0A4v/lJyLwo1/CiwaDSPAbcl0zcR7H/cIuXBNPYbYC7WhkocmXGLocN3hRWvxWFEQ/NqStGcW9BoLcCJUAuJdrLpOo1Fraw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1703258752; c=relaxed/simple; bh=D8PLDh8VIY1nyNiAZhHblsRnZpLP4tyCsRFBROPineQ=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=dVg5sajHuqj97+vQWn3hw+nyWYiaQzlYQY3bIJP6cpmD/npFTahh1Tkmu/ic7ShfosLrNPQVqY7Rvmvd9QLV+D1rShfJ62pl0cBFHvxdVcikyAZgl/7IQEKfLDg43rX3p5J5owopGoM2ZW04SYME8AFaPotXZjEBiIFJRrd97s8= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1703258744; cv=none; d=zohomail.com; s=zohoarc; b=Q8Z4T/PBDY2K79T9KlVRYXWlP4g695p3Qbx15SpMEIbDaZEiDRM6HMD0A+OG6vHucMgTMyNmvVjrl87Mpl80kuRHgd9unksF5talSn6NGrBmdWw7SRUDls1IKYstG23AF0/ZVWrIFhN0TtEaazGms8SdEWfmKk2ZsP9QOB4VII8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1703258744; h=Content-Type:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=/Qsqov/L51hTe+r8sMZAY2oyT20JPFSTvhmVqzClJfk=; b=IZRzBv3+59s9xt/a2aqHZOueipu9VCUv+DM5xyr2oqNfI9zKsV+vS6K12o8I02NiW3F/gV5m3AoCyciKdi2tVkn6i4NEanh5f+teE5iWGcpaV3vMFFEfeVHwQri+IgdIsI7tebTOhqyT2hXmAIYQ+sivJVCjxzyyKv/CsDIqPOA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1703258744; s=zm2022; d=zoho.com; i=bouanto@zoho.com; h=Message-ID:Subject:Subject:From:From:To:To:Cc:Cc:Date:Date:Content-Type:MIME-Version:Feedback-ID:Message-Id:Reply-To; bh=/Qsqov/L51hTe+r8sMZAY2oyT20JPFSTvhmVqzClJfk=; b=fda7hZw0xk/YslT8jKWMtgkevD/6Yw9zQeNjZlpAfKR427GK+4Rg8pE+pHBVDT9d yATgsKXT/qty2UDv+llDxQFqLvaBFBVx7+386e8j7wkQlnvrnz8b2KidLNI4kcYFa8g UOmpb2I2TwpZmYEnfwBWcyrmuYsYGElsBs3guaNM= Received: from [192.168.1.172] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1703258743164194.48992049355718; Fri, 22 Dec 2023 07:25:43 -0800 (PST) Message-ID: <8d25e331b0c28ca9b632bf3fb3a239661592af78.camel@zoho.com> Subject: [PATCH] libgccjit: Implement sizeof operator From: Antoni Boucher To: "jit@gcc.gnu.org" , "gcc-patches@gcc.gnu.org" Cc: David Malcolm Date: Fri, 22 Dec 2023 10:25:41 -0500 Autocrypt: addr=bouanto@zoho.com; prefer-encrypt=mutual; keydata=mQENBFOSMLQBCADO5aw6Ys8thMQUNzrwAnfJX2wbgWiz0pQ01DjYj22eeIpChkoZn6LWdt4dieq30u2rFi/yQzJ02foHwI2+aL9rU6xz/x4TwqyRJQGMOqklNc3R+pdXmH4WDQkQDWmLxvc07vu+zb8Tx5A6pMDh4J2ncCEhLEUcH39Yq/yg4eBnFwUX6N7kakvHrnScGNqhnSFCacoJeMJUAR+1G7VBSBd++jmnHLnx3mj7QkRZVECJUw2zqiv1yReCC6GU4SvqLjdqm5ZGeoWOqD/NHjBRoEeOVjzp6M/qOjjWRbkJVqmvgfcD8UytSSqqboR35YFT4L+rZt2ri3T12MJb3i5syCAXABEBAAG0IUFudG9uaSBCb3VjaGVyIDxib3VhbnRvQHpvaG8uY29tPokBVgQTAQgAQAIbIwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QM4FCRLMEZoACgkQRVeGAwR4zcFBQQf/afttJrA/puADQZhrDfkgr0MFvq6iB+GCy1b8BkXimk1TOXTPt87YLehSeijNu3JkYhl5eRc87BNfU9J87KfI/KIy6hZxqlDXk16FhW9bw/7wYEA0hpb3MUn7xLElXDT0ZHaD+KTe8Oun7qfzgx5RlL6r/WODf3CkSpO085R/rfeBqDEx9mVlhDWgq6Az3CZoD+3CqiCKVqmDuHTWz4kwrd9AM5eVcLvvLKnZIdoIp+G5Ao6BvaGlZyfenN1iOSjLy2NXNt4MnUt0lUYEP5KSIIRhHQ8xkUbj7eWUmaahkxhNb3fH3sAPwGnRZrPpb4rgYzNmSk63wWMh9M2xk+rLb7kBDQRTkjC0AQgAumZzsAV/UFWI+dpzebQfma36kKYZZFuseant5sq/HWP553XQ/U6ttJiKyN5MpCqtxvCAoRplf42YhlHuFqgf73WJxoJ6Y+sdyqoBSwlR+ gzAneAmsa8gmmY0wawH0Z2leazjKuS7mJjVEQZg0ZGsiCVRGeRnDqFGzDEzDc9ngWKSoTq0fKzlGy1X85OrtmUrvEbhSo6HP+FoeunHkIqrxu3w3vDoFEXxVQlKI6V3I4nCz5n6DB8WR3L7nsiiTnOiGirPw1ngvWFLW86kkA4FJpayc8Xl3va3SLY+2y4yuROboX2DVI4AC/Qeug/mDiBicPxkP6YfUartQRMe6obkEQARAQABiQE8BBgBCAAmAhsMFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QRsFCRLMEecACgkQRVeGAwR4zcE56ggAgTgrJInBKC+7552Dpccuo6Clh3wZfjlNLv9/6r5lKEbaNzaTrfhPiAP4WgnluIUmj8amOFLFJpj+BAVNOXpZ4D2R3o9ch8z7fot+fW4Yw+PKIxH4I2xEys8ndoEB3aiQwHjKcGIhkIU7uyMJFQr2aWjdTY0gmXw0YZueHOSLgo7uX4XKxB8fEO/yto/Tff2YBAAq+AtNwt+Gh5YS9rZw7rwUTWMi84yVOlc+zRE79E9NJkvdTwX7IJYo64VzIRNfgHsn7QNdVzuM1XIFHl+Glk6cIlI8s6BO7nEoCn3hTF104fQTAO3fEs+XXZOKXo2lk8faowEoPq5r58StrV0nyg== Content-Type: multipart/mixed; boundary="=-v76qkoZK6SArblffXY5n" User-Agent: Evolution 3.50.2 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/203.214.55 Feedback-ID: rr0801122863c0524618718901d424a9ea0000a804454ab9c4d8b4c30c184481198202367f5e16ed90774fab1d:zu08011226900ee0d917139cf97a0e3bd8000014fe30d5631d868aaf6156eeab59a163d63b270a5a9037f8:rf080112323455e8059663c73e0f3568e300005e4c1e9571a33777de57328467552b9b7afc384fa8ec965f9305db2b1436139fdee8df85:ZohoMail X-ZohoMailClient: External X-Spam-Status: No, score=-11.8 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,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: --=-v76qkoZK6SArblffXY5n Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi. This patch adds the support of the sizeof operator. I was wondering if this new API entrypoint should take a location as a parameter. What do you think? Thanks for the review. --=-v76qkoZK6SArblffXY5n Content-Disposition: attachment; filename="0001-libgccjit-Implement-sizeof-operator.patch" Content-Type: text/x-patch; name="0001-libgccjit-Implement-sizeof-operator.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlODZlMDBlZmFlNDUwZjA0YmM5MmFlNmU0ZTYxY2Y5MmMzOGQ5YjdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KRGF0 ZTogVHVlLCAxOSBTZXAgMjAyMyAyMjoxMDo0NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGxpYmdj Y2ppdDogSW1wbGVtZW50IHNpemVvZiBvcGVyYXRvcgoKZ2NjL2ppdC9DaGFuZ2VMb2c6CgoJKiBk b2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdCAoTElCR0NDSklUX0FCSV8yNik6IE5ldyBBQkkg dGFnLgoJKiBkb2NzL3RvcGljcy9leHByZXNzaW9ucy5yc3Q6IERvY3VtZW50IGdjY19qaXRfY29u dGV4dF9uZXdfc2l6ZW9mLgoJKiBqaXQtcGxheWJhY2suY2MgKG5ld19zaXplb2YpOiBOZXcgbWV0 aG9kLgoJKiBqaXQtcGxheWJhY2suaCAobmV3X3NpemVvZik6IE5ldyBtZXRob2QuCgkqIGppdC1y ZWNvcmRpbmcuY2MgKHJlY29yZGluZzo6Y29udGV4dDo6bmV3X3NpemVvZiwKCXJlY29yZGluZzo6 bWVtZW50b19vZl9uZXdfc2l6ZW9mOjpyZXBsYXlfaW50bywKCXJlY29yZGluZzo6bWVtZW50b19v Zl9uZXdfc2l6ZW9mOjptYWtlX2RlYnVnX3N0cmluZywKCXJlY29yZGluZzo6bWVtZW50b19vZl9u ZXdfc2l6ZW9mOjp3cml0ZV9yZXByb2R1Y2VyKTogTmV3IG1ldGhvZHMuCgkqIGppdC1yZWNvcmRp bmcuaCAoY2xhc3MgbWVtZW50b19vZl9uZXdfc2l6ZW9mKTogTmV3IGNsYXNzLgoJKiBsaWJnY2Nq aXQuY2MgKGdjY19qaXRfY29udGV4dF9uZXdfc2l6ZW9mKTogTmV3IGZ1bmN0aW9uLgoJKiBsaWJn Y2NqaXQuaCAoZ2NjX2ppdF9jb250ZXh0X25ld19zaXplb2YpOiBOZXcgZnVuY3Rpb24uCgkqIGxp YmdjY2ppdC5tYXA6IE5ldyBmdW5jdGlvbi4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSog aml0LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0cy5oOiBOZXcgdGVzdC4KCSogaml0LmRnL3Rlc3Qt c2l6ZW9mLmM6IE5ldyB0ZXN0LgotLS0KIGdjYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0 eS5yc3QgICAgICAgIHwgIDcgKysrCiBnY2Mvaml0L2RvY3MvdG9waWNzL2V4cHJlc3Npb25zLnJz dCAgICAgICAgICB8IDE0ICsrKysrKwogZ2NjL2ppdC9qaXQtcGxheWJhY2suY2MgICAgICAgICAg ICAgICAgICAgICAgfCAxMCArKysrCiBnY2Mvaml0L2ppdC1wbGF5YmFjay5oICAgICAgICAgICAg ICAgICAgICAgICB8ICAzICsrCiBnY2Mvaml0L2ppdC1yZWNvcmRpbmcuY2MgICAgICAgICAgICAg ICAgICAgICB8IDUyICsrKysrKysrKysrKysrKysrKysrCiBnY2Mvaml0L2ppdC1yZWNvcmRpbmcu aCAgICAgICAgICAgICAgICAgICAgICB8IDI4ICsrKysrKysrKysrCiBnY2Mvaml0L2xpYmdjY2pp dC5jYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysKIGdjYy9qaXQvbGliZ2Nj aml0LmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysKIGdjYy9qaXQvbGliZ2Nj aml0Lm1hcCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysKIGdjYy90ZXN0c3VpdGUvaml0 LmRnL2FsbC1ub24tZmFpbGluZy10ZXN0cy5oIHwgMTAgKysrKwogZ2NjL3Rlc3RzdWl0ZS9qaXQu ZGcvdGVzdC1zaXplb2YuYyAgICAgICAgICAgfCA1MCArKysrKysrKysrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAyMDkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvaml0LmRnL3Rlc3Qtc2l6ZW9mLmMKCmRpZmYgLS1naXQgYS9nY2Mvaml0L2RvY3Mv dG9waWNzL2NvbXBhdGliaWxpdHkucnN0IGIvZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21wYXRpYmls aXR5LnJzdAppbmRleCBlYmVkZTQ0MGVlNC4uMDBjZjg4YTQ2NjYgMTAwNjQ0Ci0tLSBhL2djYy9q aXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0eS5yc3QKKysrIGIvZ2NjL2ppdC9kb2NzL3RvcGlj cy9jb21wYXRpYmlsaXR5LnJzdApAQCAtMzc4LDMgKzM3OCwxMCBAQCBhbGlnbm1lbnQgb2YgYSB2 YXJpYWJsZToKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiBgYExJQkdDQ0pJVF9BQklfMjVgYCBjb3Zl cnMgdGhlIGFkZGl0aW9uIG9mCiA6ZnVuYzpgZ2NjX2ppdF90eXBlX2dldF9yZXN0cmljdGAKKwor Li4gX0xJQkdDQ0pJVF9BQklfMjY6CisKK2BgTElCR0NDSklUX0FCSV8yNmBgCistLS0tLS0tLS0t LS0tLS0tLS0tLQorYGBMSUJHQ0NKSVRfQUJJXzI2YGAgY292ZXJzIHRoZSBhZGRpdGlvbiBvZgor OmZ1bmM6YGdjY19qaXRfY29udGV4dF9uZXdfc2l6ZW9mYApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9k b2NzL3RvcGljcy9leHByZXNzaW9ucy5yc3QgYi9nY2Mvaml0L2RvY3MvdG9waWNzL2V4cHJlc3Np b25zLnJzdAppbmRleCA0MmNmZWUzNjMwMi4uYTE4OTA5ZjQ4OTAgMTAwNjQ0Ci0tLSBhL2djYy9q aXQvZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0CisrKyBiL2djYy9qaXQvZG9jcy90b3BpY3Mv ZXhwcmVzc2lvbnMucnN0CkBAIC0xMjYsNiArMTI2LDIwIEBAIFNpbXBsZSBleHByZXNzaW9ucwog ICAgdW5kZXJseWluZyBzdHJpbmcsIHNvIGl0IGlzIHZhbGlkIHRvIHBhc3MgaW4gYSBwb2ludGVy IHRvIGFuIG9uLXN0YWNrCiAgICBidWZmZXIuCiAKKy4uIGZ1bmN0aW9uOjogZ2NjX2ppdF9ydmFs dWUgKlwKKyAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19zaXplb2YgKGdjY19qaXRf Y29udGV4dCAqY3R4dCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2NjX2ppdF90eXBlICp0eXBlKQorCisgICBHZW5lcmF0ZSBhbiBydmFsdWUgdGhhdCBpcyBl cXVhbCB0byB0aGUgc2l6ZSBvZiBgYHR5cGVgYC4KKworICAgVGhlIHBhcmFtZXRlciBgYHR5cGVg YCBtdXN0IGJlIG5vbi1OVUxMLgorCisgICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhpcyBDIGNv ZGU6CisKKyAgIC4uIGNvZGUtYmxvY2s6OiBjCisKKyAgICAgc2l6ZW9mICh0eXBlKQorCiBDb25z dHJ1Y3RvciBleHByZXNzaW9ucwogKioqKioqKioqKioqKioqKioqKioqKioKIApkaWZmIC0tZ2l0 IGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suY2MgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jYwppbmRl eCBkZGRkNTM3ZjNiMS4uMDliNWU4OTk0MmYgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvaml0LXBsYXli YWNrLmNjCisrKyBiL2djYy9qaXQvaml0LXBsYXliYWNrLmNjCkBAIC05NzQsNiArOTc0LDE2IEBA IG5ld19ydmFsdWVfZnJvbV9jb25zdCA8dm9pZCAqPiAodHlwZSAqdHlwZSwKIAogLyogQ29uc3Ry dWN0IGEgcGxheWJhY2s6OnJ2YWx1ZSBpbnN0YW5jZSAod3JhcHBpbmcgYSB0cmVlKS4gICovCiAK K3BsYXliYWNrOjpydmFsdWUgKgorcGxheWJhY2s6OmNvbnRleHQ6OgorbmV3X3NpemVvZiAodHlw ZSAqdHlwZSkKK3sKKyAgdHJlZSBpbm5lciA9IFRZUEVfU0laRV9VTklUICh0eXBlLT5hc190cmVl ICgpKTsKKyAgcmV0dXJuIG5ldyBydmFsdWUgKHRoaXMsIGlubmVyKTsKK30KKworLyogQ29uc3Ry dWN0IGEgcGxheWJhY2s6OnJ2YWx1ZSBpbnN0YW5jZSAod3JhcHBpbmcgYSB0cmVlKS4gICovCisK IHBsYXliYWNrOjpydmFsdWUgKgogcGxheWJhY2s6OmNvbnRleHQ6OgogbmV3X3N0cmluZ19saXRl cmFsIChjb25zdCBjaGFyICp2YWx1ZSkKZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXBsYXliYWNr LmggYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5oCmluZGV4IGIwMTY2ZjhmNmNlLi5hNTM3YTU0MzNj MyAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suaAorKysgYi9nY2Mvaml0L2ppdC1w bGF5YmFjay5oCkBAIC0xMzksNiArMTM5LDkgQEAgcHVibGljOgogICBuZXdfcnZhbHVlX2Zyb21f Y29uc3QgKHR5cGUgKnR5cGUsCiAJCQkgSE9TVF9UWVBFIHZhbHVlKTsKIAorICBydmFsdWUgKgor ICBuZXdfc2l6ZW9mICh0eXBlICp0eXBlKTsKKwogICBydmFsdWUgKgogICBuZXdfc3RyaW5nX2xp dGVyYWwgKGNvbnN0IGNoYXIgKnZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVj b3JkaW5nLmNjIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjCmluZGV4IDliNWI4MDA1ZWJlLi5j MWU0ZTY4Y2FlNiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjCisrKyBiL2dj Yy9qaXQvaml0LXJlY29yZGluZy5jYwpAQCAtMTA3Niw2ICsxMDc2LDIxIEBAIHJlY29yZGluZzo6 Y29udGV4dDo6bmV3X2dsb2JhbF9pbml0X3J2YWx1ZSAobHZhbHVlICp2YXJpYWJsZSwKICAgZ2Js LT5zZXRfcnZhbHVlX2luaXQgKGluaXQpOyAvKiBOZWVkZWQgYnkgdGhlIGdsb2JhbCBmb3Igd3Jp dGUgZHVtcC4gICovCiB9CiAKKy8qIENyZWF0ZSBhIHJlY29yZGluZzo6bWVtZW50b19vZl9zaXpl b2YgaW5zdGFuY2UgYW5kIGFkZCBpdAorICAgdG8gdGhpcyBjb250ZXh0J3MgbGlzdCBvZiBtZW1l bnRvcy4KKworICAgSW1wbGVtZW50cyB0aGUgcG9zdC1lcnJvci1jaGVja2luZyBwYXJ0IG9mCisg ICBnY2Nfaml0X2NvbnRleHRfbmV3X3NpemVvZi4gICovCisKK3JlY29yZGluZzo6cnZhbHVlICoK K3JlY29yZGluZzo6Y29udGV4dDo6bmV3X3NpemVvZiAocmVjb3JkaW5nOjp0eXBlICp0eXBlKQor eworICByZWNvcmRpbmc6OnJ2YWx1ZSAqcmVzdWx0ID0KKyAgICBuZXcgbWVtZW50b19vZl9uZXdf c2l6ZW9mICh0aGlzLCBOVUxMLCB0eXBlKTsKKyAgcmVjb3JkIChyZXN1bHQpOworICByZXR1cm4g cmVzdWx0OworfQorCiAvKiBDcmVhdGUgYSByZWNvcmRpbmc6Om1lbWVudG9fb2ZfbmV3X3N0cmlu Z19saXRlcmFsIGluc3RhbmNlIGFuZCBhZGQgaXQKICAgIHRvIHRoaXMgY29udGV4dCdzIGxpc3Qg b2YgbWVtZW50b3MuCiAKQEAgLTUzMTAsNiArNTMyNSw0MyBAQCBtZW1lbnRvX29mX25ld19ydmFs dWVfZnJvbV9jb25zdCA8dm9pZCAqPjo6d3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcikK IAogfSAvLyBuYW1lc3BhY2UgcmVjb3JkaW5nCiAKKy8qIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBj bGFzcyBnY2M6OmppdDo6cmVjb3JkaW5nOjptZW1lbnRvX29mX25ld19zaXplb2YuICAqLworCisv KiBJbXBsZW1lbnRhdGlvbiBvZiBwdXJlIHZpcnR1YWwgaG9vayByZWNvcmRpbmc6Om1lbWVudG86 OnJlcGxheV9pbnRvCisgICBmb3IgcmVjb3JkaW5nOjptZW1lbnRvX29mX25ld19zaXplb2YuICAq LworCit2b2lkCityZWNvcmRpbmc6Om1lbWVudG9fb2ZfbmV3X3NpemVvZjo6cmVwbGF5X2ludG8g KHJlcGxheWVyICpyKQoreworICBzZXRfcGxheWJhY2tfb2JqIChyLT5uZXdfc2l6ZW9mIChtX3R5 cGUtPnBsYXliYWNrX3R5cGUgKCkpKTsKK30KKworLyogSW1wbGVtZW50YXRpb24gb2YgcmVjb3Jk aW5nOjptZW1lbnRvOjptYWtlX2RlYnVnX3N0cmluZyBmb3IKKyAgIHNpemVvZiBleHByZXNzaW9u cy4gICovCisKK3JlY29yZGluZzo6c3RyaW5nICoKK3JlY29yZGluZzo6bWVtZW50b19vZl9uZXdf c2l6ZW9mOjptYWtlX2RlYnVnX3N0cmluZyAoKQoreworICByZXR1cm4gc3RyaW5nOjpmcm9tX3By aW50ZiAobV9jdHh0LAorCQkJICAgICAgInNpemVvZiAoJXMpIiwKKwkJCSAgICAgIG1fdHlwZS0+ Z2V0X2RlYnVnX3N0cmluZyAoKSk7Cit9CisKKy8qIEltcGxlbWVudGF0aW9uIG9mIHJlY29yZGlu Zzo6bWVtZW50bzo6d3JpdGVfcmVwcm9kdWNlciBmb3Igc2l6ZW9mCisgICBleHByZXNzaW9ucy4g Ki8KKwordm9pZAorcmVjb3JkaW5nOjptZW1lbnRvX29mX25ld19zaXplb2Y6OndyaXRlX3JlcHJv ZHVjZXIgKHJlcHJvZHVjZXIgJnIpCit7CisgIGNvbnN0IGNoYXIgKmlkID0gci5tYWtlX2lkZW50 aWZpZXIgKHRoaXMsICJydmFsdWUiKTsKKyAgci53cml0ZSAoIiAgZ2NjX2ppdF9ydmFsdWUgKiVz ID1cbiIKKyAgICAiICAgIGdjY19qaXRfY29udGV4dF9uZXdfc2l6ZW9mICglcywgLyogZ2NjX2pp dF9jb250ZXh0ICpjdHh0ICovXG4iCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJXMpOyAvKiBnY2Nfaml0X3R5cGUgKnR5cGUgKi9cbiIsCisgICAgaWQsCisgICAgci5nZXRf aWRlbnRpZmllciAoZ2V0X2NvbnRleHQgKCkpLAorICAgIHIuZ2V0X2lkZW50aWZpZXIgKG1fdHlw ZSkpOworfQorCiAvKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgY2xhc3MgZ2NjOjpqaXQ6OnJlY29y ZGluZzo6bWVtZW50b19vZl9uZXdfc3RyaW5nX2xpdGVyYWwuICAqLwogCiAvKiBJbXBsZW1lbnRh dGlvbiBvZiBwdXJlIHZpcnR1YWwgaG9vayByZWNvcmRpbmc6Om1lbWVudG86OnJlcGxheV9pbnRv CmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaCBiL2djYy9qaXQvaml0LXJlY29y ZGluZy5oCmluZGV4IDRhODA4Mjk5MWZiLi5jMzVjYThhZmJlNiAxMDA2NDQKLS0tIGEvZ2NjL2pp dC9qaXQtcmVjb3JkaW5nLmgKKysrIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmgKQEAgLTE2NSw2 ICsxNjUsOSBAQCBwdWJsaWM6CiAgIG5ld19ydmFsdWVfZnJvbV9jb25zdCAodHlwZSAqdHlwZSwK IAkJCSBIT1NUX1RZUEUgdmFsdWUpOwogCisgIHJ2YWx1ZSAqCisgIG5ld19zaXplb2YgKHR5cGUg KnR5cGUpOworCiAgIHJ2YWx1ZSAqCiAgIG5ld19zdHJpbmdfbGl0ZXJhbCAoY29uc3QgY2hhciAq dmFsdWUpOwogCkBAIC0xNTc1LDYgKzE1NzgsMzEgQEAgcHJpdmF0ZToKICAgSE9TVF9UWVBFIG1f dmFsdWU7CiB9OwogCitjbGFzcyBtZW1lbnRvX29mX25ld19zaXplb2YgOiBwdWJsaWMgcnZhbHVl Cit7CitwdWJsaWM6CisgIG1lbWVudG9fb2ZfbmV3X3NpemVvZiAoY29udGV4dCAqY3R4dCwKKwkJ CSBsb2NhdGlvbiAqbG9jLAorCQkJIHR5cGUgKnR5cGUpCisgIDogcnZhbHVlIChjdHh0LCBsb2Ms IGN0eHQtPmdldF90eXBlIChHQ0NfSklUX1RZUEVfSU5UKSksCisgICAgbV90eXBlICh0eXBlKSB7 fQorCisgIHZvaWQgcmVwbGF5X2ludG8gKHJlcGxheWVyICpyKSBmaW5hbCBvdmVycmlkZTsKKwor ICB2b2lkIHZpc2l0X2NoaWxkcmVuIChydmFsdWVfdmlzaXRvciAqKSBmaW5hbCBvdmVycmlkZSB7 fQorCitwcml2YXRlOgorICBzdHJpbmcgKiBtYWtlX2RlYnVnX3N0cmluZyAoKSBmaW5hbCBvdmVy cmlkZTsKKyAgdm9pZCB3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKSBmaW5hbCBvdmVy cmlkZTsKKyAgZW51bSBwcmVjZWRlbmNlIGdldF9wcmVjZWRlbmNlICgpIGNvbnN0IGZpbmFsIG92 ZXJyaWRlCisgIHsKKyAgICByZXR1cm4gUFJFQ0VERU5DRV9QUklNQVJZOworICB9CisKK3ByaXZh dGU6CisgIHR5cGUgKm1fdHlwZTsKK307CisKIGNsYXNzIG1lbWVudG9fb2ZfbmV3X3N0cmluZ19s aXRlcmFsIDogcHVibGljIHJ2YWx1ZQogewogcHVibGljOgpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9s aWJnY2NqaXQuY2MgYi9nY2Mvaml0L2xpYmdjY2ppdC5jYwppbmRleCAwNDUxYjRkZjdmOS4uNTIy MzBlOTRkZTUgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmNjCisrKyBiL2djYy9qaXQv bGliZ2Njaml0LmNjCkBAIC0yMDczLDYgKzIwNzMsMjQgQEAgZ2NjX2ppdF9jb250ZXh0X251bGwg KGdjY19qaXRfY29udGV4dCAqY3R4dCwKICAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfcnZh bHVlX2Zyb21fcHRyIChjdHh0LCBwb2ludGVyX3R5cGUsIE5VTEwpOwogfQogCisvKiBQdWJsaWMg ZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBpbiBsaWJnY2NqaXQuaC4KKworICAgQWZ0ZXIg ZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdvcmsgaXMgZG9uZSBieSB0aGUKKyAgIGdjYzo6aml0 OjpyZWNvcmRpbmc6OmNvbnRleHQ6Om5ld19zaXplb2YgbWV0aG9kIGluCisgICBqaXQtcmVjb3Jk aW5nLmNjLiAgKi8KKworZ2NjX2ppdF9ydmFsdWUgKgorZ2NjX2ppdF9jb250ZXh0X25ld19zaXpl b2YgKGdjY19qaXRfY29udGV4dCAqY3R4dCwKKwkJCSAgICBnY2Nfaml0X3R5cGUgKnR5cGUpCit7 CisgIFJFVFVSTl9OVUxMX0lGX0ZBSUwgKGN0eHQsIE5VTEwsIE5VTEwsICJOVUxMIGNvbnRleHQi KTsKKyAgUkVUVVJOX05VTExfSUZfRkFJTCAodHlwZSwgY3R4dCwgTlVMTCwgIk5VTEwgdHlwZSIp OworICBKSVRfTE9HX0ZVTkMgKGN0eHQtPmdldF9sb2dnZXIgKCkpOworCisgIHJldHVybiAoKGdj Y19qaXRfcnZhbHVlICopY3R4dAorCSAgLT5uZXdfc2l6ZW9mICh0eXBlKSk7Cit9CisKIC8qIFB1 YmxpYyBlbnRyeXBvaW50LiAgU2VlIGRlc2NyaXB0aW9uIGluIGxpYmdjY2ppdC5oLgogCiAgICBB ZnRlciBlcnJvci1jaGVja2luZywgdGhlIHJlYWwgd29yayBpcyBkb25lIGJ5IHRoZQpkaWZmIC0t Z2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQuaCBiL2djYy9qaXQvbGliZ2Njaml0LmgKaW5kZXggNzQ5 ZjZjMjQxNzcuLjAyZjNjNTk0MzM1IDEwMDY0NAotLS0gYS9nY2Mvaml0L2xpYmdjY2ppdC5oCisr KyBiL2djYy9qaXQvbGliZ2Njaml0LmgKQEAgLTEwOTMsNiArMTA5MywxOCBAQCBleHRlcm4gZ2Nj X2ppdF9ydmFsdWUgKgogZ2NjX2ppdF9jb250ZXh0X251bGwgKGdjY19qaXRfY29udGV4dCAqY3R4 dCwKIAkJICAgICAgZ2NjX2ppdF90eXBlICpwb2ludGVyX3R5cGUpOwogCisjZGVmaW5lIExJQkdD Q0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9uZXdfc2l6ZW9mCisKKy8qIEdlbmVyYXRlcyBhbiBy dmFsdWUgdGhhdCBpcyBlcXVhbCB0byB0aGUgc2l6ZSBvZiB0eXBlLgorCisgICBUaGlzIEFQSSBl bnRyeXBvaW50IHdhcyBhZGRlZCBpbiBMSUJHQ0NKSVRfQUJJXzI2OyB5b3UgY2FuIHRlc3QgZm9y IGl0cworICAgcHJlc2VuY2UgdXNpbmcKKyAgICAgI2lmZGVmIExJQkdDQ0pJVF9IQVZFX2djY19q aXRfY29udGV4dF9uZXdfc2l6ZW9mICAqLworCitleHRlcm4gZ2NjX2ppdF9ydmFsdWUgKgorZ2Nj X2ppdF9jb250ZXh0X25ld19zaXplb2YgKGdjY19qaXRfY29udGV4dCAqY3R4dCwKKwkJCSAgICBn Y2Nfaml0X3R5cGUgKnR5cGUpOworCiAvKiBTdHJpbmcgbGl0ZXJhbHMuICovCiBleHRlcm4gZ2Nj X2ppdF9ydmFsdWUgKgogZ2NjX2ppdF9jb250ZXh0X25ld19zdHJpbmdfbGl0ZXJhbCAoZ2NjX2pp dF9jb250ZXh0ICpjdHh0LApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwIGIvZ2Nj L2ppdC9saWJnY2NqaXQubWFwCmluZGV4IDhiOTBhMGUyZmYzLi5mOTQ2MjUwYzViNiAxMDA2NDQK LS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwCisrKyBiL2djYy9qaXQvbGliZ2Njaml0Lm1hcApA QCAtMjc2LDMgKzI3Niw4IEBAIExJQkdDQ0pJVF9BQklfMjUgewogICBnbG9iYWw6CiAgICAgZ2Nj X2ppdF90eXBlX2dldF9yZXN0cmljdDsKIH0gTElCR0NDSklUX0FCSV8yNDsKKworTElCR0NDSklU X0FCSV8yNiB7CisgIGdsb2JhbDoKKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3NpemVvZjsKK30g TElCR0NDSklUX0FCSV8yNTsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1u b24tZmFpbGluZy10ZXN0cy5oIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5n LXRlc3RzLmgKaW5kZXggZTc2MjU2M2Y5YmQuLjA3OWNlMjBiODViIDEwMDY0NAotLS0gYS9nY2Mv dGVzdHN1aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaAorKysgYi9nY2MvdGVzdHN1 aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaApAQCAtMzIyLDYgKzMyMiwxMyBAQAog LyogdGVzdC1zZXR0aW5nLWFsaWdubWVudC5jOiBUaGlzIGNhbid0IGJlIGluIHRoZSB0ZXN0Y2Fz ZXMgYXJyYXkgYXMgaXQKICAgIGlzIHRhcmdldC1zcGVjaWZpYy4gICovCiAKKy8qIHRlc3Qtc2l6 ZW9mLmMgKi8KKyNkZWZpbmUgY3JlYXRlX2NvZGUgY3JlYXRlX2NvZGVfc2l6ZW9mCisjZGVmaW5l IHZlcmlmeV9jb2RlIHZlcmlmeV9jb2RlX3NpemVvZgorI2luY2x1ZGUgInRlc3Qtc2l6ZW9mLmMi CisjdW5kZWYgY3JlYXRlX2NvZGUKKyN1bmRlZiB2ZXJpZnlfY29kZQorCiAvKiB0ZXN0LXN0cmlu Zy1saXRlcmFsLmMgKi8KICNkZWZpbmUgY3JlYXRlX2NvZGUgY3JlYXRlX2NvZGVfc3RyaW5nX2xp dGVyYWwKICNkZWZpbmUgdmVyaWZ5X2NvZGUgdmVyaWZ5X2NvZGVfc3RyaW5nX2xpdGVyYWwKQEAg LTUwNiw2ICs1MTMsOSBAQCBjb25zdCBzdHJ1Y3QgdGVzdGNhc2UgdGVzdGNhc2VzW10gPSB7CiAg IHsicmVmbGVjdGlvbiIsCiAgICBjcmVhdGVfY29kZV9yZWZsZWN0aW9uICwKICAgIHZlcmlmeV9j b2RlX3JlZmxlY3Rpb24gfSwKKyAgeyJzaXplb2YiLAorICAgY3JlYXRlX2NvZGVfc2l6ZW9mLAor ICAgdmVyaWZ5X2NvZGVfc2l6ZW9mfSwKICAgeyJzdHJpbmdfbGl0ZXJhbCIsCiAgICBjcmVhdGVf Y29kZV9zdHJpbmdfbGl0ZXJhbCwKICAgIHZlcmlmeV9jb2RlX3N0cmluZ19saXRlcmFsfSwKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3Qtc2l6ZW9mLmMgYi9nY2MvdGVzdHN1 aXRlL2ppdC5kZy90ZXN0LXNpemVvZi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi42YWVmOTAyN2I0ZgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvaml0 LmRnL3Rlc3Qtc2l6ZW9mLmMKQEAgLTAsMCArMSw1MCBAQAorI2luY2x1ZGUgPHN0ZGxpYi5oPgor I2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW50 Lmg+CisKKyNpbmNsdWRlICJsaWJnY2NqaXQuaCIKKworI2luY2x1ZGUgImhhcm5lc3MuaCIKKwor dm9pZAorY3JlYXRlX2NvZGUgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgdm9pZCAqdXNlcl9kYXRh KQoreworICAvKiBMZXQncyB0cnkgdG8gaW5qZWN0IHRoZSBlcXVpdmFsZW50IG9mOgoraW50Citt eV9zaXplb2YgKCkKK3sKKyAgIHJldHVybiBzaXplb2YoaW50MzJfdCk7Cit9CisgICAqLworICBn Y2Nfaml0X3R5cGUgKmludDMyID0KKyAgICBnY2Nfaml0X2NvbnRleHRfZ2V0X2ludF90eXBlIChj dHh0LCA0LCAxKTsKKyAgZ2NjX2ppdF90eXBlICppbnRfdHlwZSA9CisgICAgZ2NjX2ppdF9jb250 ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZUEVfSU5UKTsKKworICBnY2Nfaml0X2Z1bmN0 aW9uICpmdW5jID0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uIChjdHh0LAorCQkJ CSAgTlVMTCwKKwkJCQkgIEdDQ19KSVRfRlVOQ1RJT05fRVhQT1JURUQsCisJCQkJICBpbnRfdHlw ZSwKKwkJCQkgICJteV9zaXplb2YiLAorCQkJCSAgMCwgTlVMTCwgMCk7CisKKyAgZ2NjX2ppdF9i bG9jayAqaW5pdGlhbCA9CisgICAgZ2NjX2ppdF9mdW5jdGlvbl9uZXdfYmxvY2sgKGZ1bmMsICJp bml0aWFsIik7CisKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9yZXR1cm4oaW5pdGlhbCwgTlVM TCwKKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3NpemVvZihjdHh0LCBpbnQzMikpOworfQorCit2 b2lkCit2ZXJpZnlfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X3Jlc3VsdCAq cmVzdWx0KQoreworICB0eXBlZGVmIGludCAoKm15X3NpemVvZl90eXBlKSAoKTsKKyAgQ0hFQ0tf Tk9OX05VTEwgKHJlc3VsdCk7CisgIG15X3NpemVvZl90eXBlIG15X3NpemVvZiA9CisgICAgKG15 X3NpemVvZl90eXBlKWdjY19qaXRfcmVzdWx0X2dldF9jb2RlIChyZXN1bHQsICJteV9zaXplb2Yi KTsKKyAgQ0hFQ0tfTk9OX05VTEwgKG15X3NpemVvZik7CisgIGludCB2YWwgPSBteV9zaXplb2Yg KCk7CisgIENIRUNLX1ZBTFVFICh2YWwsIDQpOworfQotLSAKMi40My4wCgo= --=-v76qkoZK6SArblffXY5n--