diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index ccf5dec226af..9eaa989c0631 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2006-01-12 Roger Sayle + + * intrinsics/c99_functions.c: Add function prototypes to avoid + warnings from -Wstrict-prototypes -Wmissing-prototypes. On Tru64 + work around a brain-dead libm by redirecting calls to cabs{,f,l} + to a local __gfc_cabs{,f,l}. + 2006-01-07 Janne Blomqvist * configure.ac: Remove check for sys/mman.h. diff --git a/libgfortran/intrinsics/c99_functions.c b/libgfortran/intrinsics/c99_functions.c index 5e93e4279b27..feb4c08b4791 100644 --- a/libgfortran/intrinsics/c99_functions.c +++ b/libgfortran/intrinsics/c99_functions.c @@ -35,6 +35,33 @@ Boston, MA 02110-1301, USA. */ #define C99_PROTOS_H WE_DONT_WANT_PROTOS_NOW #include "libgfortran.h" +/* Tru64's declares a non-C99 compliant implementation of cabs, + which takes two floating point arguments instead of a single complex. + To work around this we redirect cabs{,f,l} calls to __gfc_cabs{,f,l}. */ + +#ifdef __osf__ +#undef HAVE_CABS +#undef HAVE_CABSF +#undef HAVE_CABSL +#define cabs __gfc_cabs +#define cabsf __gfc_cabsf +#define cabsl __gfc_cabsl +#endif + +/* Prototypes to silence -Wstrict-prototypes -Wmissing-prototypes. */ + +float cabsf(float complex); +double cabs(double complex); +long double cabsl(long double complex); + +float cargf(float complex); +double carg(double complex); +long double cargl(long double complex); + +float complex clog10f(float complex); +double complex clog10(double complex); +long double complex clog10l(long double complex); + #ifndef HAVE_ACOSF #define HAVE_ACOSF 1