qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Jes Sorensen <Jes.Sorensen@redhat.com>
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH 10/14] Zero json struct with memset() instea of = {} to keep compiler happy.
Date: Mon, 30 Aug 2010 10:48:55 -0500	[thread overview]
Message-ID: <4C7BD2E7.2010201@codemonkey.ws> (raw)
In-Reply-To: <4C7BD19C.9080308@redhat.com>

On 08/30/2010 10:43 AM, Jes Sorensen wrote:
> On 08/30/10 17:39, Anthony Liguori wrote:
>    
>> On 08/30/2010 10:35 AM, Jes.Sorensen@redhat.com wrote:
>>      
>>> From: Jes Sorensen<Jes.Sorensen@redhat.com>
>>>
>>> This keeps the compiler happy when building with -Wextra while
>>> effectively generating the same code.
>>>
>>> Signed-off-by: Jes Sorensen<Jes.Sorensen@redhat.com>
>>>
>>>        
>> What's GCC's compliant?
>>      
> cc1: warnings being treated as errors
> qjson.c: In function 'qobject_from_jsonv':
> qjson.c:39: error: missing initializer
> qjson.c:39: error: (near initialization for 'state.parser')
> make: *** [qjson.o] Error 1
>
> We have a lot of these where we try to init a struct element {}.
>
> Yes it's technically legal. However it's painful when you try to apply
> more aggressive warning flags looking for real bugs.
>    

No, this is GCC being stupid.

> I would suggest we modify the coding style to ask people to not init a
> struct like this.
>    

How else do you terminate a list?  IOW:

MyDeviceInfo device_infos[] = {
   {"foo", 0, 2},
   {"bar", 0, 1},
   {} /* or { 0 } */
};

This is such a pervasive idiom that there's simply no way that GCC can 
possibly try to warn against this.  Plus, it's entirely reasonable.

I think this is just a false positive in GCC.  Otherwise, there's a ton 
of code that it should be throwing warnings against.

Regards,

Anthony Liguori

> Cheers,
> Jes
>    

  reply	other threads:[~2010-08-30 15:49 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-30 15:35 [Qemu-devel] [PATCH 00/14] gcc extra warning fixes Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 01/14] Remove unused argument for nbd_client() Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 02/14] Respect return value from nbd_client() Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 03/14] Fix repeated typo: was "end if list" instead of "end of list" Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 04/14] Zero initialize timespec struct explicitly Jes.Sorensen
2010-08-30 15:43   ` [Qemu-devel] " Anthony Liguori
2010-08-30 15:55     ` Jes Sorensen
2010-08-30 17:04       ` malc
2010-08-30 16:56     ` malc
2010-08-30 17:38       ` Jes Sorensen
2010-08-30 17:41         ` Anthony Liguori
2010-08-30 17:43         ` malc
2010-08-30 15:35 ` [Qemu-devel] [PATCH 05/14] Remove unused argument for check_for_block_signature() Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 06/14] Remove unused argument for encrypt_sectors() Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 07/14] Remove unused argument for get_whole_cluster() Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 08/14] Remove unused argument for qcow2_encrypt_sectors() Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 09/14] Remove unused arguments for add_aio_request() and free_aio_req() Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 10/14] Zero json struct with memset() instea of = {} to keep compiler happy Jes.Sorensen
2010-08-30 15:39   ` [Qemu-devel] " Anthony Liguori
2010-08-30 15:43     ` Jes Sorensen
2010-08-30 15:48       ` Anthony Liguori [this message]
2010-08-30 15:53         ` Jes Sorensen
2010-08-30 17:12           ` Avi Kivity
2010-08-30 16:55         ` Nathan Froyd
2010-08-30 18:00           ` Jes Sorensen
2010-08-30 17:06         ` malc
2010-08-30 19:32         ` Richard Henderson
2010-08-30 15:42   ` Paolo Bonzini
2010-08-30 16:15     ` Anthony Liguori
2010-08-30 16:18       ` Paolo Bonzini
2010-08-30 16:29         ` Anthony Liguori
2010-08-30 16:35           ` Paolo Bonzini
2010-08-30 18:05           ` Jes Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 11/14] Remove unused function arguments Jes.Sorensen
2010-08-30 16:24   ` [Qemu-devel] " Paolo Bonzini
2010-08-30 17:13     ` Anthony Liguori
2010-08-30 15:35 ` [Qemu-devel] [PATCH 12/14] size_t is unsigned, so (foo >= 0) is always true Jes.Sorensen
2010-08-30 15:41   ` [Qemu-devel] " Anthony Liguori
2010-08-30 15:35 ` [Qemu-devel] [PATCH 13/14] Change DPRINTF() to do{}while(0) to avoid compiler warning Jes.Sorensen
2010-08-30 15:35 ` [Qemu-devel] [PATCH 14/14] load_multiboot(): get_image_size() returns int Jes.Sorensen
2010-08-30 19:25 ` [Qemu-devel] [PATCH 00/14] gcc extra warning fixes Blue Swirl
2010-08-31  7:21   ` Jes Sorensen
2010-08-31 17:43     ` Blue Swirl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C7BD2E7.2010201@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=Jes.Sorensen@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).