diff options
author | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2006-10-07 13:34:16 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2006-10-07 13:34:16 +0000 |
commit | 0e7e7e6e82451de69f2449372e91df1f55888be8 (patch) | |
tree | 7d388fa3ec358e48da0a798ae99b8b3ed8f52f37 /libgfortran | |
parent | 73d1943acd41e5ee89a530d31aef4559a9cd76ed (diff) | |
download | gcc-0e7e7e6e82451de69f2449372e91df1f55888be8.zip gcc-0e7e7e6e82451de69f2449372e91df1f55888be8.tar.gz gcc-0e7e7e6e82451de69f2449372e91df1f55888be8.tar.bz2 |
re PR fortran/16580 ([4.1 only] gfortran ICE on test g77.f-torture/execute/intrinsic77.f)
PR fortran/16580
PR fortran/29288
* gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a
gfc_intrinsic_sym structure is filled.
(gfc_intrinsic_actual_ok): New function.
(add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s,
add_sym_5s): Intrinsic subroutines are not allowed as actual
arguments, so we remove argument actual_ok.
(add_functions): Correct the values for actual_ok of all intrinsics.
(add_subroutines): Remove the actual_ok argument, which was never used.
* gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype.
* gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype.
* gcc/fortran/resolve.c (resolve_actual_arglist): Check whether
an intrinsic used as an argument list is allowed there.
* gcc/fortran/iresolve.c (gfc_resolve_index_func): New function.
(gfc_resolve_len): Change intrinsic function name to agree with
libgfortran.
* gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add
new case, because some specific intrinsics take 3 arguments.
* gcc/fortran/intrinsic.texi: DIMAG is a GNU extension.
* libgfortran/Makefile.am: Add the new files to the build
process, and rules to build them.
* libgfortran/Makefile.in: Regenerate.
* libgfortran/m4/misc_specifics.m4: New file.
* libgfortran/m4/specific.m4: Add new special cases for function
with complex argument and real result, like abs_c* and aimag_c*.
* libgfortran/intrinsics/f2c_specifics.F90: Add specifics for
AIMAG, ASINH, ACOSH and ATANH.
* libgfortran/generated/_aimag_c4.F90: New file.
* libgfortran/generated/_aimag_c8.F90: New file.
* libgfortran/generated/_asinh_r10.F90: New file.
* libgfortran/generated/_acosh_r16.F90: New file.
* libgfortran/generated/_aimag_c10.F90: New file.
* libgfortran/generated/_atanh_r16.F90: New file.
* libgfortran/generated/_acosh_r4.F90: New file.
* libgfortran/generated/_acosh_r8.F90: New file.
* libgfortran/generated/_asinh_r4.F90: New file.
* libgfortran/generated/_asinh_r8.F90: New file.
* libgfortran/generated/_asinh_r16.F90: New file.
* libgfortran/generated/_atanh_r4.F90: New file.
* libgfortran/generated/_atanh_r8.F90: New file.
* libgfortran/generated/_acosh_r10.F90: New file.
* libgfortran/generated/misc_specifics.F90: New file.
* libgfortran/generated/_aimag_c16.F90: New file.
* libgfortran/generated/_atanh_r10.F90: New file.
* gcc/testsuite/gfortran.fortran-torture/execute/specifics.f90:
Add tests for using all possible intrinsics as actual arguments.
* gcc/testsuite/gfortran.dg/specifics_1.f90: Add tests for using
all possible intrinsics as actual arguments.
* gcc/testsuite/gfortran.dg/specifics_2.f90: New file.
* gcc/testsuite/gfortran.dg/specifics_3.f90: New file.
From-SVN: r117534
Diffstat (limited to 'libgfortran')
23 files changed, 1262 insertions, 14 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 57cee4c..bb7b7ba 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,6 +1,37 @@ +2006-10-01 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/16580 + PR fortran/29288 + * libgfortran/Makefile.am: Add the new files to the build + process, and rules to build them. + * libgfortran/Makefile.in: Regenerate. + * libgfortran/m4/misc_specifics.m4: New file. + * libgfortran/m4/specific.m4: Add new special cases for function + with complex argument and real result, like abs_c* and aimag_c*. + * libgfortran/intrinsics/f2c_specifics.F90: Add specifics for + AIMAG, ASINH, ACOSH and ATANH. + * libgfortran/generated/_aimag_c4.F90: New file. + * libgfortran/generated/_aimag_c8.F90: New file. + * libgfortran/generated/_asinh_r10.F90: New file. + * libgfortran/generated/_acosh_r16.F90: New file. + * libgfortran/generated/_aimag_c10.F90: New file. + * libgfortran/generated/_atanh_r16.F90: New file. + * libgfortran/generated/_acosh_r4.F90: New file. + * libgfortran/generated/_acosh_r8.F90: New file. + * libgfortran/generated/_asinh_r4.F90: New file. + * libgfortran/generated/_asinh_r8.F90: New file. + * libgfortran/generated/_asinh_r16.F90: New file. + * libgfortran/generated/_atanh_r4.F90: New file. + * libgfortran/generated/_atanh_r8.F90: New file. + * libgfortran/generated/_acosh_r10.F90: New file. + * libgfortran/generated/misc_specifics.F90: New file. + * libgfortran/generated/_aimag_c16.F90: New file. + * libgfortran/generated/_atanh_r10.F90: New file. + 2006-10-05 Danny Smith <dannysmith@users.sourceforge.net> - * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from test. + * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ + from test. * configure: Regenerate. 2006-10-05 Steven G. Kargl <kargl@gcc.gnu.org> diff --git a/libgfortran/Makefile.am b/libgfortran/Makefile.am index e1c952a..dd5b684 100644 --- a/libgfortran/Makefile.am +++ b/libgfortran/Makefile.am @@ -419,7 +419,8 @@ m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \ m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \ m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \ m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \ - m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/pow.m4 + m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/pow.m4 \ + m4/misc_specifics.m4 gfor_built_src= $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \ $(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \ @@ -444,6 +445,10 @@ generated/_abs_r4.F90 \ generated/_abs_r8.F90 \ generated/_abs_r10.F90 \ generated/_abs_r16.F90 \ +generated/_aimag_c4.F90 \ +generated/_aimag_c8.F90 \ +generated/_aimag_c10.F90 \ +generated/_aimag_c16.F90 \ generated/_exp_r4.F90 \ generated/_exp_r8.F90 \ generated/_exp_r10.F90 \ @@ -476,14 +481,26 @@ generated/_asin_r4.F90 \ generated/_asin_r8.F90 \ generated/_asin_r10.F90 \ generated/_asin_r16.F90 \ +generated/_asinh_r4.F90 \ +generated/_asinh_r8.F90 \ +generated/_asinh_r10.F90 \ +generated/_asinh_r16.F90 \ generated/_acos_r4.F90 \ generated/_acos_r8.F90 \ generated/_acos_r10.F90 \ generated/_acos_r16.F90 \ +generated/_acosh_r4.F90 \ +generated/_acosh_r8.F90 \ +generated/_acosh_r10.F90 \ +generated/_acosh_r16.F90 \ generated/_atan_r4.F90 \ generated/_atan_r8.F90 \ generated/_atan_r10.F90 \ generated/_atan_r16.F90 \ +generated/_atanh_r4.F90 \ +generated/_atanh_r8.F90 \ +generated/_atanh_r10.F90 \ +generated/_atanh_r16.F90 \ generated/_sin_r4.F90 \ generated/_sin_r8.F90 \ generated/_sin_r10.F90 \ @@ -556,9 +573,12 @@ generated/_mod_r8.F90 \ generated/_mod_r10.F90 \ generated/_mod_r16.F90 +gfor_misc_specifics = generated/misc_specifics.F90 + gfor_specific_src= \ $(gfor_built_specific_src) \ $(gfor_built_specific2_src) \ +$(gfor_misc_specifics) \ intrinsics/dprod_r8.f90 \ intrinsics/f2c_specifics.F90 @@ -572,7 +592,7 @@ $(patsubst %.c,%.lo,$(notdir $(i_matmul_c))): AM_CFLAGS += -ftree-vectorize -fun $(patsubst %.c,%.lo,$(notdir $(i_matmull_c))): AM_CFLAGS += -funroll-loops BUILT_SOURCES=$(gfor_built_src) $(gfor_built_specific_src) \ - $(gfor_built_specific2_src) + $(gfor_built_specific2_src) $(gfor_misc_specifics) libgfortran_la_SOURCES = $(gfor_src) $(gfor_built_src) $(gfor_io_src) \ $(gfor_helper_src) $(gfor_io_headers) $(gfor_specific_src) @@ -685,6 +705,9 @@ $(gfor_built_specific_src): m4/specific.m4 m4/head.m4 $(gfor_built_specific2_src): m4/specific2.m4 m4/head.m4 $(M4) -Dfile=$@ -I$(srcdir)/m4 specific2.m4 > $(srcdir)/$@ + +$(gfor_misc_specifics): m4/misc_specifics.m4 m4/head.m4 + m4 -Dfile=$@ -I$(srcdir)/m4 misc_specifics.m4 > $(srcdir)/$@ ## end of maintainer mode only rules endif diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in index c53c6de..77defb5 100644 --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in @@ -179,15 +179,19 @@ am__objects_30 = associated.lo abort.lo access.lo args.lo bessel.lo \ am__objects_31 = am__objects_32 = _abs_c4.lo _abs_c8.lo _abs_c10.lo _abs_c16.lo \ _abs_i4.lo _abs_i8.lo _abs_i16.lo _abs_r4.lo _abs_r8.lo \ - _abs_r10.lo _abs_r16.lo _exp_r4.lo _exp_r8.lo _exp_r10.lo \ + _abs_r10.lo _abs_r16.lo _aimag_c4.lo _aimag_c8.lo \ + _aimag_c10.lo _aimag_c16.lo _exp_r4.lo _exp_r8.lo _exp_r10.lo \ _exp_r16.lo _exp_c4.lo _exp_c8.lo _exp_c10.lo _exp_c16.lo \ _log_r4.lo _log_r8.lo _log_r10.lo _log_r16.lo _log_c4.lo \ _log_c8.lo _log_c10.lo _log_c16.lo _log10_r4.lo _log10_r8.lo \ _log10_r10.lo _log10_r16.lo _sqrt_r4.lo _sqrt_r8.lo \ _sqrt_r10.lo _sqrt_r16.lo _sqrt_c4.lo _sqrt_c8.lo _sqrt_c10.lo \ _sqrt_c16.lo _asin_r4.lo _asin_r8.lo _asin_r10.lo _asin_r16.lo \ - _acos_r4.lo _acos_r8.lo _acos_r10.lo _acos_r16.lo _atan_r4.lo \ - _atan_r8.lo _atan_r10.lo _atan_r16.lo _sin_r4.lo _sin_r8.lo \ + _asinh_r4.lo _asinh_r8.lo _asinh_r10.lo _asinh_r16.lo \ + _acos_r4.lo _acos_r8.lo _acos_r10.lo _acos_r16.lo _acosh_r4.lo \ + _acosh_r8.lo _acosh_r10.lo _acosh_r16.lo _atan_r4.lo \ + _atan_r8.lo _atan_r10.lo _atan_r16.lo _atanh_r4.lo \ + _atanh_r8.lo _atanh_r10.lo _atanh_r16.lo _sin_r4.lo _sin_r8.lo \ _sin_r10.lo _sin_r16.lo _sin_c4.lo _sin_c8.lo _sin_c10.lo \ _sin_c16.lo _cos_r4.lo _cos_r8.lo _cos_r10.lo _cos_r16.lo \ _cos_c4.lo _cos_c8.lo _cos_c10.lo _cos_c16.lo _tan_r4.lo \ @@ -203,11 +207,12 @@ am__objects_33 = _sign_i4.lo _sign_i8.lo _sign_i16.lo _sign_r4.lo \ _atan2_r4.lo _atan2_r8.lo _atan2_r10.lo _atan2_r16.lo \ _mod_i4.lo _mod_i8.lo _mod_i16.lo _mod_r4.lo _mod_r8.lo \ _mod_r10.lo _mod_r16.lo -am__objects_34 = $(am__objects_32) $(am__objects_33) dprod_r8.lo \ - f2c_specifics.lo +am__objects_34 = misc_specifics.lo +am__objects_35 = $(am__objects_32) $(am__objects_33) $(am__objects_34) \ + dprod_r8.lo f2c_specifics.lo am_libgfortran_la_OBJECTS = $(am__objects_1) $(am__objects_28) \ $(am__objects_29) $(am__objects_30) $(am__objects_31) \ - $(am__objects_34) + $(am__objects_35) libgfortran_la_OBJECTS = $(am_libgfortran_la_OBJECTS) libgfortranbegin_la_LIBADD = am_libgfortranbegin_la_OBJECTS = fmain.lo @@ -767,7 +772,8 @@ m4_files = m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \ m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \ m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \ m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent.m4 \ - m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/pow.m4 + m4/fraction.m4 m4/nearest.m4 m4/set_exponent.m4 m4/pow.m4 \ + m4/misc_specifics.m4 gfor_built_src = $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \ $(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \ @@ -793,6 +799,10 @@ generated/_abs_r4.F90 \ generated/_abs_r8.F90 \ generated/_abs_r10.F90 \ generated/_abs_r16.F90 \ +generated/_aimag_c4.F90 \ +generated/_aimag_c8.F90 \ +generated/_aimag_c10.F90 \ +generated/_aimag_c16.F90 \ generated/_exp_r4.F90 \ generated/_exp_r8.F90 \ generated/_exp_r10.F90 \ @@ -825,14 +835,26 @@ generated/_asin_r4.F90 \ generated/_asin_r8.F90 \ generated/_asin_r10.F90 \ generated/_asin_r16.F90 \ +generated/_asinh_r4.F90 \ +generated/_asinh_r8.F90 \ +generated/_asinh_r10.F90 \ +generated/_asinh_r16.F90 \ generated/_acos_r4.F90 \ generated/_acos_r8.F90 \ generated/_acos_r10.F90 \ generated/_acos_r16.F90 \ +generated/_acosh_r4.F90 \ +generated/_acosh_r8.F90 \ +generated/_acosh_r10.F90 \ +generated/_acosh_r16.F90 \ generated/_atan_r4.F90 \ generated/_atan_r8.F90 \ generated/_atan_r10.F90 \ generated/_atan_r16.F90 \ +generated/_atanh_r4.F90 \ +generated/_atanh_r8.F90 \ +generated/_atanh_r10.F90 \ +generated/_atanh_r16.F90 \ generated/_sin_r4.F90 \ generated/_sin_r8.F90 \ generated/_sin_r10.F90 \ @@ -905,14 +927,16 @@ generated/_mod_r8.F90 \ generated/_mod_r10.F90 \ generated/_mod_r16.F90 +gfor_misc_specifics = generated/misc_specifics.F90 gfor_specific_src = \ $(gfor_built_specific_src) \ $(gfor_built_specific2_src) \ +$(gfor_misc_specifics) \ intrinsics/dprod_r8.f90 \ intrinsics/f2c_specifics.F90 BUILT_SOURCES = $(gfor_built_src) $(gfor_built_specific_src) \ - $(gfor_built_specific2_src) + $(gfor_built_specific2_src) $(gfor_misc_specifics) libgfortran_la_SOURCES = $(gfor_src) $(gfor_built_src) $(gfor_io_src) \ $(gfor_helper_src) $(gfor_io_headers) $(gfor_specific_src) @@ -1083,6 +1107,18 @@ _abs_r10.lo: generated/_abs_r10.F90 _abs_r16.lo: generated/_abs_r16.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _abs_r16.lo `test -f 'generated/_abs_r16.F90' || echo '$(srcdir)/'`generated/_abs_r16.F90 +_aimag_c4.lo: generated/_aimag_c4.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _aimag_c4.lo `test -f 'generated/_aimag_c4.F90' || echo '$(srcdir)/'`generated/_aimag_c4.F90 + +_aimag_c8.lo: generated/_aimag_c8.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _aimag_c8.lo `test -f 'generated/_aimag_c8.F90' || echo '$(srcdir)/'`generated/_aimag_c8.F90 + +_aimag_c10.lo: generated/_aimag_c10.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _aimag_c10.lo `test -f 'generated/_aimag_c10.F90' || echo '$(srcdir)/'`generated/_aimag_c10.F90 + +_aimag_c16.lo: generated/_aimag_c16.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _aimag_c16.lo `test -f 'generated/_aimag_c16.F90' || echo '$(srcdir)/'`generated/_aimag_c16.F90 + _exp_r4.lo: generated/_exp_r4.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _exp_r4.lo `test -f 'generated/_exp_r4.F90' || echo '$(srcdir)/'`generated/_exp_r4.F90 @@ -1179,6 +1215,18 @@ _asin_r10.lo: generated/_asin_r10.F90 _asin_r16.lo: generated/_asin_r16.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _asin_r16.lo `test -f 'generated/_asin_r16.F90' || echo '$(srcdir)/'`generated/_asin_r16.F90 +_asinh_r4.lo: generated/_asinh_r4.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _asinh_r4.lo `test -f 'generated/_asinh_r4.F90' || echo '$(srcdir)/'`generated/_asinh_r4.F90 + +_asinh_r8.lo: generated/_asinh_r8.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _asinh_r8.lo `test -f 'generated/_asinh_r8.F90' || echo '$(srcdir)/'`generated/_asinh_r8.F90 + +_asinh_r10.lo: generated/_asinh_r10.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _asinh_r10.lo `test -f 'generated/_asinh_r10.F90' || echo '$(srcdir)/'`generated/_asinh_r10.F90 + +_asinh_r16.lo: generated/_asinh_r16.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _asinh_r16.lo `test -f 'generated/_asinh_r16.F90' || echo '$(srcdir)/'`generated/_asinh_r16.F90 + _acos_r4.lo: generated/_acos_r4.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _acos_r4.lo `test -f 'generated/_acos_r4.F90' || echo '$(srcdir)/'`generated/_acos_r4.F90 @@ -1191,6 +1239,18 @@ _acos_r10.lo: generated/_acos_r10.F90 _acos_r16.lo: generated/_acos_r16.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _acos_r16.lo `test -f 'generated/_acos_r16.F90' || echo '$(srcdir)/'`generated/_acos_r16.F90 +_acosh_r4.lo: generated/_acosh_r4.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _acosh_r4.lo `test -f 'generated/_acosh_r4.F90' || echo '$(srcdir)/'`generated/_acosh_r4.F90 + +_acosh_r8.lo: generated/_acosh_r8.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _acosh_r8.lo `test -f 'generated/_acosh_r8.F90' || echo '$(srcdir)/'`generated/_acosh_r8.F90 + +_acosh_r10.lo: generated/_acosh_r10.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _acosh_r10.lo `test -f 'generated/_acosh_r10.F90' || echo '$(srcdir)/'`generated/_acosh_r10.F90 + +_acosh_r16.lo: generated/_acosh_r16.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _acosh_r16.lo `test -f 'generated/_acosh_r16.F90' || echo '$(srcdir)/'`generated/_acosh_r16.F90 + _atan_r4.lo: generated/_atan_r4.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _atan_r4.lo `test -f 'generated/_atan_r4.F90' || echo '$(srcdir)/'`generated/_atan_r4.F90 @@ -1203,6 +1263,18 @@ _atan_r10.lo: generated/_atan_r10.F90 _atan_r16.lo: generated/_atan_r16.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _atan_r16.lo `test -f 'generated/_atan_r16.F90' || echo '$(srcdir)/'`generated/_atan_r16.F90 +_atanh_r4.lo: generated/_atanh_r4.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _atanh_r4.lo `test -f 'generated/_atanh_r4.F90' || echo '$(srcdir)/'`generated/_atanh_r4.F90 + +_atanh_r8.lo: generated/_atanh_r8.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _atanh_r8.lo `test -f 'generated/_atanh_r8.F90' || echo '$(srcdir)/'`generated/_atanh_r8.F90 + +_atanh_r10.lo: generated/_atanh_r10.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _atanh_r10.lo `test -f 'generated/_atanh_r10.F90' || echo '$(srcdir)/'`generated/_atanh_r10.F90 + +_atanh_r16.lo: generated/_atanh_r16.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _atanh_r16.lo `test -f 'generated/_atanh_r16.F90' || echo '$(srcdir)/'`generated/_atanh_r16.F90 + _sin_r4.lo: generated/_sin_r4.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _sin_r4.lo `test -f 'generated/_sin_r4.F90' || echo '$(srcdir)/'`generated/_sin_r4.F90 @@ -1410,6 +1482,9 @@ _mod_r10.lo: generated/_mod_r10.F90 _mod_r16.lo: generated/_mod_r16.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o _mod_r16.lo `test -f 'generated/_mod_r16.F90' || echo '$(srcdir)/'`generated/_mod_r16.F90 +misc_specifics.lo: generated/misc_specifics.F90 + $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o misc_specifics.lo `test -f 'generated/misc_specifics.F90' || echo '$(srcdir)/'`generated/misc_specifics.F90 + f2c_specifics.lo: intrinsics/f2c_specifics.F90 $(LIBTOOL) --mode=compile $(FC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_FCFLAGS) $(FCFLAGS) -c -o f2c_specifics.lo `test -f 'intrinsics/f2c_specifics.F90' || echo '$(srcdir)/'`intrinsics/f2c_specifics.F90 @@ -2844,6 +2919,9 @@ fpu-target.h: $(srcdir)/$(FPU_HOST_HEADER) @MAINTAINER_MODE_TRUE@$(gfor_built_specific2_src): m4/specific2.m4 m4/head.m4 @MAINTAINER_MODE_TRUE@ $(M4) -Dfile=$@ -I$(srcdir)/m4 specific2.m4 > $(srcdir)/$@ + +@MAINTAINER_MODE_TRUE@$(gfor_misc_specifics): m4/misc_specifics.m4 m4/head.m4 +@MAINTAINER_MODE_TRUE@ m4 -Dfile=$@ -I$(srcdir)/m4 misc_specifics.m4 > $(srcdir)/$@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/libgfortran/generated/_acosh_r10.F90 b/libgfortran/generated/_acosh_r10.F90 new file mode 100644 index 0000000..07bc332 --- /dev/null +++ b/libgfortran/generated/_acosh_r10.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_10) +#ifdef HAVE_ACOSHL + +elemental function specific__acosh_r10 (parm) + real (kind=10), intent (in) :: parm + real (kind=10) :: specific__acosh_r10 + + specific__acosh_r10 = acosh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_acosh_r16.F90 b/libgfortran/generated/_acosh_r16.F90 new file mode 100644 index 0000000..295a366 --- /dev/null +++ b/libgfortran/generated/_acosh_r16.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_16) +#ifdef HAVE_ACOSHL + +elemental function specific__acosh_r16 (parm) + real (kind=16), intent (in) :: parm + real (kind=16) :: specific__acosh_r16 + + specific__acosh_r16 = acosh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_acosh_r4.F90 b/libgfortran/generated/_acosh_r4.F90 new file mode 100644 index 0000000..717ce40 --- /dev/null +++ b/libgfortran/generated/_acosh_r4.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_4) +#ifdef HAVE_ACOSHF + +elemental function specific__acosh_r4 (parm) + real (kind=4), intent (in) :: parm + real (kind=4) :: specific__acosh_r4 + + specific__acosh_r4 = acosh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_acosh_r8.F90 b/libgfortran/generated/_acosh_r8.F90 new file mode 100644 index 0000000..d03c73b --- /dev/null +++ b/libgfortran/generated/_acosh_r8.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_8) +#ifdef HAVE_ACOSH + +elemental function specific__acosh_r8 (parm) + real (kind=8), intent (in) :: parm + real (kind=8) :: specific__acosh_r8 + + specific__acosh_r8 = acosh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_aimag_c10.F90 b/libgfortran/generated/_aimag_c10.F90 new file mode 100644 index 0000000..d6a6f0b --- /dev/null +++ b/libgfortran/generated/_aimag_c10.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_COMPLEX_10) + + +elemental function specific__aimag_c10 (parm) + complex (kind=10), intent (in) :: parm + real (kind=10) :: specific__aimag_c10 + + specific__aimag_c10 = aimag (parm) +end function + + +#endif diff --git a/libgfortran/generated/_aimag_c16.F90 b/libgfortran/generated/_aimag_c16.F90 new file mode 100644 index 0000000..717f820 --- /dev/null +++ b/libgfortran/generated/_aimag_c16.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_COMPLEX_16) + + +elemental function specific__aimag_c16 (parm) + complex (kind=16), intent (in) :: parm + real (kind=16) :: specific__aimag_c16 + + specific__aimag_c16 = aimag (parm) +end function + + +#endif diff --git a/libgfortran/generated/_aimag_c4.F90 b/libgfortran/generated/_aimag_c4.F90 new file mode 100644 index 0000000..241e7b9 --- /dev/null +++ b/libgfortran/generated/_aimag_c4.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_COMPLEX_4) + + +elemental function specific__aimag_c4 (parm) + complex (kind=4), intent (in) :: parm + real (kind=4) :: specific__aimag_c4 + + specific__aimag_c4 = aimag (parm) +end function + + +#endif diff --git a/libgfortran/generated/_aimag_c8.F90 b/libgfortran/generated/_aimag_c8.F90 new file mode 100644 index 0000000..76ad7e9 --- /dev/null +++ b/libgfortran/generated/_aimag_c8.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_COMPLEX_8) + + +elemental function specific__aimag_c8 (parm) + complex (kind=8), intent (in) :: parm + real (kind=8) :: specific__aimag_c8 + + specific__aimag_c8 = aimag (parm) +end function + + +#endif diff --git a/libgfortran/generated/_asinh_r10.F90 b/libgfortran/generated/_asinh_r10.F90 new file mode 100644 index 0000000..c6a791b --- /dev/null +++ b/libgfortran/generated/_asinh_r10.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_10) +#ifdef HAVE_ASINHL + +elemental function specific__asinh_r10 (parm) + real (kind=10), intent (in) :: parm + real (kind=10) :: specific__asinh_r10 + + specific__asinh_r10 = asinh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_asinh_r16.F90 b/libgfortran/generated/_asinh_r16.F90 new file mode 100644 index 0000000..3b2a28b --- /dev/null +++ b/libgfortran/generated/_asinh_r16.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_16) +#ifdef HAVE_ASINHL + +elemental function specific__asinh_r16 (parm) + real (kind=16), intent (in) :: parm + real (kind=16) :: specific__asinh_r16 + + specific__asinh_r16 = asinh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_asinh_r4.F90 b/libgfortran/generated/_asinh_r4.F90 new file mode 100644 index 0000000..de47515 --- /dev/null +++ b/libgfortran/generated/_asinh_r4.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_4) +#ifdef HAVE_ASINHF + +elemental function specific__asinh_r4 (parm) + real (kind=4), intent (in) :: parm + real (kind=4) :: specific__asinh_r4 + + specific__asinh_r4 = asinh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_asinh_r8.F90 b/libgfortran/generated/_asinh_r8.F90 new file mode 100644 index 0000000..0a6d0bd --- /dev/null +++ b/libgfortran/generated/_asinh_r8.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_8) +#ifdef HAVE_ASINH + +elemental function specific__asinh_r8 (parm) + real (kind=8), intent (in) :: parm + real (kind=8) :: specific__asinh_r8 + + specific__asinh_r8 = asinh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_atanh_r10.F90 b/libgfortran/generated/_atanh_r10.F90 new file mode 100644 index 0000000..75cdf99 --- /dev/null +++ b/libgfortran/generated/_atanh_r10.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_10) +#ifdef HAVE_ATANHL + +elemental function specific__atanh_r10 (parm) + real (kind=10), intent (in) :: parm + real (kind=10) :: specific__atanh_r10 + + specific__atanh_r10 = atanh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_atanh_r16.F90 b/libgfortran/generated/_atanh_r16.F90 new file mode 100644 index 0000000..bc6e71c --- /dev/null +++ b/libgfortran/generated/_atanh_r16.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_16) +#ifdef HAVE_ATANHL + +elemental function specific__atanh_r16 (parm) + real (kind=16), intent (in) :: parm + real (kind=16) :: specific__atanh_r16 + + specific__atanh_r16 = atanh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_atanh_r4.F90 b/libgfortran/generated/_atanh_r4.F90 new file mode 100644 index 0000000..edbd419 --- /dev/null +++ b/libgfortran/generated/_atanh_r4.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_4) +#ifdef HAVE_ATANHF + +elemental function specific__atanh_r4 (parm) + real (kind=4), intent (in) :: parm + real (kind=4) :: specific__atanh_r4 + + specific__atanh_r4 = atanh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/_atanh_r8.F90 b/libgfortran/generated/_atanh_r8.F90 new file mode 100644 index 0000000..05dd808 --- /dev/null +++ b/libgfortran/generated/_atanh_r8.F90 @@ -0,0 +1,51 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + + + + + +#include "config.h" +#include "kinds.inc" +#include "c99_protos.inc" + +#if defined (HAVE_GFC_REAL_8) +#ifdef HAVE_ATANH + +elemental function specific__atanh_r8 (parm) + real (kind=8), intent (in) :: parm + real (kind=8) :: specific__atanh_r8 + + specific__atanh_r8 = atanh (parm) +end function + +#endif +#endif diff --git a/libgfortran/generated/misc_specifics.F90 b/libgfortran/generated/misc_specifics.F90 new file mode 100644 index 0000000..a3b103b --- /dev/null +++ b/libgfortran/generated/misc_specifics.F90 @@ -0,0 +1,211 @@ +! Copyright 2002 Free Software Foundation, Inc. +! Contributed by Paul Brook <paul@nowt.org> +! +!This file is part of the GNU Fortran 95 runtime library (libgfortran). +! +!GNU libgfortran is free software; you can redistribute it and/or +!modify it under the terms of the GNU General Public +!License as published by the Free Software Foundation; either +!version 2 of the License, or (at your option) any later version. + +!In addition to the permissions in the GNU General Public License, the +!Free Software Foundation gives you unlimited permission to link the +!compiled version of this file into combinations with other programs, +!and to distribute those combinations without any restriction coming +!from the use of this file. (The General Public License restrictions +!do apply in other respects; for example, they cover modification of +!the file, and distribution when not linked into a combine +!executable.) +! +!GNU libgfortran is distributed in the hope that it will be useful, +!but WITHOUT ANY WARRANTY; without even the implied warranty of +!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +!GNU General Public License for more details. +! +!You should have received a copy of the GNU General Public +!License along with libgfortran; see the file COPYING. If not, +!write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +!Boston, MA 02110-1301, USA. +! +!This file is machine generated. + +#include "config.h" +#include "kinds.inc" + + + + +#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_INTEGER_4) +elemental function specific__nint_4_4 (parm) + real (kind=4) , intent (in) :: parm + integer (kind=4) :: specific__nint_4_4 + specific__nint_4_4 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_INTEGER_4) +elemental function specific__nint_4_8 (parm) + real (kind=8) , intent (in) :: parm + integer (kind=4) :: specific__nint_4_8 + specific__nint_4_8 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_INTEGER_4) +elemental function specific__nint_4_10 (parm) + real (kind=10) , intent (in) :: parm + integer (kind=4) :: specific__nint_4_10 + specific__nint_4_10 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_INTEGER_4) +elemental function specific__nint_4_16 (parm) + real (kind=16) , intent (in) :: parm + integer (kind=4) :: specific__nint_4_16 + specific__nint_4_16 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_INTEGER_8) +elemental function specific__nint_8_4 (parm) + real (kind=4) , intent (in) :: parm + integer (kind=8) :: specific__nint_8_4 + specific__nint_8_4 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_INTEGER_8) +elemental function specific__nint_8_8 (parm) + real (kind=8) , intent (in) :: parm + integer (kind=8) :: specific__nint_8_8 + specific__nint_8_8 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_INTEGER_8) +elemental function specific__nint_8_10 (parm) + real (kind=10) , intent (in) :: parm + integer (kind=8) :: specific__nint_8_10 + specific__nint_8_10 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_INTEGER_8) +elemental function specific__nint_8_16 (parm) + real (kind=16) , intent (in) :: parm + integer (kind=8) :: specific__nint_8_16 + specific__nint_8_16 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_INTEGER_16) +elemental function specific__nint_16_4 (parm) + real (kind=4) , intent (in) :: parm + integer (kind=16) :: specific__nint_16_4 + specific__nint_16_4 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_8) && defined (HAVE_GFC_INTEGER_16) +elemental function specific__nint_16_8 (parm) + real (kind=8) , intent (in) :: parm + integer (kind=16) :: specific__nint_16_8 + specific__nint_16_8 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_10) && defined (HAVE_GFC_INTEGER_16) +elemental function specific__nint_16_10 (parm) + real (kind=10) , intent (in) :: parm + integer (kind=16) :: specific__nint_16_10 + specific__nint_16_10 = nint (parm) +end function +#endif + +#if defined (HAVE_GFC_REAL_16) && defined (HAVE_GFC_INTEGER_16) +elemental function specific__nint_16_16 (parm) + real (kind=16) , intent (in) :: parm + integer (kind=16) :: specific__nint_16_16 + specific__nint_16_16 = nint (parm) +end function +#endif + + + +#if defined (HAVE_GFC_INTEGER_4) +elemental function specific__char_1_i4 (parm) + integer (kind=4) , intent (in) :: parm + character (kind=1,len=1) :: specific__char_1_i4 + specific__char_1_i4 = char (parm, kind=1) +end function +#endif + +#if defined (HAVE_GFC_INTEGER_8) +elemental function specific__char_1_i8 (parm) + integer (kind=8) , intent (in) :: parm + character (kind=1,len=1) :: specific__char_1_i8 + specific__char_1_i8 = char (parm, kind=1) +end function +#endif + +#if defined (HAVE_GFC_INTEGER_16) +elemental function specific__char_1_i16 (parm) + integer (kind=16) , intent (in) :: parm + character (kind=1,len=1) :: specific__char_1_i16 + specific__char_1_i16 = char (parm, kind=1) +end function +#endif + + + +#if defined (HAVE_GFC_INTEGER_4) +elemental function specific__len_1_i4 (parm) + character (kind=1,len=*) , intent (in) :: parm + integer (kind=4) :: specific__len_1_i4 + specific__len_1_i4 = len (parm) +end function +#endif + +#if defined (HAVE_GFC_INTEGER_8) +elemental function specific__len_1_i8 (parm) + character (kind=1,len=*) , intent (in) :: parm + integer (kind=8) :: specific__len_1_i8 + specific__len_1_i8 = len (parm) +end function +#endif + +#if defined (HAVE_GFC_INTEGER_16) +elemental function specific__len_1_i16 (parm) + character (kind=1,len=*) , intent (in) :: parm + integer (kind=16) :: specific__len_1_i16 + specific__len_1_i16 = len (parm) +end function +#endif + + + +#if defined (HAVE_GFC_INTEGER_4) +elemental function specific__index_1_i4 (parm1, parm2) + character (kind=1,len=*) , intent (in) :: parm1, parm2 + integer (kind=4) :: specific__index_1_i4 + specific__index_1_i4 = index (parm1, parm2) +end function +#endif + +#if defined (HAVE_GFC_INTEGER_8) +elemental function specific__index_1_i8 (parm1, parm2) + character (kind=1,len=*) , intent (in) :: parm1, parm2 + integer (kind=8) :: specific__index_1_i8 + specific__index_1_i8 = index (parm1, parm2) +end function +#endif + +#if defined (HAVE_GFC_INTEGER_16) +elemental function specific__index_1_i16 (parm1, parm2) + character (kind=1,len=*) , intent (in) :: parm1, parm2 + integer (kind=16) :: specific__index_1_i16 + specific__index_1_i16 = index (parm1, parm2) +end function +#endif + diff --git a/libgfortran/intrinsics/f2c_specifics.F90 b/libgfortran/intrinsics/f2c_specifics.F90 index 6fdcfe9..c3f906d 100644 --- a/libgfortran/intrinsics/f2c_specifics.F90 +++ b/libgfortran/intrinsics/f2c_specifics.F90 @@ -69,6 +69,7 @@ end subroutine REAL_HEAD(abs) REAL_BODY(abs) + ! abs is special in that the result is real elemental function f2c_specific__abs_c4 (parm) result (res) COMPLEX, intent(in) :: parm @@ -76,6 +77,21 @@ elemental function f2c_specific__abs_c4 (parm) result (res) res = abs(parm) end function + +! aimag is special in that the result is real +elemental function f2c_specific__aimag_c4 (parm) + complex(kind=4), intent(in) :: parm + double precision :: f2c_specific__aimag_c4 + f2c_specific__aimag_c4 = aimag(parm) +end function + +elemental function f2c_specific__aimag_c8 (parm) + complex(kind=8), intent(in) :: parm + double precision :: f2c_specific__aimag_c8 + f2c_specific__aimag_c8 = aimag(parm) +end function + + REAL_HEAD(exp) REAL_BODY(exp) COMPLEX_HEAD(exp) @@ -109,6 +125,15 @@ REAL_BODY(acos) REAL_HEAD(atan) REAL_BODY(atan) +REAL_HEAD(asinh) +REAL_BODY(asinh) + +REAL_HEAD(acosh) +REAL_BODY(acosh) + +REAL_HEAD(atanh) +REAL_BODY(atanh) + REAL_HEAD(sin) REAL_BODY(sin) COMPLEX_HEAD(sin) diff --git a/libgfortran/m4/misc_specifics.m4 b/libgfortran/m4/misc_specifics.m4 new file mode 100644 index 0000000..dff63d8 --- /dev/null +++ b/libgfortran/m4/misc_specifics.m4 @@ -0,0 +1,64 @@ +include(head.m4)dnl +dnl +dnl This file contains the specific functions that are not handled in the +dnl m4/specific.m4 file. + +#include "config.h" +#include "kinds.inc" + +dnl This is from GNU m4 examples file foreach.m4: +divert(-1) +# foreach(x, (item_1, item_2, ..., item_n), stmt) +define(`foreach', `pushdef(`$1', `')_foreach(`$1', `$2', +`$3')popdef(`$1')') +define(`_arg1', `$1') +define(`_foreach', + `ifelse(`$2', `()', , + `define(`$1', _arg1$2)$3`'_foreach(`$1', (shift$2), +`$3')')') +# traceon(`define', `foreach', `_foreach', `ifelse') +divert + +dnl NINT specifics +foreach(`ikind', `(4, 8, 16)', `foreach(`rkind', `(4, 8, 10, 16)', ` +`#if defined (HAVE_GFC_REAL_'rkind`) && defined (HAVE_GFC_INTEGER_'ikind`)' +elemental function specific__nint_`'ikind`_'rkind (parm) + real (kind=rkind) , intent (in) :: parm + integer (kind=ikind) :: specific__nint_`'ikind`_'rkind + specific__nint_`'ikind`_'rkind = nint (parm) +end function +#endif +')') + +dnl CHAR specifics +foreach(`ckind', `(1)', `foreach(`ikind', `(4, 8, 16)', ` +`#if defined (HAVE_GFC_INTEGER_'ikind`)' +elemental function specific__char_`'ckind`_i'ikind (parm) + integer (kind=ikind) , intent (in) :: parm + character (kind=ckind,len=1) :: specific__char_`'ckind`_i'ikind + specific__char_`'ckind`_i'ikind` = char (parm, kind='ckind`)' +end function +#endif +')') + +dnl LEN specifics +foreach(`ckind', `(1)', `foreach(`ikind', `(4, 8, 16)', ` +`#if defined (HAVE_GFC_INTEGER_'ikind`)' +elemental function specific__len_`'ckind`_i'ikind (parm) + character (kind=ckind,len=*) , intent (in) :: parm + integer (kind=ikind) :: specific__len_`'ckind`_i'ikind + specific__len_`'ckind`_i'ikind` = len (parm)' +end function +#endif +')') + +dnl INDEX specifics +foreach(`ckind', `(1)', `foreach(`ikind', `(4, 8, 16)', ` +`#if defined (HAVE_GFC_INTEGER_'ikind`)' +elemental function specific__index_`'ckind`_i'ikind (parm1, parm2) + character (kind=ckind,len=*) , intent (in) :: parm1, parm2 + integer (kind=ikind) :: specific__index_`'ckind`_i'ikind + specific__index_`'ckind`_i'ikind` = index (parm1, parm2)' +end function +#endif +')') diff --git a/libgfortran/m4/specific.m4 b/libgfortran/m4/specific.m4 index a0d03dc..c8c9152 100644 --- a/libgfortran/m4/specific.m4 +++ b/libgfortran/m4/specific.m4 @@ -6,7 +6,7 @@ define(get_typename2, `$1 (kind=$2)')dnl define(get_typename, `get_typename2(ifelse($1,i,integer,ifelse($1,r,real,ifelse($1,l,logical,ifelse($1,c,complex,unknown)))),`$2')')dnl define(atype_name, get_typename(atype_letter,atype_kind))dnl define(name, regexp(regexp(file, `[^/]*$', `\&'), `^_\([^_]*\)_', `\1'))dnl -define(rtype_name,get_typename(ifelse(name,abs,ifelse(atype_letter,c,r,atype_letter),atype_letter),atype_kind))dnl +define(rtype_name,get_typename(ifelse(name,abs,ifelse(atype_letter,c,r,atype_letter),ifelse(name,aimag,ifelse(atype_letter,c,r,atype_letter),atype_letter)),atype_kind))dnl define(function_name,ifelse(name,conjg,`specific__conjg_'atype_kind,`specific__'name`_'atype_code))dnl define(type,ifelse(atype_letter,l,LOGICAL,ifelse(atype_letter,i,INTEGER,ifelse(atype_letter,r,REAL,ifelse(atype_letter,c,COMPLEX,UNKNOW)))))dnl @@ -17,8 +17,8 @@ dnl nothing. The list is currently: dnl - integer and logical specifics require no libm function dnl - AINT requires the trunc() family functions dnl - ANINT requires round() -dnl - CONJG, DIM, SIGN require no libm function -define(needed,ifelse(atype_letter,i,`none',ifelse(atype_letter,l,`none',ifelse(name,aint,trunc,ifelse(name,anint,round,ifelse(name,conjg,none,ifelse(name,dim,none,ifelse(name,sign,none,ifelse(name,abs,fabs,name)))))))))dnl +dnl - AIMAG, CONJG, DIM, SIGN require no libm function +define(needed,ifelse(atype_letter,i,`none',ifelse(atype_letter,l,`none',ifelse(name,aint,trunc,ifelse(name,anint,round,ifelse(name,aimag,none,ifelse(name,conjg,none,ifelse(name,dim,none,ifelse(name,sign,none,ifelse(name,abs,fabs,name))))))))))dnl define(prefix,ifelse(atype_letter,c,C,`'))dnl dnl Special case for fabs, for which the corresponding complex function |