diff src/s/aix4.h @ 460:223736d75acb r21-2-45

Import from CVS: tag r21-2-45
author cvs
date Mon, 13 Aug 2007 11:43:24 +0200
parents e7ef97881643
children 36b504cdc45f
line wrap: on
line diff
--- a/src/s/aix4.h	Mon Aug 13 11:42:27 2007 +0200
+++ b/src/s/aix4.h	Mon Aug 13 11:43:24 2007 +0200
@@ -14,6 +14,20 @@
 /* Forward declarations for xlc warning suppressions */
 struct ether_addr;
 struct sockaddr_dl;
+
+#ifdef __xlC__			/* "eXceLlent C compiler" ?! */
+#if __xlC__ >= 1200
+/* IBM's C compiler miscompiles bytecount_to_charcount at high levels
+   of optimization.  From IBM's docs:
+
+   -qstrict turns off the following optimizations:
+
+   Performing code motion and scheduling on computations such as loads
+   and floating-point computations that may trigger an exception. */
+#pragma option_override (bytecount_to_charcount, "opt(strict,yes)")
+#endif /* recent IBM C compiler */
+#endif /* IBM's C compiler */
+
 #endif /* C code */
 
 /* getaddrinfo is broken in AIX 4.3 as per IY04165.
@@ -21,12 +35,3 @@
    -- Mike Sperber <mike@xemacs.org> */
 
 #undef HAVE_GETADDRINFO
-
-#ifdef __xlC__
-/* IBM's C compiler miscompiles this function.  From IBM's docs:
-   -qstrict turns off the following optimizations:
-
-   Performing code motion and scheduling on computations such as loads
-   and floating-point computations that may trigger an exception. */
-#pragma option_override (bytecount_to_charcount, "opt(strict,yes)")
-#endif /* IBM's C compiler */