From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26761 invoked by alias); 29 Jun 2010 17:07:40 -0000 Received: (qmail 26743 invoked by uid 22791); 29 Jun 2010 17:07:37 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KAM_STOCKGEN,SPF_HELO_PASS,TW_BJ,TW_GD,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; Tue, 29 Jun 2010 17:07:13 +0000 Received: from wpaz37.hot.corp.google.com (wpaz37.hot.corp.google.com [172.24.198.101]) by smtp-out.google.com with ESMTP id o5TH7Boh002576 for ; Tue, 29 Jun 2010 10:07:11 -0700 Received: from vws8 (vws8.prod.google.com [10.241.21.136]) by wpaz37.hot.corp.google.com with ESMTP id o5TH5xDf027897 for ; Tue, 29 Jun 2010 10:07:10 -0700 Received: by vws8 with SMTP id 8so4318415vws.8 for ; Tue, 29 Jun 2010 10:07:10 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.128.203 with SMTP id l11mr4008511vcs.265.1277831227190; Tue, 29 Jun 2010 10:07:07 -0700 (PDT) Received: by 10.220.194.193 with HTTP; Tue, 29 Jun 2010 10:07:07 -0700 (PDT) In-Reply-To: <20100628110222.GA21051@host0.dyn.jankratochvil.net> References: <20100627182442.AF5CA84613@ruffy.mtv.corp.google.com> <20100628110222.GA21051@host0.dyn.jankratochvil.net> Date: Tue, 29 Jun 2010 17:07:00 -0000 Message-ID: Subject: Re: [RFA] Fix PR gdb/11702, printing of static const member variables From: Doug Evans To: Jan Kratochvil Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=e0cb4e887c8d612fca048a2e4438 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-06/txt/msg00677.txt.bz2 --e0cb4e887c8d612fca048a2e4438 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3274 On Mon, Jun 28, 2010 at 4:02 AM, Jan Kratochvil wrote: > On Sun, 27 Jun 2010 20:24:42 +0200, Doug Evans wrote: >> btw, the dwarf4 standard, as I read it, says static member variables are >> identified by having DW_AT_external. =A0[4.1 Data Object Entries] >> However, dwarf2_add_field is calling die_is_declaration. > > echo 'class C { static const float i =3D 1; } c;'|g++ -c -o 1.o -Wall -g = -x c++ - > =A0 =A0< c> =A0 DW_AT_producer =A0 =A0: (indirect string, offset: 0x11): = GNU C++ 4.6.0 20100628 (experimental) > =A0<2><33>: Abbrev Number: 3 (DW_TAG_member) > =A0 =A0<34> =A0 DW_AT_name =A0 =A0 =A0 =A0: i > =A0 =A0<38> =A0 DW_AT_type =A0 =A0 =A0 =A0: <0x45> > =A0 =A0<3c> =A0 DW_AT_external =A0 =A0: 1 > =A0 =A0<3d> =A0 DW_AT_accessibility: 3 =A0 =A0 =A0 (private) > =A0 =A0<3e> =A0 DW_AT_declaration : 1 > =A0 =A0<3f> =A0 DW_AT_const_value : 4 byte block: 0 0 80 3f > > Isn't it primarily a bug in GCC? =A0There is no other DIE for `i' and it = is > a complete definition so there is no place for DW_AT_declaration there. > > Just such GCC change will be incompatible with existing GDBs, maybe to ma= ke > the GCC change only for -gdwarf-4 upwards which is incompatible with older > GDBs anyway? I guess one can think of it as two separate issues: What does gcc emit and what does gdb look for. I was *only* addressing the latter. You are correct that if gcc stopped emitting DW_AT_declaration (assuming that's the correct thing to do), then enabling it via some flag in order to not break debugging with older debuggers would be reasonable (although if the context is just static const member variables - they're completely broken in gdb 7.1 anyway, and perhaps all the older gdb's that we care about). It may be too late to add such a change to -gdwarf-4, I'm not sure. [And, for completeness sake, there's the issue of needing to consider what other compilers gdb is used with.] >> This seems wrong, but I didn't address this here, other than to add >> a note pointing this out (because some new code in new_symbol should mat= ch). > > I agree it is an issue for a different patch. > > >> Also, I added a case to new_symbol to handle DW_TAG_member. >> gcc uses DW_TAG_variable but the correct way AIUI is DW_TAG_member, > > 4.4.5 20100627 uses DW_TAG_variable but 4.5.1 20100627 uses DW_TAG_member. > > > Otherwise - for the second patch - there are some needless whitespace cha= nges. > Also I would test also `float' const field there using LOC_CONST_BYTES; it > works but just to test it, based on your IRC comments about LOC_CONST_BYT= ES. I have committed the following. I'll update the pr shortly. 2010-06-29 Doug Evans PR c++/11702 * NEWS: Add entry. * dwarf2read.c (dwarf2_add_field): If DW_AT_const_value is present, create a symbol for the field and record the value. (new_symbol): Handle DW_TAG_member. * gdbtypes.c (field_is_static): Remove FIXME. * symtab.c (search_symbols): When searching for VARIABLES_DOMAIN, only ignore LOC_CONST symbols that are enums. testsuite/ Test PR c++/11702. * gdb.cp/m-static.exp: Add testcase. * gdb.cp/m-static.h (gnu_obj_4): Add initialized static const membe= r. --e0cb4e887c8d612fca048a2e4438 Content-Type: text/plain; charset=US-ASCII; name="gdb-100629-static-const-member-3.patch.txt" Content-Disposition: attachment; filename="gdb-100629-static-const-member-3.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gb0zm9mn0 Content-length: 10704 MjAxMC0wNi0yOSAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCVBS IGMrKy8xMTcwMgoJKiBORVdTOiBBZGQgZW50cnkuCgkqIGR3YXJmMnJlYWQu YyAoZHdhcmYyX2FkZF9maWVsZCk6IElmIERXX0FUX2NvbnN0X3ZhbHVlIGlz IHByZXNlbnQsCgljcmVhdGUgYSBzeW1ib2wgZm9yIHRoZSBmaWVsZCBhbmQg cmVjb3JkIHRoZSB2YWx1ZS4KCShuZXdfc3ltYm9sKTogSGFuZGxlIERXX1RB R19tZW1iZXIuCgkqIGdkYnR5cGVzLmMgKGZpZWxkX2lzX3N0YXRpYyk6IFJl bW92ZSBGSVhNRS4KCSogc3ltdGFiLmMgKHNlYXJjaF9zeW1ib2xzKTogV2hl biBzZWFyY2hpbmcgZm9yIFZBUklBQkxFU19ET01BSU4sCglvbmx5IGlnbm9y ZSBMT0NfQ09OU1Qgc3ltYm9scyB0aGF0IGFyZSBlbnVtcy4KCgl0ZXN0c3Vp dGUvCglUZXN0IFBSIGMrKy8xMTcwMi4KCSogZ2RiLmNwL20tc3RhdGljLmV4 cDogQWRkIHRlc3RjYXNlLgoJKiBnZGIuY3AvbS1zdGF0aWMuaCAoZ251X29i al80KTogQWRkIGluaXRpYWxpemVkIHN0YXRpYyBjb25zdCBtZW1iZXIuCgpJ bmRleDogTkVXUwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv Y3ZzL3NyYy9zcmMvZ2RiL05FV1MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu Mzg4CmRpZmYgLXUgLXAgLXIxLjM4OCBORVdTCi0tLSBORVdTCTI4IEp1biAy MDEwIDIxOjE2OjAyIC0wMDAwCTEuMzg4CisrKyBORVdTCTI5IEp1biAyMDEw IDE2OjQ1OjU2IC0wMDAwCkBAIC0zMiw2ICszMiwxMSBAQAogICBHREIgbm93 IGFsc28gc3VwcG9ydHMgcHJvcGVyIG92ZXJsb2FkIHJlc29sdXRpb24gZm9y IGFsbCB0aGUgcHJldmlvdXNseQogICBtZW50aW9uZWQgZmxhdm9ycyBvZiBv cGVyYXRvcnMuCiAKKyAgKiogc3RhdGljIGNvbnN0IGNsYXNzIG1lbWJlcnMK KworICBQcmludGluZyBvZiBzdGF0aWMgY29uc3QgY2xhc3MgbWVtYmVycyB0 aGF0IGFyZSBpbml0aWFsaXplZCBpbiB0aGUKKyAgY2xhc3MgZGVmaW5pdGlv biBoYXMgYmVlbiBmaXhlZC4KKwogKiBXaW5kb3dzIFRocmVhZCBJbmZvcm1h dGlvbiBCbG9jayBhY2Nlc3MuCiAKICAgT24gV2luZG93cyB0YXJnZXRzLCBH REIgbm93IHN1cHBvcnRzIGRpc3BsYXlpbmcgdGhlIFdpbmRvd3MgVGhyZWFk CkluZGV4OiBkd2FyZjJyZWFkLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS Q1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9kd2FyZjJyZWFkLmMsdgpyZXRy aWV2aW5nIHJldmlzaW9uIDEuNDA3CmRpZmYgLXUgLXAgLXIxLjQwNyBkd2Fy ZjJyZWFkLmMKLS0tIGR3YXJmMnJlYWQuYwkyOSBKdW4gMjAxMCAxNjozNToy OCAtMDAwMAkxLjQwNworKysgZHdhcmYycmVhZC5jCTI5IEp1biAyMDEwIDE2 OjQ1OjU2IC0wMDAwCkBAIC00NTI4LDYgKzQ1MjgsMTEgQEAgZHdhcmYyX2Fk ZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcAogCiAgIGZwID0gJm5l d19maWVsZC0+ZmllbGQ7CiAKKyAgLyogTk9URTogQWNjb3JkaW5nIHRvIHRo ZSBkd2FyZiBzdGFuZGFyZCwgc3RhdGljIGRhdGEgbWVtYmVycyBhcmUKKyAg ICAgaW5kaWNhdGVkIGJ5IGhhdmluZyBEV19BVF9leHRlcm5hbC4KKyAgICAg VGhlIGNoZWNrIGhlcmUgZm9yICEgZGllX2lzX2RlY2xhcmF0aW9uIGlzIGhp c3RvcmljYWwuCisgICAgIFRoaXMgdGVzdCBpcyByZXBsaWNhdGVkIGluIG5l d19zeW1ib2wuICAqLworCiAgIGlmIChkaWUtPnRhZyA9PSBEV19UQUdfbWVt YmVyICYmICEgZGllX2lzX2RlY2xhcmF0aW9uIChkaWUsIGN1KSkKICAgICB7 CiAgICAgICAvKiBEYXRhIG1lbWJlciBvdGhlciB0aGFuIGEgQysrIHN0YXRp YyBkYXRhIG1lbWJlci4gICovCkBAIC00NjQzLDYgKzQ2NDgsMTQgQEAgZHdh cmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcAogICAgICAg aWYgKGZpZWxkbmFtZSA9PSBOVUxMKQogCXJldHVybjsKIAorICAgICAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2NvbnN0X3ZhbHVlLCBjdSk7 CisgICAgICBpZiAoYXR0cikKKwl7CisJICAvKiBBIHN0YXRpYyBjb25zdCBt ZW1iZXIsIG5vdCBtdWNoIGRpZmZlcmVudCB0aGFuIGFuIGVudW0gYXMgZmFy IGFzCisJICAgICB3ZSdyZSBjb25jZXJuZWQsIGV4Y2VwdCB0aGF0IHdlIGNh biBzdXBwb3J0IG1vcmUgdHlwZXMuICAqLworCSAgbmV3X3N5bWJvbCAoZGll LCBOVUxMLCBjdSk7CisJfQorCiAgICAgICAvKiBHZXQgcGh5c2ljYWwgbmFt ZS4gICovCiAgICAgICBwaHlzbmFtZSA9IChjaGFyICopIGR3YXJmMl9waHlz bmFtZSAoZmllbGRuYW1lLCBkaWUsIGN1KTsKIApAQCAtODgyNCw2ICs4ODM3 LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dAogCSAgICAgQkxPQ0tfRlVOQ1RJT04gZnJvbSB0aGUgYmxvY2t2ZWN0b3Iu ICAqLwogCSAgYnJlYWs7CiAJY2FzZSBEV19UQUdfdmFyaWFibGU6CisJY2Fz ZSBEV19UQUdfbWVtYmVyOgogCSAgLyogQ29tcGlsYXRpb24gd2l0aCBtaW5p bWFsIGRlYnVnIGluZm8gbWF5IHJlc3VsdCBpbiB2YXJpYWJsZXMKIAkgICAg IHdpdGggbWlzc2luZyB0eXBlIGVudHJpZXMuIENoYW5nZSB0aGUgbWlzbGVh ZGluZyBgdm9pZCcgdHlwZQogCSAgICAgdG8gc29tZXRoaW5nIHNlbnNpYmxl LiAgKi8KQEAgLTg4MzIsNiArODg0NiwxNyBAQCBuZXdfc3ltYm9sIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0CiAJICAgICAgPSBvYmpmaWxlX3R5 cGUgKG9iamZpbGUpLT5ub2RlYnVnX2RhdGFfc3ltYm9sOwogCiAJICBhdHRy ID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY29uc3RfdmFsdWUsIGN1KTsK KwkgIC8qIEluIHRoZSBjYXNlIG9mIERXX1RBR19tZW1iZXIsIHdlIHNob3Vs ZCBvbmx5IGJlIGNhbGxlZCBmb3IKKwkgICAgIHN0YXRpYyBjb25zdCBtZW1i ZXJzLiAgKi8KKwkgIGlmIChkaWUtPnRhZyA9PSBEV19UQUdfbWVtYmVyKQor CSAgICB7CisJICAgICAgLyogTk9URTogVGhpcyB0ZXN0IHNlZW1zIHdyb25n IGFjY29yZGluZyB0byB0aGUgZHdhcmYgc3RhbmRhcmQuCisJCSBzdGF0aWMg ZGF0YSBtZW1iZXJzIGFyZSByZXByZXNlbnRlZCBieSBEV19BVF9leHRlcm5h bC4KKwkJIEhvd2V2ZXIsIGR3YXJmMl9hZGRfZmllbGQgaXMgY3VycmVudGx5 IGNhbGxpbmcKKwkJIGRpZV9pc19kZWNsYXJhdGlvbiB0byBjaGVjaywgc28g d2UgZG8gdGhlIHNhbWUuICAqLworCSAgICAgIGdkYl9hc3NlcnQgKGRpZV9p c19kZWNsYXJhdGlvbiAoZGllLCBjdSkpOworCSAgICAgIGdkYl9hc3NlcnQg KGF0dHIpOworCSAgICB9CiAJICBpZiAoYXR0cikKIAkgICAgewogCSAgICAg IGR3YXJmMl9jb25zdF92YWx1ZSAoYXR0ciwgc3ltLCBjdSk7CkluZGV4OiBn ZGJ0eXBlcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j dnMvc3JjL3NyYy9nZGIvZ2RidHlwZXMuYyx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS4xOTMKZGlmZiAtdSAtcCAtcjEuMTkzIGdkYnR5cGVzLmMKLS0tIGdk YnR5cGVzLmMJMjggSnVuIDIwMTAgMjA6MTI6NTIgLTAwMDAJMS4xOTMKKysr IGdkYnR5cGVzLmMJMjkgSnVuIDIwMTAgMTY6NDU6NTYgLTAwMDAKQEAgLTI1 MTIsOSArMjUxMiw3IEBAIGZpZWxkX2lzX3N0YXRpYyAoc3RydWN0IGZpZWxk ICpmKQogICAgICB0byB0aGUgYWRkcmVzcyBvZiB0aGUgZW5jbG9zaW5nIHN0 cnVjdC4gIEl0IHdvdWxkIGJlIG5pY2UgdG8KICAgICAgaGF2ZSBhIGRlZGlj YXRlZCBmbGFnIHRoYXQgd291bGQgYmUgc2V0IGZvciBzdGF0aWMgZmllbGRz IHdoZW4KICAgICAgdGhlIHR5cGUgaXMgYmVpbmcgY3JlYXRlZC4gIEJ1dCBp biBwcmFjdGljZSwgY2hlY2tpbmcgdGhlIGZpZWxkCi0gICAgIGxvY19raW5k IHNob3VsZCBnaXZlIHVzIGFuIGFjY3VyYXRlIGFuc3dlciAoYXQgbGVhc3Qg YXMgbG9uZyBhcwotICAgICB3ZSBhc3N1bWUgdGhhdCBEV0FSRiBibG9jayBs b2NhdGlvbnMgYXJlIG5vdCBnb2luZyB0byBiZSB1c2VkCi0gICAgIGZvciBz dGF0aWMgZmllbGRzKS4gIEZJWE1FPyAgKi8KKyAgICAgbG9jX2tpbmQgc2hv dWxkIGdpdmUgdXMgYW4gYWNjdXJhdGUgYW5zd2VyLiAgKi8KICAgcmV0dXJu IChGSUVMRF9MT0NfS0lORCAoKmYpID09IEZJRUxEX0xPQ19LSU5EX1BIWVNO QU1FCiAJICB8fCBGSUVMRF9MT0NfS0lORCAoKmYpID09IEZJRUxEX0xPQ19L SU5EX1BIWVNBRERSKTsKIH0KSW5kZXg6IHN5bXRhYi5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvc3ltdGFi LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjM5CmRpZmYgLXUgLXAgLXIx LjIzOSBzeW10YWIuYwotLS0gc3ltdGFiLmMJMjggSnVuIDIwMTAgMjA6MzU6 NTIgLTAwMDAJMS4yMzkKKysrIHN5bXRhYi5jCTI5IEp1biAyMDEwIDE2OjQ1 OjU2IC0wMDAwCkBAIC0zMDU3LDEwICszMDU3LDE1IEBAIHNlYXJjaF9zeW1i b2xzIChjaGFyICpyZWdleHAsIGRvbWFpbl9lbnUKIAkgICAgICBpZiAoZmls ZV9tYXRjaGVzIChyZWFsX3N5bXRhYi0+ZmlsZW5hbWUsIGZpbGVzLCBuZmls ZXMpCiAJCSAgJiYgKChyZWdleHAgPT0gTlVMTAogCQkgICAgICAgfHwgcmVf ZXhlYyAoU1lNQk9MX05BVFVSQUxfTkFNRSAoc3ltKSkgIT0gMCkKLQkJICAg ICAgJiYgKChraW5kID09IFZBUklBQkxFU19ET01BSU4gJiYgU1lNQk9MX0NM QVNTIChzeW0pICE9IExPQ19UWVBFREVGCisJCSAgICAgICYmICgoa2luZCA9 PSBWQVJJQUJMRVNfRE9NQUlOCisJCQkgICAmJiBTWU1CT0xfQ0xBU1MgKHN5 bSkgIT0gTE9DX1RZUEVERUYKIAkJCSAgICYmIFNZTUJPTF9DTEFTUyAoc3lt KSAhPSBMT0NfVU5SRVNPTFZFRAogCQkJICAgJiYgU1lNQk9MX0NMQVNTIChz eW0pICE9IExPQ19CTE9DSwotCQkJICAgJiYgU1lNQk9MX0NMQVNTIChzeW0p ICE9IExPQ19DT05TVCkKKwkJCSAgIC8qIExPQ19DT05TVCBjYW4gYmUgdXNl ZCBmb3IgbW9yZSB0aGFuIGp1c3QgZW51bXMsCisJCQkgICAgICBlLmcuLCBj Kysgc3RhdGljIGNvbnN0IG1lbWJlcnMuCisJCQkgICAgICBXZSBvbmx5IHdh bnQgdG8gc2tpcCBlbnVtcyBoZXJlLiAgKi8KKwkJCSAgICYmICEoU1lNQk9M X0NMQVNTIChzeW0pID09IExPQ19DT05TVAorCQkJCSYmIFRZUEVfQ09ERSAo U1lNQk9MX1RZUEUgKHN5bSkpID09IFRZUEVfQ09ERV9FTlVNKSkKIAkJCSAg fHwgKGtpbmQgPT0gRlVOQ1RJT05TX0RPTUFJTiAmJiBTWU1CT0xfQ0xBU1Mg KHN5bSkgPT0gTE9DX0JMT0NLKQogCQkJICB8fCAoa2luZCA9PSBUWVBFU19E T01BSU4gJiYgU1lNQk9MX0NMQVNTIChzeW0pID09IExPQ19UWVBFREVGKSkp KQogCQl7CkluZGV4OiB0ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGljLmV4cAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMv Z2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuZXhwLHYKcmV0cmlldmlu ZyByZXZpc2lvbiAxLjEyCmRpZmYgLXUgLXAgLXIxLjEyIG0tc3RhdGljLmV4 cAotLS0gdGVzdHN1aXRlL2dkYi5jcC9tLXN0YXRpYy5leHAJMjcgSnVuIDIw MTAgMTc6MTk6NTQgLTAwMDAJMS4xMgorKysgdGVzdHN1aXRlL2dkYi5jcC9t LXN0YXRpYy5leHAJMjkgSnVuIDIwMTAgMTY6NDU6NTYgLTAwMDAKQEAgLTU2 LDEyICs1NiwxNCBAQCBnZGJfc3RhcnQKIGdkYl9yZWluaXRpYWxpemVfZGly ICRzcmNkaXIvJHN1YmRpcgogZ2RiX2xvYWQgJHtiaW5maWxlfQogCi0KIGlm ICFbcnVudG9fbWFpbl0gdGhlbiB7CiAgICAgcGVycm9yICJjb3VsZG4ndCBy dW4gdG8gYnJlYWtwb2ludCIKICAgICBjb250aW51ZQogfQogCitnZXRfZGVi dWdfZm9ybWF0CitzZXQgbm9uX2R3YXJmIFtleHByICEgW3Rlc3RfZGVidWdf Zm9ybWF0ICJEV0FSRiAyIl1dCisKICMgRmlyc3QsIHJ1biB0byBhZnRlciB3 ZSd2ZSBjb25zdHJ1Y3RlZCBhbGwgdGhlIG9iamVjdHM6CiAKIGdkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJjb25zdHJ1Y3RzLWRvbmUi XQpAQCAtMTI1LDYgKzEyNywxNiBAQCBnZGJfdGVzdCAicHJpbnQgdGVzdDQu ZWxzZXdoZXJlIiAiXFwkXFswCiAjIHN0YXRpYyBjb25zdCBpbnQgdGhhdCBu b2JvZHkgaW5pdGlhbGl6ZXMuICBGcm9tIFBSIGdkYi82MzUuCiBnZGJfdGVz dCAicHJpbnQgdGVzdDQubm93aGVyZSIgImZpZWxkIG5vd2hlcmUgaXMgbm9u ZXhpc3RlbnQgb3IgaGFzIGJlZW4gb3B0aW1pemVkIG91dCIgInN0YXRpYyBj b25zdCBpbnQgaW5pdGlhbGl6ZWQgbm93aGVyZSIKIAorIyBzdGF0aWMgY29u c3QgaW5pdGlhbGl6ZWQgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24sIFBSIGdk Yi8xMTcwMi4KK2lmIHsgJG5vbl9kd2FyZiB9IHsgc2V0dXBfeGZhaWwgKi0q LSogfQorZ2RiX3Rlc3QgInByaW50IHRlc3Q0LmV2ZXJ5d2hlcmUiICJcXCRc WzAtOVxdLiogPSAzMTciICJzdGF0aWMgY29uc3QgaW50IGluaXRpYWxpemVk IGluIGNsYXNzIGRlZmluaXRpb24iCitpZiB7ICRub25fZHdhcmYgfSB7IHNl dHVwX3hmYWlsICotKi0qIH0KK2dkYl90ZXN0ICJwcmludCB0ZXN0NC5zb21l d2hlcmUiICJcXCRcWzAtOVxdLiogPSAzLjE0XFswLTlcXSoiICJzdGF0aWMg Y29uc3QgZmxvYXQgaW5pdGlhbGl6ZWQgaW4gY2xhc3MgZGVmaW5pdGlvbiIK KworIyBBbHNvIG1ha2Ugc3VyZSBzdGF0aWMgY29uc3QgbWVtYmVycyBjYW4g YmUgZm91bmQgdmlhICJpbmZvIHZhciIuCitpZiB7ICRub25fZHdhcmYgfSB7 IHNldHVwX3hmYWlsICotKi0qIH0KK2dkYl90ZXN0ICJpbmZvIHZhcmlhYmxl IGV2ZXJ5d2hlcmUiICJGaWxlIC4qL20tc3RhdGljXFsuXF1oLipjb25zdCBp bnQgZ251X29ial80OjpldmVyeXdoZXJlOyIgImluZm8gdmFyaWFibGUgZXZl cnl3aGVyZSIKKwogIyBQZXJoYXBzIGF0IHNvbWUgcG9pbnQgdGVzdDQgc2hv dWxkIGFsc28gaW5jbHVkZSBhIHRlc3QgZm9yIGEgc3RhdGljCiAjIGNvbnN0 IGludCB0aGF0IHdhcyBpbml0aWFsaXplZCBpbiB0aGUgaGVhZGVyIGZpbGUu ICBCdXQgSSdtIG5vdCBzdXJlCiAjIHRoYXQgR0RCJ3MgY3VycmVudCBiZWhh dmlvciBpbiBzdWNoIHNpdHVhdGlvbnMgaXMgZWl0aGVyIGNvbnNpc3RlbnQK SW5kZXg6IHRlc3RzdWl0ZS9nZGIuY3AvbS1zdGF0aWMuaAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvbS1zdGF0aWMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g MS4yCmRpZmYgLXUgLXAgLXIxLjIgbS1zdGF0aWMuaAotLS0gdGVzdHN1aXRl L2dkYi5jcC9tLXN0YXRpYy5oCTUgTWF5IDIwMDYgMTg6MDQ6MDkgLTAwMDAJ MS4yCisrKyB0ZXN0c3VpdGUvZ2RiLmNwL20tc3RhdGljLmgJMjkgSnVuIDIw MTAgMTY6NDU6NTYgLTAwMDAKQEAgLTUsOCArNSw4IEBAIGNsYXNzIGdudV9v YmpfNAogIHB1YmxpYzoKICAgc3RhdGljIGNvbnN0IGludCBlbHNld2hlcmU7 CiAgIHN0YXRpYyBjb25zdCBpbnQgbm93aGVyZTsKLSAgLy8gQXQgc29tZSBw b2ludCwgcGVyaGFwczoKLSAgLy8gc3RhdGljIGNvbnN0IGludCBldmVyeXdo ZXJlID0gMzE3OworICBzdGF0aWMgY29uc3QgaW50IGV2ZXJ5d2hlcmUgPSAz MTc7CisgIHN0YXRpYyBjb25zdCBmbG9hdCBzb21ld2hlcmUgPSAzLjE0MTU5 OwogCiAgIC8vIHRyeSB0byBlbnN1cmUgdGVzdDQgaXMgYWN0dWFsbHkgYWxs b2NhdGVkCiAgIGludCBkdW1teTsK --e0cb4e887c8d612fca048a2e4438--