mirror of
https://frontier.innolan.net/rainlance/c-ares.git
synced 2026-03-19 09:32:58 +00:00
warnings: fix another 'conversion may lose significant bits' compiler warning
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
|
||||
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
||||
/* Copyright 1998, 2011 by the Massachusetts Institute of Technology.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose and without
|
||||
@ -33,6 +33,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "ares.h"
|
||||
#include "ares_nowarn.h"
|
||||
#include "ares_private.h" /* for the memdebug */
|
||||
|
||||
static int name_length(const unsigned char *encoded, const unsigned char *abuf,
|
||||
@ -91,9 +92,9 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
|
||||
/* indirect root label (like 0xc0 0x0c) is 2 bytes long (stupid, but
|
||||
valid) */
|
||||
if ((*encoded & INDIR_MASK) == INDIR_MASK)
|
||||
*enclen = 2;
|
||||
*enclen = 2L;
|
||||
else
|
||||
*enclen = 1; /* the caller should move one byte to get past this */
|
||||
*enclen = 1L; /* the caller should move one byte to get past this */
|
||||
|
||||
return ARES_SUCCESS;
|
||||
}
|
||||
@ -106,7 +107,7 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
|
||||
{
|
||||
if (!indir)
|
||||
{
|
||||
*enclen = p + 2 - encoded;
|
||||
*enclen = aresx_uztosl(p + 2U - encoded);
|
||||
indir = 1;
|
||||
}
|
||||
p = abuf + ((*p & ~INDIR_MASK) << 8 | *(p + 1));
|
||||
@ -126,7 +127,7 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
|
||||
}
|
||||
}
|
||||
if (!indir)
|
||||
*enclen = p + 1 - encoded;
|
||||
*enclen = aresx_uztosl(p + 1U - encoded);
|
||||
|
||||
/* Nuke the trailing period if we wrote one. */
|
||||
if (q > *s)
|
||||
|
||||
@ -64,8 +64,44 @@
|
||||
#elif (SIZEOF_INT == 16)
|
||||
# define CARES_MASK_SINT 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
# define CARES_MASK_UINT 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
#else
|
||||
# error "SIZEOF_INT not defined"
|
||||
#endif
|
||||
|
||||
#if (CARES_SIZEOF_LONG == 2)
|
||||
# define CARES_MASK_SLONG 0x7FFFL
|
||||
# define CARES_MASK_ULONG 0xFFFFUL
|
||||
#elif (CARES_SIZEOF_LONG == 4)
|
||||
# define CARES_MASK_SLONG 0x7FFFFFFFL
|
||||
# define CARES_MASK_ULONG 0xFFFFFFFFUL
|
||||
#elif (CARES_SIZEOF_LONG == 8)
|
||||
# define CARES_MASK_SLONG 0x7FFFFFFFFFFFFFFFL
|
||||
# define CARES_MASK_ULONG 0xFFFFFFFFFFFFFFFFUL
|
||||
#elif (CARES_SIZEOF_LONG == 16)
|
||||
# define CARES_MASK_SLONG 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFL
|
||||
# define CARES_MASK_ULONG 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUL
|
||||
#else
|
||||
# error "CARES_SIZEOF_LONG not defined"
|
||||
#endif
|
||||
|
||||
/*
|
||||
** unsigned size_t to signed long
|
||||
*/
|
||||
|
||||
long aresx_uztosl(size_t uznum)
|
||||
{
|
||||
#ifdef __INTEL_COMPILER
|
||||
# pragma warning(push)
|
||||
# pragma warning(disable:810) /* conversion may lose significant bits */
|
||||
#endif
|
||||
|
||||
return (long)(uznum & (size_t) CARES_MASK_SLONG);
|
||||
|
||||
#ifdef __INTEL_COMPILER
|
||||
# pragma warning(pop)
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
** unsigned size_t to signed int
|
||||
*/
|
||||
|
||||
@ -17,8 +17,8 @@
|
||||
* without express or implied warranty.
|
||||
*/
|
||||
|
||||
int aresx_uztosi(size_t uznum);
|
||||
|
||||
long aresx_uztosl(size_t uznum);
|
||||
int aresx_uztosi(size_t uznum);
|
||||
short aresx_uztoss(size_t uznum);
|
||||
|
||||
short aresx_sitoss(int sinum);
|
||||
|
||||
Reference in New Issue
Block a user