GNU bug report logs -
#17667
[PATCH] df: Initialize a variable to squash a compiler warning
Previous Next
Reported by: Ben Walton <bdwalton <at> gmail.com>
Date: Mon, 2 Jun 2014 15:35:02 UTC
Severity: normal
Tags: patch
Done: Pádraig Brady <P <at> draigBrady.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On Mon, Jun 2, 2014 at 8:22 PM, Pádraig Brady <P <at> draigbrady.com> wrote:
> On 06/02/2014 09:09 AM, Ben Walton wrote:
>> * src/df.c: get_dev - With strict error checking, gcc complained that
>> v may have been used prior to initialization. To avoid
>> this, initialize to NULL.
>>
>> Signed-off-by: Ben Walton <bdwalton <at> gmail.com>
>> ---
>> src/df.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/df.c b/src/df.c
>> index 01ecca6..059c958 100644
>> --- a/src/df.c
>> +++ b/src/df.c
>> @@ -924,7 +924,7 @@ get_dev (char const *disk, char const *mount_point, char const* file,
>> char buf[LONGEST_HUMAN_READABLE + 2];
>> char *cell;
>>
>> - struct field_values_t *v;
>> + struct field_values_t *v = NULL;
>> switch (columns[col]->field_type)
>> {
>> case BLOCK_FLD:
>> @@ -934,7 +934,7 @@ get_dev (char const *disk, char const *mount_point, char const* file,
>> v = &inode_values;
>> break;
>> case OTHER_FLD:
>> - v = NULL;
>> + /* Rely on NULL initialization. */
>> break;
>> default:
>> assert (!"bad field_type");
>
> This is because assert() is not declared __noreturn__ on Solaris 10.
> That can be an important admonition for a compiler
> so I'm wondering should be detect this and provide a __noreturn__ wrapper.
Ah. Ok. That makes sense. I think providing this wrapper is likely a
good thing although this is a corner case we're catching here.
>
> Anyway what I don't want to do is change the current logic
> to avoid such bogus warnings. What we could do here
> is to tweak the assert path only to avoid the warning as follows.
> OK to push the following instead in your name?
Ack, that's fine with me.
Thanks
-Ben
>
> thanks,
> Pádraig.
>
> diff --git a/src/df.c b/src/df.c
> index 82b0c5f..c08ad97 100644
> --- a/src/df.c
> +++ b/src/df.c
> @@ -953,6 +953,7 @@ get_dev (char const *disk, char const *mount_point, char con
> v = NULL;
> break;
> default:
> + v = NULL; /* avoid warnings where assert() is not __noreturn__. */
> assert (!"bad field_type");
> }
>
>
--
---------------------------------------------------------------------------------------------------------------------------
Take the risk of thinking for yourself. Much more happiness,
truth, beauty and wisdom will come to you that way.
-Christopher Hitchens
---------------------------------------------------------------------------------------------------------------------------
This bug report was last modified 11 years and 77 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.