diff options
Diffstat (limited to 'gcc/fortran/libgfortran.h')
-rw-r--r-- | gcc/fortran/libgfortran.h | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/gcc/fortran/libgfortran.h b/gcc/fortran/libgfortran.h index e9132506367..eb6b7860d42 100644 --- a/gcc/fortran/libgfortran.h +++ b/gcc/fortran/libgfortran.h @@ -148,22 +148,39 @@ typedef enum #define GFC_STDOUT_UNIT_NUMBER 6 #define GFC_STDERR_UNIT_NUMBER 0 +#define GFC_MAX_DIMENSIONS 15 -/* FIXME: Increase to 15 for Fortran 2008. Also needs changes to - GFC_DTYPE_RANK_MASK. See PR 36825. */ -#define GFC_MAX_DIMENSIONS 7 +#define GFC_TYPE_MASK 0xFF +#define GFC_TYPE_KIND_SHIFT 8 + +/* Array-descriptor attributes, see ISO_Fortran_binding.h. */ +#define GFC_ATTRIBUTE_POINTER 1 +#define GFC_ATTRIBUTE_ALLOCATABLE 2 +#define GFC_ATTRIBUTE_OTHER 3 + +/* Array-descriptor basic types, see ISO_Fortran_binding.h. */ +#define GFC_TYPE_INTEGER 1 +#define GFC_TYPE_LOGICAL 2 +#define GFC_TYPE_REAL 3 +#define GFC_TYPE_COMPLEX 4 +#define GFC_TYPE_CHARACTER 5 +#define GFC_TYPE_STRUCT 6 +#define GFC_TYPE_CPTR 7 +#define GFC_TYPE_CFUNPTR 8 +#define GFC_TYPE_OTHER -1 + +/* Array-descriptor attributes, see ISO_Fortran_binding.h. */ +#define GFC_ATTRIBUTE_POINTER 1 +#define GFC_ATTRIBUTE_ALLOCATABLE 2 +#define GFC_ATTRIBUTE_OTHER 3 -#define GFC_DTYPE_RANK_MASK 0x07 -#define GFC_DTYPE_TYPE_SHIFT 3 -#define GFC_DTYPE_TYPE_MASK 0x38 -#define GFC_DTYPE_SIZE_SHIFT 6 /* Basic types. BT_VOID is used by ISO C Binding so funcs like c_f_pointer can take any arg with the pointer attribute as a param. These are also used in the run-time library for IO. */ typedef enum { BT_UNKNOWN = 0, BT_INTEGER, BT_LOGICAL, BT_REAL, BT_COMPLEX, - BT_DERIVED, BT_CHARACTER, BT_CLASS, BT_PROCEDURE, BT_HOLLERITH, BT_VOID, + BT_CHARACTER, BT_DERIVED, BT_CLASS, BT_PROCEDURE, BT_HOLLERITH, BT_VOID, BT_ASSUMED, BT_UNION } bt; |