[Bug libfortran/40863] [4.5 Regression] Build failure in libgfortran
burnus at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Jul 26 20:28:00 GMT 2009
------- Comment #6 from burnus at gcc dot gnu dot org 2009-07-26 20:28 -------
(In reply to comment #4)
> The prototype warnings have been there foreever.
They should be fixed with the patch ... Do they still appear?
> On hpux, the error
> appears as a result of your change:
> ../../../gcc/libgfortran/intrinsics/c99_functions.c: In function 'casin':
> ../../../gcc/libgfortran/intrinsics/c99_functions.c:1433:11: error: 'I'
> undeclared (first use in this function)
Hmm. Do you know how the macro is called which provides "I", where I*I = -1?
On a POSIX/C99 system one has:
The <complex.h> header shall define the following macros:
complex
Expands to _Complex.
_Complex_I
Expands to a constant expression of type const float _Complex,
with the value of the imaginary unit (that is, a number i such
that i**2=-1).
imaginary
Expands to _Imaginary.
_Imaginary_I
Expands to a constant expression of type const float _Imaginary
with the value of the imaginary unit.
I Expands to either _Imaginary_I or _Complex_I. If _Imaginary_I
is not defined, I expands to _Complex_I.
Which of those macros are defined on hppa2.0w-hp-hpux11.11 and on Cygwin ?
Seemingly not the last one ...
Can you try whether the following works (place somewhere in
intrinsics/c99_functions.c):
#ifndef I
# if defined(_Imaginary_I)
# define I _Imaginary_I
# elif defined(_Complex_I)
# define I _Complex_I
# endif
#endif
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40863
More information about the Gcc-bugs
mailing list