File: ISO_Fortran_binding_17.c

package info (click to toggle)
gcc-arm-none-eabi 15%3A14.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,099,328 kB
  • sloc: cpp: 3,627,108; ansic: 2,571,498; ada: 834,230; f90: 235,082; makefile: 79,231; asm: 74,984; xml: 51,692; exp: 39,736; sh: 33,298; objc: 15,629; python: 15,069; fortran: 14,429; pascal: 7,003; awk: 5,070; perl: 3,106; ml: 285; lisp: 253; lex: 204; haskell: 135
file content (25 lines) | stat: -rw-r--r-- 657 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* PR fortran/92470  - to be used with ISO_Fortran_binding_17.f90 */

#include <stdio.h>
#include <assert.h>
#include <ISO_Fortran_binding.h>

void Csub(const CFI_cdesc_t *, size_t, CFI_index_t invalid);

void Csub(const CFI_cdesc_t * dv, size_t locd, CFI_index_t invalid) {

   CFI_index_t lb[1];
   lb[0] = dv->dim[0].lower_bound;
   size_t ld = (size_t)CFI_address(dv, lb);

   if (ld != locd)
     printf ("In C function: CFI_address of dv = %I64x\n", ld);
   assert( ld == locd );

   lb[0] = invalid;
   /* Shall return NULL and produce stderr diagnostic with -fcheck=array.  */
   ld = (size_t)CFI_address(dv, lb);
   assert (ld == 0);

   return;
}