From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) by sourceware.org (Postfix) with ESMTPS id E47533858D37 for ; Wed, 28 Sep 2022 20:44:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E47533858D37 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=acm.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-qk1-x72c.google.com with SMTP id d17so8612298qko.13 for ; Wed, 28 Sep 2022 13:44:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:sender:from:to:cc:subject:date; bh=4p1PX1sqYnOWx0DwjtZ08x7AdxRp54tUbCJctd3dnQM=; b=KYgEfHknIrY4wEeOw+Q0d+i2cLI2+KcrX4JAWdodEKVeJZYmw+MfOe6lHGTcsrjzKB RRa7D9f2bi3cFL8I1//gAPgeuB+DuO+syJ78cooZyxHOat0xOFrqOjDUmnn1y5QSb3Kd vzWmON6VU/l86e+qOErpjQ7pTx7UeuKYChYsYb/yxye1dYPP024A/h9AZpPS6iP0UboF pZZMhdU5NmUpiO9WdP2dzhE9aTX2l8jUhpn0qluuNIOORgHq6tKHdDpoKKfnh1aVgGg3 8OnPNxi3WK10aK9V+gkt2UUlT4yGeL0dA/4WDnO4MRgQqERvXNSp80veY59q700eTEaO HXXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=subject:from:to:content-language:user-agent:mime-version:date :message-id:sender:x-gm-message-state:from:to:cc:subject:date; bh=4p1PX1sqYnOWx0DwjtZ08x7AdxRp54tUbCJctd3dnQM=; b=Sy4kEYI+cmRO8sZAZFg+ShCYxmP0b4o3c3JEW2NXAAR+TzbnpH8XQJOxwNgGo1AtdF B9ux3qhlZJ4wvpZlhXN2wubsbgHMLpPnFUQXsq2yD0QtaR7KoXDSW+dQYn0Z9ywa64l0 vLSh35DjxRExgUlGokh8XJA+bhrHSsKooGOc7Ml3rJ2Kxvjp8PGe1iEURsMi9eVD7FyO 6wtwd6fafM9GJss6/ETE2aS9ynttXH21HGrrju5Urg2uBmKAKrgIGKXDcNO7pN0L3I24 lp//p7lXdw5ZCKN/iaI2DfRfSOtsQqn1/oHqZQ7vPfCqLUlJvrIUZWeOkc/nG3WvvXga IK9w== X-Gm-Message-State: ACrzQf2u0oOuqHCQuLzb/+Mj5qT1xJmPGF/CC2lLzv26VSUT6mDF0zX4 xAv6EI8LYxHnXGD8oEAxjZs= X-Google-Smtp-Source: AMsMyM7aPJVSNv30qr07XLcnhUFAh3GvaEHfX1ieUosISorPl8spcVZ2uG6/X3/CNxlukG0fGW1stg== X-Received: by 2002:a05:620a:28d2:b0:6ce:66a7:c0c6 with SMTP id l18-20020a05620a28d200b006ce66a7c0c6mr22690307qkp.166.1664397873264; Wed, 28 Sep 2022 13:44:33 -0700 (PDT) Received: from ?IPV6:2620:10d:c0a8:11c9::1035? ([2620:10d:c091:480::d460]) by smtp.googlemail.com with ESMTPSA id bv21-20020a05622a0a1500b00342f8d4d0basm3774862qtb.43.2022.09.28.13.44.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Sep 2022 13:44:31 -0700 (PDT) Sender: Nathan Sidwell Content-Type: multipart/mixed; boundary="------------jM83tKRgD25005LF6tAs9SkH" Message-ID: Date: Wed, 28 Sep 2022 16:44:29 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Content-Language: en-US To: Patrick Palka , GCC Patches From: Nathan Sidwell Subject: c++: Add DECL_NTTP_OBJECT_P lang flag X-Spam-Status: No, score=-3038.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,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. --------------jM83tKRgD25005LF6tAs9SkH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit VAR_DECLs for NTTPs need to be handled specially by module streaming, in the same manner to type info decls. This reworks their handling to allow that work to drop in. We use DECL_LANG_FLAG_5 to indicate such decls (I didn't notice template_parm_object_p, which looks at the mangled name -- anyway a bit flag on the node is better, IMHO). We break apart the creation routine, so there's now an entry point the module machinery can use directly. nathan -- Nathan Sidwell --------------jM83tKRgD25005LF6tAs9SkH Content-Type: text/x-patch; charset=UTF-8; name="0001-c-Add-DECL_NTTP_OBJECT_P-lang-flag.patch" Content-Disposition: attachment; filename="0001-c-Add-DECL_NTTP_OBJECT_P-lang-flag.patch" Content-Transfer-Encoding: base64 RnJvbSA1MDg4OGU3MGM5ODRkYTljZDk2NzZkMzk4NmY2ODIyMjU4MTg4NGIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW4gU2lkd2VsbCA8bmF0aGFuQGFjbS5vcmc+ CkRhdGU6IFdlZCwgMjggU2VwIDIwMjIgMDk6MjA6MjcgLTA3MDAKU3ViamVjdDogW1BBVENI XSBjKys6IEFkZCBERUNMX05UVFBfT0JKRUNUX1AgbGFuZyBmbGFnCgpWQVJfREVDTHMgZm9y IE5UVFBzIG5lZWQgdG8gYmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgbW9kdWxlIHN0cmVhbWlu ZywKaW4gdGhlIHNhbWUgbWFubmVyIHRvIHR5cGUgaW5mbyBkZWNscy4gIFRoaXMgcmV3b3Jr cyB0aGVpciBoYW5kbGluZyB0bwphbGxvdyB0aGF0IHdvcmsgdG8gZHJvcCBpbi4gIFdlIHVz ZSBERUNMX0xBTkdfRkxBR181IHRvIGluZGljYXRlIHN1Y2gKZGVjbHMgKEkgZGlkbid0IG5v dGljZSB0ZW1wbGF0ZV9wYXJtX29iamVjdF9wLCB3aGljaCBsb29rcyBhdCB0aGUKbWFuZ2xl ZCBuYW1lIC0tIGFueXdheSBhIGJpdCBmbGFnIG9uIHRoZSBub2RlIGlzIGJldHRlciwgSU1I TykuICBXZQpicmVhayBhcGFydCB0aGUgY3JlYXRpb24gcm91dGluZSwgc28gdGhlcmUncyBu b3cgYW4gZW50cnkgcG9pbnQgdGhlCm1vZHVsZSBtYWNoaW5lcnkgY2FuIHVzZSBkaXJlY3Rs eS4KCglnY2MvY3AvCgkqIGNwLXRyZWUuaCAoREVDTF9OVFRQX09CSkVDVF9QKTogTmV3LgoJ KHRlbXBsYXRlX3Bhcm1fb2JqZWN0X3ApOiBEZWxldGUuCgkoYnVpbGRfdGVtcGxhdGVfcGFy bV9vYmplY3QpOiBEZWNsYXJlLgoJKiBjeHgtcHJldHR5LXByaW50LmNjIChwcF9jeF90ZW1w bGF0ZV9hcmd1bWVudF9saXN0KTogVXNlIERFQ0xfTlRUUF9PQkpFQ1RfUC4KCSogZXJyb3Iu Y2MgKGR1bXBfc2ltcGxlX2RlY2wpOiBMaWtld2lzZS4KCSogbWFuZ2xlLmNjICh3cml0ZV90 ZW1wbGF0ZV9hcmcpOiBMaWtld2lzZS4KCSogcHQuY2MgKHRlbXBsYXRlX3Bhcm1fb2JqZWN0 X3ApOiBEZWxldGUuCgkoY3JlYXRlX3RlbXBsYXRlX3Bhcm1fb2JqZWN0KTogU2VwYXJhdGVk IG91dCBjaGVja2luZyBmcm9tIC4uLgoJKGdldF90ZW1wbGF0ZV9wYXJtX29iamVjdCk6IC4u LiB0aGlzLCBuZXcgZXh0ZXJuYWwgZW50cnkgcG9pbnQuCi0tLQogZ2NjL2NwL2NwLXRyZWUu aCAgICAgICAgICAgfCAgNyArKysrKystCiBnY2MvY3AvY3h4LXByZXR0eS1wcmludC5jYyB8 ICAyICstCiBnY2MvY3AvZXJyb3IuY2MgICAgICAgICAgICB8ICAyICstCiBnY2MvY3AvbWFu Z2xlLmNjICAgICAgICAgICB8ICAyICstCiBnY2MvY3AvcHQuY2MgICAgICAgICAgICAgICB8 IDM1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiA1IGZpbGVzIGNoYW5n ZWQsIDI2IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dj Yy9jcC9jcC10cmVlLmggYi9nY2MvY3AvY3AtdHJlZS5oCmluZGV4IDE5YmJmYmM1NTdmLi5k MGYxYjE4YjAxNSAxMDA2NDQKLS0tIGEvZ2NjL2NwL2NwLXRyZWUuaAorKysgYi9nY2MvY3Av Y3AtdHJlZS5oCkBAIC01MTgsNiArNTE4LDcgQEAgZXh0ZXJuIEdUWSgoKSkgdHJlZSBjcF9n bG9iYWxfdHJlZXNbQ1BUSV9NQVhdOwogICAgICAgQ0FMTF9FWFBSX1JFVkVSU0VfQVJHUyAo aW4gQ0FMTF9FWFBSLCBBR0dSX0lOSVRfRVhQUikKICAgICAgIENPTlNUUlVDVE9SX1BMQUNF SE9MREVSX0JPVU5EQVJZIChpbiBDT05TVFJVQ1RPUikKICAgICAgIE9WTF9FWFBPUlRfUCAo aW4gT1ZFUkxPQUQpCisgICAgICBERUNMX05UVFBfT0JKRUNUX1AgKGluIFZBUl9ERUNMKQog ICAgNjogVFlQRV9NQVJLRURfUCAoaW4gX1RZUEUpCiAgICAgICBERUNMX05PTlRSSVZJQUxM WV9JTklUSUFMSVpFRF9QIChpbiBWQVJfREVDTCkKICAgICAgIFJBTkdFX0ZPUl9JVkRFUCAo aW4gUkFOR0VfRk9SX1NUTVQpCkBAIC0zNTQ4LDYgKzM1NDksMTAgQEAgc3RydWN0IEdUWSgo KSkgbGFuZ19kZWNsIHsKICNkZWZpbmUgREVDTF9USU5GT19QKE5PREUpCQkJXAogICBUUkVF X0xBTkdfRkxBR180IChUUkVFX0NIRUNLMiAoTk9ERSxWQVJfREVDTCxUWVBFX0RFQ0wpKQog CisvKiB0cnVlIGlmZiBWQVJfREVDTCBub2RlIE5PREUgaXMgYSBOVFRQIG9iamVjdCBkZWNs LiAgKi8KKyNkZWZpbmUgREVDTF9OVFRQX09CSkVDVF9QKE5PREUpCQkJXAorICBUUkVFX0xB TkdfRkxBR181IChUUkVFX0NIRUNLIChOT0RFLFZBUl9ERUNMKSkKKwogLyogMSBpZmYgVkFS X0RFQ0wgbm9kZSBOT0RFIGlzIHZpcnR1YWwgdGFibGUgb3IgVlRULiAgV2UgZm9yd2FyZCB0 bwogICAgREVDTF9WSVJUVUFMX1AgZnJvbSB0aGUgY29tbW9uIGNvZGUsIGFzIHRoYXQgaGFz IHRoZSBzZW1hbnRpY3Mgd2UKICAgIG5lZWQuICBCdXQgd2Ugd2FudCBhIG1vcmUgZGVzY3Jp cHRpdmUgbmFtZS4gICovCkBAIC03NDE0LDcgKzc0MTksNyBAQCBleHRlcm4gYm9vbCBhbGlh c190eXBlX29yX3RlbXBsYXRlX3AgICAgICAgICAgICAodHJlZSk7CiBlbnVtIHsgbnRfb3Bh cXVlID0gZmFsc2UsIG50X3RyYW5zcGFyZW50ID0gdHJ1ZSB9OwogZXh0ZXJuIHRyZWUgYWxp YXNfdGVtcGxhdGVfc3BlY2lhbGl6YXRpb25fcCAgICAgKGNvbnN0X3RyZWUsIGJvb2wpOwog ZXh0ZXJuIHRyZWUgZGVwZW5kZW50X2FsaWFzX3RlbXBsYXRlX3NwZWNfcCAgICAgKGNvbnN0 X3RyZWUsIGJvb2wpOwotZXh0ZXJuIGJvb2wgdGVtcGxhdGVfcGFybV9vYmplY3RfcAkJKGNv bnN0X3RyZWUpOworZXh0ZXJuIHRyZWUgZ2V0X3RlbXBsYXRlX3Bhcm1fb2JqZWN0CQkodHJl ZSBleHByLCB0cmVlIG1hbmdsZSk7CiBleHRlcm4gdHJlZSB0cGFybV9vYmplY3RfYXJndW1l bnQJCSh0cmVlKTsKIGV4dGVybiBib29sIGV4cGxpY2l0X2NsYXNzX3NwZWNpYWxpemF0aW9u X3AgICAgICh0cmVlKTsKIGV4dGVybiBib29sIHB1c2hfdGluc3RfbGV2ZWwgICAgICAgICAg ICAgICAgICAgICh0cmVlKTsKZGlmZiAtLWdpdCBhL2djYy9jcC9jeHgtcHJldHR5LXByaW50 LmNjIGIvZ2NjL2NwL2N4eC1wcmV0dHktcHJpbnQuY2MKaW5kZXggZTE4MTQzZTM5YTkuLmJi ZDUxYmI1NjJhIDEwMDY0NAotLS0gYS9nY2MvY3AvY3h4LXByZXR0eS1wcmludC5jYworKysg Yi9nY2MvY3AvY3h4LXByZXR0eS1wcmludC5jYwpAQCAtMTk1Niw3ICsxOTU2LDcgQEAgcHBf Y3h4X3RlbXBsYXRlX2FyZ3VtZW50X2xpc3QgKGN4eF9wcmV0dHlfcHJpbnRlciAqcHAsIHRy ZWUgdCkKIAkgIGlmIChUWVBFX1AgKGFyZykgfHwgKFRSRUVfQ09ERSAoYXJnKSA9PSBURU1Q TEFURV9ERUNMCiAJCQkgICAgICAgJiYgVFlQRV9QIChERUNMX1RFTVBMQVRFX1JFU1VMVCAo YXJnKSkpKQogCSAgICBwcC0+dHlwZV9pZCAoYXJnKTsKLQkgIGVsc2UgaWYgKHRlbXBsYXRl X3Bhcm1fb2JqZWN0X3AgKGFyZykpCisJICBlbHNlIGlmIChUUkVFX0NPREUgKGFyZykgPT0g VkFSX0RFQ0wgJiYgREVDTF9OVFRQX09CSkVDVF9QIChhcmcpKQogCSAgICBwcC0+ZXhwcmVz c2lvbiAoREVDTF9JTklUSUFMIChhcmcpKTsKIAkgIGVsc2UKIAkgICAgcHAtPmV4cHJlc3Np b24gKGFyZyk7CmRpZmYgLS1naXQgYS9nY2MvY3AvZXJyb3IuY2MgYi9nY2MvY3AvZXJyb3Iu Y2MKaW5kZXggMDM4OWYzNWQ3MzEuLjUzOTA0ZTM2NjlkIDEwMDY0NAotLS0gYS9nY2MvY3Av ZXJyb3IuY2MKKysrIGIvZ2NjL2NwL2Vycm9yLmNjCkBAIC0xMTI5LDcgKzExMjksNyBAQCBk dW1wX2dsb2JhbF9pb3JkIChjeHhfcHJldHR5X3ByaW50ZXIgKnBwLCB0cmVlIHQpCiBzdGF0 aWMgdm9pZAogZHVtcF9zaW1wbGVfZGVjbCAoY3h4X3ByZXR0eV9wcmludGVyICpwcCwgdHJl ZSB0LCB0cmVlIHR5cGUsIGludCBmbGFncykKIHsKLSAgaWYgKHRlbXBsYXRlX3Bhcm1fb2Jq ZWN0X3AgKHQpKQorICBpZiAoVFJFRV9DT0RFICh0KSA9PSBWQVJfREVDTCAmJiBERUNMX05U VFBfT0JKRUNUX1AgKHQpKQogICAgIHJldHVybiBkdW1wX2V4cHIgKHBwLCBERUNMX0lOSVRJ QUwgKHQpLCBmbGFncyk7CiAKICAgaWYgKGZsYWdzICYgVEZGX0RFQ0xfU1BFQ0lGSUVSUykK ZGlmZiAtLWdpdCBhL2djYy9jcC9tYW5nbGUuY2MgYi9nY2MvY3AvbWFuZ2xlLmNjCmluZGV4 IDAwZDI4M2ZmZjhjLi4xYTQ1NTg1ODgyNyAxMDA2NDQKLS0tIGEvZ2NjL2NwL21hbmdsZS5j YworKysgYi9nY2MvY3AvbWFuZ2xlLmNjCkBAIC0zNjcyLDcgKzM2NzIsNyBAQCB3cml0ZV90 ZW1wbGF0ZV9hcmcgKHRyZWUgbm9kZSkKIAl9CiAgICAgfQogCi0gIGlmICh0ZW1wbGF0ZV9w YXJtX29iamVjdF9wIChub2RlKSkKKyAgaWYgKFRSRUVfQ09ERSAobm9kZSkgPT0gVkFSX0RF Q0wgJiYgREVDTF9OVFRQX09CSkVDVF9QIChub2RlKSkKICAgICAvKiBXZSB3YW50IHRvIG1h bmdsZSB0aGUgYXJndW1lbnQsIG5vdCB0aGUgdmFyIHdlIHN0b3JlZCBpdCBpbi4gICovCiAg ICAgbm9kZSA9IHRwYXJtX29iamVjdF9hcmd1bWVudCAobm9kZSk7CiAKZGlmZiAtLWdpdCBh L2djYy9jcC9wdC5jYyBiL2djYy9jcC9wdC5jYwppbmRleCAyZDgzZGZkNjk1NC4uYzdhZGFl Zjk5N2QgMTAwNjQ0Ci0tLSBhL2djYy9jcC9wdC5jYworKysgYi9nY2MvY3AvcHQuY2MKQEAg LTcxMTIsMTYgKzcxMTIsNiBAQCB1bmlmeV90ZW1wbGF0ZV9hcmd1bWVudF9taXNtYXRjaCAo Ym9vbCBleHBsYWluX3AsIHRyZWUgcGFybSwgdHJlZSBhcmcpCiAgIHJldHVybiB1bmlmeV9p bnZhbGlkIChleHBsYWluX3ApOwogfQogCi0vKiBUcnVlIGlmIFQgaXMgYSBDKysyMCB0ZW1w bGF0ZSBwYXJhbWV0ZXIgb2JqZWN0IHRvIHN0b3JlIHRoZSBhcmd1bWVudCBmb3IgYQotICAg dGVtcGxhdGUgcGFyYW1ldGVyIG9mIGNsYXNzIHR5cGUuICAqLwotCi1ib29sCi10ZW1wbGF0 ZV9wYXJtX29iamVjdF9wIChjb25zdF90cmVlIHQpCi17Ci0gIHJldHVybiAoVFJFRV9DT0RF ICh0KSA9PSBWQVJfREVDTCAmJiBERUNMX0FSVElGSUNJQUwgKHQpICYmIERFQ0xfTkFNRSAo dCkKLQkgICYmIHN0YXJ0c3dpdGggKElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FICh0 KSksICJfWlRBIikpOwotfQotCiAvKiBTdWJyb3V0aW5lIG9mIGNvbnZlcnRfbm9udHlwZV9h cmd1bWVudCwgdG8gY2hlY2sgd2hldGhlciBFWFBSLCBhcyBhbgogICAgYXJndW1lbnQgZm9y IFRZUEUsIHBvaW50cyB0byBhbiB1bnN1aXRhYmxlIG9iamVjdC4KIApAQCAtNzI1NiwxNiAr NzI0NiwxMSBAQCBpbnZhbGlkX3RwYXJtX3JlZmVyZW50X3AgKHRyZWUgdHlwZSwgdHJlZSBl eHByLCB0c3Vic3RfZmxhZ3NfdCBjb21wbGFpbikKIAogfQogCi0vKiBUaGUgdGVtcGxhdGUg YXJndW1lbnRzIGNvcnJlc3BvbmRpbmcgdG8gdGVtcGxhdGUgcGFyYW1ldGVyIG9iamVjdHMg b2YgdHlwZXMKLSAgIHRoYXQgY29udGFpbiBwb2ludGVycyB0byBtZW1iZXJzLiAgKi8KLQot c3RhdGljIEdUWSgoKSkgaGFzaF9tYXA8dHJlZSwgdHJlZT4gKnRwYXJtX29ial92YWx1ZXM7 Ci0KIC8qIFJldHVybiBhIFZBUl9ERUNMIGZvciB0aGUgQysrMjAgdGVtcGxhdGUgcGFyYW1l dGVyIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvCiAgICB0ZW1wbGF0ZSBhcmd1bWVudCBFWFBS LiAgKi8KIAogc3RhdGljIHRyZWUKLWdldF90ZW1wbGF0ZV9wYXJtX29iamVjdCAodHJlZSBl eHByLCB0c3Vic3RfZmxhZ3NfdCBjb21wbGFpbikKK2NyZWF0ZV90ZW1wbGF0ZV9wYXJtX29i amVjdCAodHJlZSBleHByLCB0c3Vic3RfZmxhZ3NfdCBjb21wbGFpbikKIHsKICAgaWYgKFRS RUVfQ09ERSAoZXhwcikgPT0gVEFSR0VUX0VYUFIpCiAgICAgZXhwciA9IFRBUkdFVF9FWFBS X0lOSVRJQUwgKGV4cHIpOwpAQCAtNzI4MywxMyArNzI2OCwyNyBAQCBnZXRfdGVtcGxhdGVf cGFybV9vYmplY3QgKHRyZWUgZXhwciwgdHN1YnN0X2ZsYWdzX3QgY29tcGxhaW4pCiAgIC8q IFRoaXMgaXMgbm8gbG9uZ2VyIGEgY29tcG91bmQgbGl0ZXJhbC4gICovCiAgIGdjY19hc3Nl cnQgKCFUUkVFX0hBU19DT05TVFJVQ1RPUiAoZXhwcikpOwogCi0gIHRyZWUgbmFtZSA9IG1h bmdsZV90ZW1wbGF0ZV9wYXJtX29iamVjdCAoZXhwcik7CisgIHJldHVybiBnZXRfdGVtcGxh dGVfcGFybV9vYmplY3QgKGV4cHIsIG1hbmdsZV90ZW1wbGF0ZV9wYXJtX29iamVjdCAoZXhw cikpOworfQorCisvKiBUaGUgdGVtcGxhdGUgYXJndW1lbnRzIGNvcnJlc3BvbmRpbmcgdG8g dGVtcGxhdGUgcGFyYW1ldGVyIG9iamVjdHMgb2YgdHlwZXMKKyAgIHRoYXQgY29udGFpbiBw b2ludGVycyB0byBtZW1iZXJzLiAgKi8KKworc3RhdGljIEdUWSgoKSkgaGFzaF9tYXA8dHJl ZSwgdHJlZT4gKnRwYXJtX29ial92YWx1ZXM7CisKKy8qIEZpbmQgb3IgYnVpbGQgYW4gbnR0 cCBvYmplY3QgZm9yIChhbHJlYWR5LXZhbGlkYXRlZCkgRVhQUiB3aXRoIG5hbWUKKyAgIE5B TUUuICAqLworCit0cmVlCitnZXRfdGVtcGxhdGVfcGFybV9vYmplY3QgKHRyZWUgZXhwciwg dHJlZSBuYW1lKQorewogICB0cmVlIGRlY2wgPSBnZXRfZ2xvYmFsX2JpbmRpbmcgKG5hbWUp OwogICBpZiAoZGVjbCkKICAgICByZXR1cm4gZGVjbDsKIAogICB0cmVlIHR5cGUgPSBjcF9i dWlsZF9xdWFsaWZpZWRfdHlwZSAoVFJFRV9UWVBFIChleHByKSwgVFlQRV9RVUFMX0NPTlNU KTsKICAgZGVjbCA9IGNyZWF0ZV90ZW1wb3JhcnlfdmFyICh0eXBlKTsKKyAgREVDTF9OVFRQ X09CSkVDVF9QIChkZWNsKSA9IHRydWU7CiAgIERFQ0xfQ09OVEVYVCAoZGVjbCkgPSBOVUxM X1RSRUU7CiAgIFRSRUVfU1RBVElDIChkZWNsKSA9IHRydWU7CiAgIERFQ0xfREVDTEFSRURf Q09OU1RFWFBSX1AgKGRlY2wpID0gdHJ1ZTsKQEAgLTc3NzYsNyArNzc3NSw3IEBAIGNvbnZl cnRfbm9udHlwZV9hcmd1bWVudCAodHJlZSB0eXBlLCB0cmVlIGV4cHIsIHRzdWJzdF9mbGFn c190IGNvbXBsYWluKQogICAgICAgLyogUmVwbGFjZSB0aGUgYXJndW1lbnQgd2l0aCBhIHJl ZmVyZW5jZSB0byB0aGUgY29ycmVzcG9uZGluZyB0ZW1wbGF0ZQogCSBwYXJhbWV0ZXIgb2Jq ZWN0LiAgKi8KICAgICAgIGlmICghdmFsX2RlcF9wKQotCWV4cHIgPSBnZXRfdGVtcGxhdGVf cGFybV9vYmplY3QgKGV4cHIsIGNvbXBsYWluKTsKKwlleHByID0gY3JlYXRlX3RlbXBsYXRl X3Bhcm1fb2JqZWN0IChleHByLCBjb21wbGFpbik7CiAgICAgICBpZiAoZXhwciA9PSBlcnJv cl9tYXJrX25vZGUpCiAJcmV0dXJuIE5VTExfVFJFRTsKICAgICB9Ci0tIAoyLjMwLjIKCg== --------------jM83tKRgD25005LF6tAs9SkH--