From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1827 invoked by alias); 6 May 2012 20:07:08 -0000 Received: (qmail 1808 invoked by uid 22791); 6 May 2012 20:07:06 -0000 X-SWARE-Spam-Status: No, hits=-5.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-qc0-f175.google.com (HELO mail-qc0-f175.google.com) (209.85.216.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 06 May 2012 20:06:51 +0000 Received: by qcso7 with SMTP id o7so2897425qcs.20 for ; Sun, 06 May 2012 13:06:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.183.132 with SMTP id cg4mr21393142qab.81.1336334811016; Sun, 06 May 2012 13:06:51 -0700 (PDT) Received: by 10.229.85.197 with HTTP; Sun, 6 May 2012 13:06:50 -0700 (PDT) In-Reply-To: <4F4E3C66.2000500@redhat.com> References: <4F4D410A.4090409@redhat.com> <4F4E3C66.2000500@redhat.com> Date: Sun, 06 May 2012 20:07:00 -0000 Message-ID: Subject: Re: [C++ Patch] for c++/51214 From: =?ISO-8859-1?Q?Fabien_Ch=EAne?= To: Jason Merrill Cc: GCC Patches Content-Type: multipart/mixed; boundary=20cf302ef74cb62eda04bf63b1d5 X-IsSubscribed: yes 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 X-SW-Source: 2012-05/txt/msg00428.txt.bz2 --20cf302ef74cb62eda04bf63b1d5 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1909 2012/2/29 Jason Merrill : > On 02/28/2012 05:06 PM, Fabien Ch=EAne wrote: >> >> I agree, this is not efficient but I didn't find a better place. >> perhaps in cp_parser_enumerator_list, =A0that would require adding an >> additional parameter to keep track of all the enum DECLs. Is it what >> you have in mind ? > > I was thinking of finish_enum_value_list. OK great. I have tried to reuse the existing infrastructure to extend the CLASSTYPE_SORTED_FIELDS, unfortunately, it does not seem possible because the code uses a tree chain (chained with DECL_CHAIN), and this field is already used for enum values to store the enum type. Among various possibilities, in the end, I think it is clearer to handle the lately defined enum case separately. That is what I have done in the attached patch. >> Unqualified lookup works because when the type is not complete, the >> lookup uses the non sorted case, which always works. > > OK, just make sure we have a test for that. I have added a check in forw_enum11.C for that. Boostrapped and tested on x86_64-unknown-linux-gnu, OK to commit ? gcc/testsuite/ChangeLog 2012-05-06 Fabien Ch=EAne PR c++/51214 * g++.dg/cpp0x/forw_enum11.C: New. gcc/cp/ChangeLog 2012-05-06 Fabien Ch=EAne PR c++/51214 * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields): Declare. * class.c (insert_into_classtype_sorted_fields): New. (add_enum_fields_to_record_type): New. (count_fields): Adjust the comment. (add_fields_to_record_type): Likewise. (finish_struct_1): Move the code that inserts the fields for the sorted case, into insert_into_classtype_sorted_fields, and call it. (insert_late_enum_def_into_classtype_sorted_fields): Define. * decl.c (finish_enum_value_list): Call insert_late_enum_def_into_classtype_sorted_fields if a late enum definition is encountered. --=20 Fabien --20cf302ef74cb62eda04bf63b1d5 Content-Type: application/octet-stream; name="pr51214.patch" Content-Disposition: attachment; filename="pr51214.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h1wj59td0 Content-length: 10131 SW5kZXg6IHRlc3RzdWl0ZS9nKysuZGcvY3BwMHgvZm9yd19lbnVtMTEuQwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUvZysrLmRnL2Nw cDB4L2ZvcndfZW51bTExLkMJKHJldmlzaW9uIDApCisrKyB0ZXN0c3VpdGUv ZysrLmRnL2NwcDB4L2ZvcndfZW51bTExLkMJKHJldmlzaW9uIDApCkBAIC0w LDAgKzEsMjMgQEAKKy8vIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCBjKysx MSB9IH0KKworZW51bSB7IEEgPSAxIH07CitzdHJ1Y3QgVAoreworICBpbnQg aTEsIGkyLCBpMywgaTQsIGk1LCBpNiwgaTc7CisgIGVudW0gRTIgOiBpbnQ7 CisKKyAgdm9pZCBmKCk7Cit9OworCitlbnVtIFQ6OkUyIDogaW50IHsgQTEg PSBBLCBBMiA9IDIzIH07CisKK3N0YXRpY19hc3NlcnQoaW50KFQ6OkExKSA9 PSAxLCAiZXJyb3IiKTsKK3N0YXRpY19hc3NlcnQoaW50KFQ6OkEyKSA9PSAy MywgImVycm9yIik7CisKK3ZvaWQgVDo6ZigpCit7CisgIHN0YXRpY19hc3Nl cnQoaW50KFQ6OkExKSA9PSAxLCAiZXJyb3IiKTsKKyAgc3RhdGljX2Fzc2Vy dChpbnQoVDo6QTIpID09IDIzLCAiZXJyb3IiKTsKKyAgc3RhdGljX2Fzc2Vy dChpbnQoQTEpID09IDEsICJlcnJvciIpOworICBzdGF0aWNfYXNzZXJ0KGlu dChBMikgPT0gMjMsICJlcnJvciIpOworfQpJbmRleDogY3AvY2xhc3MuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjcC9jbGFzcy5jCShyZXZpc2lv biAxODY2NzQpCisrKyBjcC9jbGFzcy5jCSh3b3JraW5nIGNvcHkpCkBAIC0x MzksNiArMTM5LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfdnRibF9pbml0aWFs aXplciAodHJlZQogCQkJCSAgICBWRUMoY29uc3RydWN0b3JfZWx0LGdjKSAq Kik7CiBzdGF0aWMgaW50IGNvdW50X2ZpZWxkcyAodHJlZSk7CiBzdGF0aWMg aW50IGFkZF9maWVsZHNfdG9fcmVjb3JkX3R5cGUgKHRyZWUsIHN0cnVjdCBz b3J0ZWRfZmllbGRzX3R5cGUqLCBpbnQpOworc3RhdGljIHZvaWQgaW5zZXJ0 X2ludG9fY2xhc3N0eXBlX3NvcnRlZF9maWVsZHMgKHRyZWUsIHRyZWUsIGlu dCk7CiBzdGF0aWMgYm9vbCBjaGVja19iaXRmaWVsZF9kZWNsICh0cmVlKTsK IHN0YXRpYyB2b2lkIGNoZWNrX2ZpZWxkX2RlY2wgKHRyZWUsIHRyZWUsIGlu dCAqLCBpbnQgKiwgaW50ICopOwogc3RhdGljIHZvaWQgY2hlY2tfZmllbGRf ZGVjbHMgKHRyZWUsIHRyZWUgKiwgaW50ICosIGludCAqKTsKQEAgLTI4MzIs OCArMjgzMyw5IEBAIGFkZF9pbXBsaWNpdGx5X2RlY2xhcmVkX21lbWJlcnMg KHRyZWUgdCwKICAgZGVjbGFyZV92aXJ0X2Fzc29wX2FuZF9kdG9yICh0KTsK IH0KIAotLyogU3Vicm91dGluZSBvZiBmaW5pc2hfc3RydWN0XzEuICBSZWN1 cnNpdmVseSBjb3VudCB0aGUgbnVtYmVyIG9mIGZpZWxkcwotICAgaW4gVFlQ RSwgaW5jbHVkaW5nIGFub255bW91cyB1bmlvbiBtZW1iZXJzLiAgKi8KKy8q IFN1YnJvdXRpbmUgb2YgaW5zZXJ0X2ludG9fY2xhc3N0eXBlX3NvcnRlZF9m aWVsZHMuICBSZWN1cnNpdmVseQorICAgY291bnQgdGhlIG51bWJlciBvZiBm aWVsZHMgaW4gVFlQRSwgaW5jbHVkaW5nIGFub255bW91cyB1bmlvbgorICAg bWVtYmVycy4gICovCiAKIHN0YXRpYyBpbnQKIGNvdW50X2ZpZWxkcyAodHJl ZSBmaWVsZHMpCkBAIC0yODUwLDggKzI4NTIsOSBAQCBjb3VudF9maWVsZHMg KHRyZWUgZmllbGRzKQogICByZXR1cm4gbl9maWVsZHM7CiB9CiAKLS8qIFN1 YnJvdXRpbmUgb2YgZmluaXNoX3N0cnVjdF8xLiAgUmVjdXJzaXZlbHkgYWRk IGFsbCB0aGUgZmllbGRzIGluIHRoZQotICAgVFJFRV9MSVNUIEZJRUxEUyB0 byB0aGUgU09SVEVEX0ZJRUxEU19UWVBFIGVsdHMsIHN0YXJ0aW5nIGF0IG9m ZnNldCBJRFguICAqLworLyogU3Vicm91dGluZSBvZiBpbnNlcnRfaW50b19j bGFzc3R5cGVfc29ydGVkX2ZpZWxkcy4gIFJlY3Vyc2l2ZWx5IGFkZAorICAg YWxsIHRoZSBmaWVsZHMgaW4gdGhlIFRSRUVfTElTVCBGSUVMRFMgdG8gdGhl IFNPUlRFRF9GSUVMRFNfVFlQRQorICAgZWx0cywgc3RhcnRpbmcgYXQgb2Zm c2V0IElEWC4gICovCiAKIHN0YXRpYyBpbnQKIGFkZF9maWVsZHNfdG9fcmVj b3JkX3R5cGUgKHRyZWUgZmllbGRzLCBzdHJ1Y3Qgc29ydGVkX2ZpZWxkc190 eXBlICpmaWVsZF92ZWMsIGludCBpZHgpCkBAIC0yODY3LDYgKzI4NzAsMjAg QEAgYWRkX2ZpZWxkc190b19yZWNvcmRfdHlwZSAodHJlZSBmaWVsZHMsCiAg IHJldHVybiBpZHg7CiB9CiAKKy8qIEFkZCBhbGwgdGhlIGZpZWxkcyBpbiB0 aGUgRU5VTV9GSUVMRFMgdG8gdGhlIEZJRUxEX1ZFQyBlbHRzLAorICAgc3Rh cnRpbmcgYXQgb2Zmc2V0IElEWC4gICovCisKK3N0YXRpYyBpbnQKK2FkZF9l bnVtX2ZpZWxkc190b19yZWNvcmRfdHlwZSAoVkVDKHRyZWUsZ2MpKiBlbnVt X2ZpZWxkcywKKwkJCQlzdHJ1Y3Qgc29ydGVkX2ZpZWxkc190eXBlICpmaWVs ZF92ZWMsIGludCBpZHgpCit7CisgIHRyZWUgZW51bV9maWVsZDsKKyAgaW50 IGk7CisgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlKHRyZWUsIGVudW1fZmll bGRzLCBpLCBlbnVtX2ZpZWxkKTsgKytpKQorICAgIGZpZWxkX3ZlYy0+ZWx0 c1tpZHgrK10gPSBlbnVtX2ZpZWxkOworICByZXR1cm4gaWR4OworfQorCiAv KiBGSUVMRCBpcyBhIGJpdC1maWVsZC4gIFdlIGFyZSBmaW5pc2hpbmcgdGhl IHByb2Nlc3NpbmcgZm9yIGl0cwogICAgZW5jbG9zaW5nIHR5cGUuICBJc3N1 ZSBhbnkgYXBwcm9wcmlhdGUgbWVzc2FnZXMgYW5kIHNldCBhcHByb3ByaWF0 ZQogICAgZmxhZ3MuICBSZXR1cm5zIGZhbHNlIGlmIGFuIGVycm9yIGhhcyBi ZWVuIGRpYWdub3NlZC4gICovCkBAIC01OTk4LDcgKzYwMTUsNiBAQCBmaW5p c2hfc3RydWN0XzEgKHRyZWUgdCkKICAgdHJlZSB4OwogICAvKiBBIFRSRUVf TElTVC4gIFRoZSBUUkVFX1ZBTFVFIG9mIGVhY2ggbm9kZSBpcyBhIEZVTkNU SU9OX0RFQ0wuICAqLwogICB0cmVlIHZpcnR1YWxzID0gTlVMTF9UUkVFOwot ICBpbnQgbl9maWVsZHMgPSAwOwogCiAgIGlmIChDT01QTEVURV9UWVBFX1Ag KHQpKQogICAgIHsKQEAgLTYxMTYsMTUgKzYxMzIsNyBAQCBmaW5pc2hfc3Ry dWN0XzEgKHRyZWUgdCkKICAgICAgdWx0aW1hdGVseSBhcyB0aGUgc2VhcmNo IGJvcmVzIHRocm91Z2ggdGhlIGluaGVyaXRhbmNlCiAgICAgIGhpZXJhcmNo eSksIGFuZCB3ZSB3YW50IHRoaXMgZmFpbHVyZSB0byBvY2N1ciBxdWlja2x5 LiAgKi8KIAotICBuX2ZpZWxkcyA9IGNvdW50X2ZpZWxkcyAoVFlQRV9GSUVM RFMgKHQpKTsKLSAgaWYgKG5fZmllbGRzID4gNykKLSAgICB7Ci0gICAgICBz dHJ1Y3Qgc29ydGVkX2ZpZWxkc190eXBlICpmaWVsZF92ZWMgPSBzb3J0ZWRf ZmllbGRzX3R5cGVfbmV3IChuX2ZpZWxkcyk7Ci0gICAgICBhZGRfZmllbGRz X3RvX3JlY29yZF90eXBlIChUWVBFX0ZJRUxEUyAodCksIGZpZWxkX3ZlYywg MCk7Ci0gICAgICBxc29ydCAoZmllbGRfdmVjLT5lbHRzLCBuX2ZpZWxkcywg c2l6ZW9mICh0cmVlKSwKLQkgICAgIGZpZWxkX2RlY2xfY21wKTsKLSAgICAg IENMQVNTVFlQRV9TT1JURURfRklFTERTICh0KSA9IGZpZWxkX3ZlYzsKLSAg ICB9CisgIGluc2VydF9pbnRvX2NsYXNzdHlwZV9zb3J0ZWRfZmllbGRzIChU WVBFX0ZJRUxEUyAodCksIHQsIDgpOwogCiAgIC8qIENvbXBsYWluIGlmIG9u ZSBvZiB0aGUgZmllbGQgdHlwZXMgcmVxdWlyZXMgbG93ZXIgdmlzaWJpbGl0 eS4gICovCiAgIGNvbnN0cmFpbl9jbGFzc192aXNpYmlsaXR5ICh0KTsKQEAg LTYxOTcsNiArNjIwNSw0NCBAQCBmaW5pc2hfc3RydWN0XzEgKHRyZWUgdCkK ICAgICB9CiB9CiAKKy8qIEluc2VydCBGSUVMRFMgaW50byBUIGZvciB0aGUg c29ydGVkIGNhc2UgaWYgdGhlIEZJRUxEUyBjb3VudCBpcworICAgZXF1YWwg dG8gVEhSRVNIT0xEIG9yIGdyZWF0ZXIgdGhhbiBUSFJFU0hPTEQuICAqLwor CitzdGF0aWMgdm9pZCAKK2luc2VydF9pbnRvX2NsYXNzdHlwZV9zb3J0ZWRf ZmllbGRzICh0cmVlIGZpZWxkcywgdHJlZSB0LCBpbnQgdGhyZXNob2xkKQor eworICBpbnQgbl9maWVsZHMgPSBjb3VudF9maWVsZHMgKGZpZWxkcyk7Cisg IGlmIChuX2ZpZWxkcyA+PSB0aHJlc2hvbGQpCisgICAgeworICAgICAgc3Ry dWN0IHNvcnRlZF9maWVsZHNfdHlwZSAqZmllbGRfdmVjID0gc29ydGVkX2Zp ZWxkc190eXBlX25ldyAobl9maWVsZHMpOworICAgICAgYWRkX2ZpZWxkc190 b19yZWNvcmRfdHlwZSAoZmllbGRzLCBmaWVsZF92ZWMsIDApOworICAgICAg cXNvcnQgKGZpZWxkX3ZlYy0+ZWx0cywgbl9maWVsZHMsIHNpemVvZiAodHJl ZSksIGZpZWxkX2RlY2xfY21wKTsKKyAgICAgIENMQVNTVFlQRV9TT1JURURf RklFTERTICh0KSA9IGZpZWxkX3ZlYzsKKyAgICB9Cit9CisKKy8qIEluc2Vy dCBsYXRlbHkgZGVmaW5lZCBFTlVNX0ZJRUxEUyBpbnRvIFQgZm9yIHRoZSBz b3J0ZWQgY2FzZS4gICovCisKK3ZvaWQKK2luc2VydF9sYXRlX2VudW1fZGVm X2ludG9fY2xhc3N0eXBlX3NvcnRlZF9maWVsZHMgKFZFQyh0cmVlLGdjKSAq ZW51bV9maWVsZHMsCisJCQkJCQkgICB0cmVlIHQpCit7CisgIHN0cnVjdCBz b3J0ZWRfZmllbGRzX3R5cGUgKnNvcnRlZF9maWVsZHMgPSBDTEFTU1RZUEVf U09SVEVEX0ZJRUxEUyAodCk7CisgIGlmIChzb3J0ZWRfZmllbGRzKQorICAg IHsKKyAgICAgIGludCBpOworICAgICAgaW50IG5fZmllbGRzID0gVkVDX2xl bmd0aCAodHJlZSwgZW51bV9maWVsZHMpICsgc29ydGVkX2ZpZWxkcy0+bGVu OworICAgICAgc3RydWN0IHNvcnRlZF9maWVsZHNfdHlwZSAqZmllbGRfdmVj ID0gc29ydGVkX2ZpZWxkc190eXBlX25ldyAobl9maWVsZHMpOworICAgICAg CisgICAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkX2ZpZWxkcy0+bGVuOyAr K2kpCisJZmllbGRfdmVjLT5lbHRzW2ldID0gc29ydGVkX2ZpZWxkcy0+ZWx0 c1tpXTsKKworICAgICAgYWRkX2VudW1fZmllbGRzX3RvX3JlY29yZF90eXBl IChlbnVtX2ZpZWxkcywgZmllbGRfdmVjLCBzb3J0ZWRfZmllbGRzLT5sZW4p OworICAgICAgcXNvcnQgKGZpZWxkX3ZlYy0+ZWx0cywgbl9maWVsZHMsIHNp emVvZiAodHJlZSksIGZpZWxkX2RlY2xfY21wKTsKKyAgICAgIENMQVNTVFlQ RV9TT1JURURfRklFTERTICh0KSA9IGZpZWxkX3ZlYzsKKyAgICB9Cit9CisK IC8qIFdoZW4gVCB3YXMgYnVpbHQgdXAsIHRoZSBtZW1iZXIgZGVjbGFyYXRp b25zIHdlcmUgYWRkZWQgaW4gcmV2ZXJzZQogICAgb3JkZXIuICBSZWFycmFu Z2UgdGhlbSB0byBkZWNsYXJhdGlvbiBvcmRlci4gICovCiAKSW5kZXg6IGNw L2RlY2wuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjcC9kZWNsLmMJ KHJldmlzaW9uIDE4NjY3NCkKKysrIGNwL2RlY2wuYwkod29ya2luZyBjb3B5 KQpAQCAtMTIyMDAsNiArMTIyMDAsNyBAQCBmaW5pc2hfZW51bV92YWx1ZV9s aXN0ICh0cmVlIGVudW10eXBlKQogICB0cmVlIHZhbHVlOwogICB0cmVlIG1p bm5vZGUsIG1heG5vZGU7CiAgIHRyZWUgdDsKKyAgVkVDKHRyZWUsZ2MpICps YXRlX2VudW1fdmFsdWVzID0gTlVMTDsKIAogICBib29sIGZpeGVkX3VuZGVy bHlpbmdfdHlwZV9wIAogICAgID0gRU5VTV9VTkRFUkxZSU5HX1RZUEUgKGVu dW10eXBlKSAhPSBOVUxMX1RSRUU7CkBAIC0xMjM1NSw2ICsxMjM1NiwxMSBA QCBmaW5pc2hfZW51bV92YWx1ZV9saXN0ICh0cmVlIGVudW10eXBlKQogICBl bHNlCiAgICAgdW5kZXJseWluZ190eXBlID0gRU5VTV9VTkRFUkxZSU5HX1RZ UEUgKGVudW10eXBlKTsKIAorICBpZiAoY3VycmVudF9jbGFzc190eXBlCisg ICAgICAmJiBDT01QTEVURV9UWVBFX1AgKGN1cnJlbnRfY2xhc3NfdHlwZSkK KyAgICAgICYmIFVOU0NPUEVEX0VOVU1fUCAoZW51bXR5cGUpKQorICAgIGxh dGVfZW51bV92YWx1ZXMgPSBtYWtlX3RyZWVfdmVjdG9yKCk7CisKICAgLyog Q29udmVydCBlYWNoIG9mIHRoZSBlbnVtZXJhdG9ycyB0byB0aGUgdHlwZSBv ZiB0aGUgdW5kZXJseWluZwogICAgICB0eXBlIG9mIHRoZSBlbnVtZXJhdGlv bi4gICovCiAgIGZvciAodmFsdWVzID0gVFlQRV9WQUxVRVMgKGVudW10eXBl KTsgdmFsdWVzOyB2YWx1ZXMgPSBUUkVFX0NIQUlOICh2YWx1ZXMpKQpAQCAt MTIzNzksMTIgKzEyMzg1LDIyIEBAIGZpbmlzaF9lbnVtX3ZhbHVlX2xpc3Qg KHRyZWUgZW51bXR5cGUpCiAKICAgICAgIFRSRUVfVFlQRSAodmFsdWUpID0g ZW51bXR5cGU7CiAgICAgICBERUNMX0lOSVRJQUwgKGRlY2wpID0gdmFsdWU7 CisKKyAgICAgIGlmIChsYXRlX2VudW1fdmFsdWVzKQorCVZFQ19zYWZlX3B1 c2ggKHRyZWUsIGdjLCBsYXRlX2VudW1fdmFsdWVzLCBkZWNsKTsKICAgICB9 CiAKICAgLyogRml4IHVwIGFsbCB2YXJpYW50IHR5cGVzIG9mIHRoaXMgZW51 bSB0eXBlLiAgKi8KICAgZm9yICh0ID0gVFlQRV9NQUlOX1ZBUklBTlQgKGVu dW10eXBlKTsgdDsgdCA9IFRZUEVfTkVYVF9WQVJJQU5UICh0KSkKICAgICBU WVBFX1ZBTFVFUyAodCkgPSBUWVBFX1ZBTFVFUyAoZW51bXR5cGUpOwogCisg IGlmIChsYXRlX2VudW1fdmFsdWVzKQorICAgIHsKKyAgICAgIGluc2VydF9s YXRlX2VudW1fZGVmX2ludG9fY2xhc3N0eXBlX3NvcnRlZF9maWVsZHMgKGxh dGVfZW51bV92YWx1ZXMsCisJCQkJCQkJIGN1cnJlbnRfY2xhc3NfdHlwZSk7 CisgICAgICByZWxlYXNlX3RyZWVfdmVjdG9yIChsYXRlX2VudW1fdmFsdWVz KTsKKyAgICB9CisKICAgLyogRmluaXNoIGRlYnVnZ2luZyBvdXRwdXQgZm9y IHRoaXMgdHlwZS4gICovCiAgIHJlc3Rfb2ZfdHlwZV9jb21waWxhdGlvbiAo ZW51bXR5cGUsIG5hbWVzcGFjZV9iaW5kaW5nc19wICgpKTsKIH0KSW5kZXg6 IGNwL2NwLXRyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjcC9j cC10cmVlLmgJKHJldmlzaW9uIDE4NjY3NCkKKysrIGNwL2NwLXRyZWUuaAko d29ya2luZyBjb3B5KQpAQCAtNDk3OSw2ICs0OTc5LDggQEAgZXh0ZXJuIHRy ZWUqIGRlY2xfY2xvbmVkX2Z1bmN0aW9uX3AJCShjbwogZXh0ZXJuIHZvaWQg Y2xvbmVfZnVuY3Rpb25fZGVjbAkJCSh0cmVlLCBpbnQpOwogZXh0ZXJuIHZv aWQgYWRqdXN0X2Nsb25lX2FyZ3MJCQkodHJlZSk7CiBleHRlcm4gdm9pZCBk ZWR1Y2Vfbm9leGNlcHRfb25fZGVzdHJ1Y3RvciAgICAgICAodHJlZSk7Citl eHRlcm4gdm9pZCBpbnNlcnRfbGF0ZV9lbnVtX2RlZl9pbnRvX2NsYXNzdHlw ZV9zb3J0ZWRfZmllbGRzIChWRUModHJlZSxnYykgKiwKKwkJCQkJCQkgICAg ICAgdHJlZSk7CiAKIC8qIGluIGN2dC5jICovCiBleHRlcm4gdHJlZSBjb252 ZXJ0X3RvX3JlZmVyZW5jZQkJKHRyZWUsIHRyZWUsIGludCwgaW50LCB0cmVl KTsK --20cf302ef74cb62eda04bf63b1d5--