[PATCH] config.c: fix a compiler warning
Date: Thu, 10 Apr 2014 16:37:15 +0200 This change fixes a gcc warning when building msysGit. --- config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.c b/config.c index 314d8ee..0b7e4f8 100644 --- a/config.c +++ b/config.c @@ -572,7 +572,7 @@ static void die_bad_number(const char *name, const char *value) int git_config_int(const char *name, const char *value) { - int ret; + int ret = 0; if (!git_parse_int(value, ret)) die_bad_number(name, value); return ret; @@ -580,7 +580,7 @@ int git_config_int(const char *name, const char *value) int64_t git_config_int64(const char *name, const char *value) { - int64_t ret; + int64_t ret = 0; if (!git_parse_int64(value, ret)) die_bad_number(name, value); return ret; -- 1.9.2.msysgit.0.154.g978f18d -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] config.c: fix a compiler warning
On Wed, Apr 16, 2014 at 04:13:53PM +0200, Stepan Kasal wrote: Date: Thu, 10 Apr 2014 16:37:15 +0200 This change fixes a gcc warning when building msysGit. What warning? I'm assuming -Wuninitialized? diff --git a/config.c b/config.c index 314d8ee..0b7e4f8 100644 --- a/config.c +++ b/config.c @@ -572,7 +572,7 @@ static void die_bad_number(const char *name, const char *value) int git_config_int(const char *name, const char *value) { - int ret; + int ret = 0; if (!git_parse_int(value, ret)) die_bad_number(name, value); return ret; Hmph. Generally gcc should assume that a variable is initialized after a pointer to it is passed into a function. Unless it inlines that function and can see that it isn't. But if we do inline git_parse_int, we see that it ret is always initialized if it returns non-zero. If it also inlines die_bad_number, it would see that we end in die(), which is marked NORETURN. But if it does not, it will not realize that we do not get to return ret in that case. So perhaps a better solution is: diff --git a/config.c b/config.c index 6821cef..a30cb5c 100644 --- a/config.c +++ b/config.c @@ -557,6 +557,7 @@ int git_parse_ulong(const char *value, unsigned long *ret) return 1; } +NORETURN static void die_bad_number(const char *name, const char *value) { const char *reason = errno == ERANGE ? Does that also silence the warning? -Peff -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] config.c: fix a compiler warning
On 2014-04-16 17.29, Jeff King wrote: On Wed, Apr 16, 2014 at 04:13:53PM +0200, Stepan Kasal wrote: Date: Thu, 10 Apr 2014 16:37:15 +0200 This change fixes a gcc warning when building msysGit. [] +NORETURN static void die_bad_number(const char *name, const char *value) { const char *reason = errno == ERANGE ? Does that also silence the warning? -Peff This works under gcc 4.2.1 Mac OS: the warning is away. -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html