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
Message #10 received at 17667-done <at> debbugs.gnu.org (full text, mbox):
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.
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?
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");
}
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.