classes.struct arrays assocs byte-arrays combinators fry
generalizations io.encodings.ascii kernel macros
macros.expander namespaces sequences shuffle tools.test vocabs.parser ;
+FROM: alien.syntax => pointer: ;
QUALIFIED-WITH: alien.c-types c
IN: alien.fortran.tests
! fortran-arg-type>c-type
- [ c:void* { } ]
+ [ pointer: c:int { } ]
[ "integer" fortran-arg-type>c-type ] unit-test
- [ c:void* { } ]
+ [ pointer: { c:int 3 } { } ]
[ "integer(3)" fortran-arg-type>c-type ] unit-test
- [ c:void* { } ]
+ [ pointer: { c:int 0 } { } ]
[ "integer(*)" fortran-arg-type>c-type ] unit-test
- [ c:void* { } ]
+ [ pointer: fortran_test_record { } ]
[
[
"alien.fortran.tests" use-vocab
] with-manifest
] unit-test
- [ c:char* { } ]
+ [ pointer: c:char { } ]
[ "character" fortran-arg-type>c-type ] unit-test
- [ c:char* { } ]
+ [ pointer: c:char { } ]
[ "character(1)" fortran-arg-type>c-type ] unit-test
- [ c:char* { long } ]
+ [ pointer: { c:char 17 } { long } ]
[ "character(17)" fortran-arg-type>c-type ] unit-test
! fortran-ret-type>c-type
[ c:char { } ]
[ "character(1)" fortran-ret-type>c-type ] unit-test
- [ c:void { c:char* long } ]
+ [ c:void { pointer: { c:char 17 } long } ]
[ "character(17)" fortran-ret-type>c-type ] unit-test
[ c:int { } ]
[ c:float { } ]
[ "real" fortran-ret-type>c-type ] unit-test
- [ c:void { c:void* } ]
+ [ c:void { pointer: { c:float 0 } } ]
[ "real(*)" fortran-ret-type>c-type ] unit-test
[ c:double { } ]
[ "double-precision" fortran-ret-type>c-type ] unit-test
- [ c:void { c:void* } ]
+ [ c:void { pointer: complex-float } ]
[ "complex" fortran-ret-type>c-type ] unit-test
- [ c:void { c:void* } ]
+ [ c:void { pointer: complex-double } ]
[ "double-complex" fortran-ret-type>c-type ] unit-test
- [ c:void { c:void* } ]
+ [ c:void { pointer: { c:int 0 } } ]
[ "integer(*)" fortran-ret-type>c-type ] unit-test
- [ c:void { c:void* } ]
+ [ c:void { pointer: fortran_test_record } ]
[
[
"alien.fortran.tests" use-vocab
! fortran-sig>c-sig
- [ c:float { c:void* c:char* c:void* c:void* c:long } ]
+ [ c:float { pointer: c:int pointer: { c:char 17 } pointer: c:float pointer: c:double c:long } ]
[ "real" { "integer" "character*17" "real" "real*8" } fortran-sig>c-sig ]
unit-test
- [ c:char { c:char* c:char* c:void* c:long } ]
+ [ c:char { pointer: { c:char 17 } pointer: c:char pointer: c:int c:long } ]
[ "character(1)" { "character*17" "character" "integer" } fortran-sig>c-sig ]
unit-test
- [ c:void { c:char* c:long c:char* c:char* c:void* c:long } ]
+ [ c:void { pointer: { c:char 18 } c:long pointer: { c:char 17 } pointer: c:char pointer: c:int c:long } ]
[ "character*18" { "character*17" "character" "integer" } fortran-sig>c-sig ]
unit-test
- [ c:void { c:void* c:char* c:char* c:void* c:long } ]
+ [ c:void { pointer: complex-float pointer: { c:char 17 } pointer: c:char pointer: c:int c:long } ]
[ "complex" { "character*17" "character" "integer" } fortran-sig>c-sig ]
unit-test
! [fortran-invoke]
[
c:void "funpack" "funtimes_"
- { c:char* c:void* c:void* c:void* c:void* c:long }
+ { pointer: { c:char 12 } pointer: c:longlong pointer: c:float pointer: complex-float pointer: c:short c:long }
alien-invoke
] 6 nkeep
! [fortran-results>]
[ { [ drop ] } spread ]
} 1 ncleave
! [fortran-invoke]
- [ c:float "funpack" "fun_times_" { void* } alien-invoke ]
+ [ c:float "funpack" "fun_times_" { pointer: { c:float 0 } } alien-invoke ]
1 nkeep
! [fortran-results>]
shuffle( reta aa -- reta aa )
! [fortran-invoke]
[
c:void "funpack" "fun_times_"
- { void* void* }
+ { pointer: complex-float pointer: { c:float 0 } }
alien-invoke
] 2 nkeep
! [fortran-results>]
! [fortran-invoke]
[
c:void "funpack" "fun_times_"
- { c:char* long }
+ { pointer: { c:char 20 } long }
alien-invoke
] 2 nkeep
! [fortran-results>]
! [fortran-invoke]
[
c:void "funpack" "fun_times_"
- { c:char* long c:char* c:void* c:char* c:long c:long }
+ { pointer: { c:char 10 } long pointer: { c:char 20 } pointer: c:float pointer: { c:char 30 } c:long c:long }
alien-invoke
] 7 nkeep
! [fortran-results>]
[ { c:char 1 } ]
[ "character(1)" fortran-type>c-type ] unit-test
- [ c:char* { c:long } ]
+ [ pointer: c:char { c:long } ]
[ "character" fortran-arg-type>c-type ] unit-test
- [ c:void { c:char* c:long } ]
+ [ c:void { pointer: c:char c:long } ]
[ "character" fortran-ret-type>c-type ] unit-test
[ c:double { } ]
[ "real" fortran-ret-type>c-type ] unit-test
- [ c:void { void* } ]
+ [ c:void { pointer: { c:float 0 } } ]
[ "real(*)" fortran-ret-type>c-type ] unit-test
[ "fun_" ] [ "FUN" fortran-name>symbol-name ] unit-test
[ c:float { } ]
[ "real" fortran-ret-type>c-type ] unit-test
- [ c:void { void* } ]
+ [ c:void { pointer: { c:float 0 } } ]
[ "real(*)" fortran-ret-type>c-type ] unit-test
[ complex-float { } ]
[ { char 1 } ]
[ "character(1)" fortran-type>c-type ] unit-test
- [ c:char* { c:long } ]
+ [ pointer: c:char { c:long } ]
[ "character" fortran-arg-type>c-type ] unit-test
- [ c:void { c:char* c:long } ]
+ [ c:void { pointer: c:char c:long } ]
[ "character" fortran-ret-type>c-type ] unit-test
[ complex-float { } ]
[ complex-double { } ]
[ "double-complex" fortran-ret-type>c-type ] unit-test
- [ c:void { c:void* } ]
+ [ c:void { pointer: { complex-double 3 } } ]
[ "double-complex(3)" fortran-ret-type>c-type ] unit-test
] with-variable