From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22067 invoked by alias); 14 Oct 2010 01:55:29 -0000 Received: (qmail 22047 invoked by uid 22791); 14 Oct 2010 01:55:24 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KAM_STOCKGEN,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 14 Oct 2010 01:55:15 +0000 Received: from kpbe12.cbf.corp.google.com (kpbe12.cbf.corp.google.com [172.25.105.76]) by smtp-out.google.com with ESMTP id o9E1t7MP012072 for ; Wed, 13 Oct 2010 18:55:08 -0700 Received: from vws8 (vws8.prod.google.com [10.241.21.136]) by kpbe12.cbf.corp.google.com with ESMTP id o9E1t6cc021883 for ; Wed, 13 Oct 2010 18:55:06 -0700 Received: by vws8 with SMTP id 8so2398821vws.11 for ; Wed, 13 Oct 2010 18:55:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.72.130 with SMTP id m2mr2083195vcj.134.1287021305271; Wed, 13 Oct 2010 18:55:05 -0700 (PDT) Received: by 10.220.118.2 with HTTP; Wed, 13 Oct 2010 18:55:05 -0700 (PDT) In-Reply-To: <20101013211008.GA23114@host1.dyn.jankratochvil.net> References: <20101013175308.17B772461AE@ruffy.mtv.corp.google.com> <20101013211008.GA23114@host1.dyn.jankratochvil.net> Date: Thu, 14 Oct 2010 01:55:00 -0000 Message-ID: Subject: Re: [patch] fix exp/12117 From: Doug Evans To: Jan Kratochvil Cc: Tom Tromey , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=001636285182b815c9049289ff82 X-System-Of-Record: true X-IsSubscribed: yes 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 X-SW-Source: 2010-10/txt/msg00237.txt.bz2 --001636285182b815c9049289ff82 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2889 On Wed, Oct 13, 2010 at 2:10 PM, Jan Kratochvil wrote: > Also I do not like much the pr[0-9]+.exp names, one gets fimiliar with any > name but I never remember PR numbers. =A0[in fact an idea by Roland McGra= th] I often just go with the flow for things such as this, in the absence of specific rules. If we want to declare a specific rule of no more such prNNN naming, that's fine by me. > @@ -1388,7 +1389,7 @@ check_typedef (struct type *type) > =A0 =A0 =A0 =A0 =A0/* It is dangerous to call lookup_symbol if we are cur= rently > =A0 =A0 =A0 =A0 =A0 =A0 reading a symtab. =A0Infinite recursion is one da= nger. =A0*/ > =A0 =A0 =A0 =A0 =A0if (currently_reading_symtab) > - =A0 =A0 =A0 =A0 =A0 return type; > + =A0 =A0 =A0 =A0 =A0 return make_cv_type (is_const, is_volatile, type, N= ULL); > > =A0 =A0 =A0 =A0 =A0name =3D type_name_no_tag (type); > =A0 =A0 =A0 =A0 =A0/* FIXME: shouldn't we separately check the TYPE_NAME = and I left this out for a later pass to be conservative and avoid having to deal with any unintended consequences. But if one wants to handle this in the same patch, ok. > @@ -1398,7 +1399,7 @@ check_typedef (struct type *type) > =A0 =A0 =A0 =A0 =A0if (name =3D=3D NULL) > =A0 =A0 =A0 =A0 =A0 =A0{ > =A0 =A0 =A0 =A0 =A0 =A0 =A0stub_noname_complaint (); > - =A0 =A0 =A0 =A0 =A0 =A0 return type; > + =A0 =A0 =A0 =A0 =A0 =A0 return make_cv_type (is_const, is_volatile, typ= e, NULL); > =A0 =A0 =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0 =A0sym =3D lookup_symbol (name, 0, STRUCT_DOMAIN, 0); > =A0 =A0 =A0 =A0 =A0if (sym) Ditto. > @@ -1407,11 +1408,10 @@ check_typedef (struct type *type) > =A0 =A0 =A0 =A0 =A0 =A0TYPE_TARGET_TYPE (type) =3D alloc_type_arch (get_t= ype_arch (type)); > =A0 =A0 =A0 =A0} > =A0 =A0 =A0 type =3D TYPE_TARGET_TYPE (type); > + =A0 =A0 =A0is_const |=3D TYPE_CONST (type); > + =A0 =A0 =A0is_volatile |=3D TYPE_VOLATILE (type); > =A0 =A0 } > > - =A0is_const =3D TYPE_CONST (type); > - =A0is_volatile =3D TYPE_VOLATILE (type); > - > =A0 /* If this is a struct/class/union with no fields, then check > =A0 =A0 =A0whether a full definition exists somewhere else. =A0This is for > =A0 =A0 =A0systems where a type definition with no fields is issued for s= uch This part doesn't feel right. For example, when a stub is later filled in the accumulated cv qualifiers will get filled in too, but that's wrong. [Right?] Plus there's more than just const/volatile to preserve. [Right?] I like this patch better. 2010-10-13 Doug Evans Jan Kratochvil PR exp/12117 * gdbtypes.c (check_typedef): Clean up function comment. Keep track of instance flags as we strip typedefs and create a new type to preserve them if necessary. testsuite/ * gdb.cp/ptype-cv-cp.cc: New file. * gdb.cp/ptype-cv-cp.exp: New file. --001636285182b815c9049289ff82 Content-Type: text/plain; charset=US-ASCII; name="gdb-101013-12117-3.patch.txt" Content-Disposition: attachment; filename="gdb-101013-12117-3.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gf8z6z4s0 Content-length: 12778 MjAxMC0xMC0xMyAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoJICAg IEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K CglQUiBleHAvMTIxMTcKCSogZ2RidHlwZXMuYyAoY2hlY2tfdHlwZWRlZik6 IENsZWFuIHVwIGZ1bmN0aW9uIGNvbW1lbnQuCglLZWVwIHRyYWNrIG9mIGlu c3RhbmNlIGZsYWdzIGFzIHdlIHN0cmlwIHR5cGVkZWZzIGFuZCBjcmVhdGUg YSBuZXcKCXR5cGUgdG8gcHJlc2VydmUgdGhlbSBpZiBuZWNlc3NhcnkuCgoJ dGVzdHN1aXRlLwoJKiBnZGIuY3AvcHR5cGUtY3YtY3AuY2M6IE5ldyBmaWxl LgoJKiBnZGIuY3AvcHR5cGUtY3YtY3AuZXhwOiBOZXcgZmlsZS4KCkluZGV4 OiBnZGJ0eXBlcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9jdnMvc3JjL3NyYy9nZGIvZ2RidHlwZXMuYyx2CnJldHJpZXZpbmcgcmV2 aXNpb24gMS4yMDEKZGlmZiAtdSAtcCAtcjEuMjAxIGdkYnR5cGVzLmMKLS0t IGdkYnR5cGVzLmMJMTIgT2N0IDIwMTAgMjA6NTg6MTcgLTAwMDAJMS4yMDEK KysrIGdkYnR5cGVzLmMJMTQgT2N0IDIwMTAgMDE6NDQ6MTEgLTAwMDAKQEAg LTEzNDcsNyArMTM0NywyMSBAQCBzdHViX25vbmFtZV9jb21wbGFpbnQgKHZv aWQpCiAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygic3R1 YiB0eXBlIGhhcyBOVUxMIG5hbWUiKSk7CiB9CiAKLS8qIEFkZGVkIGJ5IEJy eWFuIEJvcmVoYW0sIEtld2lsbCwgU3VuIFNlcCAxNyAxODowNzoxNyAxOTg5 LgorLyogRmluZCB0aGUgcmVhbCB0eXBlIG9mIFRZUEUuICBUaGlzIGZ1bmN0 aW9uIHJldHVybnMgdGhlIHJlYWwgdHlwZSwKKyAgIGFmdGVyIHJlbW92aW5n IGFsbCBsYXllcnMgb2YgdHlwZWRlZnMsIGFuZCBjb21wbGV0aW5nIG9wYXF1 ZSBvciBzdHViCisgICB0eXBlcy4gIENvbXBsZXRpb24gY2hhbmdlcyB0aGUg VFlQRSBhcmd1bWVudCwgYnV0IHN0cmlwcGluZyBvZgorICAgdHlwZWRlZnMg ZG9lcyBub3QuCisKKyAgIEluc3RhbmNlIGZsYWdzIChlLmcuIGNvbnN0L3Zv bGF0aWxlKSBhcmUgcHJlc2VydmVkIGFzIHR5cGVkZWZzIGFyZQorICAgc3Ry aXBwZWQuICBJZiBuZWNlc3NhcnkgYSBuZXcgcXVhbGlmaWVkIGZvcm0gb2Yg dGhlIHVuZGVybHlpbmcgdHlwZQorICAgaXMgY3JlYXRlZC4KKworICAgTk9U RTogVGhpcyB3aWxsIHJldHVybiBhIHR5cGVkZWYgaWYgVFlQRV9UQVJHRVRf VFlQRSBmb3IgdGhlIHR5cGVkZWYgaGFzCisgICBub3QgYmVlbiBjb21wdXRl ZCBhbmQgd2UncmUgZWl0aGVyIGluIHRoZSBtaWRkbGUgb2YgcmVhZGluZyBz eW1ib2xzLCBvcgorICAgdGhlcmUgd2FzIG5vIG5hbWUgZm9yIHRoZSB0eXBl ZGVmIGluIHRoZSBkZWJ1ZyBpbmZvLgorCisgICBJZiBUWVBFIGlzIGEgVFlQ RV9DT0RFX1RZUEVERUYsIGl0cyBsZW5ndGggaXMgdXBkYXRlZCB0byB0aGUg bGVuZ3RoIG9mCisgICB0aGUgdGFyZ2V0IHR5cGUuCiAKICAgIElmIHRoaXMg aXMgYSBzdHViYmVkIHN0cnVjdCAoaS5lLiBkZWNsYXJlZCBhcyBzdHJ1Y3Qg Zm9vICopLCBzZWUgaWYKICAgIHdlIGNhbiBmaW5kIGEgZnVsbCBkZWZpbml0 aW9uIGluIHNvbWUgb3RoZXIgZmlsZS4gSWYgc28sIGNvcHkgdGhpcwpAQCAt MTM1NSwyNiArMTM2OSwxNSBAQCBzdHViX25vbmFtZV9jb21wbGFpbnQgKHZv aWQpCiAgICAoYnV0IG5vdCBhbnkgY29kZSkgdGhhdCBpZiB3ZSBkb24ndCBm aW5kIGEgZnVsbCBkZWZpbml0aW9uLCB3ZSdkCiAgICBzZXQgYSBmbGFnIHNv IHdlIGRvbid0IHNwZW5kIHRpbWUgaW4gdGhlIGZ1dHVyZSBjaGVja2luZyB0 aGUgc2FtZQogICAgdHlwZS4gIFRoYXQgd291bGQgYmUgYSBtaXN0YWtlLCB0 aG91Z2gtLXdlIG1pZ2h0IGxvYWQgaW4gbW9yZQotICAgc3ltYm9scyB3aGlj aCBjb250YWluIGEgZnVsbCBkZWZpbml0aW9uIGZvciB0aGUgdHlwZS4KLQot ICAgVGhpcyB1c2VkIHRvIGJlIGNvZGVkIGFzIGEgbWFjcm8sIGJ1dCBJIGRv bid0IHRoaW5rIGl0IGlzIGNhbGxlZCAKLSAgIG9mdGVuIGVub3VnaCB0byBt ZXJpdCBzdWNoIHRyZWF0bWVudC4KLQotICAgRmluZCB0aGUgcmVhbCB0eXBl IG9mIFRZUEUuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJlYWwgdHlw ZSwKLSAgIGFmdGVyIHJlbW92aW5nIGFsbCBsYXllcnMgb2YgdHlwZWRlZnMg YW5kIGNvbXBsZXRpbmcgb3BhcXVlIG9yIHN0dWIKLSAgIHR5cGVzLiAgQ29t cGxldGlvbiBjaGFuZ2VzIHRoZSBUWVBFIGFyZ3VtZW50LCBidXQgc3RyaXBw aW5nIG9mCi0gICB0eXBlZGVmcyBkb2VzIG5vdC4KLQotICAgSWYgVFlQRSBp cyBhIFRZUEVfQ09ERV9UWVBFREVGLCBpdHMgbGVuZ3RoIGlzIChhbHNvKSBz ZXQgdG8gdGhlIGxlbmd0aCBvZgotICAgdGhlIHRhcmdldCB0eXBlIGluc3Rl YWQgb2YgemVyby4gIEhvd2V2ZXIsIGluIHRoZSBjYXNlIG9mIFRZUEVfQ09E RV9UWVBFREVGCi0gICBjaGVja190eXBlZGVmIGNhbiBzdGlsbCByZXR1cm4g ZGlmZmVyZW50IHR5cGUgdGhhbiB0aGUgb3JpZ2luYWwgVFlQRQotICAgcG9p bnRlci4gICovCisgICBzeW1ib2xzIHdoaWNoIGNvbnRhaW4gYSBmdWxsIGRl ZmluaXRpb24gZm9yIHRoZSB0eXBlLiAgKi8KIAogc3RydWN0IHR5cGUgKgog Y2hlY2tfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUpCiB7CiAgIHN0cnVj dCB0eXBlICpvcmlnX3R5cGUgPSB0eXBlOwotICBpbnQgaXNfY29uc3QsIGlz X3ZvbGF0aWxlOworICAvKiBXaGlsZSB3ZSdyZSByZW1vdmluZyB0eXBlZGVm cywgd2UgZG9uJ3Qgd2FudCB0byBsb3NlIHF1YWxpZmllcnMuCisgICAgIEUu Zy4sIGNvbnN0L3ZvbGF0aWxlLiAgKi8KKyAgaW50IGluc3RhbmNlX2ZsYWdz ID0gVFlQRV9JTlNUQU5DRV9GTEFHUyAodHlwZSk7CiAKICAgZ2RiX2Fzc2Vy dCAodHlwZSk7CiAKQEAgLTEzODgsNyArMTM5MSw3IEBAIGNoZWNrX3R5cGVk ZWYgKHN0cnVjdCB0eXBlICp0eXBlKQogCSAgLyogSXQgaXMgZGFuZ2Vyb3Vz IHRvIGNhbGwgbG9va3VwX3N5bWJvbCBpZiB3ZSBhcmUgY3VycmVudGx5CiAJ ICAgICByZWFkaW5nIGEgc3ltdGFiLiAgSW5maW5pdGUgcmVjdXJzaW9uIGlz IG9uZSBkYW5nZXIuICAqLwogCSAgaWYgKGN1cnJlbnRseV9yZWFkaW5nX3N5 bXRhYikKLQkgICAgcmV0dXJuIHR5cGU7CisJICAgIHJldHVybiBtYWtlX3F1 YWxpZmllZF90eXBlICh0eXBlLCBpbnN0YW5jZV9mbGFncywgTlVMTCk7CiAK IAkgIG5hbWUgPSB0eXBlX25hbWVfbm9fdGFnICh0eXBlKTsKIAkgIC8qIEZJ WE1FOiBzaG91bGRuJ3Qgd2Ugc2VwYXJhdGVseSBjaGVjayB0aGUgVFlQRV9O QU1FIGFuZApAQCAtMTM5OCw3ICsxNDAxLDcgQEAgY2hlY2tfdHlwZWRlZiAo c3RydWN0IHR5cGUgKnR5cGUpCiAJICBpZiAobmFtZSA9PSBOVUxMKQogCSAg ICB7CiAJICAgICAgc3R1Yl9ub25hbWVfY29tcGxhaW50ICgpOwotCSAgICAg IHJldHVybiB0eXBlOworCSAgICAgIHJldHVybiBtYWtlX3F1YWxpZmllZF90 eXBlICh0eXBlLCBpbnN0YW5jZV9mbGFncywgTlVMTCk7CiAJICAgIH0KIAkg IHN5bSA9IGxvb2t1cF9zeW1ib2wgKG5hbWUsIDAsIFNUUlVDVF9ET01BSU4s IDApOwogCSAgaWYgKHN5bSkKQEAgLTE0MDcsMTAgKzE0MTAsMzMgQEAgY2hl Y2tfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUpCiAJICAgIFRZUEVfVEFS R0VUX1RZUEUgKHR5cGUpID0gYWxsb2NfdHlwZV9hcmNoIChnZXRfdHlwZV9h cmNoICh0eXBlKSk7CiAJfQogICAgICAgdHlwZSA9IFRZUEVfVEFSR0VUX1RZ UEUgKHR5cGUpOwotICAgIH0KIAotICBpc19jb25zdCA9IFRZUEVfQ09OU1Qg KHR5cGUpOwotICBpc192b2xhdGlsZSA9IFRZUEVfVk9MQVRJTEUgKHR5cGUp OworICAgICAgLyogUHJlc2VydmUgdGhlIGluc3RhbmNlIGZsYWdzIGFzIHdl IHRyYXZlcnNlIGRvd24gdGhlIHR5cGVkZWYgY2hhaW4uCisKKwkgSGFuZGxp bmcgYWRkcmVzcyBzcGFjZXMvY2xhc3NlcyBpcyBuYXN0eSwgd2hhdCBkbyB3 ZSBkbyBpZiB0aGVyZSdzIGEKKwkgY29uZmxpY3Q/CisJIEUuZy4sIHdoYXQg aWYgYW4gb3V0ZXIgdHlwZWRlZiBtYXJrcyB0aGUgdHlwZSBhcyBjbGFzc18x IGFuZCBhbiBpbm5lcgorCSB0eXBlZGVmIG1hcmtzIHRoZSB0eXBlIGFzIGNs YXNzXzI/CisJIFRoaXMgaXMgdGhlIHdyb25nIHBsYWNlIHRvIGRvIHN1Y2gg ZXJyb3IgY2hlY2tpbmcuICBXZSBsZWF2ZSBpdCB0bworCSB0aGUgY29kZSB0 aGF0IGNyZWF0ZWQgdGhlIHR5cGVkZWYgaW4gdGhlIGZpcnN0IHBsYWNlIHRv IGZsYWcgdGhlCisJIGVycm9yLiAgV2UganVzdCBwaWNrIHRoZSBvdXRlciBh ZGRyZXNzIHNwYWNlIChha2luIHRvIGxldHRpbmcgdGhlCisJIG91dGVyIGNh c3QgaW4gYSBjaGFpbiBvZiBjYXN0aW5nIHdpbiksIGluc3RlYWQgb2YgYXNz dW1pbmcKKwkgIml0IGNhbid0IGhhcHBlbiIuICAqLworICAgICAgeworCWNv bnN0IGludCBBTExfU1BBQ0VTID0gKFRZUEVfSU5TVEFOQ0VfRkxBR19DT0RF X1NQQUNFCisJCQkJfCBUWVBFX0lOU1RBTkNFX0ZMQUdfREFUQV9TUEFDRSk7 CisJY29uc3QgaW50IEFMTF9DTEFTU0VTID0gVFlQRV9JTlNUQU5DRV9GTEFH X0FERFJFU1NfQ0xBU1NfQUxMOworCWludCBuZXdfaW5zdGFuY2VfZmxhZ3Mg PSBUWVBFX0lOU1RBTkNFX0ZMQUdTICh0eXBlKTsKKworCS8qIFRyZWF0IGNv ZGUgdnMgZGF0YSBzcGFjZXMgYW5kIGFkZHJlc3MgY2xhc3NlcyBzZXBhcmF0 ZWx5LiAgKi8KKwlpZiAoKGluc3RhbmNlX2ZsYWdzICYgQUxMX1NQQUNFUykg IT0gMCkKKwkgIG5ld19pbnN0YW5jZV9mbGFncyAmPSB+QUxMX1NQQUNFUzsK KwlpZiAoKGluc3RhbmNlX2ZsYWdzICYgQUxMX0NMQVNTRVMpICE9IDApCisJ ICBuZXdfaW5zdGFuY2VfZmxhZ3MgJj0gfkFMTF9DTEFTU0VTOworCisJaW5z dGFuY2VfZmxhZ3MgfD0gbmV3X2luc3RhbmNlX2ZsYWdzOworICAgICAgfQor ICAgIH0KIAogICAvKiBJZiB0aGlzIGlzIGEgc3RydWN0L2NsYXNzL3VuaW9u IHdpdGggbm8gZmllbGRzLCB0aGVuIGNoZWNrCiAgICAgIHdoZXRoZXIgYSBm dWxsIGRlZmluaXRpb24gZXhpc3RzIHNvbWV3aGVyZSBlbHNlLiAgVGhpcyBp cyBmb3IKQEAgLTE0MjgsNyArMTQ1NCw3IEBAIGNoZWNrX3R5cGVkZWYgKHN0 cnVjdCB0eXBlICp0eXBlKQogICAgICAgaWYgKG5hbWUgPT0gTlVMTCkKIAl7 CiAJICBzdHViX25vbmFtZV9jb21wbGFpbnQgKCk7Ci0JICByZXR1cm4gdHlw ZTsKKwkgIHJldHVybiBtYWtlX3F1YWxpZmllZF90eXBlICh0eXBlLCBpbnN0 YW5jZV9mbGFncywgTlVMTCk7CiAJfQogICAgICAgbmV3dHlwZSA9IGxvb2t1 cF90cmFuc3BhcmVudF90eXBlIChuYW1lKTsKIApAQCAtMTQ0NSw3ICsxNDcx LDkgQEAgY2hlY2tfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUpCiAJICAg ICBtb3ZlIG92ZXIgYW55IG90aGVyIHR5cGVzIE5FV1RZUEUgcmVmZXJzIHRv LCB3aGljaCBjb3VsZAogCSAgICAgYmUgYW4gdW5ib3VuZGVkIGFtb3VudCBv ZiBzdHVmZi4gICovCiAJICBpZiAoVFlQRV9PQkpGSUxFIChuZXd0eXBlKSA9 PSBUWVBFX09CSkZJTEUgKHR5cGUpKQotCSAgICBtYWtlX2N2X3R5cGUgKGlz X2NvbnN0LCBpc192b2xhdGlsZSwgbmV3dHlwZSwgJnR5cGUpOworCSAgICB0 eXBlID0gbWFrZV9xdWFsaWZpZWRfdHlwZSAobmV3dHlwZSwKKwkJCQkJVFlQ RV9JTlNUQU5DRV9GTEFHUyAodHlwZSksCisJCQkJCXR5cGUpOwogCSAgZWxz ZQogCSAgICB0eXBlID0gbmV3dHlwZTsKIAl9CkBAIC0xNDY0LDE3ICsxNDky LDE4IEBAIGNoZWNrX3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlKQogICAg ICAgaWYgKG5hbWUgPT0gTlVMTCkKIAl7CiAJICBzdHViX25vbmFtZV9jb21w bGFpbnQgKCk7Ci0JICByZXR1cm4gdHlwZTsKKwkgIHJldHVybiBtYWtlX3F1 YWxpZmllZF90eXBlICh0eXBlLCBpbnN0YW5jZV9mbGFncywgTlVMTCk7CiAJ fQogICAgICAgc3ltID0gbG9va3VwX3N5bWJvbCAobmFtZSwgMCwgU1RSVUNU X0RPTUFJTiwgMCk7CiAgICAgICBpZiAoc3ltKQogICAgICAgICB7CiAgICAg ICAgICAgLyogU2FtZSBhcyBhYm92ZSBmb3Igb3BhcXVlIHR5cGVzLCB3ZSBj YW4gcmVwbGFjZSB0aGUgc3R1YgotICAgICAgICAgICAgIHdpdGggdGhlIGNv bXBsZXRlIHR5cGUgb25seSBpZiB0aGV5IGFyZSBpbnQgdGhlIHNhbWUKKyAg ICAgICAgICAgICB3aXRoIHRoZSBjb21wbGV0ZSB0eXBlIG9ubHkgaWYgdGhl eSBhcmUgaW4gdGhlIHNhbWUKICAgICAgICAgICAgICBvYmpmaWxlLiAgKi8K IAkgIGlmIChUWVBFX09CSkZJTEUgKFNZTUJPTF9UWVBFKHN5bSkpID09IFRZ UEVfT0JKRklMRSAodHlwZSkpCi0gICAgICAgICAgICBtYWtlX2N2X3R5cGUg KGlzX2NvbnN0LCBpc192b2xhdGlsZSwgCi0JCQkgIFNZTUJPTF9UWVBFIChz eW0pLCAmdHlwZSk7CisgICAgICAgICAgICB0eXBlID0gbWFrZV9xdWFsaWZp ZWRfdHlwZSAoU1lNQk9MX1RZUEUgKHN5bSksCisJCQkJCVRZUEVfSU5TVEFO Q0VfRkxBR1MgKHR5cGUpLAorCQkJCQl0eXBlKTsKIAkgIGVsc2UKIAkgICAg dHlwZSA9IFNZTUJPTF9UWVBFIChzeW0pOwogICAgICAgICB9CkBAIC0xNTM0 LDggKzE1NjMsMTIgQEAgY2hlY2tfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5 cGUpCiAJICBUWVBFX1RBUkdFVF9TVFVCICh0eXBlKSA9IDA7CiAJfQogICAg IH0KKworICB0eXBlID0gbWFrZV9xdWFsaWZpZWRfdHlwZSAodHlwZSwgaW5z dGFuY2VfZmxhZ3MsIE5VTEwpOworCiAgIC8qIENhY2hlIFRZUEVfTEVOR1RI IGZvciBmdXR1cmUgdXNlLiAgKi8KICAgVFlQRV9MRU5HVEggKG9yaWdfdHlw ZSkgPSBUWVBFX0xFTkdUSCAodHlwZSk7CisKICAgcmV0dXJuIHR5cGU7CiB9 CiAKSW5kZXg6IHRlc3RzdWl0ZS9nZGIuY3AvcHR5cGUtY3YtY3AuY2MKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogdGVzdHN1aXRlL2dkYi5j cC9wdHlwZS1jdi1jcC5jYwpkaWZmIC1OIHRlc3RzdWl0ZS9nZGIuY3AvcHR5 cGUtY3YtY3AuY2MKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAw IC0wMDAwCisrKyB0ZXN0c3VpdGUvZ2RiLmNwL3B0eXBlLWN2LWNwLmNjCTE0 IE9jdCAyMDEwIDAwOjMzOjMyIC0wMDAwCkBAIC0wLDAgKzEsMTcgQEAKK3R5 cGVkZWYgaW50IG15X2ludDsKK3R5cGVkZWYgY29uc3QgbXlfaW50IGNvbnN0 X215X2ludDsKK3R5cGVkZWYgdm9sYXRpbGUgbXlfaW50IHZvbGF0aWxlX215 X2ludDsKK3R5cGVkZWYgdm9sYXRpbGUgY29uc3RfbXlfaW50IHZvbGF0aWxl X2NvbnN0X215X2ludDsKK3R5cGVkZWYgY29uc3Qgdm9sYXRpbGVfbXlfaW50 IGNvbnN0X3ZvbGF0aWxlX215X2ludDsKKworbXlfaW50IHZfbXlfaW50ICgw KTsKK2NvbnN0X215X2ludCB2X2NvbnN0X215X2ludCAoMSk7Cit2b2xhdGls ZV9teV9pbnQgdl92b2xhdGlsZV9teV9pbnQgKDIpOworY29uc3Rfdm9sYXRp bGVfbXlfaW50IHZfY29uc3Rfdm9sYXRpbGVfbXlfaW50ICgzKTsKK3ZvbGF0 aWxlX2NvbnN0X215X2ludCB2X3ZvbGF0aWxlX2NvbnN0X215X2ludCAoNCk7 CisKK2ludAorbWFpbiAoKQoreworICByZXR1cm4gMDsKK30KSW5kZXg6IHRl c3RzdWl0ZS9nZGIuY3AvcHR5cGUtY3YtY3AuZXhwCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IHRlc3RzdWl0ZS9nZGIuY3AvcHR5cGUtY3Yt Y3AuZXhwCmRpZmYgLU4gdGVzdHN1aXRlL2dkYi5jcC9wdHlwZS1jdi1jcC5l eHAKLS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisr KyB0ZXN0c3VpdGUvZ2RiLmNwL3B0eXBlLWN2LWNwLmV4cAkxNCBPY3QgMjAx MCAwMDozMzozMiAtMDAwMApAQCAtMCwwICsxLDQxIEBACisjIENvcHlyaWdo dCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisj IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCisjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBnZGIg dGVzdHN1aXRlLgorCitpZiB7IFtza2lwX2NwbHVzX3Rlc3RzXSB9IHsgY29u dGludWUgfQorCitzZXQgdGVzdGZpbGUgInB0eXBlLWN2LWNwIgorc2V0IHNy Y2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKworaWYgeyBbcHJlcGFyZV9mb3JfdGVz dGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSB7 ZGVidWcgYysrfV0gfSB7CisgICAgcmV0dXJuIC0xCit9CisKK2dkYl90ZXN0 ICJ3aGF0aXMgdl9teV9pbnQiICJteV9pbnQiCitnZGJfdGVzdCAicHR5cGUg dl9teV9pbnQiICJpbnQiCisKK2dkYl90ZXN0ICJ3aGF0aXMgdl9jb25zdF9t eV9pbnQiICJjb25zdF9teV9pbnQiCitnZGJfdGVzdCAicHR5cGUgdl9jb25z dF9teV9pbnQiICJjb25zdCBpbnQiCisKK2dkYl90ZXN0ICJ3aGF0aXMgdl92 b2xhdGlsZV9teV9pbnQiICJ2b2xhdGlsZV9teV9pbnQiCitnZGJfdGVzdCAi cHR5cGUgdl92b2xhdGlsZV9teV9pbnQiICJ2b2xhdGlsZSBpbnQiCisKK2dk Yl90ZXN0ICJ3aGF0aXMgdl9jb25zdF92b2xhdGlsZV9teV9pbnQiICJjb25z dF92b2xhdGlsZV9teV9pbnQiCitnZGJfdGVzdCAicHR5cGUgdl9jb25zdF92 b2xhdGlsZV9teV9pbnQiICJjb25zdCB2b2xhdGlsZSBpbnQiCisKK2dkYl90 ZXN0ICJ3aGF0aXMgdl92b2xhdGlsZV9jb25zdF9teV9pbnQiICJ2b2xhdGls ZV9jb25zdF9teV9pbnQiCitzZXR1cF9rZmFpbCAiZ2NjLzQ1OTk3IiAqLSot KgorZ2RiX3Rlc3QgInB0eXBlIHZfdm9sYXRpbGVfY29uc3RfbXlfaW50IiAi Y29uc3Qgdm9sYXRpbGUgaW50Igo= --001636285182b815c9049289ff82--