From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by sourceware.org (Postfix) with ESMTPS id D9CCD3858CDA; Wed, 16 Aug 2023 20:07:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D9CCD3858CDA Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-307d20548adso6137501f8f.0; Wed, 16 Aug 2023 13:07:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692216426; x=1692821226; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=T9E8vljtLYHA7OKED3FHmXyEn1nVtWR3nX71jm0Ewf0=; b=cWrFQmjqZPGqpimsuBEskS0flAvXu4H0UFeGbBV5er90elgt+ntFndsiWKGmTlxpjf L3nv0LEAnBN9zB4nV3xOFObZUI6F+5vdqxya4Q9cBtsZ6gnt3dGFbeoIlXWMXbbcAzaz CtNdbGnp6NskhVQts+3D/0ZW90sIfdCexOZ3nATD1d8SiTQUsDqpjWDELT2cCH3pjRMi DJZCZNJxOqZLp+vo63HZHchJZqqP9pKxvongv87ljwXPa9us1bMv4MzEpOIyG+jsmo22 B4e3CXacSXJT3h0w+TTG3M01paeJfUW06fRNKUX4/ciF0OOGWMYji4fPrsB3pVenlJvT QhvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692216426; x=1692821226; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=T9E8vljtLYHA7OKED3FHmXyEn1nVtWR3nX71jm0Ewf0=; b=L7v39gu/6QeOyXbk7eePPfeyn5Qwu20tqdB9+JDlFRHfnzTF6oYEPaC8t7RviZRObZ yvluLRlvBlfjxa8N/2rtOxrHTKb228/fw1aMUYed3PzN+PhjD6cGoYAwA8tlaVRxwGTC GB2YygWPbN2hjlzWiNa62Q6lXbquj9Tamt06SdYDo0/SM1P/qK04tmOEqy2URTz8V1gd zkFgE0COTTvhBjDgQOhy6B0g0DiJmO627zPvmULdQeoWnKnvCWk5jB8ezRGwkLsg7u99 iMWfQ9Qtsw5pdpL857Gev/sRsrsCHVJToWIcWlCx41K2xdOyQ3oy0ZUdcPIC4Lw7M+6x nR0w== X-Gm-Message-State: AOJu0YybtMC7SQoNq4Y4GL2+lk3CdJUOCn+ZiQ8dG7eYAmDJbDBqMzos 8bM5eC4I5mhOKdf9ffB/xrkmqfIk5oEUGLRbBj118bye74Y= X-Google-Smtp-Source: AGHT+IFROhDWg1P/v+DzygtfGllVW5ncbSENSP2pZlX5P6ACusgPwozj20b+JYaXuA+XaXDKcP7S/ZAxWxWAx+KcgVc= X-Received: by 2002:adf:f284:0:b0:319:52a5:569f with SMTP id k4-20020adff284000000b0031952a5569fmr2380086wro.11.1692216426114; Wed, 16 Aug 2023 13:07:06 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Guillaume Gomez Date: Wed, 16 Aug 2023 22:06:54 +0200 Message-ID: Subject: Re: [PATCH] libgccjit: Add support for `restrict` attribute on function parameters To: gcc-patches@gcc.gnu.org, jit@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000f64bb206030fd60b" X-Spam-Status: No, score=-8.5 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: --000000000000f64bb206030fd60b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable My apologies, forgot to run the commit checkers. Here's the commit with the errors fixed. Le mer. 16 ao=C3=BBt 2023 =C3=A0 18:32, Guillaume Gomez a =C3=A9crit : > > Hi, > > This patch adds the possibility to specify the __restrict__ attribute > for function parameters. It is used by the Rust GCC backend. > > Thanks in advance for the review. --000000000000f64bb206030fd60b Content-Type: text/x-patch; charset="US-ASCII"; name="0001-PATCH-Add-support-for-restrict-attribute-on-function.patch" Content-Disposition: attachment; filename="0001-PATCH-Add-support-for-restrict-attribute-on-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lle5yeij0 RnJvbSA5ZDNhMDZkNWM2MDYyYWExNjUyYTI4MzA1NDcxZDdhZjkwMWU4OTIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgR29tZXogPGd1aWxsYXVtZTEuZ29tZXpAZ21h aWwuY29tPgpEYXRlOiBGcmksIDExIEF1ZyAyMDIzIDIyOjQ4OjExICswMjAwClN1YmplY3Q6IFtQ QVRDSF0gW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgYHJlc3RyaWN0YCBhdHRyaWJ1dGUgb24gZnVu Y3Rpb24KIHBhcmFtZXRlcnMKCmdjYy9qaXQvQ2hhbmdlbG9nOgoJKiBqaXQtcGxheWJhY2suY2M6 IFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMuCgkqIGppdC1wbGF5YmFjay5o OiBBZGQgZ2V0X3Jlc3RyaWN0IG1ldGhvZC4KCSogaml0LXJlY29yZGluZy5jYzogQWRkIGdldF9y ZXN0cmljdCBtZXRob2RzLgoJKiBqaXQtcmVjb3JkaW5nLmg6IEFkZCBnZXRfcmVzdHJpY3QgbWV0 aG9kcy4KCSogbGliZ2Njaml0KysuaDogQWRkIGdldF9yZXN0cmljdCBtZXRob2RzLgoJKiBsaWJn Y2NqaXQuY2M6IEFkZCBnY2Nfaml0X3R5cGVfZ2V0X3Jlc3RyaWN0LgoJKiBsaWJnY2NqaXQuaDog RGVjbGFyZSBnY2Nfaml0X3R5cGVfZ2V0X3Jlc3RyaWN0LgoJKiBsaWJnY2NqaXQubWFwOiBEZWNs YXJlIGdjY19qaXRfdHlwZV9nZXRfcmVzdHJpY3QuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoK CSogaml0LmRnL3Rlc3QtcmVzdHJpY3QuYzogQWRkIHRlc3QgZm9yIF9fcmVzdHJpY3RfXyBhdHRy aWJ1dGUuCgpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgR29tZXogPGd1aWxsYXVtZTEuZ29tZXpA Z21haWwuY29tPgotLS0KIGdjYy9qaXQvaml0LXBsYXliYWNrLmNjICAgICAgICAgICAgICB8ICAy ICstCiBnY2Mvaml0L2ppdC1wbGF5YmFjay5oICAgICAgICAgICAgICAgfCAgNSArKwogZ2NjL2pp dC9qaXQtcmVjb3JkaW5nLmNjICAgICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysKIGdj Yy9qaXQvaml0LXJlY29yZGluZy5oICAgICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKystCiBn Y2Mvaml0L2xpYmdjY2ppdCsrLmggICAgICAgICAgICAgICAgfCAgNiArKysKIGdjYy9qaXQvbGli Z2Njaml0LmNjICAgICAgICAgICAgICAgICB8IDE0ICsrKysrCiBnY2Mvaml0L2xpYmdjY2ppdC5o ICAgICAgICAgICAgICAgICAgfCAgNCArKwogZ2NjL2ppdC9saWJnY2NqaXQubWFwICAgICAgICAg ICAgICAgIHwgIDEgKwogZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1yZXN0cmljdC5jIHwgNzcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCAxOTIgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2ppdC5kZy90ZXN0LXJlc3RyaWN0LmMKCmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFj ay5jYyBiL2djYy9qaXQvaml0LXBsYXliYWNrLmNjCmluZGV4IDg4ZTFiMjEyMDMwLi4wZWI0ZTk0 ZmRjNCAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcGxheWJhY2suY2MKKysrIGIvZ2NjL2ppdC9q aXQtcGxheWJhY2suY2MKQEAgLTM3OTMsNyArMzc5Myw3IEBAIGlmICh0KSBcCiAgIE5BTUVfVFlQ RSAoY29tcGxleF9mbG9hdF90eXBlX25vZGUsICJjb21wbGV4IGZsb2F0Iik7CiAgIE5BTUVfVFlQ RSAoY29tcGxleF9kb3VibGVfdHlwZV9ub2RlLCAiY29tcGxleCBkb3VibGUiKTsKICAgTkFNRV9U WVBFIChjb21wbGV4X2xvbmdfZG91YmxlX3R5cGVfbm9kZSwgImNvbXBsZXggbG9uZyBkb3VibGUi KTsKLSAgCisKICAgbV9jb25zdF9jaGFyX3B0ciA9IGJ1aWxkX3BvaW50ZXJfdHlwZSgKICAgICBi dWlsZF9xdWFsaWZpZWRfdHlwZSAoY2hhcl90eXBlX25vZGUsIFRZUEVfUVVBTF9DT05TVCkpOwog CmRpZmYgLS1naXQgYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5oIGIvZ2NjL2ppdC9qaXQtcGxheWJh Y2suaAppbmRleCBkMTUzZjQ5NDVkOC4uZmI0ZjdiOGI2NWIgMTAwNjQ0Ci0tLSBhL2djYy9qaXQv aml0LXBsYXliYWNrLmgKKysrIGIvZ2NjL2ppdC9qaXQtcGxheWJhY2suaApAQCAtNDkwLDYgKzQ5 MCwxMSBAQCBwdWJsaWM6CiAgICAgcmV0dXJuIG5ldyB0eXBlIChidWlsZF9xdWFsaWZpZWRfdHlw ZSAobV9pbm5lciwgVFlQRV9RVUFMX1ZPTEFUSUxFKSk7CiAgIH0KIAorICB0eXBlICpnZXRfcmVz dHJpY3QgKCkgY29uc3QKKyAgeworICAgIHJldHVybiBuZXcgdHlwZSAoYnVpbGRfcXVhbGlmaWVk X3R5cGUgKG1faW5uZXIsIFRZUEVfUVVBTF9SRVNUUklDVCkpOworICB9CisKICAgdHlwZSAqZ2V0 X2FsaWduZWQgKHNpemVfdCBhbGlnbm1lbnRfaW5fYnl0ZXMpIGNvbnN0OwogICB0eXBlICpnZXRf dmVjdG9yIChzaXplX3QgbnVtX3VuaXRzKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9q aXQtcmVjb3JkaW5nLmNjIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjCmluZGV4IGY5NjJjOTc0 OGM0Li5mMWFjODA4NDUyMiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjCisr KyBiL2djYy9qaXQvaml0LXJlY29yZGluZy5jYwpAQCAtMjM4MCw2ICsyMzgwLDE5IEBAIHJlY29y ZGluZzo6dHlwZTo6Z2V0X2NvbnN0ICgpCiAgIHJldHVybiByZXN1bHQ7CiB9CiAKKy8qIEdpdmVu IGEgdHlwZSBULCBnZXQgdGhlIHR5cGUgcmVzdHJpY3QgVC4KKworICAgSW1wbGVtZW50cyB0aGUg cG9zdC1lcnJvci1jaGVja2luZyBwYXJ0IG9mCisgICBnY2Nfaml0X3R5cGVfZ2V0X3Jlc3RyaWN0 LiAgKi8KKworcmVjb3JkaW5nOjp0eXBlICoKK3JlY29yZGluZzo6dHlwZTo6Z2V0X3Jlc3RyaWN0 ICgpCit7CisgIHJlY29yZGluZzo6dHlwZSAqcmVzdWx0ID0gbmV3IG1lbWVudG9fb2ZfZ2V0X3Jl c3RyaWN0ICh0aGlzKTsKKyAgbV9jdHh0LT5yZWNvcmQgKHJlc3VsdCk7CisgIHJldHVybiByZXN1 bHQ7Cit9CisKIC8qIEdpdmVuIGEgdHlwZSBULCBnZXQgdGhlIHR5cGUgdm9sYXRpbGUgVC4KIAog ICAgSW1wbGVtZW50cyB0aGUgcG9zdC1lcnJvci1jaGVja2luZyBwYXJ0IG9mCkBAIC0zMDkwLDYg KzMxMDMsNDAgQEAgcmVjb3JkaW5nOjptZW1lbnRvX29mX2dldF92b2xhdGlsZTo6d3JpdGVfcmVw cm9kdWNlciAocmVwcm9kdWNlciAmcikKIAkgICByLmdldF9pZGVudGlmaWVyX2FzX3R5cGUgKG1f b3RoZXJfdHlwZSkpOwogfQogCisvKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgY2xhc3MgZ2NjOjpq aXQ6OnJlY29yZGluZzo6bWVtZW50b19vZl9nZXRfcmVzdHJpY3QuICAqLworCisvKiBJbXBsZW1l bnRhdGlvbiBvZiBwdXJlIHZpcnR1YWwgaG9vayByZWNvcmRpbmc6Om1lbWVudG86OnJlcGxheV9p bnRvCisgICBmb3IgcmVjb3JkaW5nOjptZW1lbnRvX29mX2dldF9yZXN0cmljdC4gICovCisKK3Zv aWQKK3JlY29yZGluZzo6bWVtZW50b19vZl9nZXRfcmVzdHJpY3Q6OnJlcGxheV9pbnRvIChyZXBs YXllciAqKQoreworICBzZXRfcGxheWJhY2tfb2JqIChtX290aGVyX3R5cGUtPnBsYXliYWNrX3R5 cGUgKCktPmdldF9yZXN0cmljdCAoKSk7Cit9CisKKy8qIEltcGxlbWVudGF0aW9uIG9mIHJlY29y ZGluZzo6bWVtZW50bzo6bWFrZV9kZWJ1Z19zdHJpbmcgZm9yCisgICByZXN1bHRzIG9mIGdldF9y ZXN0cmljdCwgcHJlcGVuZGluZyAicmVzdHJpY3QgIi4gICovCisKK3JlY29yZGluZzo6c3RyaW5n ICoKK3JlY29yZGluZzo6bWVtZW50b19vZl9nZXRfcmVzdHJpY3Q6Om1ha2VfZGVidWdfc3RyaW5n ICgpCit7CisgIHJldHVybiBzdHJpbmc6OmZyb21fcHJpbnRmIChtX2N0eHQsCisJCQkgICAgICAi cmVzdHJpY3QgJXMiLCBtX290aGVyX3R5cGUtPmdldF9kZWJ1Z19zdHJpbmcgKCkpOworfQorCisv KiBJbXBsZW1lbnRhdGlvbiBvZiByZWNvcmRpbmc6Om1lbWVudG86OndyaXRlX3JlcHJvZHVjZXIg Zm9yIHJlc3RyaWN0CisgICB0eXBlcy4gICovCisKK3ZvaWQKK3JlY29yZGluZzo6bWVtZW50b19v Zl9nZXRfcmVzdHJpY3Q6OndyaXRlX3JlcHJvZHVjZXIgKHJlcHJvZHVjZXIgJnIpCit7CisgIGNv bnN0IGNoYXIgKmlkID0gci5tYWtlX2lkZW50aWZpZXIgKHRoaXMsICJ0eXBlIik7CisgIHIud3Jp dGUgKCIgIGdjY19qaXRfdHlwZSAqJXMgPVxuIgorCSAgICIgICAgZ2NjX2ppdF90eXBlX2dldF9y ZXN0cmljdCAoJXMpO1xuIiwKKwkgICBpZCwKKwkgICByLmdldF9pZGVudGlmaWVyX2FzX3R5cGUg KG1fb3RoZXJfdHlwZSkpOworfQorCiAvKiBUaGUgaW1wbGVtZW50YXRpb24gb2YgY2xhc3MgZ2Nj OjpqaXQ6OnJlY29yZGluZzo6bWVtZW50b19vZl9nZXRfYWxpZ25lZC4gICovCiAKIC8qIEltcGxl bWVudGF0aW9uIG9mIHB1cmUgdmlydHVhbCBob29rIHJlY29yZGluZzo6bWVtZW50bzo6cmVwbGF5 X2ludG8KZGlmZiAtLWdpdCBhL2djYy9qaXQvaml0LXJlY29yZGluZy5oIGIvZ2NjL2ppdC9qaXQt cmVjb3JkaW5nLmgKaW5kZXggOTI5YmJlMzdjM2YuLjBmMjBiYmFjZmYyIDEwMDY0NAotLS0gYS9n Y2Mvaml0L2ppdC1yZWNvcmRpbmcuaAorKysgYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaApAQCAt NTU1LDYgKzU1NSw3IEBAIHB1YmxpYzoKICAgdHlwZSAqZ2V0X3BvaW50ZXIgKCk7CiAgIHR5cGUg KmdldF9jb25zdCAoKTsKICAgdHlwZSAqZ2V0X3ZvbGF0aWxlICgpOworICB0eXBlICpnZXRfcmVz dHJpY3QgKCk7CiAgIHR5cGUgKmdldF9hbGlnbmVkIChzaXplX3QgYWxpZ25tZW50X2luX2J5dGVz KTsKICAgdHlwZSAqZ2V0X3ZlY3RvciAoc2l6ZV90IG51bV91bml0cyk7CiAKQEAgLTYwMyw2ICs2 MDQsNyBAQCBwdWJsaWM6CiAgIHZpcnR1YWwgYm9vbCBpc19ib29sICgpIGNvbnN0ID0gMDsKICAg dmlydHVhbCB0eXBlICppc19wb2ludGVyICgpID0gMDsKICAgdmlydHVhbCB0eXBlICppc192b2xh dGlsZSAoKSB7IHJldHVybiBOVUxMOyB9CisgIHZpcnR1YWwgdHlwZSAqaXNfcmVzdHJpY3QgKCkg eyByZXR1cm4gTlVMTDsgfQogICB2aXJ0dWFsIHR5cGUgKmlzX2NvbnN0ICgpIHsgcmV0dXJuIE5V TEw7IH0KICAgdmlydHVhbCB0eXBlICppc19hcnJheSAoKSA9IDA7CiAgIHZpcnR1YWwgc3RydWN0 XyAqaXNfc3RydWN0ICgpIHsgcmV0dXJuIE5VTEw7IH0KQEAgLTczNyw3ICs3MzksNyBAQCBwcml2 YXRlOgogfTsKIAogLyogQSBkZWNvcmF0ZWQgdmVyc2lvbiBvZiBhIHR5cGUsIGZvciBnZXRfY29u c3QsIGdldF92b2xhdGlsZSwKLSAgIGdldF9hbGlnbmVkLCBhbmQgZ2V0X3ZlY3Rvci4gICovCisg ICBnZXRfYWxpZ25lZCwgZ2V0X3Jlc3RyaWN0LCBhbmQgZ2V0X3ZlY3Rvci4gICovCiAKIGNsYXNz IGRlY29yYXRlZF90eXBlIDogcHVibGljIHR5cGUKIHsKQEAgLTgxMCw3ICs4MTIsNyBAQCBwdWJs aWM6CiAgICAgcmV0dXJuIG1fb3RoZXJfdHlwZS0+aXNfc2FtZV90eXBlX2FzIChvdGhlci0+aXNf dm9sYXRpbGUgKCkpOwogICB9CiAKLSAgdHlwZSogY29weShjb250ZXh0KiBjdHh0KSBmaW5hbCBv dmVycmlkZQorICB0eXBlKiBjb3B5IChjb250ZXh0KiBjdHh0KSBmaW5hbCBvdmVycmlkZQogICB7 CiAgICAgdHlwZSogcmVzdWx0ID0gbmV3IG1lbWVudG9fb2ZfZ2V0X3ZvbGF0aWxlIChtX290aGVy X3R5cGUtPmNvcHkgKGN0eHQpKTsKICAgICBjdHh0LT5yZWNvcmQgKHJlc3VsdCk7CkBAIC04Mjks NiArODMxLDM5IEBAIHByaXZhdGU6CiAgIHZvaWQgd3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNl ciAmcikgZmluYWwgb3ZlcnJpZGU7CiB9OwogCisvKiBSZXN1bHQgb2YgImdjY19qaXRfdHlwZV9n ZXRfcmVzdHJpY3QiLiAgKi8KK2NsYXNzIG1lbWVudG9fb2ZfZ2V0X3Jlc3RyaWN0IDogcHVibGlj IGRlY29yYXRlZF90eXBlCit7CitwdWJsaWM6CisgIG1lbWVudG9fb2ZfZ2V0X3Jlc3RyaWN0ICh0 eXBlICpvdGhlcl90eXBlKQorICA6IGRlY29yYXRlZF90eXBlIChvdGhlcl90eXBlKSB7fQorCisg IGJvb2wgaXNfc2FtZV90eXBlX2FzICh0eXBlICpvdGhlcikgZmluYWwgb3ZlcnJpZGUKKyAgewor ICAgIGlmICghb3RoZXItPmlzX3Jlc3RyaWN0ICgpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAg IHJldHVybiBtX290aGVyX3R5cGUtPmlzX3NhbWVfdHlwZV9hcyAob3RoZXItPmlzX3Jlc3RyaWN0 ICgpKTsKKyAgfQorCisgIHR5cGUqIGNvcHkgKGNvbnRleHQqIGN0eHQpIGZpbmFsIG92ZXJyaWRl CisgIHsKKyAgICB0eXBlKiByZXN1bHQgPSBuZXcgbWVtZW50b19vZl9nZXRfcmVzdHJpY3QgKG1f b3RoZXJfdHlwZS0+Y29weSAoY3R4dCkpOworICAgIGN0eHQtPnJlY29yZCAocmVzdWx0KTsKKyAg ICByZXR1cm4gcmVzdWx0OworICB9CisKKyAgLyogU3RyaXAgb2ZmIHRoZSAicmVzdHJpY3QiLCBn aXZpbmcgdGhlIHVuZGVybHlpbmcgdHlwZS4gICovCisgIHR5cGUgKnVucXVhbGlmaWVkICgpIGZp bmFsIG92ZXJyaWRlIHsgcmV0dXJuIG1fb3RoZXJfdHlwZTsgfQorCisgIHR5cGUgKmlzX3Jlc3Ry aWN0ICgpIGZpbmFsIG92ZXJyaWRlIHsgcmV0dXJuIG1fb3RoZXJfdHlwZTsgfQorCisgIHZvaWQg cmVwbGF5X2ludG8gKHJlcGxheWVyICopIGZpbmFsIG92ZXJyaWRlOworCitwcml2YXRlOgorICBz dHJpbmcgKiBtYWtlX2RlYnVnX3N0cmluZyAoKSBmaW5hbCBvdmVycmlkZTsKKyAgdm9pZCB3cml0 ZV9yZXByb2R1Y2VyIChyZXByb2R1Y2VyICZyKSBmaW5hbCBvdmVycmlkZTsKK307CisKIC8qIFJl c3VsdCBvZiAiZ2NjX2ppdF90eXBlX2dldF9hbGlnbmVkIi4gICovCiBjbGFzcyBtZW1lbnRvX29m X2dldF9hbGlnbmVkIDogcHVibGljIGRlY29yYXRlZF90eXBlCiB7CmRpZmYgLS1naXQgYS9nY2Mv aml0L2xpYmdjY2ppdCsrLmggYi9nY2Mvaml0L2xpYmdjY2ppdCsrLmgKaW5kZXggNGI4OGU4Nzdi YzkuLmI0MzBmN2ViMDQ5IDEwMDY0NAotLS0gYS9nY2Mvaml0L2xpYmdjY2ppdCsrLmgKKysrIGIv Z2NjL2ppdC9saWJnY2NqaXQrKy5oCkBAIC0xNDEwLDYgKzE0MTAsMTIgQEAgdHlwZTo6Z2V0X2Nv bnN0ICgpCiAgIHJldHVybiB0eXBlIChnY2Nfaml0X3R5cGVfZ2V0X2NvbnN0IChnZXRfaW5uZXJf dHlwZSAoKSkpOwogfQogCitpbmxpbmUgdHlwZQordHlwZTo6Z2V0X3Jlc3RyaWN0ICgpCit7Cisg IHJldHVybiB0eXBlIChnY2Nfaml0X3R5cGVfZ2V0X3Jlc3RyaWN0IChnZXRfaW5uZXJfdHlwZSAo KSkpOworfQorCiBpbmxpbmUgdHlwZQogdHlwZTo6Z2V0X3ZvbGF0aWxlICgpCiB7CmRpZmYgLS1n aXQgYS9nY2Mvaml0L2xpYmdjY2ppdC5jYyBiL2djYy9qaXQvbGliZ2Njaml0LmNjCmluZGV4IDA1 MGU2OGI3MzhjLi45Yjg3ZTA1NjlkNiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQuY2MK KysrIGIvZ2NjL2ppdC9saWJnY2NqaXQuY2MKQEAgLTUzOSw2ICs1MzksMjAgQEAgZ2NjX2ppdF90 eXBlX2dldF92b2xhdGlsZSAoZ2NjX2ppdF90eXBlICp0eXBlKQogICByZXR1cm4gKGdjY19qaXRf dHlwZSAqKXR5cGUtPmdldF92b2xhdGlsZSAoKTsKIH0KIAorLyogUHVibGljIGVudHJ5cG9pbnQu ICBTZWUgZGVzY3JpcHRpb24gaW4gbGliZ2Njaml0LmguCisKKyAgIEFmdGVyIGVycm9yLWNoZWNr aW5nLCB0aGUgcmVhbCB3b3JrIGlzIGRvbmUgYnkgdGhlCisgICBnY2M6OmppdDo6cmVjb3JkaW5n Ojp0eXBlOjpnZXRfcmVzdHJpY3QgbWV0aG9kLCBpbgorICAgaml0LXJlY29yZGluZy5jYy4gICov CisKK2djY19qaXRfdHlwZSAqCitnY2Nfaml0X3R5cGVfZ2V0X3Jlc3RyaWN0IChnY2Nfaml0X3R5 cGUgKnR5cGUpCit7CisgIFJFVFVSTl9OVUxMX0lGX0ZBSUwgKHR5cGUsIE5VTEwsIE5VTEwsICJO VUxMIHR5cGUiKTsKKworICByZXR1cm4gKGdjY19qaXRfdHlwZSAqKXR5cGUtPmdldF9yZXN0cmlj dCAoKTsKK30KKwogLyogUHVibGljIGVudHJ5cG9pbnQuICBTZWUgZGVzY3JpcHRpb24gaW4gbGli Z2Njaml0LmguCiAKICAgIEFmdGVyIGVycm9yLWNoZWNraW5nLCB0aGUgcmVhbCB3b3JrIGlzIGRv bmUgYnkgdGhlCmRpZmYgLS1naXQgYS9nY2Mvaml0L2xpYmdjY2ppdC5oIGIvZ2NjL2ppdC9saWJn Y2NqaXQuaAppbmRleCA2MGVhZjM5YmZmNi4uMmUwZDA4YTA2ZDggMTAwNjQ0Ci0tLSBhL2djYy9q aXQvbGliZ2Njaml0LmgKKysrIGIvZ2NjL2ppdC9saWJnY2NqaXQuaApAQCAtNjM1LDYgKzYzNSwx MCBAQCBnY2Nfaml0X3R5cGVfZ2V0X2NvbnN0IChnY2Nfaml0X3R5cGUgKnR5cGUpOwogZXh0ZXJu IGdjY19qaXRfdHlwZSAqCiBnY2Nfaml0X3R5cGVfZ2V0X3ZvbGF0aWxlIChnY2Nfaml0X3R5cGUg KnR5cGUpOwogCisvKiBHaXZlbiB0eXBlICJUIiwgZ2V0IHR5cGUgInJlc3RyaWN0IFQiLiAgKi8K K2V4dGVybiBnY2Nfaml0X3R5cGUgKgorZ2NjX2ppdF90eXBlX2dldF9yZXN0cmljdCAoZ2NjX2pp dF90eXBlICp0eXBlKTsKKwogI2RlZmluZSBMSUJHQ0NKSVRfSEFWRV9TSVpFRF9JTlRFR0VSUwog CiAvKiBHaXZlbiB0eXBlcyBMVFlQRSBhbmQgUlRZUEUsIHJldHVybiBub24temVybyBpZiB0aGV5 IGFyZSBjb21wYXRpYmxlLgpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwIGIvZ2Nj L2ppdC9saWJnY2NqaXQubWFwCmluZGV4IGU1MmRlMDA1N2E1Li5iNzI4OWIxMzg0NSAxMDA2NDQK LS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwCisrKyBiL2djYy9qaXQvbGliZ2Njaml0Lm1hcApA QCAtMTA0LDYgKzEwNCw3IEBAIExJQkdDQ0pJVF9BQklfMAogICAgIGdjY19qaXRfdHlwZV9hc19v YmplY3Q7CiAgICAgZ2NjX2ppdF90eXBlX2dldF9jb25zdDsKICAgICBnY2Nfaml0X3R5cGVfZ2V0 X3BvaW50ZXI7CisgICAgZ2NjX2ppdF90eXBlX2dldF9yZXN0cmljdDsKICAgICBnY2Nfaml0X3R5 cGVfZ2V0X3ZvbGF0aWxlOwogCiAgIGxvY2FsOiAqOwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvdGVzdC1yZXN0cmljdC5jIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC1yZXN0 cmljdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YzhjNDQwN2Y5 MQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtcmVzdHJpY3Qu YwpAQCAtMCwwICsxLDc3IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgeDg2XzY0LSot KiB9IH0gKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNp bmNsdWRlICJsaWJnY2NqaXQuaCIKKworLyogV2UgZG9uJ3Qgd2FudCBzZXRfb3B0aW9ucygpIGlu IGhhcm5lc3MuaCB0byBzZXQgLU8zIHRvIHNlZSB0aGF0IHRoZSBjb2xkCisJIGF0dHJpYnV0ZSBh ZmZlY3RzIHRoZSBvcHRpbWl6YXRpb25zLiAqLworI2RlZmluZSBURVNUX0VTQ0hFV1NfU0VUX09Q VElPTlMKK3N0YXRpYyB2b2lkIHNldF9vcHRpb25zIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGNv bnN0IGNoYXIgKmFyZ3YwKQoreworCS8vIFNldCAiLU8zIi4KKwlnY2Nfaml0X2NvbnRleHRfc2V0 X2ludF9vcHRpb24oY3R4dCwgR0NDX0pJVF9JTlRfT1BUSU9OX09QVElNSVpBVElPTl9MRVZFTCwg Myk7Cit9CisKKyNkZWZpbmUgVEVTVF9DT01QSUxJTkdfVE9fRklMRQorI2RlZmluZSBPVVRQVVRf S0lORCAgICAgIEdDQ19KSVRfT1VUUFVUX0tJTkRfQVNTRU1CTEVSCisjZGVmaW5lIE9VVFBVVF9G SUxFTkFNRSAgIm91dHB1dC1vZi10ZXN0LXJlc3RyaWN0LmMucyIKKyNpbmNsdWRlICJoYXJuZXNz LmgiCisKK3ZvaWQKK2NyZWF0ZV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZvaWQgKnVz ZXJfZGF0YSkKK3sKKwkvKiBMZXQncyB0cnkgdG8gaW5qZWN0IHRoZSBlcXVpdmFsZW50IG9mOgor dm9pZCB0KGludCAqX19yZXN0cmljdF9fIGEsIGludCAqX19yZXN0cmljdF9fIGIsIGNoYXIgKl9f cmVzdHJpY3RfXyBjKSB7CisJKmEgKz0gKmM7CisJKmIgKz0gKmM7Cit9CisJKi8KKwlnY2Nfaml0 X3R5cGUgKmludF90eXBlID0KKwkJZ2NjX2ppdF9jb250ZXh0X2dldF90eXBlIChjdHh0LCBHQ0Nf SklUX1RZUEVfSU5UKTsKKwlnY2Nfaml0X3R5cGUgKnBpbnRfdHlwZSA9IGdjY19qaXRfdHlwZV9n ZXRfcG9pbnRlcihpbnRfdHlwZSk7CisJZ2NjX2ppdF90eXBlICpwaW50X3Jlc3RyaWN0X3R5cGUg PSBnY2Nfaml0X3R5cGVfZ2V0X3Jlc3RyaWN0KHBpbnRfdHlwZSk7CisKKwlnY2Nfaml0X3R5cGUg KnZvaWRfdHlwZSA9CisJCWdjY19qaXRfY29udGV4dF9nZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9U WVBFX1ZPSUQpOworCisJZ2NjX2ppdF9wYXJhbSAqYSA9CisJCWdjY19qaXRfY29udGV4dF9uZXdf cGFyYW0gKGN0eHQsIE5VTEwsIHBpbnRfcmVzdHJpY3RfdHlwZSwgImEiKTsKKwlnY2Nfaml0X3Bh cmFtICpiID0KKwkJZ2NjX2ppdF9jb250ZXh0X25ld19wYXJhbSAoY3R4dCwgTlVMTCwgcGludF9y ZXN0cmljdF90eXBlLCAiYiIpOworCWdjY19qaXRfcGFyYW0gKmMgPQorCQlnY2Nfaml0X2NvbnRl eHRfbmV3X3BhcmFtIChjdHh0LCBOVUxMLCBwaW50X3Jlc3RyaWN0X3R5cGUsICJjIik7CisJZ2Nj X2ppdF9wYXJhbSAqcGFyYW1zWzNdID0ge2EsIGIsIGN9OworCisJZ2NjX2ppdF9mdW5jdGlvbiAq ZnVuY190ID0KKwkJZ2NjX2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY3R4dCwgTlVMTCwKKwkJ CQkJR0NDX0pJVF9GVU5DVElPTl9FWFBPUlRFRCwKKwkJCQkJdm9pZF90eXBlLAorCQkJCQkidCIs CisJCQkJCTMsIHBhcmFtcywKKwkJCQkJMCk7CisKKwlnY2Nfaml0X2Jsb2NrICpibG9jayA9IGdj Y19qaXRfZnVuY3Rpb25fbmV3X2Jsb2NrIChmdW5jX3QsIE5VTEwpOworCisJLyogKmEgKz0gKmM7 ICovCisJZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudF9vcCAoCisJCWJsb2NrLCBOVUxMLAor CQlnY2Nfaml0X3J2YWx1ZV9kZXJlZmVyZW5jZSAoZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKGEp LCBOVUxMKSwKKwkJR0NDX0pJVF9CSU5BUllfT1BfUExVUywKKwkJZ2NjX2ppdF9sdmFsdWVfYXNf cnZhbHVlICgKKwkJCWdjY19qaXRfcnZhbHVlX2RlcmVmZXJlbmNlIChnY2Nfaml0X3BhcmFtX2Fz X3J2YWx1ZSAoYyksIE5VTEwpKSk7CisJLyogKmIgKz0gKmM7ICovCisJZ2NjX2ppdF9ibG9ja19h ZGRfYXNzaWdubWVudF9vcCAoCisJCWJsb2NrLCBOVUxMLAorCQlnY2Nfaml0X3J2YWx1ZV9kZXJl ZmVyZW5jZSAoZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKGIpLCBOVUxMKSwKKwkJR0NDX0pJVF9C SU5BUllfT1BfUExVUywKKwkJZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlICgKKwkJCWdjY19qaXRf cnZhbHVlX2RlcmVmZXJlbmNlIChnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAoYyksIE5VTEwpKSk7 CisKKwlnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3ZvaWRfcmV0dXJuIChibG9jaywgTlVMTCk7Cit9 CisKKy8qIHsgZGctZmluYWwgeyBqaXQtdmVyaWZ5LW91dHB1dC1maWxlLXdhcy1jcmVhdGVkICIi IH0gfSAqLworLyogeyBkZy1maW5hbCB7IGppdC12ZXJpZnktYXNzZW1ibGVyLW91dHB1dCAiYWRk bAklZWF4LCAoJXJkaSkKKwlhZGRsCSVlYXgsICglcnNpKSIgfSB9ICovCi0tIAoyLjM0LjEKCg== --000000000000f64bb206030fd60b--