From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30886 invoked by alias); 12 Oct 2014 21:38:49 -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 30868 invoked by uid 89); 12 Oct 2014 21:38:48 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wg0-f48.google.com Received: from mail-wg0-f48.google.com (HELO mail-wg0-f48.google.com) (74.125.82.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sun, 12 Oct 2014 21:38:46 +0000 Received: by mail-wg0-f48.google.com with SMTP id k14so7474022wgh.7 for ; Sun, 12 Oct 2014 14:38:43 -0700 (PDT) X-Received: by 10.180.13.226 with SMTP id k2mr16151099wic.27.1413149923153; Sun, 12 Oct 2014 14:38:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.217.80.73 with HTTP; Sun, 12 Oct 2014 14:38:22 -0700 (PDT) From: =?ISO-8859-1?Q?Manuel_L=F3pez=2DIb=E1=F1ez?= Date: Sun, 12 Oct 2014 21:59:00 -0000 Message-ID: Subject: [PATCH diagnostics] PR 53061 cleanup initialization To: Gcc Patch List , Dodji Seketeli Content-Type: multipart/mixed; boundary=001a11c224142f387e0505409bac X-SW-Source: 2014-10/txt/msg01083.txt.bz2 --001a11c224142f387e0505409bac Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2773 This is an old patch of mine that never got finished. I updated it following the suggestions of Gabriel here https://gcc.gnu.org/ml/gcc-patches/2012-04/msg00443.html In cp/error.c, I separate the initialization of the diagnostic context from the initialization of the scratch pretty-printer (cxx_pp). This was suggested by Gabriel in the last review of the patch and now I realize it was a good idea. Now cxx_initialize_diagnostics is the equivalent version of c_initialize_diagnostics. To avoid having to make extern a bunch of functions, I moved it from cp-objcp-common.c to error.c. I moved the setting of diagnostic_format_decoder (global_dc) =3D c_tree_printer, from c_objc_common_init to c_initialize_diagnostics, and right after c_common_diagnostics_defaults. This mimics what is done in cxx_initialize_diagnostics. Moreover, in both c_initialize_diagnostics and cxx_initialize_diagnostics, the FE-specific pretty-printer is initialized first and then other settings are applied. This does not make a difference right now, but if in the future one wishes to touch something in the pretty-printer, it will not get overriden immediately. In fact, the code I removed in c_common_initialize_diagnostics, which sets line_cutoff to 80, is useless because the pretty-printer created here is actually never used, but overriden by the FE-specific pretty-printers. This also means that doc/invoke.texi was wrong. Finally, it is useless to set the maximum line length to 0 in the constructor of cxx_pretty_printer. It is the default anyway. Bootstrapped and tested on x86_64-linux-gnu. OK? gcc/c/ChangeLog: 2014-10-12 Manuel L=F3pez-Ib=E1=F1ez PR c++/53061 * c-objc-common.c (c_objc_common_init): Do not do diagnostics initialization here... (c_initialize_diagnostics): ... but here. Set defaults after building pretty-printer. gcc/ChangeLog: 2014-10-12 Manuel L=F3pez-Ib=E1=F1ez PR c++/53061 * doc/invoke.texi (fmessage-length): Update text to match reality. gcc/cp/ChangeLog: 2014-10-12 Manuel L=F3pez-Ib=E1=F1ez PR c++/53061 * cp-objcp-common.c: Do not include new. (cxx_initialize_diagnostics): Move from here to ... * error.c (cxx_initialize_diagnostics): : ... here. Move diagnostics initialization here from init_error. (cxx_pp): Use a real pointer not a macro. (init_error): Just initialize cxx_pp. * cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer): Do not set maximum line length. gcc/c-family/ChangeLog: 2014-10-12 Manuel L=F3pez-Ib=E1=F1ez PR c++/53061 * c-opts.c (c_common_diagnostics_defaults): Renamed from c_common_initialize_diagnostics. * c-common.h: Likewise. --001a11c224142f387e0505409bac Content-Type: text/plain; charset=US-ASCII; name="pr530631.diff" Content-Disposition: attachment; filename="pr530631.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i16wx3x90 Content-length: 12672 SW5kZXg6IGdjYy9kb2MvaW52b2tlLnRleGkKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gZ2NjL2RvYy9pbnZva2UudGV4aQkocmV2aXNpb24gMjE1ODkw KQorKysgZ2NjL2RvYy9pbnZva2UudGV4aQkod29ya2luZyBjb3B5KQpAQCAt MzA3NSwxNSArMzA3NSwxNCBAQCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgcmVw b3J0ZWQuICBOb3RlIHRoCiBob25vciB0aGVzZSBvcHRpb25zLgogCiBAdGFi bGUgQGdjY3RhYm9wdAogQGl0ZW0gLWZtZXNzYWdlLWxlbmd0aD1AdmFye259 CiBAb3BpbmRleCBmbWVzc2FnZS1sZW5ndGgKLVRyeSB0byBmb3JtYXQgZXJy b3IgbWVzc2FnZXMgc28gdGhhdCB0aGV5IGZpdCBvbiBsaW5lcyBvZiBhYm91 dCBAdmFye259Ci1jaGFyYWN0ZXJzLiAgVGhlIGRlZmF1bHQgaXMgNzIgY2hh cmFjdGVycyBmb3IgQGNvbW1hbmR7ZysrfSBhbmQgMCBmb3IgdGhlIHJlc3Qg b2YKLXRoZSBmcm9udCBlbmRzIHN1cHBvcnRlZCBieSBHQ0NALiAgSWYgQHZh cntufSBpcyB6ZXJvLCB0aGVuIG5vCi1saW5lLXdyYXBwaW5nIGlzIGRvbmU7 IGVhY2ggZXJyb3IgbWVzc2FnZSBhcHBlYXJzIG9uIGEgc2luZ2xlCi1saW5l LgorVHJ5IHRvIGZvcm1hdCBlcnJvciBtZXNzYWdlcyBzbyB0aGF0IHRoZXkg Zml0IG9uIGxpbmVzIG9mIGFib3V0CitAdmFye259IGNoYXJhY3RlcnMuICBJ ZiBAdmFye259IGlzIHplcm8sIHRoZW4gbm8gbGluZS13cmFwcGluZyB3aWxs IGJlCitkb25lOyBlYWNoIGVycm9yIG1lc3NhZ2Ugd2lsbCBhcHBlYXIgb24g YSBzaW5nbGUgbGluZS4gIFRoaXMgaXMgdGhlCitkZWZhdWx0IGZvciBhbGwg ZnJvbnQgZW5kcy4KIAogQGl0ZW0gLWZkaWFnbm9zdGljcy1zaG93LWxvY2F0 aW9uPW9uY2UKIEBvcGluZGV4IGZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9u CiBPbmx5IG1lYW5pbmdmdWwgaW4gbGluZS13cmFwcGluZyBtb2RlLiAgSW5z dHJ1Y3RzIHRoZSBkaWFnbm9zdGljIG1lc3NhZ2VzCiByZXBvcnRlciB0byBl bWl0IHNvdXJjZSBsb2NhdGlvbiBpbmZvcm1hdGlvbiBAZW1waHtvbmNlfTsg dGhhdCBpcywgaW4KSW5kZXg6IGdjYy9jLWZhbWlseS9jLW9wdHMuYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvYy1mYW1pbHkvYy1vcHRzLmMJ KHJldmlzaW9uIDIxNTg5MCkKKysrIGdjYy9jLWZhbWlseS9jLW9wdHMuYwko d29ya2luZyBjb3B5KQpAQCAtMTc2LDI1ICsxNzYsMTQgQEAgY19kaWFnbm9z dGljX2ZpbmFsaXplciAoZGlhZ25vc3RpY19jb250ZQogICB2aXJ0X2xvY19h d2FyZV9kaWFnbm9zdGljX2ZpbmFsaXplciAoY29udGV4dCwgZGlhZ25vc3Rp Yyk7CiAgIHBwX2Rlc3Ryb3lfcHJlZml4IChjb250ZXh0LT5wcmludGVyKTsK ICAgcHBfbmV3bGluZV9hbmRfZmx1c2ggKGNvbnRleHQtPnByaW50ZXIpOwog fQogCi0vKiBDb21tb24gZGlhZ25vc3RpY3MgaW5pdGlhbGl6YXRpb24uICAq LworLyogQ29tbW9uIGRlZmF1bHQgc2V0dGluZ3MgZm9yIGRpYWdub3N0aWNz LiAgKi8KIHZvaWQKLWNfY29tbW9uX2luaXRpYWxpemVfZGlhZ25vc3RpY3Mg KGRpYWdub3N0aWNfY29udGV4dCAqY29udGV4dCkKK2NfY29tbW9uX2RpYWdu b3N0aWNzX2RlZmF1bHRzIChkaWFnbm9zdGljX2NvbnRleHQgKmNvbnRleHQp CiB7Ci0gIC8qIFRoaXMgaXMgY29uZGl0aW9uYWxpemVkIG9ubHkgYmVjYXVz ZSB0aGF0IGlzIHRoZSB3YXkgdGhlIGZyb250Ci0gICAgIGVuZHMgdXNlZCB0 byBkbyBpdC4gIE1heWJlIHRoaXMgc2hvdWxkIGJlIHVuY29uZGl0aW9uYWw/ ICAqLwotICBpZiAoY19kaWFsZWN0X2N4eCAoKSkKLSAgICB7Ci0gICAgICAv KiBCeSBkZWZhdWx0IHdyYXAgbGluZXMgYXQgODAgY2hhcmFjdGVycy4gIElz IGdldGVudgotCSAoIkNPTFVNTlMiKSBwcmVmZXJhYmxlPyAgKi8KLSAgICAg IGRpYWdub3N0aWNfbGluZV9jdXRvZmYgKGNvbnRleHQpID0gODA7Ci0gICAg ICAvKiBCeSBkZWZhdWx0LCBlbWl0IGxvY2F0aW9uIGluZm9ybWF0aW9uIG9u Y2UgZm9yIGV2ZXJ5Ci0JIGRpYWdub3N0aWMgbWVzc2FnZS4gICovCi0gICAg ICBkaWFnbm9zdGljX3ByZWZpeGluZ19ydWxlIChjb250ZXh0KSA9IERJQUdO T1NUSUNTX1NIT1dfUFJFRklYX09OQ0U7Ci0gICAgfQogICBkaWFnbm9zdGlj X2ZpbmFsaXplciAoY29udGV4dCkgPSBjX2RpYWdub3N0aWNfZmluYWxpemVy OwogICBjb250ZXh0LT5vcHRfcGVybWlzc2l2ZSA9IE9QVF9mcGVybWlzc2l2 ZTsKIH0KIAogLyogV2hldGhlciBvcHRpb25zIGZyb20gYWxsIEMtZmFtaWx5 IGxhbmd1YWdlcyBzaG91bGQgYmUgYWNjZXB0ZWQKSW5kZXg6IGdjYy9jLWZh bWlseS9jLWNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdj Yy9jLWZhbWlseS9jLWNvbW1vbi5oCShyZXZpc2lvbiAyMTU4OTApCisrKyBn Y2MvYy1mYW1pbHkvYy1jb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtODI0 LDExICs4MjQsMTEgQEAgZXh0ZXJuIHZvaWQgc2V0X2NvbXBvdW5kX2xpdGVy YWxfbmFtZSAodAogCiBleHRlcm4gdHJlZSBidWlsZF92YV9hcmcgKGxvY2F0 aW9uX3QsIHRyZWUsIHRyZWUpOwogCiBleHRlcm4gY29uc3QgdW5zaWduZWQg aW50IGNfZmFtaWx5X2xhbmdfbWFzazsKIGV4dGVybiB1bnNpZ25lZCBpbnQg Y19jb21tb25fb3B0aW9uX2xhbmdfbWFzayAodm9pZCk7Ci1leHRlcm4gdm9p ZCBjX2NvbW1vbl9pbml0aWFsaXplX2RpYWdub3N0aWNzIChkaWFnbm9zdGlj X2NvbnRleHQgKik7CitleHRlcm4gdm9pZCBjX2NvbW1vbl9kaWFnbm9zdGlj c19kZWZhdWx0cyAoZGlhZ25vc3RpY19jb250ZXh0ICopOwogZXh0ZXJuIGJv b2wgY19jb21tb25fY29tcGxhaW5fd3JvbmdfbGFuZ19wIChjb25zdCBzdHJ1 Y3QgY2xfb3B0aW9uICopOwogZXh0ZXJuIHZvaWQgY19jb21tb25faW5pdF9v cHRpb25zX3N0cnVjdCAoc3RydWN0IGdjY19vcHRpb25zICopOwogZXh0ZXJu IHZvaWQgY19jb21tb25faW5pdF9vcHRpb25zICh1bnNpZ25lZCBpbnQsIHN0 cnVjdCBjbF9kZWNvZGVkX29wdGlvbiAqKTsKIGV4dGVybiBib29sIGNfY29t bW9uX3Bvc3Rfb3B0aW9ucyAoY29uc3QgY2hhciAqKik7CiBleHRlcm4gYm9v bCBjX2NvbW1vbl9pbml0ICh2b2lkKTsKSW5kZXg6IGdjYy9jL2Mtb2JqYy1j b21tb24uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvYy9jLW9i amMtY29tbW9uLmMJKHJldmlzaW9uIDIxNTg5MCkKKysrIGdjYy9jL2Mtb2Jq Yy1jb21tb24uYwkod29ya2luZyBjb3B5KQpAQCAtNjAsMTkgKzYwLDExIEBA IGNfd2Fybl91bnVzZWRfZ2xvYmFsX2RlY2wgKGNvbnN0X3RyZWUgZGUKIGJv b2wKIGNfb2JqY19jb21tb25faW5pdCAodm9pZCkKIHsKICAgY19pbml0X2Rl Y2xfcHJvY2Vzc2luZyAoKTsKIAotICBpZiAoY19jb21tb25faW5pdCAoKSA9 PSBmYWxzZSkKLSAgICByZXR1cm4gZmFsc2U7Ci0KLSAgLyogVGhlc2Ugd2Vy ZSBub3QgZGVmaW5lZCBpbiB0aGUgT2JqZWN0aXZlLUMgZnJvbnQgZW5kLCBi dXQgSSdtCi0gICAgIHB1dHRpbmcgdGhlbSBoZXJlIGFueXdheS4gIFRoZSBk aWFnbm9zdGljIGZvcm1hdCBkZWNvZGVyIG1pZ2h0Ci0gICAgIHdhbnQgYW4g ZW5oYW5jZWQgT2JqQyBpbXBsZW1lbnRhdGlvbi4gICovCi0gIGRpYWdub3N0 aWNfZm9ybWF0X2RlY29kZXIgKGdsb2JhbF9kYykgPSAmY190cmVlX3ByaW50 ZXI7Ci0KLSAgcmV0dXJuIHRydWU7CisgIHJldHVybiBjX2NvbW1vbl9pbml0 ICgpOwogfQogCiAvKiBDYWxsZWQgZHVyaW5nIGRpYWdub3N0aWMgbWVzc2Fn ZSBmb3JtYXR0aW5nIHByb2Nlc3MgdG8gcHJpbnQgYQogICAgc291cmNlLWxl dmVsIGVudGl0eSBvbnRvIEJVRkZFUi4gIFRoZSBtZWFuaW5nIG9mIHRoZSBm b3JtYXQgc3BlY2lmaWVycwogICAgaXMgYXMgZm9sbG93czoKQEAgLTE4NCwx OSArMTc2LDIwIEBAIGhhc19jX2xpbmthZ2UgKGNvbnN0X3RyZWUgZGVjbCBB VFRSSUJVVEUKIH0KIAogdm9pZAogY19pbml0aWFsaXplX2RpYWdub3N0aWNz IChkaWFnbm9zdGljX2NvbnRleHQgKmNvbnRleHQpCiB7Ci0gIGNfY29tbW9u X2luaXRpYWxpemVfZGlhZ25vc3RpY3MgKGNvbnRleHQpOwotCiAgIHByZXR0 eV9wcmludGVyICpiYXNlID0gY29udGV4dC0+cHJpbnRlcjsKICAgY19wcmV0 dHlfcHJpbnRlciAqcHAgPSBYTkVXIChjX3ByZXR0eV9wcmludGVyKTsKICAg Y29udGV4dC0+cHJpbnRlciA9IG5ldyAocHApIGNfcHJldHR5X3ByaW50ZXIg KCk7CiAKICAgLyogSXQgaXMgc2FmZSB0byBmcmVlIHRoaXMgb2JqZWN0IGJl Y2F1c2UgaXQgd2FzIHByZXZpb3VzbHkgWE5FVygpJ2QuICAqLwogICBiYXNl LT5+cHJldHR5X3ByaW50ZXIgKCk7CiAgIFhERUxFVEUgKGJhc2UpOworCisg IGNfY29tbW9uX2RpYWdub3N0aWNzX2RlZmF1bHRzIChjb250ZXh0KTsKKyAg ZGlhZ25vc3RpY19mb3JtYXRfZGVjb2RlciAoY29udGV4dCkgPSAmY190cmVl X3ByaW50ZXI7CiB9CiAKIGludAogY190eXBlc19jb21wYXRpYmxlX3AgKHRy ZWUgeCwgdHJlZSB5KQogewpJbmRleDogZ2NjL2NwL2Vycm9yLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gZ2NjL2NwL2Vycm9yLmMJKHJldmlzaW9u IDIxNTg5MCkKKysrIGdjYy9jcC9lcnJvci5jCSh3b3JraW5nIGNvcHkpCkBA IC0zNywxNSArMzcsMTcgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmls ZSBDT1BZSU5HMy4KICNpbmNsdWRlIDxuZXc+ICAgICAgICAgICAgICAgICAg ICAvLyBGb3IgcGxhY2VtZW50LW5ldy4KIAogI2RlZmluZSBwcF9zZXBhcmF0 ZV93aXRoX2NvbW1hKFBQKSBwcF9jeHhfc2VwYXJhdGVfd2l0aCAoUFAsICcs JykKICNkZWZpbmUgcHBfc2VwYXJhdGVfd2l0aF9zZW1pY29sb24oUFApIHBw X2N4eF9zZXBhcmF0ZV93aXRoIChQUCwgJzsnKQogCi0vKiBUaGUgZ2xvYmFs IGJ1ZmZlciB3aGVyZSB3ZSBkdW1wIGV2ZXJ5dGhpbmcuICBJdCBpcyB0aGVy ZSBvbmx5IGZvcgotICAgdHJhbnNpdGlvbmFsIHB1cnBvc2UuICBJdCBpcyBl eHBlY3RlZCwgaW4gdGhlIG5lYXIgZnV0dXJlLCB0byBiZQotICAgY29tcGxl dGVseSByZW1vdmVkLiAgKi8KKy8qICBjeHhfcHAgaXMgYSBDKysgZnJvbnQt ZW5kLXNwZWNpZmljIHByZXR0eSBwcmludGVyOiB0aGlzCisgICAgaXMgd2hl cmUgd2UgZHVtcCBDKysgQVNUcyBhcyBzdHJpbmdzLiBJdCBpcyBtb3N0bHkg dXNlZCBvbmx5IGJ5CisgICAgdGhlIHZhcmlvdXMgdHJlZSAtPiBzdHJpbmcg ZnVuY3Rpb25zIHRoYXQgYXJlIG9jY2FzaW9uYWxseQorICAgIGNhbGxlZCBm cm9tIHRoZSBkZWJ1Z2dlciBvciBieSB0aGUgZnJvbnQtZW5kIGZvciB0aGlu Z3MgbGlrZQorICAgIF9fUFJFVFRZX0ZVTkNUSU9OX18uICAqLwogc3RhdGlj IGN4eF9wcmV0dHlfcHJpbnRlciBzY3JhdGNoX3ByZXR0eV9wcmludGVyOwot I2RlZmluZSBjeHhfcHAgKCZzY3JhdGNoX3ByZXR0eV9wcmludGVyKQorc3Rh dGljIGN4eF9wcmV0dHlfcHJpbnRlciAqIGN4eF9wcCA9ICZzY3JhdGNoX3By ZXR0eV9wcmludGVyOwogCiAvKiBUcmFuc2xhdGUgaWYgYmVpbmcgdXNlZCBm b3IgZGlhZ25vc3RpY3MsIGJ1dCBub3QgZm9yIGR1bXAgZmlsZXMgb3IKICAg IF9fUFJFVFRZX0ZVTkNUSU9OLiAgKi8KICNkZWZpbmUgTV8obXNnaWQpIChw cF90cmFuc2xhdGVfaWRlbnRpZmllcnMgKGN4eF9wcCkgPyBfKG1zZ2lkKSA6 IChtc2dpZCkpCiAKQEAgLTEwMiwxNyArMTA0LDM4IEBAIHN0YXRpYyB2b2lk IGNwX2RpYWdub3N0aWNfc3RhcnRlciAoZGlhZ24KIHN0YXRpYyB2b2lkIGNw X3ByaW50X2Vycm9yX2Z1bmN0aW9uIChkaWFnbm9zdGljX2NvbnRleHQgKiwg ZGlhZ25vc3RpY19pbmZvICopOwogCiBzdGF0aWMgYm9vbCBjcF9wcmludGVy IChwcmV0dHlfcHJpbnRlciAqLCB0ZXh0X2luZm8gKiwgY29uc3QgY2hhciAq LAogCQkJaW50LCBib29sLCBib29sLCBib29sKTsKIAorCisvKiBDb25zdHJ1 Y3QgYSBDKystYXdhcmUgcHJldHR5LXByaW50ZXIgZm9yIENPTlRFWFQuICBJ dCBpcyBhc3N1bWVkCisgICB0aGF0IENPTlRFWFQtPnByaW50ZXIgaXMgYW4g YWxyZWFkeSBjb25zdHJ1Y3RlZCBiYXNpYyBwcmV0dHlfcHJpbnRlci4gICov CiB2b2lkCi1pbml0X2Vycm9yICh2b2lkKQorY3h4X2luaXRpYWxpemVfZGlh Z25vc3RpY3MgKGRpYWdub3N0aWNfY29udGV4dCAqY29udGV4dCkKIHsKLSAg ZGlhZ25vc3RpY19zdGFydGVyIChnbG9iYWxfZGMpID0gY3BfZGlhZ25vc3Rp Y19zdGFydGVyOworICBwcmV0dHlfcHJpbnRlciAqYmFzZSA9IGNvbnRleHQt PnByaW50ZXI7CisgIGN4eF9wcmV0dHlfcHJpbnRlciAqcHAgPSBYTkVXIChj eHhfcHJldHR5X3ByaW50ZXIpOworICBjb250ZXh0LT5wcmludGVyID0gbmV3 IChwcCkgY3h4X3ByZXR0eV9wcmludGVyICgpOworCisgIC8qIEl0IGlzIHNh ZmUgdG8gZnJlZSB0aGlzIG9iamVjdCBiZWNhdXNlIGl0IHdhcyBwcmV2aW91 c2x5IFhORVcoKSdkLiAgKi8KKyAgYmFzZS0+fnByZXR0eV9wcmludGVyICgp OworICBYREVMRVRFIChiYXNlKTsKKworICBjX2NvbW1vbl9kaWFnbm9zdGlj c19kZWZhdWx0cyAoY29udGV4dCk7CisgIGRpYWdub3N0aWNfc3RhcnRlciAo Y29udGV4dCkgPSBjcF9kaWFnbm9zdGljX3N0YXJ0ZXI7CiAgIC8qIGRpYWdu b3N0aWNfZmluYWxpemVyIGlzIGFscmVhZHkgY19kaWFnbm9zdGljX2ZpbmFs aXplci4gICovCi0gIGRpYWdub3N0aWNfZm9ybWF0X2RlY29kZXIgKGdsb2Jh bF9kYykgPSBjcF9wcmludGVyOworICBkaWFnbm9zdGljX2Zvcm1hdF9kZWNv ZGVyIChjb250ZXh0KSA9IGNwX3ByaW50ZXI7Cit9CiAKKy8qICBjeHhfcHAg aXMgYSBDKysgZnJvbnQtZW5kLXNwZWNpZmljIHByZXR0eSBwcmludGVyOiB0 aGlzCisgICAgaXMgd2hlcmUgd2UgZHVtcCBDKysgQVNUcyBhcyBzdHJpbmdz LiBJdCBpcyBtb3N0bHkgdXNlZCBvbmx5IGJ5CisgICAgdGhlIHZhcmlvdXMg dHJlZSAtPiBzdHJpbmcgZnVuY3Rpb25zIHRoYXQgYXJlIG9jY2FzaW9uYWxs eQorICAgIGNhbGxlZCBmcm9tIHRoZSBkZWJ1Z2dlciBvciBieSB0aGUgZnJv bnQtZW5kIGZvciB0aGluZ3MgbGlrZQorICAgIF9fUFJFVFRZX0ZVTkNUSU9O X18uICAqLwordm9pZAoraW5pdF9lcnJvciAodm9pZCkKK3sKICAgbmV3IChj eHhfcHApIGN4eF9wcmV0dHlfcHJpbnRlciAoKTsKIH0KIAogLyogRHVtcCBh IHNjb3BlLCBpZiBkZWVtZWQgbmVjZXNzYXJ5LiAgKi8KIApJbmRleDogZ2Nj L2NwL2N4eC1wcmV0dHktcHJpbnQuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBnY2MvY3AvY3h4LXByZXR0eS1wcmludC5jCShyZXZpc2lvbiAyMTU4 OTApCisrKyBnY2MvY3AvY3h4LXByZXR0eS1wcmludC5jCSh3b3JraW5nIGNv cHkpCkBAIC0yNDMxLDEwICsyNDMxLDggQEAgdHlwZWRlZiBjX3ByZXR0eV9w cmludF9mbiBwcF9mdW47CiAKIGN4eF9wcmV0dHlfcHJpbnRlcjo6Y3h4X3By ZXR0eV9wcmludGVyICgpCiAgIDogY19wcmV0dHlfcHJpbnRlciAoKSwKICAg ICBlbmNsb3Npbmdfc2NvcGUgKGdsb2JhbF9uYW1lc3BhY2UpCiB7Ci0gIHBw X3NldF9saW5lX21heGltdW1fbGVuZ3RoICh0aGlzLCAwKTsKLQogICB0eXBl X3NwZWNpZmllcl9zZXEgPSAocHBfZnVuKSBwcF9jeHhfdHlwZV9zcGVjaWZp ZXJfc2VxOwogICBwYXJhbWV0ZXJfbGlzdCA9IChwcF9mdW4pIHBwX2N4eF9w YXJhbWV0ZXJfZGVjbGFyYXRpb25fY2xhdXNlOwogfQpJbmRleDogZ2NjL2Nw L2NwLW9iamNwLWNvbW1vbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGdjYy9jcC9jcC1vYmpjcC1jb21tb24uYwkocmV2aXNpb24gMjE1ODkwKQor KysgZ2NjL2NwL2NwLW9iamNwLWNvbW1vbi5jCSh3b3JraW5nIGNvcHkpCkBA IC0zMCwxMiArMzAsMTAgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmls ZSBDT1BZSU5HMy4KICNpbmNsdWRlICJkaWFnbm9zdGljLmgiCiAjaW5jbHVk ZSAiZGVidWcuaCIKICNpbmNsdWRlICJjeHgtcHJldHR5LXByaW50LmgiCiAj aW5jbHVkZSAiY3Atb2JqY3AtY29tbW9uLmgiCiAKLSNpbmNsdWRlIDxuZXc+ ICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3IgcGxhY2VtZW50IG5ldy4K LQogLyogU3BlY2lhbCByb3V0aW5lIHRvIGdldCB0aGUgYWxpYXMgc2V0IGZv ciBDKysuICAqLwogCiBhbGlhc19zZXRfdHlwZQogY3h4X2dldF9hbGlhc19z ZXQgKHRyZWUgdCkKIHsKQEAgLTEzMCwyNiArMTI4LDEwIEBAIGNwX3Zhcl9t b2RfdHlwZV9wICh0cmVlIHR5cGUsIHRyZWUgZm4pCiAKICAgLyogQWxsIG90 aGVyIHR5cGVzIGFyZSBub3QgdmFyaWFibHkgbW9kaWZpZWQuICAqLwogICBy ZXR1cm4gZmFsc2U7CiB9CiAKLS8qIENvbnN0cnVjdCBhIEMrKy1hd2FyZSBw cmV0dHktcHJpbnRlciBmb3IgQ09OVEVYVC4gIEl0IGlzIGFzc3VtZWQKLSAg IHRoYXQgQ09OVEVYVC0+cHJpbnRlciBpcyBhbiBhbHJlYWR5IGNvbnN0cnVj dGVkIGJhc2ljIHByZXR0eV9wcmludGVyLiAgKi8KLXZvaWQKLWN4eF9pbml0 aWFsaXplX2RpYWdub3N0aWNzIChkaWFnbm9zdGljX2NvbnRleHQgKmNvbnRl eHQpCi17Ci0gIGNfY29tbW9uX2luaXRpYWxpemVfZGlhZ25vc3RpY3MgKGNv bnRleHQpOwotCi0gIHByZXR0eV9wcmludGVyICpiYXNlID0gY29udGV4dC0+ cHJpbnRlcjsKLSAgY3h4X3ByZXR0eV9wcmludGVyICpwcCA9IFhORVcgKGN4 eF9wcmV0dHlfcHJpbnRlcik7Ci0gIGNvbnRleHQtPnByaW50ZXIgPSBuZXcg KHBwKSBjeHhfcHJldHR5X3ByaW50ZXIgKCk7Ci0KLSAgLyogSXQgaXMgc2Fm ZSB0byBmcmVlIHRoaXMgb2JqZWN0IGJlY2F1c2UgaXQgd2FzIHByZXZpb3Vz bHkgWE5FVygpJ2QuICAqLwotICBiYXNlLT5+cHJldHR5X3ByaW50ZXIgKCk7 Ci0gIFhERUxFVEUgKGJhc2UpOwotfQotCiAvKiBUaGlzIGNvbXBhcmVzIHR3 byB0eXBlcyBmb3IgZXF1aXZhbGVuY2UgKCJjb21wYXRpYmxlIiBpbiBDLWJh c2VkIGxhbmd1YWdlcykuCiAgICBUaGlzIHJvdXRpbmUgc2hvdWxkIG9ubHkg cmV0dXJuIDEgaWYgaXQgaXMgc3VyZS4gIEl0IHNob3VsZCBub3QgYmUgdXNl ZAogICAgaW4gY29udGV4dHMgd2hlcmUgZXJyb25lb3VzbHkgcmV0dXJuaW5n IDAgY2F1c2VzIHByb2JsZW1zLiAgKi8KIAogaW50Cg== --001a11c224142f387e0505409bac--