Fix a bitwise negation assignment issue spotted by Sun Studio

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 <stdio.h>
    #include <stdint.h>

    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 <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2011-12-21 01:18:20 +00:00 committed by Junio C Hamano
parent d7a10c3140
commit 952fba9c63
3 changed files with 4 additions and 4 deletions

View File

@ -31,7 +31,7 @@ static void strtonode(struct int_node *item, const char *s)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
struct strbuf sb = STRBUF_INIT; struct strbuf sb = STRBUF_INIT;
struct trp_root root = { ~0 }; struct trp_root root = { ~0U };
uint32_t item; uint32_t item;
if (argc != 1) if (argc != 1)

View File

@ -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, static void repo_write_dirent(const uint32_t *path, uint32_t mode,
uint32_t content_offset, uint32_t del) 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_dir *dir;
struct repo_dirent *key; struct repo_dirent *key;
struct repo_dirent *dent = NULL; struct repo_dirent *dent = NULL;

View File

@ -8,7 +8,7 @@
#include "obj_pool.h" #include "obj_pool.h"
#include "string_pool.h" #include "string_pool.h"
static struct trp_root tree = { ~0 }; static struct trp_root tree = { ~0U };
struct node { struct node {
uint32_t offset; 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) uint32_t pool_tok_seq(uint32_t sz, uint32_t *seq, const char *delim, char *str)
{ {
char *context = NULL; char *context = NULL;
uint32_t token = ~0; uint32_t token = ~0U;
uint32_t length; uint32_t length;
if (sz == 0) if (sz == 0)