From: Elias Oltmanns <eo@nebensachen.de>
To: Tejun Heo <tj@kernel.org>
Cc: Alex Chiang <achiang@hp.com>,
jeff@redhat.com, linux-ide@vger.kernel.org,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] stop gcc warning about uninitialized 'dev' in ata_scsi_scan_host
Date: Thu, 16 Oct 2008 08:02:08 +0200 [thread overview]
Message-ID: <87r66hjcwv.fsf@denkblock.local> (raw)
In-Reply-To: <48F6BAFE.6080106@kernel.org> (Tejun Heo's message of "Thu, 16 Oct 2008 12:54:38 +0900")
Tejun Heo <tj@kernel.org> wrote:
> Alex Chiang wrote:
>> * Tejun Heo <tj@kernel.org>:
>
>>> Alex Chiang wrote:
>>>> Shuts up gcc-3.4.5-glibc-2.3.6 when it complains of:
>>>>
>>>> drivers/ata/libata-scsi.c: In function `ata_scsi_scan_host':
>>>> drivers/ata/libata-scsi.c:3225: warning: 'dev' might be used
>>>> uninitialized in this function
>>>>
>>>> Signed-off-by: Alex Chiang <achiang@hp.com>
>>> Nacked-by: Tejun Heo <tj@kernel.org>
>>>
>>> Some gcc versions complain about sata_via, others complain
>>> about something else. Some versions complain about some
>>> iterator usages while not complaining about others, but none of
>>> those complaints is actually wrong or dangerous. I don't think
>>> adding = NULL whenever some version of gcc complains is the
>>> right approach.
>>
>> Hm, ok.
>>
>> I guess we don't want to sprinkle these around all over the place
>> just to solve cosmetic issues, which makes sense, but is there
>> some other approach we could take instead? Any suggestions? Or
>> just live with it?
>
> I think the current policy is blaming gcc but I also added quite a few
> bogus NULL initializations here and there and caught several bugs thanks
> to those warnings. We can think about adding an additional annotation
> with leading double underbars which indicate that certain pointer
> arguments to functions expect (or are okay with) pointers to
> uninitialized variables which should be able to remove many of those
> spurious warnings (on the caller side, the compiler can ignore the
> warning and on the callee side the compiler can check whether it's being
> dereferenced without being written to). Does anyone know whether gcc
> already has that type of annotation?
Well, I don't know of this particular kind of annotation. However, I
don't quite see how that would solve the reported issue. Here, dev is a
local variable and the warning is generated due to the line
if (dev != last_failed_dev) {
For this sort of thing we have:
struct ata_device *uninitialized_var(dev);
Or is that precisely the thing you did *not* want?
Regards,
Elias
next prev parent reply other threads:[~2008-10-16 6:02 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-15 23:25 [PATCH] stop gcc warning about uninitialized 'dev' in ata_scsi_scan_host Alex Chiang
2008-10-16 2:11 ` Tejun Heo
2008-10-16 3:40 ` Alex Chiang
2008-10-16 3:54 ` Tejun Heo
2008-10-16 6:02 ` Elias Oltmanns [this message]
2008-10-16 6:08 ` Tejun Heo
2008-10-16 6:16 ` Adrian Bunk
2008-10-16 21:21 ` Alex Chiang
2008-10-16 21:22 ` Alex Chiang
2008-10-16 21:24 ` Randy.Dunlap
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=87r66hjcwv.fsf@denkblock.local \
--to=eo@nebensachen.de \
--cc=achiang@hp.com \
--cc=jeff@redhat.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.