summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2010-02-22 02:37:13 +0000
committerYang Tse <yangsita@gmail.com>2010-02-22 02:37:13 +0000
commitdc9f0a9758536d1bd7bfa2f9b073d6a63570f721 (patch)
treec98e2e003dce7ae7a5361d80965cf49a83380307
parent10affed097df354f1b9db8602cd7257f76d10654 (diff)
downloadcurl-dc9f0a9758536d1bd7bfa2f9b073d6a63570f721.tar.gz
fix compiler warning
-rw-r--r--lib/base64.c6
-rw-r--r--lib/warnless.c14
-rw-r--r--lib/warnless.h2
3 files changed, 19 insertions, 3 deletions
diff --git a/lib/base64.c b/lib/base64.c
index dea74de9e..1820302a1 100644
--- a/lib/base64.c
+++ b/lib/base64.c
@@ -70,11 +70,11 @@ static void decodeQuantum(unsigned char *dest, const char *src)
x = (x << 6);
}
- dest[2] = (unsigned char)(x & 0xFFUL);
+ dest[2] = Curl_ultouc(x);
x >>= 8;
- dest[1] = (unsigned char)(x & 0xFFUL);
+ dest[1] = Curl_ultouc(x);
x >>= 8;
- dest[0] = (unsigned char)(x & 0xFFUL);
+ dest[0] = Curl_ultouc(x);
}
/*
diff --git a/lib/warnless.c b/lib/warnless.c
index 83a1c68ab..94e77de46 100644
--- a/lib/warnless.c
+++ b/lib/warnless.c
@@ -38,3 +38,17 @@ unsigned short Curl_ultous(unsigned long ulnum)
# pragma warning(pop)
#endif
}
+
+unsigned char Curl_ultouc(unsigned long ulnum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ return (unsigned char)(ulnum & 0xFFUL);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
diff --git a/lib/warnless.h b/lib/warnless.h
index cd257d3ed..d8734910a 100644
--- a/lib/warnless.h
+++ b/lib/warnless.h
@@ -25,4 +25,6 @@
unsigned short Curl_ultous(unsigned long ulnum);
+unsigned char Curl_ultouc(unsigned long ulnum);
+
#endif /* HEADER_CURL_WARNLESS_H */