X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fs%2Faix4.h;h=56bd1a1128ee56b9e6658bd48745dab8fed7c1c1;hb=27ea365b3903728593fb2726e9336c1b49eb9f4f;hp=adf31950f2682b70bb1425bf7ced287a92ad7579;hpb=3198ed8319f99e19a14447745f4f93e4b4522961;p=chise%2Fxemacs-chise.git- diff --git a/src/s/aix4.h b/src/s/aix4.h index adf3195..56bd1a1 100644 --- a/src/s/aix4.h +++ b/src/s/aix4.h @@ -14,6 +14,25 @@ /* Forward declarations for xlc warning suppressions */ struct ether_addr; struct sockaddr_dl; + +#ifdef __xlC__ /* "eXceLlent C compiler" ?! */ +#if __xlC__ >= 1200 +/* IBM's C compiler option `-O3' is too aggressive. + We recommend instead the combination `-O3 -qstrict', which seems safe. + + cc -O3 miscompiles at least two functions. From IBM's docs: + + IBM> -qstrict turns off the following optimizations: + + IBM> Performing code motion and scheduling on computations such as loads + IBM> and floating-point computations that may trigger an exception. + + Nevertheless, we try to work with these compiler options. */ +#pragma option_override (bytecount_to_charcount, "opt(strict,yes)") +#pragma option_override (Fexpand_file_name, "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 +40,3 @@ struct sockaddr_dl; -- Mike Sperber */ #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 */