From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16646 invoked by alias); 2 Oct 2013 12:33:46 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 16636 invoked by uid 89); 2 Oct 2013 12:33:46 -0000 Received: from mail2-relais-roc.national.inria.fr (HELO mail2-relais-roc.national.inria.fr) (192.134.164.83) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Wed, 02 Oct 2013 12:33:46 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.6 required=5.0 tests=AWL,BAYES_00,RDNS_NONE autolearn=no version=3.3.2 X-HELO: mail2-relais-roc.national.inria.fr Received: from stedding.saclay.inria.fr ([193.55.250.194]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 02 Oct 2013 14:33:40 +0200 Received: from glisse (helo=localhost) by stedding.saclay.inria.fr with local-esmtp (Exim 4.80) (envelope-from ) id 1VRLcb-00069j-UZ; Wed, 02 Oct 2013 14:33:41 +0200 Date: Wed, 02 Oct 2013 12:33:00 -0000 From: Marc Glisse To: Jakub Jelinek cc: gcc-patches@gcc.gnu.org, jason@redhat.com Subject: Re: operator new returns nonzero In-Reply-To: Message-ID: References: <7209CCD2-9BA5-4CD2-8A2B-9DEF2D2C88D2@comcast.net> <7BED207A-EE03-4C7B-9716-33D76FE3649E@comcast.net> <20131002070630.GK30970@tucnak.zalov.cz> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-146042907-1380717221=:23466" X-SW-Source: 2013-10/txt/msg00145.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-146042907-1380717221=:23466 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Content-length: 592 New version after Jakub's comment, bootstrap and testsuite on x86_64. 2013-10-03 Marc Glisse PR c++/19476 gcc/ * calls.c (alloca_call_p): Use get_callee_fndecl. * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new. * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp): Likewise. (vrp_visit_stmt): Remove duplicated code. gcc/testsuite/ * g++.dg/tree-ssa/pr19476-1.C: New file. * g++.dg/tree-ssa/pr19476-2.C: Likewise. * g++.dg/tree-ssa/pr19476-3.C: Likewise. * g++.dg/tree-ssa/pr19476-4.C: Likewise. -- Marc Glisse --8323329-146042907-1380717221=:23466 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=p6 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=p6 Content-length: 12054 SW5kZXg6IGNhbGxzLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBj YWxscy5jCShyZXZpc2lvbiAyMDMxMDEpDQorKysgY2FsbHMuYwkod29ya2lu ZyBjb3B5KQ0KQEAgLTYyOCwyNSArNjI4LDI0IEBAIGdpbXBsZV9hbGxvY2Ff Y2FsbF9wIChjb25zdF9naW1wbGUgc3RtdCkNCiAgICAgcmV0dXJuIHRydWU7 DQogDQogICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KIC8qIFJldHVybiB0cnVl IHdoZW4gZXhwIGNvbnRhaW5zIGFsbG9jYSBjYWxsLiAgKi8NCiANCiBib29s DQogYWxsb2NhX2NhbGxfcCAoY29uc3RfdHJlZSBleHApDQogew0KKyAgdHJl ZSBmbmRlY2w7DQogICBpZiAoVFJFRV9DT0RFIChleHApID09IENBTExfRVhQ Ug0KLSAgICAgICYmIFRSRUVfQ09ERSAoQ0FMTF9FWFBSX0ZOIChleHApKSA9 PSBBRERSX0VYUFINCi0gICAgICAmJiAoVFJFRV9DT0RFIChUUkVFX09QRVJB TkQgKENBTExfRVhQUl9GTiAoZXhwKSwgMCkpID09IEZVTkNUSU9OX0RFQ0wp DQotICAgICAgJiYgKHNwZWNpYWxfZnVuY3Rpb25fcCAoVFJFRV9PUEVSQU5E IChDQUxMX0VYUFJfRk4gKGV4cCksIDApLCAwKQ0KLQkgICYgRUNGX01BWV9C RV9BTExPQ0EpKQ0KKyAgICAgICYmIChmbmRlY2wgPSBnZXRfY2FsbGVlX2Zu ZGVjbCAoZXhwKSkNCisgICAgICAmJiAoc3BlY2lhbF9mdW5jdGlvbl9wIChm bmRlY2wsIDApICYgRUNGX01BWV9CRV9BTExPQ0EpKQ0KICAgICByZXR1cm4g dHJ1ZTsNCiAgIHJldHVybiBmYWxzZTsNCiB9DQogDQogLyogUmV0dXJuIFRS VUUgaWYgRk5ERUNMIGlzIGVpdGhlciBhIFRNIGJ1aWx0aW4gb3IgYSBUTSBj bG9uZWQNCiAgICBmdW5jdGlvbi4gIFJldHVybiBGQUxTRSBvdGhlcndpc2Uu ICAqLw0KIA0KIHN0YXRpYyBib29sDQogaXNfdG1fYnVpbHRpbiAoY29uc3Rf dHJlZSBmbmRlY2wpDQogew0KSW5kZXg6IGZvbGQtY29uc3QuYw0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KLS0tIGZvbGQtY29uc3QuYwkocmV2aXNpb24g MjAzMTAxKQ0KKysrIGZvbGQtY29uc3QuYwkod29ya2luZyBjb3B5KQ0KQEAg LTE2MjE1LDIxICsxNjIxNSwyOSBAQCB0cmVlX2V4cHJfbm9uemVyb193YXJu dl9wICh0cmVlIHQsIGJvb2wNCiAgICAgY2FzZSBNT0RJRllfRVhQUjoNCiAg ICAgY2FzZSBCSU5EX0VYUFI6DQogICAgICAgcmV0dXJuIHRyZWVfZXhwcl9u b256ZXJvX3dhcm52X3AgKFRSRUVfT1BFUkFORCAodCwgMSksDQogCQkJCQlz dHJpY3Rfb3ZlcmZsb3dfcCk7DQogDQogICAgIGNhc2UgU0FWRV9FWFBSOg0K ICAgICAgIHJldHVybiB0cmVlX2V4cHJfbm9uemVyb193YXJudl9wIChUUkVF X09QRVJBTkQgKHQsIDApLA0KIAkJCQkJc3RyaWN0X292ZXJmbG93X3ApOw0K IA0KICAgICBjYXNlIENBTExfRVhQUjoNCi0gICAgICByZXR1cm4gYWxsb2Nh X2NhbGxfcCAodCk7DQorICAgICAgew0KKwl0cmVlIGZuZGVjbCA9IGdldF9j YWxsZWVfZm5kZWNsICh0KTsNCisJaWYgKCFmbmRlY2wpIHJldHVybiBmYWxz ZTsNCisJaWYgKGZsYWdfZGVsZXRlX251bGxfcG9pbnRlcl9jaGVja3MgJiYg IWZsYWdfY2hlY2tfbmV3DQorCSAgICAmJiBERUNMX0lTX09QRVJBVE9SX05F VyAoZm5kZWNsKQ0KKwkgICAgJiYgIVRSRUVfTk9USFJPVyAoZm5kZWNsKSkN CisJICByZXR1cm4gdHJ1ZTsNCisJcmV0dXJuIGFsbG9jYV9jYWxsX3AgKHQp Ow0KKyAgICAgIH0NCiANCiAgICAgZGVmYXVsdDoNCiAgICAgICBicmVhazsN CiAgICAgfQ0KICAgcmV0dXJuIGZhbHNlOw0KIH0NCiANCiAvKiBSZXR1cm4g dHJ1ZSB3aGVuIFQgaXMgYW4gYWRkcmVzcyBhbmQgaXMga25vd24gdG8gYmUg bm9uemVyby4NCiAgICBIYW5kbGUgd2FybmluZ3MgYWJvdXQgdW5kZWZpbmVk IHNpZ25lZCBvdmVyZmxvdy4gICovDQogDQpJbmRleDogdGVzdHN1aXRlL2cr Ky5kZy90cmVlLXNzYS9wcjE5NDc2LTEuQw0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvdHJlZS1zc2EvcHIxOTQ3Ni0x LkMJKHJldmlzaW9uIDApDQorKysgdGVzdHN1aXRlL2crKy5kZy90cmVlLXNz YS9wcjE5NDc2LTEuQwkod29ya2luZyBjb3B5KQ0KQEAgLTAsMCArMSwxNSBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItTyAtZmR1bXAtdHJlZS1jY3AxIiB9ICovDQorDQorI2luY2x1ZGUgPG5l dz4NCisNCitpbnQgZigpew0KKyAgcmV0dXJuIDMzICsgKDAgPT0gbmV3KHN0 ZDo6bm90aHJvdykgaW50KTsNCit9DQoraW50IGcoKXsNCisgIHJldHVybiA0 MiArICgwID09IG5ldyBpbnRbNTBdKTsNCit9DQorDQorLyogeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wICAgICAicmV0dXJuIDQyIiAiY2NwMSIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAicmV0 dXJuIDMzIiAiY2NwMSIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IGNsZWFu dXAtdHJlZS1kdW1wICJjY3AxIiB9IH0gKi8NCg0KUHJvcGVydHkgY2hhbmdl cyBvbjogdGVzdHN1aXRlL2crKy5kZy90cmVlLXNzYS9wcjE5NDc2LTEuQw0K X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXw0KQWRkZWQ6IHN2bjplb2wtc3R5bGUN CiMjIC0wLDAgKzEgIyMNCituYXRpdmUNClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgcHJvcGVydHkNCkFkZGVkOiBzdm46a2V5d29yZHMNCiMjIC0wLDAgKzEg IyMNCitBdXRob3IgRGF0ZSBJZCBSZXZpc2lvbiBVUkwNClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgcHJvcGVydHkNCkluZGV4OiB0ZXN0c3VpdGUvZysrLmRn L3RyZWUtc3NhL3ByMTk0NzYtMi5DDQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQotLS0gdGVzdHN1aXRlL2crKy5kZy90cmVlLXNzYS9wcjE5NDc2LTIuQwko cmV2aXNpb24gMCkNCisrKyB0ZXN0c3VpdGUvZysrLmRnL3RyZWUtc3NhL3By MTk0NzYtMi5DCSh3b3JraW5nIGNvcHkpDQpAQCAtMCwwICsxLDE3IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1P MiAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQiIH0gKi8NCisNCisjaW5jbHVkZSA8 bmV3Pg0KKw0KK2ludCBmKCl7DQorICBpbnQgKnAgPSBuZXcoc3RkOjpub3Ro cm93KSBpbnQ7DQorICByZXR1cm4gMzMgKyAoMCA9PSBwKTsNCit9DQoraW50 IGcoKXsNCisgIGludCAqcCA9IG5ldyBpbnRbNTBdOw0KKyAgcmV0dXJuIDQy ICsgKDAgPT0gcCk7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcCAgICAgInJldHVybiA0MiIgIm9wdGltaXplZCIgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCAicmV0dXJuIDMz IiAib3B0aW1pemVkIiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgY2xlYW51 cC10cmVlLWR1bXAgIm9wdGltaXplZCIgfSB9ICovDQoNClByb3BlcnR5IGNo YW5nZXMgb246IHRlc3RzdWl0ZS9nKysuZGcvdHJlZS1zc2EvcHIxOTQ3Ni0y LkMNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCkFkZGVkOiBzdm46a2V5d29y ZHMNCiMjIC0wLDAgKzEgIyMNCitBdXRob3IgRGF0ZSBJZCBSZXZpc2lvbiBV UkwNClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkNCkFkZGVkOiBz dm46ZW9sLXN0eWxlDQojIyAtMCwwICsxICMjDQorbmF0aXZlDQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5DQpJbmRleDogdGVzdHN1aXRlL2cr Ky5kZy90cmVlLXNzYS9wcjE5NDc2LTMuQw0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvdHJlZS1zc2EvcHIxOTQ3Ni0z LkMJKHJldmlzaW9uIDApDQorKysgdGVzdHN1aXRlL2crKy5kZy90cmVlLXNz YS9wcjE5NDc2LTMuQwkod29ya2luZyBjb3B5KQ0KQEAgLTAsMCArMSwxMSBA QA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItTzMgLWZjaGVjay1uZXcgLWZkdW1wLXRyZWUtb3B0aW1pemVkIiB9ICov DQorDQorI2luY2x1ZGUgPG5ldz4NCisNCitpbnQgZygpew0KKyAgcmV0dXJu IDQyICsgKDAgPT0gbmV3IGludCk7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC1ub3QgInJldHVybiA0MiIgIm9wdGltaXplZCIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IGNsZWFudXAtdHJlZS1kdW1wICJv cHRpbWl6ZWQiIH0gfSAqLw0KDQpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiB0ZXN0 c3VpdGUvZysrLmRnL3RyZWUtc3NhL3ByMTk0NzYtMy5DDQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQpBZGRlZDogc3ZuOmVvbC1zdHlsZQ0KIyMgLTAsMCAr MSAjIw0KK25hdGl2ZQ0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0 eQ0KQWRkZWQ6IHN2bjprZXl3b3Jkcw0KIyMgLTAsMCArMSAjIw0KK0F1dGhv ciBEYXRlIElkIFJldmlzaW9uIFVSTA0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBwcm9wZXJ0eQ0KSW5kZXg6IHRlc3RzdWl0ZS9nKysuZGcvdHJlZS1zc2Ev cHIxOTQ3Ni00LkMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSB0ZXN0 c3VpdGUvZysrLmRnL3RyZWUtc3NhL3ByMTk0NzYtNC5DCShyZXZpc2lvbiAw KQ0KKysrIHRlc3RzdWl0ZS9nKysuZGcvdHJlZS1zc2EvcHIxOTQ3Ni00LkMJ KHdvcmtpbmcgY29weSkNCkBAIC0wLDAgKzEsMTEgQEANCisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1mbm8tZGVs ZXRlLW51bGwtcG9pbnRlci1jaGVja3MgLWZkdW1wLXRyZWUtb3B0aW1pemVk IiB9ICovDQorDQorI2luY2x1ZGUgPG5ldz4NCisNCitpbnQgZygpew0KKyAg cmV0dXJuIDQyICsgKDAgPT0gbmV3IGludCk7DQorfQ0KKw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgInJldHVybiA0MiIgIm9wdGlt aXplZCIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IGNsZWFudXAtdHJlZS1k dW1wICJvcHRpbWl6ZWQiIH0gfSAqLw0KDQpQcm9wZXJ0eSBjaGFuZ2VzIG9u OiB0ZXN0c3VpdGUvZysrLmRnL3RyZWUtc3NhL3ByMTk0NzYtNC5DDQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fDQpBZGRlZDogc3ZuOmtleXdvcmRzDQojIyAt MCwwICsxICMjDQorQXV0aG9yIERhdGUgSWQgUmV2aXNpb24gVVJMDQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5DQpBZGRlZDogc3ZuOmVvbC1z dHlsZQ0KIyMgLTAsMCArMSAjIw0KK25hdGl2ZQ0KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBwcm9wZXJ0eQ0KSW5kZXg6IHRyZWUtdnJwLmMNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCi0tLSB0cmVlLXZycC5jCShyZXZpc2lvbiAyMDMx MDEpDQorKysgdHJlZS12cnAuYwkod29ya2luZyBjb3B5KQ0KQEAgLTEwNDUs MjEgKzEwNDUsMjkgQEAgZ2ltcGxlX2Fzc2lnbl9ub256ZXJvX3dhcm52X3Ag KGdpbXBsZSBzdA0KICAgICpTVFJJQ1RfT1ZFUkZMT1dfUC4qLw0KIA0KIHN0 YXRpYyBib29sDQogZ2ltcGxlX3N0bXRfbm9uemVyb193YXJudl9wIChnaW1w bGUgc3RtdCwgYm9vbCAqc3RyaWN0X292ZXJmbG93X3ApDQogew0KICAgc3dp dGNoIChnaW1wbGVfY29kZSAoc3RtdCkpDQogICAgIHsNCiAgICAgY2FzZSBH SU1QTEVfQVNTSUdOOg0KICAgICAgIHJldHVybiBnaW1wbGVfYXNzaWduX25v bnplcm9fd2FybnZfcCAoc3RtdCwgc3RyaWN0X292ZXJmbG93X3ApOw0KICAg ICBjYXNlIEdJTVBMRV9DQUxMOg0KLSAgICAgIHJldHVybiBnaW1wbGVfYWxs b2NhX2NhbGxfcCAoc3RtdCk7DQorICAgICAgew0KKwl0cmVlIGZuZGVjbCA9 IGdpbXBsZV9jYWxsX2ZuZGVjbCAoc3RtdCk7DQorCWlmICghZm5kZWNsKSBy ZXR1cm4gZmFsc2U7DQorCWlmIChmbGFnX2RlbGV0ZV9udWxsX3BvaW50ZXJf Y2hlY2tzICYmICFmbGFnX2NoZWNrX25ldw0KKwkgICAgJiYgREVDTF9JU19P UEVSQVRPUl9ORVcgKGZuZGVjbCkNCisJICAgICYmICFUUkVFX05PVEhST1cg KGZuZGVjbCkpDQorCSAgcmV0dXJuIHRydWU7DQorCXJldHVybiBnaW1wbGVf YWxsb2NhX2NhbGxfcCAoc3RtdCk7DQorICAgICAgfQ0KICAgICBkZWZhdWx0 Og0KICAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCiAgICAgfQ0KIH0NCiAN CiAvKiBMaWtlIHRyZWVfZXhwcl9ub256ZXJvX3dhcm52X3AsIGJ1dCB0aGlz IGZ1bmN0aW9uIHVzZXMgdmFsdWUgcmFuZ2VzDQogICAgb2J0YWluZWQgc28g ZmFyLiAgKi8NCiANCiBzdGF0aWMgYm9vbA0KIHZycF9zdG10X2NvbXB1dGVz X25vbnplcm8gKGdpbXBsZSBzdG10LCBib29sICpzdHJpY3Rfb3ZlcmZsb3df cCkNCkBAIC02NDg0LDIxICs2NDkyLDIyIEBAIHN0bXRfaW50ZXJlc3Rpbmdf Zm9yX3ZycCAoZ2ltcGxlIHN0bXQpDQogICAgICAgdHJlZSBsaHMgPSBnaW1w bGVfZ2V0X2xocyAoc3RtdCk7DQogDQogICAgICAgLyogSW4gZ2VuZXJhbCwg YXNzaWdubWVudHMgd2l0aCB2aXJ0dWFsIG9wZXJhbmRzIGFyZSBub3QgdXNl ZnVsDQogCSBmb3IgZGVyaXZpbmcgcmFuZ2VzLCB3aXRoIHRoZSBvYnZpb3Vz IGV4Y2VwdGlvbiBvZiBjYWxscyB0bw0KIAkgYnVpbHRpbiBmdW5jdGlvbnMu ICAqLw0KICAgICAgIGlmIChsaHMgJiYgVFJFRV9DT0RFIChsaHMpID09IFNT QV9OQU1FDQogCSAgJiYgKElOVEVHUkFMX1RZUEVfUCAoVFJFRV9UWVBFIChs aHMpKQ0KIAkgICAgICB8fCBQT0lOVEVSX1RZUEVfUCAoVFJFRV9UWVBFIChs aHMpKSkNCiAJICAmJiAoKGlzX2dpbXBsZV9jYWxsIChzdG10KQ0KIAkgICAg ICAgJiYgZ2ltcGxlX2NhbGxfZm5kZWNsIChzdG10KSAhPSBOVUxMX1RSRUUN Ci0JICAgICAgICYmIERFQ0xfQlVJTFRfSU4gKGdpbXBsZV9jYWxsX2ZuZGVj bCAoc3RtdCkpKQ0KKwkgICAgICAgJiYgKERFQ0xfQlVJTFRfSU4gKGdpbXBs ZV9jYWxsX2ZuZGVjbCAoc3RtdCkpDQorCQkgICB8fCBERUNMX0lTX09QRVJB VE9SX05FVyAoZ2ltcGxlX2NhbGxfZm5kZWNsIChzdG10KSkpKQ0KIAkgICAg ICB8fCAhZ2ltcGxlX3Z1c2UgKHN0bXQpKSkNCiAJcmV0dXJuIHRydWU7DQog ICAgIH0NCiAgIGVsc2UgaWYgKGdpbXBsZV9jb2RlIChzdG10KSA9PSBHSU1Q TEVfQ09ORA0KIAkgICB8fCBnaW1wbGVfY29kZSAoc3RtdCkgPT0gR0lNUExF X1NXSVRDSCkNCiAgICAgcmV0dXJuIHRydWU7DQogDQogICByZXR1cm4gZmFs c2U7DQogfQ0KIA0KQEAgLTc0MDUsMzAgKzc0MTQsMjEgQEAgdnJwX3Zpc2l0 X3N0bXQgKGdpbXBsZSBzdG10LCBlZGdlICp0YWtlbg0KICAgaWYgKGR1bXBf ZmlsZSAmJiAoZHVtcF9mbGFncyAmIFRERl9ERVRBSUxTKSkNCiAgICAgew0K ICAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIlxuVmlzaXRpbmcgc3RhdGVt ZW50OlxuIik7DQogICAgICAgcHJpbnRfZ2ltcGxlX3N0bXQgKGR1bXBfZmls ZSwgc3RtdCwgMCwgZHVtcF9mbGFncyk7DQogICAgICAgZnByaW50ZiAoZHVt cF9maWxlLCAiXG4iKTsNCiAgICAgfQ0KIA0KICAgaWYgKCFzdG10X2ludGVy ZXN0aW5nX2Zvcl92cnAgKHN0bXQpKQ0KICAgICBnY2NfYXNzZXJ0IChzdG10 X2VuZHNfYmJfcCAoc3RtdCkpOw0KICAgZWxzZSBpZiAoaXNfZ2ltcGxlX2Fz c2lnbiAoc3RtdCkgfHwgaXNfZ2ltcGxlX2NhbGwgKHN0bXQpKQ0KLSAgICB7 DQotICAgICAgLyogSW4gZ2VuZXJhbCwgYXNzaWdubWVudHMgd2l0aCB2aXJ0 dWFsIG9wZXJhbmRzIGFyZSBub3QgdXNlZnVsDQotCSBmb3IgZGVyaXZpbmcg cmFuZ2VzLCB3aXRoIHRoZSBvYnZpb3VzIGV4Y2VwdGlvbiBvZiBjYWxscyB0 bw0KLQkgYnVpbHRpbiBmdW5jdGlvbnMuICAqLw0KLSAgICAgIGlmICgoaXNf Z2ltcGxlX2NhbGwgKHN0bXQpDQotCSAgICYmIGdpbXBsZV9jYWxsX2ZuZGVj bCAoc3RtdCkgIT0gTlVMTF9UUkVFDQotCSAgICYmIERFQ0xfQlVJTFRfSU4g KGdpbXBsZV9jYWxsX2ZuZGVjbCAoc3RtdCkpKQ0KLQkgIHx8ICFnaW1wbGVf dnVzZSAoc3RtdCkpDQotCXJldHVybiB2cnBfdmlzaXRfYXNzaWdubWVudF9v cl9jYWxsIChzdG10LCBvdXRwdXRfcCk7DQotICAgIH0NCisgICAgcmV0dXJu IHZycF92aXNpdF9hc3NpZ25tZW50X29yX2NhbGwgKHN0bXQsIG91dHB1dF9w KTsNCiAgIGVsc2UgaWYgKGdpbXBsZV9jb2RlIChzdG10KSA9PSBHSU1QTEVf Q09ORCkNCiAgICAgcmV0dXJuIHZycF92aXNpdF9jb25kX3N0bXQgKHN0bXQs IHRha2VuX2VkZ2VfcCk7DQogICBlbHNlIGlmIChnaW1wbGVfY29kZSAoc3Rt dCkgPT0gR0lNUExFX1NXSVRDSCkNCiAgICAgcmV0dXJuIHZycF92aXNpdF9z d2l0Y2hfc3RtdCAoc3RtdCwgdGFrZW5fZWRnZV9wKTsNCiANCiAgIC8qIEFs bCBvdGhlciBzdGF0ZW1lbnRzIHByb2R1Y2Ugbm90aGluZyBvZiBpbnRlcmVz dCBmb3IgVlJQLCBzbyBtYXJrDQogICAgICB0aGVpciBvdXRwdXRzIHZhcnlp bmcgYW5kIHByZXZlbnQgZnVydGhlciBzaW11bGF0aW9uLiAgKi8NCiAgIEZP Ul9FQUNIX1NTQV9UUkVFX09QRVJBTkQgKGRlZiwgc3RtdCwgaXRlciwgU1NB X09QX0RFRikNCiAgICAgc2V0X3ZhbHVlX3JhbmdlX3RvX3ZhcnlpbmcgKGdl dF92YWx1ZV9yYW5nZSAoZGVmKSk7DQogDQo= --8323329-146042907-1380717221=:23466--