From unknown Sat Aug 16 00:30:40 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#23771 <23771@debbugs.gnu.org> To: bug#23771 <23771@debbugs.gnu.org> Subject: Status: Eliminating compiler warnings Reply-To: bug#23771 <23771@debbugs.gnu.org> Date: Sat, 16 Aug 2025 07:30:40 +0000 retitle 23771 Eliminating compiler warnings reassign 23771 emacs submitter 23771 Ken Brown severity 23771 wishlist tag 23771 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 14 22:04:54 2016 Received: (at submit) by debbugs.gnu.org; 15 Jun 2016 02:04:54 +0000 Received: from localhost ([127.0.0.1]:41009 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bD0CJ-0007T7-4X for submit@debbugs.gnu.org; Tue, 14 Jun 2016 22:04:54 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35038) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bD0CG-0007Sn-57 for submit@debbugs.gnu.org; Tue, 14 Jun 2016 22:04:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bD0C7-0005iy-S1 for submit@debbugs.gnu.org; Tue, 14 Jun 2016 22:04:43 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:39795) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD0C7-0005it-Ny for submit@debbugs.gnu.org; Tue, 14 Jun 2016 22:04:39 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54242) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD0C3-0005U4-8z for bug-gnu-emacs@gnu.org; Tue, 14 Jun 2016 22:04:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bD0Bz-0005iA-OS for bug-gnu-emacs@gnu.org; Tue, 14 Jun 2016 22:04:35 -0400 Received: from limerock02.mail.cornell.edu ([128.84.13.242]:42433) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bD0Bz-0005i3-Fq for bug-gnu-emacs@gnu.org; Tue, 14 Jun 2016 22:04:31 -0400 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu [10.16.197.8]) by limerock02.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u5F24TD4028140 for ; Tue, 14 Jun 2016 22:04:29 -0400 Received: from [192.168.1.3] (mta-68-175-148-36.twcny.rr.com [68.175.148.36] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u5F24RoK009529 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Tue, 14 Jun 2016 22:04:28 -0400 To: bug-gnu-emacs@gnu.org From: Ken Brown Subject: Eliminating compiler warnings Message-ID: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> Date: Tue, 14 Jun 2016 22:04:28 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------D7BE58DCFC1D331AFE1FF0E1" X-PMX-Cornell-Gauge: Gauge=XXXXX X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.3 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.3 (----) This is a multi-part message in MIME format. --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit I would like to get rid of all compiler warnings in the Cygwin builds (X11, w32, and nox). There are currently none in the X11 build, but there are a lot in the other builds. Many of the warnings in the w32 build probably occur in the MinGW build also. And all of the warnings in the nox build would occur in any build without a window system. The seven patches attached attempt to eliminate all the currently existing warnings. There is one patch for each type of warning. Since they affect other platforms besides Cygwin, I won't install them until someone has had a chance to review them. There's obviously no rush about this. Two comments: First, patch 0006-... is there because there might be a jump over an AUTO_STRING call. (This happens exactly once in the Cygwin-w32 build.) It seems stupid to have to worry about this. An alternative would be to just disable the -Wjump-misses-init warning. Second, patch 0007-... is there because I couldn't think of a reasonable way to avoid -Waddress warnings when compiling w32fns.c, w32menu.c, and menu.c in the Cygwin-w32 build. Everything I thought of would have made the code very ugly. So I simply disabled that warning for the Cygwin-w32 build, and I took the liberty of doing the same thing for the MinGW build, which I think is also affected in some cases. If someone sees a better way of eliminating those warnings, that would be preferable. Ken --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=UTF-8; name="0001-Eliminate-noreturn-warnings-if-there-s-no-window-sys.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Eliminate-noreturn-warnings-if-there-s-no-window-sys.pa"; filename*1="tch" RnJvbSAxNWJkYTE2OTcwNzBhMWZlOTdiMTcwNmZhMjdhYzQ5YzI0MzliNmNiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogTW9uLCAxMyBKdW4gMjAxNiAxNzoxMTo1NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MS83XSA9P1VURi04P3E/RWxpbWluYXRlPTIwIm5vcmV0dXJuIj0yMHdhcm5pbmdzPTIwaWY9 MjB0aD89CiA9P1VURi04P3E/ZXJlPUUyPTgwPTk5cz0yMG5vPTIwd2luZG93PTIwc3lzdGVt Pz0KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCiogc3JjL2ZyYW1lLmMg KGRlY29kZV93aW5kb3dfc3lzdGVtX2ZyYW1lLCBjaGVja193aW5kb3dfc3lzdGVtKToKRGVm aW5lIG5ldyBfTm9yZXR1cm4gdmVyc2lvbnMgaWYgIUhBVkVfV0lORE9XX1NZU1RFTS4KKiBz cmMvZnJhbWUuaDogKGRlY29kZV93aW5kb3dfc3lzdGVtX2ZyYW1lLCBjaGVja193aW5kb3df c3lzdGVtKToKQWRqdXN0IHByb3RvdHlwZXMuCi0tLQogc3JjL2ZyYW1lLmMgfCAxOCArKysr KysrKysrKysrKysrLS0KIHNyYy9mcmFtZS5oIHwgIDYgKysrKy0tCiAyIGZpbGVzIGNoYW5n ZWQsIDIwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2ZyYW1lLmMgYi9zcmMvZnJhbWUuYwppbmRleCBkZjk3NTM5Li42NTNkNjYwIDEwMDY0NAot LS0gYS9zcmMvZnJhbWUuYworKysgYi9zcmMvZnJhbWUuYwpAQCAtMTEzLDggKzExMyw2IEBA IHdpbmRvd19zeXN0ZW1fYXZhaWxhYmxlIChzdHJ1Y3QgZnJhbWUgKmYpCiAgIHJldHVybiBm ID8gRlJBTUVfV0lORE9XX1AgKGYpIHx8IEZSQU1FX01TRE9TX1AgKGYpIDogeF9kaXNwbGF5 X2xpc3QgIT0gTlVMTDsKIH0KIAotI2VuZGlmIC8qIEhBVkVfV0lORE9XX1NZU1RFTSAqLwot CiBzdHJ1Y3QgZnJhbWUgKgogZGVjb2RlX3dpbmRvd19zeXN0ZW1fZnJhbWUgKExpc3BfT2Jq ZWN0IGZyYW1lKQogewpAQCAtMTMzLDYgKzEzMSwyMiBAQCBjaGVja193aW5kb3dfc3lzdGVt IChzdHJ1Y3QgZnJhbWUgKmYpCiAJICAgOiAiV2luZG93IHN5c3RlbSBpcyBub3QgaW4gdXNl IG9yIG5vdCBpbml0aWFsaXplZCIpOwogfQogCisjZWxzZSAgLyogbm90IEhBVkVfV0lORE9X X1NZU1RFTSAqLworCitfTm9yZXR1cm4gdm9pZAorZGVjb2RlX3dpbmRvd19zeXN0ZW1fZnJh bWUgKExpc3BfT2JqZWN0IGZyYW1lKQoreworICBlcnJvciAoIldpbmRvdyBzeXN0ZW0gaXMg bm90IGluIHVzZSIpOworfQorCitfTm9yZXR1cm4gdm9pZAorY2hlY2tfd2luZG93X3N5c3Rl bSAoc3RydWN0IGZyYW1lICpmKQoreworICBlcnJvciAoIldpbmRvdyBzeXN0ZW0gaXMgbm90 IGluIHVzZSIpOworfQorCisjZW5kaWYJLyogbm90IEhBVkVfV0lORE9XX1NZU1RFTSAqLwor CiAvKiBSZXR1cm4gdGhlIHZhbHVlIG9mIGZyYW1lIHBhcmFtZXRlciBQUk9QIGluIGZyYW1l IEZSQU1FLiAgKi8KIAogTGlzcF9PYmplY3QKZGlmZiAtLWdpdCBhL3NyYy9mcmFtZS5oIGIv c3JjL2ZyYW1lLmgKaW5kZXggN2Q2NGUwMC4uMDE4OWNhMSAxMDA2NDQKLS0tIGEvc3JjL2Zy YW1lLmgKKysrIGIvc3JjL2ZyYW1lLmgKQEAgLTExMDIsMTIgKzExMDIsMTMgQEAgZXh0ZXJu IExpc3BfT2JqZWN0IHNlbGVjdGVkX2ZyYW1lOwogZXh0ZXJuIGludCBmcmFtZV9kZWZhdWx0 X3Rvb2xfYmFyX2hlaWdodDsKICNlbmRpZgogCi1leHRlcm4gc3RydWN0IGZyYW1lICpkZWNv ZGVfd2luZG93X3N5c3RlbV9mcmFtZSAoTGlzcF9PYmplY3QpOwogZXh0ZXJuIHN0cnVjdCBm cmFtZSAqZGVjb2RlX2xpdmVfZnJhbWUgKExpc3BfT2JqZWN0KTsKIGV4dGVybiBzdHJ1Y3Qg ZnJhbWUgKmRlY29kZV9hbnlfZnJhbWUgKExpc3BfT2JqZWN0KTsKIGV4dGVybiBzdHJ1Y3Qg ZnJhbWUgKm1ha2VfaW5pdGlhbF9mcmFtZSAodm9pZCk7CiBleHRlcm4gc3RydWN0IGZyYW1l ICptYWtlX2ZyYW1lIChib29sKTsKICNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KK2V4dGVy biB2b2lkIGNoZWNrX3dpbmRvd19zeXN0ZW0gKHN0cnVjdCBmcmFtZSAqKTsKK2V4dGVybiBz dHJ1Y3QgZnJhbWUgKmRlY29kZV93aW5kb3dfc3lzdGVtX2ZyYW1lIChMaXNwX09iamVjdCk7 CiBleHRlcm4gc3RydWN0IGZyYW1lICptYWtlX21pbmlidWZmZXJfZnJhbWUgKHZvaWQpOwog ZXh0ZXJuIHN0cnVjdCBmcmFtZSAqbWFrZV9mcmFtZV93aXRob3V0X21pbmlidWZmZXIgKExp c3BfT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBrYm9hcmQgKiwKQEAgLTExMTUsOCArMTExNiw5IEBAIGV4dGVy biBzdHJ1Y3QgZnJhbWUgKm1ha2VfZnJhbWVfd2l0aG91dF9taW5pYnVmZmVyIChMaXNwX09i amVjdCwKIGV4dGVybiBib29sIHdpbmRvd19zeXN0ZW1fYXZhaWxhYmxlIChzdHJ1Y3QgZnJh bWUgKik7CiAjZWxzZSAvKiBub3QgSEFWRV9XSU5ET1dfU1lTVEVNICovCiAjZGVmaW5lIHdp bmRvd19zeXN0ZW1fYXZhaWxhYmxlKGYpICgodm9pZCkgKGYpLCBmYWxzZSkKK2V4dGVybiBf Tm9yZXR1cm4gdm9pZCBjaGVja193aW5kb3dfc3lzdGVtIChzdHJ1Y3QgZnJhbWUgKik7Citl eHRlcm4gX05vcmV0dXJuIHZvaWQgZGVjb2RlX3dpbmRvd19zeXN0ZW1fZnJhbWUgKExpc3Bf T2JqZWN0KTsKICNlbmRpZiAvKiBIQVZFX1dJTkRPV19TWVNURU0gKi8KLWV4dGVybiB2b2lk IGNoZWNrX3dpbmRvd19zeXN0ZW0gKHN0cnVjdCBmcmFtZSAqKTsKIGV4dGVybiB2b2lkIGZy YW1lX21ha2VfcG9pbnRlcl9pbnZpc2libGUgKHN0cnVjdCBmcmFtZSAqKTsKIGV4dGVybiB2 b2lkIGZyYW1lX21ha2VfcG9pbnRlcl92aXNpYmxlIChzdHJ1Y3QgZnJhbWUgKik7CiBleHRl cm4gTGlzcF9PYmplY3QgZGVsZXRlX2ZyYW1lIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3Qp OwotLSAKMi44LjMKCg== --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=UTF-8; name="0002-Fix-unused-variable-compiler-warnings.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Fix-unused-variable-compiler-warnings.patch" RnJvbSAzYTM3M2Q3ZGMyMmJlZTc5NTUxOWY2MTllMDUwNGQyM2ZiNzg0Y2FjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogVHVlLCAxNCBKdW4gMjAxNiAxNTowOTozNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg Mi83XSBGaXggInVudXNlZCB2YXJpYWJsZSIgY29tcGlsZXIgd2FybmluZ3MKCiogc3JjL2Zy YW1lLmggKEZSQU1FX0ZSSU5HRV9DT0xTLCBGUkFNRV9UT1RBTF9GUklOR0VfV0lEVEgpCihG UkFNRV9MRUZUX0ZSSU5HRV9XSURUSCwgRlJBTUVfUklHSFRfRlJJTkdFX1dJRFRIKQooRlJB TUVfSU5URVJOQUxfQk9SREVSX1dJRFRILCBGUkFNRV9SSUdIVF9ESVZJREVSX1dJRFRIKQoo RlJBTUVfQk9UVE9NX0RJVklERVJfV0lEVEgpOiBFeHBsaWNpdGx5IGRpc2NhcmQgdW51c2Vk IGFyZ3VtZW50LgoKKiBzcmMvaW1hZ2UuYyBbSEFWRV9OVEdVSV0gKERlZmF1bHREZXB0aE9m U2NyZWVuKTogUmVtb3ZlIHVudXNlZAptYWNyby4KKHhfY3JlYXRlX2JpdG1hcF9mcm9tX2Rh dGEpOiBEZWNsYXJlICdmcmFtZScuCih4X2NyZWF0ZV9iaXRtYXBfZnJvbV9maWxlKTogRG9u J3QgZGVjbGFyZSB1bnVzZWQgdmFyaWFibGUKZHB5aW5mby4KCiogc3JjL3czMmZucy5jIChG eF9zaG93X3RpcCk6IERlY2xhcmUgJ2YnLgooRnhfZmlsZV9kaWFsb2cpOiBEZWNsYXJlICdm aWx0ZXJfYScgb25seSBpZiBub3QgTlRHVUlfVU5JQ09ERS4KCiogc3JjL3czMnRlcm0uYyAo dzMyX3Njcm9sbF9iYXJfaGFuZGxlX2NsaWNrKToKKHczMl9ob3Jpem9udGFsX3Njcm9sbF9i YXJfaGFuZGxlX2NsaWNrKTogRGVjbGFyZSAnZicuCgoqIHNyYy93MzJ0ZXJtLmggKEZSQU1F X0RJU1BMQVlfSU5GTyk6IEV4cGxpY2l0bHkgZGlzY2FyZCB1bnVzZWQKYXJndW1lbnQuCgoq IHNyYy94ZGlzcC5jIChoYW5kbGVfc2luZ2xlX2Rpc3BsYXlfc3BlYyk6IERlY2xhcmUKJ2Zy aW5nZV9iaXRtYXAnIG9ubHkgaWYgSEFWRV9XSU5ET1dfU1lTVEVNLgooYXBwZW5kX3NwYWNl X2Zvcl9uZXdsaW5lKTogRGVjbGFyZSAnZycgb25seSBpZgpIQVZFX1dJTkRPV19TWVNURU0u CihGbW92ZV9wb2ludF92aXN1YWxseSk6IERlY2xhcmUgYW5kIHNldCAndGFyZ2V0X2lzX2Vv bF9wJyBvbmx5IGlmCkhBVkVfV0lORE9XX1NZU1RFTS4KKHNob3dfbW91c2VfZmFjZSk6IERl Y2xhcmUgYW5kIHNldCAnZicgYW5kICdwaHlzX2N1cnNvcl9wJyBvbmx5IGlmCkhBVkVfV0lO RE9XX1NZU1RFTS4KKG5vdGVfbW9kZV9saW5lX29yX21hcmdpbl9oaWdobGlnaHQpOiBEZWNs YXJlIGFuZCBzZXQgJ2N1cnNvcicKb25seSBpZiBIQVZFX1dJTkRPV19TWVNURU0uCihub3Rl X21vdXNlX2hpZ2hsaWdodCk6IERlY2xhcmUgYW5kIHNldCAnY3Vyc29yJyBhbmQgJ3BvaW50 ZXInCm9ubHkgaWYgSEFWRV9XSU5ET1dfU1lTVEVNLgoKKiBzcmMveGZhY2VzLmMgKHJlYWxp emVfZGVmYXVsdF9mYWNlKTogRGVjbGFyZSBhbmQgc2V0ICdmYWNlJyBvbmx5CmlmIEhBVkVf WF9XSU5ET1dTLgoKKiBzcmMvZnJhbWUuYyAoRmljb25pZnlfZnJhbWUsIEZzZXRfZnJhbWVf cG9zaXRpb24pOiBEZWNsYXJlIGFuZApzZXQgJ2YnIG9ubHkgaWYgSEFWRV9XSU5ET1dfU1lT VEVNLgoKKiBzcmMvZm9udC5jIChmb250X29wZW5fZW50aXR5KTogRGVjbGFyZSBhbmQgc2V0 ICdtaW5fd2lkdGgnIG9ubHkKaWYgSEFWRV9XSU5ET1dfU1lTVEVNLgoKKiBzcmMvZGlzcGV4 dGVybi5oIChGQUNFX1NVSVRBQkxFX0ZPUl9BU0NJSV9DSEFSX1ApCihGQUNFX0ZPUl9DSEFS KTogRXhwbGljaXRseSBkaXNjYXJkIHVudXNlZCBhcmd1bWVudHMuCgoqIHNyYy9jb21wb3Np dGUuYyAoYXV0b2NtcF9jaGFycyk6IERlY2xhcmUgYW5kIHNldCAnZicgb25seSBpZgpIQVZF X1dJTkRPV19TWVNURU0uCi0tLQogc3JjL2NvbXBvc2l0ZS5jICB8ICAyICsrCiBzcmMvZGlz cGV4dGVybi5oIHwgIDcgKysrKystLQogc3JjL2ZvbnQuYyAgICAgICB8ICA3ICsrKysrKy0K IHNyYy9mcmFtZS5jICAgICAgfCAgNiArKy0tLS0KIHNyYy9mcmFtZS5oICAgICAgfCAxNCAr KysrKysrLS0tLS0tLQogc3JjL2ltYWdlLmMgICAgICB8ICA2ICsrKy0tLQogc3JjL3czMmZu cy5jICAgICB8ICA0ICsrKy0KIHNyYy93MzJ0ZXJtLmMgICAgfCAgMiArKwogc3JjL3czMnRl cm0uaCAgICB8ICAyICstCiBzcmMveGRpc3AuYyAgICAgIHwgMzQgKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQogc3JjL3hmYWNlcy5jICAgICB8ICA2ICsrKystLQogMTEg ZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2NvbXBvc2l0ZS5jIGIvc3JjL2NvbXBvc2l0ZS5jCmluZGV4IGJlZjFj NWYuLjRmOTc1OGIgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wb3NpdGUuYworKysgYi9zcmMvY29t cG9zaXRlLmMKQEAgLTg2Nyw3ICs4NjcsOSBAQCBhdXRvY21wX2NoYXJzIChMaXNwX09iamVj dCBydWxlLCBwdHJkaWZmX3QgY2hhcnBvcywgcHRyZGlmZl90IGJ5dGVwb3MsCiAJICAgICAg IExpc3BfT2JqZWN0IHN0cmluZykKIHsKICAgcHRyZGlmZl90IGNvdW50ID0gU1BFQ1BETF9J TkRFWCAoKTsKKyNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KICAgc3RydWN0IGZyYW1lICpm ID0gWEZSQU1FICh3aW4tPmZyYW1lKTsKKyNlbmRpZgogICBMaXNwX09iamVjdCBwb3MgPSBt YWtlX251bWJlciAoY2hhcnBvcyk7CiAgIHB0cmRpZmZfdCB0bzsKICAgcHRyZGlmZl90IHB0 ID0gUFQsIHB0X2J5dGUgPSBQVF9CWVRFOwpkaWZmIC0tZ2l0IGEvc3JjL2Rpc3BleHRlcm4u aCBiL3NyYy9kaXNwZXh0ZXJuLmgKaW5kZXggZTgzYjdjNy4uOTg3ZDdmOCAxMDA2NDQKLS0t IGEvc3JjL2Rpc3BleHRlcm4uaAorKysgYi9zcmMvZGlzcGV4dGVybi5oCkBAIC0xODQzLDgg KzE4NDMsMTEgQEAgc3RydWN0IGZhY2VfY2FjaGUKIAogI2Vsc2UgLyogbm90IEhBVkVfV0lO RE9XX1NZU1RFTSAqLwogCi0jZGVmaW5lIEZBQ0VfU1VJVEFCTEVfRk9SX0FTQ0lJX0NIQVJf UChGQUNFLCBDSEFSKSB0cnVlCi0jZGVmaW5lIEZBQ0VfRk9SX0NIQVIoRiwgRkFDRSwgQ0hB UiwgUE9TLCBPQkpFQ1QpICgoRkFDRSktPmlkKQorI2RlZmluZSBGQUNFX1NVSVRBQkxFX0ZP Ul9BU0NJSV9DSEFSX1AoRkFDRSwgQ0hBUikJICAgXAorICAoKHZvaWQpIChGQUNFKSwgKHZv aWQpIChDSEFSKSwgdHJ1ZSkKKyNkZWZpbmUgRkFDRV9GT1JfQ0hBUihGLCBGQUNFLCBDSEFS LCBQT1MsIE9CSkVDVCkJICAgXAorICAoKHZvaWQpIChGKSwgKHZvaWQpIChGQUNFKSwgKHZv aWQpIChDSEFSKSwgKHZvaWQpIChQT1MpLCBcCisgICAodm9pZCkgKE9CSkVDVCksIChGQUNF KS0+aWQpCiAKICNlbmRpZiAvKiBub3QgSEFWRV9XSU5ET1dfU1lTVEVNICovCiAKZGlmZiAt LWdpdCBhL3NyYy9mb250LmMgYi9zcmMvZm9udC5jCmluZGV4IGYyODk4OTEuLmNlZGI0MDAg MTAwNjQ0Ci0tLSBhL3NyYy9mb250LmMKKysrIGIvc3JjL2ZvbnQuYwpAQCAtMjg2Myw3ICsy ODYzLDEwIEBAIGZvbnRfb3Blbl9lbnRpdHkgKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmpl Y3QgZW50aXR5LCBpbnQgcGl4ZWxfc2l6ZSkKICAgc3RydWN0IGZvbnRfZHJpdmVyX2xpc3Qg KmRyaXZlcl9saXN0OwogICBMaXNwX09iamVjdCBvYmpsaXN0LCBzaXplLCB2YWwsIGZvbnRf b2JqZWN0OwogICBzdHJ1Y3QgZm9udCAqZm9udDsKLSAgaW50IG1pbl93aWR0aCwgaGVpZ2h0 LCBwc2l6ZTsKKyAgaW50IGhlaWdodCwgcHNpemU7CisjaWZkZWYgSEFWRV9XSU5ET1dfU1lT VEVNCisgIGludCBtaW5fd2lkdGg7CisjZW5kaWYKIAogICBlYXNzZXJ0IChGT05UX0VOVElU WV9QIChlbnRpdHkpKTsKICAgc2l6ZSA9IEFSRUYgKGVudGl0eSwgRk9OVF9TSVpFX0lOREVY KTsKQEAgLTI5MDcsMTAgKzI5MTAsMTIgQEAgZm9udF9vcGVuX2VudGl0eSAoc3RydWN0IGZy YW1lICpmLCBMaXNwX09iamVjdCBlbnRpdHksIGludCBwaXhlbF9zaXplKQogCUZjb25zIChm b250X29iamVjdCwgQVJFRiAoZW50aXR5LCBGT05UX09CSkxJU1RfSU5ERVgpKSk7CiAKICAg Zm9udCA9IFhGT05UX09CSkVDVCAoZm9udF9vYmplY3QpOworI2lmZGVmIEhBVkVfV0lORE9X X1NZU1RFTQogICBtaW5fd2lkdGggPSAoZm9udC0+bWluX3dpZHRoID8gZm9udC0+bWluX3dp ZHRoCiAJICAgICAgIDogZm9udC0+YXZlcmFnZV93aWR0aCA/IGZvbnQtPmF2ZXJhZ2Vfd2lk dGgKIAkgICAgICAgOiBmb250LT5zcGFjZV93aWR0aCA/IGZvbnQtPnNwYWNlX3dpZHRoCiAJ ICAgICAgIDogMSk7CisjZW5kaWYKIAogICBpbnQgZm9udF9hc2NlbnQsIGZvbnRfZGVzY2Vu dDsKICAgZ2V0X2ZvbnRfYXNjZW50X2Rlc2NlbnQgKGZvbnQsICZmb250X2FzY2VudCwgJmZv bnRfZGVzY2VudCk7CmRpZmYgLS1naXQgYS9zcmMvZnJhbWUuYyBiL3NyYy9mcmFtZS5jCmlu ZGV4IDY1M2Q2NjAuLjNmY2RkNTggMTAwNjQ0Ci0tLSBhL3NyYy9mcmFtZS5jCisrKyBiL3Ny Yy9mcmFtZS5jCkBAIC0yMTQzLDEzICsyMTQzLDEyIEBAIERFRlVOICgiaWNvbmlmeS1mcmFt ZSIsIEZpY29uaWZ5X2ZyYW1lLCBTaWNvbmlmeV9mcmFtZSwKIElmIG9taXR0ZWQsIEZSQU1F IGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZnJhbWUuICAqLykKICAgKExp c3BfT2JqZWN0IGZyYW1lKQogewotICBzdHJ1Y3QgZnJhbWUgKmYgPSBkZWNvZGVfbGl2ZV9m cmFtZSAoZnJhbWUpOwotCiAgIC8qIERvbid0IGFsbG93IG1pbmlidWZfd2luZG93IHRvIHJl bWFpbiBvbiBhbiBpY29uaWZpZWQgZnJhbWUuICAqLwogICBjaGVja19taW5pYnVmX3dpbmRv dyAoZnJhbWUsIEVRIChtaW5pYnVmX3dpbmRvdywgc2VsZWN0ZWRfd2luZG93KSk7CiAKICAg LyogSSB0aGluayB0aGlzIHNob3VsZCBiZSBkb25lIHdpdGggYSBob29rLiAgKi8KICNpZmRl ZiBIQVZFX1dJTkRPV19TWVNURU0KKyAgc3RydWN0IGZyYW1lICpmID0gZGVjb2RlX2xpdmVf ZnJhbWUgKGZyYW1lKTsKICAgaWYgKEZSQU1FX1dJTkRPV19QIChmKSkKICAgICAgIHhfaWNv bmlmeV9mcmFtZSAoZik7CiAjZW5kaWYKQEAgLTMwMTUsMTMgKzMwMTQsMTIgQEAgb3IgYm90 dG9tIGVkZ2Ugb2YgdGhlIG91dGVyIGZyYW1lIG9mIEZSQU1FIHJlbGF0aXZlIHRvIHRoZSBy aWdodCBvcgogYm90dG9tIGVkZ2Ugb2YgRlJBTUUncyBkaXNwbGF5LiAgKi8pCiAgIChMaXNw X09iamVjdCBmcmFtZSwgTGlzcF9PYmplY3QgeCwgTGlzcF9PYmplY3QgeSkKIHsKLSAgcmVn aXN0ZXIgc3RydWN0IGZyYW1lICpmID0gZGVjb2RlX2xpdmVfZnJhbWUgKGZyYW1lKTsKLQog ICBDSEVDS19UWVBFX1JBTkdFRF9JTlRFR0VSIChpbnQsIHgpOwogICBDSEVDS19UWVBFX1JB TkdFRF9JTlRFR0VSIChpbnQsIHkpOwogCiAgIC8qIEkgdGhpbmsgdGhpcyBzaG91bGQgYmUg ZG9uZSB3aXRoIGEgaG9vay4gICovCiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCisgIHJl Z2lzdGVyIHN0cnVjdCBmcmFtZSAqZiA9IGRlY29kZV9saXZlX2ZyYW1lIChmcmFtZSk7CiAg IGlmIChGUkFNRV9XSU5ET1dfUCAoZikpCiAgICAgeF9zZXRfb2Zmc2V0IChmLCBYSU5UICh4 KSwgWElOVCAoeSksIDEpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvZnJhbWUuaCBiL3Ny Yy9mcmFtZS5oCmluZGV4IDAxODljYTEuLmVhNjg0MjEgMTAwNjQ0Ci0tLSBhL3NyYy9mcmFt ZS5oCisrKyBiL3NyYy9mcmFtZS5oCkBAIC0xMTgzLDEzICsxMTgzLDEzIEBAIGV4dGVybiBM aXNwX09iamVjdCBWZnJhbWVfbGlzdDsKIAogI2Vsc2UgLyogbm90IEhBVkVfV0lORE9XX1NZ U1RFTSAqLwogCi0jZGVmaW5lIEZSQU1FX0ZSSU5HRV9DT0xTKEYpCTAKLSNkZWZpbmUgRlJB TUVfVE9UQUxfRlJJTkdFX1dJRFRIKEYpCTAKLSNkZWZpbmUgRlJBTUVfTEVGVF9GUklOR0Vf V0lEVEgoRikgIDAKLSNkZWZpbmUgRlJBTUVfUklHSFRfRlJJTkdFX1dJRFRIKEYpIDAKLSNk ZWZpbmUgRlJBTUVfSU5URVJOQUxfQk9SREVSX1dJRFRIKEYpIDAKLSNkZWZpbmUgRlJBTUVf UklHSFRfRElWSURFUl9XSURUSChGKSAwCi0jZGVmaW5lIEZSQU1FX0JPVFRPTV9ESVZJREVS X1dJRFRIKEYpIDAKKyNkZWZpbmUgRlJBTUVfRlJJTkdFX0NPTFMoRikgKCh2b2lkKSAoRiks IDApCisjZGVmaW5lIEZSQU1FX1RPVEFMX0ZSSU5HRV9XSURUSChGKSAoKHZvaWQpIChGKSwg MCkKKyNkZWZpbmUgRlJBTUVfTEVGVF9GUklOR0VfV0lEVEgoRikgKCh2b2lkKSAoRiksIDAp CisjZGVmaW5lIEZSQU1FX1JJR0hUX0ZSSU5HRV9XSURUSChGKSAoKHZvaWQpIChGKSwgMCkK KyNkZWZpbmUgRlJBTUVfSU5URVJOQUxfQk9SREVSX1dJRFRIKEYpICgodm9pZCkgKEYpLCAw KQorI2RlZmluZSBGUkFNRV9SSUdIVF9ESVZJREVSX1dJRFRIKEYpICgodm9pZCkgKEYpLCAw KQorI2RlZmluZSBGUkFNRV9CT1RUT01fRElWSURFUl9XSURUSChGKSAoKHZvaWQpIChGKSwg MCkKIAogI2VuZGlmIC8qIG5vdCBIQVZFX1dJTkRPV19TWVNURU0gKi8KIAwKZGlmZiAtLWdp dCBhL3NyYy9pbWFnZS5jIGIvc3JjL2ltYWdlLmMKaW5kZXggNjU3ODUyYi4uODhlYzJiNyAx MDA2NDQKLS0tIGEvc3JjL2ltYWdlLmMKKysrIGIvc3JjL2ltYWdlLmMKQEAgLTgwLDcgKzgw LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgdzMyX2JpdG1hcF9yZWNvcmQgQml0bWFwX1JlY29yZDsK ICNkZWZpbmUgUElYX01BU0tfRFJBVwkxCiAKICNkZWZpbmUgeF9kZWZpbmVkX2NvbG9yIHcz Ml9kZWZpbmVkX2NvbG9yCi0jZGVmaW5lIERlZmF1bHREZXB0aE9mU2NyZWVuKHNjcmVlbikg KG9uZV93MzJfZGlzcGxheV9pbmZvLm5fY2JpdHMpCiAKICNlbmRpZiAvKiBIQVZFX05UR1VJ ICovCiAKQEAgLTIyMyw2ICsyMjIsNyBAQCB4X2NyZWF0ZV9iaXRtYXBfZnJvbV9kYXRhIChz dHJ1Y3QgZnJhbWUgKmYsIGNoYXIgKmJpdHMsIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaQog I2VuZGlmIC8qIEhBVkVfWF9XSU5ET1dTICovCiAKICNpZmRlZiBIQVZFX05UR1VJCisgIExp c3BfT2JqZWN0IGZyYW1lIFVOSU5JVDsKICAgUGl4bWFwIGJpdG1hcDsKICAgYml0bWFwID0g Q3JlYXRlQml0bWFwICh3aWR0aCwgaGVpZ2h0LAogCQkJIEZSQU1FX0RJU1BMQVlfSU5GTyAo WEZSQU1FIChmcmFtZSkpLT5uX3BsYW5lcywKQEAgLTI3Miw5ICsyNzIsOSBAQCB4X2NyZWF0 ZV9iaXRtYXBfZnJvbV9maWxlIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IGZpbGUp CiB7CiAjaWZkZWYgSEFWRV9OVEdVSQogICByZXR1cm4gLTE7ICAvKiBXMzJfVE9ETyA6IGJp dG1hcCBzdXBwb3J0ICovCi0jZW5kaWYgLyogSEFWRV9OVEdVSSAqLwotCisjZWxzZQogICBE aXNwbGF5X0luZm8gKmRweWluZm8gPSBGUkFNRV9ESVNQTEFZX0lORk8gKGYpOworI2VuZGlm CiAKICNpZmRlZiBIQVZFX05TCiAgIHB0cmRpZmZfdCBpZDsKZGlmZiAtLWdpdCBhL3NyYy93 MzJmbnMuYyBiL3NyYy93MzJmbnMuYwppbmRleCBmMmI0MzhjLi5mZjQ1ZjUzIDEwMDY0NAot LS0gYS9zcmMvdzMyZm5zLmMKKysrIGIvc3JjL3czMmZucy5jCkBAIC02ODg4LDcgKzY4ODgs NyBAQCBBIHRvb2x0aXAncyBtYXhpbXVtIHNpemUgaXMgc3BlY2lmaWVkIGJ5IGB4LW1heC10 b29sdGlwLXNpemUnLgogVGV4dCBsYXJnZXIgdGhhbiB0aGUgc3BlY2lmaWVkIHNpemUgaXMg Y2xpcHBlZC4gICovKQogICAoTGlzcF9PYmplY3Qgc3RyaW5nLCBMaXNwX09iamVjdCBmcmFt ZSwgTGlzcF9PYmplY3QgcGFybXMsIExpc3BfT2JqZWN0IHRpbWVvdXQsIExpc3BfT2JqZWN0 IGR4LCBMaXNwX09iamVjdCBkeSkKIHsKLSAgc3RydWN0IGZyYW1lICp0aXBfZjsKKyAgc3Ry dWN0IGZyYW1lICpmLCAqdGlwX2Y7CiAgIHN0cnVjdCB3aW5kb3cgKnc7CiAgIGludCByb290 X3gsIHJvb3RfeTsKICAgc3RydWN0IGJ1ZmZlciAqb2xkX2J1ZmZlcjsKQEAgLTcyODgsNyAr NzI4OCw5IEBAIHZhbHVlIG9mIERJUiBhcyBpbiBwcmV2aW91cyBpbnZvY2F0aW9uczsgdGhp cyBpcyBzdGFuZGFyZCBXaW5kb3dzIGJlaGF2aW9yLiAgKi8pCiB7CiAgIC8qIEZpbHRlciBp bmRleDogMTogQWxsIEZpbGVzLCAyOiBEaXJlY3RvcmllcyBvbmx5ICAqLwogICBzdGF0aWMg Y29uc3Qgd2NoYXJfdCBmaWx0ZXJfd1tdID0gTCJBbGwgRmlsZXMgKCouKilcMCouKlwwRGly ZWN0b3JpZXNcMCp8KlwwIjsKKyNpZm5kZWYgTlRHVUlfVU5JQ09ERQogICBzdGF0aWMgY29u c3QgY2hhciBmaWx0ZXJfYVtdID0gIkFsbCBGaWxlcyAoKi4qKVwwKi4qXDBEaXJlY3Rvcmll c1wwKnwqXDAiOworI2VuZGlmCiAKICAgTGlzcF9PYmplY3QgZmlsZW5hbWUgPSBkZWZhdWx0 X2ZpbGVuYW1lOwogICBzdHJ1Y3QgZnJhbWUgKmYgPSBTRUxFQ1RFRF9GUkFNRSAoKTsKZGlm ZiAtLWdpdCBhL3NyYy93MzJ0ZXJtLmMgYi9zcmMvdzMydGVybS5jCmluZGV4IGMxNmM4ZjQu LjY0OWU3NDMgMTAwNjQ0Ci0tLSBhL3NyYy93MzJ0ZXJtLmMKKysrIGIvc3JjL3czMnRlcm0u YwpAQCAtNDE4NCw2ICs0MTg0LDcgQEAgdzMyX3Njcm9sbF9iYXJfaGFuZGxlX2NsaWNrIChz dHJ1Y3Qgc2Nyb2xsX2JhciAqYmFyLCBXMzJNc2cgKm1zZywKICAgICBpbnQgZHJhZ2dpbmcg PSBiYXItPmRyYWdnaW5nOwogICAgIFNDUk9MTElORk8gc2k7CiAgICAgaW50IHNiX2V2ZW50 ID0gTE9XT1JEIChtc2ctPm1zZy53UGFyYW0pOworICAgIHN0cnVjdCBmcmFtZSAqZjsKIAog ICAgIHNpLmNiU2l6ZSA9IHNpemVvZiAoc2kpOwogICAgIGlmIChzYl9ldmVudCA9PSBTQl9U SFVNQlRSQUNLKQpAQCAtNDI5OCw2ICs0Mjk5LDcgQEAgdzMyX2hvcml6b250YWxfc2Nyb2xs X2Jhcl9oYW5kbGVfY2xpY2sgKHN0cnVjdCBzY3JvbGxfYmFyICpiYXIsIFczMk1zZyAqbXNn LAogICAgIGludCBkcmFnZ2luZyA9IGJhci0+ZHJhZ2dpbmc7CiAgICAgU0NST0xMSU5GTyBz aTsKICAgICBpbnQgc2JfZXZlbnQgPSBMT1dPUkQgKG1zZy0+bXNnLndQYXJhbSk7CisgICAg c3RydWN0IGZyYW1lICpmOwogCiAgICAgc2kuY2JTaXplID0gc2l6ZW9mIChzaSk7CiAgICAg aWYgKHNiX2V2ZW50ID09IFNCX1RIVU1CVFJBQ0spCmRpZmYgLS1naXQgYS9zcmMvdzMydGVy bS5oIGIvc3JjL3czMnRlcm0uaAppbmRleCBlMTM0ZGE1Li4zMjA0NzcwIDEwMDY0NAotLS0g YS9zcmMvdzMydGVybS5oCisrKyBiL3NyYy93MzJ0ZXJtLmgKQEAgLTM5OSw3ICszOTksNyBA QCBleHRlcm4gc3RydWN0IHczMl9vdXRwdXQgdzMydGVybV9kaXNwbGF5OwogI2RlZmluZSBG UkFNRV9CQVNFTElORV9PRkZTRVQoZikgKChmKS0+b3V0cHV0X2RhdGEudzMyLT5iYXNlbGlu ZV9vZmZzZXQpCiAKIC8qIFRoaXMgZ2l2ZXMgdGhlIHczMl9kaXNwbGF5X2luZm8gc3RydWN0 dXJlIGZvciB0aGUgZGlzcGxheSBGIGlzIG9uLiAgKi8KLSNkZWZpbmUgRlJBTUVfRElTUExB WV9JTkZPKGYpICgmb25lX3czMl9kaXNwbGF5X2luZm8pCisjZGVmaW5lIEZSQU1FX0RJU1BM QVlfSU5GTyhmKSAoKHZvaWQpIChmKSwgKCZvbmVfdzMyX2Rpc3BsYXlfaW5mbykpCiAKIC8q IFRoaXMgaXMgdGhlIGBEaXNwbGF5IConIHdoaWNoIGZyYW1lIEYgaXMgb24uICAqLwogI2Rl ZmluZSBGUkFNRV9YX0RJU1BMQVkoZikgKDApCmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBi L3NyYy94ZGlzcC5jCmluZGV4IGQ1ODkwODAuLjlhNTgyMzggMTAwNjQ0Ci0tLSBhL3NyYy94 ZGlzcC5jCisrKyBiL3NyYy94ZGlzcC5jCkBAIC01MDE3LDcgKzUwMTcsOSBAQCBoYW5kbGVf c2luZ2xlX2Rpc3BsYXlfc3BlYyAoc3RydWN0IGl0ICppdCwgTGlzcF9PYmplY3Qgc3BlYywg TGlzcF9PYmplY3Qgb2JqZWN0LAogCSAgfHwgRVEgKFhDQVIgKHNwZWMpLCBRcmlnaHRfZnJp bmdlKSkKICAgICAgICYmIENPTlNQIChYQ0RSIChzcGVjKSkpCiAgICAgeworI2lmZGVmIEhB VkVfV0lORE9XX1NZU1RFTQogICAgICAgaW50IGZyaW5nZV9iaXRtYXA7CisjZW5kaWYKIAog ICAgICAgaWYgKGl0KQogCXsKQEAgLTE5NTA5LDggKzE5NTExLDkgQEAgYXBwZW5kX3NwYWNl X2Zvcl9uZXdsaW5lIChzdHJ1Y3QgaXQgKml0LCBib29sIGRlZmF1bHRfZmFjZV9wKQogCSAg c3RydWN0IHRleHRfcG9zIHNhdmVkX3BvczsKIAkgIExpc3BfT2JqZWN0IHNhdmVkX29iamVj dDsKIAkgIHN0cnVjdCBmYWNlICpmYWNlOworI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQog CSAgc3RydWN0IGdseXBoICpnOwotCisjZW5kaWYKIAkgIHNhdmVkX29iamVjdCA9IGl0LT5v YmplY3Q7CiAJICBzYXZlZF9wb3MgPSBpdC0+cG9zaXRpb247CiAKQEAgLTIxNjg3LDggKzIx NjkwLDkgQEAgVmFsdWUgaXMgdGhlIG5ldyBjaGFyYWN0ZXIgcG9zaXRpb24gb2YgcG9pbnQu ICAqLykKICAgICAgIGludCBwdF94LCB0YXJnZXRfeCwgcGl4ZWxfd2lkdGgsIHB0X3Zwb3M7 CiAgICAgICBib29sIGF0X2VvbF9wOwogICAgICAgYm9vbCBvdmVyc2hvb3RfZXhwZWN0ZWQg PSBmYWxzZTsKKyNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KICAgICAgIGJvb2wgdGFyZ2V0 X2lzX2VvbF9wID0gZmFsc2U7Ci0KKyNlbmRpZgogICAgICAgLyogU2V0dXAgdGhlIGFyZW5h LiAgKi8KICAgICAgIFNFVF9URVhUX1BPUyAocHQsIFBULCBQVF9CWVRFKTsKICAgICAgIHN0 YXJ0X2Rpc3BsYXkgKCZpdCwgdywgcHQpOwpAQCAtMjE4MDIsNyArMjE4MDYsOSBAQCBWYWx1 ZSBpcyB0aGUgbmV3IGNoYXJhY3RlciBwb3NpdGlvbiBvZiBwb2ludC4gICovKQogCSAgICB7 CiAJICAgICAgbW92ZV9pdF9ieV9saW5lcyAoJml0LCAtMSk7CiAJICAgICAgdGFyZ2V0X3gg PSBpdC5sYXN0X3Zpc2libGVfeCAtICFGUkFNRV9XSU5ET1dfUCAoaXQuZik7CisjaWZkZWYg SEFWRV9XSU5ET1dfU1lTVEVNCiAJICAgICAgdGFyZ2V0X2lzX2VvbF9wID0gdHJ1ZTsKKyNl bmRpZgogCSAgICAgIC8qIFVuZGVyIHdvcmQtd3JhcCwgd2UgZG9uJ3Qga25vdyB0aGUgeCBj b29yZGluYXRlIG9mCiAJCSB0aGUgbGFzdCBjaGFyYWN0ZXIgZGlzcGxheWVkIG9uIHRoZSBw cmV2aW91cyBsaW5lLAogCQkgd2hpY2ggaW1tZWRpYXRlbHkgcHJlY2VkZXMgdGhlIHdyYXAg cG9pbnQuICBUbyBmaW5kCkBAIC0yODU5NCw3ICsyODYwMCw5IEBAIHN0YXRpYyB2b2lkCiBz aG93X21vdXNlX2ZhY2UgKE1vdXNlX0hMSW5mbyAqaGxpbmZvLCBlbnVtIGRyYXdfZ2x5cGhz X2ZhY2UgZHJhdykKIHsKICAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKGhsaW5mby0+ bW91c2VfZmFjZV93aW5kb3cpOworI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQogICBzdHJ1 Y3QgZnJhbWUgKmYgPSBYRlJBTUUgKFdJTkRPV19GUkFNRSAodykpOworI2VuZGlmCiAKICAg aWYgKC8qIElmIHdpbmRvdyBpcyBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBkZXN0cm95ZWQs IGRvbid0IGJvdGhlcgogCSB0byBkbyBhbnl0aGluZy4gICovCkBAIC0yODYwNSw3ICsyODYx MywxMCBAQCBzaG93X21vdXNlX2ZhY2UgKE1vdXNlX0hMSW5mbyAqaGxpbmZvLCBlbnVtIGRy YXdfZ2x5cGhzX2ZhY2UgZHJhdykKIAkgYW55bW9yZS4gIFRoaXMgY2FuIGhhcHBlbiB3aGVu IGEgd2luZG93IGlzIHNwbGl0LiAgKi8KICAgICAgICYmIGhsaW5mby0+bW91c2VfZmFjZV9l bmRfcm93IDwgdy0+Y3VycmVudF9tYXRyaXgtPm5yb3dzKQogICAgIHsKKyNpZmRlZiBIQVZF X1dJTkRPV19TWVNURU0KICAgICAgIGJvb2wgcGh5c19jdXJzb3Jfb25fcCA9IHctPnBoeXNf Y3Vyc29yX29uX3A7CisjZW5kaWYKKwogICAgICAgc3RydWN0IGdseXBoX3JvdyAqcm93LCAq Zmlyc3QsICpsYXN0OwogCiAgICAgICBmaXJzdCA9IE1BVFJJWF9ST1cgKHctPmN1cnJlbnRf bWF0cml4LCBobGluZm8tPm1vdXNlX2ZhY2VfYmVnX3Jvdyk7CkBAIC0yOTY5Nyw4ICsyOTcw OCw4IEBAIG5vdGVfbW9kZV9saW5lX29yX21hcmdpbl9oaWdobGlnaHQgKExpc3BfT2JqZWN0 IHdpbmRvdywgaW50IHgsIGludCB5LAogICBNb3VzZV9ITEluZm8gKmhsaW5mbyA9IE1PVVNF X0hMX0lORk8gKGYpOwogI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQogICBEaXNwbGF5X0lu Zm8gKmRweWluZm87Ci0jZW5kaWYKICAgQ3Vyc29yIGN1cnNvciA9IE5vX0N1cnNvcjsKKyNl bmRpZgogICBMaXNwX09iamVjdCBwb2ludGVyID0gUW5pbDsKICAgaW50IGR4LCBkeSwgd2lk dGgsIGhlaWdodDsKICAgcHRyZGlmZl90IGNoYXJwb3M7CkBAIC0yOTk1MCw5ICsyOTk2MSwx MCBAQCBub3RlX21vZGVfbGluZV9vcl9tYXJnaW5faGlnaGxpZ2h0IChMaXNwX09iamVjdCB3 aW5kb3csIGludCB4LCBpbnQgeSwKIAkgICAgICAgJiYgaGxpbmZvLT5tb3VzZV9mYWNlX2Jl Z19yb3cgPT0gdnBvcyApCiAJICAgIHJldHVybjsKIAorI2lmZGVmIEhBVkVfV0lORE9XX1NZ U1RFTQogCSAgaWYgKGNsZWFyX21vdXNlX2ZhY2UgKGhsaW5mbykpCiAJICAgIGN1cnNvciA9 IE5vX0N1cnNvcjsKLQorI2VuZGlmCiAJICBpZiAoIXJvdy0+cmV2ZXJzZWRfcCkKIAkgICAg ewogCSAgICAgIGhsaW5mby0+bW91c2VfZmFjZV9iZWdfY29sID0gaHBvczsKQEAgLTMwMDE3 LDggKzMwMDI5LDEwIEBAIG5vdGVfbW91c2VfaGlnaGxpZ2h0IChzdHJ1Y3QgZnJhbWUgKmYs IGludCB4LCBpbnQgeSkKICAgZW51bSB3aW5kb3dfcGFydCBwYXJ0ID0gT05fTk9USElORzsK ICAgTGlzcF9PYmplY3Qgd2luZG93OwogICBzdHJ1Y3Qgd2luZG93ICp3OworI2lmZGVmIEhB VkVfV0lORE9XX1NZU1RFTQogICBDdXJzb3IgY3Vyc29yID0gTm9fQ3Vyc29yOwogICBMaXNw X09iamVjdCBwb2ludGVyID0gUW5pbDsgIC8qIFRha2VzIHByZWNlZGVuY2Ugb3ZlciBjdXJz b3IhICAqLworI2VuZGlmCiAgIHN0cnVjdCBidWZmZXIgKmI7CiAKICAgLyogV2hlbiBhIG1l bnUgaXMgYWN0aXZlLCBkb24ndCBoaWdobGlnaHQgYmVjYXVzZSB0aGlzIGxvb2tzIG9kZC4g ICovCkBAIC0zMDIwMSw5ICszMDIxNSw5IEBAIG5vdGVfbW91c2VfaGlnaGxpZ2h0IChzdHJ1 Y3QgZnJhbWUgKmYsIGludCB4LCBpbnQgeSkKIAkgICAgICAmJiBnbHlwaC0+dHlwZSA9PSBT VFJFVENIX0dMWVBICiAJICAgICAgJiYgZ2x5cGgtPmF2b2lkX2N1cnNvcl9wKSkKIAl7Cisj aWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAJICBpZiAoY2xlYXJfbW91c2VfZmFjZSAoaGxp bmZvKSkKIAkgICAgY3Vyc29yID0gTm9fQ3Vyc29yOwotI2lmZGVmIEhBVkVfV0lORE9XX1NZ U1RFTQogCSAgaWYgKEZSQU1FX1dJTkRPV19QIChmKSAmJiBOSUxQIChwb2ludGVyKSkKIAkg ICAgewogCSAgICAgIGlmIChhcmVhICE9IFRFWFRfQVJFQSkKQEAgLTMwMjU2LDkgKzMwMjcw LDEwIEBAIG5vdGVfbW91c2VfaGlnaGxpZ2h0IChzdHJ1Y3QgZnJhbWUgKmYsIGludCB4LCBp bnQgeSkKIAogICAgICAgc2FtZV9yZWdpb24gPSBjb29yZHNfaW5fbW91c2VfZmFjZV9wICh3 LCBocG9zLCB2cG9zKTsKIAorI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQogICAgICAgaWYg KHNhbWVfcmVnaW9uKQogCWN1cnNvciA9IE5vX0N1cnNvcjsKLQorI2VuZGlmCiAgICAgICAv KiBDaGVjayBtb3VzZS1mYWNlIGhpZ2hsaWdodGluZy4gICovCiAgICAgICBpZiAoISBzYW1l X3JlZ2lvbgogCSAgLyogSWYgdGhlcmUgZXhpc3RzIGFuIG92ZXJsYXkgd2l0aCBtb3VzZS1m YWNlIG92ZXJsYXBwaW5nCkBAIC0zMDI4MywxMCArMzAyOTgsMTEgQEAgbm90ZV9tb3VzZV9o aWdobGlnaHQgKHN0cnVjdCBmcmFtZSAqZiwgaW50IHgsIGludCB5KQogCSAgICBnb3RvIGNo ZWNrX2hlbHBfZWNobzsKIAkgIGhsaW5mby0+bW91c2VfZmFjZV9vdmVybGF5ID0gb3Zlcmxh eTsKIAorI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQogCSAgLyogQ2xlYXIgdGhlIGRpc3Bs YXkgb2YgdGhlIG9sZCBhY3RpdmUgcmVnaW9uLCBpZiBhbnkuICAqLwogCSAgaWYgKGNsZWFy X21vdXNlX2ZhY2UgKGhsaW5mbykpCiAJICAgIGN1cnNvciA9IE5vX0N1cnNvcjsKLQorI2Vu ZGlmCiAJICAvKiBJZiBubyBvdmVybGF5IGFwcGxpZXMsIGdldCBhIHRleHQgcHJvcGVydHku ICAqLwogCSAgaWYgKE5JTFAgKG92ZXJsYXkpKQogCSAgICBtb3VzZV9mYWNlID0gRmdldF90 ZXh0X3Byb3BlcnR5IChwb3NpdGlvbiwgUW1vdXNlX2ZhY2UsIG9iamVjdCk7CkBAIC0zMDMx Niw3ICszMDMzMiw5IEBAIG5vdGVfbW91c2VfaGlnaGxpZ2h0IChzdHJ1Y3QgZnJhbWUgKmYs IGludCB4LCBpbnQgeSkKIAkJPSBmYWNlX2F0X3N0cmluZ19wb3NpdGlvbiAodywgb2JqZWN0 LCBwb3MsIDAsICZpZ25vcmUsCiAJCQkJCSAgIGdseXBoLT5mYWNlX2lkLCB0cnVlKTsKIAkg ICAgICBzaG93X21vdXNlX2ZhY2UgKGhsaW5mbywgRFJBV19NT1VTRV9GQUNFKTsKKyNpZmRl ZiBIQVZFX1dJTkRPV19TWVNURU0KIAkgICAgICBjdXJzb3IgPSBOb19DdXJzb3I7CisjZW5k aWYKIAkgICAgfQogCSAgZWxzZQogCSAgICB7CkBAIC0zMDQwMCw3ICszMDQxOCw5IEBAIG5v dGVfbW91c2VfaGlnaGxpZ2h0IChzdHJ1Y3QgZnJhbWUgKmYsIGludCB4LCBpbnQgeSkKIAkJ CQkJICAgICAgOiBYRkFTVElOVCAoYWZ0ZXIpLAogCQkJCQkgICAgICBiZWZvcmVfc3RyaW5n LCBhZnRlcl9zdHJpbmcsCiAJCQkJCSAgICAgIGRpc3Bfc3RyaW5nKTsKKyNpZmRlZiBIQVZF X1dJTkRPV19TWVNURU0KIAkJICBjdXJzb3IgPSBOb19DdXJzb3I7CisjZW5kaWYKIAkJfQog CSAgICB9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL3hmYWNlcy5jIGIvc3JjL3hmYWNlcy5jCmlu ZGV4IGRlNzNjMDEuLjQyNmI5YWIgMTAwNjQ0Ci0tLSBhL3NyYy94ZmFjZXMuYworKysgYi9z cmMveGZhY2VzLmMKQEAgLTUxOTUsMTAgKzUxOTUsMTIgQEAgcmVhbGl6ZV9iYXNpY19mYWNl cyAoc3RydWN0IGZyYW1lICpmKQogc3RhdGljIGJvb2wKIHJlYWxpemVfZGVmYXVsdF9mYWNl IChzdHJ1Y3QgZnJhbWUgKmYpCiB7CisjaWZkZWYgSEFWRV9YX1dJTkRPV1MKICAgc3RydWN0 IGZhY2VfY2FjaGUgKmMgPSBGUkFNRV9GQUNFX0NBQ0hFIChmKTsKKyAgc3RydWN0IGZhY2Ug KmZhY2U7CisjZW5kaWYKICAgTGlzcF9PYmplY3QgbGZhY2U7CiAgIExpc3BfT2JqZWN0IGF0 dHJzW0xGQUNFX1ZFQ1RPUl9TSVpFXTsKLSAgc3RydWN0IGZhY2UgKmZhY2U7CiAKICAgLyog SWYgdGhlIGBkZWZhdWx0JyBmYWNlIGlzIG5vdCB5ZXQga25vd24sIGNyZWF0ZSBpdC4gICov CiAgIGxmYWNlID0gbGZhY2VfZnJvbV9mYWNlX25hbWUgKGYsIFFkZWZhdWx0LCBmYWxzZSk7 CkBAIC01Mjg4LDEwICs1MjkwLDEwIEBAIHJlYWxpemVfZGVmYXVsdF9mYWNlIChzdHJ1Y3Qg ZnJhbWUgKmYpCiAgIGVhc3NlcnQgKGxmYWNlX2Z1bGx5X3NwZWNpZmllZF9wIChYVkVDVE9S IChsZmFjZSktPmNvbnRlbnRzKSk7CiAgIGNoZWNrX2xmYWNlIChsZmFjZSk7CiAgIG1lbWNw eSAoYXR0cnMsIFhWRUNUT1IgKGxmYWNlKS0+Y29udGVudHMsIHNpemVvZiBhdHRycyk7Ci0g IGZhY2UgPSByZWFsaXplX2ZhY2UgKGMsIGF0dHJzLCBERUZBVUxUX0ZBQ0VfSUQpOwogCiAj aWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAjaWZkZWYgSEFWRV9YX1dJTkRPV1MKKyAgZmFj ZSA9IHJlYWxpemVfZmFjZSAoYywgYXR0cnMsIERFRkFVTFRfRkFDRV9JRCk7CiAgIGlmIChG UkFNRV9YX1AgKGYpICYmIGZhY2UtPmZvbnQgIT0gRlJBTUVfRk9OVCAoZikpCiAgICAgewog ICAgICAgLyogVGhpcyBjYW4gaGFwcGVuIHdoZW4gbWFraW5nIGEgZnJhbWUgb24gYSBkaXNw bGF5IHRoYXQgZG9lcwotLSAKMi44LjMKCg== --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=UTF-8; name="0003-Avoid-empty-body-compiler-warnings.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Avoid-empty-body-compiler-warnings.patch" RnJvbSA2Y2QyYmFmZGNmOWFlMmZkYThhMzc3YmNmNWQyNTRhMDkxMzg2MDViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogVHVlLCAxNCBKdW4gMjAxNiAxODoxNzo1NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg My83XSBBdm9pZCAiZW1wdHkgYm9keSIgY29tcGlsZXIgd2FybmluZ3MKCiogc3JjL2NvbmZf cG9zdC5oIChEZWJQcmludCk6IEFkZCBlbXB0eSBicmFjZXMgaWYgbm90IEVNQUNTREVCVUcu Ci0tLQogc3JjL2NvbmZfcG9zdC5oIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbmZfcG9zdC5oIGIv c3JjL2NvbmZfcG9zdC5oCmluZGV4IDQ0NTljYWYuLjI1ZGIwYzYgMTAwNjQ0Ci0tLSBhL3Ny Yy9jb25mX3Bvc3QuaAorKysgYi9zcmMvY29uZl9wb3N0LmgKQEAgLTIxMSw3ICsyMTEsNyBA QCBZb3UgbG9zZTsgLyogRW1hY3MgZm9yIERPUyBtdXN0IGJlIGNvbXBpbGVkIHdpdGggREpH UFAgKi8KIGV4dGVybiB2b2lkIF9EZWJQcmludCAoY29uc3QgY2hhciAqZm10LCAuLi4pOwog IyAgZGVmaW5lIERlYlByaW50KHN0dWZmKSBfRGViUHJpbnQgc3R1ZmYKICMgZWxzZQotIyAg ZGVmaW5lIERlYlByaW50KHN0dWZmKQorIyAgZGVmaW5lIERlYlByaW50KHN0dWZmKSB7fQog IyBlbmRpZgogI2VuZGlmCiAKLS0gCjIuOC4zCgo= --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=UTF-8; name="0004-Fix-format-compiler-warnings.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0004-Fix-format-compiler-warnings.patch" RnJvbSAzNDUwY2Y3ODdmNmIxZWEzZjA4M2UxNDc3MDVjNDU0ZDhlZmQ0NDE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogVHVlLCAxNCBKdW4gMjAxNiAxODo1Mjo0MSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg NC83XSBGaXggImZvcm1hdCIgY29tcGlsZXIgd2FybmluZ3MKCiogc3JjL3czMmZucy5jICh3 MzJfc3RyZXJyb3IpOiBVc2UgZm9ybWF0IHNwZWNpZmllciAlZCBmb3Igc3ByaW50Zgphcmd1 bWVudCBvZiB0eXBlIGludC4KKGVtYWNzX2Fib3J0KTogQ2FzdCBzcHJpbnRmIGFyZ3VtZW50 IG9mIHR5cGUgRFdPUkQgdG8gdW5zaWduZWQgaW50LAphbmQgdXNlIGZvcm1hdCBzcGVjaWZp ZXIgJXgsIGZvciBjb21wYXRpYmlsaXR5IHdpdGggQ3lnd2luLgoKKiBzcmMvdzMyZm9udC5j ICh3MzJfdG9feF9jaGFyc2V0KTogVXNlIGZvcm1hdCBzcGVjaWZpZXIgJWQgZm9yCnNwcmlu dGYgYXJndW1lbnQgb2YgdHlwZSBpbnQuCgoqIHNyYy93MzJ0ZXJtLmMgKHhfZHJhd19nbHlw aGxlc3NfZ2x5cGhfc3RyaW5nX2ZvcmVncm91bmQpOiBDYXN0CnNwcmludGYgYXJndW1lbnQg b2YgdHlwZSBpbnQgdG8gdW5zaWduZWQgaW50IHRvIG1hdGNoICVYIGZvcm1hdApzcGVjaWZp ZXIuCi0tLQogc3JjL3czMmZucy5jICB8IDYgKysrLS0tCiBzcmMvdzMyZm9udC5jIHwgNCAr Ky0tCiBzcmMvdzMydGVybS5jIHwgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3czMmZucy5jIGIvc3Jj L3czMmZucy5jCmluZGV4IGZmNDVmNTMuLjg2ZWJjOGYgMTAwNjQ0Ci0tLSBhL3NyYy93MzJm bnMuYworKysgYi9zcmMvdzMyZm5zLmMKQEAgLTg5NjQsNyArODk2NCw3IEBAIHczMl9zdHJl cnJvciAoaW50IGVycm9yX25vKQogICAgICAgLS1yZXQ7CiAgIGJ1ZltyZXRdID0gJ1wwJzsK ICAgaWYgKCFyZXQpCi0gICAgc3ByaW50ZiAoYnVmLCAidzMyIGVycm9yICV1IiwgZXJyb3Jf bm8pOworICAgIHNwcmludGYgKGJ1ZiwgInczMiBlcnJvciAlZCIsIGVycm9yX25vKTsKIAog ICByZXR1cm4gYnVmOwogfQpAQCAtMTAzMzMsOCArMTAzMzMsOCBAQCBlbWFjc19hYm9ydCAo dm9pZCkKIAkgICAgICAgYnV0IG5vdCBvbiBXaW5kb3dzIDcuICBhZGRyMmxpbmUgZG9lc24n dCBtaW5kIGEgbWlzc2luZwogCSAgICAgICAiMHgiLCBidXQgd2lsbCBiZSBjb25mdXNlZCBi eSBhbiBleHRyYSBvbmUuICAqLwogCSAgICBpZiAoZXhjZXB0X2FkZHIpCi0JICAgICAgc3By aW50ZiAoYnVmLCAiXHJcbkV4Y2VwdGlvbiAweCVseCBhdCB0aGlzIGFkZHJlc3M6XHJcbiVw XHJcbiIsCi0JCSAgICAgICBleGNlcHRfY29kZSwgZXhjZXB0X2FkZHIpOworCSAgICAgIHNw cmludGYgKGJ1ZiwgIlxyXG5FeGNlcHRpb24gMHgleCBhdCB0aGlzIGFkZHJlc3M6XHJcbiVw XHJcbiIsCisJCSAgICAgICAodW5zaWduZWQgaW50KSBleGNlcHRfY29kZSwgZXhjZXB0X2Fk ZHIpOwogCSAgICBpZiAoc3RkZXJyX2ZkID49IDApCiAJICAgICAgewogCQlpZiAoZXhjZXB0 X2FkZHIpCmRpZmYgLS1naXQgYS9zcmMvdzMyZm9udC5jIGIvc3JjL3czMmZvbnQuYwppbmRl eCBiODg4NGE1Li40ZDE1Y2ZmIDEwMDY0NAotLS0gYS9zcmMvdzMyZm9udC5jCisrKyBiL3Ny Yy93MzJmb250LmMKQEAgLTE3NDcsNyArMTc0Nyw3IEBAIHczMl90b194X2NoYXJzZXQgKGlu dCBmbmNoYXJzZXQsIGNoYXIgKm1hdGNoaW5nKQogCiAgICAgZGVmYXVsdDoKICAgICAgIC8q IEVuY29kZSBudW1lcmljYWwgdmFsdWUgb2YgdW5rbm93biBjaGFyc2V0LiAgKi8KLSAgICAg IHNwcmludGYgKGJ1ZiwgIiotIyV1IiwgZm5jaGFyc2V0KTsKKyAgICAgIHNwcmludGYgKGJ1 ZiwgIiotIyVkIiwgZm5jaGFyc2V0KTsKICAgICAgIHJldHVybiBidWY7CiAgICAgfQogCkBA IC0xODM0LDcgKzE4MzQsNyBAQCB3MzJfdG9feF9jaGFyc2V0IChpbnQgZm5jaGFyc2V0LCBj aGFyICptYXRjaGluZykKICAgICAvKiBJZiBubyBtYXRjaCwgZW5jb2RlIHRoZSBudW1lcmlj IHZhbHVlLiAqLwogICAgIGlmICghYmVzdF9tYXRjaCkKICAgICAgIHsKLSAgICAgICAgc3By aW50ZiAoYnVmLCAiKi0jJXUiLCBmbmNoYXJzZXQpOworICAgICAgICBzcHJpbnRmIChidWYs ICIqLSMlZCIsIGZuY2hhcnNldCk7CiAgICAgICAgIHJldHVybiBidWY7CiAgICAgICB9CiAK ZGlmZiAtLWdpdCBhL3NyYy93MzJ0ZXJtLmMgYi9zcmMvdzMydGVybS5jCmluZGV4IDY0OWU3 NDMuLjQ0NjI1MTcgMTAwNjQ0Ci0tLSBhL3NyYy93MzJ0ZXJtLmMKKysrIGIvc3JjL3czMnRl cm0uYwpAQCAtMTQzNCw3ICsxNDM0LDcgQEAgeF9kcmF3X2dseXBobGVzc19nbHlwaF9zdHJp bmdfZm9yZWdyb3VuZCAoc3RydWN0IGdseXBoX3N0cmluZyAqcykKIAl7CiAJICBzcHJpbnRm ICgoY2hhciAqKSBidWYsICIlMCpYIiwKIAkJICAgZ2x5cGgtPnUuZ2x5cGhsZXNzLmNoIDwg MHgxMDAwMCA/IDQgOiA2LAotCQkgICBnbHlwaC0+dS5nbHlwaGxlc3MuY2gpOworCQkgICAo dW5zaWduZWQgaW50KSBnbHlwaC0+dS5nbHlwaGxlc3MuY2gpOwogCSAgc3RyID0gYnVmOwog CX0KIAotLSAKMi44LjMKCg== --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=UTF-8; name="0005-Don-t-define-unneeded-function-on-Cygwin.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0005-Don-t-define-unneeded-function-on-Cygwin.patch" RnJvbSBmOTcwYmVkYWYwYjZhMjJiNzE3YzhjODAzNjYxMmYxYTY0MmU1YWE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogVHVlLCAxNCBKdW4gMjAxNiAxOTowMTozMiAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg NS83XSA9P1VURi04P3E/RG9uPUUyPTgwPTk5dD0yMGRlZmluZT0yMHVubmVlZGVkPTIwZnVu Y3Rpbz89CiA9P1VURi04P3E/bj0yMG9uPTIwQ3lnd2luPz0KTUlNRS1WZXJzaW9uOiAxLjAK Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNm ZXItRW5jb2Rpbmc6IDhiaXQKCiogc3JjL3czMmZucy5jIChjaGVja193MzJfd2lua2V5X3N0 YXRlKTogRGVmaW5lIGFuZCB1c2Ugb25seSBpZgpXSU5ET1dTTlQuCi0tLQogc3JjL3czMmZu cy5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvc3JjL3czMmZucy5jIGIvc3JjL3czMmZucy5jCmluZGV4IDg2ZWJjOGYuLmYwYWUy NDEgMTAwNjQ0Ci0tLSBhL3NyYy93MzJmbnMuYworKysgYi9zcmMvdzMyZm5zLmMKQEAgLTI0 MDYsNiArMjQwNiw3IEBAIGhvb2tfdzMyX2tleSAoaW50IGhvb2ssIGludCBtb2RpZmllciwg aW50IHZrZXkpCiAgICAgfQogfQogCisjaWZkZWYgV0lORE9XU05UCiAvKiBDaGVjayB0aGUg Y3VycmVudCBXaW4ga2V5IHByZXNzZWQgc3RhdGUuICAqLwogaW50CiBjaGVja193MzJfd2lu a2V5X3N0YXRlIChpbnQgdmtleSkKQEAgLTI0MzMsNiArMjQzNCw3IEBAIGNoZWNrX3czMl93 aW5rZXlfc3RhdGUgKGludCB2a2V5KQogICAgIH0KICAgcmV0dXJuIDA7CiB9CisjZW5kaWYJ LyogV0lORE9XU05UICovCiAKIC8qIFJlc2V0IHRoZSBrZXlib2FyZCBob29rIHN0YXRlLiAg TG9ja2luZyB0aGUgd29ya3N0YXRpb24gd2l0aCBXaW4tTAogICAgbGVhdmVzIHRoZSBXaW4g a2V5KHMpICJkb3duIiBmcm9tIHRoZSBob29rJ3MgcG9pbnQgb2YgdmlldyAtIHRoZQpAQCAt MjYyMyw4ICsyNjI1LDEwIEBAIG1vZGlmaWVyX3NldCAoaW50IHZrZXkpCiAgICAgICBlbHNl CiAJcmV0dXJuIChHZXRLZXlTdGF0ZSAodmtleSkgJiAweDEpOwogICAgIH0KKyNpZmRlZiBX SU5ET1dTTlQKICAgaWYgKHczMl9rYmRob29rX2FjdGl2ZSAmJiAodmtleSA9PSBWS19MV0lO IHx8IHZrZXkgPT0gVktfUldJTikpCiAgICAgcmV0dXJuIGNoZWNrX3czMl93aW5rZXlfc3Rh dGUgKHZrZXkpOworI2VuZGlmCiAKICAgaWYgKCFtb2RpZmllcnNfcmVjb3JkZWQpCiAgICAg cmV0dXJuIChHZXRLZXlTdGF0ZSAodmtleSkgJiAweDgwMDApOwotLSAKMi44LjMKCg== --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=UTF-8; name="0006-Avoid-jump-misses-init-compiler-warnings.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0006-Avoid-jump-misses-init-compiler-warnings.patch" RnJvbSBhNDQ3MjE4YmI3ZWJiYzNlZWM0OWJmZWU5ZjI5NTc1NDgzYmQxNmI0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogVHVlLCAxNCBKdW4gMjAxNiAxOTowNjozNCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg Ni83XSBBdm9pZCAianVtcCBtaXNzZXMgaW5pdCIgY29tcGlsZXIgd2FybmluZ3MKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCiogc3JjL2xpc3AuaCAoQVVUT19TVFJJ TkdfV0lUSF9MRU4pOiBEb27igJl0IGluaXRpYWxpemUgJ25hbWXigJkuCi0tLQogc3JjL2xp c3AuaCB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9saXNwLmggYi9zcmMvbGlzcC5oCmluZGV4IDk3 MmNhMzMuLmIwN2JmMDUgMTAwNjQ0Ci0tLSBhL3NyYy9saXNwLmgKKysrIGIvc3JjL2xpc3Au aApAQCAtNDYzNCw4ICs0NjM0LDEwIEBAIGVudW0KICAgIFNUUidzIHZhbHVlIGlzIG5vdCBu ZWNlc3NhcmlseSBjb3BpZWQuICBUaGUgcmVzdWx0aW5nIExpc3Agc3RyaW5nCiAgICBzaG91 bGQgbm90IGJlIG1vZGlmaWVkIG9yIG1hZGUgdmlzaWJsZSB0byB1c2VyIGNvZGUuICAqLwog CisvKiBBdm9pZCBpbml0aWFsaXppbmcgTkFNRSB0byBwcmV2ZW50ICJqdW1wLW1pc3Nlcy1p bml0IiBjb21waWxlcgorICAgd2FybmluZ3MuICAqLwogI2RlZmluZSBBVVRPX1NUUklOR19X SVRIX0xFTihuYW1lLCBzdHIsIGxlbikJCQkJXAotICBMaXNwX09iamVjdCBuYW1lID0JCQkJ CQkJXAorICBMaXNwX09iamVjdCBuYW1lOyBuYW1lID0JCQkJCQlcCiAgICAgKFVTRV9TVEFD S19TVFJJTkcJCQkJCQkJXAogICAgICA/IChtYWtlX2xpc3BfcHRyCQkJCQkJCVwKIAkoKCYo dW5pb24gQWxpZ25lZF9TdHJpbmcpCQkJCQlcCi0tIAoyLjguMwoK --------------D7BE58DCFC1D331AFE1FF0E1 Content-Type: text/plain; charset=UTF-8; name="0007-Avoid-address-compiler-warnings.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0007-Avoid-address-compiler-warnings.patch" RnJvbSBmZmZlODMwNjFmZWNkMjZmNWI1MzRmNDcxNDhlYmMwNDZjYjAzMzY2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLZW4gQnJvd24gPGticm93bkBjb3JuZWxsLmVkdT4K RGF0ZTogVHVlLCAxNCBKdW4gMjAxNiAyMToyOTozNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg Ny83XSBBdm9pZCAiYWRkcmVzcyIgY29tcGlsZXIgd2FybmluZ3MKCiogY29uZmlndXJlLmFj OiBEaXNhYmxlIHRoZSAtV25vLWFkZHJlc3MgY29tcGlsZXIgd2FybmluZyBmb3IgdGhlCk1p bkdXIGFuZCBDeWd3aW4tdzMyIGJ1aWxkcy4KLS0tCiBjb25maWd1cmUuYWMgfCA1ICsrKysr CiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvY29uZmln dXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDI2NzQ4MDYuLjM1NjU5MDUgMTAwNjQ0Ci0t LSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTk5NSw2ICs5OTUsMTEg QEAgQUNfREVGVU4KICAgICBnbF9XQVJOX0FERChbLVduby1wb2ludGVyLXNpZ25dKQogICBm aQogCisgICMgVGhpcyBjYXVzZXMgdG9vIG11Y2ggbm9pc2UgaW4gdGhlIE1pbkdXIGFuZCBD eWd3aW4tdzMyIGJ1aWxkcy4KKyAgaWYgdGVzdCAkb3BzeXMgPSBtaW5ndzMyIHx8ICh0ZXN0 ICRvcHN5cyA9IGN5Z3dpbiAmJiB0ZXN0ICR3aXRoX3czMiA9IHllcyk7IHRoZW4KKyAgICBn bF9XQVJOX0FERChbLVduby1hZGRyZXNzXSkKKyAgZmkKKwogICBBQ19ERUZJTkUoW0dDQ19M SU5UXSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYgLS1lbmFibGUtZ2NjLXdhcm5pbmdzLl0pCiAg IEFDX0RFRklORShbR05VTElCX1BPUlRDSEVDS10sIFsxXSwgW2VuYWJsZSBzb21lIGdudWxp YiBwb3J0YWJpbGl0eSBjaGVja3NdKQogICBBSF9WRVJCQVRJTShbR05VTElCX1BPUlRDSEVD S19GT1JUSUZZX1NPVVJDRV0sCi0tIAoyLjguMwoK --------------D7BE58DCFC1D331AFE1FF0E1-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 10:43:27 2016 Received: (at 23771) by debbugs.gnu.org; 15 Jun 2016 14:43:27 +0000 Received: from localhost ([127.0.0.1]:42396 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDC2R-0005m4-6B for submit@debbugs.gnu.org; Wed, 15 Jun 2016 10:43:27 -0400 Received: from eggs.gnu.org ([208.118.235.92]:36169) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDC2O-0005lq-PC for 23771@debbugs.gnu.org; Wed, 15 Jun 2016 10:43:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDC2F-0001Hd-Tx for 23771@debbugs.gnu.org; Wed, 15 Jun 2016 10:43:19 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48379) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDC2F-0001HR-Q0; Wed, 15 Jun 2016 10:43:15 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1605 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bDC2D-0001H8-AG; Wed, 15 Jun 2016 10:43:14 -0400 Date: Wed, 15 Jun 2016 17:44:10 +0300 Message-Id: <83bn32eclh.fsf@gnu.org> From: Eli Zaretskii To: Ken Brown In-reply-to: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> (message from Ken Brown on Tue, 14 Jun 2016 22:04:28 -0400) Subject: Re: bug#23771: Eliminating compiler warnings References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > From: Ken Brown > Date: Tue, 14 Jun 2016 22:04:28 -0400 > > I would like to get rid of all compiler warnings in the Cygwin builds (X11, w32, and nox). There are currently none in the X11 build, but there are a lot in the other builds. Many of the warnings in the w32 build probably occur in the MinGW build also. And all of the warnings in the nox build would occur in any build without a window system. > > The seven patches attached attempt to eliminate all the currently existing warnings. There is one patch for each type of warning. Since they affect other platforms besides Cygwin, I won't install them until someone has had a chance to review them. There's obviously no rush about this. Thanks. Some comments below. Btw, it would have helped if you'd show examples of warnings that eliminated by each patch in the set; for some of them, it's easy to guess, others not so easy. I hope I did right. > Two comments: First, patch 0006-... is there because there might be a jump over an AUTO_STRING call. (This happens exactly once in the Cygwin-w32 build.) It seems stupid to have to worry about this. An alternative would be to just disable the -Wjump-misses-init warning. The warning is IMO important, it's just too bad GCC has false positives with it. > Second, patch 0007-... is there because I couldn't think of a reasonable way to avoid -Waddress warnings when compiling w32fns.c, w32menu.c, and menu.c in the Cygwin-w32 build. Everything I thought of would have made the code very ugly. So I simply disabled that warning for the Cygwin-w32 build, and I took the liberty of doing the same thing for the MinGW build, which I think is also affected in some cases. If someone sees a better way of eliminating those warnings, that would be preferable. What warnings does that option produce? I'm not sure I've seen any warnings about addresses, but maybe I misunderstand the nature of the warning. What follows is specific comments to some hunks. > +#else /* not HAVE_WINDOW_SYSTEM */ > + > +_Noreturn void > +decode_window_system_frame (Lisp_Object frame) > +{ > + error ("Window system is not in use"); > +} > + > +_Noreturn void > +check_window_system (struct frame *f) > +{ > + error ("Window system is not in use"); > +} > + > +#endif /* not HAVE_WINDOW_SYSTEM */ What kind of warnings do you get without these changes? I don't understand why this is needed. > --- a/src/font.c > +++ b/src/font.c > @@ -2863,7 +2863,10 @@ font_open_entity (struct frame *f, Lisp_Object entity, int pixel_size) > struct font_driver_list *driver_list; > Lisp_Object objlist, size, val, font_object; > struct font *font; > - int min_width, height, psize; > + int height, psize; > +#ifdef HAVE_WINDOW_SYSTEM > + int min_width; > +#endif > > eassert (FONT_ENTITY_P (entity)); > size = AREF (entity, FONT_SIZE_INDEX); > @@ -2907,10 +2910,12 @@ font_open_entity (struct frame *f, Lisp_Object entity, int pixel_size) > Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX))); > > font = XFONT_OBJECT (font_object); > +#ifdef HAVE_WINDOW_SYSTEM > min_width = (font->min_width ? font->min_width > : font->average_width ? font->average_width > : font->space_width ? font->space_width > : 1); > +#endif Why not move the declaration of min_width and the calculation of its value inside the #ifdef that uses it? Then you'd have eliminated 2 #ifdef's. > --- a/src/frame.c > +++ b/src/frame.c > @@ -2143,13 +2143,12 @@ DEFUN ("iconify-frame", Ficonify_frame, Siconify_frame, > If omitted, FRAME defaults to the currently selected frame. */) > (Lisp_Object frame) > { > - struct frame *f = decode_live_frame (frame); > - > /* Don't allow minibuf_window to remain on an iconified frame. */ > check_minibuf_window (frame, EQ (minibuf_window, selected_window)); > > /* I think this should be done with a hook. */ > #ifdef HAVE_WINDOW_SYSTEM > + struct frame *f = decode_live_frame (frame); > if (FRAME_WINDOW_P (f)) > x_iconify_frame (f); > #endif I understand the motivation, but this change has a downside: it changes the order of validity check of the function arguments, and it completely removes the check of the FRAME argument in the builds without X. So I don't think we should make this change this way. We could do something like this instead: #ifdef HAVE_WINDOW_SYSTEM struct frame *f = decode_live_frame (frame); #else (void) decode_live_frame (frame); #endif Or we could work around the warning in some other way, or even live with it. > @@ -3015,13 +3014,12 @@ or bottom edge of the outer frame of FRAME relative to the right or > bottom edge of FRAME's display. */) > (Lisp_Object frame, Lisp_Object x, Lisp_Object y) > { > - register struct frame *f = decode_live_frame (frame); > - > CHECK_TYPE_RANGED_INTEGER (int, x); > CHECK_TYPE_RANGED_INTEGER (int, y); > /* I think this should be done with a hook. */ > #ifdef HAVE_WINDOW_SYSTEM > + register struct frame *f = decode_live_frame (frame); > if (FRAME_WINDOW_P (f)) > x_set_offset (f, XINT (x), XINT (y), 1); > #endif Same comment here: the order of checking the arguments is important to keep on all frames in all builds. > --- a/src/w32fns.c > +++ b/src/w32fns.c > @@ -6888,7 +6888,7 @@ A tooltip's maximum size is specified by `x-max-tooltip-size'. > Text larger than the specified size is clipped. */) > (Lisp_Object string, Lisp_Object frame, Lisp_Object parms, Lisp_Object timeout, Lisp_Object dx, Lisp_Object dy) > { > - struct frame *tip_f; > + struct frame *f, *tip_f; Please add comments explaining why 'f' is needed (here and elsewhere). Someone who doesn't remember the w32 definition of FRAME_DISPLAY_INFO will stumble on this one. > +#ifdef HAVE_WINDOW_SYSTEM > struct glyph *g; > - > +#endif Better moved inside the #ifdef where it's used, no? (And please keep the empty line between declarations and code.) > +#ifdef HAVE_WINDOW_SYSTEM > if (clear_mouse_face (hlinfo)) > cursor = No_Cursor; > - > +#endif This and other similar hunks that ifdef away clear_mouse_face are incorrect: Emacs supports mouse highlight on TTY frames (if the mouse is supported, e.g. via GPM or on MS-Windows/MS-DOS), so we must call clear_mouse_face there as well. So any warnings you have here need to be solved in some other way. I would hate to re-introduce HAVE_MOUSE, having worked so hard in the past on removing it, so perhaps show the warnings you get, and let's take it from there. > --- a/src/xfaces.c > +++ b/src/xfaces.c > @@ -5195,10 +5195,12 @@ realize_basic_faces (struct frame *f) > static bool > realize_default_face (struct frame *f) > { > +#ifdef HAVE_X_WINDOWS > struct face_cache *c = FRAME_FACE_CACHE (f); > + struct face *face; > +#endif > Lisp_Object lface; > Lisp_Object attrs[LFACE_VECTOR_SIZE]; > - struct face *face; > > /* If the `default' face is not yet known, create it. */ > lface = lface_from_face_name (f, Qdefault, false); > @@ -5288,10 +5290,10 @@ realize_default_face (struct frame *f) > eassert (lface_fully_specified_p (XVECTOR (lface)->contents)); > check_lface (lface); > memcpy (attrs, XVECTOR (lface)->contents, sizeof attrs); > - face = realize_face (c, attrs, DEFAULT_FACE_ID); > > #ifdef HAVE_WINDOW_SYSTEM > #ifdef HAVE_X_WINDOWS > + face = realize_face (c, attrs, DEFAULT_FACE_ID); > if (FRAME_X_P (f) && face->font != FRAME_FONT (f)) > { This also looks wrong: the call to realize_face is NOT X-specific, see the body of that function. The value returned by realize_face is indeed used only on X, but the real effect of the call is by side effect: it adds the new face to the frame's face cache. One possible way of getting rid of the warning is something like this: #ifdef HAVE_X_WINDOWS face = realize_face (c, attrs, DEFAULT_FACE_ID); #else (void) realize_face (c, attrs, DEFAULT_FACE_ID); #endif > --- a/src/conf_post.h > +++ b/src/conf_post.h > @@ -211,7 +211,7 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ > extern void _DebPrint (const char *fmt, ...); > # define DebPrint(stuff) _DebPrint stuff > # else > -# define DebPrint(stuff) > +# define DebPrint(stuff) {} > # endif > #endif Yuck! Can we simply not use the "empty body" warning option? When is it important to flag an empty body of a function? The rest looks OK to me, thanks (but I didn't try to compile with them). From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 16:25:06 2016 Received: (at 23771) by debbugs.gnu.org; 15 Jun 2016 20:25:06 +0000 Received: from localhost ([127.0.0.1]:42627 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDHN4-0000YS-7b for submit@debbugs.gnu.org; Wed, 15 Jun 2016 16:25:06 -0400 Received: from eggs.gnu.org ([208.118.235.92]:58815) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDHN2-0000Xl-7a for 23771@debbugs.gnu.org; Wed, 15 Jun 2016 16:25:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDHMw-0003io-1V for 23771@debbugs.gnu.org; Wed, 15 Jun 2016 16:24:59 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:54770) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDHMq-0003am-12; Wed, 15 Jun 2016 16:24:52 -0400 Received: from rms by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1bDHMp-0002VR-E8; Wed, 15 Jun 2016 16:24:51 -0400 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Ken Brown In-reply-to: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> (message from Ken Brown on Tue, 14 Jun 2016 22:04:28 -0400) Subject: Re: bug#23771: Eliminating compiler warnings References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> Message-Id: Date: Wed, 15 Jun 2016 16:24:51 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > I would like to get rid of all compiler warnings in the Cygwin builds > (X11, w32, and nox). There are currently none in the X11 build, but > there are a lot in the other builds. It could be that the best way to get rid of some of these warnings is to delete some -W option that causes GCC to issue them. In the case of _Noreturn, isn't there a simpler approach, defining a macro that expands into either _Noreturn or nothing? Or defining _Noreturn as a no-op when there is no other definition? > +#ifdef HAVE_WINDOW_SYSTEM > int fringe_bitmap; > +#endif Surely it is easier to put in some code that will unconditionally use that variable. But maybe just delete the -W option that causes these warnings. To clutter up the code to placate a finicky compiler is a change for the worse. If the compiler is so finicky only because a special option asked it to be, why be massochistic? -- Dr Richard Stallman President, Free Software Foundation (gnu.org, fsf.org) Internet Hall-of-Famer (internethalloffame.org) Skype: No way! See stallman.org/skype.html. From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 21:38:33 2016 Received: (at 23771) by debbugs.gnu.org; 16 Jun 2016 01:38:33 +0000 Received: from localhost ([127.0.0.1]:42729 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDMGO-00087z-SI for submit@debbugs.gnu.org; Wed, 15 Jun 2016 21:38:33 -0400 Received: from limerock04.mail.cornell.edu ([128.84.13.244]:38346) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDMGN-00087j-6c for 23771@debbugs.gnu.org; Wed, 15 Jun 2016 21:38:31 -0400 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock04.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u5G1cJ5R030041; Wed, 15 Jun 2016 21:38:19 -0400 Received: from [192.168.1.34] (c-50-138-241-230.hsd1.ct.comcast.net [50.138.241.230]) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u5G1cHBg001921 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 15 Jun 2016 21:38:18 -0400 Subject: Re: bug#23771: Eliminating compiler warnings To: Eli Zaretskii References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> From: Ken Brown Message-ID: <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> Date: Wed, 15 Jun 2016 21:38:19 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <83bn32eclh.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-PMX-Cornell-Gauge: Gauge=XXXXX X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org, Paul Eggert X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) On 6/15/2016 10:44 AM, Eli Zaretskii wrote: >> From: Ken Brown > Btw, it would have helped if you'd show examples of warnings that > eliminated by each patch in the set; for some of them, it's easy to > guess, others not so easy. I hope I did right. Thanks for the review. Sorry, I should have thought of giving examples of the warnings. >> Two comments: First, patch 0006-... is there because there might be a jump over an AUTO_STRING call. (This happens exactly once in the Cygwin-w32 build.) It seems stupid to have to worry about this. An alternative would be to just disable the -Wjump-misses-init warning. > > The warning is IMO important, it's just too bad GCC has false > positives with it. OK. >> Second, patch 0007-... is there because I couldn't think of a reasonable way to avoid -Waddress warnings when compiling w32fns.c, w32menu.c, and menu.c in the Cygwin-w32 build. Everything I thought of would have made the code very ugly. So I simply disabled that warning for the Cygwin-w32 build, and I took the liberty of doing the same thing for the MinGW build, which I think is also affected in some cases. If someone sees a better way of eliminating those warnings, that would be preferable. > > What warnings does that option produce? I'm not sure I've seen any > warnings about addresses, but maybe I misunderstand the nature of the > warning. Here's a typical example: ../../master/src/menu.c: In function ‘digest_single_submenu’: ../../master/src/menu.c:46:30: warning: the address of ‘AppendMenuW’ will always evaluate as ‘true’ [-Waddress] # define unicode_append_menu AppendMenuW ^ ../../master/src/menu.c:691:9: note: in expansion of macro ‘unicode_append_menu’ if (unicode_append_menu) ^ ../../master/src/menu.c:46:30: warning: the address of ‘AppendMenuW’ will always evaluate as ‘true’ [-Waddress] # define unicode_append_menu AppendMenuW ^ ../../master/src/menu.c:767:9: note: in expansion of macro ‘unicode_append_menu’ if (unicode_append_menu) ^ > What follows is specific comments to some hunks. > >> +#else /* not HAVE_WINDOW_SYSTEM */ >> + >> +_Noreturn void >> +decode_window_system_frame (Lisp_Object frame) >> +{ >> + error ("Window system is not in use"); >> +} >> + >> +_Noreturn void >> +check_window_system (struct frame *f) >> +{ >> + error ("Window system is not in use"); >> +} >> + >> +#endif /* not HAVE_WINDOW_SYSTEM */ > > What kind of warnings do you get without these changes? I don't > understand why this is needed. A build with no windows system yields these warnings: ../../warnings/src/frame.c: In function ‘decode_window_system_frame’: ../../warnings/src/frame.c:119:1: warning: function might be candidate for attribute ‘noreturn’ [-Wsuggest-attribute=noreturn] decode_window_system_frame (Lisp_Object frame) ^ ../../warnings/src/frame.c: In function ‘check_window_system’: ../../warnings/src/frame.c:129:1: warning: function might be candidate for attribute ‘noreturn’ [-Wsuggest-attribute=noreturn] check_window_system (struct frame *f) ^ >> --- a/src/font.c >> +++ b/src/font.c >> @@ -2863,7 +2863,10 @@ font_open_entity (struct frame *f, Lisp_Object entity, int pixel_size) >> struct font_driver_list *driver_list; >> Lisp_Object objlist, size, val, font_object; >> struct font *font; >> - int min_width, height, psize; >> + int height, psize; >> +#ifdef HAVE_WINDOW_SYSTEM >> + int min_width; >> +#endif >> >> eassert (FONT_ENTITY_P (entity)); >> size = AREF (entity, FONT_SIZE_INDEX); >> @@ -2907,10 +2910,12 @@ font_open_entity (struct frame *f, Lisp_Object entity, int pixel_size) >> Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX))); >> >> font = XFONT_OBJECT (font_object); >> +#ifdef HAVE_WINDOW_SYSTEM >> min_width = (font->min_width ? font->min_width >> : font->average_width ? font->average_width >> : font->space_width ? font->space_width >> : 1); >> +#endif > > Why not move the declaration of min_width and the calculation of its > value inside the #ifdef that uses it? Then you'd have eliminated 2 > #ifdef's. Good idea. I'll do that. >> --- a/src/frame.c >> +++ b/src/frame.c >> @@ -2143,13 +2143,12 @@ DEFUN ("iconify-frame", Ficonify_frame, Siconify_frame, >> If omitted, FRAME defaults to the currently selected frame. */) >> (Lisp_Object frame) >> { >> - struct frame *f = decode_live_frame (frame); >> - >> /* Don't allow minibuf_window to remain on an iconified frame. */ >> check_minibuf_window (frame, EQ (minibuf_window, selected_window)); >> >> /* I think this should be done with a hook. */ >> #ifdef HAVE_WINDOW_SYSTEM >> + struct frame *f = decode_live_frame (frame); >> if (FRAME_WINDOW_P (f)) >> x_iconify_frame (f); >> #endif > > I understand the motivation, but this change has a downside: it > changes the order of validity check of the function arguments, and it > completely removes the check of the FRAME argument in the builds > without X. So I don't think we should make this change this way. Yes, I was very careless about that. I'm glad you caught it. > We could do something like this instead: > > #ifdef HAVE_WINDOW_SYSTEM > struct frame *f = decode_live_frame (frame); > #else > (void) decode_live_frame (frame); > #endif > > Or we could work around the warning in some other way, or even live > with it. I'm now thinking, especially in view of Richard's comments, that maybe we should just live with the "unused variable" warnings that can't be avoided without cluttering the code. >> @@ -3015,13 +3014,12 @@ or bottom edge of the outer frame of FRAME relative to the right or >> bottom edge of FRAME's display. */) >> (Lisp_Object frame, Lisp_Object x, Lisp_Object y) >> { >> - register struct frame *f = decode_live_frame (frame); >> - >> CHECK_TYPE_RANGED_INTEGER (int, x); >> CHECK_TYPE_RANGED_INTEGER (int, y); > >> /* I think this should be done with a hook. */ >> #ifdef HAVE_WINDOW_SYSTEM >> + register struct frame *f = decode_live_frame (frame); >> if (FRAME_WINDOW_P (f)) >> x_set_offset (f, XINT (x), XINT (y), 1); >> #endif > > Same comment here: the order of checking the arguments is important to > keep on all frames in all builds. Yes, more carelessness on my part. >> --- a/src/w32fns.c >> +++ b/src/w32fns.c >> @@ -6888,7 +6888,7 @@ A tooltip's maximum size is specified by `x-max-tooltip-size'. >> Text larger than the specified size is clipped. */) >> (Lisp_Object string, Lisp_Object frame, Lisp_Object parms, Lisp_Object timeout, Lisp_Object dx, Lisp_Object dy) >> { >> - struct frame *tip_f; >> + struct frame *f, *tip_f; > > Please add comments explaining why 'f' is needed (here and > elsewhere). Someone who doesn't remember the w32 definition of > FRAME_DISPLAY_INFO will stumble on this one. OK >> +#ifdef HAVE_WINDOW_SYSTEM >> struct glyph *g; >> - >> +#endif > > Better moved inside the #ifdef where it's used, no? Yes. >> +#ifdef HAVE_WINDOW_SYSTEM >> if (clear_mouse_face (hlinfo)) >> cursor = No_Cursor; >> - >> +#endif > > This and other similar hunks that ifdef away clear_mouse_face are > incorrect: Emacs supports mouse highlight on TTY frames (if the mouse > is supported, e.g. via GPM or on MS-Windows/MS-DOS), so we must call > clear_mouse_face there as well. The same kind of carelessness yet again. (I was just trying to get rid of the warning that 'cursor' is unused, but I obviously threw away too much.) I'll fix all these and resend the patch. >> --- a/src/conf_post.h >> +++ b/src/conf_post.h >> @@ -211,7 +211,7 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ >> extern void _DebPrint (const char *fmt, ...); >> # define DebPrint(stuff) _DebPrint stuff >> # else >> -# define DebPrint(stuff) >> +# define DebPrint(stuff) {} >> # endif >> #endif > > Yuck! Can we simply not use the "empty body" warning option? When is > it important to flag an empty body of a function? Here's a typical example: Code like this: if (!f->output_data.w32->asked_for_visible) DebPrint (("frame %p (%s) reexposed by WM_PAINT\n", f, SDATA (f->name))); leads to this warning (if EMACSDEBUG is not defined): ../../warnings/src/w32term.c: In function ‘w32_read_socket’: ../../warnings/src/w32term.c:4613:28: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body] SDATA (f->name))); ^ But I'd be fine with just disabling this warning, at least for the w32 builds. Paul, do you think it's important to keep this warning? Thanks again for the review. Ken From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 21:42:04 2016 Received: (at 23771) by debbugs.gnu.org; 16 Jun 2016 01:42:04 +0000 Received: from localhost ([127.0.0.1]:42734 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDMJo-0008Dt-J0 for submit@debbugs.gnu.org; Wed, 15 Jun 2016 21:42:04 -0400 Received: from limerock02.mail.cornell.edu ([128.84.13.242]:56555) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDMJn-0008DG-62 for 23771@debbugs.gnu.org; Wed, 15 Jun 2016 21:42:03 -0400 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock02.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u5G1fvlF006159; Wed, 15 Jun 2016 21:41:57 -0400 Received: from [192.168.1.34] (c-50-138-241-230.hsd1.ct.comcast.net [50.138.241.230]) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u5G1ftSQ003619 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 15 Jun 2016 21:41:56 -0400 Subject: Re: bug#23771: Eliminating compiler warnings To: rms@gnu.org References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> From: Ken Brown Message-ID: <1e21c835-a250-df86-a691-00a44ac37c01@cornell.edu> Date: Wed, 15 Jun 2016 21:41:58 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Cornell-Gauge: Gauge=XXXXX X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) On 6/15/2016 4:24 PM, Richard Stallman wrote: > To clutter up the code to placate a finicky compiler is a change > for the worse. If the compiler is so finicky only because a special > option asked it to be, why be massochistic? I'm just using the warning options that are enabled by default for a build from a git checkout of the master branch. In general, I think the warnings are useful. But I agree that I went too far in trying to get rid of them all. I'm now thinking that I should just live with the ones that can't be fixed without cluttering the code. See my reply to Eli. Ken From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 16 11:13:52 2016 Received: (at 23771) by debbugs.gnu.org; 16 Jun 2016 15:13:52 +0000 Received: from localhost ([127.0.0.1]:43444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDYzP-0005sn-Ss for submit@debbugs.gnu.org; Thu, 16 Jun 2016 11:13:52 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43784) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDYzO-0005sb-8A for 23771@debbugs.gnu.org; Thu, 16 Jun 2016 11:13:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bDYzH-0008OQ-UV for 23771@debbugs.gnu.org; Thu, 16 Jun 2016 11:13:45 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:47668) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bDYzD-0008Nn-64; Thu, 16 Jun 2016 11:13:39 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3119 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bDYzB-00082N-BG; Thu, 16 Jun 2016 11:13:37 -0400 Date: Thu, 16 Jun 2016 18:14:37 +0300 Message-Id: <83inx9cgiq.fsf@gnu.org> From: Eli Zaretskii To: Ken Brown In-reply-to: <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> (message from Ken Brown on Wed, 15 Jun 2016 21:38:19 -0400) Subject: Re: bug#23771: Eliminating compiler warnings References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> MIME-version: 1.0 Content-type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org, eggert@cs.ucla.edu X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.4 (------) > Cc: 23771@debbugs.gnu.org, Paul Eggert > From: Ken Brown > Date: Wed, 15 Jun 2016 21:38:19 -0400 > > > What warnings does that option produce? I'm not sure I've seen any > > warnings about addresses, but maybe I misunderstand the nature of the > > warning. > > Here's a typical example: > > ../../master/src/menu.c: In function ‘digest_single_submenu’: > ../../master/src/menu.c:46:30: warning: the address of ‘AppendMenuW’ > will always evaluate as ‘true’ [-Waddress] > # define unicode_append_menu AppendMenuW > ^ > ../../master/src/menu.c:691:9: note: in expansion of macro > ‘unicode_append_menu’ > if (unicode_append_menu) > ^ For this one, I'd suggest to make unicode_append_menu a variable in the Cygwin build as well, and then do this: AppendMenuW_Proc unicode_append_menu = AppendMenuW; > >> +#else /* not HAVE_WINDOW_SYSTEM */ > >> + > >> +_Noreturn void > >> +decode_window_system_frame (Lisp_Object frame) > >> +{ > >> + error ("Window system is not in use"); > >> +} > >> + > >> +_Noreturn void > >> +check_window_system (struct frame *f) > >> +{ > >> + error ("Window system is not in use"); > >> +} > >> + > >> +#endif /* not HAVE_WINDOW_SYSTEM */ > > > > What kind of warnings do you get without these changes? I don't > > understand why this is needed. > > A build with no windows system yields these warnings: > > ../../warnings/src/frame.c: In function ‘decode_window_system_frame’: > ../../warnings/src/frame.c:119:1: warning: function might be candidate > for attribute ‘noreturn’ [-Wsuggest-attribute=noreturn] > decode_window_system_frame (Lisp_Object frame) > ^ How about making check_window_system compile in the no-X builds? > >> --- a/src/conf_post.h > >> +++ b/src/conf_post.h > >> @@ -211,7 +211,7 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */ > >> extern void _DebPrint (const char *fmt, ...); > >> # define DebPrint(stuff) _DebPrint stuff > >> # else > >> -# define DebPrint(stuff) > >> +# define DebPrint(stuff) {} > >> # endif > >> #endif > > > > Yuck! Can we simply not use the "empty body" warning option? When is > > it important to flag an empty body of a function? > > Here's a typical example: > > Code like this: > > if (!f->output_data.w32->asked_for_visible) > DebPrint (("frame %p (%s) reexposed by WM_PAINT\n", f, > SDATA (f->name))); > > leads to this warning (if EMACSDEBUG is not defined): > > ../../warnings/src/w32term.c: In function ‘w32_read_socket’: > ../../warnings/src/w32term.c:4613:28: warning: suggest braces around > empty body in an ‘if’ statement [-Wempty-body] > SDATA (f->name))); > ^ One way of fixing this is to add those braces. > But I'd be fine with just disabling this warning, at least for the w32 > builds. Right. From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 16 11:50:29 2016 Received: (at 23771) by debbugs.gnu.org; 16 Jun 2016 15:50:30 +0000 Received: from localhost ([127.0.0.1]:43466 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDZYr-0006mZ-NY for submit@debbugs.gnu.org; Thu, 16 Jun 2016 11:50:29 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:35105) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bDZYq-0006mM-D8 for 23771@debbugs.gnu.org; Thu, 16 Jun 2016 11:50:28 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id A75D81614D2; Thu, 16 Jun 2016 08:50:21 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id PNu2lHx35FhK; Thu, 16 Jun 2016 08:50:20 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E32501614D5; Thu, 16 Jun 2016 08:50:20 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Q7dxqSDOFb5K; Thu, 16 Jun 2016 08:50:20 -0700 (PDT) Received: from [192.168.1.9] (unknown [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id C58951614D2; Thu, 16 Jun 2016 08:50:20 -0700 (PDT) Subject: Re: bug#23771: Eliminating compiler warnings To: Eli Zaretskii , Ken Brown References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> <83inx9cgiq.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <5762CAB8.9080701@cs.ucla.edu> Date: Thu, 16 Jun 2016 08:50:16 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <83inx9cgiq.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) Eli Zaretskii wrote: > One way of fixing this is to add those braces. The accepted way to fix this is to use a do-while. See, e.g., the definit= ion of=20 DEFVAR_LISP in lisp.h. The warning is helpful to catch stray semicolons, e.g., 'if (n =3D=3D 0);= ...'. From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 20 23:11:20 2016 Received: (at 23771-done) by debbugs.gnu.org; 21 Jun 2016 03:11:20 +0000 Received: from localhost ([127.0.0.1]:48221 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFC5w-0003H4-1k for submit@debbugs.gnu.org; Mon, 20 Jun 2016 23:11:20 -0400 Received: from limerock02.mail.cornell.edu ([128.84.13.242]:40357) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFC5u-0003Gr-Ap for 23771-done@debbugs.gnu.org; Mon, 20 Jun 2016 23:11:18 -0400 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock02.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u5L3B5tX021837; Mon, 20 Jun 2016 23:11:05 -0400 Received: from [192.168.200.43] (wsip-174-79-175-68.ri.ri.cox.net [174.79.175.68]) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u5L3B41d026271 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 20 Jun 2016 23:11:05 -0400 Subject: Re: bug#23771: Eliminating compiler warnings To: Eli Zaretskii References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> <83inx9cgiq.fsf@gnu.org> From: Ken Brown Message-ID: <1d59fd57-b25c-2825-692f-0de16322e636@cornell.edu> Date: Mon, 20 Jun 2016 23:11:03 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <83inx9cgiq.fsf@gnu.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Cornell-Gauge: Gauge=XX X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23771-done Cc: eggert@cs.ucla.edu, 23771-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) Thanks for all the suggestions and corrections. I've fixed everything (I hope) and pushed to master. Closing. From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 21 21:13:16 2016 Received: (at 23771) by debbugs.gnu.org; 22 Jun 2016 01:13:16 +0000 Received: from localhost ([127.0.0.1]:50200 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFWjD-0005RQ-4h for submit@debbugs.gnu.org; Tue, 21 Jun 2016 21:13:16 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:39755) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFWjA-0005RD-MT for 23771@debbugs.gnu.org; Tue, 21 Jun 2016 21:13:14 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B1C4D160F84; Tue, 21 Jun 2016 18:13:06 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 1tRM-SYQjh0s; Tue, 21 Jun 2016 18:13:04 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 443B816140E; Tue, 21 Jun 2016 18:13:04 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6AIDU7vnVjQM; Tue, 21 Jun 2016 18:13:04 -0700 (PDT) Received: from [192.168.1.2] (host144-218-dynamic.32-79-r.retail.telecomitalia.it [79.32.218.144]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 9B9B9160F84; Tue, 21 Jun 2016 18:13:02 -0700 (PDT) Subject: Re: bug#23771: Eliminating compiler warnings To: Ken Brown References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> From: Paul Eggert Message-ID: <5769E61B.9020200@cs.ucla.edu> Date: Wed, 22 Jun 2016 03:12:59 +0200 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> Content-Type: multipart/mixed; boundary="------------050500040108000805070604" X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) This is a multi-part message in MIME format. --------------050500040108000805070604 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Thanks for all the work in improving static checking for Cygwin builds. I just now checked the attached patch into master, which I hope improves on it. I tested it on Fedora (both with and without window systems). I had one problem with the recent changes, in that they suppressed all warnings about jumps over AUTO_STRING calls. That's pretty drastic, as the warnings are typically useful, so the attached patch reverts that. Can you let me know which call needs the warning suppressed in the Cygwin-specific code in the new master? I can suggest something which disables the warning just for that call. --------------050500040108000805070604 Content-Type: text/x-patch; name="0001-Improve-without-x-GCC-pacification.patch" Content-Disposition: attachment; filename="0001-Improve-without-x-GCC-pacification.patch" Content-Transfer-Encoding: quoted-printable >From 984f3658a73a1a970b417a7544c97eae2c236d57 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 22 Jun 2016 03:04:16 +0200 Subject: [PATCH] Improve --without-x GCC pacification MIME-Version: 1.0 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 8bit * src/composite.c (autocmp_chars): * src/conf_post.h (DebPrint) [HAVE_NTGUI && !DebPrint && !EMACSDEBUG]: Use simpler ((void) 0) for no-op expression returning void. * src/dispextern.h [HAVE_WINDOW_SYSTEM]: Include fontset.h, for face_for_char. (FACE_SUITABLE_FOR_ASCII_CHAR_P, FACE_FOR_CHAR): Now inline functions instead of macros. This avoids the need for all those casts to void. (FACE_SUITABLE_FOR_ASCII_CHAR_P): Omit 2nd (unused) arg. All uses changed. * src/frame.c (Ficonify_frame, Fset_frame_position): * src/xdisp.c (Fmove_point_visually, show_mouse_face): * src/xdisp.c (note_mode_line_or_margin_highlight) (note_mouse_highlight): Assume HAVE_WINDOW_SYSTEM for simplicity, since the code should now work either way without generating warnings. * src/frame.c (display_available) [HAVE_WINDOW_SYSTEM]: New function. (window_system_available) [HAVE_WINDOW_SYSTEM]: Move to frame.h. (decode_window_system_frame): Use check_window_system instead of rolling the code ourself. Return needed only if HAVE_WINDOW_SYSTEM. (decode_window_system_frame, check_window_system): Merge the HAVE_WINDOW_SYSTEM and !HAVE_WINDOW_SYSTEM versions into one. * src/frame.c (Ficonify_frame, Fset_frame_position): * src/xdisp.c (show_mouse_face, define_frame_cursor1) (note_mouse_highlight): Narrow the scope of the HAVE_WINDOW_SYSTEM #ifdef; this is a better way to pacify GCC. * src/xdisp.c (x_set_left_fringe, x_set_right_fringe) (x_set_right_divider_width, x_set_bottom_divider_width): * src/xfns.c (x_set_internal_border_width): Don=E2=80=99t use what are now function calls as lvalues. * src/frame.h (WINDOW_SYSTEM_RETURN): New macro. (decode_window_system_frame, check_window_system): Use it, to avoid the need for duplicate declarations. (window_system_available): Now an inline function. (display_available): New decl. (frame_dimension): New inline function. (FRAME_FRINGE_COLS, FRAME_LEFT_FRINGE_WIDTH) (FRAME_RIGHT_FRINGE_WIDTH, FRAME_TOTAL_FRINGE_WIDTH) (FRAME_INTERNAL_BORDER_WIDTH, FRAME_RIGHT_DIVIDER_WIDTH) (FRAME_BOTTOM_DIVIDER_WIDTH): Use it, to avoid the need for duplicate definitions. Now inline functions instead of macros. * src/gnutls.c (gnutls_log_function2i): Remove. * src/gnutls.h (GNUTLS_LOG2i): Use =E2=80=98message=E2=80=99 directly. This avoids complaints about gnutls_log_function2i being defined and not used on older platforms that do not need to call GNUTLS_LOG2i. * src/image.c (DefaultDepthOfScreen) [0]: Remove unused macro. * src/lisp.h (AUTO_STRING_WITH_LEN): Revert change from =E2=80=98type id = =3D expr=E2=80=99 to =E2=80=98type id; id =3D expr=E2=80=99, as this would su= ppress valid jump-misses-init diagnostics. Let=E2=80=99s find a better way to address the problem. * src/vm-limit.c (__MALLOC_HOOK_VOLATILE): Define only if needed. * src/xdisp.c (handle_single_display_spec): Simplify fringe_bitmap computation. (define_frame_cursor1): Do nothing unless in a window system. All callers changed and simplified. * src/xfaces.c (realize_default_face): Use a simpler way to pacify GCC when a return value is not used on some platforms. --- src/composite.c | 6 ---- src/conf_post.h | 3 +- src/dispextern.h | 40 ++++++++++++----------- src/frame.c | 75 ++++++++++++++++++------------------------- src/frame.h | 96 ++++++++++++++++++++++++++++++++++++++------------= ------ src/gnutls.c | 7 ----- src/gnutls.h | 2 +- src/image.c | 3 -- src/lisp.h | 4 +-- src/vm-limit.c | 6 ++-- src/xdisp.c | 78 +++++++++++---------------------------------- src/xfaces.c | 12 +++---- src/xfns.c | 2 +- 13 files changed, 148 insertions(+), 186 deletions(-) diff --git a/src/composite.c b/src/composite.c index 5696e3e..8aa6974 100644 --- a/src/composite.c +++ b/src/composite.c @@ -867,11 +867,7 @@ autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, = ptrdiff_t bytepos, Lisp_Object string) { ptrdiff_t count =3D SPECPDL_INDEX (); -#ifdef HAVE_WINDOW_SYSTEM struct frame *f =3D XFRAME (win->frame); -#else - (void) XFRAME (win->frame); -#endif Lisp_Object pos =3D make_number (charpos); ptrdiff_t to; ptrdiff_t pt =3D PT, pt_byte =3D PT_BYTE; @@ -895,7 +891,6 @@ autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, p= trdiff_t bytepos, if (len <=3D 0) return unbind_to (count, Qnil); to =3D limit =3D charpos + len; -#ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) { font_object =3D font_range (charpos, bytepos, &to, win, face, stri= ng); @@ -906,7 +901,6 @@ autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, p= trdiff_t bytepos, return unbind_to (count, Qnil); } else -#endif /* not HAVE_WINDOW_SYSTEM */ font_object =3D win->frame; lgstring =3D Fcomposition_get_gstring (pos, make_number (to), font_obj= ect, string); diff --git a/src/conf_post.h b/src/conf_post.h index 431b7a9..7aa5bae 100644 --- a/src/conf_post.h +++ b/src/conf_post.h @@ -211,8 +211,7 @@ You lose; /* Emacs for DOS must be compiled with DJGP= P */ extern void _DebPrint (const char *fmt, ...); # define DebPrint(stuff) _DebPrint stuff # else -/* Avoid compiler warnings about empty body of 'if' statement. */ -# define DebPrint(stuff) do {} while (false) +# define DebPrint(stuff) ((void) 0) # endif #endif =20 diff --git a/src/dispextern.h b/src/dispextern.h index 987d7f8..d0fc3b2 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -82,6 +82,7 @@ typedef XImagePtr XImagePtr_or_DC; =20 #ifdef HAVE_WINDOW_SYSTEM # include +# include "fontset.h" #endif =20 #ifndef HAVE_WINDOW_SYSTEM @@ -1825,31 +1826,32 @@ struct face_cache ? FACE_FROM_ID (F, ID) \ : NULL) =20 +/* True if FACE is suitable for displaying ASCII characters. */ +INLINE bool +FACE_SUITABLE_FOR_ASCII_CHAR_P (struct face *face) +{ #ifdef HAVE_WINDOW_SYSTEM - -/* Non-zero if FACE is suitable for displaying character CHAR. */ - -#define FACE_SUITABLE_FOR_ASCII_CHAR_P(FACE, CHAR) \ - ((FACE) =3D=3D (FACE)->ascii_face) + return face =3D=3D face->ascii_face; +#else + return true; +#endif +} =20 /* Return the id of the realized face on frame F that is like the face - FACE, but is suitable for displaying character CHAR at buffer or + FACE, but is suitable for displaying character CHARACTER at buffer or string position POS. OBJECT is the string object, or nil for buffer. This macro is only meaningful for multibyte character CHAR. */ - -#define FACE_FOR_CHAR(F, FACE, CHAR, POS, OBJECT) \ - face_for_char ((F), (FACE), (CHAR), (POS), (OBJECT)) - -#else /* not HAVE_WINDOW_SYSTEM */ - -#define FACE_SUITABLE_FOR_ASCII_CHAR_P(FACE, CHAR) \ - ((void) (FACE), (void) (CHAR), true) -#define FACE_FOR_CHAR(F, FACE, CHAR, POS, OBJECT) \ - ((void) (F), (void) (FACE), (void) (CHAR), (void) (POS), \ - (void) (OBJECT), (FACE)->id) - -#endif /* not HAVE_WINDOW_SYSTEM */ +INLINE int +FACE_FOR_CHAR (struct frame *f, struct face *face, int character, + ptrdiff_t pos, Lisp_Object object) +{ +#ifdef HAVE_WINDOW_SYSTEM + return face_for_char (f, face, character, pos, object); +#else + return face->id; +#endif +} =20 /* Return true if G contains a valid character code. */ INLINE bool diff --git a/src/frame.c b/src/frame.c index 9048452..aa06a38 100644 --- a/src/frame.c +++ b/src/frame.c @@ -106,39 +106,32 @@ decode_any_frame (register Lisp_Object frame) } =20 #ifdef HAVE_WINDOW_SYSTEM - bool -window_system_available (struct frame *f) +display_available (void) { - return f ? FRAME_WINDOW_P (f) || FRAME_MSDOS_P (f) : x_display_list !=3D= NULL; + return x_display_list !=3D NULL; } +#endif =20 struct frame * decode_window_system_frame (Lisp_Object frame) { struct frame *f =3D decode_live_frame (frame); - - if (!window_system_available (f)) - error ("Window system frame should be used"); + check_window_system (f); +#ifdef HAVE_WINDOW_SYSTEM return f; +#endif } =20 -#else /* not HAVE_WINDOW_SYSTEM */ - -_Noreturn void -decode_window_system_frame (Lisp_Object frame) -{ - error ("Window system is not in use"); -} - -_Noreturn -#endif /* not HAVE_WINDOW_SYSTEM */ void check_window_system (struct frame *f) { - if (!window_system_available (f)) - error (f ? "Window system frame should be used" - : "Window system is not in use or not initialized"); +#ifdef HAVE_WINDOW_SYSTEM + if (window_system_available (f)) + return; +#endif + error (f ? "Window system frame should be used" + : "Window system is not in use or not initialized"); } =20 /* Return the value of frame parameter PROP in frame FRAME. */ @@ -2137,20 +2130,18 @@ DEFUN ("iconify-frame", Ficonify_frame, Siconify_= frame, If omitted, FRAME defaults to the currently selected frame. */) (Lisp_Object frame) { -#ifdef HAVE_WINDOW_SYSTEM struct frame *f =3D decode_live_frame (frame); -#else - (void) decode_live_frame (frame); -#endif =20 /* Don't allow minibuf_window to remain on an iconified frame. */ check_minibuf_window (frame, EQ (minibuf_window, selected_window)); =20 /* I think this should be done with a hook. */ -#ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) + { +#ifdef HAVE_WINDOW_SYSTEM x_iconify_frame (f); #endif + } =20 /* Make menu bar update for the Buffers and Frames menus. */ windows_or_buffers_changed =3D 17; @@ -3013,20 +3004,18 @@ or bottom edge of the outer frame of FRAME relati= ve to the right or bottom edge of FRAME's display. */) (Lisp_Object frame, Lisp_Object x, Lisp_Object y) { -#ifdef HAVE_WINDOW_SYSTEM - register struct frame *f =3D decode_live_frame (frame); -#else - (void) decode_live_frame (frame); -#endif + struct frame *f =3D decode_live_frame (frame); =20 CHECK_TYPE_RANGED_INTEGER (int, x); CHECK_TYPE_RANGED_INTEGER (int, y); =20 /* I think this should be done with a hook. */ -#ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) - x_set_offset (f, XINT (x), XINT (y), 1); + { +#ifdef HAVE_WINDOW_SYSTEM + x_set_offset (f, XINT (x), XINT (y), 1); #endif + } =20 return Qt; } @@ -3755,8 +3744,8 @@ x_set_left_fringe (struct frame *f, Lisp_Object new= _value, Lisp_Object old_value =20 if (new_width !=3D old_width) { - FRAME_LEFT_FRINGE_WIDTH (f) =3D new_width; - FRAME_FRINGE_COLS (f) /* Round up. */ + f->left_fringe_width =3D new_width; + f->fringe_cols /* Round up. */ =3D (new_width + FRAME_RIGHT_FRINGE_WIDTH (f) + unit - 1) / unit; =20 if (FRAME_X_WINDOW (f) !=3D 0) @@ -3779,8 +3768,8 @@ x_set_right_fringe (struct frame *f, Lisp_Object ne= w_value, Lisp_Object old_valu =20 if (new_width !=3D old_width) { - FRAME_RIGHT_FRINGE_WIDTH (f) =3D new_width; - FRAME_FRINGE_COLS (f) /* Round up. */ + f->right_fringe_width =3D new_width; + f->fringe_cols /* Round up. */ =3D (new_width + FRAME_LEFT_FRINGE_WIDTH (f) + unit - 1) / unit; =20 if (FRAME_X_WINDOW (f) !=3D 0) @@ -3809,13 +3798,11 @@ void x_set_right_divider_width (struct frame *f, Lisp_Object arg, Lisp_Object= oldval) { int old =3D FRAME_RIGHT_DIVIDER_WIDTH (f); - CHECK_TYPE_RANGED_INTEGER (int, arg); - FRAME_RIGHT_DIVIDER_WIDTH (f) =3D XINT (arg); - if (FRAME_RIGHT_DIVIDER_WIDTH (f) < 0) - FRAME_RIGHT_DIVIDER_WIDTH (f) =3D 0; - if (FRAME_RIGHT_DIVIDER_WIDTH (f) !=3D old) + int new =3D max (0, XINT (arg)); + if (new !=3D old) { + f->right_divider_width =3D new; adjust_frame_size (f, -1, -1, 4, 0, Qright_divider_width); adjust_frame_glyphs (f); SET_FRAME_GARBAGED (f); @@ -3827,13 +3814,11 @@ void x_set_bottom_divider_width (struct frame *f, Lisp_Object arg, Lisp_Objec= t oldval) { int old =3D FRAME_BOTTOM_DIVIDER_WIDTH (f); - CHECK_TYPE_RANGED_INTEGER (int, arg); - FRAME_BOTTOM_DIVIDER_WIDTH (f) =3D XINT (arg); - if (FRAME_BOTTOM_DIVIDER_WIDTH (f) < 0) - FRAME_BOTTOM_DIVIDER_WIDTH (f) =3D 0; - if (FRAME_BOTTOM_DIVIDER_WIDTH (f) !=3D old) + int new =3D max (0, XINT (arg)); + if (new !=3D old) { + f->bottom_divider_width =3D new; adjust_frame_size (f, -1, -1, 4, 0, Qbottom_divider_width); adjust_frame_glyphs (f); SET_FRAME_GARBAGED (f); diff --git a/src/frame.h b/src/frame.h index 4ee0a74..5e3ee68 100644 --- a/src/frame.h +++ b/src/frame.h @@ -1102,23 +1102,37 @@ extern Lisp_Object selected_frame; extern int frame_default_tool_bar_height; #endif =20 +#ifdef HAVE_WINDOW_SYSTEM +# define WINDOW_SYSTEM_RETURN +#else +# define WINDOW_SYSTEM_RETURN _Noreturn +#endif + +extern WINDOW_SYSTEM_RETURN struct frame * + decode_window_system_frame (Lisp_Object); extern struct frame *decode_live_frame (Lisp_Object); extern struct frame *decode_any_frame (Lisp_Object); extern struct frame *make_initial_frame (void); extern struct frame *make_frame (bool); #ifdef HAVE_WINDOW_SYSTEM -extern void check_window_system (struct frame *); -extern struct frame *decode_window_system_frame (Lisp_Object); extern struct frame *make_minibuffer_frame (void); extern struct frame *make_frame_without_minibuffer (Lisp_Object, struct kboard *, Lisp_Object); -extern bool window_system_available (struct frame *); -#else /* not HAVE_WINDOW_SYSTEM */ -extern _Noreturn void check_window_system (struct frame *); -extern _Noreturn void decode_window_system_frame (Lisp_Object); -#define window_system_available(f) ((void) (f), false) -#endif /* HAVE_WINDOW_SYSTEM */ +extern bool display_available (void); +#endif + +INLINE bool +window_system_available (struct frame *f) +{ +#ifdef HAVE_WINDOW_SYSTEM + return f ? FRAME_WINDOW_P (f) || FRAME_MSDOS_P (f) : display_available= (); +#else + return false; +#endif +} + +extern WINDOW_SYSTEM_RETURN void check_window_system (struct frame *); extern void frame_make_pointer_invisible (struct frame *); extern void frame_make_pointer_visible (struct frame *); extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object); @@ -1152,46 +1166,68 @@ extern Lisp_Object Vframe_list; This value currently equals the average width of the default font of = F. */ #define FRAME_COLUMN_WIDTH(F) ((F)->column_width) =20 -/* Pixel width of areas used to display truncation marks, continuation - marks, overlay arrows. This is 0 for terminal frames. */ +/* Get a frame's window system dimension. If no window system, this is = 0. */ =20 +INLINE int +frame_dimension (int x) +{ #ifdef HAVE_WINDOW_SYSTEM + return x; +#else + return 0; +#endif +} =20 /* Total width of fringes reserved for drawing truncation bitmaps, continuation bitmaps and alike. The width is in canonical char units of the frame. This must currently be the case because window sizes aren't pixel values. If it weren't the case, we wouldn't be able to split windows horizontally nicely. */ -#define FRAME_FRINGE_COLS(F) ((F)->fringe_cols) +INLINE int +FRAME_FRINGE_COLS (struct frame *f) +{ + return frame_dimension (f->fringe_cols); +} =20 /* Pixel-width of the left and right fringe. */ =20 -#define FRAME_LEFT_FRINGE_WIDTH(F) ((F)->left_fringe_width) -#define FRAME_RIGHT_FRINGE_WIDTH(F) ((F)->right_fringe_width) +INLINE int +FRAME_LEFT_FRINGE_WIDTH (struct frame *f) +{ + return frame_dimension (f->left_fringe_width); +} +INLINE int +FRAME_RIGHT_FRINGE_WIDTH (struct frame *f) +{ + return frame_dimension (f->right_fringe_width); +} =20 /* Total width of fringes in pixels. */ =20 -#define FRAME_TOTAL_FRINGE_WIDTH(F) \ - (FRAME_LEFT_FRINGE_WIDTH (F) + FRAME_RIGHT_FRINGE_WIDTH (F)) +INLINE int +FRAME_TOTAL_FRINGE_WIDTH (struct frame *f) +{ + return FRAME_LEFT_FRINGE_WIDTH (f) + FRAME_RIGHT_FRINGE_WIDTH (f); +} =20 /* Pixel-width of internal border lines */ -#define FRAME_INTERNAL_BORDER_WIDTH(F) ((F)->internal_border_width) +INLINE int +FRAME_INTERNAL_BORDER_WIDTH (struct frame *f) +{ + return frame_dimension (f->internal_border_width); +} =20 /* Pixel-size of window border lines */ -#define FRAME_RIGHT_DIVIDER_WIDTH(F) ((F)->right_divider_width) -#define FRAME_BOTTOM_DIVIDER_WIDTH(F) ((F)->bottom_divider_width) - -#else /* not HAVE_WINDOW_SYSTEM */ - -#define FRAME_FRINGE_COLS(F) ((void) (F), 0) -#define FRAME_TOTAL_FRINGE_WIDTH(F) ((void) (F), 0) -#define FRAME_LEFT_FRINGE_WIDTH(F) ((void) (F), 0) -#define FRAME_RIGHT_FRINGE_WIDTH(F) ((void) (F), 0) -#define FRAME_INTERNAL_BORDER_WIDTH(F) ((void) (F), 0) -#define FRAME_RIGHT_DIVIDER_WIDTH(F) ((void) (F), 0) -#define FRAME_BOTTOM_DIVIDER_WIDTH(F) ((void) (F), 0) - -#endif /* not HAVE_WINDOW_SYSTEM */ +INLINE int +FRAME_RIGHT_DIVIDER_WIDTH (struct frame *f) +{ + return frame_dimension (f->right_divider_width); +} +INLINE int +FRAME_BOTTOM_DIVIDER_WIDTH (struct frame *f) +{ + return frame_dimension (f->bottom_divider_width); +} =0C /*********************************************************************** Conversion between canonical units and pixels diff --git a/src/gnutls.c b/src/gnutls.c index 8ee066f..7f05ac4 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -383,13 +383,6 @@ gnutls_log_function2 (int level, const char *string,= const char *extra) message ("gnutls.c: [%d] %s %s", level, string, extra); } =20 -/* Log a message and an integer. */ -static void -gnutls_log_function2i (int level, const char *string, int extra) -{ - message ("gnutls.c: [%d] %s %d", level, string, extra); -} - int gnutls_try_handshake (struct Lisp_Process *proc) { diff --git a/src/gnutls.h b/src/gnutls.h index 47e11f2..41769a4 100644 --- a/src/gnutls.h +++ b/src/gnutls.h @@ -71,7 +71,7 @@ typedef enum #define GNUTLS_LOG2i(level, max, string, extra) \ do { \ if ((level) <=3D (max)) \ - gnutls_log_function2i (level, "(Emacs) " string, extra); \ + message ("gnutls.c: [%d] %s %d", level, string, extra); \ } while (false) =20 extern ptrdiff_t diff --git a/src/image.c b/src/image.c index 0df415c..572557d 100644 --- a/src/image.c +++ b/src/image.c @@ -80,9 +80,6 @@ typedef struct w32_bitmap_record Bitmap_Record; #define PIX_MASK_DRAW 1 =20 #define x_defined_color w32_defined_color -#if 0 /* unused */ -#define DefaultDepthOfScreen(screen) (one_w32_display_info.n_cbits) -#endif =20 #endif /* HAVE_NTGUI */ =20 diff --git a/src/lisp.h b/src/lisp.h index 6a8f829..e0eb52a 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4634,10 +4634,8 @@ enum STR's value is not necessarily copied. The resulting Lisp string should not be modified or made visible to user code. */ =20 -/* Avoid initializing NAME to prevent "jump-misses-init" compiler - warnings. */ #define AUTO_STRING_WITH_LEN(name, str, len) \ - Lisp_Object name; name =3D \ + Lisp_Object name =3D \ (USE_STACK_STRING \ ? (make_lisp_ptr \ ((&(union Aligned_String) \ diff --git a/src/vm-limit.c b/src/vm-limit.c index 7eeca3c..58e7729 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c @@ -54,10 +54,10 @@ char data_start[1] =3D { 1 }; #ifdef HAVE_MALLOC_H # include #endif -#ifndef __MALLOC_HOOK_VOLATILE -# define __MALLOC_HOOK_VOLATILE volatile -#endif #ifndef HAVE_MALLOC_H +# ifndef __MALLOC_HOOK_VOLATILE +# define __MALLOC_HOOK_VOLATILE volatile +# endif extern void *(*__morecore) (ptrdiff_t); extern void (*__MALLOC_HOOK_VOLATILE __after_morecore_hook) (void); #endif diff --git a/src/xdisp.c b/src/xdisp.c index da0e84f..9df73f2 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -5040,11 +5040,9 @@ handle_single_display_spec (struct it *it, Lisp_Ob= ject spec, Lisp_Object object, return 1; =20 #ifdef HAVE_WINDOW_SYSTEM - int fringe_bitmap; - value =3D XCAR (XCDR (spec)); - if (!SYMBOLP (value) - || !(fringe_bitmap =3D lookup_fringe_bitmap (value))) + int fringe_bitmap =3D SYMBOLP (value) ? lookup_fringe_bitmap (valu= e) : 0; + if (! fringe_bitmap) /* If we return here, POSITION has been advanced across the text with this property. */ { @@ -21691,9 +21689,7 @@ Value is the new character position of point. */= ) int pt_x, target_x, pixel_width, pt_vpos; bool at_eol_p; bool overshoot_expected =3D false; -#ifdef HAVE_WINDOW_SYSTEM bool target_is_eol_p =3D false; -#endif =20 /* Setup the arena. */ SET_TEXT_POS (pt, PT, PT_BYTE); @@ -21808,9 +21804,7 @@ Value is the new character position of point. */= ) { move_it_by_lines (&it, -1); target_x =3D it.last_visible_x - !FRAME_WINDOW_P (it.f); -#ifdef HAVE_WINDOW_SYSTEM target_is_eol_p =3D true; -#endif /* Under word-wrap, we don't know the x coordinate of the last character displayed on the previous line, which immediately precedes the wrap point. To find @@ -21851,7 +21845,6 @@ Value is the new character position of point. */= ) } =20 /* Move to the target X coordinate. */ -#ifdef HAVE_WINDOW_SYSTEM /* On GUI frames, as we don't know the X coordinate of the character to the left of point, moving point to the left requires walking, one grapheme cluster at a time, until we @@ -21908,9 +21901,7 @@ Value is the new character position of point. */= ) new_pos.bytepos =3D CHAR_TO_BYTE (new_pos.charpos); it.current.pos =3D new_pos; } - else -#endif - if (it.current_x !=3D target_x) + else if (it.current_x !=3D target_x) move_it_in_display_line_to (&it, ZV, target_x, MOVE_TO_POS | MOVE_TO_X)= ; =20 /* If we ended up in a display string that covers point, move to @@ -28602,11 +28593,7 @@ static void show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) { struct window *w =3D XWINDOW (hlinfo->mouse_face_window); -#ifdef HAVE_WINDOW_SYSTEM struct frame *f =3D XFRAME (WINDOW_FRAME (w)); -#else - (void) XFRAME (WINDOW_FRAME (w)); -#endif =20 if (/* If window is in the process of being destroyed, don't bother to do anything. */ @@ -28617,9 +28604,7 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_= glyphs_face draw) anymore. This can happen when a window is split. */ && hlinfo->mouse_face_end_row < w->current_matrix->nrows) { -#ifdef HAVE_WINDOW_SYSTEM bool phys_cursor_on_p =3D w->phys_cursor_on_p; -#endif struct glyph_row *row, *first, *last; =20 first =3D MATRIX_ROW (w->current_matrix, hlinfo->mouse_face_beg_ro= w); @@ -28695,12 +28680,12 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum dra= w_glyphs_face draw) } } =20 -#ifdef HAVE_WINDOW_SYSTEM /* When we've written over the cursor, arrange for it to be displayed again. */ if (FRAME_WINDOW_P (f) && phys_cursor_on_p && !w->phys_cursor_on_p) { +#ifdef HAVE_WINDOW_SYSTEM int hpos =3D w->phys_cursor.hpos; =20 /* When the window is hscrolled, cursor hpos can legitimately be @@ -28715,8 +28700,8 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_= glyphs_face draw) display_and_set_cursor (w, true, hpos, w->phys_cursor.vpos, w->phys_cursor.x, w->phys_cursor.y); unblock_input (); - } #endif /* HAVE_WINDOW_SYSTEM */ + } } =20 #ifdef HAVE_WINDOW_SYSTEM @@ -29656,12 +29641,17 @@ Returns the alist element for the first matchin= g AREA in MAP. */) clip_to_bounds (INT_MIN, XINT (x), INT_MAX), clip_to_bounds (INT_MIN, XINT (y), INT_MAX)); } +#endif /* HAVE_WINDOW_SYSTEM */ =20 =20 /* Display frame CURSOR, optionally using shape defined by POINTER. */ static void define_frame_cursor1 (struct frame *f, Cursor cursor, Lisp_Object pointe= r) { +#ifdef HAVE_WINDOW_SYSTEM + if (!FRAME_WINDOW_P (f)) + return; + /* Do not change cursor shape while dragging mouse. */ if (EQ (do_mouse_tracking, Qdragging)) return; @@ -29678,10 +29668,10 @@ define_frame_cursor1 (struct frame *f, Cursor c= ursor, Lisp_Object pointer) cursor =3D FRAME_X_OUTPUT (f)->horizontal_drag_cursor; else if (EQ (pointer, intern ("nhdrag"))) cursor =3D FRAME_X_OUTPUT (f)->vertical_drag_cursor; -#ifdef HAVE_X_WINDOWS +# ifdef HAVE_X_WINDOWS else if (EQ (pointer, intern ("vdrag"))) cursor =3D FRAME_DISPLAY_INFO (f)->vertical_scroll_bar_cursor; -#endif +# endif else if (EQ (pointer, intern ("hourglass"))) cursor =3D FRAME_X_OUTPUT (f)->hourglass_cursor; else if (EQ (pointer, Qmodeline)) @@ -29692,10 +29682,9 @@ define_frame_cursor1 (struct frame *f, Cursor cu= rsor, Lisp_Object pointer) =20 if (cursor !=3D No_Cursor) FRAME_RIF (f)->define_frame_cursor (f, cursor); +#endif } =20 -#endif /* HAVE_WINDOW_SYSTEM */ - /* Take proper action when mouse has moved to the mode or header line or marginal area AREA of window W, x-position X and y-position Y. X is relative to the start of the text display area of W, so the @@ -29711,9 +29700,9 @@ note_mode_line_or_margin_highlight (Lisp_Object w= indow, int x, int y, Mouse_HLInfo *hlinfo =3D MOUSE_HL_INFO (f); #ifdef HAVE_WINDOW_SYSTEM Display_Info *dpyinfo; +#endif Cursor cursor =3D No_Cursor; Lisp_Object pointer =3D Qnil; -#endif int dx, dy, width, height; ptrdiff_t charpos; Lisp_Object string, object =3D Qnil; @@ -29964,12 +29953,8 @@ note_mode_line_or_margin_highlight (Lisp_Object = window, int x, int y, && hlinfo->mouse_face_beg_row =3D=3D vpos ) return; =20 -#ifdef HAVE_WINDOW_SYSTEM if (clear_mouse_face (hlinfo)) cursor =3D No_Cursor; -#else - (void) clear_mouse_face (hlinfo); -#endif =20 if (!row->reversed_p) { @@ -30003,10 +29988,8 @@ note_mode_line_or_margin_highlight (Lisp_Object = window, int x, int y, show_mouse_face (hlinfo, DRAW_MOUSE_FACE); mouse_face_shown =3D true; =20 -#ifdef HAVE_WINDOW_SYSTEM if (NILP (pointer)) pointer =3D Qhand; -#endif } } =20 @@ -30015,10 +29998,7 @@ note_mode_line_or_margin_highlight (Lisp_Object = window, int x, int y, if ((area =3D=3D ON_MODE_LINE || area =3D=3D ON_HEADER_LINE) && !mouse= _face_shown) clear_mouse_face (hlinfo); =20 -#ifdef HAVE_WINDOW_SYSTEM - if (FRAME_WINDOW_P (f)) - define_frame_cursor1 (f, cursor, pointer); -#endif + define_frame_cursor1 (f, cursor, pointer); } =20 =20 @@ -30037,10 +30017,8 @@ note_mouse_highlight (struct frame *f, int x, in= t y) enum window_part part =3D ON_NOTHING; Lisp_Object window; struct window *w; -#ifdef HAVE_WINDOW_SYSTEM Cursor cursor =3D No_Cursor; Lisp_Object pointer =3D Qnil; /* Takes precedence over cursor! */ -#endif struct buffer *b; =20 /* When a menu is active, don't highlight because this looks odd. */ @@ -30223,19 +30201,17 @@ note_mouse_highlight (struct frame *f, int x, i= nt y) && glyph->type =3D=3D STRETCH_GLYPH && glyph->avoid_cursor_p)) { -#ifndef HAVE_WINDOW_SYSTEM - (void) clear_mouse_face (hlinfo); -#else /* HAVE_WINDOW_SYSTEM */ if (clear_mouse_face (hlinfo)) cursor =3D No_Cursor; if (FRAME_WINDOW_P (f) && NILP (pointer)) { +#ifdef HAVE_WINDOW_SYSTEM if (area !=3D TEXT_AREA) cursor =3D FRAME_X_OUTPUT (f)->nontext_cursor; else pointer =3D Vvoid_text_area_pointer; +#endif } -#endif /* HAVE_WINDOW_SYSTEM */ goto set_cursor; } =20 @@ -30280,10 +30256,8 @@ note_mouse_highlight (struct frame *f, int x, in= t y) =20 same_region =3D coords_in_mouse_face_p (w, hpos, vpos); =20 -#ifdef HAVE_WINDOW_SYSTEM if (same_region) cursor =3D No_Cursor; -#endif =20 /* Check mouse-face highlighting. */ if (! same_region @@ -30310,12 +30284,8 @@ note_mouse_highlight (struct frame *f, int x, in= t y) hlinfo->mouse_face_overlay =3D overlay; =20 /* Clear the display of the old active region, if any. */ -#ifdef HAVE_WINDOW_SYSTEM if (clear_mouse_face (hlinfo)) cursor =3D No_Cursor; -#else - (void) clear_mouse_face (hlinfo); -#endif =20 /* If no overlay applies, get a text property. */ if (NILP (overlay)) @@ -30346,9 +30316,7 @@ note_mouse_highlight (struct frame *f, int x, int= y) =3D face_at_string_position (w, object, pos, 0, &ignore, glyph->face_id, true); show_mouse_face (hlinfo, DRAW_MOUSE_FACE); -#ifdef HAVE_WINDOW_SYSTEM cursor =3D No_Cursor; -#endif } else { @@ -30432,9 +30400,7 @@ note_mouse_highlight (struct frame *f, int x, int= y) : XFASTINT (after), before_string, after_string, disp_string); -#ifdef HAVE_WINDOW_SYSTEM cursor =3D No_Cursor; -#endif } } } @@ -30557,15 +30523,7 @@ note_mouse_highlight (struct frame *f, int x, in= t y) } =20 set_cursor: - -#ifdef HAVE_WINDOW_SYSTEM - if (FRAME_WINDOW_P (f)) - define_frame_cursor1 (f, cursor, pointer); -#else - /* This is here to prevent a compiler error, about "label at end of - compound statement". */ - return; -#endif + define_frame_cursor1 (f, cursor, pointer); } =20 =20 diff --git a/src/xfaces.c b/src/xfaces.c index faf28fc..97a5ae0 100644 --- a/src/xfaces.c +++ b/src/xfaces.c @@ -5287,11 +5287,11 @@ realize_default_face (struct frame *f) eassert (lface_fully_specified_p (XVECTOR (lface)->contents)); check_lface (lface); memcpy (attrs, XVECTOR (lface)->contents, sizeof attrs); - -#ifndef HAVE_X_WINDOWS - (void) realize_face (c, attrs, DEFAULT_FACE_ID); -#else /* HAVE_X_WINDOWS */ struct face *face =3D realize_face (c, attrs, DEFAULT_FACE_ID); + +#ifndef HAVE_WINDOW_SYSTEM + (void) face; +#else if (FRAME_X_P (f) && face->font !=3D FRAME_FONT (f)) { /* This can happen when making a frame on a display that does @@ -5305,7 +5305,7 @@ realize_default_face (struct frame *f) font. */ x_set_font (f, LFACE_FONT (lface), Qnil); } -#endif /* HAVE_X_WINDOWS */ +#endif return true; } =20 @@ -6093,7 +6093,7 @@ face_at_string_position (struct window *w, Lisp_Obj= ect string, if we don't have fonts, so we can stop here if not working on a window-system frame. */ || !FRAME_WINDOW_P (f) - || FACE_SUITABLE_FOR_ASCII_CHAR_P (base_face, 0))) + || FACE_SUITABLE_FOR_ASCII_CHAR_P (base_face))) return base_face->id; =20 /* Begin with attributes from the base face. */ diff --git a/src/xfns.c b/src/xfns.c index 35e2a23..1120c33 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -1434,7 +1434,7 @@ x_set_internal_border_width (struct frame *f, Lisp_= Object arg, Lisp_Object oldva =20 if (border !=3D FRAME_INTERNAL_BORDER_WIDTH (f)) { - FRAME_INTERNAL_BORDER_WIDTH (f) =3D border; + f->internal_border_width =3D border; =20 #ifdef USE_X_TOOLKIT if (FRAME_X_OUTPUT (f)->edit_widget) --=20 2.5.5 --------------050500040108000805070604-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 22 02:11:12 2016 Received: (at 23771) by debbugs.gnu.org; 22 Jun 2016 06:11:12 +0000 Received: from localhost ([127.0.0.1]:50295 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFbNX-0004C7-U0 for submit@debbugs.gnu.org; Wed, 22 Jun 2016 02:11:12 -0400 Received: from mout.gmx.net ([212.227.17.20]:59549) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFbNW-0004Bn-Ma for 23771@debbugs.gnu.org; Wed, 22 Jun 2016 02:11:11 -0400 Received: from [192.168.1.100] ([212.95.7.11]) by mail.gmx.com (mrgmx102) with ESMTPSA (Nemesis) id 0M9NIY-1b56yZ3PvK-00Ci3K; Wed, 22 Jun 2016 08:10:45 +0200 Message-ID: <576A2BDB.6020609@gmx.at> Date: Wed, 22 Jun 2016 08:10:35 +0200 From: martin rudalics MIME-Version: 1.0 To: Paul Eggert , Ken Brown Subject: Re: bug#23771: Eliminating compiler warnings References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> <5769E61B.9020200@cs.ucla.edu> In-Reply-To: <5769E61B.9020200@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:0zhUZJJlgAN823E6Xw6KgowKPCCE7ykxFp156PldvWjW6RNX5xp 12OOvciTrvfgO1t/QL39kJyudvVG+q3TthK/DFjyL2SEMXRCDob/EX1Uxy3B2TFDJfq8Fzj AecIrObZLRzycl9t2skWN/MKnCioUEGWzvT9tY741H03pbQnaqi7e8bRMztIhLSomiRrL8/ JgjLVlfGZA3JjBVcKuJ9g== X-UI-Out-Filterresults: notjunk:1;V01:K0:7ixYd7RWZjA=:Jyg+pbziMN/N4/TFaEILWu YOvAtDiP3FKrEi4fTIUKN/2npQ2XSqlFbnpVShwis/3Gzjg9X71H/fVo9ORfxDYJ5mlZJWwZs CyG4+gThfgHkf4prKntguigLsNwmzNIJ7+zx07QT7sMpUtgzpB6iTlnOJ90YhYO1BbxgBKnDB 1XlUlzXM9mxpXU/3T3+zyL6pEK8aa6fQAaCNWBZGdFSWIv6qH1GAJjNMHMKQKI3chEKMS2YVJ QAPr2fDFQddPTFfam+qfhqWoyxPCkPjxy/8j3b4iMxGuGu9y+6y0enPRPbxBOJqy0hfkuQRWr vfmrXWAMz9YFQ5GikiThZzuDfjTUiPhwuv7gO6M/qSy0clIkxaLBHHqxj0Mzr22f6v3YjdNKm A+sU7ClCY2+q8i8Yddb2fCenlL0QwLjCStHRQaSXkJGb4soDK3krxdi3mvn2XIEsPQB8rpFu4 OBSPWMm4D9Ik6SexT4U08x14xiiGBWixAQ5O/Ajsi+lB1pCq/FlPNTv2Ss4Op+EgH1nmRK2Jq tOgM8yQit6Ias86o7f5jKHexsngyWue+l268iUF70MDHvmu2DGF0mMXfIdtY0o6QutDXC78xU vLLfpf1sIPPG+IHBpU0PnlR4VjzQUeuThzjH2dUIrtrXgKbSgKNwS1rM33BS3OAq9doKuhLB4 5fL6isXjdOBa/PRvlsQjPooYAJAEpzA/Jn2CqL9Wekamn8W8HBTSZ8LEuyJRLVDmRbe/ajHoD XEq2n7sV6jz5Td5heRMGfcLpbW1xT7E3FcvYDdHRz61IrKoo3dMaRfaFyUUZELgBuexCImxG5 x0zVoCZ6I3OtnHtMnMgz0o7g9i1uQ== X-Spam-Score: -0.1 (/) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) > +/* Get a frame's window system dimension. If no window system, this is 0. */ > > +INLINE int > +frame_dimension (int x) frame_dimension sounds misleading to me. Couldn't you call it something like frame_area_dimension or frame_subarea_dimension instead? Thanks, martin From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 22 10:06:21 2016 Received: (at submit) by debbugs.gnu.org; 22 Jun 2016 14:06:21 +0000 Received: from localhost ([127.0.0.1]:51249 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFinN-0003as-8S for submit@debbugs.gnu.org; Wed, 22 Jun 2016 10:06:21 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFinM-0003ag-3F for submit@debbugs.gnu.org; Wed, 22 Jun 2016 10:06:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bFinB-00011L-TJ for submit@debbugs.gnu.org; Wed, 22 Jun 2016 10:06:14 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53501) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFinB-000119-Pv for submit@debbugs.gnu.org; Wed, 22 Jun 2016 10:06:09 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47058) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFin4-000471-Vv for bug-gnu-emacs@gnu.org; Wed, 22 Jun 2016 10:06:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bFimy-0000zs-KU for bug-gnu-emacs@gnu.org; Wed, 22 Jun 2016 10:06:01 -0400 Received: from plane.gmane.org ([80.91.229.3]:40754) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bFimy-0000y0-D8 for bug-gnu-emacs@gnu.org; Wed, 22 Jun 2016 10:05:56 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1bFimN-0001B5-V5 for bug-gnu-emacs@gnu.org; Wed, 22 Jun 2016 16:05:20 +0200 Received: from uk.solarflare.com ([193.34.186.16]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 22 Jun 2016 16:05:19 +0200 Received: from andrewjmoreton by uk.solarflare.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 22 Jun 2016 16:05:19 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Andy Moreton Subject: Re: bug#23771: Eliminating compiler warnings Date: Wed, 22 Jun 2016 15:04:39 +0100 Lines: 23 Message-ID: References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> <5769E61B.9020200@cs.ucla.edu> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: uk.solarflare.com User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.95 (windows-nt) Cancel-Lock: sha1:aVOVbCoI3w5xzYnUc6nx3I6LNTk= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.1 (----) On Wed 22 Jun 2016, Paul Eggert wrote: > Thanks for all the work in improving static checking for Cygwin builds. I just > now checked the attached patch into master, which I hope improves on it. I > tested it on Fedora (both with and without window systems). > > I had one problem with the recent changes, in that they suppressed all > warnings about jumps over AUTO_STRING calls. That's pretty drastic, as the > warnings are typically useful, so the attached patch reverts that. Can you let > me know which call needs the warning suppressed in the Cygwin-specific code in > the new master? I can suggest something which disables the warning just for > that call. Your patch changed FRAME_INTERNAL_BORDER_WIDTH() from a macro to an inline function, which breaks the mingw64 build: ../../src/w32fns.c: In function 'x_set_internal_border_width': ../../src/w32fns.c:1661:39: error: lvalue required as left operand of assignment FRAME_INTERNAL_BORDER_WIDTH (f) = border; ^ With FRAME_INTERNAL_BORDER_WIDTH() as a macro, it builds successfully. AndyM From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 22 10:06:38 2016 Received: (at 23771) by debbugs.gnu.org; 22 Jun 2016 14:06:38 +0000 Received: from localhost ([127.0.0.1]:51252 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFine-0003bO-LM for submit@debbugs.gnu.org; Wed, 22 Jun 2016 10:06:38 -0400 Received: from limerock03.mail.cornell.edu ([128.84.13.243]:35592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFind-0003b9-0B for 23771@debbugs.gnu.org; Wed, 22 Jun 2016 10:06:37 -0400 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu [10.16.197.8]) by limerock03.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u5ME6PM4031515; Wed, 22 Jun 2016 10:06:25 -0400 Received: from [192.168.1.5] (mta-68-175-148-36.twcny.rr.com [68.175.148.36] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u5ME6Nsm018429 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 22 Jun 2016 10:06:24 -0400 Subject: Re: bug#23771: Eliminating compiler warnings To: Paul Eggert References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> <5769E61B.9020200@cs.ucla.edu> From: Ken Brown Message-ID: Date: Wed, 22 Jun 2016 10:06:23 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <5769E61B.9020200@cs.ucla.edu> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Cornell-Gauge: Gauge=XXXXX X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) On 6/21/2016 9:12 PM, Paul Eggert wrote: > Thanks for all the work in improving static checking for Cygwin builds. > I just now checked the attached patch into master, which I hope improves > on it. I tested it on Fedora (both with and without window systems). Thanks. That's a big improvement. > I had one problem with the recent changes, in that they suppressed all > warnings about jumps over AUTO_STRING calls. That's pretty drastic, as > the warnings are typically useful, so the attached patch reverts that. > Can you let me know which call needs the warning suppressed in the > Cygwin-specific code in the new master? I can suggest something which > disables the warning just for that call. It's in line 7057 of w32fns.c. I see that you fixed a similar warning in xfns.c in commit e0400b7 by moving the AUTO_STRING call. I've just done the same thing in commit bbc58fe. Ken From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 22 10:10:55 2016 Received: (at 23771) by debbugs.gnu.org; 22 Jun 2016 14:10:55 +0000 Received: from localhost ([127.0.0.1]:51257 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFirn-0003hI-7H for submit@debbugs.gnu.org; Wed, 22 Jun 2016 10:10:55 -0400 Received: from limerock01.mail.cornell.edu ([128.84.13.241]:39387) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFirm-0003h6-4p for 23771@debbugs.gnu.org; Wed, 22 Jun 2016 10:10:54 -0400 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite4.serverfarm.cornell.edu [10.16.197.9]) by limerock01.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id u5MEAmkG026266; Wed, 22 Jun 2016 10:10:48 -0400 Received: from [192.168.1.5] (mta-68-175-148-36.twcny.rr.com [68.175.148.36] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id u5MEAlDe015576 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 22 Jun 2016 10:10:47 -0400 Subject: Re: bug#23771: Eliminating compiler warnings To: Andy Moreton , 23771@debbugs.gnu.org References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> <5769E61B.9020200@cs.ucla.edu> From: Ken Brown Message-ID: <7a9053ae-8a79-4c06-4ff1-cafa153846ad@cornell.edu> Date: Wed, 22 Jun 2016 10:10:48 -0400 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-PMX-Cornell-Gauge: Gauge=XXXXX X-Spam-Score: -3.7 (---) X-Debbugs-Envelope-To: 23771 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.7 (---) On 6/22/2016 10:04 AM, Andy Moreton wrote: > Your patch changed FRAME_INTERNAL_BORDER_WIDTH() from a macro to an > inline function, which breaks the mingw64 build: > > ../../src/w32fns.c: In function 'x_set_internal_border_width': > ../../src/w32fns.c:1661:39: error: lvalue required as left operand of assignment > FRAME_INTERNAL_BORDER_WIDTH (f) = border; I fixed this in commit 81fc9a7. Ken From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 23 03:15:59 2016 Received: (at 23771) by debbugs.gnu.org; 23 Jun 2016 07:15:59 +0000 Received: from localhost ([127.0.0.1]:51734 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFyrm-0006Be-Rs for submit@debbugs.gnu.org; Thu, 23 Jun 2016 03:15:58 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:50064) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bFyrl-0006BP-PT for 23771@debbugs.gnu.org; Thu, 23 Jun 2016 03:15:58 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id BB871161497; Thu, 23 Jun 2016 00:15:51 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id nElm5Lw56UbL; Thu, 23 Jun 2016 00:15:51 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 1FBC31614B9; Thu, 23 Jun 2016 00:15:51 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id mHGVWjhbhYMP; Thu, 23 Jun 2016 00:15:51 -0700 (PDT) Received: from [192.168.1.2] (host144-218-dynamic.32-79-r.retail.telecomitalia.it [79.32.218.144]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 35BFA161497; Thu, 23 Jun 2016 00:15:50 -0700 (PDT) Subject: Re: bug#23771: Eliminating compiler warnings To: martin rudalics , Ken Brown References: <08ec82d8-305e-5a95-7fbb-76162a49f5cc@cornell.edu> <83bn32eclh.fsf@gnu.org> <3f178870-9b99-8104-cb34-1967790436a5@cornell.edu> <5769E61B.9020200@cs.ucla.edu> <576A2BDB.6020609@gmx.at> From: Paul Eggert Message-ID: <576B8CA4.5020200@cs.ucla.edu> Date: Thu, 23 Jun 2016 09:15:48 +0200 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 In-Reply-To: <576A2BDB.6020609@gmx.at> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 23771 Cc: 23771@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) On 06/22/2016 08:10 AM, martin rudalics wrote: > frame_dimension sounds misleading to me. Couldn't you call it something > like frame_area_dimension or frame_subarea_dimension instead? Sure, please feel free to change the name, I didn't think much about it. From unknown Sat Aug 16 00:30:40 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 21 Jul 2016 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator