diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2015-06-05 02:42:16 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-06-05 15:36:35 -0700 |
commit | e654eb29ab9da97f6acabc261f88aa1f41f78a8f (patch) | |
tree | cad8610ce7b2981a0fb54155ffd638eb4ef3b686 | |
parent | Merge branch 'maint-1.9' into maint-2.0 (diff) | |
download | tgif-e654eb29ab9da97f6acabc261f88aa1f41f78a8f.tar.xz |
utf8: NO_ICONV: silence uninitialized variable warning
The last argument of reencode_string_len() is an 'int *' which is
assigned the length of the converted string. When NO_ICONV is defined,
however, reencode_string_len() is stubbed out by the macro:
#define reencode_string_len(a,b,c,d,e) NULL
which never assigns a value to the final argument. When called like
this:
int n;
char *s = reencode_string_len(..., &n);
if (s)
do_something(s, n);
some compilers complain that 'n' is used uninitialized within the
conditional.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | utf8.h | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -28,7 +28,9 @@ char *reencode_string_len(const char *in, int insz, const char *in_encoding, int *outsz); #else -#define reencode_string_len(a,b,c,d,e) NULL +static inline char *reencode_string_len(const char *a, int b, + const char *c, const char *d, int *e) +{ if (e) *e = 0; return NULL; } #endif static inline char *reencode_string(const char *in, |