From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o91.zoho.com (sender4-pp-o91.zoho.com [136.143.188.91]) by sourceware.org (Postfix) with ESMTPS id 70EAA3858C98; Thu, 4 Apr 2024 22:59:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 70EAA3858C98 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 70EAA3858C98 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=136.143.188.91 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1712271600; cv=pass; b=KzRFWi6Iss83lua8pyBNck030eTn5V/biX2KFDwzTvTVJyWOijP+yinupy+HYQfb/PceM8bGEgd4/IqSj07wfgdTxDr7Y2JH3X6xL/2fdmFPkhQU7/9AkySL1OQGm0xmjebRA1MY2AWl78sWUjopoXEFAqZTCF0LZTXJtzS0erM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1712271600; c=relaxed/simple; bh=owu479r8ll9NVeSbIrLHEM7kYeE/xuILU6Gpu7oImKc=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=cd0MLUnXETPrGq6Y4HGHPLLt7n+SX3DDnuos9nfCHCXMIgihOx2LvFiPyx1SmmPQoBRNG+FvosfTn+f9uKjPn766udv3u1gNHdB8j2p1xCn6ZTNaNZRR6SVX7fO3KIxH9RyIkSggQp0fl30F/cfcPR8KIQEGtVdkVvtDegCpvNQ= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1712271592; cv=none; d=zohomail.com; s=zohoarc; b=LSWLBb62fe1YLVTZ8LPsTX3heZ/ddt9R21JD+bdeG458QRQ960U3bATnoVGp9q987od7wfr2UdasGjGUgGo8eXbGeswFP+/mhS+X1f4FLJyRRrC0mc5ACb/UFE9hGXHs5T+gdzk70pwYqn/HjiH1cXXanMmPExhN9JjNKdJIFT8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1712271592; h=Content-Type:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=1ABocUKsYBUwz31ZZvMxZT194yRni0B2hfaWvVIAo0k=; b=gEx6RD45ffbr9L1fibLmj8uvtsq/loyrPFWL2ZOp6P5vMI8FMXOd8PJJTuStBJpZkR3CzxPqG/P9EszIe6b9xTR6VGwkIZkOSjzXw7ZFObGG/jsLO758l2UsJydHnXlJ6yMU5zcofYsI+6tKzhgxG3Nwpe/iTcO/dg5aqZRx/nA= 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=1712271592; s=zm2022; d=zoho.com; i=bouanto@zoho.com; h=Content-Type:Message-ID:Date:Date:MIME-Version:To:To:Cc:Cc:From:From:Subject:Subject:Feedback-ID:Message-Id:Reply-To; bh=1ABocUKsYBUwz31ZZvMxZT194yRni0B2hfaWvVIAo0k=; b=Sq+FAPNXF1a+zw3hszfVzRBy/JHw5f+7oC4h6hc7y2BcNwDdGEZCuOTTh0SDvHvf NFXtRSB9Dqw77s95PSH6l4qEjxeP/seyqK7lYDLAHjAFbnKB+wDyDYf+LrtiSnEE/NM JNlTvZO9rE1dLOkgi5MS2fR+XFuF1xEQYfMjJyWo= Received: by mx.zohomail.com with SMTPS id 1712271591989644.150097761509; Thu, 4 Apr 2024 15:59:51 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------AxBgOz2BE56XlWLNlrk0cRzC" Message-ID: <0f5dc195-1148-4a70-b730-18eaa8ba4000@zoho.com> Date: Thu, 4 Apr 2024 18:59:50 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US, fr To: "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" Cc: David Malcolm From: Antoni Boucher Subject: [PATCH] libgccjit: Add ability to get the alignment of a type X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/212.261.44 Feedback-ID: rr080112282a5d8fc6a139db7ee8545b5b00004a3d0df7710fd17718afa2e1a7a82ba88d89cdff8fdfd89df9dd:zu08011226ac0a6e376e89061473cab29c0000085842731b8a95cc65e33a9226a658bcda66f3de5d0147e0:rf080112263daac39d6173e6b17f2dfeac0000b644c5707b0956f7d04e23bc70b149ab8f533a81a8fa0ee7:ZohoMail X-ZohoMailClient: External X-Spam-Status: No, score=-11.0 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 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. --------------AxBgOz2BE56XlWLNlrk0cRzC Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi. This patch adds a new API to produce an rvalue representing the alignment of a type. Thanks for the review. --------------AxBgOz2BE56XlWLNlrk0cRzC Content-Type: text/x-patch; charset=UTF-8; name="0001-libgccjit-Add-ability-to-get-the-alignment-of-a-type.patch" Content-Disposition: attachment; filename*0="0001-libgccjit-Add-ability-to-get-the-alignment-of-a-type.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxMmQ4ZTU3Y2EyMzEzMDAyZGE0MjY3MmRjODZiMTY3YmFmODEyZmYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNv bT4KRGF0ZTogVGh1LCA0IEFwciAyMDI0IDE4OjU3OjA3IC0wNDAwClN1YmplY3Q6IFtQQVRD SF0gbGliZ2Njaml0OiBBZGQgYWJpbGl0eSB0byBnZXQgdGhlIGFsaWdubWVudCBvZiBhIHR5 cGUKCmdjYy9qaXQvQ2hhbmdlTG9nOgoKCSogZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0eS5y c3QgKExJQkdDQ0pJVF9BQklfMjgpOiBOZXcgQUJJIHRhZy4KCSogZG9jcy90b3BpY3MvZXhw cmVzc2lvbnMucnN0OiBEb2N1bWVudCBnY2Nfaml0X2NvbnRleHRfbmV3X2FsaWdub2YuCgkq IGppdC1wbGF5YmFjay5jYyAobmV3X2FsaWdub2YpOiBOZXcgbWV0aG9kLgoJKiBqaXQtcGxh eWJhY2suaDogTmV3IG1ldGhvZC4KCSogaml0LXJlY29yZGluZy5jYyAocmVjb3JkaW5nOjpj b250ZXh0OjpuZXdfYWxpZ25vZik6IE5ldwoJbWV0aG9kLgoJKHJlY29yZGluZzo6bWVtZW50 b19vZl9zaXplb2Y6OnJlcGxheV9pbnRvLAoJcmVjb3JkaW5nOjptZW1lbnRvX29mX3R5cGVp bmZvOjpyZXBsYXlfaW50bywKCXJlY29yZGluZzo6bWVtZW50b19vZl9zaXplb2Y6Om1ha2Vf ZGVidWdfc3RyaW5nLAoJcmVjb3JkaW5nOjptZW1lbnRvX29mX3R5cGVpbmZvOjptYWtlX2Rl YnVnX3N0cmluZywKCXJlY29yZGluZzo6bWVtZW50b19vZl9zaXplb2Y6OndyaXRlX3JlcHJv ZHVjZXIsCglyZWNvcmRpbmc6Om1lbWVudG9fb2ZfdHlwZWluZm86OndyaXRlX3JlcHJvZHVj ZXIpOiBSZW5hbWUuCgkqIGppdC1yZWNvcmRpbmcuaCAoZW51bSB0eXBlX2luZm9fdHlwZSk6 IE5ldyBlbnVtLgoJKGNsYXNzIG1lbWVudG9fb2Zfc2l6ZW9mIGNsYXNzIG1lbWVudG9fb2Zf dHlwZWluZm8pOiBSZW5hbWUuCgkqIGxpYmdjY2ppdC5jYyAoZ2NjX2ppdF9jb250ZXh0X25l d19hbGlnbm9mKTogTmV3IGZ1bmN0aW9uLgoJKiBsaWJnY2NqaXQuaCAoZ2NjX2ppdF9jb250 ZXh0X25ld19hbGlnbm9mKTogTmV3IGZ1bmN0aW9uLgoJKiBsaWJnY2NqaXQubWFwOiBOZXcg ZnVuY3Rpb24uCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGppdC5kZy9hbGwtbm9u LWZhaWxpbmctdGVzdHMuaDogTmV3IHRlc3QuCgkqIGppdC5kZy90ZXN0LWFsaWdub2YuYzog TmV3IHRlc3QuCi0tLQogZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdCAg ICAgICAgfCAgNyArKwogZ2NjL2ppdC9kb2NzL3RvcGljcy9leHByZXNzaW9ucy5yc3QgICAg ICAgICAgfCAxNCArKysrCiBnY2Mvaml0L2ppdC1wbGF5YmFjay5jYyAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIGdjYy9qaXQvaml0LXBsYXliYWNrLmggICAgICAgICAgICAg ICAgICAgICAgIHwgIDMgKwogZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjICAgICAgICAgICAg ICAgICAgICAgfCA2NyArKysrKysrKysrKysrKystLS0tCiBnY2Mvaml0L2ppdC1yZWNvcmRp bmcuaCAgICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKystLQogZ2NjL2ppdC9saWJnY2Nq aXQuY2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKwogZ2NjL2ppdC9saWJn Y2NqaXQuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMyArKysrCiBnY2Mvaml0L2xp YmdjY2ppdC5tYXAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrCiBnY2MvdGVzdHN1 aXRlL2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaCB8IDEwICsrKwogZ2NjL3Rlc3Rz dWl0ZS9qaXQuZGcvdGVzdC1hbGlnbm9mLmMgICAgICAgICAgfCA2OSArKysrKysrKysrKysr KysrKysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKyksIDE1IGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3Qt YWxpZ25vZi5jCgpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21wYXRpYmls aXR5LnJzdCBiL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0eS5yc3QKaW5kZXgg OWNmYjA1NGY2NTMuLjkyYzNlZDI0Yzg5IDEwMDY0NAotLS0gYS9nY2Mvaml0L2RvY3MvdG9w aWNzL2NvbXBhdGliaWxpdHkucnN0CisrKyBiL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0 aWJpbGl0eS5yc3QKQEAgLTM5NywzICszOTcsMTAgQEAgb24gZnVuY3Rpb25zIGFuZCB2YXJp YWJsZXM6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogYGBMSUJHQ0NKSVRfQUJJXzI3YGAgY292 ZXJzIHRoZSBhZGRpdGlvbiBvZgogOmZ1bmM6YGdjY19qaXRfY29udGV4dF9uZXdfc2l6ZW9m YAorCisuLiBfTElCR0NDSklUX0FCSV8yODoKKworYGBMSUJHQ0NKSVRfQUJJXzI4YGAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tCitgYExJQkdDQ0pJVF9BQklfMjhgYCBjb3ZlcnMgdGhlIGFk ZGl0aW9uIG9mCis6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0X25ld19hbGlnbm9mYApkaWZmIC0t Z2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy9leHByZXNzaW9ucy5yc3QgYi9nY2Mvaml0L2Rv Y3MvdG9waWNzL2V4cHJlc3Npb25zLnJzdAppbmRleCBjM2Y0ZjYxZWIwNi4uMjk5ZDNkMjI5 ZGYgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0Cisr KyBiL2djYy9qaXQvZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0CkBAIC0xNDAsNiArMTQw LDIwIEBAIFNpbXBsZSBleHByZXNzaW9ucwogCiAgICAgIHNpemVvZiAodHlwZSkKIAorLi4g ZnVuY3Rpb246OiBnY2Nfaml0X3J2YWx1ZSAqXAorICAgICAgICAgICAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X2FsaWdub2YgKGdjY19qaXRfY29udGV4dCAqY3R4dCwgXAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfdHlwZSAqdHlwZSkK KworICAgR2VuZXJhdGUgYW4gcnZhbHVlIHRoYXQgaXMgZXF1YWwgdG8gdGhlIGFsaWdubWVu dCBvZiBgYHR5cGVgYC4KKworICAgVGhlIHBhcmFtZXRlciBgYHR5cGVgYCBtdXN0IGJlIG5v bi1OVUxMLgorCisgICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gdGhpcyBDIGNvZGU6CisKKyAg IC4uIGNvZGUtYmxvY2s6OiBjCisKKyAgICAgX0FsaWdub2YgKHR5cGUpCisKIENvbnN0cnVj dG9yIGV4cHJlc3Npb25zCiAqKioqKioqKioqKioqKioqKioqKioqKgogCmRpZmYgLS1naXQg YS9nY2Mvaml0L2ppdC1wbGF5YmFjay5jYyBiL2djYy9qaXQvaml0LXBsYXliYWNrLmNjCmlu ZGV4IDZiYWE4MzhhZjEwLi5iM2Y1NGRhMjRhYiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQt cGxheWJhY2suY2MKKysrIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2suY2MKQEAgLTExMjAsNiAr MTEyMCwxNyBAQCBuZXdfc2l6ZW9mICh0eXBlICp0eXBlKQogCiAvKiBDb25zdHJ1Y3QgYSBw bGF5YmFjazo6cnZhbHVlIGluc3RhbmNlICh3cmFwcGluZyBhIHRyZWUpLiAgKi8KIAorcGxh eWJhY2s6OnJ2YWx1ZSAqCitwbGF5YmFjazo6Y29udGV4dDo6CituZXdfYWxpZ25vZiAodHlw ZSAqdHlwZSkKK3sKKyAgaW50IGFsaWdubWVudCA9IFRZUEVfQUxJR04gKHR5cGUtPmFzX3Ry ZWUgKCkpIC8gQklUU19QRVJfVU5JVDsKKyAgdHJlZSBpbm5lciA9IGJ1aWxkX2ludF9jc3Qg KGludGVnZXJfdHlwZV9ub2RlLCBhbGlnbm1lbnQpOworICByZXR1cm4gbmV3IHJ2YWx1ZSAo dGhpcywgaW5uZXIpOworfQorCisvKiBDb25zdHJ1Y3QgYSBwbGF5YmFjazo6cnZhbHVlIGlu c3RhbmNlICh3cmFwcGluZyBhIHRyZWUpLiAgKi8KKwogcGxheWJhY2s6OnJ2YWx1ZSAqCiBw bGF5YmFjazo6Y29udGV4dDo6CiBuZXdfc3RyaW5nX2xpdGVyYWwgKGNvbnN0IGNoYXIgKnZh bHVlKQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suaCBiL2djYy9qaXQvaml0 LXBsYXliYWNrLmgKaW5kZXggYWE2YTA4NjYxM2MuLjZlOTdiMzg5Y2JiIDEwMDY0NAotLS0g YS9nY2Mvaml0L2ppdC1wbGF5YmFjay5oCisrKyBiL2djYy9qaXQvaml0LXBsYXliYWNrLmgK QEAgLTE2NSw2ICsxNjUsOSBAQCBwdWJsaWM6CiAgIHJ2YWx1ZSAqCiAgIG5ld19zaXplb2Yg KHR5cGUgKnR5cGUpOwogCisgIHJ2YWx1ZSAqCisgIG5ld19hbGlnbm9mICh0eXBlICp0eXBl KTsKKwogICBydmFsdWUgKgogICBuZXdfc3RyaW5nX2xpdGVyYWwgKGNvbnN0IGNoYXIgKnZh bHVlKTsKIApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjIGIvZ2NjL2pp dC9qaXQtcmVjb3JkaW5nLmNjCmluZGV4IDY4YTJlODYwYzFmLi4xMTIxZjVlMDBhOCAxMDA2 NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjCisrKyBiL2djYy9qaXQvaml0LXJl Y29yZGluZy5jYwpAQCAtMTA3Nyw3ICsxMDc3LDcgQEAgcmVjb3JkaW5nOjpjb250ZXh0Ojpu ZXdfZ2xvYmFsX2luaXRfcnZhbHVlIChsdmFsdWUgKnZhcmlhYmxlLAogICBnYmwtPnNldF9y dmFsdWVfaW5pdCAoaW5pdCk7IC8qIE5lZWRlZCBieSB0aGUgZ2xvYmFsIGZvciB3cml0ZSBk dW1wLiAgKi8KIH0KIAotLyogQ3JlYXRlIGEgcmVjb3JkaW5nOjptZW1lbnRvX29mX3NpemVv ZiBpbnN0YW5jZSBhbmQgYWRkIGl0CisvKiBDcmVhdGUgYSByZWNvcmRpbmc6Om1lbWVudG9f b2ZfdHlwZWluZm8gaW5zdGFuY2UgYW5kIGFkZCBpdAogICAgdG8gdGhpcyBjb250ZXh0J3Mg bGlzdCBvZiBtZW1lbnRvcy4KIAogICAgSW1wbGVtZW50cyB0aGUgcG9zdC1lcnJvci1jaGVj a2luZyBwYXJ0IG9mCkBAIC0xMDg3LDcgKzEwODcsMjIgQEAgcmVjb3JkaW5nOjpydmFsdWUg KgogcmVjb3JkaW5nOjpjb250ZXh0OjpuZXdfc2l6ZW9mIChyZWNvcmRpbmc6OnR5cGUgKnR5 cGUpCiB7CiAgIHJlY29yZGluZzo6cnZhbHVlICpyZXN1bHQgPQotICAgIG5ldyBtZW1lbnRv X29mX3NpemVvZiAodGhpcywgTlVMTCwgdHlwZSk7CisgICAgbmV3IG1lbWVudG9fb2ZfdHlw ZWluZm8gKHRoaXMsIE5VTEwsIHR5cGUsIFRZUEVfSU5GT19TSVpFX09GKTsKKyAgcmVjb3Jk IChyZXN1bHQpOworICByZXR1cm4gcmVzdWx0OworfQorCisvKiBDcmVhdGUgYSByZWNvcmRp bmc6Om1lbWVudG9fb2ZfdHlwZWluZm8gaW5zdGFuY2UgYW5kIGFkZCBpdAorICAgdG8gdGhp cyBjb250ZXh0J3MgbGlzdCBvZiBtZW1lbnRvcy4KKworICAgSW1wbGVtZW50cyB0aGUgcG9z dC1lcnJvci1jaGVja2luZyBwYXJ0IG9mCisgICBnY2Nfaml0X2NvbnRleHRfbmV3X2FsaWdu b2YuICAqLworCityZWNvcmRpbmc6OnJ2YWx1ZSAqCityZWNvcmRpbmc6OmNvbnRleHQ6Om5l d19hbGlnbm9mIChyZWNvcmRpbmc6OnR5cGUgKnR5cGUpCit7CisgIHJlY29yZGluZzo6cnZh bHVlICpyZXN1bHQgPQorICAgIG5ldyBtZW1lbnRvX29mX3R5cGVpbmZvICh0aGlzLCBOVUxM LCB0eXBlLCBUWVBFX0lORk9fQUxJR05fT0YpOwogICByZWNvcmQgKHJlc3VsdCk7CiAgIHJl dHVybiByZXN1bHQ7CiB9CkBAIC01NDcyLDI1ICs1NDg3LDQ0IEBAIG1lbWVudG9fb2ZfbmV3 X3J2YWx1ZV9mcm9tX2NvbnN0IDx2b2lkICo+Ojp3cml0ZV9yZXByb2R1Y2VyIChyZXByb2R1 Y2VyICZyKQogCiB9IC8vIG5hbWVzcGFjZSByZWNvcmRpbmcKIAotLyogVGhlIGltcGxlbWVu dGF0aW9uIG9mIGNsYXNzIGdjYzo6aml0OjpyZWNvcmRpbmc6Om1lbWVudG9fb2Zfc2l6ZW9m LiAgKi8KKy8qIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBjbGFzcyBnY2M6OmppdDo6cmVjb3Jk aW5nOjptZW1lbnRvX29mX3R5cGVpbmZvLiAgKi8KIAogLyogSW1wbGVtZW50YXRpb24gb2Yg cHVyZSB2aXJ0dWFsIGhvb2sgcmVjb3JkaW5nOjptZW1lbnRvOjpyZXBsYXlfaW50bwotICAg Zm9yIHJlY29yZGluZzo6bWVtZW50b19vZl9zaXplb2YuICAqLworICAgZm9yIHJlY29yZGlu Zzo6bWVtZW50b19vZl90eXBlaW5mby4gICovCiAKIHZvaWQKLXJlY29yZGluZzo6bWVtZW50 b19vZl9zaXplb2Y6OnJlcGxheV9pbnRvIChyZXBsYXllciAqcikKK3JlY29yZGluZzo6bWVt ZW50b19vZl90eXBlaW5mbzo6cmVwbGF5X2ludG8gKHJlcGxheWVyICpyKQogewotICBzZXRf cGxheWJhY2tfb2JqIChyLT5uZXdfc2l6ZW9mIChtX3R5cGUtPnBsYXliYWNrX3R5cGUgKCkp KTsKKyAgc3dpdGNoIChtX2luZm9fdHlwZSkKKyAgeworICBjYXNlIFRZUEVfSU5GT19BTElH Tl9PRjoKKyAgICBzZXRfcGxheWJhY2tfb2JqIChyLT5uZXdfYWxpZ25vZiAobV90eXBlLT5w bGF5YmFja190eXBlICgpKSk7CisgICAgYnJlYWs7CisgIGNhc2UgVFlQRV9JTkZPX1NJWkVf T0Y6CisgICAgc2V0X3BsYXliYWNrX29iaiAoci0+bmV3X3NpemVvZiAobV90eXBlLT5wbGF5 YmFja190eXBlICgpKSk7CisgICAgYnJlYWs7CisgIH0KIH0KIAogLyogSW1wbGVtZW50YXRp b24gb2YgcmVjb3JkaW5nOjptZW1lbnRvOjptYWtlX2RlYnVnX3N0cmluZyBmb3IKICAgIHNp emVvZiBleHByZXNzaW9ucy4gICovCiAKIHJlY29yZGluZzo6c3RyaW5nICoKLXJlY29yZGlu Zzo6bWVtZW50b19vZl9zaXplb2Y6Om1ha2VfZGVidWdfc3RyaW5nICgpCityZWNvcmRpbmc6 Om1lbWVudG9fb2ZfdHlwZWluZm86Om1ha2VfZGVidWdfc3RyaW5nICgpCiB7CisgIGNvbnN0 IGNoYXIqIGlkZW50OworICBzd2l0Y2ggKG1faW5mb190eXBlKQorICB7CisgICAgY2FzZSBU WVBFX0lORk9fQUxJR05fT0Y6CisgICAgICBpZGVudCA9ICJfQWxpZ25vZiI7CisgICAgICBi cmVhazsKKyAgICBjYXNlIFRZUEVfSU5GT19TSVpFX09GOgorICAgICAgaWRlbnQgPSAic2l6 ZW9mIjsKKyAgICAgIGJyZWFrOworICB9CiAgIHJldHVybiBzdHJpbmc6OmZyb21fcHJpbnRm IChtX2N0eHQsCi0JCQkgICAgICAic2l6ZW9mICglcykiLAorCQkJICAgICAgIiVzICglcyki LAorCQkJICAgICAgaWRlbnQsCiAJCQkgICAgICBtX3R5cGUtPmdldF9kZWJ1Z19zdHJpbmcg KCkpOwogfQogCkBAIC01NDk4LDEzICs1NTMyLDI0IEBAIHJlY29yZGluZzo6bWVtZW50b19v Zl9zaXplb2Y6Om1ha2VfZGVidWdfc3RyaW5nICgpCiAgICBleHByZXNzaW9ucy4gICovCiAK IHZvaWQKLXJlY29yZGluZzo6bWVtZW50b19vZl9zaXplb2Y6OndyaXRlX3JlcHJvZHVjZXIg KHJlcHJvZHVjZXIgJnIpCityZWNvcmRpbmc6Om1lbWVudG9fb2ZfdHlwZWluZm86OndyaXRl X3JlcHJvZHVjZXIgKHJlcHJvZHVjZXIgJnIpCiB7CisgIGNvbnN0IGNoYXIqIHR5cGU7Cisg IHN3aXRjaCAobV9pbmZvX3R5cGUpCisgIHsKKyAgICBjYXNlIFRZUEVfSU5GT19BTElHTl9P RjoKKyAgICAgIHR5cGUgPSAiYWxpZ24iOworICAgICAgYnJlYWs7CisgICAgY2FzZSBUWVBF X0lORk9fU0laRV9PRjoKKyAgICAgIHR5cGUgPSAic2l6ZSI7CisgICAgICBicmVhazsKKyAg fQogICBjb25zdCBjaGFyICppZCA9IHIubWFrZV9pZGVudGlmaWVyICh0aGlzLCAicnZhbHVl Iik7CiAgIHIud3JpdGUgKCIgIGdjY19qaXRfcnZhbHVlIColcyA9XG4iCi0gICAgIiAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X3NpemVvZiAoJXMsIC8qIGdjY19qaXRfY29udGV4dCAqY3R4 dCAqL1xuIgotICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICVzKTsgLyog Z2NjX2ppdF90eXBlICp0eXBlICovXG4iLAorICAgICIgICAgZ2NjX2ppdF9jb250ZXh0X25l d18lc29mICglcywgLyogZ2NjX2ppdF9jb250ZXh0ICpjdHh0ICovXG4iCisgICAgIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdjY19qaXRfdHlwZSAqKSAlcyk7IC8qIGdj Y19qaXRfdHlwZSAqdHlwZSAqL1xuIiwKICAgICBpZCwKKyAgICB0eXBlLAogICAgIHIuZ2V0 X2lkZW50aWZpZXIgKGdldF9jb250ZXh0ICgpKSwKICAgICByLmdldF9pZGVudGlmaWVyICht X3R5cGUpKTsKIH0KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5oIGIvZ2Nj L2ppdC9qaXQtcmVjb3JkaW5nLmgKaW5kZXggZDhkMTZmNGZlMjkuLmNjZTI1ZjFmYzA3IDEw MDY0NAotLS0gYS9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaAorKysgYi9nY2Mvaml0L2ppdC1y ZWNvcmRpbmcuaApAQCAtNDcsNiArNDcsMTEgQEAgY2xhc3MgcmVwcm9kdWNlcjsKIAogbmFt ZXNwYWNlIHJlY29yZGluZyB7CiAKK2VudW0gdHlwZV9pbmZvX3R5cGUgeworICAgIFRZUEVf SU5GT19BTElHTl9PRiwKKyAgICBUWVBFX0lORk9fU0laRV9PRiwKK307CisKIHBsYXliYWNr Ojpsb2NhdGlvbiAqCiBwbGF5YmFja19sb2NhdGlvbiAocmVwbGF5ZXIgKnIsIGxvY2F0aW9u ICpsb2MpOwogCkBAIC0xNzIsNiArMTc3LDkgQEAgcHVibGljOgogICBydmFsdWUgKgogICBu ZXdfc2l6ZW9mICh0eXBlICp0eXBlKTsKIAorICBydmFsdWUgKgorICBuZXdfYWxpZ25vZiAo dHlwZSAqdHlwZSk7CisKICAgcnZhbHVlICoKICAgbmV3X3N0cmluZ19saXRlcmFsIChjb25z dCBjaGFyICp2YWx1ZSk7CiAKQEAgLTE2MDgsMTQgKzE2MTYsMTYgQEAgcHJpdmF0ZToKICAg SE9TVF9UWVBFIG1fdmFsdWU7CiB9OwogCi1jbGFzcyBtZW1lbnRvX29mX3NpemVvZiA6IHB1 YmxpYyBydmFsdWUKK2NsYXNzIG1lbWVudG9fb2ZfdHlwZWluZm8gOiBwdWJsaWMgcnZhbHVl CiB7CiBwdWJsaWM6Ci0gIG1lbWVudG9fb2Zfc2l6ZW9mIChjb250ZXh0ICpjdHh0LAorICBt ZW1lbnRvX29mX3R5cGVpbmZvIChjb250ZXh0ICpjdHh0LAogCQkJIGxvY2F0aW9uICpsb2Ms Ci0JCQkgdHlwZSAqdHlwZSkKKwkJCSB0eXBlICp0eXBlLAorCQkJIHR5cGVfaW5mb190eXBl IHR5cGVfaW5mbykKICAgOiBydmFsdWUgKGN0eHQsIGxvYywgY3R4dC0+Z2V0X3R5cGUgKEdD Q19KSVRfVFlQRV9JTlQpKSwKLSAgICBtX3R5cGUgKHR5cGUpIHt9CisgICAgbV90eXBlICh0 eXBlKSwKKyAgICBtX2luZm9fdHlwZSAodHlwZV9pbmZvKSB7fQogCiAgIHZvaWQgcmVwbGF5 X2ludG8gKHJlcGxheWVyICpyKSBmaW5hbCBvdmVycmlkZTsKIApAQCAtMTYzMSw2ICsxNjQx LDcgQEAgcHJpdmF0ZToKIAogcHJpdmF0ZToKICAgdHlwZSAqbV90eXBlOworICB0eXBlX2lu Zm9fdHlwZSBtX2luZm9fdHlwZTsKIH07CiAKIGNsYXNzIG1lbWVudG9fb2ZfbmV3X3N0cmlu Z19saXRlcmFsIDogcHVibGljIHJ2YWx1ZQpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2Nq aXQuY2MgYi9nY2Mvaml0L2xpYmdjY2ppdC5jYwppbmRleCA0NDVjMGQwZTBlMy4uZWIzOGRh OTFkZjEgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvbGliZ2Njaml0LmNjCisrKyBiL2djYy9qaXQv bGliZ2Njaml0LmNjCkBAIC0yMDkxLDYgKzIwOTEsMjQgQEAgZ2NjX2ppdF9jb250ZXh0X25l d19zaXplb2YgKGdjY19qaXRfY29udGV4dCAqY3R4dCwKIAkgIC0+bmV3X3NpemVvZiAodHlw ZSkpOwogfQogCisvKiBQdWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBpbiBs aWJnY2NqaXQuaC4KKworICAgQWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdvcmsg aXMgZG9uZSBieSB0aGUKKyAgIGdjYzo6aml0OjpyZWNvcmRpbmc6OmNvbnRleHQ6Om5ld19h bGlnbm9mIG1ldGhvZCBpbgorICAgaml0LXJlY29yZGluZy5jYy4gICovCisKK2djY19qaXRf cnZhbHVlICoKK2djY19qaXRfY29udGV4dF9uZXdfYWxpZ25vZiAoZ2NjX2ppdF9jb250ZXh0 ICpjdHh0LAorCQkJICAgICBnY2Nfaml0X3R5cGUgKnR5cGUpCit7CisgIFJFVFVSTl9OVUxM X0lGX0ZBSUwgKGN0eHQsIE5VTEwsIE5VTEwsICJOVUxMIGNvbnRleHQiKTsKKyAgUkVUVVJO X05VTExfSUZfRkFJTCAodHlwZSwgY3R4dCwgTlVMTCwgIk5VTEwgdHlwZSIpOworICBKSVRf TE9HX0ZVTkMgKGN0eHQtPmdldF9sb2dnZXIgKCkpOworCisgIHJldHVybiAoKGdjY19qaXRf cnZhbHVlICopY3R4dAorCSAgLT5uZXdfYWxpZ25vZiAodHlwZSkpOworfQorCiAvKiBQdWJs aWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBpbiBsaWJnY2NqaXQuaC4KIAogICAg QWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdvcmsgaXMgZG9uZSBieSB0aGUKZGlm ZiAtLWdpdCBhL2djYy9qaXQvbGliZ2Njaml0LmggYi9nY2Mvaml0L2xpYmdjY2ppdC5oCmlu ZGV4IDc0ZTg0N2IyZGVjLi5jODJhNGJlNzkyZSAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9saWJn Y2NqaXQuaAorKysgYi9nY2Mvaml0L2xpYmdjY2ppdC5oCkBAIC0xMTA1LDYgKzExMDUsMTkg QEAgZXh0ZXJuIGdjY19qaXRfcnZhbHVlICoKIGdjY19qaXRfY29udGV4dF9uZXdfc2l6ZW9m IChnY2Nfaml0X2NvbnRleHQgKmN0eHQsCiAJCQkgICAgZ2NjX2ppdF90eXBlICp0eXBlKTsK IAorI2RlZmluZSBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfbmV3X2FsaWdub2YK KworLyogR2VuZXJhdGVzIGFuIHJ2YWx1ZSB0aGF0IGlzIGVxdWFsIHRvIHRoZSBhbGlnbm1l bnQgb2YgdHlwZS4KKworICAgVGhpcyBBUEkgZW50cnlwb2ludCB3YXMgYWRkZWQgaW4gTElC R0NDSklUX0FCSV8zODsgeW91IGNhbiB0ZXN0IGZvciBpdHMKKyAgIHByZXNlbmNlIHVzaW5n CisgICAgICNpZmRlZiBMSUJHQ0NKSVRfSEFWRV9nY2Nfaml0X2NvbnRleHRfbmV3X2FsaWdu b2YgICovCisKK2V4dGVybiBnY2Nfaml0X3J2YWx1ZSAqCitnY2Nfaml0X2NvbnRleHRfbmV3 X2FsaWdub2YgKGdjY19qaXRfY29udGV4dCAqY3R4dCwKKwkJCSAgICAgZ2NjX2ppdF90eXBl ICp0eXBlKTsKKworCiAvKiBTdHJpbmcgbGl0ZXJhbHMuICovCiBleHRlcm4gZ2NjX2ppdF9y dmFsdWUgKgogZ2NjX2ppdF9jb250ZXh0X25ld19zdHJpbmdfbGl0ZXJhbCAoZ2NjX2ppdF9j b250ZXh0ICpjdHh0LApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwIGIvZ2Nj L2ppdC9saWJnY2NqaXQubWFwCmluZGV4IDk5YWE1OTcwYmUxLi5iMDI3ODNlYmZiMiAxMDA2 NDQKLS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwCisrKyBiL2djYy9qaXQvbGliZ2Njaml0 Lm1hcApAQCAtMjg5LDMgKzI4OSw4IEBAIExJQkdDQ0pJVF9BQklfMjcgewogICBnbG9iYWw6 CiAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19zaXplb2Y7CiB9IExJQkdDQ0pJVF9BQklfMjY7 CisKK0xJQkdDQ0pJVF9BQklfMjggeworICBnbG9iYWw6CisgICAgZ2NjX2ppdF9jb250ZXh0 X25ld19hbGlnbm9mOworfSBMSUJHQ0NKSVRfQUJJXzI3OwpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmggYi9nY2MvdGVzdHN1aXRl L2ppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaAppbmRleCAxNGEwYTMyMTU1MC4uNjNi NGU3OGM4Y2UgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1ub24tZmFp bGluZy10ZXN0cy5oCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1ub24tZmFpbGlu Zy10ZXN0cy5oCkBAIC00Miw2ICs0MiwxMyBAQAogI3VuZGVmIGNyZWF0ZV9jb2RlCiAjdW5k ZWYgdmVyaWZ5X2NvZGUKIAorLyogdGVzdC1hbGlnbm9mLmMgKi8KKyNkZWZpbmUgY3JlYXRl X2NvZGUgY3JlYXRlX2NvZGVfYWxpZ25vZgorI2RlZmluZSB2ZXJpZnlfY29kZSB2ZXJpZnlf Y29kZV9hbGlnbm9mCisjaW5jbHVkZSAidGVzdC1hbGlnbm9mLmMiCisjdW5kZWYgY3JlYXRl X2NvZGUKKyN1bmRlZiB2ZXJpZnlfY29kZQorCiAvKiB0ZXN0LWFsd2F5c19pbmxpbmUtYXR0 cmlidXRlLmM6IFRoaXMgY2FuJ3QgYmUgaW4gdGhlIHRlc3RjYXNlcyBhcnJheSBhcyBpdCBu ZWVkcwogICAgdGhlIGAtTzBgIGZsYWcuICAqLwogCkBAIC00NDksNiArNDU2LDkgQEAgY29u c3Qgc3RydWN0IHRlc3RjYXNlIHRlc3RjYXNlc1tdID0gewogICB7ImFjY2Vzc2luZ191bmlv biIsCiAgICBjcmVhdGVfY29kZV9hY2Nlc3NpbmdfdW5pb24sCiAgICB2ZXJpZnlfY29kZV9h Y2Nlc3NpbmdfdW5pb259LAorICB7ImFsaWdub2YiLAorICAgY3JlYXRlX2NvZGVfYWxpZ25v ZiwKKyAgIHZlcmlmeV9jb2RlX2FsaWdub2Z9LAogICB7ImFsaWdubWVudCIsCiAgICBjcmVh dGVfY29kZV9hbGlnbm1lbnQsCiAgICB2ZXJpZnlfY29kZV9hbGlnbm1lbnR9LApkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1hbGlnbm9mLmMgYi9nY2MvdGVzdHN1 aXRlL2ppdC5kZy90ZXN0LWFsaWdub2YuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYWYyODhhODJmNDcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2ppdC5kZy90ZXN0LWFsaWdub2YuYwpAQCAtMCwwICsxLDY5IEBACisjaW5jbHVkZSA8 c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNp bmNsdWRlIDxzdGRpbnQuaD4KKworI2luY2x1ZGUgImxpYmdjY2ppdC5oIgorCisjaW5jbHVk ZSAiaGFybmVzcy5oIgorCit2b2lkCitjcmVhdGVfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpj dHh0LCB2b2lkICp1c2VyX2RhdGEpCit7CisgIC8qIExldCdzIHRyeSB0byBpbmplY3QgdGhl IGVxdWl2YWxlbnQgb2Y6CitpbnQKK215X2FsaWdub2YgKCkKK3sKKyAgIHJldHVybiBfQWxp Z25vZihpbnQzMl90KTsKK30KKyAgICovCisgIGdjY19qaXRfdHlwZSAqaW50MzIgPQorICAg IGdjY19qaXRfY29udGV4dF9nZXRfaW50X3R5cGUgKGN0eHQsIDQsIDEpOworICBnY2Nfaml0 X3R5cGUgKmludDY0ID0KKyAgICBnY2Nfaml0X2NvbnRleHRfZ2V0X2ludF90eXBlIChjdHh0 LCA4LCAxKTsKKyAgZ2NjX2ppdF90eXBlICppbnRfdHlwZSA9CisgICAgZ2NjX2ppdF9jb250 ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZUEVfSU5UKTsKKworICBnY2Nfaml0X2Z1 bmN0aW9uICpmdW5jID0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uIChjdHh0 LAorCQkJCSAgTlVMTCwKKwkJCQkgIEdDQ19KSVRfRlVOQ1RJT05fRVhQT1JURUQsCisJCQkJ ICBpbnRfdHlwZSwKKwkJCQkgICJteV9hbGlnbm9mIiwKKwkJCQkgIDAsIE5VTEwsIDApOwor CisgIGdjY19qaXRfYmxvY2sgKmluaXRpYWwgPQorICAgIGdjY19qaXRfZnVuY3Rpb25fbmV3 X2Jsb2NrIChmdW5jLCAiaW5pdGlhbCIpOworCisgIGdjY19qaXRfZmllbGQgKmZpZWxkMSA9 CisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY3R4dCwgTlVMTCwgaW50MzIsICJp bnQzMiIpOworICBnY2Nfaml0X2ZpZWxkICpmaWVsZDIgPQorICAgIGdjY19qaXRfY29udGV4 dF9uZXdfZmllbGQgKGN0eHQsIE5VTEwsIGludDY0LCAiaW50NjQiKTsKKworICBnY2Nfaml0 X2ZpZWxkICpmaWVsZHNbXSA9IHsKKyAgICBmaWVsZDEsCisgICAgZmllbGQyLAorICB9Owor CisgIGdjY19qaXRfc3RydWN0ICpzdHJ1Y3RfdHlwZSA9CisgICAgZ2NjX2ppdF9jb250ZXh0 X25ld19zdHJ1Y3RfdHlwZSAoCisgICAgICBjdHh0LAorICAgICAgTlVMTCwKKyAgICAgICJp bnRzIiwKKyAgICAgIDIsIGZpZWxkcyk7CisKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9y ZXR1cm4oaW5pdGlhbCwgTlVMTCwKKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2FsaWdub2Yo Y3R4dCwgZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZSAoc3RydWN0X3R5cGUpKSk7Cit9CisKK3Zv aWQKK3ZlcmlmeV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfcmVzdWx0 ICpyZXN1bHQpCit7CisgIHR5cGVkZWYgaW50ICgqbXlfYWxpZ25vZl90eXBlKSAoKTsKKyAg Q0hFQ0tfTk9OX05VTEwgKHJlc3VsdCk7CisgIG15X2FsaWdub2ZfdHlwZSBteV9hbGlnbm9m ID0KKyAgICAobXlfYWxpZ25vZl90eXBlKWdjY19qaXRfcmVzdWx0X2dldF9jb2RlIChyZXN1 bHQsICJteV9hbGlnbm9mIik7CisgIENIRUNLX05PTl9OVUxMIChteV9hbGlnbm9mKTsKKyAg aW50IHZhbCA9IG15X2FsaWdub2YgKCk7CisgIENIRUNLX1ZBTFVFICh2YWwsIDgpOworfQot LSAKMi40NC4wCgo= --------------AxBgOz2BE56XlWLNlrk0cRzC--