Skip to content

Commit

Permalink
Silence GCC's "cast of pointer to integer of a different size" warning
Browse files Browse the repository at this point in the history
When calculating hashes from pointers, it actually makes sense to cut
off the most significant bits. In that case, said warning does not make
a whole lot of sense.

So let's just work around it by casting the pointer first to intptr_t
and then casting up/down to the final integral type.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Johannes Schindelin authored and Junio C Hamano committed Oct 26, 2015
1 parent 8f77442 commit 56a1a3a
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 4 deletions.
6 changes: 4 additions & 2 deletions compat/regex/regcomp.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA. */

#include <stdint.h>

static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
size_t length, reg_syntax_t syntax);
static void re_compile_fastmap_iter (regex_t *bufp,
Expand Down Expand Up @@ -2577,7 +2579,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
old_tree = NULL;

if (elem->token.type == SUBEXP)
postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx);
postorder (elem, mark_opt_subexp, (void *) (intptr_t) elem->token.opr.idx);

tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT));
if (BE (tree == NULL, 0))
Expand Down Expand Up @@ -3806,7 +3808,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
static reg_errcode_t
mark_opt_subexp (void *extra, bin_tree_t *node)
{
int idx = (int) (long) extra;
int idx = (int) (intptr_t) extra;
if (node->token.type == SUBEXP && node->token.opr.idx == idx)
node->token.opt_subexp = 1;

Expand Down
2 changes: 1 addition & 1 deletion pack-revindex.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ static int pack_revindex_hashsz;

static int pack_revindex_ix(struct packed_git *p)
{
unsigned long ui = (unsigned long)p;
unsigned long ui = (unsigned long)(intptr_t)p;
int i;

ui = ui ^ (ui >> 16); /* defeat structure alignment */
Expand Down
2 changes: 1 addition & 1 deletion sha1_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -2014,7 +2014,7 @@ static unsigned long pack_entry_hash(struct packed_git *p, off_t base_offset)
{
unsigned long hash;

hash = (unsigned long)p + (unsigned long)base_offset;
hash = (unsigned long)(intptr_t)p + (unsigned long)base_offset;
hash += (hash >> 8) + (hash >> 16);
return hash % MAX_DELTA_CACHE;
}
Expand Down

0 comments on commit 56a1a3a

Please sign in to comment.