summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ares/ares_data.c20
-rw-r--r--lib/base64.c31
-rw-r--r--lib/memdebug.c20
3 files changed, 55 insertions, 16 deletions
diff --git a/ares/ares_data.c b/ares/ares_data.c
index 16a5cc507..ee7601856 100644
--- a/ares/ares_data.c
+++ b/ares/ares_data.c
@@ -45,8 +45,18 @@ void ares_free_data(void *dataptr)
if (!dataptr)
return;
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:1684)
+ /* 1684: conversion from pointer to same-sized integral type */
+#endif
+
ptr = (void *)((char *)dataptr - offsetof(struct ares_data, data));
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+
if (ptr->mark != ARES_DATATYPE_MARK)
return;
@@ -134,8 +144,18 @@ ares_datatype ares_get_datatype(void * dataptr)
{
struct ares_data *ptr;
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:1684)
+ /* 1684: conversion from pointer to same-sized integral type */
+#endif
+
ptr = (void *)((char *)dataptr - offsetof(struct ares_data, data));
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+
if (ptr->mark == ARES_DATATYPE_MARK)
return ptr->type;
diff --git a/lib/base64.c b/lib/base64.c
index d0f32f84a..dea74de9e 100644
--- a/lib/base64.c
+++ b/lib/base64.c
@@ -54,28 +54,27 @@ static const char table64[]=
static void decodeQuantum(unsigned char *dest, const char *src)
{
- size_t x = 0;
- int i;
- char *found;
- union {
- ssize_t sig;
- size_t uns;
- } offset;
-
- for(i = 0; i < 4; i++) {
- if((found = strchr(table64, src[i])) != NULL) {
- offset.sig = found - table64;
- x = (x << 6) + offset.uns;
+ const char *s, *p;
+ unsigned long i, v, x = 0;
+
+ for(i = 0, s = src; i < 4; i++, s++) {
+ v = 0;
+ p = table64;
+ while(*p && (*p != *s)) {
+ v++;
+ p++;
}
- else if(src[i] == '=')
+ if(*p == *s)
+ x = (x << 6) + v;
+ else if(*s == '=')
x = (x << 6);
}
- dest[2] = (unsigned char)(x & (size_t)0xFFUL);
+ dest[2] = (unsigned char)(x & 0xFFUL);
x >>= 8;
- dest[1] = (unsigned char)(x & (size_t)0xFFUL);
+ dest[1] = (unsigned char)(x & 0xFFUL);
x >>= 8;
- dest[0] = (unsigned char)(x & (size_t)0xFFUL);
+ dest[0] = (unsigned char)(x & 0xFFUL);
}
/*
diff --git a/lib/memdebug.c b/lib/memdebug.c
index 266480e46..b259ed3e5 100644
--- a/lib/memdebug.c
+++ b/lib/memdebug.c
@@ -221,9 +221,19 @@ void *curl_dorealloc(void *ptr, size_t wantedsize,
if(countcheck("realloc", line, source))
return NULL;
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:1684)
+ /* 1684: conversion from pointer to same-sized integral type */
+#endif
+
if(ptr)
mem = (void *)((char *)ptr - offsetof(struct memdebug, mem));
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+
mem = (Curl_crealloc)(mem, size);
if(source)
curl_memlog("MEM %s:%d realloc(%p, %zu) = %p\n",
@@ -243,8 +253,18 @@ void curl_dofree(void *ptr, int line, const char *source)
assert(ptr != NULL);
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:1684)
+ /* 1684: conversion from pointer to same-sized integral type */
+#endif
+
mem = (void *)((char *)ptr - offsetof(struct memdebug, mem));
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+
/* destroy */
memset(mem->mem, 0x13, mem->size);