#include #include #include #include "dump-descriptors.h" extern void ctest (int n); extern void ftest (CFI_cdesc_t *a, int n); #define BUFSIZE 512 static char adata[BUFSIZE]; void ctest (int n) { CFI_CDESC_T(0) adesc; CFI_cdesc_t *a = (CFI_cdesc_t *) &adesc; /* Use a fixed-size static buffer instead of allocating one dynamically. */ if (n > BUFSIZE) abort (); /* Fill in adesc. */ check_CFI_status ("CFI_establish", CFI_establish (a, adata, CFI_attribute_other, CFI_type_char, n, 0, NULL)); /* Sanity checking to make sure the descriptor has been initialized properly. */ dump_CFI_cdesc_t (a); if (a->version != CFI_VERSION) abort (); if (a->rank != 0) abort (); if (a->attribute != CFI_attribute_other) abort (); if (a->elem_len != n) abort (); /* Call back into Fortran. */ ftest (a, n); }