@@ -43,6 +43,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
4343#define unlikely (x ) __builtin_expect(!!(x), 0)
4444#endif
4545
46+ #if __GNUC__ >= 7
47+ #define GCC_GE_7 1
48+ #endif
49+
4650#ifdef PREFIX_NAME
4751#define PREFIX3 (X ,Y ) X ## Y
4852#define PREFIX2 (X ,Y ) PREFIX3(X,Y)
@@ -101,6 +105,7 @@ typedef struct caf_vector_t {
101105caf_vector_t ;
102106
103107
108+ #ifdef GCC_GE_7
104109/* Keep in sync with gcc/libgfortran/caf/libcaf.h. */
105110typedef enum caf_ref_type_t {
106111 /* Reference a component of a derived type, either regular one or an
@@ -179,6 +184,7 @@ typedef struct caf_reference_t {
179184 } a ;
180185 } u ;
181186} caf_reference_t ;
187+ #endif
182188
183189
184190/* Common auxiliary functions: caf_auxiliary.c. */
@@ -194,8 +200,13 @@ void PREFIX (finalize) (void);
194200int PREFIX (this_image ) (int );
195201int PREFIX (num_images ) (int , int );
196202
203+ #ifdef GCC_GE_7
197204void PREFIX (register) (size_t , caf_register_t , caf_token_t * ,
198205 gfc_descriptor_t * , int * , char * , int );
206+ #else
207+ void * PREFIX (register) (size_t , caf_register_t , caf_token_t * ,
208+ int * , char * , int );
209+ #endif
199210void PREFIX (deregister ) (caf_token_t * , int * , char * , int );
200211
201212void PREFIX (caf_get ) (caf_token_t , size_t , int , gfc_descriptor_t * ,
@@ -207,6 +218,7 @@ void PREFIX (caf_sendget) (caf_token_t, size_t, int, gfc_descriptor_t *,
207218 caf_vector_t * , caf_token_t , size_t , int ,
208219 gfc_descriptor_t * , caf_vector_t * , int , int );
209220
221+ #ifdef GCC_GE_7
210222void PREFIX (get_by_ref ) (caf_token_t , int ,
211223 gfc_descriptor_t * dst , caf_reference_t * refs ,
212224 int dst_kind , int src_kind , bool may_require_tmp ,
@@ -219,6 +231,7 @@ void PREFIX(sendget_by_ref) (caf_token_t dst_token, int dst_image_index,
219231 caf_reference_t * dst_refs , caf_token_t src_token , int src_image_index ,
220232 caf_reference_t * src_refs , int dst_kind , int src_kind ,
221233 bool may_require_tmp , int * dst_stat , int * src_stat );
234+ #endif
222235
223236void PREFIX (co_max ) (gfc_descriptor_t * , int , int * , char * , int , int );
224237void PREFIX (co_min ) (gfc_descriptor_t * , int , int * , char * , int , int );
0 commit comments