Hi,

I am currently trying to get the argument lists for calling
intrinsic functions right, and I have run across something in a
tree I do not understand.

The declaration is:

<function_decl 0x7feefcdf8700 _gfortran_mmaxloc2_4_s1
    type <function_type 0x7feefce495e8
        type <integer_type 0x7feefcfec5e8 integer(kind=4) public SI
            size <integer_cst 0x7feefcfd7df8 constant 32>
            unit-size <integer_cst 0x7feefcfd7e10 constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7feefcfec5e8 precision:32 min <integer_cst 0x7feefcfd7db0 -2147483648> max <integer_cst 0x7feefcfd7dc8 2147483647>
            pointer_to_this <pointer_type 0x7feefcff39d8>>
        QI
        size <integer_cst 0x7feefcfd7ca8 constant 8>
        unit-size <integer_cst 0x7feefcfd7cc0 constant 1>
align:8 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type 0x7feefce49540
        attributes <tree_list 0x7feefce4cd20
            purpose <identifier_node 0x7feefd048a00 fn spec>
            value <tree_list 0x7feefce4ccf8
                value <string_cst 0x7feefce47f00 constant ". r r r ">>>
arg-types <tree_list 0x7feefce4cc30 value <reference_type 0x7feefce491f8> chain <tree_list 0x7feefce4cc08 value <pointer_type 0x7feefce493f0> chain <tree_list 0x7feefce4cbe0 value <boolean_type 0x7feefcff9000 logical(kind=4)> chain <tree_list 0x7feefce4cbb8 value <integer_type 0x7feefcfec738 integer(kind=8)> chain <tree_list 0x7feefcfebb18 value <void_type 0x7feefcfecf18 void>>>>>>

and the library function has

mmaxloc2_4_s1 (gfc_array_s1 * const restrict array,
                                 gfc_array_l1 * const restrict mask, 
GFC_LOGICAL_4 back,
                                 gfc_charlen_type len)

As far as I can tell, the decl looks correct, but I am a bit
confused by the final

chain <tree_list 0x7feefcfebb18 value <void_type 0x7feefcfecf18 void>>>>>>

there.  Should that be there?  What does it mean?

Best regards

        Thomas

Reply via email to