aboutsummaryrefslogtreecommitdiff
path: root/lib/curl_addrinfo.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2009-04-23 11:09:20 +0000
committerYang Tse <yangsita@gmail.com>2009-04-23 11:09:20 +0000
commit2236a247d9bedc6e79c73b47d37a5794300029ce (patch)
tree81dbde97162639712273e5b1d515cd2a9085b029 /lib/curl_addrinfo.c
parent7291f50e8dfee27fd343cdbf3a2c6ab85ea6caf3 (diff)
Try another variation of the 'volatile' variables icc 9.1 on unix IA32 workaround.
The #pragma optimize("", off) attempt did not fix the problem and SIGSEGV's in Curl_freeaddrinfo() were back.
Diffstat (limited to 'lib/curl_addrinfo.c')
-rw-r--r--lib/curl_addrinfo.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/lib/curl_addrinfo.c b/lib/curl_addrinfo.c
index 4e1eb4c26..14b2a438b 100644
--- a/lib/curl_addrinfo.c
+++ b/lib/curl_addrinfo.c
@@ -68,15 +68,17 @@
* any function call which actually allocates a Curl_addrinfo struct.
*/
-#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 910) && \
- defined(__unix__) && defined(__i386__)
-# pragma optimize("", off)
-#endif
-
void
Curl_freeaddrinfo(Curl_addrinfo *cahead)
{
+#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 910) && \
+ defined(__unix__) && defined(__i386__)
+ /* workaround icc 9.1 optimizer issue */
+ volatile Curl_addrinfo * volatile canext;
+ Curl_addrinfo *ca;
+#else
Curl_addrinfo *ca, *canext;
+#endif
for(ca = cahead; ca != NULL; ca = canext) {
@@ -92,10 +94,6 @@ Curl_freeaddrinfo(Curl_addrinfo *cahead)
}
}
-#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 910) && \
- defined(__unix__) && defined(__i386__)
-# pragma optimize("", on)
-#endif
#ifdef HAVE_GETADDRINFO
/*