From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25968 invoked by alias); 15 Jan 2015 23:56:22 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 25953 invoked by uid 89); 15 Jan 2015 23:56:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 15 Jan 2015 23:56:18 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t0FNuEjT022510 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 15 Jan 2015 18:56:14 -0500 Received: from bordewijk.wildebeest.org (ovpn-116-139.ams2.redhat.com [10.36.116.139]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t0FNuD1W013157 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 15 Jan 2015 18:56:14 -0500 Received: by bordewijk.wildebeest.org (Postfix, from userid 1000) id B2DEA813D800; Fri, 16 Jan 2015 00:56:12 +0100 (CET) Message-ID: <1421366172.26117.29.camel@bordewijk.wildebeest.org> Subject: Re: [PATCH] Use GCC5/DWARF5 DW_AT_noreturn to mark functions that don't return normally. From: Mark Wielaard To: Pedro Alves Cc: Stan Shebs , gdb-patches@sourceware.org Date: Thu, 15 Jan 2015 23:56:00 -0000 In-Reply-To: <548AC7C3.9020000@redhat.com> References: <1417099980-31834-1-git-send-email-mjw@redhat.com> <5480696F.1060308@redhat.com> <1418122161.18974.42.camel@bordewijk.wildebeest.org> <548745FD.40000@earthlink.net> <1418210696.5011.10.camel@bordewijk.wildebeest.org> <548AC7C3.9020000@redhat.com> Content-Type: multipart/mixed; boundary="=-YPXrsileI4avfIdgm2Z+" Mime-Version: 1.0 X-SW-Source: 2015-01/txt/msg00441.txt.bz2 --=-YPXrsileI4avfIdgm2Z+ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 494 On Fri, 2014-12-12 at 10:47 +0000, Pedro Alves wrote: > There are some tests for "return" in the testsuite -- return.exp or > return2.exp -- and at least one for "finish" -- finish.exp. I'd suggest > using these as inspiration. I added a test for answering no to the return query and and finish queries if they and the warning are there. They PASS with (GCC5) and without (older compilers) the new attribute. Also rebased the code to current master as attached. OK to commit? Thanks, Mark --=-YPXrsileI4avfIdgm2Z+ Content-Disposition: inline; filename*0=0001-Use-GCC5-DWARF5-DW_AT_noreturn-to-mark-functions-tha.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Use-GCC5-DWARF5-DW_AT_noreturn-to-mark-functions-tha.patch"; charset="UTF-8" Content-length: 17377 RnJvbSBlYTVkNzY2MmMyYmZhODNkMGRlNzM3ZjU2OTU2YTg4ODIwNjQzYjYx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogTWFyayBXaWVsYWFy ZCA8bWp3QHJlZGhhdC5jb20+DQpEYXRlOiBUdWUsIDkgRGVjIDIwMTQgMTE6 NDU6NDEgKzAxMDANClN1YmplY3Q6IFtQQVRDSF0gVXNlIEdDQzUvRFdBUkY1 IERXX0FUX25vcmV0dXJuIHRvIG1hcmsgZnVuY3Rpb25zIHRoYXQgZG9uJ3QN CiByZXR1cm4gbm9ybWFsbHkuDQoNCkFkZCBhIGZsYWcgZmllbGQgaXNfbm9y ZXR1cm4gdG8gc3RydWN0IGZ1bmNfdHlwZS4gTWFrZSBjYWxsaW5nX2NvbnZl bnRpb24NCmEgc21hbGwgYml0IGZpZWxkIHRvIG5vdCBpbmNyZWFzZSB0aGUg c2l6ZSBvZiB0aGUgc3RydWN0LiBTZXQgaXNfbm9yZXR1cm4NCmlmIHRoZSBu ZXcgR0NDNS9EV0FSRjUgRFdfQVRfbm9yZXR1cm4gaXMgc2V0IG9uIGEgRFdf VEFHX3N1YnByb2dyYW0uDQpVc2UgdGhpcyBpbmZvcm1hdGlvbiB0byB3YXJu IHRoZSB1c2VyIGJlZm9yZSBkb2luZyBhIGZpbmlzaCBvciByZXR1cm4gZnJv bQ0KYSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IHJldHVybiBub3JtYWxseSB0 byBpdHMgY2FsbGVyLg0KDQooZ2RiKSBmaW5pc2gNCndhcm5pbmc6IEZ1bmN0 aW9uIGVuZGxlc3MgZG9lcyBub3QgcmV0dXJuIG5vcm1hbGx5Lg0KVHJ5IHRv IGZpbmlzaCBhbnl3YXk/ICh5IG9yIG4pDQoNCihnZGIpIHJldHVybg0Kd2Fy bmluZzogRnVuY3Rpb24gZG9lcyBub3QgcmV0dXJuIG5vcm1hbGx5IHRvIGNh bGxlci4NCk1ha2UgZW5kbGVzcyByZXR1cm4gbm93PyAoeSBvciBuKQ0KDQpn ZGIvQ2hhbmdlTG9nDQoNCgkqIGR3YXJmMnJlYWQuYyAocmVhZF9zdWJyb3V0 aW5lX3R5cGUpOiBTZXQgVFlQRV9OT19SRVRVUk4gZnJvbQ0KCURXX0FUX25v cmV0dXJuLg0KCSogZ2RidHlwZXMuaCAoc3RydWN0IGZ1bmNfdHlwZSk6IEFk ZCBpc19ub3JldHVybiBmaWVsZCBmbGFnLiBNYWtlDQoJY2FsbGluZ19jb252 ZW50aW9uIGFuIDggYml0IGJpdCBmaWVsZC4NCgkoVFlQRV9OT19SRVRVUk4p OiBOZXcgbWFjcm8uDQoJKiBpbmZjbWQuYyAoZmluaXNoX2NvbW1hbmQpOiBR dWVyeSBpZiBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4NCglub3JtYWxseS4N CgkqIHN0YWNrLmMgKHJldHVybl9jb21tYW5kKTogTGlrZXdpc2UuDQoNCmdk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nDQoNCgkqIGdkYi5iYXNlL25vcmV0dXJu LmM6IE5ldyBmaWxlLg0KCSogZ2RiLmJhc2Uvbm9yZXR1cm4uZXhwOiBOZXcg ZmlsZS4NCgkqIGdkYi5iYXNlL25vcmV0dXJuX2ZpbmlzaC5jOiBOZXcgZmls ZS4NCgkqIGdkYi5iYXNlL25vcmV0dXJuX2ZpbmlzaC5leHA6IE5ldyBmaWxl Lg0KDQppbmNsdWRlL0NoYW5nZUxvZw0KDQoJKiBkd2FyZjIuZGVmIChEV19B VF9ub3JldHVybik6IE5ldyBEV0FSRjUgYXR0cmlidXRlLg0KDQpUaGUgZHdh cmYyLmggYWRkaXRpb24gYW5kIHRoZSBjb2RlIHRvIGVtaXQgdGhlIG5ldyBh dHRyaWJ1dGUgaXMgYWxyZWFkeSBpbg0KdGhlIGdjYyB0cmVlLg0KLS0tDQog Z2RiL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTEgKysrKysrDQogZ2RiL2R3YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDYgKysrKw0KIGdkYi9nZGJ0eXBlcy5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDEyICsrKysrLS0NCiBnZGIvaW5mY21k LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOSArKysrLQ0K IGdkYi9zdGFjay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA4ICsrKy0tDQogZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cgICAgICAgICAg ICAgICAgICAgIHwgIDcgKysrKw0KIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv bm9yZXR1cm4uYyAgICAgICAgICB8IDEzICsrKysrKysNCiBnZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL25vcmV0dXJuLmV4cCAgICAgICAgfCA1NCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCiBnZGIvdGVzdHN1aXRlL2dkYi5i YXNlL25vcmV0dXJuX2ZpbmlzaC5jICAgfCAxNCArKysrKysrKw0KIGdkYi90 ZXN0c3VpdGUvZ2RiLmJhc2Uvbm9yZXR1cm5fZmluaXNoLmV4cCB8IDU0ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIGluY2x1ZGUvQ2hhbmdl TG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrKw0KIGluY2x1 ZGUvZHdhcmYyLmRlZiAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICsr DQogMTIgZmlsZXMgY2hhbmdlZCwgMTg5IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUv Z2RiLmJhc2Uvbm9yZXR1cm4uYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIv dGVzdHN1aXRlL2dkYi5iYXNlL25vcmV0dXJuLmV4cA0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL25vcmV0dXJuX2Zpbmlz aC5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvbm9yZXR1cm5fZmluaXNoLmV4cA0KDQpkaWZmIC0tZ2l0IGEvZ2RiL0No YW5nZUxvZyBiL2dkYi9DaGFuZ2VMb2cNCmluZGV4IDVjNDU3ODAuLjYxMTAw OGMgMTAwNjQ0DQotLS0gYS9nZGIvQ2hhbmdlTG9nDQorKysgYi9nZGIvQ2hh bmdlTG9nDQpAQCAtMSwzICsxLDE0IEBADQorMjAxNS0wMS0xNSAgTWFyayBX aWVsYWFyZCAgPG1qd0ByZWRoYXQuY29tPg0KKw0KKwkqIGR3YXJmMnJlYWQu YyAocmVhZF9zdWJyb3V0aW5lX3R5cGUpOiBTZXQgVFlQRV9OT19SRVRVUk4g ZnJvbQ0KKwlEV19BVF9ub3JldHVybi4NCisJKiBnZGJ0eXBlcy5oIChzdHJ1 Y3QgZnVuY190eXBlKTogQWRkIGlzX25vcmV0dXJuIGZpZWxkIGZsYWcuIE1h a2UNCisJY2FsbGluZ19jb252ZW50aW9uIGFuIDggYml0IGJpdCBmaWVsZC4N CisJKFRZUEVfTk9fUkVUVVJOKTogTmV3IG1hY3JvLg0KKwkqIGluZmNtZC5j IChmaW5pc2hfY29tbWFuZCk6IFF1ZXJ5IGlmIGZ1bmN0aW9uIGRvZXMgbm90 IHJldHVybg0KKwlub3JtYWxseS4NCisJKiBzdGFjay5jIChyZXR1cm5fY29t bWFuZCk6IExpa2V3aXNlLg0KKw0KIDIwMTUtMDEtMTUgIEpvZWwgQnJvYmVj a2VyICA8YnJvYmVja2VyQGFkYWNvcmUuY29tPg0KIA0KIAlHREIgNy44LjIg cmVsZWFzZWQuDQpkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dk Yi9kd2FyZjJyZWFkLmMNCmluZGV4IDk2YjI1MzcuLjlkNzY1YzUgMTAwNjQ0 DQotLS0gYS9nZGIvZHdhcmYycmVhZC5jDQorKysgYi9nZGIvZHdhcmYycmVh ZC5jDQpAQCAtMTQzNDMsNiArMTQzNDMsMTIgQEAgcmVhZF9zdWJyb3V0aW5l X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkNCiAgIGVsc2UNCiAgICAgVFlQRV9DQUxMSU5HX0NPTlZFTlRJT04g KGZ0eXBlKSA9IERXX0NDX25vcm1hbDsNCiANCisgIC8qIFJlY29yZCB3aGV0 aGVyIHRoZSBmdW5jdGlvbiByZXR1cm5zIG5vcm1hbGx5IHRvIGl0cyBjYWxs ZXIgb3Igbm90DQorICAgICBpZiB0aGUgRFdBUkYgcHJvZHVjZXIgc2V0IHRo YXQgaW5mb3JtYXRpb24uICAqLw0KKyAgYXR0ciA9IGR3YXJmMl9hdHRyIChk aWUsIERXX0FUX25vcmV0dXJuLCBjdSk7DQorICBpZiAoYXR0ciAmJiAoRFdf VU5TTkQgKGF0dHIpICE9IDApKQ0KKyAgICBUWVBFX05PX1JFVFVSTiAoZnR5 cGUpID0gMTsNCisNCiAgIC8qIFdlIG5lZWQgdG8gYWRkIHRoZSBzdWJyb3V0 aW5lIHR5cGUgdG8gdGhlIGRpZSBpbW1lZGlhdGVseSBzbw0KICAgICAgd2Ug ZG9uJ3QgaW5maW5pdGVseSByZWN1cnNlIHdoZW4gZGVhbGluZyB3aXRoIHBh cmFtZXRlcnMNCiAgICAgIGRlY2xhcmVkIGFzIHRoZSBzYW1lIHN1YnJvdXRp bmUgdHlwZS4gICovDQpkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9n ZGIvZ2RidHlwZXMuaA0KaW5kZXggN2MwNmE0Zi4uYmE1Yzg1NyAxMDA2NDQN Ci0tLSBhL2dkYi9nZGJ0eXBlcy5oDQorKysgYi9nZGIvZ2RidHlwZXMuaA0K QEAgLTEwMTksOSArMTAxOSwxNiBAQCBzdHJ1Y3QgZnVuY190eXBlDQogICB7 DQogICAgIC8qICogVGhlIGNhbGxpbmcgY29udmVudGlvbiBmb3IgdGFyZ2V0 cyBzdXBwb3J0aW5nIG11bHRpcGxlIEFCSXMuDQogICAgICAgIFJpZ2h0IG5v dyB0aGlzIGlzIG9ubHkgZmV0Y2hlZCBmcm9tIHRoZSBEd2FyZi0yDQotICAg ICAgIERXX0FUX2NhbGxpbmdfY29udmVudGlvbiBhdHRyaWJ1dGUuICAqLw0K KyAgICAgICBEV19BVF9jYWxsaW5nX2NvbnZlbnRpb24gYXR0cmlidXRlLiAg VGhlIHZhbHVlIGlzIG9uZSBvZiB0aGUNCisgICAgICAgRFdfQ0MgZW51bSBk d2FyZl9jYWxsaW5nX2NvbnZlbnRpb24gY29uc3RhbnRzLiAgKi8NCiANCi0g ICAgdW5zaWduZWQgY2FsbGluZ19jb252ZW50aW9uOw0KKyAgICB1bnNpZ25l ZCBjYWxsaW5nX2NvbnZlbnRpb24gOiA4Ow0KKw0KKyAgICAvKiAqIFdoZXRo ZXIgdGhpcyBmdW5jdGlvbiBub3JtYWxseSByZXR1cm5zIHRvIGl0cyBjYWxs ZXIuICBJdCBpcw0KKyAgICAgICBzZXQgZnJvbSB0aGUgRFdfQVRfbm9yZXR1 cm4gYXR0cmlidXRlIGlmIHNldCBvbiB0aGUNCisgICAgICAgRFdfVEFHX3N1 YnByb2dyYW0uICAqLw0KKw0KKyAgICB1bnNpZ25lZCBpbnQgaXNfbm9yZXR1 cm4gOiAxOw0KIA0KICAgICAvKiAqIE9ubHkgdGhvc2UgRFdfVEFHX0dOVV9j YWxsX3NpdGUncyBpbiB0aGlzIGZ1bmN0aW9uIHRoYXQgaGF2ZQ0KICAgICAg ICBEV19BVF9HTlVfdGFpbF9jYWxsIHNldCBhcmUgbGlua2VkIGluIHRoaXMg bGlzdC4gIEZ1bmN0aW9uDQpAQCAtMTI0NSw2ICsxMjUyLDcgQEAgZXh0ZXJu IHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7 DQogI2RlZmluZSBUWVBFX0dOQVRfU1BFQ0lGSUModGhpc3R5cGUpIFRZUEVf TUFJTl9UWVBFKHRoaXN0eXBlKS0+dHlwZV9zcGVjaWZpYy5nbmF0X3N0dWZm DQogI2RlZmluZSBUWVBFX0RFU0NSSVBUSVZFX1RZUEUodGhpc3R5cGUpIFRZ UEVfR05BVF9TUEVDSUZJQyh0aGlzdHlwZSktPmRlc2NyaXB0aXZlX3R5cGUN CiAjZGVmaW5lIFRZUEVfQ0FMTElOR19DT05WRU5USU9OKHRoaXN0eXBlKSBU WVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPnR5cGVfc3BlY2lmaWMuZnVuY19z dHVmZi0+Y2FsbGluZ19jb252ZW50aW9uDQorI2RlZmluZSBUWVBFX05PX1JF VFVSTih0aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhpc3R5cGUpLT50eXBl X3NwZWNpZmljLmZ1bmNfc3R1ZmYtPmlzX25vcmV0dXJuDQogI2RlZmluZSBU WVBFX1RBSUxfQ0FMTF9MSVNUKHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0 aGlzdHlwZSktPnR5cGVfc3BlY2lmaWMuZnVuY19zdHVmZi0+dGFpbF9jYWxs X2xpc3QNCiAjZGVmaW5lIFRZUEVfQkFTRUNMQVNTKHRoaXN0eXBlLGluZGV4 KSBUWVBFX0ZJRUxEX1RZUEUodGhpc3R5cGUsIGluZGV4KQ0KICNkZWZpbmUg VFlQRV9OX0JBU0VDTEFTU0VTKHRoaXN0eXBlKSBUWVBFX0NQTFVTX1NQRUNJ RklDKHRoaXN0eXBlKS0+bl9iYXNlY2xhc3Nlcw0KZGlmZiAtLWdpdCBhL2dk Yi9pbmZjbWQuYyBiL2dkYi9pbmZjbWQuYw0KaW5kZXggN2IyNjY2My4uOWEx ZmI4ZCAxMDA2NDQNCi0tLSBhL2dkYi9pbmZjbWQuYw0KKysrIGIvZ2RiL2lu ZmNtZC5jDQpAQCAtMTg3Miw3ICsxODcyLDE0IEBAIGZpbmlzaF9jb21tYW5k IChjaGFyICphcmcsIGludCBmcm9tX3R0eSkNCiAgICAgICBpZiAoZXhlY3V0 aW9uX2RpcmVjdGlvbiA9PSBFWEVDX1JFVkVSU0UpDQogCXByaW50Zl9maWx0 ZXJlZCAoXygiUnVuIGJhY2sgdG8gY2FsbCBvZiAiKSk7DQogICAgICAgZWxz ZQ0KLQlwcmludGZfZmlsdGVyZWQgKF8oIlJ1biB0aWxsIGV4aXQgZnJvbSAi KSk7DQorCXsNCisJICBpZiAoZnVuY3Rpb24gIT0gTlVMTCAmJiBUWVBFX05P X1JFVFVSTiAoZnVuY3Rpb24tPnR5cGUpDQorCSAgICAgICYmICFxdWVyeSAo Xygid2FybmluZzogRnVuY3Rpb24gJXMgZG9lcyBub3QgcmV0dXJuIG5vcm1h bGx5LlxuIg0KKwkJCSAgICJUcnkgdG8gZmluaXNoIGFueXdheT8gIiksDQor CQkJIFNZTUJPTF9QUklOVF9OQU1FIChmdW5jdGlvbikpKQ0KKwkgICAgZXJy b3IgKF8oIk5vdCBjb25maXJtZWQuIikpOw0KKwkgIHByaW50Zl9maWx0ZXJl ZCAoXygiUnVuIHRpbGwgZXhpdCBmcm9tICIpKTsNCisJfQ0KIA0KICAgICAg IHByaW50X3N0YWNrX2ZyYW1lIChnZXRfc2VsZWN0ZWRfZnJhbWUgKE5VTEwp LCAxLCBMT0NBVElPTiwgMCk7DQogICAgIH0NCmRpZmYgLS1naXQgYS9nZGIv c3RhY2suYyBiL2dkYi9zdGFjay5jDQppbmRleCAwMjAxZDBhLi41ZjJhM2Rj IDEwMDY0NA0KLS0tIGEvZ2RiL3N0YWNrLmMNCisrKyBiL2dkYi9zdGFjay5j DQpAQCAtMjQ2Miw4ICsyNDYyLDEyIEBAIHJldHVybl9jb21tYW5kIChjaGFy ICpyZXR2YWxfZXhwLCBpbnQgZnJvbV90dHkpDQogCWNvbmZpcm1lZCA9IHF1 ZXJ5IChfKCIlc01ha2Ugc2VsZWN0ZWQgc3RhY2sgZnJhbWUgcmV0dXJuIG5v dz8gIiksDQogCQkJICAgcXVlcnlfcHJlZml4KTsNCiAgICAgICBlbHNlDQot CWNvbmZpcm1lZCA9IHF1ZXJ5IChfKCIlc01ha2UgJXMgcmV0dXJuIG5vdz8g IiksIHF1ZXJ5X3ByZWZpeCwNCi0JCQkgICBTWU1CT0xfUFJJTlRfTkFNRSAo dGhpc2Z1bikpOw0KKwl7DQorCSAgaWYgKFRZUEVfTk9fUkVUVVJOICh0aGlz ZnVuLT50eXBlKSkNCisJICAgIHdhcm5pbmcgKCJGdW5jdGlvbiBkb2VzIG5v dCByZXR1cm4gbm9ybWFsbHkgdG8gY2FsbGVyLiIpOw0KKwkgIGNvbmZpcm1l ZCA9IHF1ZXJ5IChfKCIlc01ha2UgJXMgcmV0dXJuIG5vdz8gIiksIHF1ZXJ5 X3ByZWZpeCwNCisJCQkgICAgIFNZTUJPTF9QUklOVF9OQU1FICh0aGlzZnVu KSk7DQorCX0NCiAgICAgICBpZiAoIWNvbmZpcm1lZCkNCiAJZXJyb3IgKF8o Ik5vdCBjb25maXJtZWQiKSk7DQogICAgIH0NCmRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n DQppbmRleCBhNzFlZTk4Li5hYjAyN2E3IDEwMDY0NA0KLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9DaGFuZ2VMb2cNCisrKyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nDQpAQCAtMSwzICsxLDEwIEBADQorMjAxNS0wMS0xNSAgTWFyayBXaWVs YWFyZCAgPG1qd0ByZWRoYXQuY29tPg0KKw0KKwkqIGdkYi5iYXNlL25vcmV0 dXJuLmM6IE5ldyBmaWxlLg0KKwkqIGdkYi5iYXNlL25vcmV0dXJuLmV4cDog TmV3IGZpbGUuDQorCSogZ2RiLmJhc2Uvbm9yZXR1cm5fZmluaXNoLmM6IE5l dyBmaWxlLg0KKwkqIGdkYi5iYXNlL25vcmV0dXJuX2ZpbmlzaC5leHA6IE5l dyBmaWxlLg0KKw0KIDIwMTUtMDEtMTUgIEpvZWwgQnJvYmVja2VyICA8YnJv YmVja2VyQGFkYWNvcmUuY29tPg0KIA0KIAkqIGdkYi5hZGEvdmFyX2Fycl9h dHRyczogTmV3IHRlc3RjYXNlLg0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvbm9yZXR1cm4uYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvbm9yZXR1cm4uYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAuLmUzOWNmMTUNCi0tLSAvZGV2L251bGwNCisrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2Uvbm9yZXR1cm4uYw0KQEAgLTAsMCArMSwxMyBAQA0K K3ZvaWQgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQ0KK25vcmV0dXJuX2Z1 bmMgKCkNCit7DQorICB3aGlsZSAoMSkNCisgICAgOw0KK30NCisNCitpbnQN CittYWluICgpDQorew0KKyAgbm9yZXR1cm5fZnVuYyAoKTsNCisgIHJldHVy biAwOw0KK30NCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L25vcmV0dXJuLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvbm9yZXR1 cm4uZXhwDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4u ODg1NjQyZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9ub3JldHVybi5leHANCkBAIC0wLDAgKzEsNTQgQEANCisjIENv cHlyaWdodCAyMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0K Kw0KKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCisjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5DQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCisjDQorIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwNCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQorIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlDQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLg0KKyMNCisjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl DQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCisNCitzdGFuZGFyZF90 ZXN0ZmlsZSAuYw0KKw0KK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9 LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJs ZSB7ZGVidWd9XSAhPSAiIiB9IHsNCisgICAgIHVudGVzdGVkIG5vcmV0dXJu LmV4cA0KKyAgICAgcmV0dXJuIC0xDQorfQ0KKw0KK3Byb2Mgbm9yZXR1cm5f dGVzdCB7IH0gew0KKyAgICBnbG9iYWwgZ2RiX3Byb21wdA0KKw0KKyAgICBp ZiB7ICEgWyBydW50b19tYWluIF0gfSB0aGVuIHsNCisJdW50ZXN0ZWQgbm9y ZXR1cm4uZXhwDQorCXJldHVybiAtMQ0KKyAgICB9DQorDQorICAgIGdkYl90 ZXN0ICJicmVhayBub3JldHVybl9mdW5jIiAiQnJlYWtwb2ludCBcWzAxMjM0 NTY3ODlcXS4qIiBcDQorCSAgICAic2V0IGJyZWFrIG9uIG5vcmV0dXJuX2Z1 bmMiDQorICAgIGdkYl90ZXN0ICJjb250aW51ZSIgIkJyZWFrcG9pbnQuKiBu b3JldHVybl9mdW5jLioiIFwNCisJICAgICJjb250aW51ZSB0byBub3JldHVy bl9mdW5jIg0KKw0KKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAicmV0dXJuIiAi cmV0dXJuIGZyb20gbm9yZXR1cm5fZnVuYyIgew0KKwktcmUgIndhcm5pbmc6 IEZ1bmN0aW9uIGRvZXMgbm90IHJldHVybiBub3JtYWxseSB0byBjYWxsZXIi IHsNCisJICAgIHZlcmJvc2UgLWxvZyAic2F3IHdhcm5pbmciDQorCSAgICBl eHBfY29udGludWUNCisJfQ0KKwktcmUgIk1ha2Ugbm9yZXR1cm5fZnVuYyBy ZXR1cm4gbm93Lip5IG9yIG4uICQiIHsNCisJICAgIHNlbmRfZ2RiICJuXG4i DQorCSAgICBleHBfY29udGludWUNCisJfQ0KKwktcmUgIk5vdCBjb25maXJt ZWQuKiRnZGJfcHJvbXB0ICQiIHsNCisJICAgIHBhc3MgIm5vcmV0dXJuX2Z1 bmMgcmV0dXJuIGNhbmNlbGxlZCINCisJfQ0KKyAgIH0NCit9DQorDQorY2xl YW5fcmVzdGFydCAke2JpbmZpbGV9DQorDQorc2V0IHRpbWVvdXQgMzANCitu b3JldHVybl90ZXN0DQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9ub3JldHVybl9maW5pc2guYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvbm9yZXR1cm5fZmluaXNoLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwLi5jZDUyNzY5DQotLS0gL2Rldi9udWxsDQorKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL25vcmV0dXJuX2ZpbmlzaC5jDQpAQCAt MCwwICsxLDE0IEBADQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKw0KK3ZvaWQg X19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQ0KK25vcmV0dXJuX2Z1bmMgKCkN Cit7DQorICBhYm9ydCAoKTsNCit9DQorDQoraW50DQorbWFpbiAoKQ0KK3sN CisgIG5vcmV0dXJuX2Z1bmMgKCk7DQorICByZXR1cm4gMDsNCit9DQpkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9ub3JldHVybl9maW5p c2guZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9ub3JldHVybl9maW5p c2guZXhwDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4u ZDUxODgyNg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9ub3JldHVybl9maW5pc2guZXhwDQpAQCAtMCwwICsxLDU0IEBA DQorIyBDb3B5cmlnaHQgMjAxNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4NCisNCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQorIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IN CisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorIw0K KyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsDQorIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0K KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCisjDQorIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQ0KKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQorDQorc3Rh bmRhcmRfdGVzdGZpbGUgLmMNCisNCitpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7 c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4 ZWN1dGFibGUge2RlYnVnfV0gIT0gIiIgfSB7DQorICAgICB1bnRlc3RlZCBu b3JldHVybl9maW5pc2guZXhwDQorICAgICByZXR1cm4gLTENCit9DQorDQor cHJvYyBub3JldHVybl9maW5pc2hfdGVzdCB7IH0gew0KKyAgICBnbG9iYWwg Z2RiX3Byb21wdA0KKw0KKyAgICBpZiB7ICEgWyBydW50b19tYWluIF0gfSB0 aGVuIHsNCisJdW50ZXN0ZWQgbm9yZXR1cm5fZmluaXNoLmV4cA0KKwlyZXR1 cm4gLTENCisgICAgfQ0KKw0KKyAgICBnZGJfdGVzdCAiYnJlYWsgbm9yZXR1 cm5fZnVuYyIgIkJyZWFrcG9pbnQgXFswMTIzNDU2Nzg5XF0uKiIgXA0KKwkg ICAgInNldCBicmVhayBvbiBub3JldHVybl9mdW5jIg0KKyAgICBnZGJfdGVz dCAiY29udGludWUiICJCcmVha3BvaW50Liogbm9yZXR1cm5fZnVuYy4qIiBc DQorCSAgICAiY29udGludWUgdG8gbm9yZXR1cm5fZnVuYyINCisNCisgICAg Z2RiX3Rlc3RfbXVsdGlwbGUgImZpbmlzaCIgInJldHVybiBmcm9tIG5vcmV0 dXJuX2Z1bmMiIHsNCisJLXJlICJ3YXJuaW5nOiBGdW5jdGlvbiBub3JldHVy bl9mdW5jIGRvZXMgbm90IHJldHVybiBub3JtYWxseSIgew0KKwkgICAgdmVy Ym9zZSAtbG9nICJzYXcgd2FybmluZyINCisJICAgIGV4cF9jb250aW51ZQ0K Kwl9DQorCS1yZSAiVHJ5IHRvIGZpbmlzaCBhbnl3YXkuKnkgb3Igbi4qICQi IHsNCisJICAgIHNlbmRfZ2RiICJuXG4iDQorCSAgICBleHBfY29udGludWUN CisJfQ0KKwktcmUgIi4qJGdkYl9wcm9tcHQgJCIgew0KKwkgICAgcGFzcyAi bm9yZXR1cm5fZnVuYyBmaW5pc2ggZG9uZSINCisJfQ0KKyAgIH0NCit9DQor DQorY2xlYW5fcmVzdGFydCAke2JpbmZpbGV9DQorDQorc2V0IHRpbWVvdXQg MzANCitub3JldHVybl9maW5pc2hfdGVzdA0KZGlmZiAtLWdpdCBhL2luY2x1 ZGUvQ2hhbmdlTG9nIGIvaW5jbHVkZS9DaGFuZ2VMb2cNCmluZGV4IDMxZjFl MTguLjIxYjZhZTYgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL0NoYW5nZUxvZw0K KysrIGIvaW5jbHVkZS9DaGFuZ2VMb2cNCkBAIC0xLDMgKzEsNyBAQA0KKzIw MTUtMDEtMTUgIE1hcmsgV2llbGFhcmQgIDxtandAcmVkaGF0LmNvbT4NCisN CisJKiBkd2FyZjIuZGVmIChEV19BVF9ub3JldHVybik6IE5ldyBEV0FSRjUg YXR0cmlidXRlLg0KKw0KIDIwMTUtMDEtMTQgIEphbi1CZW5lZGljdCBHbGF3 ICA8amJnbGF3QGx1Zy1vd2wuZGU+DQogDQogCSogbGliaWJlcnR5Lmg6IE1l cmdlIGZyb20gR0NDLg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHdhcmYyLmRl ZiBiL2luY2x1ZGUvZHdhcmYyLmRlZg0KaW5kZXggNWRhM2FlMC4uM2FlY2Rm YyAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvZHdhcmYyLmRlZg0KKysrIGIvaW5j bHVkZS9kd2FyZjIuZGVmDQpAQCAtMzA2LDYgKzMwNiw4IEBAIERXX0FUIChE V19BVF9kYXRhX2JpdF9vZmZzZXQsIDB4NmIpDQogRFdfQVQgKERXX0FUX2Nv bnN0X2V4cHIsIDB4NmMpDQogRFdfQVQgKERXX0FUX2VudW1fY2xhc3MsIDB4 NmQpDQogRFdfQVQgKERXX0FUX2xpbmthZ2VfbmFtZSwgMHg2ZSkNCisvKiBE V0FSRiA1LiAgKi8NCitEV19BVCAoRFdfQVRfbm9yZXR1cm4sIDB4ODcpDQog DQogRFdfQVRfRFVQIChEV19BVF9sb191c2VyLCAweDIwMDApIC8qIEltcGxl bWVudGF0aW9uLWRlZmluZWQgcmFuZ2Ugc3RhcnQuICAqLw0KIERXX0FUX0RV UCAoRFdfQVRfaGlfdXNlciwgMHgzZmZmKSAvKiBJbXBsZW1lbnRhdGlvbi1k ZWZpbmVkIHJhbmdlIGVuZC4gICovDQotLSANCjEuOC4zLjENCg0K --=-YPXrsileI4avfIdgm2Z+--