mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-18 02:14:31 +08:00
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
This commit is contained in:
parent
73d1943acd
commit
0e7e7e6e82
@ -1,3 +1,26 @@
|
||||
2006-10-07 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||||
|
||||
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.
|
||||
|
||||
2006-10-06 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR fortran/28415
|
||||
|
@ -1940,6 +1940,7 @@ try gfc_convert_type_warn (gfc_expr *, gfc_typespec *, int, int);
|
||||
int gfc_generic_intrinsic (const char *);
|
||||
int gfc_specific_intrinsic (const char *);
|
||||
int gfc_intrinsic_name (const char *, int);
|
||||
int gfc_intrinsic_actual_ok (const char *, const bool);
|
||||
gfc_intrinsic_sym *gfc_find_function (const char *);
|
||||
|
||||
match gfc_intrinsic_func_interface (gfc_expr *, int);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -357,6 +357,7 @@ void gfc_resolve_iand (gfc_expr *, gfc_expr *, gfc_expr *);
|
||||
void gfc_resolve_ibclr (gfc_expr *, gfc_expr *, gfc_expr *);
|
||||
void gfc_resolve_ibits (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
|
||||
void gfc_resolve_ibset (gfc_expr *, gfc_expr *, gfc_expr *);
|
||||
void gfc_resolve_index_func (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
|
||||
void gfc_resolve_ierrno (gfc_expr *);
|
||||
void gfc_resolve_ieor (gfc_expr *, gfc_expr *, gfc_expr *);
|
||||
void gfc_resolve_ichar (gfc_expr *, gfc_expr *);
|
||||
|
@ -667,7 +667,7 @@ end program test_aimag
|
||||
@item @emph{Specific names}:
|
||||
@multitable @columnfractions .20 .20 .20 .40
|
||||
@item Name @tab Argument @tab Return type @tab Standard
|
||||
@item @code{DIMAG(Z)} @tab @code{COMPLEX(8) Z} @tab @code{REAL(8)} @tab F95 and later
|
||||
@item @code{DIMAG(Z)} @tab @code{COMPLEX(8) Z} @tab @code{REAL(8)} @tab GNU extension
|
||||
@item @code{IMAG(Z)} @tab @code{COMPLEX(*) Z} @tab @code{REAL(*)} @tab GNU extension
|
||||
@item @code{IMAGPART(Z)} @tab @code{COMPLEX(*) Z} @tab @code{REAL(*)} @tab GNU extension
|
||||
@end multitable
|
||||
|
@ -876,6 +876,29 @@ gfc_resolve_ior (gfc_expr * f, gfc_expr * i, gfc_expr * j)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gfc_resolve_index_func (gfc_expr * f, gfc_expr * str,
|
||||
ATTRIBUTE_UNUSED gfc_expr * sub_str, gfc_expr * back)
|
||||
{
|
||||
gfc_typespec ts;
|
||||
|
||||
f->ts.type = BT_INTEGER;
|
||||
f->ts.kind = gfc_default_integer_kind;
|
||||
|
||||
if (back && back->ts.kind != gfc_default_integer_kind)
|
||||
{
|
||||
ts.type = BT_LOGICAL;
|
||||
ts.kind = gfc_default_integer_kind;
|
||||
ts.derived = NULL;
|
||||
ts.cl = NULL;
|
||||
gfc_convert_type (back, &ts, 2);
|
||||
}
|
||||
|
||||
f->value.function.name =
|
||||
gfc_get_string ("__index_%d_i%d", str->ts.kind, f->ts.kind);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
gfc_resolve_int (gfc_expr * f, gfc_expr * a, gfc_expr * kind)
|
||||
{
|
||||
@ -1022,7 +1045,8 @@ gfc_resolve_len (gfc_expr * f, gfc_expr * string)
|
||||
{
|
||||
f->ts.type = BT_INTEGER;
|
||||
f->ts.kind = gfc_default_integer_kind;
|
||||
f->value.function.name = gfc_get_string ("__len_%d", string->ts.kind);
|
||||
f->value.function.name = gfc_get_string ("__len_%d_i%d", string->ts.kind,
|
||||
gfc_default_integer_kind);
|
||||
}
|
||||
|
||||
|
||||
|
@ -836,6 +836,7 @@ resolve_actual_arglist (gfc_actual_arglist * arg)
|
||||
|| sym->attr.intrinsic
|
||||
|| sym->attr.external)
|
||||
{
|
||||
int actual_ok;
|
||||
|
||||
/* If a procedure is not already determined to be something else
|
||||
check if it is intrinsic. */
|
||||
@ -851,6 +852,19 @@ resolve_actual_arglist (gfc_actual_arglist * arg)
|
||||
"actual argument", sym->name, &e->where);
|
||||
}
|
||||
|
||||
actual_ok = gfc_intrinsic_actual_ok (sym->name, sym->attr.subroutine);
|
||||
if (sym->attr.intrinsic && actual_ok == 0)
|
||||
{
|
||||
gfc_error ("Intrinsic '%s' at %L is not allowed as an "
|
||||
"actual argument", sym->name, &e->where);
|
||||
}
|
||||
else if (sym->attr.intrinsic && actual_ok == 2)
|
||||
/* We need a special case for CHAR, which is the only intrinsic
|
||||
function allowed as actual argument in F2003 and not allowed
|
||||
in F95. */
|
||||
gfc_notify_std (GFC_STD_F2003, "Fortran 2003: CHAR intrinsic "
|
||||
"allowed as actual argument at %L", &e->where);
|
||||
|
||||
if (sym->attr.contained && !sym->attr.use_assoc
|
||||
&& sym->ns->proc_name->attr.flavor != FL_MODULE)
|
||||
{
|
||||
|
@ -1075,9 +1075,14 @@ gfc_get_extern_function_decl (gfc_symbol * sym)
|
||||
isym->resolve.f1 (&e, &argexpr);
|
||||
else
|
||||
{
|
||||
/* All specific intrinsics take one or two arguments. */
|
||||
gcc_assert (isym->formal->next->next == NULL);
|
||||
isym->resolve.f2 (&e, &argexpr, NULL);
|
||||
if (isym->formal->next->next == NULL)
|
||||
isym->resolve.f2 (&e, &argexpr, NULL);
|
||||
else
|
||||
{
|
||||
/* All specific intrinsics take less than 4 arguments. */
|
||||
gcc_assert (isym->formal->next->next->next == NULL);
|
||||
isym->resolve.f3 (&e, &argexpr, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
if (gfc_option.flag_f2c
|
||||
|
@ -1,3 +1,14 @@
|
||||
2006-10-07 Francois-Xavier Coudert <coudert@clipper.ens.fr>
|
||||
|
||||
PR fortran/16580
|
||||
PR fortran/29288
|
||||
* 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.
|
||||
|
||||
2006-10-07 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
* gcc.dg/debug/debug-1.c: Use -fno-if-conversion MIPS targets.
|
||||
|
@ -1,9 +1,13 @@
|
||||
! Program to test intrinsic functions as actual arguments
|
||||
!
|
||||
! Copied from gfortran.fortran-torture/execute/specifics.f90
|
||||
! Please keep them in sync
|
||||
!
|
||||
! It is run here with -ff2c option
|
||||
!
|
||||
! { dg-do run }
|
||||
! { dg-options "-ff2c" }
|
||||
! Program to test intrinsic functions as actual arguments
|
||||
subroutine test_c(fn, val, res)
|
||||
complex fn
|
||||
complex val, res
|
||||
@ -113,13 +117,56 @@ subroutine test_dprod(fn)
|
||||
if (abs (fn (2.0, 3.0) - 6d0) .gt. 0.00001) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_nint(fn,val,res)
|
||||
integer fn, res
|
||||
real val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_idnint(fn,val,res)
|
||||
integer fn, res
|
||||
double precision val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_idim(fn,val1,val2,res)
|
||||
integer fn, res, val1, val2
|
||||
if (res .ne. fn(val1,val2)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_iabs(fn,val,res)
|
||||
integer fn, res, val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_len(fn,val,res)
|
||||
integer fn, res
|
||||
character(len=*) val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_char(fn,val,res)
|
||||
integer val
|
||||
character(len=1) fn, res
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_index(fn,val1,val2,res)
|
||||
integer fn, res
|
||||
character(len=*) val1, val2
|
||||
if (fn(val1,val2) .ne. res) call abort
|
||||
end subroutine
|
||||
|
||||
program specifics
|
||||
intrinsic abs
|
||||
intrinsic aint
|
||||
intrinsic anint
|
||||
intrinsic acos
|
||||
intrinsic acosh
|
||||
intrinsic asin
|
||||
intrinsic asinh
|
||||
intrinsic atan
|
||||
intrinsic atanh
|
||||
intrinsic cos
|
||||
intrinsic sin
|
||||
intrinsic tan
|
||||
@ -127,16 +174,21 @@ program specifics
|
||||
intrinsic sinh
|
||||
intrinsic tanh
|
||||
intrinsic alog
|
||||
intrinsic alog10
|
||||
intrinsic exp
|
||||
intrinsic sign
|
||||
intrinsic isign
|
||||
intrinsic amod
|
||||
|
||||
intrinsic dabs
|
||||
intrinsic dint
|
||||
intrinsic dnint
|
||||
intrinsic dacos
|
||||
intrinsic dacosh
|
||||
intrinsic dasin
|
||||
intrinsic dasinh
|
||||
intrinsic datan
|
||||
intrinsic datanh
|
||||
intrinsic dcos
|
||||
intrinsic dsin
|
||||
intrinsic dtan
|
||||
@ -144,6 +196,7 @@ program specifics
|
||||
intrinsic dsinh
|
||||
intrinsic dtanh
|
||||
intrinsic dlog
|
||||
intrinsic dlog10
|
||||
intrinsic dexp
|
||||
intrinsic dsign
|
||||
intrinsic dmod
|
||||
@ -161,18 +214,41 @@ program specifics
|
||||
intrinsic cdlog
|
||||
intrinsic cdsin
|
||||
intrinsic cdsqrt
|
||||
intrinsic zcos
|
||||
intrinsic zexp
|
||||
intrinsic zlog
|
||||
intrinsic zsin
|
||||
intrinsic zsqrt
|
||||
|
||||
intrinsic cabs
|
||||
intrinsic cdabs
|
||||
intrinsic zabs
|
||||
|
||||
intrinsic dprod
|
||||
|
||||
intrinsic nint
|
||||
intrinsic idnint
|
||||
intrinsic dim
|
||||
intrinsic ddim
|
||||
intrinsic idim
|
||||
intrinsic iabs
|
||||
intrinsic mod
|
||||
intrinsic len
|
||||
intrinsic index
|
||||
intrinsic char
|
||||
|
||||
intrinsic aimag
|
||||
intrinsic dimag
|
||||
|
||||
call test_r (abs, -1.0, abs(-1.0))
|
||||
call test_r (aint, 1.7, 1.0)
|
||||
call test_r (anint, 1.7, 2.0)
|
||||
call test_r (aint, 1.7, aint(1.7))
|
||||
call test_r (anint, 1.7, anint(1.7))
|
||||
call test_r (acos, 0.5, acos(0.5))
|
||||
call test_r (acosh, 1.5, acosh(1.5))
|
||||
call test_r (asin, 0.5, asin(0.5))
|
||||
call test_r (asinh, 0.5, asinh(0.5))
|
||||
call test_r (atan, 0.5, atan(0.5))
|
||||
call test_r (atanh, 0.5, atanh(0.5))
|
||||
call test_r (cos, 1.0, cos(1.0))
|
||||
call test_r (sin, 1.0, sin(1.0))
|
||||
call test_r (tan, 1.0, tan(1.0))
|
||||
@ -180,6 +256,7 @@ program specifics
|
||||
call test_r (sinh, 1.0, sinh(1.0))
|
||||
call test_r (tanh, 1.0, tanh(1.0))
|
||||
call test_r (alog, 2.0, alog(2.0))
|
||||
call test_r (alog10, 2.0, alog10(2.0))
|
||||
call test_r (exp, 1.0, exp(1.0))
|
||||
call test_r2 (sign, 1.0, -2.0, sign(1.0, -2.0))
|
||||
call test_r2 (amod, 3.5, 2.0, amod(3.5, 2.0))
|
||||
@ -188,8 +265,11 @@ program specifics
|
||||
call test_d (dint, 1.7d0, 1d0)
|
||||
call test_d (dnint, 1.7d0, 2d0)
|
||||
call test_d (dacos, 0.5d0, dacos(0.5d0))
|
||||
call test_d (dacosh, 1.5d0, dacosh(1.5d0))
|
||||
call test_d (dasin, 0.5d0, dasin(0.5d0))
|
||||
call test_d (dasinh, 0.5d0, dasinh(0.5d0))
|
||||
call test_d (datan, 0.5d0, datan(0.5d0))
|
||||
call test_d (datanh, 0.5d0, datanh(0.5d0))
|
||||
call test_d (dcos, 1d0, dcos(1d0))
|
||||
call test_d (dsin, 1d0, dsin(1d0))
|
||||
call test_d (dtan, 1d0, dtan(1d0))
|
||||
@ -197,6 +277,7 @@ program specifics
|
||||
call test_d (dsinh, 1d0, dsinh(1d0))
|
||||
call test_d (dtanh, 1d0, dtanh(1d0))
|
||||
call test_d (dlog, 2d0, dlog(2d0))
|
||||
call test_d (dlog10, 2d0, dlog10(2d0))
|
||||
call test_d (dexp, 1d0, dexp(1d0))
|
||||
call test_d2 (dsign, 1d0, -2d0, sign(1d0, -2d0))
|
||||
call test_d2 (dmod, 3.5d0, 2d0, dmod(3.5d0, 2d0))
|
||||
@ -212,13 +293,34 @@ program specifics
|
||||
|
||||
call test_z (dconjg, (1.2d0,-4.d0), dconjg((1.2d0,-4.d0)))
|
||||
call test_z (cdcos, (1.2d0,-4.d0), cdcos((1.2d0,-4.d0)))
|
||||
call test_z (zcos, (1.2d0,-4.d0), zcos((1.2d0,-4.d0)))
|
||||
call test_z (cdexp, (1.2d0,-4.d0), cdexp((1.2d0,-4.d0)))
|
||||
call test_z (zexp, (1.2d0,-4.d0), zexp((1.2d0,-4.d0)))
|
||||
call test_z (cdlog, (1.2d0,-4.d0), cdlog((1.2d0,-4.d0)))
|
||||
call test_z (zlog, (1.2d0,-4.d0), zlog((1.2d0,-4.d0)))
|
||||
call test_z (cdsin, (1.2d0,-4.d0), cdsin((1.2d0,-4.d0)))
|
||||
call test_z (zsin, (1.2d0,-4.d0), zsin((1.2d0,-4.d0)))
|
||||
call test_z (cdsqrt, (1.2d0,-4.d0), cdsqrt((1.2d0,-4.d0)))
|
||||
call test_z (zsqrt, (1.2d0,-4.d0), zsqrt((1.2d0,-4.d0)))
|
||||
|
||||
call test_cabs (cabs, (1.2,-4.), cabs((1.2,-4.)))
|
||||
call test_cdabs (cdabs, (1.2d0,-4.d0), cdabs((1.2d0,-4.d0)))
|
||||
call test_cdabs (zabs, (1.2d0,-4.d0), zabs((1.2d0,-4.d0)))
|
||||
call test_cabs (aimag, (1.2,-4.), aimag((1.2,-4.)))
|
||||
call test_cdabs (dimag, (1.2d0,-4.d0), dimag((1.2d0,-4.d0)))
|
||||
|
||||
call test_nint (nint, -1.2, nint(-1.2))
|
||||
call test_idnint (idnint, -1.2d0, idnint(-1.2d0))
|
||||
call test_idim (isign, -42, 17, isign(-42, 17))
|
||||
call test_idim (idim, -42, 17, idim(-42,17))
|
||||
call test_idim (idim, 42, 17, idim(42,17))
|
||||
call test_r2 (dim, 1.2, -4., dim(1.2, -4.))
|
||||
call test_d2 (ddim, 1.2d0, -4.d0, ddim(1.2d0, -4.d0))
|
||||
call test_iabs (iabs, -7, iabs(-7))
|
||||
call test_idim (mod, 5, 2, mod(5,2))
|
||||
call test_len (len, "foobar", len("foobar"))
|
||||
call test_char (char, 47, char(47))
|
||||
call test_index (index, "foobarfoobar", "bar", index("foobarfoobar","bar"))
|
||||
|
||||
end program
|
||||
|
||||
|
82
gcc/testsuite/gfortran.dg/specifics_2.f90
Normal file
82
gcc/testsuite/gfortran.dg/specifics_2.f90
Normal file
@ -0,0 +1,82 @@
|
||||
! { dg-do compile }
|
||||
! This is the list of intrinsics allowed as actual arguments
|
||||
intrinsic abs,acos,acosh,aimag,aint,alog,alog10,amod,anint,asin,asinh,atan,&
|
||||
atan2,atanh,cabs,ccos,cexp,char,clog,conjg,cos,cosh,csin,csqrt,dabs,dacos,&
|
||||
dacosh,dasin,dasinh,datan,datan2,datanh,dconjg,dcos,dcosh,ddim,dexp,dim,&
|
||||
dimag,dint,dlog,dlog10,dmod,dnint,dprod,dsign,dsin,dsinh,dsqrt,dtan,dtanh,&
|
||||
exp,iabs,idim,idnint,index,isign,len,mod,nint,sign,sin,sinh,sqrt,tan,&
|
||||
tanh,zabs,zcos,zexp,zlog,zsin,zsqrt
|
||||
|
||||
call foo(abs)
|
||||
call foo(acos)
|
||||
call foo(acosh)
|
||||
call foo(aimag)
|
||||
call foo(aint)
|
||||
call foo(alog)
|
||||
call foo(alog10)
|
||||
call foo(amod)
|
||||
call foo(anint)
|
||||
call foo(asin)
|
||||
call foo(asinh)
|
||||
call foo(atan)
|
||||
call foo(atan2)
|
||||
call foo(atanh)
|
||||
call foo(cabs)
|
||||
call foo(ccos)
|
||||
call foo(cexp)
|
||||
call foo(char)
|
||||
call foo(clog)
|
||||
call foo(conjg)
|
||||
call foo(cos)
|
||||
call foo(cosh)
|
||||
call foo(csin)
|
||||
call foo(csqrt)
|
||||
call foo(dabs)
|
||||
call foo(dacos)
|
||||
call foo(dacosh)
|
||||
call foo(dasin)
|
||||
call foo(dasinh)
|
||||
call foo(datan)
|
||||
call foo(datan2)
|
||||
call foo(datanh)
|
||||
call foo(dconjg)
|
||||
call foo(dcos)
|
||||
call foo(dcosh)
|
||||
call foo(ddim)
|
||||
call foo(dexp)
|
||||
call foo(dim)
|
||||
call foo(dimag)
|
||||
call foo(dint)
|
||||
call foo(dlog)
|
||||
call foo(dlog10)
|
||||
call foo(dmod)
|
||||
call foo(dnint)
|
||||
call foo(dprod)
|
||||
call foo(dsign)
|
||||
call foo(dsin)
|
||||
call foo(dsinh)
|
||||
call foo(dsqrt)
|
||||
call foo(dtan)
|
||||
call foo(dtanh)
|
||||
call foo(exp)
|
||||
call foo(iabs)
|
||||
call foo(idim)
|
||||
call foo(idnint)
|
||||
call foo(index)
|
||||
call foo(isign)
|
||||
call foo(len)
|
||||
call foo(mod)
|
||||
call foo(nint)
|
||||
call foo(sign)
|
||||
call foo(sin)
|
||||
call foo(sinh)
|
||||
call foo(sqrt)
|
||||
call foo(tan)
|
||||
call foo(tanh)
|
||||
call foo(zabs)
|
||||
call foo(zcos)
|
||||
call foo(zexp)
|
||||
call foo(zlog)
|
||||
call foo(zsin)
|
||||
call foo(zsqrt)
|
||||
end
|
5
gcc/testsuite/gfortran.dg/specifics_3.f90
Normal file
5
gcc/testsuite/gfortran.dg/specifics_3.f90
Normal file
@ -0,0 +1,5 @@
|
||||
! { dg-do compile }
|
||||
! { dg-options "-std=f95" }
|
||||
intrinsic char
|
||||
call foo(char) ! { dg-error "Fortran 2003: CHAR intrinsic allowed as actual argument" }
|
||||
end
|
@ -1,4 +1,6 @@
|
||||
! Program to test intrinsic functions as actual arguments
|
||||
!
|
||||
! Please keep the content of this file in sync with gfortran.dg/specifics_1.f90
|
||||
subroutine test_c(fn, val, res)
|
||||
complex fn
|
||||
complex val, res
|
||||
@ -108,13 +110,56 @@ subroutine test_dprod(fn)
|
||||
if (abs (fn (2.0, 3.0) - 6d0) .gt. 0.00001) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_nint(fn,val,res)
|
||||
integer fn, res
|
||||
real val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_idnint(fn,val,res)
|
||||
integer fn, res
|
||||
double precision val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_idim(fn,val1,val2,res)
|
||||
integer fn, res, val1, val2
|
||||
if (res .ne. fn(val1,val2)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_iabs(fn,val,res)
|
||||
integer fn, res, val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_len(fn,val,res)
|
||||
integer fn, res
|
||||
character(len=*) val
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_char(fn,val,res)
|
||||
integer val
|
||||
character(len=1) fn, res
|
||||
if (res .ne. fn(val)) call abort
|
||||
end subroutine
|
||||
|
||||
subroutine test_index(fn,val1,val2,res)
|
||||
integer fn, res
|
||||
character(len=*) val1, val2
|
||||
if (fn(val1,val2) .ne. res) call abort
|
||||
end subroutine
|
||||
|
||||
program specifics
|
||||
intrinsic abs
|
||||
intrinsic aint
|
||||
intrinsic anint
|
||||
intrinsic acos
|
||||
intrinsic acosh
|
||||
intrinsic asin
|
||||
intrinsic asinh
|
||||
intrinsic atan
|
||||
intrinsic atanh
|
||||
intrinsic cos
|
||||
intrinsic sin
|
||||
intrinsic tan
|
||||
@ -122,16 +167,21 @@ program specifics
|
||||
intrinsic sinh
|
||||
intrinsic tanh
|
||||
intrinsic alog
|
||||
intrinsic alog10
|
||||
intrinsic exp
|
||||
intrinsic sign
|
||||
intrinsic isign
|
||||
intrinsic amod
|
||||
|
||||
intrinsic dabs
|
||||
intrinsic dint
|
||||
intrinsic dnint
|
||||
intrinsic dacos
|
||||
intrinsic dacosh
|
||||
intrinsic dasin
|
||||
intrinsic dasinh
|
||||
intrinsic datan
|
||||
intrinsic datanh
|
||||
intrinsic dcos
|
||||
intrinsic dsin
|
||||
intrinsic dtan
|
||||
@ -139,6 +189,7 @@ program specifics
|
||||
intrinsic dsinh
|
||||
intrinsic dtanh
|
||||
intrinsic dlog
|
||||
intrinsic dlog10
|
||||
intrinsic dexp
|
||||
intrinsic dsign
|
||||
intrinsic dmod
|
||||
@ -156,18 +207,41 @@ program specifics
|
||||
intrinsic cdlog
|
||||
intrinsic cdsin
|
||||
intrinsic cdsqrt
|
||||
intrinsic zcos
|
||||
intrinsic zexp
|
||||
intrinsic zlog
|
||||
intrinsic zsin
|
||||
intrinsic zsqrt
|
||||
|
||||
intrinsic cabs
|
||||
intrinsic cdabs
|
||||
intrinsic zabs
|
||||
|
||||
intrinsic dprod
|
||||
|
||||
intrinsic nint
|
||||
intrinsic idnint
|
||||
intrinsic dim
|
||||
intrinsic ddim
|
||||
intrinsic idim
|
||||
intrinsic iabs
|
||||
intrinsic mod
|
||||
intrinsic len
|
||||
intrinsic index
|
||||
intrinsic char
|
||||
|
||||
intrinsic aimag
|
||||
intrinsic dimag
|
||||
|
||||
call test_r (abs, -1.0, abs(-1.0))
|
||||
call test_r (aint, 1.7, 1.0)
|
||||
call test_r (anint, 1.7, 2.0)
|
||||
call test_r (aint, 1.7, aint(1.7))
|
||||
call test_r (anint, 1.7, anint(1.7))
|
||||
call test_r (acos, 0.5, acos(0.5))
|
||||
call test_r (acosh, 1.5, acosh(1.5))
|
||||
call test_r (asin, 0.5, asin(0.5))
|
||||
call test_r (asinh, 0.5, asinh(0.5))
|
||||
call test_r (atan, 0.5, atan(0.5))
|
||||
call test_r (atanh, 0.5, atanh(0.5))
|
||||
call test_r (cos, 1.0, cos(1.0))
|
||||
call test_r (sin, 1.0, sin(1.0))
|
||||
call test_r (tan, 1.0, tan(1.0))
|
||||
@ -175,6 +249,7 @@ program specifics
|
||||
call test_r (sinh, 1.0, sinh(1.0))
|
||||
call test_r (tanh, 1.0, tanh(1.0))
|
||||
call test_r (alog, 2.0, alog(2.0))
|
||||
call test_r (alog10, 2.0, alog10(2.0))
|
||||
call test_r (exp, 1.0, exp(1.0))
|
||||
call test_r2 (sign, 1.0, -2.0, sign(1.0, -2.0))
|
||||
call test_r2 (amod, 3.5, 2.0, amod(3.5, 2.0))
|
||||
@ -183,8 +258,11 @@ program specifics
|
||||
call test_d (dint, 1.7d0, 1d0)
|
||||
call test_d (dnint, 1.7d0, 2d0)
|
||||
call test_d (dacos, 0.5d0, dacos(0.5d0))
|
||||
call test_d (dacosh, 1.5d0, dacosh(1.5d0))
|
||||
call test_d (dasin, 0.5d0, dasin(0.5d0))
|
||||
call test_d (dasinh, 0.5d0, dasinh(0.5d0))
|
||||
call test_d (datan, 0.5d0, datan(0.5d0))
|
||||
call test_d (datanh, 0.5d0, datanh(0.5d0))
|
||||
call test_d (dcos, 1d0, dcos(1d0))
|
||||
call test_d (dsin, 1d0, dsin(1d0))
|
||||
call test_d (dtan, 1d0, dtan(1d0))
|
||||
@ -192,6 +270,7 @@ program specifics
|
||||
call test_d (dsinh, 1d0, dsinh(1d0))
|
||||
call test_d (dtanh, 1d0, dtanh(1d0))
|
||||
call test_d (dlog, 2d0, dlog(2d0))
|
||||
call test_d (dlog10, 2d0, dlog10(2d0))
|
||||
call test_d (dexp, 1d0, dexp(1d0))
|
||||
call test_d2 (dsign, 1d0, -2d0, sign(1d0, -2d0))
|
||||
call test_d2 (dmod, 3.5d0, 2d0, dmod(3.5d0, 2d0))
|
||||
@ -207,13 +286,34 @@ program specifics
|
||||
|
||||
call test_z (dconjg, (1.2d0,-4.d0), dconjg((1.2d0,-4.d0)))
|
||||
call test_z (cdcos, (1.2d0,-4.d0), cdcos((1.2d0,-4.d0)))
|
||||
call test_z (zcos, (1.2d0,-4.d0), zcos((1.2d0,-4.d0)))
|
||||
call test_z (cdexp, (1.2d0,-4.d0), cdexp((1.2d0,-4.d0)))
|
||||
call test_z (zexp, (1.2d0,-4.d0), zexp((1.2d0,-4.d0)))
|
||||
call test_z (cdlog, (1.2d0,-4.d0), cdlog((1.2d0,-4.d0)))
|
||||
call test_z (zlog, (1.2d0,-4.d0), zlog((1.2d0,-4.d0)))
|
||||
call test_z (cdsin, (1.2d0,-4.d0), cdsin((1.2d0,-4.d0)))
|
||||
call test_z (zsin, (1.2d0,-4.d0), zsin((1.2d0,-4.d0)))
|
||||
call test_z (cdsqrt, (1.2d0,-4.d0), cdsqrt((1.2d0,-4.d0)))
|
||||
call test_z (zsqrt, (1.2d0,-4.d0), zsqrt((1.2d0,-4.d0)))
|
||||
|
||||
call test_cabs (cabs, (1.2,-4.), cabs((1.2,-4.)))
|
||||
call test_cdabs (cdabs, (1.2d0,-4.d0), cdabs((1.2d0,-4.d0)))
|
||||
call test_cdabs (zabs, (1.2d0,-4.d0), zabs((1.2d0,-4.d0)))
|
||||
call test_cabs (aimag, (1.2,-4.), aimag((1.2,-4.)))
|
||||
call test_cdabs (dimag, (1.2d0,-4.d0), dimag((1.2d0,-4.d0)))
|
||||
|
||||
call test_nint (nint, -1.2, nint(-1.2))
|
||||
call test_idnint (idnint, -1.2d0, idnint(-1.2d0))
|
||||
call test_idim (isign, -42, 17, isign(-42, 17))
|
||||
call test_idim (idim, -42, 17, idim(-42,17))
|
||||
call test_idim (idim, 42, 17, idim(42,17))
|
||||
call test_r2 (dim, 1.2, -4., dim(1.2, -4.))
|
||||
call test_d2 (ddim, 1.2d0, -4.d0, ddim(1.2d0, -4.d0))
|
||||
call test_iabs (iabs, -7, iabs(-7))
|
||||
call test_idim (mod, 5, 2, mod(5,2))
|
||||
call test_len (len, "foobar", len("foobar"))
|
||||
call test_char (char, 47, char(47))
|
||||
call test_index (index, "foobarfoobar", "bar", index("foobarfoobar","bar"))
|
||||
|
||||
end program
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
51
libgfortran/generated/_acosh_r10.F90
Normal file
51
libgfortran/generated/_acosh_r10.F90
Normal file
@ -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
|
51
libgfortran/generated/_acosh_r16.F90
Normal file
51
libgfortran/generated/_acosh_r16.F90
Normal file
@ -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
|
51
libgfortran/generated/_acosh_r4.F90
Normal file
51
libgfortran/generated/_acosh_r4.F90
Normal file
@ -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
|
51
libgfortran/generated/_acosh_r8.F90
Normal file
51
libgfortran/generated/_acosh_r8.F90
Normal file
@ -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
|
51
libgfortran/generated/_aimag_c10.F90
Normal file
51
libgfortran/generated/_aimag_c10.F90
Normal file
@ -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
|
51
libgfortran/generated/_aimag_c16.F90
Normal file
51
libgfortran/generated/_aimag_c16.F90
Normal file
@ -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
|
51
libgfortran/generated/_aimag_c4.F90
Normal file
51
libgfortran/generated/_aimag_c4.F90
Normal file
@ -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
|
51
libgfortran/generated/_aimag_c8.F90
Normal file
51
libgfortran/generated/_aimag_c8.F90
Normal file
@ -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
|
51
libgfortran/generated/_asinh_r10.F90
Normal file
51
libgfortran/generated/_asinh_r10.F90
Normal file
@ -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
|
51
libgfortran/generated/_asinh_r16.F90
Normal file
51
libgfortran/generated/_asinh_r16.F90
Normal file
@ -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
|
51
libgfortran/generated/_asinh_r4.F90
Normal file
51
libgfortran/generated/_asinh_r4.F90
Normal file
@ -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
|
51
libgfortran/generated/_asinh_r8.F90
Normal file
51
libgfortran/generated/_asinh_r8.F90
Normal file
@ -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
|
51
libgfortran/generated/_atanh_r10.F90
Normal file
51
libgfortran/generated/_atanh_r10.F90
Normal file
@ -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
|
51
libgfortran/generated/_atanh_r16.F90
Normal file
51
libgfortran/generated/_atanh_r16.F90
Normal file
@ -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
|
51
libgfortran/generated/_atanh_r4.F90
Normal file
51
libgfortran/generated/_atanh_r4.F90
Normal file
@ -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
|
51
libgfortran/generated/_atanh_r8.F90
Normal file
51
libgfortran/generated/_atanh_r8.F90
Normal file
@ -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
|
211
libgfortran/generated/misc_specifics.F90
Normal file
211
libgfortran/generated/misc_specifics.F90
Normal file
@ -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
|
||||
|
@ -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)
|
||||
|
64
libgfortran/m4/misc_specifics.m4
Normal file
64
libgfortran/m4/misc_specifics.m4
Normal file
@ -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
|
||||
')')
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user