From 952fba9c63417d19e01fdf0b714f01b8ae9f3618 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Wed, 21 Dec 2011 01:18:20 +0000 Subject: [PATCH] Fix a bitwise negation assignment issue spotted by Sun Studio MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Change direct and indirect assignments of the bitwise negation of 0 to uint32_t variables to have a "U" suffix. I.e. ~0U instead of ~0. This eliminates warnings under Sun Studio 12 Update 1: "vcs-svn/string_pool.c", line 11: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND) "vcs-svn/string_pool.c", line 81: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND) "vcs-svn/repo_tree.c", line 112: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND) "vcs-svn/repo_tree.c", line 112: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND) "test-treap.c", line 34: warning: initializer will be sign-extended: -1 (E_INIT_SIGN_EXTEND) The semantics are still the same as demonstrated by this program: $ cat test.c && make test && ./test #include #include int main(void) { uint32_t foo = ~0; uint32_t bar = ~0U; printf("foo = <%u> bar = <%u>\n", foo, bar); return 0; } cc test.c -o test "test.c", line 5: warning: initializer will be sign-extended: -1 foo = <4294967295> bar = <4294967295> Signed-off-by: Ævar Arnfjörð Bjarmason Signed-off-by: Junio C Hamano --- test-treap.c | 2 +- vcs-svn/repo_tree.c | 2 +- vcs-svn/string_pool.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test-treap.c b/test-treap.c index ab8c951c6..294d7ee27 100644 --- a/test-treap.c +++ b/test-treap.c @@ -31,7 +31,7 @@ static void strtonode(struct int_node *item, const char *s) int main(int argc, char *argv[]) { struct strbuf sb = STRBUF_INIT; - struct trp_root root = { ~0 }; + struct trp_root root = { ~0U }; uint32_t item; if (argc != 1) diff --git a/vcs-svn/repo_tree.c b/vcs-svn/repo_tree.c index a21d89de9..c3f198d29 100644 --- a/vcs-svn/repo_tree.c +++ b/vcs-svn/repo_tree.c @@ -109,7 +109,7 @@ static struct repo_dirent *repo_read_dirent(uint32_t revision, static void repo_write_dirent(const uint32_t *path, uint32_t mode, uint32_t content_offset, uint32_t del) { - uint32_t name, revision, dir_o = ~0, parent_dir_o = ~0; + uint32_t name, revision, dir_o = ~0U, parent_dir_o = ~0U; struct repo_dir *dir; struct repo_dirent *key; struct repo_dirent *dent = NULL; diff --git a/vcs-svn/string_pool.c b/vcs-svn/string_pool.c index 8af8d54d6..1b63b19a3 100644 --- a/vcs-svn/string_pool.c +++ b/vcs-svn/string_pool.c @@ -8,7 +8,7 @@ #include "obj_pool.h" #include "string_pool.h" -static struct trp_root tree = { ~0 }; +static struct trp_root tree = { ~0U }; struct node { uint32_t offset; @@ -78,7 +78,7 @@ void pool_print_seq(uint32_t len, uint32_t *seq, char delim, FILE *stream) uint32_t pool_tok_seq(uint32_t sz, uint32_t *seq, const char *delim, char *str) { char *context = NULL; - uint32_t token = ~0; + uint32_t token = ~0U; uint32_t length; if (sz == 0) -- 2.30.2