aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/intrinsic.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-01-04 22:51:34 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2013-01-04 22:51:34 +0100
commit0881224eee2aba544af6ff30601d69c1995200ec (patch)
treed5979c9b555dd393249623f63e19dec89246793a /gcc/fortran/intrinsic.c
parent94241120154b0a20b40764c56d0d26f3538927ca (diff)
downloadgcc-0881224eee2aba544af6ff30601d69c1995200ec.zip
gcc-0881224eee2aba544af6ff30601d69c1995200ec.tar.gz
gcc-0881224eee2aba544af6ff30601d69c1995200ec.tar.bz2
intrinsic.c (add_functions): New internal intrinsic function GFC_PREFIX ("stride").
2013-01-04 Tobias Burnus <burnus@net-b.de> * intrinsic.c (add_functions): New internal intrinsic function GFC_PREFIX ("stride"). * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE. * intrinsic.h (gfc_resolve_stride): New prototypes. * iresolve.c (gfc_resolve_stride): New function. * trans-intrinsic.c (conv_intrinsic_stride): New static function. (gfc_conv_intrinsic_function): Use it. From-SVN: r194918
Diffstat (limited to 'gcc/fortran/intrinsic.c')
-rw-r--r--gcc/fortran/intrinsic.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c
index d26f8b0..5f1b8e7 100644
--- a/gcc/fortran/intrinsic.c
+++ b/gcc/fortran/intrinsic.c
@@ -2640,6 +2640,14 @@ add_functions (void)
make_generic ("size", GFC_ISYM_SIZE, GFC_STD_F95);
+ /* Obtain the stride for a given dimensions; to be used only internally.
+ "make_from_module" makes inaccessible for external users. */
+ add_sym_2 (GFC_PREFIX ("stride"), GFC_ISYM_STRIDE, CLASS_INQUIRY, ACTUAL_NO,
+ BT_INTEGER, gfc_index_integer_kind, GFC_STD_GNU,
+ NULL, NULL, gfc_resolve_stride,
+ ar, BT_REAL, dr, REQUIRED, dm, BT_INTEGER, ii, OPTIONAL);
+ make_from_module();
+
add_sym_1 ("sizeof", GFC_ISYM_SIZEOF, CLASS_IMPURE, ACTUAL_NO, BT_INTEGER, ii,
GFC_STD_GNU, gfc_check_sizeof, NULL, NULL,
x, BT_UNKNOWN, 0, REQUIRED);