From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from cc-smtpout1.netcologne.de (cc-smtpout1.netcologne.de [89.1.8.211]) by sourceware.org (Postfix) with ESMTPS id 656F13857808; Sun, 15 Nov 2020 17:52:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 656F13857808 Received: from cc-smtpin1.netcologne.de (cc-smtpin1.netcologne.de [89.1.8.201]) by cc-smtpout1.netcologne.de (Postfix) with ESMTP id CE27F13943; Sun, 15 Nov 2020 18:52:41 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by cc-smtpin1.netcologne.de (Postfix) with ESMTP id BFDDC11D79; Sun, 15 Nov 2020 18:52:41 +0100 (CET) Received: from [2001:4dd6:2e5:0:6a76:6314:3fa7:a77f] (helo=cc-smtpin1.netcologne.de) by localhost with ESMTP (eXpurgate 4.11.6) (envelope-from ) id 5fb16ae9-02f5-7f0000012729-7f000001da9c-1 for ; Sun, 15 Nov 2020 18:52:41 +0100 Received: from localhost.localdomain (2001-4dd6-2e5-0-6a76-6314-3fa7-a77f.ipv6dyn.netcologne.de [IPv6:2001:4dd6:2e5:0:6a76:6314:3fa7:a77f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by cc-smtpin1.netcologne.de (Postfix) with ESMTPSA; Sun, 15 Nov 2020 18:52:40 +0100 (CET) To: "fortran@gcc.gnu.org" Cc: gcc-patches From: Thomas Koenig Subject: [patch, fortran] Correct fndecls for some library functions Message-ID: <7d637428-5aab-f3f6-e698-ecaf93084c96@netcologne.de> Date: Sun, 15 Nov 2020 18:52:40 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------6E711C842D236E727A50D77A" Content-Language: de-DE X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_STOCKGEN, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Nov 2020 17:52:45 -0000 This is a multi-part message in MIME format. --------------6E711C842D236E727A50D77A Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hello world, this patch makes sure that we pass the correct fn decls for some of our library functions. cshift and others still remain to be implemented. This is a step in our voyage to stop lying to the middle end :-) Regression-tested. OK for trunk? Best regards Thomas Generate correct fn specs for some Fortran library functions. This patch works by generating the correct fn spec from the actual arguments in specific_intrinsic_symbol, and by passing this down via gfc_get_extern_function_decl to gfc_get_function_type. CSHIFT remains to be done. gcc/fortran/ChangeLog: PR fortran/97454 * trans-decl.c (gfc_get_extern_function_decl): Add argument fnspec. * trans-intrinsic.c (MAX_SPEC_ARG): Define. (intrinsic_fnspec): New function. (ADD_CHAR): Define. (specific_intrinsic_symbol): Adjust comment. Pass fn spec to gfc_get_extern_function_decl. (gfc_conv_intrinsic_funcall): Add ANY, ALL, NORM2, PRODUCT and SUM intrnisic. Add FIXME for cshift et al. * trans-types.c (gfc_get_function_type): Add fnspec argument, handle it. * trans-types.h (gfc_get_function_type): Add optinal fnspec argument. * trans.h (gfc_get_extern_function_decl): Likewise. --------------6E711C842D236E727A50D77A Content-Type: text/plain; charset=UTF-8; name="fnspec-1.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fnspec-1.txt" ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWRlY2wuYyBiL2djYy9mb3J0cmFuL3Ry YW5zLWRlY2wuYwppbmRleCA3MWQ1YzY3MGU1NS4uYjU1NmU3NTk4YTAgMTAwNjQ0Ci0tLSBh L2djYy9mb3J0cmFuL3RyYW5zLWRlY2wuYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNs LmMKQEAgLTIwNzUsNyArMjA3NSw4IEBAIGdldF9wcm9jX3BvaW50ZXJfZGVjbCAoZ2ZjX3N5 bWJvbCAqc3ltKQogLyogR2V0IGEgYmFzaWMgZGVjbCBmb3IgYW4gZXh0ZXJuYWwgZnVuY3Rp b24uICAqLwogCiB0cmVlCi1nZmNfZ2V0X2V4dGVybl9mdW5jdGlvbl9kZWNsIChnZmNfc3lt Ym9sICogc3ltLCBnZmNfYWN0dWFsX2FyZ2xpc3QgKmFjdHVhbF9hcmdzKQorZ2ZjX2dldF9l eHRlcm5fZnVuY3Rpb25fZGVjbCAoZ2ZjX3N5bWJvbCAqIHN5bSwgZ2ZjX2FjdHVhbF9hcmds aXN0ICphY3R1YWxfYXJncywKKwkJCSAgICAgIGNvbnN0IGNoYXIgKmZuc3BlYykKIHsKICAg dHJlZSB0eXBlOwogICB0cmVlIGZuZGVjbDsKQEAgLTIyODcsNyArMjI4OCw4IEBAIG1vZHVs ZV9zeW06CiAgICAgICBtYW5nbGVkX25hbWUgPSBnZmNfc3ltX21hbmdsZWRfZnVuY3Rpb25f aWQgKHN5bSk7CiAgICAgfQogCi0gIHR5cGUgPSBnZmNfZ2V0X2Z1bmN0aW9uX3R5cGUgKHN5 bSwgYWN0dWFsX2FyZ3MpOworICB0eXBlID0gZ2ZjX2dldF9mdW5jdGlvbl90eXBlIChzeW0s IGFjdHVhbF9hcmdzLCBmbnNwZWMpOworCiAgIGZuZGVjbCA9IGJ1aWxkX2RlY2wgKGlucHV0 X2xvY2F0aW9uLAogCQkgICAgICAgRlVOQ1RJT05fREVDTCwgbmFtZSwgdHlwZSk7CiAKZGlm ZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jIGIvZ2NjL2ZvcnRyYW4v dHJhbnMtaW50cmluc2ljLmMKaW5kZXggZTBhZmMxMGQxMDUuLjk4MjMwOTYzYWRjIDEwMDY0 NAotLS0gYS9nY2MvZm9ydHJhbi90cmFucy1pbnRyaW5zaWMuYworKysgYi9nY2MvZm9ydHJh bi90cmFucy1pbnRyaW5zaWMuYwpAQCAtNDAsNiArNDAsOCBAQCBhbG9uZyB3aXRoIEdDQzsg c2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQogI2luY2x1ZGUgInRyYW5zLXR5 cGVzLmgiCiAjaW5jbHVkZSAidHJhbnMtYXJyYXkuaCIKICNpbmNsdWRlICJkZXBlbmRlbmN5 LmgiCS8qIEZvciBDQUYgYXJyYXkgYWxpYXMgYW5hbHlzaXMuICAqLworI2luY2x1ZGUgImF0 dHJpYnMuaCIKKwogLyogT25seSBmb3IgZ2ZjX3RyYW5zX2Fzc2lnbiBhbmQgZ2ZjX3RyYW5z X3BvaW50ZXJfYXNzaWduLiAgKi8KIAogLyogVGhpcyBtYXBzIEZvcnRyYW4gaW50cmluc2lj IG1hdGggZnVuY3Rpb25zIHRvIGV4dGVybmFsIGxpYnJhcnkgb3IgR0NDCkBAIC00MjU3LDEw ICs0MjU5LDY3IEBAIHJlbW92ZV9lbXB0eV9hY3R1YWxfYXJndW1lbnRzIChnZmNfYWN0dWFs X2FyZ2xpc3QgKiphcCkKICAgICB9CiB9CiAKKyNkZWZpbmUgTUFYX1NQRUNfQVJHIDEyCisK Ky8qIE1ha2UgdXAgYW4gZm4gc3BlYyB0aGF0J3MgcmlnaHQgZm9yIGludHJpbnNpYyBmdW5j dGlvbnMgdGhhdCB3ZQorICAgd2FudCB0byBjYWxsLiAgKi8KKworc3RhdGljIGNoYXIgKgor aW50cmluc2ljX2Zuc3BlYyAoZ2ZjX2V4cHIgKmV4cHIpCit7CisgIHN0YXRpYyBjaGFyIGZu c3BlY19idWZbTUFYX1NQRUNfQVJHKjIrMV07CisgIGNoYXIgKmZwOworICBpbnQgaTsKKyAg aW50IG51bV9jaGFyX2FyZ3M7CisKKyNkZWZpbmUgQUREX0NIQVIoYykgZG8geyAqZnArKyA9 IGM7ICpmcCsrID0gJyAnOyB9IHdoaWxlKDApCisKKyAgLyogU2V0IHRoZSBmbmRlY2wuICAq LworICBmcCA9IGZuc3BlY19idWY7CisgIEFERF9DSEFSICgnLicpOyAgLyogRnVuY3Rpb24g cmV0dXJuLiAgKi8KKyAgaWYgKGV4cHItPnJhbmsgPT0gMCkKKyAgICB7CisgICAgICBpZiAo ZXhwci0+dHMudHlwZSA9PSBCVF9DSEFSQUNURVIpCisJeworCSAgQUREX0NIQVIgKCd3Jyk7 ICAvKiBBZGRyZXNzIG9mIGNoYXJhY3Rlci4gICovCisJICBBRERfQ0hBUiAoJy4nKTsgIC8q IExlbmd0aCBvZiBjaGFyYWN0ZXIuICAqLworCX0KKyAgICB9CisgIGVsc2UKKyAgICBBRERf Q0hBUiAoJ3cnKTsgIC8qIFJldHVybiB2YWx1ZSBpcyBhIGRlc2NyaXB0b3IuICAqLworCisg IG51bV9jaGFyX2FyZ3MgPSAwOworICBmb3IgKGdmY19hY3R1YWxfYXJnbGlzdCAqYSA9IGV4 cHItPnZhbHVlLmZ1bmN0aW9uLmFjdHVhbDsgYTsgYSA9IGEtPm5leHQpCisgICAgeworICAg ICAgaWYgKGEtPmV4cHIgPT0gTlVMTCkKKwljb250aW51ZTsKKworICAgICAgaWYgKGEtPm5h bWUgJiYgc3RyY21wIChhLT5uYW1lLCIlVkFMIikgPT0gMCkKKwlBRERfQ0hBUiAoJy4nKTsK KyAgICAgIGVsc2UKKwl7CisJICBpZiAoYS0+ZXhwci0+cmFuayA+IDApCisJICAgIEFERF9D SEFSICgncicpOworCSAgZWxzZQorCSAgICBBRERfQ0hBUiAoJ1InKTsKKwl9CisgICAgICBu dW1fY2hhcl9hcmdzICs9IGEtPmV4cHItPnRzLnR5cGUgPT0gQlRfQ0hBUkFDVEVSOworICAg ICAgZ2NjX2Fzc2VydCAoZnAgLSBmbnNwZWNfYnVmICsgbnVtX2NoYXJfYXJncyA8PSBNQVhf U1BFQ19BUkcqMik7CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkgPCBudW1fY2hhcl9hcmdz OyBpKyspCisgICAgQUREX0NIQVIgKCcuJyk7CisKKyAgKmZwID0gJ1wwJzsKKyAgcmV0dXJu IGZuc3BlY19idWY7Cit9CisKKyN1bmRlZiBNQVhfU1BFQ19BUkcKKyN1bmRlZiBBRERfQ0hB UgorCiAvKiBHZW5lcmF0ZSB0aGUgcmlnaHQgc3ltYm9sIGZvciB0aGUgc3BlY2lmaWMgaW50 cmluc2ljIGZ1bmN0aW9uIGFuZAogIG1vZGlmeSB0aGUgZXhwciBhY2NvcmRpbmdseS4gIFRo aXMgYXNzdW1lcyB0aGF0IGFic2VudCBvcHRpb25hbAotIGFyZ3VtZW50cyBzaG91bGQgYmUg cmVtb3ZlZC4gIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBleHRlbmRlZCBmb3IKLSBwcm9jZWR1 cmVzIHdoaWNoIGRvIG5vdCBpZ25vcmUgb3B0aW9uYWwgYXJndW1lbnRzIChQUiA5NzQ1NCku ICAqLworIGFyZ3VtZW50cyBzaG91bGQgYmUgcmVtb3ZlZC4gICovCiAKIGdmY19zeW1ib2wg Kgogc3BlY2lmaWNfaW50cmluc2ljX3N5bWJvbCAoZ2ZjX2V4cHIgKmV4cHIpCkBAIC00Mjc4 LDE0ICs0MzM3LDE5IEBAIHNwZWNpZmljX2ludHJpbnNpY19zeW1ib2wgKGdmY19leHByICpl eHByKQogICAgICAgZ2ZjX2NvcHlfZm9ybWFsX2FyZ3NfaW50ciAoc3ltLCBleHByLT52YWx1 ZS5mdW5jdGlvbi5pc3ltLAogCQkJCSBleHByLT52YWx1ZS5mdW5jdGlvbi5hY3R1YWwsIHRy dWUpOwogICAgICAgc3ltLT5iYWNrZW5kX2RlY2wKLQk9IGdmY19nZXRfZXh0ZXJuX2Z1bmN0 aW9uX2RlY2wgKHN5bSwgZXhwci0+dmFsdWUuZnVuY3Rpb24uYWN0dWFsKTsKKwk9IGdmY19n ZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wgKHN5bSwgZXhwci0+dmFsdWUuZnVuY3Rpb24uYWN0 dWFsLAorCQkJCQlpbnRyaW5zaWNfZm5zcGVjIChleHByKSk7CiAgICAgfQorCiAgIHJlbW92 ZV9lbXB0eV9hY3R1YWxfYXJndW1lbnRzICgmKGV4cHItPnZhbHVlLmZ1bmN0aW9uLmFjdHVh bCkpOwogCiAgIHJldHVybiBzeW07CiB9CiAKLS8qIEdlbmVyYXRlIGEgY2FsbCB0byBhbiBl eHRlcm5hbCBpbnRyaW5zaWMgZnVuY3Rpb24uICAqLworLyogR2VuZXJhdGUgYSBjYWxsIHRv IGFuIGV4dGVybmFsIGludHJpbnNpYyBmdW5jdGlvbi4gIEZJWE1FOiBTbyBmYXIsCisgICB0 aGlzIG9ubHkgd29ya3MgZm9yIGZ1bmN0aW9ucyB3aGljaCBhcmUgY2FsbGVkIHdpdGggd2Vs bC1kZWZpbmVkCisgICB0eXBlczsgQ1NISUZUIGFuZCBmcmllbmRzIHdpbGwgY29tZSBsYXRl ci4gICovCisKIHN0YXRpYyB2b2lkCiBnZmNfY29udl9pbnRyaW5zaWNfZnVuY2FsbCAoZ2Zj X3NlICogc2UsIGdmY19leHByICogZXhwcikKIHsKQEAgLTQzMDIsMTEgKzQzNjYsMTYgQEAg Z2ZjX2NvbnZfaW50cmluc2ljX2Z1bmNhbGwgKGdmY19zZSAqIHNlLCBnZmNfZXhwciAqIGV4 cHIpCiAKICAgc3dpdGNoIChleHByLT52YWx1ZS5mdW5jdGlvbi5pc3ltLT5pZCkKICAgICB7 CisgICAgY2FzZSBHRkNfSVNZTV9BTlk6CisgICAgY2FzZSBHRkNfSVNZTV9BTEw6CiAgICAg Y2FzZSBHRkNfSVNZTV9GSU5ETE9DOgogICAgIGNhc2UgR0ZDX0lTWU1fTUFYTE9DOgogICAg IGNhc2UgR0ZDX0lTWU1fTUlOTE9DOgogICAgIGNhc2UgR0ZDX0lTWU1fTUFYVkFMOgogICAg IGNhc2UgR0ZDX0lTWU1fTUlOVkFMOgorICAgIGNhc2UgR0ZDX0lTWU1fTk9STTI6CisgICAg Y2FzZSBHRkNfSVNZTV9QUk9EVUNUOgorICAgIGNhc2UgR0ZDX0lTWU1fU1VNOgogICAgICAg c3BlY2lmaWNfc3ltYm9sID0gdHJ1ZTsKICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CmRp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy10eXBlcy5jIGIvZ2NjL2ZvcnRyYW4vdHJh bnMtdHlwZXMuYwppbmRleCBiNzEyOWRjYmU2ZC4uMjgxY2M3ZDM0YWIgMTAwNjQ0Ci0tLSBh L2djYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmMKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtdHlw ZXMuYwpAQCAtMzAwOSw3ICszMDA5LDggQEAgY3JlYXRlX2ZuX3NwZWMgKGdmY19zeW1ib2wg KnN5bSwgdHJlZSBmbnR5cGUpCiB9CiAKIHRyZWUKLWdmY19nZXRfZnVuY3Rpb25fdHlwZSAo Z2ZjX3N5bWJvbCAqIHN5bSwgZ2ZjX2FjdHVhbF9hcmdsaXN0ICphY3R1YWxfYXJncykKK2dm Y19nZXRfZnVuY3Rpb25fdHlwZSAoZ2ZjX3N5bWJvbCAqIHN5bSwgZ2ZjX2FjdHVhbF9hcmds aXN0ICphY3R1YWxfYXJncywKKwkJICAgICAgIGNvbnN0IGNoYXIgKmZuc3BlYykKIHsKICAg dHJlZSB0eXBlOwogICB2ZWM8dHJlZSwgdmFfZ2M+ICp0eXBlbGlzdCA9IE5VTEw7CkBAIC0z MTkzLDcgKzMxOTQsMTkgQEAgYXJnX3R5cGVfbGlzdF9kb25lOgogICAgIHR5cGUgPSBidWls ZF92YXJhcmdzX2Z1bmN0aW9uX3R5cGVfdmVjICh0eXBlLCB0eXBlbGlzdCk7CiAgIGVsc2UK ICAgICB0eXBlID0gYnVpbGRfZnVuY3Rpb25fdHlwZV92ZWMgKHR5cGUsIHR5cGVsaXN0KTsK LSAgdHlwZSA9IGNyZWF0ZV9mbl9zcGVjIChzeW0sIHR5cGUpOworCisgIC8qIElmIHdlIHdl cmUgcGFzc2VkIGFuIGZuIHNwZWMsIGFkZCBpdCBoZXJlLCBvdGhlcndpc2UgZGV0ZXJtaW5l IGl0IGZyb20KKyAgICAgdGhlIGZvcm1hbCBhcmd1bWVudHMuICAqLworICBpZiAoZm5zcGVj KQorICAgIHsKKyAgICAgIHRyZWUgdG1wOworICAgICAgaW50IHNwZWNfbGVuID0gc3RybGVu IChmbnNwZWMpOworICAgICAgdG1wID0gYnVpbGRfdHJlZV9saXN0IChOVUxMX1RSRUUsIGJ1 aWxkX3N0cmluZyAoc3BlY19sZW4sIGZuc3BlYykpOworICAgICAgdG1wID0gdHJlZV9jb25z IChnZXRfaWRlbnRpZmllciAoImZuIHNwZWMiKSwgdG1wLCBUWVBFX0FUVFJJQlVURVMgKHR5 cGUpKTsKKyAgICAgIHR5cGUgPSBidWlsZF90eXBlX2F0dHJpYnV0ZV92YXJpYW50ICh0eXBl LCB0bXApOworICAgIH0KKyAgZWxzZQorICAgIHR5cGUgPSBjcmVhdGVfZm5fc3BlYyAoc3lt LCB0eXBlKTsKIAogICByZXR1cm4gdHlwZTsKIH0KZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFu L3RyYW5zLXR5cGVzLmggYi9nY2MvZm9ydHJhbi90cmFucy10eXBlcy5oCmluZGV4IDU2MDc0 ZjFiODNiLi4xYjU5Mjg3OTk2YiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtdHlw ZXMuaAorKysgYi9nY2MvZm9ydHJhbi90cmFucy10eXBlcy5oCkBAIC04OCw3ICs4OCw4IEBA IHRyZWUgZ2ZjX3N5bV90eXBlIChnZmNfc3ltYm9sICopOwogdHJlZSBnZmNfdHlwZW5vZGVf Zm9yX3NwZWMgKGdmY190eXBlc3BlYyAqLCBpbnQgYyA9IDApOwogaW50IGdmY19jb3B5X2R0 X2RlY2xzX2lmZXF1YWwgKGdmY19zeW1ib2wgKiwgZ2ZjX3N5bWJvbCAqLCBib29sKTsKIAot dHJlZSBnZmNfZ2V0X2Z1bmN0aW9uX3R5cGUgKGdmY19zeW1ib2wgKiwgZ2ZjX2FjdHVhbF9h cmdsaXN0ICphcmdzID0gTlVMTCk7Cit0cmVlIGdmY19nZXRfZnVuY3Rpb25fdHlwZSAoZ2Zj X3N5bWJvbCAqLCBnZmNfYWN0dWFsX2FyZ2xpc3QgKmFyZ3MgPSBOVUxMLAorCQkJICAgIGNv bnN0IGNoYXIgKmZuc3BlYyA9IE5VTEwpOwogCiB0cmVlIGdmY190eXBlX2Zvcl9zaXplICh1 bnNpZ25lZCwgaW50KTsKIHRyZWUgZ2ZjX3R5cGVfZm9yX21vZGUgKG1hY2hpbmVfbW9kZSwg aW50KTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLmggYi9nY2MvZm9ydHJhbi90 cmFucy5oCmluZGV4IDE2YjQyMTU2MDVlLi42ZTQxN2M0M2U4YyAxMDA2NDQKLS0tIGEvZ2Nj L2ZvcnRyYW4vdHJhbnMuaAorKysgYi9nY2MvZm9ydHJhbi90cmFucy5oCkBAIC02MDgsNyAr NjA4LDggQEAgdHJlZSBnZmNfZ2V0X2xhYmVsX2RlY2wgKGdmY19zdF9sYWJlbCAqKTsKIAog LyogUmV0dXJuIHRoZSBkZWNsIGZvciBhbiBleHRlcm5hbCBmdW5jdGlvbi4gICovCiB0cmVl IGdmY19nZXRfZXh0ZXJuX2Z1bmN0aW9uX2RlY2wgKGdmY19zeW1ib2wgKiwKLQkJCQkgICBn ZmNfYWN0dWFsX2FyZ2xpc3QgKmFyZ3MgPSBOVUxMKTsKKwkJCQkgICBnZmNfYWN0dWFsX2Fy Z2xpc3QgKmFyZ3MgPSBOVUxMLAorCQkJCSAgIGNvbnN0IGNoYXIgKmZuc3BlYyA9IE5VTEwp OwogCiAvKiBSZXR1cm4gdGhlIGRlY2wgZm9yIGEgZnVuY3Rpb24uICAqLwogdHJlZSBnZmNf Z2V0X2Z1bmN0aW9uX2RlY2wgKGdmY19zeW1ib2wgKik7Cg== --------------6E711C842D236E727A50D77A--