From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 109200 invoked by alias); 15 Jun 2015 03:50:53 -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 109187 invoked by uid 89); 15 Jun 2015 03:50:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 X-HELO: DUB004-OMC3S30.hotmail.com Received: from dub004-omc3s30.hotmail.com (HELO DUB004-OMC3S30.hotmail.com) (157.55.2.39) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA256 encrypted) ESMTPS; Mon, 15 Jun 2015 03:50:50 +0000 Received: from DUB118-W12 ([157.55.2.7]) by DUB004-OMC3S30.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.22751); Sun, 14 Jun 2015 20:50:46 -0700 X-TMN: [FTsvxGi8cDeN8kF4JKuMKwsSzADkiNp2] Message-ID: Content-Type: multipart/mixed; boundary="_e5164865-0610-4f5b-807d-73612df84dc8_" From: Bernd Edlinger To: "gcc-patches@gcc.gnu.org" CC: Richard Biener , Jakub Jelinek , Jeff Law , Eric Botcazou Subject: RE: [RFC] Sanitize rtx_addr_can_trap_p_1 Date: Mon, 15 Jun 2015 09:03:00 -0000 In-Reply-To: References: MIME-Version: 1.0 X-SW-Source: 2015-06/txt/msg00989.txt.bz2 --_e5164865-0610-4f5b-807d-73612df84dc8_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 4378 Hi, I have here an updated patch, which improves two things: First it moves debug code out to an extra patch, as suggested by Jakub. Secondly, it fixes the checks on STACK_GROWS_DOWNWARD and ARGS_GROW_DOWNWARD.=A0 Previously these used to be conditionally defined symbols, but recently they were changed to be always defined, but with 0 or= 1. That made all #ifndef checks on those two flags work the wrong way, and it = caused most of the false positives in the previous version. Now the number of false positives in the stage2 drops significantly to only= 4 new ones: *** argp can trap: function=3Duw_init_context_1, pass=3Dreload, offset=3D23= 6, size=3D4, low_bound=3D-16, high_bound=3D16 *** argp can trap: function=3Duw_init_context_1, pass=3Dreload, offset=3D23= 6, size=3D4, low_bound=3D-16, high_bound=3D16 *** argp can trap: function=3Duw_init_context_1, pass=3Dreload, offset=3D44= 0, size=3D8, low_bound=3D-16, high_bound=3D16 *** argp can trap: function=3Duw_init_context_1, pass=3Dreload, offset=3D44= 0, size=3D8, low_bound=3D-16, high_bound=3D16 These came from libgcc/unwind-dw2.c They seem to have the same reason as the 2930 "frame can trap" warnings tha= t were already there before the patch. All these seem to happen due to some hidden bug.=A0 In the debugger the cal= l stack looks always like this: #0=A0 rtx_addr_can_trap_p_1 (x=3D0x7ffff6ecb378, offset=3D440, size=3D8, mo= de=3DDImode, unaligned_mems=3Dfalse) at ../../gcc-trunk/gcc/rtlanal.c:671 #1=A0 0x0000000000d90f4a in rtx_addr_can_trap_p_1 (x=3D0x7ffff67ac7f8, offs= et=3D0, size=3D8, mode=3DDImode, unaligned_mems=3Dfalse) at ../../gcc-trunk= /gcc/rtlanal.c:699 #2=A0 0x0000000000d953c4 in may_trap_p_1 (x=3D0x7ffff67ac810, flags=3D0) at= ../../gcc-trunk/gcc/rtlanal.c:2760 #3=A0 0x0000000000d95619 in may_trap_p_1 (x=3D0x7ffff671ac90, flags=3D0) at= ../../gcc-trunk/gcc/rtlanal.c:2838 #4=A0 0x0000000000d956cc in may_trap_p (x=3D0x7ffff671ac90) at ../../gcc-tr= unk/gcc/rtlanal.c:2857 #5=A0 0x0000000000c6b2ab in process_bb_lives (bb=3D0x7ffff6c3a958, curr_poi= nt=3D@0x7fffffffd8e4: 23, dead_insn_p=3Dtrue) at ../../gcc-trunk/gcc/lra-li= ves.c:698 #6=A0 0x0000000000c6d19a in lra_create_live_ranges_1 (all_p=3Dtrue, dead_in= sn_p=3Dtrue) at ../../gcc-trunk/gcc/lra-lives.c:1262 #7=A0 0x0000000000c6d47c in lra_create_live_ranges (all_p=3Dtrue, dead_insn= _p=3Dtrue) at ../../gcc-trunk/gcc/lra-lives.c:1327 #8=A0 0x0000000000c4a253 in lra (f=3D0x24f7940) at ../../gcc-trunk/gcc/lra.= c:2309 #9=A0 0x0000000000bf3d25 in do_reload () at ../../gcc-trunk/gcc/ira.c:5401 #10 0x0000000000bf40d3 in (anonymous namespace)::pass_reload::execute (this= =3D0x23fce20) at ../../gcc-trunk/gcc/ira.c:5572 #11 0x0000000000d08e37 in execute_one_pass (pass=3D0x23fce20) at ../../gcc-= trunk/gcc/passes.c:2359 #12 0x0000000000d09081 in execute_pass_list_1 (pass=3D0x23fce20) at ../../g= cc-trunk/gcc/passes.c:2412 #13 0x0000000000d090b2 in execute_pass_list_1 (pass=3D0x23fbda0) at ../../g= cc-trunk/gcc/passes.c:2413 #14 0x0000000000d090ef in execute_pass_list (fn=3D0x7ffff7044c78, pass=3D0x= 23f8bc0) at ../../gcc-trunk/gcc/passes.c:2423 #15 0x00000000008de80c in cgraph_node::expand (this=3D0x7ffff6c09498) at ..= /../gcc-trunk/gcc/cgraphunit.c:1937 #16 0x00000000008dee3d in expand_all_functions () at ../../gcc-trunk/gcc/cg= raphunit.c:2073 #17 0x00000000008df954 in symbol_table::compile (this=3D0x7ffff6ecf000) at = ../../gcc-trunk/gcc/cgraphunit.c:2426 #18 0x00000000008dfb68 in symbol_table::finalize_compilation_unit (this=3D0= x7ffff6ecf000) at ../../gcc-trunk/gcc/cgraphunit.c:2513 #19 0x0000000000e094ba in compile_file () at ../../gcc-trunk/gcc/toplev.c:5= 80 #20 0x0000000000e0b9fa in do_compile () at ../../gcc-trunk/gcc/toplev.c:2070 #21 0x0000000000e0bc46 in toplev::main (this=3D0x7fffffffdc50, argc=3D35, a= rgv=3D0x7fffffffdd58) at ../../gcc-trunk/gcc/toplev.c:2171 #22 0x00000000016b656d in main (argc=3D35, argv=3D0x7fffffffdd58) at ../../= gcc-trunk/gcc/main.c:39 I cannot find any instruction in the rtl dumps that corresponds to this lar= ge argp offset.=A0 So I think there must be something wrong along the call stack above, which looks identically even on= the bogus frame pointer references. Is this patch OK for trunk now? At least Jakub and I are in favour of it, Eric is against it. That makes 2:1 ... Thanks Bernd. =20=09=09=20=09=20=20=20=09=09=20=20= --_e5164865-0610-4f5b-807d-73612df84dc8_ Content-Type: text/plain Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="changelog-pr60147.txt" Content-length: 513 Z2NjL0NoYW5nZUxvZzoKMjAxNS0wNi0xMSAgQmVybmQgRWRsaW5nZXIgIDxi ZXJuZC5lZGxpbmdlckBob3RtYWlsLmRlPgoKCVBSIHJ0bC1vcHRpbWl6YXRp b24vNjEwNDcKCSogcnRsYW5hbC5jIChnZXRfaW5pdGlhbF9yZWdpc3Rlcl9v ZmZzZXQpOiBOZXcgZnVuY3Rpb24uCgkocnR4X2FkZHJfY2FuX3RyYXBfcF8x KTogQ2hlY2sgb2Zmc2V0cyBvZiBzdGFjayByZWZlcmVuY2VzLgoKdGVzdHN1 aXRlL0NoYW5nZUxvZzoKMjAxNS0wNi0xMSAgQmVybmQgRWRsaW5nZXIgIDxi ZXJuZC5lZGxpbmdlckBob3RtYWlsLmRlPgoKCVBSIHJ0bC1vcHRpbWl6YXRp b24vNjEwNDcKCSogZ2NjLmMtdG9ydHVyZS9leGVjdXRlLzIwMTUwNjExLTEu YzogTmV3IHRlc3RjYXNlLgoK --_e5164865-0610-4f5b-807d-73612df84dc8_ Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-pr61047.diff" Content-length: 11595 SW5kZXg6IGdjYy9ydGxhbmFsLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL3J0bGFuYWwuYwkocmV2aXNpb24gMjI0NDY3KQorKysgZ2NjL3J0 bGFuYWwuYwkod29ya2luZyBjb3B5KQpAQCAtMzQ2LDYgKzM0NiwxNDUgQEAg cnR4X3Zhcmllc19wIChjb25zdF9ydHggeCwgYm9vbCBmb3JfYWxpYXMpCiAg IHJldHVybiAwOwogfQogCisvKiBDb21wdXRlIGFuIGFwcHJveGltYXRpb24g Zm9yIHRoZSBvZmZzZXQgYmV0d2VlbiB0aGUgcmVnaXN0ZXIKKyAgIEZST00g YW5kIFRPIGZvciB0aGUgY3VycmVudCBmdW5jdGlvbiwgYXMgaXQgd2FzIGF0 IHRoZSBzdGFydAorICAgb2YgdGhlIHJvdXRpbmUuICAqLworCitzdGF0aWMg SE9TVF9XSURFX0lOVAorZ2V0X2luaXRpYWxfcmVnaXN0ZXJfb2Zmc2V0IChp bnQgZnJvbSwgaW50IHRvKQoreworI2lmZGVmIEVMSU1JTkFCTEVfUkVHUwor ICBzdGF0aWMgY29uc3Qgc3RydWN0IGVsaW1fdGFibGVfdAorICB7CisgICAg Y29uc3QgaW50IGZyb207CisgICAgY29uc3QgaW50IHRvOworICB9IHRhYmxl W10gPSBFTElNSU5BQkxFX1JFR1M7CisgIEhPU1RfV0lERV9JTlQgb2Zmc2V0 MSwgb2Zmc2V0MjsKKyAgdW5zaWduZWQgaW50IGksIGo7CisKKyAgaWYgKHRv ID09IGZyb20pCisgICAgcmV0dXJuIDA7CisKKyAgLyogSXQgaXMgbm90IHNh ZmUgdG8gY2FsbCBJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNFVAorICAgICBi ZWZvcmUgdGhlIHJlbG9hZCBwYXNzLiAgV2UgbmVlZCB0byBnaXZlIGF0IGxl YXN0CisgICAgIGFuIGVzdGltYXRpb24gZm9yIHRoZSByZXN1bHRpbmcgZnJh bWUgc2l6ZS4gICovCisgIGlmICghIHJlbG9hZF9jb21wbGV0ZWQpCisgICAg eworICAgICAgb2Zmc2V0MSA9IGNydGwtPm91dGdvaW5nX2FyZ3Nfc2l6ZSAr IGdldF9mcmFtZV9zaXplICgpOworI2lmICFTVEFDS19HUk9XU19ET1dOV0FS RAorICAgICAgb2Zmc2V0MSA9IC0gb2Zmc2V0MTsKKyNlbmRpZgorICAgICAg aWYgKHRvID09IFNUQUNLX1BPSU5URVJfUkVHTlVNKQorCXJldHVybiBvZmZz ZXQxOworICAgICAgZWxzZSBpZiAoZnJvbSA9PSBTVEFDS19QT0lOVEVSX1JF R05VTSkKKwlyZXR1cm4gLSBvZmZzZXQxOworICAgICAgZWxzZQorCXJldHVy biAwOworICAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUg KHRhYmxlKTsgaSsrKQorICAgICAgaWYgKHRhYmxlW2ldLmZyb20gPT0gZnJv bSkKKwl7CisJICBpZiAodGFibGVbaV0udG8gPT0gdG8pCisJICAgIHsKKwkg ICAgICBJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNFVCAodGFibGVbaV0uZnJv bSwgdGFibGVbaV0udG8sCisJCQkJCSAgb2Zmc2V0MSk7CisJICAgICAgcmV0 dXJuIG9mZnNldDE7CisJICAgIH0KKwkgIGZvciAoaiA9IDA7IGogPCBBUlJB WV9TSVpFICh0YWJsZSk7IGorKykKKwkgICAgeworCSAgICAgIGlmICh0YWJs ZVtqXS50byA9PSB0bworCQkgICYmIHRhYmxlW2pdLmZyb20gPT0gdGFibGVb aV0udG8pCisJCXsKKwkJICBJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNFVCAo dGFibGVbaV0uZnJvbSwgdGFibGVbaV0udG8sCisJCQkJCSAgICAgIG9mZnNl dDEpOworCQkgIElOSVRJQUxfRUxJTUlOQVRJT05fT0ZGU0VUICh0YWJsZVtq XS5mcm9tLCB0YWJsZVtqXS50bywKKwkJCQkJICAgICAgb2Zmc2V0Mik7CisJ CSAgcmV0dXJuIG9mZnNldDEgKyBvZmZzZXQyOworCQl9CisJICAgICAgaWYg KHRhYmxlW2pdLmZyb20gPT0gdG8KKwkJICAmJiB0YWJsZVtqXS50byA9PSB0 YWJsZVtpXS50bykKKwkJeworCQkgIElOSVRJQUxfRUxJTUlOQVRJT05fT0ZG U0VUICh0YWJsZVtpXS5mcm9tLCB0YWJsZVtpXS50bywKKwkJCQkJICAgICAg b2Zmc2V0MSk7CisJCSAgSU5JVElBTF9FTElNSU5BVElPTl9PRkZTRVQgKHRh YmxlW2pdLmZyb20sIHRhYmxlW2pdLnRvLAorCQkJCQkgICAgICBvZmZzZXQy KTsKKwkJICByZXR1cm4gb2Zmc2V0MSAtIG9mZnNldDI7CisJCX0KKwkgICAg fQorCX0KKyAgICAgIGVsc2UgaWYgKHRhYmxlW2ldLnRvID09IGZyb20pCisJ eworCSAgaWYgKHRhYmxlW2ldLmZyb20gPT0gdG8pCisJICAgIHsKKwkgICAg ICBJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNFVCAodGFibGVbaV0uZnJvbSwg dGFibGVbaV0udG8sCisJCQkJCSAgb2Zmc2V0MSk7CisJICAgICAgcmV0dXJu IC0gb2Zmc2V0MTsKKwkgICAgfQorCSAgZm9yIChqID0gMDsgaiA8IEFSUkFZ X1NJWkUgKHRhYmxlKTsgaisrKQorCSAgICB7CisJICAgICAgaWYgKHRhYmxl W2pdLnRvID09IHRvCisJCSAgJiYgdGFibGVbal0uZnJvbSA9PSB0YWJsZVtp XS5mcm9tKQorCQl7CisJCSAgSU5JVElBTF9FTElNSU5BVElPTl9PRkZTRVQg KHRhYmxlW2ldLmZyb20sIHRhYmxlW2ldLnRvLAorCQkJCQkgICAgICBvZmZz ZXQxKTsKKwkJICBJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNFVCAodGFibGVb al0uZnJvbSwgdGFibGVbal0udG8sCisJCQkJCSAgICAgIG9mZnNldDIpOwor CQkgIHJldHVybiAtIG9mZnNldDEgKyBvZmZzZXQyOworCQl9CisJICAgICAg aWYgKHRhYmxlW2pdLmZyb20gPT0gdG8KKwkJICAmJiB0YWJsZVtqXS50byA9 PSB0YWJsZVtpXS5mcm9tKQorCQl7CisJCSAgSU5JVElBTF9FTElNSU5BVElP Tl9PRkZTRVQgKHRhYmxlW2ldLmZyb20sIHRhYmxlW2ldLnRvLAorCQkJCQkg ICAgICBvZmZzZXQxKTsKKwkJICBJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNF VCAodGFibGVbal0uZnJvbSwgdGFibGVbal0udG8sCisJCQkJCSAgICAgIG9m ZnNldDIpOworCQkgIHJldHVybiAtIG9mZnNldDEgLSBvZmZzZXQyOworCQl9 CisJICAgIH0KKwl9CisKKyAgLyogSWYgdGhlIHJlcXVlc3RlZCByZWdpc3Rl ciBjb21iaW5hdGlvbiB3YXMgbm90IGZvdW5kLAorICAgICB0cnkgYSBkaWZm ZXJlbnQgbW9yZSBzaW1wbGUgY29tYmluYXRpb24uICAqLworICBpZiAoZnJv bSA9PSBBUkdfUE9JTlRFUl9SRUdOVU0pCisgICAgcmV0dXJuIGdldF9pbml0 aWFsX3JlZ2lzdGVyX29mZnNldCAoSEFSRF9GUkFNRV9QT0lOVEVSX1JFR05V TSwgdG8pOworICBlbHNlIGlmICh0byA9PSBBUkdfUE9JTlRFUl9SRUdOVU0p CisgICAgcmV0dXJuIGdldF9pbml0aWFsX3JlZ2lzdGVyX29mZnNldCAoZnJv bSwgSEFSRF9GUkFNRV9QT0lOVEVSX1JFR05VTSk7CisgIGVsc2UgaWYgKGZy b20gPT0gSEFSRF9GUkFNRV9QT0lOVEVSX1JFR05VTSkKKyAgICByZXR1cm4g Z2V0X2luaXRpYWxfcmVnaXN0ZXJfb2Zmc2V0IChGUkFNRV9QT0lOVEVSX1JF R05VTSwgdG8pOworICBlbHNlIGlmICh0byA9PSBIQVJEX0ZSQU1FX1BPSU5U RVJfUkVHTlVNKQorICAgIHJldHVybiBnZXRfaW5pdGlhbF9yZWdpc3Rlcl9v ZmZzZXQgKGZyb20sIEZSQU1FX1BPSU5URVJfUkVHTlVNKTsKKyAgZWxzZQor ICAgIHJldHVybiAwOworCisjZWxzZQorICBIT1NUX1dJREVfSU5UIG9mZnNl dDsKKworICBpZiAodG8gPT0gZnJvbSkKKyAgICByZXR1cm4gMDsKKworICBp ZiAocmVsb2FkX2NvbXBsZXRlZCkKKyAgICB7CisgICAgICBJTklUSUFMX0ZS QU1FX1BPSU5URVJfT0ZGU0VUIChvZmZzZXQpOworICAgIH0KKyAgZWxzZQor ICAgIHsKKyAgICAgIG9mZnNldCA9IGNydGwtPm91dGdvaW5nX2FyZ3Nfc2l6 ZSArIGdldF9mcmFtZV9zaXplICgpOworI2lmICFTVEFDS19HUk9XU19ET1dO V0FSRAorICAgICAgb2Zmc2V0ID0gLSBvZmZzZXQ7CisjZW5kaWYKKyAgICB9 CisKKyAgaWYgKHRvID09IFNUQUNLX1BPSU5URVJfUkVHTlVNKQorICAgIHJl dHVybiBvZmZzZXQ7CisgIGVsc2UgaWYgKGZyb20gPT0gU1RBQ0tfUE9JTlRF Ul9SRUdOVU0pCisgICAgcmV0dXJuIC0gb2Zmc2V0OworICBlbHNlCisgICAg cmV0dXJuIDA7CisKKyNlbmRpZgorfQorCiAvKiBSZXR1cm4gbm9uemVybyBp ZiB0aGUgdXNlIG9mIFgrT0ZGU0VUIGFzIGFuIGFkZHJlc3MgaW4gYSBNRU0g d2l0aCBTSVpFCiAgICBieXRlcyBjYW4gY2F1c2UgYSB0cmFwLiAgTU9ERSBp cyB0aGUgbW9kZSBvZiB0aGUgTUVNIChub3QgdGhhdCBvZiBYKSBhbmQKICAg IFVOQUxJR05FRF9NRU1TIGNvbnRyb2xzIHdoZXRoZXIgbm9uemVybyBpcyBy ZXR1cm5lZCBmb3IgdW5hbGlnbmVkIG1lbW9yeQpAQCAtNDIzLDI5ICs1NjIs MTA5IEBAIHJ0eF9hZGRyX2Nhbl90cmFwX3BfMSAoY29uc3RfcnR4IHgsIEhP U1RfV0lERV9JTlQKICAgICBjYXNlIFJFRzoKICAgICAgIC8qIFN0YWNrIHJl ZmVyZW5jZXMgYXJlIGFzc3VtZWQgbm90IHRvIHRyYXAsIGJ1dCB3ZSBuZWVk IHRvIGRlYWwgd2l0aAogCSBub25zZW5zaWNhbCBvZmZzZXRzLiAgKi8KLSAg ICAgIGlmICh4ID09IGZyYW1lX3BvaW50ZXJfcnR4KQorICAgICAgaWYgKHgg PT0gZnJhbWVfcG9pbnRlcl9ydHggfHwgeCA9PSBoYXJkX2ZyYW1lX3BvaW50 ZXJfcnR4CisJIHx8IHggPT0gc3RhY2tfcG9pbnRlcl9ydHgKKwkgLyogVGhl IGFyZyBwb2ludGVyIHZhcmllcyBpZiBpdCBpcyBub3QgYSBmaXhlZCByZWdp c3Rlci4gICovCisJIHx8ICh4ID09IGFyZ19wb2ludGVyX3J0eCAmJiBmaXhl ZF9yZWdzW0FSR19QT0lOVEVSX1JFR05VTV0pKQogCXsKLQkgIEhPU1RfV0lE RV9JTlQgYWRqX29mZnNldCA9IG9mZnNldCAtIFNUQVJUSU5HX0ZSQU1FX09G RlNFVDsKKyNpZmRlZiBSRURfWk9ORV9TSVpFCisJICBIT1NUX1dJREVfSU5U IHJlZF96b25lX3NpemUgPSBSRURfWk9ORV9TSVpFOworI2Vsc2UKKwkgIEhP U1RfV0lERV9JTlQgcmVkX3pvbmVfc2l6ZSA9IDA7CisjZW5kaWYKKwkgIEhP U1RfV0lERV9JTlQgc3RhY2tfYm91bmRhcnkgPSBQUkVGRVJSRURfU1RBQ0tf Qk9VTkRBUlkKKwkJCQkJIC8gQklUU19QRVJfVU5JVDsKKwkgIEhPU1RfV0lE RV9JTlQgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworCiAJICBpZiAoc2l6ZSA9 PSAwKQogCSAgICBzaXplID0gR0VUX01PREVfU0laRSAobW9kZSk7Ci0JICBp ZiAoRlJBTUVfR1JPV1NfRE9XTldBUkQpCisKKwkgIGlmICh4ID09IGZyYW1l X3BvaW50ZXJfcnR4KQogCSAgICB7Ci0JICAgICAgaWYgKGFkal9vZmZzZXQg PCBmcmFtZV9vZmZzZXQgfHwgYWRqX29mZnNldCArIHNpemUgLSAxID49IDAp Ci0JCXJldHVybiAxOworCSAgICAgIGlmIChGUkFNRV9HUk9XU19ET1dOV0FS RCkKKwkJeworCQkgIGhpZ2hfYm91bmQgPSBTVEFSVElOR19GUkFNRV9PRkZT RVQ7CisJCSAgbG93X2JvdW5kICA9IGhpZ2hfYm91bmQgLSBnZXRfZnJhbWVf c2l6ZSAoKTsKKwkJfQorCSAgICAgIGVsc2UKKwkJeworCQkgIGxvd19ib3Vu ZCAgPSBTVEFSVElOR19GUkFNRV9PRkZTRVQ7CisJCSAgaGlnaF9ib3VuZCA9 IGxvd19ib3VuZCArIGdldF9mcmFtZV9zaXplICgpOworCQl9CiAJICAgIH0K KwkgIGVsc2UgaWYgKHggPT0gaGFyZF9mcmFtZV9wb2ludGVyX3J0eCkKKwkg ICAgeworCSAgICAgIEhPU1RfV0lERV9JTlQgc3Bfb2Zmc2V0CisJCT0gZ2V0 X2luaXRpYWxfcmVnaXN0ZXJfb2Zmc2V0IChTVEFDS19QT0lOVEVSX1JFR05V TSwKKwkJCQkJICAgICAgIEhBUkRfRlJBTUVfUE9JTlRFUl9SRUdOVU0pOwor CSAgICAgIEhPU1RfV0lERV9JTlQgYXBfb2Zmc2V0CisJCT0gZ2V0X2luaXRp YWxfcmVnaXN0ZXJfb2Zmc2V0IChBUkdfUE9JTlRFUl9SRUdOVU0sCisJCQkJ CSAgICAgICBIQVJEX0ZSQU1FX1BPSU5URVJfUkVHTlVNKTsKKworI2lmIFNU QUNLX0dST1dTX0RPV05XQVJECisJICAgICAgbG93X2JvdW5kICA9IHNwX29m ZnNldCAtIHJlZF96b25lX3NpemUgLSBzdGFja19ib3VuZGFyeTsKKwkgICAg ICBoaWdoX2JvdW5kID0gYXBfb2Zmc2V0CisJCQkgICArIEZJUlNUX1BBUk1f T0ZGU0VUIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpCisjaWYgIUFSR1NfR1JP V19ET1dOV0FSRAorCQkJICAgKyBjcnRsLT5hcmdzLnNpemUKKyNlbmRpZgor CQkJICAgKyBzdGFja19ib3VuZGFyeTsKKyNlbHNlCisJICAgICAgaGlnaF9i b3VuZCA9IHNwX29mZnNldCArIHJlZF96b25lX3NpemUgKyBzdGFja19ib3Vu ZGFyeTsKKwkgICAgICBsb3dfYm91bmQgID0gYXBfb2Zmc2V0CisJCQkgICAr IEZJUlNUX1BBUk1fT0ZGU0VUIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpCisj aWYgQVJHU19HUk9XX0RPV05XQVJECisJCQkgICAtIGNydGwtPmFyZ3Muc2l6 ZQorI2VuZGlmCisJCQkgICAtIHN0YWNrX2JvdW5kYXJ5OworI2VuZGlmCisJ ICAgIH0KKwkgIGVsc2UgaWYgKHggPT0gc3RhY2tfcG9pbnRlcl9ydHgpCisJ ICAgIHsKKwkgICAgICBIT1NUX1dJREVfSU5UIGFwX29mZnNldAorCQk9IGdl dF9pbml0aWFsX3JlZ2lzdGVyX29mZnNldCAoQVJHX1BPSU5URVJfUkVHTlVN LAorCQkJCQkgICAgICAgU1RBQ0tfUE9JTlRFUl9SRUdOVU0pOworCisjaWYg U1RBQ0tfR1JPV1NfRE9XTldBUkQKKwkgICAgICBsb3dfYm91bmQgID0gLSBy ZWRfem9uZV9zaXplIC0gc3RhY2tfYm91bmRhcnk7CisJICAgICAgaGlnaF9i b3VuZCA9IGFwX29mZnNldAorCQkJICAgKyBGSVJTVF9QQVJNX09GRlNFVCAo Y3VycmVudF9mdW5jdGlvbl9kZWNsKQorI2lmICFBUkdTX0dST1dfRE9XTldB UkQKKwkJCSAgICsgY3J0bC0+YXJncy5zaXplCisjZW5kaWYKKwkJCSAgICsg c3RhY2tfYm91bmRhcnk7CisjZWxzZQorCSAgICAgIGhpZ2hfYm91bmQgPSBy ZWRfem9uZV9zaXplICsgc3RhY2tfYm91bmRhcnk7CisJICAgICAgbG93X2Jv dW5kICA9IGFwX29mZnNldAorCQkJICAgKyBGSVJTVF9QQVJNX09GRlNFVCAo Y3VycmVudF9mdW5jdGlvbl9kZWNsKQorI2lmIEFSR1NfR1JPV19ET1dOV0FS RAorCQkJICAgLSBjcnRsLT5hcmdzLnNpemUKKyNlbmRpZgorCQkJICAgLSBz dGFja19ib3VuZGFyeTsKKyNlbmRpZgorCSAgICB9CiAJICBlbHNlCiAJICAg IHsKLQkgICAgICBpZiAoYWRqX29mZnNldCA8IDAgfHwgYWRqX29mZnNldCAr IHNpemUgLSAxID49IGZyYW1lX29mZnNldCkKLQkJcmV0dXJuIDE7CisJICAg ICAgLyogV2UgYXNzdW1lIHRoYXQgYWNjZXNzZXMgYXJlIHNhZmUgdG8gYXQg bGVhc3QgdGhlCisJCSBuZXh0IHN0YWNrIGJvdW5kYXJ5LgorCQkgRXhhbXBs ZXMgYXJlIHZhcmFyZ3MgYW5kIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcy4g ICovCisjaWYgQVJHU19HUk9XX0RPV05XQVJECisJICAgICAgaGlnaF9ib3Vu ZCA9IEZJUlNUX1BBUk1fT0ZGU0VUIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wp CisJCQkgICArIHN0YWNrX2JvdW5kYXJ5OworCSAgICAgIGxvd19ib3VuZCAg PSBGSVJTVF9QQVJNX09GRlNFVCAoY3VycmVudF9mdW5jdGlvbl9kZWNsKQor CQkJICAgLSBjcnRsLT5hcmdzLnNpemUgLSBzdGFja19ib3VuZGFyeTsKKyNl bHNlCisJICAgICAgbG93X2JvdW5kICA9IEZJUlNUX1BBUk1fT0ZGU0VUIChj dXJyZW50X2Z1bmN0aW9uX2RlY2wpCisJCQkgICAtIHN0YWNrX2JvdW5kYXJ5 OworCSAgICAgIGhpZ2hfYm91bmQgPSBGSVJTVF9QQVJNX09GRlNFVCAoY3Vy cmVudF9mdW5jdGlvbl9kZWNsKQorCQkJICAgKyBjcnRsLT5hcmdzLnNpemUg KyBzdGFja19ib3VuZGFyeTsKKyNlbmRpZgogCSAgICB9Ci0JICByZXR1cm4g MDsKKworCSAgaWYgKG9mZnNldCA+PSBsb3dfYm91bmQgJiYgb2Zmc2V0IDw9 IGhpZ2hfYm91bmQgLSBzaXplKQorCSAgICByZXR1cm4gMDsKKwkgIHJldHVy biAxOwogCX0KLSAgICAgIC8qID8/PyBOZWVkIHRvIGFkZCBhIHNpbWlsYXIg Z3VhcmQgZm9yIG5vbnNlbnNpY2FsIG9mZnNldHMuICAqLwotICAgICAgaWYg KHggPT0gaGFyZF9mcmFtZV9wb2ludGVyX3J0eAotCSAgfHwgeCA9PSBzdGFj a19wb2ludGVyX3J0eAotCSAgLyogVGhlIGFyZyBwb2ludGVyIHZhcmllcyBp ZiBpdCBpcyBub3QgYSBmaXhlZCByZWdpc3Rlci4gICovCi0JICB8fCAoeCA9 PSBhcmdfcG9pbnRlcl9ydHggJiYgZml4ZWRfcmVnc1tBUkdfUE9JTlRFUl9S RUdOVU1dKSkKLQlyZXR1cm4gMDsKICAgICAgIC8qIEFsbCBvZiB0aGUgdmly dHVhbCBmcmFtZSByZWdpc3RlcnMgYXJlIHN0YWNrIHJlZmVyZW5jZXMuICAq LwogICAgICAgaWYgKFJFR05PICh4KSA+PSBGSVJTVF9WSVJUVUFMX1JFR0lT VEVSCiAJICAmJiBSRUdOTyAoeCkgPD0gTEFTVF9WSVJUVUFMX1JFR0lTVEVS KQpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUv MjAxNTA2MTEtMS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy90 ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9leGVjdXRlLzIwMTUwNjExLTEuYwko cmV2aXNpb24gMCkKKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9l eGVjdXRlLzIwMTUwNjExLTEuYwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx LDE4IEBACitpbnQgYSwgYywgZDsKK3Nob3J0IGI7CisKK2ludAorbWFpbiAo KQoreworICBpbnQgZVsxXTsKKyAgZm9yICg7IGIgPCAyOyBiKyspCisgICAg eworICAgICAgYSA9IDA7CisgICAgICBpZiAoYiA9PSAyODM3OCkKKyAgICAg ICAgYSA9IGVbYl07CisgICAgICBpZiAoIShkIHx8IGIpKQorICAgICAgICBm b3IgKDsgYzspCisgICAgICAgICAgOworICAgIH0KKyAgcmV0dXJuIDA7Cit9 Cg== --_e5164865-0610-4f5b-807d-73612df84dc8_ Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch-pr61047-debug.diff" Content-length: 1428 LS0tIGdjYy9ydGxhbmFsLmMuamoJMjAxNS0wNi0xNSAwNDo1NTo0MS4wMjc4 MTI0NTggKzAyMDAKKysrIGdjYy9ydGxhbmFsLmMJMjAxNS0wNi0xNSAwNTox MTo1OC45MjE4MjE3NzggKzAyMDAKQEAgLTQyLDYgKzQyLDcgQEAgYWxvbmcg d2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4KICNpbmNsdWRlICJl bWl0LXJ0bC5oIiAgLyogRklYTUU6IENhbiBnbyBhd2F5IG9uY2UgY3J0bCBp cyBtb3ZlZCB0byBydGwuaC4gICovCiAjaW5jbHVkZSAiYWRkcmVzc2VzLmgi CiAjaW5jbHVkZSAicnRsLWl0ZXIuaCIKKyNpbmNsdWRlICJ0cmVlLXBhc3Mu aCIKIAogLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KIHN0YXRpYyB2b2lk IHNldF9vZl8xIChydHgsIGNvbnN0X3J0eCwgdm9pZCAqKTsKQEAgLTY2Myw2 ICs2NjQsMTUgQEAgcnR4X2FkZHJfY2FuX3RyYXBfcF8xIChjb25zdF9ydHgg eCwgSE9TVAogCiAJICBpZiAob2Zmc2V0ID49IGxvd19ib3VuZCAmJiBvZmZz ZXQgPD0gaGlnaF9ib3VuZCAtIHNpemUpCiAJICAgIHJldHVybiAwOworCSAg ZnByaW50ZiAoc3RkZXJyLCAiKioqICVzIGNhbiB0cmFwOiBmdW5jdGlvbj0l cywgcGFzcz0lcyIKKwkJCSAgICIsIG9mZnNldD0lIiBQUklkNjQgIiwgc2l6 ZT0lIiBQUklkNjQKKwkJCSAgICIsIGxvd19ib3VuZD0lIiBQUklkNjQgIiwg aGlnaF9ib3VuZD0lIiBQUklkNjQgIlxuIiwKKwkJICAgeCA9PSBmcmFtZV9w b2ludGVyX3J0eCA/ICJmcmFtZSIKKwkJICAgOiB4ID09IGhhcmRfZnJhbWVf cG9pbnRlcl9ydHggPyAiZnAiCisJCSAgIDogeCA9PSBzdGFja19wb2ludGVy X3J0eCA/ICJzcCIgOiAiYXJncCIsCisJCSAgIElERU5USUZJRVJfUE9JTlRF UiAoREVDTF9OQU1FIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpKSwKKwkJICAg Y3VycmVudF9wYXNzLT5uYW1lLAorCQkgICBvZmZzZXQsIHNpemUsIGxvd19i b3VuZCwgaGlnaF9ib3VuZCk7CiAJICByZXR1cm4gMTsKIAl9CiAgICAgICAv KiBBbGwgb2YgdGhlIHZpcnR1YWwgZnJhbWUgcmVnaXN0ZXJzIGFyZSBzdGFj ayByZWZlcmVuY2VzLiAgKi8K --_e5164865-0610-4f5b-807d-73612df84dc8_--