Discussion:
[PATCH] fix warning if compiling with -Os
Johannes Weißl
2011-04-14 15:58:04 UTC
Permalink
u_collate.c:110:11: warning: 'xfrm_len' may be used uninitialized in this function [-Wuninitialized]

Also simplify a bit.
---
u_collate.c | 17 ++++++-----------
1 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/u_collate.c b/u_collate.c
index b895ff1..a6ebdd7 100644
--- a/u_collate.c
+++ b/u_collate.c
@@ -92,22 +92,17 @@ char *u_strcoll_key(const char *str)
}

if (!result) {
- char *str_locale;
- size_t xfrm_len;
+ char *str_locale = NULL;

convert(str, -1, &str_locale, -1, charset, "UTF-8");

if (str_locale) {
- xfrm_len = strxfrm(NULL, str_locale, 0);
- if ((ssize_t) xfrm_len < 0 || xfrm_len >= INT_MAX - 2) {
- free(str_locale);
- str_locale = NULL;
+ size_t xfrm_len = strxfrm(NULL, str_locale, 0);
+ if ((ssize_t) xfrm_len >= 0 && xfrm_len < INT_MAX - 2) {
+ result = xnew(char, xfrm_len + 2);
+ result[0] = 'A';
+ strxfrm(result + 1, str_locale, xfrm_len + 1);
}
- }
- if (str_locale) {
- result = xnew(char, xfrm_len + 2);
- result[0] = 'A';
- strxfrm(result + 1, str_locale, xfrm_len + 1);
free(str_locale);
}
}
--
1.7.4.1
Gregory Petrosyan
2011-04-14 17:14:21 UTC
Permalink
Post by Johannes Weißl
u_collate.c:110:11: warning: 'xfrm_len' may be used uninitialized in this function [-Wuninitialized]
Also simplify a bit.
Thanks! Haven't reviewed it yet, will do later today. But why don't we
have -Wuninitialized on by default?

                Gregory
Johannes Weißl
2011-04-14 17:28:06 UTC
Permalink
Post by Gregory Petrosyan
Post by Johannes Weißl
u_collate.c:110:11: warning: 'xfrm_len' may be used uninitialized in this function [-Wuninitialized]
Also simplify a bit.
Thanks! Haven't reviewed it yet, will do later today. But why don't we
have -Wuninitialized on by default?
We have (is enabled by -Wall and -Wextra), but somehow -Os triggers this
and -O2 not... no idea why!


Johannes
Gregory Petrosyan
2011-04-16 13:26:00 UTC
Permalink
Post by Johannes Weißl
u_collate.c:110:11: warning: 'xfrm_len' may be used uninitialized in this function [-Wuninitialized]
Also simplify a bit.
Merged to master, thanks!

Gregory

Loading...