@@ -30,6 +30,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
30
30
31
31
#include <stdint.h> /* For int32_t. */
32
32
33
+ #if __GNUC__ >= 8
34
+ #define GCC_GE_8 1
35
+ #endif
36
+
37
+ #if __GNUC__ >= 7
38
+ #define GCC_GE_7 1
39
+ #endif
40
+
33
41
/* GNU Fortran's array descriptor. Keep in sync with libgfortran.h. To be
34
42
replaced by TS29113's ISO_Fortran_binding.h with CFI_cdesc_t. */
35
43
@@ -79,9 +87,10 @@ typedef struct gfc_descriptor_t {
79
87
#define GFC_DTYPE_TYPE_MASK 0x70
80
88
#define GFC_DTYPE_SIZE_SHIFT 7
81
89
82
- #define GFC_DESCRIPTOR_RANK (desc ) ((desc)->dtype.rank)
83
- #define GFC_DESCRIPTOR_TYPE (desc ) (((desc)->dtype.type)
84
- #define GFC_DESCRIPTOR_SIZE (desc ) ((desc)->dtype.elem_len)
90
+ #define GFC_DESCRIPTOR_RANK (desc ) (desc)->dtype.rank
91
+ #define GFC_DESCRIPTOR_TYPE (desc ) (desc)->dtype.type
92
+ #define GFC_DESCRIPTOR_SIZE (desc ) (desc)->dtype.elem_len
93
+ #define GFC_DTYPE_TYPE_SIZE (desc ) (desc)->dtype.elem_len
85
94
86
95
#else
87
96
@@ -95,15 +104,14 @@ typedef struct gfc_descriptor_t {
95
104
#define GFC_DESCRIPTOR_TYPE (desc ) (((desc)->dtype & GFC_DTYPE_TYPE_MASK) \
96
105
>> GFC_DTYPE_TYPE_SHIFT)
97
106
#define GFC_DESCRIPTOR_SIZE (desc ) ((desc)->dtype >> GFC_DTYPE_SIZE_SHIFT)
107
+ #define GFC_DTYPE_TYPE_SIZE (desc ) ((desc)->dtype & GFC_DTYPE_TYPE_SIZE_MASK)
98
108
99
109
#endif
100
110
101
111
#define GFC_DTYPE_SIZE_MASK \
102
112
((~((ptrdiff_t) 0) >> GFC_DTYPE_SIZE_SHIFT) << GFC_DTYPE_SIZE_SHIFT)
103
113
#define GFC_DTYPE_TYPE_SIZE_MASK (GFC_DTYPE_SIZE_MASK | GFC_DTYPE_TYPE_MASK)
104
114
105
- #define GFC_DTYPE_TYPE_SIZE (desc ) ((desc)->dtype & GFC_DTYPE_TYPE_SIZE_MASK)
106
-
107
115
#define GFC_DTYPE_INTEGER_1 ((BT_INTEGER << GFC_DTYPE_TYPE_SHIFT) \
108
116
| (sizeof(int8_t) << GFC_DTYPE_SIZE_SHIFT))
109
117
#define GFC_DTYPE_INTEGER_2 ((BT_INTEGER << GFC_DTYPE_TYPE_SHIFT) \
0 commit comments