From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14622 invoked by alias); 28 Jul 2005 01:39:30 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 14614 invoked by uid 22791); 28 Jul 2005 01:39:26 -0000 Received: from viper.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.8) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Thu, 28 Jul 2005 01:39:26 +0000 Received: from farnswood.snap.net.nz (p71-tnt1.snap.net.nz [202.124.110.71]) by viper.snap.net.nz (Postfix) with ESMTP id 2E50D5F5ACF; Thu, 28 Jul 2005 13:39:20 +1200 (NZST) Received: by farnswood.snap.net.nz (Postfix, from userid 501) id 8CA7B62A99; Thu, 28 Jul 2005 02:40:47 +0100 (BST) From: Nick Roberts MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: base64 Message-ID: <17128.14238.713213.954375@farnswood.snap.net.nz> Date: Thu, 28 Jul 2005 01:39:00 -0000 To: Daniel Jacobowitz Cc: Mark Kettenis , gdb-patches@sources.redhat.com Subject: Re: PATCH: tests for MI commands In-Reply-To: <20050728002057.GA25134@nevyn.them.org> References: <17117.55351.716393.763492@farnswood.snap.net.nz> <20050724211946.GB798@nevyn.them.org> <17126.51233.887175.402254@farnswood.snap.net.nz> <20050727002721.GA27261@nevyn.them.org> <17126.62115.642102.742744@farnswood.snap.net.nz> <20050727035503.GA30670@nevyn.them.org> <17127.29797.456624.592127@farnswood.snap.net.nz> <200507272103.j6RL3HYf022581@elgar.sibelius.xs4all.nl> <17128.2540.73355.406922@farnswood.snap.net.nz> <20050728002057.GA25134@nevyn.them.org> X-SW-Source: 2005-07/txt/msg00218.txt.bz2 IC4uLg0KID4gPiAgPiBXZSBjYW4gZGlzY3VzcyB0aGlzICphZnRlciogeW91 IGVpdGhlcjoNCiA+ID4gID4gYSkgRml4ZWQgdGhlIHRlc3QgZmFpbHVyZXMu DQogPiA+ICA+IA0KID4gPiAgPiBiKSBCYWNrZWQgb3V0IHlvdXIgcGF0Y2gu DQogPiA+IA0KID4gPiBJJ2QgbGlrZSB0byBkbyBhKSBieSByZW1vdmluZyB0 aGUgbWkyLSouZXhwIGZpbGVzIDstKS4gIFRoZXJlIGRvZXNuJ3Qgc2VlbQ0K ID4gPiBtdWNoIHBvaW50IGluIG1ha2luZyBhIGxvYWQgb2YgY2hhbmdlcyBp ZiB3ZSBhcmUgZ29pbmcgdG8ganVzdCByZW1vdmUgdGhlDQogPiA+IGZpbGVz IGFmdGVyd2FyZHMuDQogPiANCiA+IE9idmlvdXNseSB0aGlzIGlzIG5vdCB1 bmNvbnRyb3ZlcnNpYWwsIHNvIGl0IGlzIG5vdCBhcHByb3ByaWF0ZSBhcyBh DQogPiBzaG9ydCB0ZXJtIHNvbHV0aW9uLg0KDQpJdHMgbm90IHRoYXQgY29u dHJvdmVyc2lhbCBhcyByZW1vdmUgaW4gQ1ZTIGp1c3QgbWVhbnMgbW92ZSB0 byB0aGUgQXR0aWMNCmRpcmVjdG9yeTogbm90aGluZyBpcyBsb3N0IGFuZCBp dCBjYW4gYWx3YXlzIGJlIHJlY292ZXJlZCwgaWYgbmVjZXNzYXJ5Lg0KDQog Li4uDQogPiA+IExldCdzIHJlbWVtYmVyIHRoYXQgdGhlIHRlc3RzdWl0ZSBp cyB0aGVyZSB0byBwcmV2ZW50IHJlZ3Jlc3Npb25zIGluIEdEQg0KID4gPiBh bmQgbm90IGFzIGFuIGVuZCBpbiBpdHNlbGYuICBQcmVzdW1hYmx5IHRoZSBm b2N1cyBzaG91bGQgYmUgb24gaGF2aW5nDQogPiA+IHRoZSByaWdodCB0ZXN0 cyBpbiB0aGUgc3VpdGUgYW5kIG5vdCBqdXN0IG9uIGVuc3VyaW5nIHRoYXQg ZXZlcnl0aGluZw0KID4gPiBwYXNzZXMuDQogPiANCiA+IEkgd2lsbCBlY2hv IGV2ZXJ5b25lIGVsc2UncyBjb21tZW50cyBoZXJlIC0gaW4gcGFydGljdWxh ciBTdGFuJ3MuICBMb3RzDQogPiBvZiBwZW9wbGUgcnVuIHRoZSB0ZXN0c3Vp dGUsIGVpdGhlciBtYW51YWxseSBkdXJpbmcgZGV2ZWxvcG1lbnQgb3IgaW4N CiA+IGF1dG9tYXRlZCB0ZXN0IGhhcm5lc3NlcywgYW5kIGluIGVpdGhlciBj YXNlIHRoZXJlJ3Mgc29tZW9uZSB3aG8gaGFzIHRvDQogPiBsb29rIGludG8g dGhlIG5ldyBmYWlsdXJlcyB3aGVuIHRoZXkgYXBwZWFyLiAgTGVhdmluZyB0 aGluZ3MgYnJva2VuIGlzDQogPiBhIHByb2JsZW0uDQoNCkkgbmV2ZXIgaW50 ZW5kZWQgdG8gbGVhdmUgdGhpbmdzIGJyb2tlbi4gIFlvdSBoYXZlIGFza2Vk IG1lIHRvIGZpeCB0aGUNCmZhaWx1cmVzLCBhbmQgSSB3aWxsLCBidXQgSSdt IG5vdCBzdXJlIGlmIHRoYXQgbWVhbnMgc3VibWl0IGZ1cnRoZXIgcGF0Y2hl cyB0bw0KdGhlIG1haWxpbmcgbGlzdCBvciBjb21taXQgYXBwcm9wcmlhdGUg Zml4ZXMuICBCYXNlZCBvbiBNYXJrIEtldHRlbmlzJyBlLW1haWwsDQpJIGF0 dGFjaCBhIHNpbXBsZSBmaXggZm9yIG1pLXZhci1jaGlsZC5leHAuICBEb2Vz IGl0IHdvcmsgaW4geW91ciBjYXNlPyAgSQ0KYWxzbyBzdWdnZXN0ZWQgcmVt b3ZpbmcgdGhlIGR1cGxpY2F0ZSB0ZXN0IGZvciBpbiBtaS12YXItZGlzcGxh eS5leHAgKHdoaWNoDQpwcmVzdW1hYmx5IGV4aXN0ZWQgYmVmb3JlIG1pLXZh ci1jaGlsZC5leHAgd2FzIGNyZWF0ZWQpLiAgQ2FuIEkgY29tbWl0IHRoZXNl DQpjaGFuZ2VzPw0KDQpOaWNrDQoNCjIwMDUtMDctMjggIE5pY2sgUm9iZXJ0 cyAgPG5pY2tyb2JAc25hcC5uZXQubno+DQoNCgkqIGdkYi5taS9taS12YXIt Y2hpbGQuZXhwOiBBbGxvdyBzdHJ1Y3RfZGVjbGFyYXRpb25zLmNoYXJhY3Rl ciB0byBiZQ0KCXVuaW5pdGlhbGl6ZWQuDQoNCioqKiBnZGIubWkvbWktdmFy LWNoaWxkLmV4cC5+MS4xOC5+CTIwMDUtMDctMjcgMTQ6MTI6MDYuMDAwMDAw MDAwICsxMjAwDQotLS0gZ2RiLm1pL21pLXZhci1jaGlsZC5leHAJMjAwNS0w Ny0yOCAxMzoyOTozNS4wMDAwMDAwMDAgKzEyMDANCioqKioqKioqKioqKioq KiBtaV9nZGJfdGVzdCAiLXZhci1saXN0LWNoaWxkcmVuIC0tYWxsLXZhDQoq KiogODY2LDg3MiAqKioqDQogICAgICAgICAgICAgICAgICAibGlzdGluZyBv ZiBuYW1lcyBhbmQgdmFsdWVzIG9mIGNoaWxkcmVuIg0KICANCiAgbWlfZ2Ri X3Rlc3QgIi12YXItbGlzdC1jaGlsZHJlbiAtLXNpbXBsZS12YWx1ZXMgc3Ry dWN0X2RlY2xhcmF0aW9ucyIgXA0KISAgICAgICAgICJcXF5kb25lLG51bWNo aWxkPVwiMTFcIixjaGlsZHJlbj1cXFxbY2hpbGQ9XHtuYW1lPVwic3RydWN0 X2RlY2xhcmF0aW9ucy5pbnRlZ2VyXCIsZXhwPVwiaW50ZWdlclwiLG51bWNo aWxkPVwiMFwiLHZhbHVlPVwiMTIzXCIsdHlwZT1cImludFwiXH0sY2hpbGQ9 XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyYWN0ZXJcIixleHA9 XCJjaGFyYWN0ZXJcIixudW1jaGlsZD1cIjBcIix2YWx1ZT1cIjAgJ1xcXFxc XFxcMCdcIix0eXBlPVwiY2hhclwiXH0sY2hpbGQ9XHtuYW1lPVwic3RydWN0 X2RlY2xhcmF0aW9ucy5jaGFyX3B0clwiLGV4cD1cImNoYXJfcHRyXCIsbnVt Y2hpbGQ9XCIxXCIsdmFsdWU9XCIkaGV4IFxcXFxcImhlbGxvXFxcXFwiXCIs dHlwZT1cImNoYXIgXFwqXCJcfSxjaGlsZD1ce25hbWU9XCJzdHJ1Y3RfZGVj bGFyYXRpb25zLmxvbmdfaW50XCIsZXhwPVwibG9uZ19pbnRcIixudW1jaGls ZD1cIjBcIix2YWx1ZT1cIjBcIix0eXBlPVwibG9uZyBpbnRcIlx9LGNoaWxk PVx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50X3B0cl9wdHJcIixl eHA9XCJpbnRfcHRyX3B0clwiLG51bWNoaWxkPVwiMVwiLHZhbHVlPVwiJGhl eFwiLHR5cGU9XCJpbnQgXFwqXFwqXCJcfSxjaGlsZD1ce25hbWU9XCJzdHJ1 Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXlcIixleHA9XCJsb25nX2FycmF5 XCIsbnVtY2hpbGQ9XCIxMlwiLHR5cGU9XCJsb25nIGludCBcXFxbMTJcXFxd XCJcfSxjaGlsZD1ce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmZ1bmNf cHRyXCIsZXhwPVwiZnVuY19wdHJcIixudW1jaGlsZD1cIjBcIix2YWx1ZT1c IiRoZXggPG5vdGhpbmc+XCIsdHlwZT1cInZvaWQgXFwoXFwqXFwpXFwodm9p ZFxcKVwiXH0sY2hpbGQ9XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5m dW5jX3B0cl9zdHJ1Y3RcIixleHA9XCJmdW5jX3B0cl9zdHJ1Y3RcIixudW1j aGlsZD1cIjBcIix2YWx1ZT1cIjBcIix0eXBlPVwic3RydWN0IF9zdHJ1Y3Rf ZGVjbCBcXChcXCpcXClcXChpbnQsIGNoYXIgXFwqLCBsb25nIGludFxcKVwi XH0sY2hpbGQ9XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5mdW5jX3B0 cl9wdHJcIixleHA9XCJmdW5jX3B0cl9wdHJcIixudW1jaGlsZD1cIjBcIix2 YWx1ZT1cIjBcIix0eXBlPVwic3RydWN0IF9zdHJ1Y3RfZGVjbCBcXCpcXChc XCpcXClcXChpbnQsIGNoYXIgXFwqLCBsb25nIGludFxcKVwiXH0sY2hpbGQ9 XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy51MVwiLGV4cD1cInUxXCIs bnVtY2hpbGQ9XCI0XCIsdHlwZT1cInVuaW9uIFx7Li4uXH1cIlx9LGNoaWxk PVx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuczJcIixleHA9XCJzMlwi LG51bWNoaWxkPVwiNFwiLHR5cGU9XCJzdHJ1Y3QgXHsuLi5cfVwiXH1cXFxd IiBcDQogICAgImxpc3Rpbmcgb2YgY2hpbGRyZW4sIHNpbXBsZSB0eXBlczog bmFtZXMsIHR5cGUgYW5kIHZhbHVlcywgY29tcGxleCB0eXBlczogbmFtZXMg YW5kIHR5cGVzIg0KICANCiAgIyBEZWxldGUgYWxsIHZhcmlhYmxlcw0KLS0t IDg2Niw4NzIgLS0tLQ0KICAgICAgICAgICAgICAgICAgImxpc3Rpbmcgb2Yg bmFtZXMgYW5kIHZhbHVlcyBvZiBjaGlsZHJlbiINCiAgDQogIG1pX2dkYl90 ZXN0ICItdmFyLWxpc3QtY2hpbGRyZW4gLS1zaW1wbGUtdmFsdWVzIHN0cnVj dF9kZWNsYXJhdGlvbnMiIFwNCiEgICAgICAgICAiXFxeZG9uZSxudW1jaGls ZD1cIjExXCIsY2hpbGRyZW49XFxcW2NoaWxkPVx7bmFtZT1cInN0cnVjdF9k ZWNsYXJhdGlvbnMuaW50ZWdlclwiLGV4cD1cImludGVnZXJcIixudW1jaGls ZD1cIjBcIix2YWx1ZT1cIjEyM1wiLHR5cGU9XCJpbnRcIlx9LGNoaWxkPVx7 bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuY2hhcmFjdGVyXCIsZXhwPVwi Y2hhcmFjdGVyXCIsbnVtY2hpbGQ9XCIwXCIsdmFsdWU9XCIwICdcXFxcXFxc XCRkZWNpbWFsJ1wiLHR5cGU9XCJjaGFyXCJcfSxjaGlsZD1ce25hbWU9XCJz dHJ1Y3RfZGVjbGFyYXRpb25zLmNoYXJfcHRyXCIsZXhwPVwiY2hhcl9wdHJc IixudW1jaGlsZD1cIjFcIix2YWx1ZT1cIiRoZXggXFxcXFwiaGVsbG9cXFxc XCJcIix0eXBlPVwiY2hhciBcXCpcIlx9LGNoaWxkPVx7bmFtZT1cInN0cnVj dF9kZWNsYXJhdGlvbnMubG9uZ19pbnRcIixleHA9XCJsb25nX2ludFwiLG51 bWNoaWxkPVwiMFwiLHZhbHVlPVwiMFwiLHR5cGU9XCJsb25nIGludFwiXH0s Y2hpbGQ9XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRyX3B0 clwiLGV4cD1cImludF9wdHJfcHRyXCIsbnVtY2hpbGQ9XCIxXCIsdmFsdWU9 XCIkaGV4XCIsdHlwZT1cImludCBcXCpcXCpcIlx9LGNoaWxkPVx7bmFtZT1c InN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheVwiLGV4cD1cImxvbmdf YXJyYXlcIixudW1jaGlsZD1cIjEyXCIsdHlwZT1cImxvbmcgaW50IFxcXFsx MlxcXF1cIlx9LGNoaWxkPVx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMu ZnVuY19wdHJcIixleHA9XCJmdW5jX3B0clwiLG51bWNoaWxkPVwiMFwiLHZh bHVlPVwiJGhleCA8bm90aGluZz5cIix0eXBlPVwidm9pZCBcXChcXCpcXClc XCh2b2lkXFwpXCJcfSxjaGlsZD1ce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRp b25zLmZ1bmNfcHRyX3N0cnVjdFwiLGV4cD1cImZ1bmNfcHRyX3N0cnVjdFwi LG51bWNoaWxkPVwiMFwiLHZhbHVlPVwiMFwiLHR5cGU9XCJzdHJ1Y3QgX3N0 cnVjdF9kZWNsIFxcKFxcKlxcKVxcKGludCwgY2hhciBcXCosIGxvbmcgaW50 XFwpXCJcfSxjaGlsZD1ce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmZ1 bmNfcHRyX3B0clwiLGV4cD1cImZ1bmNfcHRyX3B0clwiLG51bWNoaWxkPVwi MFwiLHZhbHVlPVwiMFwiLHR5cGU9XCJzdHJ1Y3QgX3N0cnVjdF9kZWNsIFxc KlxcKFxcKlxcKVxcKGludCwgY2hhciBcXCosIGxvbmcgaW50XFwpXCJcfSxj aGlsZD1ce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLnUxXCIsZXhwPVwi dTFcIixudW1jaGlsZD1cIjRcIix0eXBlPVwidW5pb24gXHsuLi5cfVwiXH0s Y2hpbGQ9XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5zMlwiLGV4cD1c InMyXCIsbnVtY2hpbGQ9XCI0XCIsdHlwZT1cInN0cnVjdCBcey4uLlx9XCJc fVxcXF0iIFwNCiAgICAibGlzdGluZyBvZiBjaGlsZHJlbiwgc2ltcGxlIHR5 cGVzOiBuYW1lcywgdHlwZSBhbmQgdmFsdWVzLCBjb21wbGV4IHR5cGVzOiBu YW1lcyBhbmQgdHlwZXMiDQogIA0KICAjIERlbGV0ZSBhbGwgdmFyaWFibGVz >From gdb-patches-return-40381-listarch-gdb-patches=sources.redhat.com@sources.redhat.com Thu Jul 28 03:11:37 2005 Return-Path: Delivered-To: listarch-gdb-patches@sources.redhat.com Received: (qmail 12523 invoked by alias); 28 Jul 2005 03:11:36 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Delivered-To: mailing list gdb-patches@sources.redhat.com Received: (qmail 12276 invoked by uid 22791); 28 Jul 2005 03:11:02 -0000 Received: from caip.rutgers.edu (HELO caip.rutgers.edu) (128.6.236.10) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Thu, 28 Jul 2005 03:11:02 +0000 Received: from caipclassic.rutgers.edu (caipclassic.rutgers.edu [128.6.237.54]) by caip.rutgers.edu (8.13.3+Sun/8.13.3) with ESMTP id j6S3B0fV019692 for ; Wed, 27 Jul 2005 23:11:00 -0400 (EDT) Received: from caipclassic.rutgers.edu (localhost [127.0.0.1]) by caipclassic.rutgers.edu (8.12.10+Sun/8.12.9) with ESMTP id j6S3Avkl011704; Wed, 27 Jul 2005 23:10:57 -0400 (EDT) Received: (from ghazi@localhost) by caipclassic.rutgers.edu (8.12.10+Sun/8.12.9/Submit) id j6S3AvjH011703; Wed, 27 Jul 2005 23:10:57 -0400 (EDT) Date: Thu, 28 Jul 2005 03:11:00 -0000 From: "Kaveh R. Ghazi" Message-Id: <200507280310.j6S3AvjH011703@caipclassic.rutgers.edu> To: gdb-patches@sources.redhat.com Subject: PATCH: add format attributes to gdb Cc: ghazi@caipclassic.rutgers.edu X-SW-Source: 2005-07/txt/msg00219.txt.bz2 Content-length: 18986 Hi, This patch adds format attributes in various places in gdb. I found these mainly by compiling gdb using a snapshot of gcc-4.1.x with -Wmissing-format-attribute. (GCC 4.1.x has some improvements that find more places to add missing format attributes.) In adding these attributes, I used gdb's ATTR_FORMAT macro except where I worked on function pointers, in which case I used libiberty's ATTRIBUTE_FPTR_PRINTF. (IMHO, gdb's ATTR_FORMAT should go away in favor of libiberty's versions, but that's another story.) I tested this by compiling gdb-6.3.50.20050727 with a recent gcc-4.1.x snapshot on x86_64-unknown-linux-gnu plus I compiled gdb using gcc-2.95 on sparc-sun-solaris2.7 (to test that I used ATTRIBUTE_FPTR_PRINTF vs ATTR_FORMAT in the right places.) Note: I found zero format specifier errors! (Adding these attributes to gdb will help keep it that way.) I don't have write access. If this is okay, would the reviewer please install? Thanks, --Kaveh 2005-07-27 Kaveh R. Ghazi * cli-out.c (cli_field_fmt, cli_message, out_field_fmt): Add ATTR_FORMAT or ATTRIBUTE_FPTR_PRINTF. * complaints.c (vcomplaint): Likewise. * defs.h (xvasprintf, xstrvprintf, verror, vfatal, internal_verror, internal_vwarning, vwarning, deprecated_query_hook, deprecated_warning_hook, deprecated_readline_begin_hook): Likewise. * disasm.c (fprintf_disasm): Likewise. * exceptions.c (throw_it): Likewise. * exceptions.h (throw_verror, throw_vfatal): Likewise. * mi/mi-interp.c (mi_interp_query_hook): Likewise. * mi/mi-out.c (mi_field_fmt, mi_message): Likewise. * tui/tui-hooks.c (tui_query_hook): Likewise. * tui/tui-out.c (tui_field_fmt, tui_message, out_field_fmt): Likewise. * ui-out.c (default_field_fmt, default_message, uo_field_fmt, uo_message): Likewise. * ui-out.h (ui_out_field_fmt, ui_out_message, field_fmt_ftype, message_ftype): Likewise. * utils.c (vfprintf_maybe_filtered, internal_vproblem, defaulted_query, printchar): Likewise. gdbserver: * server.h (error, fatal, warning): Add ATTR_FORMAT. diff -rup orig/gdb-6.3.50.20050727/gdb/cli-out.c gdb-6.3.50.20050727/gdb/cli-out.c --- orig/gdb-6.3.50.20050727/gdb/cli-out.c 2005-01-13 18:39:40.000000000 -0500 +++ gdb-6.3.50.20050727/gdb/cli-out.c 2005-07-27 21:26:17.003582760 -0400 @@ -58,11 +58,11 @@ static void cli_field_string (struct ui_ static void cli_field_fmt (struct ui_out *uiout, int fldno, int width, enum ui_align align, const char *fldname, const char *format, - va_list args); + va_list args) ATTR_FORMAT (printf, 6, 0); static void cli_spaces (struct ui_out *uiout, int numspaces); static void cli_text (struct ui_out *uiout, const char *string); static void cli_message (struct ui_out *uiout, int verbosity, - const char *format, va_list args); + const char *format, va_list args) ATTR_FORMAT (printf, 3, 0); static void cli_wrap_hint (struct ui_out *uiout, char *identstring); static void cli_flush (struct ui_out *uiout); static int cli_redirect (struct ui_out *uiout, struct ui_file *outstream); @@ -101,7 +101,7 @@ static void field_separator (void); static void out_field_fmt (struct ui_out *uiout, int fldno, const char *fldname, - const char *format,...); + const char *format,...) ATTR_FORMAT (printf, 4, 5); /* local variables */ diff -rup orig/gdb-6.3.50.20050727/gdb/complaints.c gdb-6.3.50.20050727/gdb/complaints.c --- orig/gdb-6.3.50.20050727/gdb/complaints.c 2005-02-17 08:49:49.000000000 -0500 +++ gdb-6.3.50.20050727/gdb/complaints.c 2005-07-27 21:26:17.013582321 -0400 @@ -166,7 +166,7 @@ static unsigned int stop_whining = 0; /* Print a complaint, and link the complaint block into a chain for later handling. */ -static void +static void ATTR_FORMAT (printf, 4, 0) vcomplaint (struct complaints **c, const char *file, int line, const char *fmt, va_list args) { diff -rup orig/gdb-6.3.50.20050727/gdb/defs.h gdb-6.3.50.20050727/gdb/defs.h --- orig/gdb-6.3.50.20050727/gdb/defs.h 2005-05-19 13:55:53.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/defs.h 2005-07-27 21:26:17.013582321 -0400 @@ -872,12 +872,12 @@ extern void *xzalloc (size_t); /* Like asprintf/vasprintf but get an internal_error if the call fails. */ extern void xasprintf (char **ret, const char *format, ...) ATTR_FORMAT (printf, 2, 3); -extern void xvasprintf (char **ret, const char *format, va_list ap); +extern void xvasprintf (char **ret, const char *format, va_list ap) ATTR_FORMAT (printf, 2, 0); /* Like asprintf and vasprintf, but return the string, throw an error if no memory. */ extern char *xstrprintf (const char *format, ...) ATTR_FORMAT (printf, 1, 2); -extern char *xstrvprintf (const char *format, va_list ap); +extern char *xstrvprintf (const char *format, va_list ap) ATTR_FORMAT (printf, 1, 0); /* Like snprintf, but throw an error if the output buffer is too small. */ extern int xsnprintf (char *str, size_t size, const char *format, ...) @@ -897,24 +897,24 @@ extern char *quit_pre_print; extern char *warning_pre_print; -extern NORETURN void verror (const char *fmt, va_list ap) ATTR_NORETURN; +extern NORETURN void verror (const char *fmt, va_list ap) ATTR_NORETURN ATTR_FORMAT (printf, 1, 0); extern NORETURN void error (const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2); extern NORETURN void error_stream (struct ui_file *) ATTR_NORETURN; -extern NORETURN void vfatal (const char *fmt, va_list ap) ATTR_NORETURN; +extern NORETURN void vfatal (const char *fmt, va_list ap) ATTR_NORETURN ATTR_FORMAT (printf, 1, 0); extern NORETURN void fatal (const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2); extern NORETURN void internal_verror (const char *file, int line, - const char *, va_list ap) ATTR_NORETURN; + const char *, va_list ap) ATTR_NORETURN ATTR_FORMAT (printf, 3, 0); extern NORETURN void internal_error (const char *file, int line, const char *, ...) ATTR_NORETURN ATTR_FORMAT (printf, 3, 4); extern void internal_vwarning (const char *file, int line, - const char *, va_list ap); + const char *, va_list ap) ATTR_FORMAT (printf, 3, 0); extern void internal_warning (const char *file, int line, const char *, ...) ATTR_FORMAT (printf, 3, 4); @@ -923,7 +923,7 @@ extern NORETURN void nomem (long) ATTR_N extern void warning (const char *, ...) ATTR_FORMAT (printf, 1, 2); -extern void vwarning (const char *, va_list args); +extern void vwarning (const char *, va_list args) ATTR_FORMAT (printf, 1, 0); /* List of known OS ABIs. If you change this, make sure to update the table in osabi.c. */ @@ -1092,15 +1092,15 @@ extern void (*deprecated_print_frame_inf int line, int stopline, int noerror); extern struct frame_info *parse_frame_specification (char *frame_exp); -extern int (*deprecated_query_hook) (const char *, va_list); -extern void (*deprecated_warning_hook) (const char *, va_list); +extern int (*deprecated_query_hook) (const char *, va_list) ATTRIBUTE_FPTR_PRINTF(1,0); +extern void (*deprecated_warning_hook) (const char *, va_list) ATTRIBUTE_FPTR_PRINTF(1,0); extern void (*deprecated_flush_hook) (struct ui_file * stream); extern void (*deprecated_create_breakpoint_hook) (struct breakpoint * b); extern void (*deprecated_delete_breakpoint_hook) (struct breakpoint * bpt); extern void (*deprecated_modify_breakpoint_hook) (struct breakpoint * bpt); extern void (*deprecated_interactive_hook) (void); extern void (*deprecated_registers_changed_hook) (void); -extern void (*deprecated_readline_begin_hook) (char *,...); +extern void (*deprecated_readline_begin_hook) (char *,...) ATTRIBUTE_FPTR_PRINTF_1; extern char *(*deprecated_readline_hook) (char *); extern void (*deprecated_readline_end_hook) (void); extern void (*deprecated_register_changed_hook) (int regno); diff -rup orig/gdb-6.3.50.20050727/gdb/disasm.c gdb-6.3.50.20050727/gdb/disasm.c --- orig/gdb-6.3.50.20050727/gdb/disasm.c 2005-05-16 00:45:42.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/disasm.c 2005-07-27 21:26:17.013582321 -0400 @@ -313,7 +313,7 @@ do_assembly_only (struct ui_out *uiout, /* Initialize the disassemble info struct ready for the specified stream. */ -static int +static int ATTR_FORMAT (printf, 2, 3) fprintf_disasm (void *stream, const char *format, ...) { va_list args; diff -rup orig/gdb-6.3.50.20050727/gdb/exceptions.c gdb-6.3.50.20050727/gdb/exceptions.c --- orig/gdb-6.3.50.20050727/gdb/exceptions.c 2005-04-28 10:07:54.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/exceptions.c 2005-07-27 21:26:17.023582353 -0400 @@ -373,10 +373,7 @@ print_any_exception (struct ui_file *fil } } -NORETURN static void -throw_it (enum return_reason reason, enum errors error, const char *fmt, - va_list ap) ATTR_NORETURN; -NORETURN static void +NORETURN static void ATTR_NORETURN ATTR_FORMAT (printf, 3, 0) throw_it (enum return_reason reason, enum errors error, const char *fmt, va_list ap) { diff -rup orig/gdb-6.3.50.20050727/gdb/exceptions.h gdb-6.3.50.20050727/gdb/exceptions.h --- orig/gdb-6.3.50.20050727/gdb/exceptions.h 2005-06-02 12:52:04.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/exceptions.h 2005-07-27 21:26:17.023582353 -0400 @@ -161,8 +161,8 @@ extern void exception_fprintf (struct ui extern NORETURN void throw_exception (struct gdb_exception exception) ATTR_NORETURN; extern NORETURN void throw_verror (enum errors, const char *fmt, - va_list ap) ATTR_NORETURN; -extern NORETURN void throw_vfatal (const char *fmt, va_list ap) ATTR_NORETURN; + va_list ap) ATTR_NORETURN ATTR_FORMAT (printf, 2, 0); +extern NORETURN void throw_vfatal (const char *fmt, va_list ap) ATTR_NORETURN ATTR_FORMAT (printf, 1, 0); extern NORETURN void throw_error (enum errors error, const char *fmt, ...) ATTR_NORETURN ATTR_FORMAT (printf, 2, 3); diff -rup orig/gdb-6.3.50.20050727/gdb/gdbserver/server.h gdb-6.3.50.20050727/gdb/gdbserver/server.h --- orig/gdb-6.3.50.20050727/gdb/gdbserver/server.h 2005-07-13 11:02:49.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/gdbserver/server.h 2005-07-27 21:26:17.023582353 -0400 @@ -163,9 +163,9 @@ int target_signal_to_host (enum target_s /* Functions from utils.c */ void perror_with_name (char *string); -void error (const char *string,...) ATTR_NORETURN; -void fatal (const char *string,...) ATTR_NORETURN; -void warning (const char *string,...); +void error (const char *string,...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2); +void fatal (const char *string,...) ATTR_NORETURN ATTR_FORMAT (printf, 1, 2); +void warning (const char *string,...) ATTR_FORMAT (printf, 1, 2); /* Functions from the register cache definition. */ diff -rup orig/gdb-6.3.50.20050727/gdb/mi/mi-interp.c gdb-6.3.50.20050727/gdb/mi/mi-interp.c --- orig/gdb-6.3.50.20050727/gdb/mi/mi-interp.c 2005-04-26 01:03:40.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/mi/mi-interp.c 2005-07-27 21:26:17.023582353 -0400 @@ -55,7 +55,7 @@ static void mi_command_loop (int mi_vers /* These are hooks that we put in place while doing interpreter_exec so we can report interesting things that happened "behind the mi's back" in this command */ -static int mi_interp_query_hook (const char *ctlstr, va_list ap); +static int mi_interp_query_hook (const char *ctlstr, va_list ap) ATTR_FORMAT (printf, 1, 0); static void mi3_command_loop (void); static void mi2_command_loop (void); diff -rup orig/gdb-6.3.50.20050727/gdb/mi/mi-out.c gdb-6.3.50.20050727/gdb/mi/mi-out.c --- orig/gdb-6.3.50.20050727/gdb/mi/mi-out.c 2005-02-11 13:13:55.000000000 -0500 +++ gdb-6.3.50.20050727/gdb/mi/mi-out.c 2005-07-27 21:26:17.023582353 -0400 @@ -56,11 +56,11 @@ static void mi_field_string (struct ui_o static void mi_field_fmt (struct ui_out *uiout, int fldno, int width, enum ui_align align, const char *fldname, const char *format, - va_list args); + va_list args) ATTR_FORMAT (printf, 6, 0); static void mi_spaces (struct ui_out *uiout, int numspaces); static void mi_text (struct ui_out *uiout, const char *string); static void mi_message (struct ui_out *uiout, int verbosity, - const char *format, va_list args); + const char *format, va_list args) ATTR_FORMAT (printf, 3, 0); static void mi_wrap_hint (struct ui_out *uiout, char *identstring); static void mi_flush (struct ui_out *uiout); diff -rup orig/gdb-6.3.50.20050727/gdb/tui/tui-hooks.c gdb-6.3.50.20050727/gdb/tui/tui-hooks.c --- orig/gdb-6.3.50.20050727/gdb/tui/tui-hooks.c 2005-02-11 19:39:24.000000000 -0500 +++ gdb-6.3.50.20050727/gdb/tui/tui-hooks.c 2005-07-27 21:26:17.023582353 -0400 @@ -70,7 +70,7 @@ tui_new_objfile_hook (struct objfile* ob tui_target_new_objfile_chain (objfile); } -static int +static int ATTR_FORMAT (printf, 1, 0) tui_query_hook (const char * msg, va_list argp) { int retval; diff -rup orig/gdb-6.3.50.20050727/gdb/tui/tui-out.c gdb-6.3.50.20050727/gdb/tui/tui-out.c --- orig/gdb-6.3.50.20050727/gdb/tui/tui-out.c 2003-10-24 13:37:04.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/tui/tui-out.c 2005-07-27 21:26:17.033582354 -0400 @@ -60,11 +60,11 @@ static void tui_field_string (struct ui_ static void tui_field_fmt (struct ui_out *uiout, int fldno, int width, enum ui_align align, const char *fldname, const char *format, - va_list args); + va_list args) ATTR_FORMAT (printf, 6, 0); static void tui_spaces (struct ui_out *uiout, int numspaces); static void tui_text (struct ui_out *uiout, const char *string); static void tui_message (struct ui_out *uiout, int verbosity, - const char *format, va_list args); + const char *format, va_list args) ATTR_FORMAT (printf, 3, 0); static void tui_wrap_hint (struct ui_out *uiout, char *identstring); static void tui_flush (struct ui_out *uiout); @@ -102,7 +102,7 @@ static void field_separator (void); static void out_field_fmt (struct ui_out *uiout, int fldno, const char *fldname, - const char *format,...); + const char *format,...) ATTR_FORMAT (printf, 4, 5); /* local variables */ diff -rup orig/gdb-6.3.50.20050727/gdb/ui-out.c gdb-6.3.50.20050727/gdb/ui-out.c --- orig/gdb-6.3.50.20050727/gdb/ui-out.c 2005-02-14 09:37:38.000000000 -0500 +++ gdb-6.3.50.20050727/gdb/ui-out.c 2005-07-27 21:26:17.033582354 -0400 @@ -178,12 +178,12 @@ static void default_field_fmt (struct ui int width, enum ui_align align, const char *fldname, const char *format, - va_list args); + va_list args) ATTR_FORMAT (printf, 6, 0); static void default_spaces (struct ui_out *uiout, int numspaces); static void default_text (struct ui_out *uiout, const char *string); static void default_message (struct ui_out *uiout, int verbosity, const char *format, - va_list args); + va_list args) ATTR_FORMAT (printf, 3, 0); static void default_wrap_hint (struct ui_out *uiout, char *identstring); static void default_flush (struct ui_out *uiout); @@ -248,11 +248,11 @@ static void uo_field_string (struct ui_o const char *string); static void uo_field_fmt (struct ui_out *uiout, int fldno, int width, enum ui_align align, const char *fldname, - const char *format, va_list args); + const char *format, va_list args) ATTR_FORMAT (printf, 6, 0); static void uo_spaces (struct ui_out *uiout, int numspaces); static void uo_text (struct ui_out *uiout, const char *string); static void uo_message (struct ui_out *uiout, int verbosity, - const char *format, va_list args); + const char *format, va_list args) ATTR_FORMAT (printf, 3, 0); static void uo_wrap_hint (struct ui_out *uiout, char *identstring); static void uo_flush (struct ui_out *uiout); static int uo_redirect (struct ui_out *uiout, struct ui_file *outstream); diff -rup orig/gdb-6.3.50.20050727/gdb/ui-out.h gdb-6.3.50.20050727/gdb/ui-out.h --- orig/gdb-6.3.50.20050727/gdb/ui-out.h 2003-07-18 15:01:14.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/ui-out.h 2005-07-27 21:53:15.518290388 -0400 @@ -123,7 +123,7 @@ extern void ui_out_field_stream (struct struct ui_stream *buf); extern void ui_out_field_fmt (struct ui_out *uiout, const char *fldname, - const char *format, ...); + const char *format, ...) ATTR_FORMAT (printf, 3, 4); extern void ui_out_field_skip (struct ui_out *uiout, const char *fldname); @@ -132,7 +132,7 @@ extern void ui_out_spaces (struct ui_out extern void ui_out_text (struct ui_out *uiout, const char *string); extern void ui_out_message (struct ui_out *uiout, int verbosity, - const char *format, ...); + const char *format, ...) ATTR_FORMAT (printf, 3, 4); extern struct ui_stream *ui_out_stream_new (struct ui_out *uiout); @@ -223,12 +223,12 @@ typedef void (field_fmt_ftype) (struct u enum ui_align align, const char *fldname, const char *format, - va_list args); + va_list args) ATTRIBUTE_FPTR_PRINTF(6,0); typedef void (spaces_ftype) (struct ui_out * uiout, int numspaces); typedef void (text_ftype) (struct ui_out * uiout, const char *string); typedef void (message_ftype) (struct ui_out * uiout, int verbosity, - const char *format, va_list args); + const char *format, va_list args) ATTRIBUTE_FPTR_PRINTF(3,0); typedef void (wrap_hint_ftype) (struct ui_out * uiout, char *identstring); typedef void (flush_ftype) (struct ui_out * uiout); typedef int (redirect_ftype) (struct ui_out * uiout, diff -rup orig/gdb-6.3.50.20050727/gdb/utils.c gdb-6.3.50.20050727/gdb/utils.c --- orig/gdb-6.3.50.20050727/gdb/utils.c 2005-07-04 09:29:13.000000000 -0400 +++ gdb-6.3.50.20050727/gdb/utils.c 2005-07-27 21:26:17.043582826 -0400 @@ -80,7 +80,7 @@ void (*deprecated_error_begin_hook) (voi /* Prototypes for local functions */ static void vfprintf_maybe_filtered (struct ui_file *, const char *, - va_list, int); + va_list, int) ATTR_FORMAT (printf, 2, 0); static void fputs_maybe_filtered (const char *, struct ui_file *, int); @@ -693,7 +693,7 @@ struct internal_problem has been reported, and assuming GDB didn't quit, the caller can either allow execution to resume or throw an error. */ -static void +static void ATTR_FORMAT (printf, 4, 0) internal_vproblem (struct internal_problem *problem, const char *file, int line, const char *fmt, va_list ap) { @@ -1236,7 +1236,7 @@ query (const char *ctlstr, ...) ARGS are the arguments passed along with the CTLSTR argument to printf. */ -static int +static int ATTR_FORMAT (printf, 1, 0) defaulted_query (const char *ctlstr, const char defchar, va_list args) { int answer; @@ -1495,7 +1495,7 @@ parse_escape (char **string_ptr) static void printchar (int c, void (*do_fputs) (const char *, struct ui_file *), - void (*do_fprintf) (struct ui_file *, const char *, ...), + void (*do_fprintf) (struct ui_file *, const char *, ...) ATTRIBUTE_FPTR_PRINTF_2, struct ui_file *stream, int quoter) {