Line 3793... |
Line 3793... |
|
|
/* Make new formal arg. */
|
/* Make new formal arg. */
|
formal_arg = gfc_get_formal_arglist ();
|
formal_arg = gfc_get_formal_arglist ();
|
/* Add arg to list of formal args (the CPTR arg). */
|
/* Add arg to list of formal args (the CPTR arg). */
|
add_formal_arg (head, tail, formal_arg, param_sym);
|
add_formal_arg (head, tail, formal_arg, param_sym);
|
|
|
|
/* Validate changes. */
|
|
gfc_commit_symbol (param_sym);
|
}
|
}
|
|
|
|
|
/* Generates a symbol representing the FPTR argument to an
|
/* Generates a symbol representing the FPTR argument to an
|
iso_c_binding procedure. Also, create a gfc_formal_arglist for the
|
iso_c_binding procedure. Also, create a gfc_formal_arglist for the
|
Line 3838... |
Line 3841... |
|
|
/* Make the arg. */
|
/* Make the arg. */
|
formal_arg = gfc_get_formal_arglist ();
|
formal_arg = gfc_get_formal_arglist ();
|
/* Add arg to list of formal args. */
|
/* Add arg to list of formal args. */
|
add_formal_arg (head, tail, formal_arg, param_sym);
|
add_formal_arg (head, tail, formal_arg, param_sym);
|
|
|
|
/* Validate changes. */
|
|
gfc_commit_symbol (param_sym);
|
}
|
}
|
|
|
|
|
/* Generates a symbol representing the optional SHAPE argument for the
|
/* Generates a symbol representing the optional SHAPE argument for the
|
iso_c_binding c_f_pointer() procedure. Also, create a
|
iso_c_binding c_f_pointer() procedure. Also, create a
|
Line 3909... |
Line 3915... |
|
|
/* Make the arg. */
|
/* Make the arg. */
|
formal_arg = gfc_get_formal_arglist ();
|
formal_arg = gfc_get_formal_arglist ();
|
/* Add arg to list of formal args. */
|
/* Add arg to list of formal args. */
|
add_formal_arg (head, tail, formal_arg, param_sym);
|
add_formal_arg (head, tail, formal_arg, param_sym);
|
|
|
|
/* Validate changes. */
|
|
gfc_commit_symbol (param_sym);
|
}
|
}
|
|
|
|
|
/* Add a procedure interface to the given symbol (i.e., store a
|
/* Add a procedure interface to the given symbol (i.e., store a
|
reference to the list of formal arguments). */
|
reference to the list of formal arguments). */
|
Line 3971... |
Line 3980... |
|
|
formal_prev = formal_arg;
|
formal_prev = formal_arg;
|
|
|
/* Add arg to list of formal args. */
|
/* Add arg to list of formal args. */
|
add_formal_arg (&head, &tail, formal_arg, formal_arg->sym);
|
add_formal_arg (&head, &tail, formal_arg, formal_arg->sym);
|
|
|
|
/* Validate changes. */
|
|
gfc_commit_symbol (formal_arg->sym);
|
}
|
}
|
|
|
/* Add the interface to the symbol. */
|
/* Add the interface to the symbol. */
|
add_proc_interface (dest, IFSRC_DECL, head);
|
add_proc_interface (dest, IFSRC_DECL, head);
|
|
|
Line 4028... |
Line 4040... |
|
|
formal_prev = formal_arg;
|
formal_prev = formal_arg;
|
|
|
/* Add arg to list of formal args. */
|
/* Add arg to list of formal args. */
|
add_formal_arg (&head, &tail, formal_arg, formal_arg->sym);
|
add_formal_arg (&head, &tail, formal_arg, formal_arg->sym);
|
|
|
|
/* Validate changes. */
|
|
gfc_commit_symbol (formal_arg->sym);
|
}
|
}
|
|
|
/* Add the interface to the symbol. */
|
/* Add the interface to the symbol. */
|
add_proc_interface (dest, IFSRC_DECL, head);
|
add_proc_interface (dest, IFSRC_DECL, head);
|
|
|
Line 4081... |
Line 4096... |
|
|
formal_prev = formal_arg;
|
formal_prev = formal_arg;
|
|
|
/* Add arg to list of formal args. */
|
/* Add arg to list of formal args. */
|
add_formal_arg (&head, &tail, formal_arg, formal_arg->sym);
|
add_formal_arg (&head, &tail, formal_arg, formal_arg->sym);
|
|
|
|
/* Validate changes. */
|
|
gfc_commit_symbol (formal_arg->sym);
|
}
|
}
|
|
|
/* Add the interface to the symbol. */
|
/* Add the interface to the symbol. */
|
dest->formal = head;
|
dest->formal = head;
|
dest->attr.if_source = IFSRC_DECL;
|
dest->attr.if_source = IFSRC_DECL;
|
Line 4463... |
Line 4481... |
break;
|
break;
|
|
|
default:
|
default:
|
gcc_unreachable ();
|
gcc_unreachable ();
|
}
|
}
|
|
gfc_commit_symbol (tmp_sym);
|
}
|
}
|
|
|
|
|
/* Creates a new symbol based off of an old iso_c symbol, with a new
|
/* Creates a new symbol based off of an old iso_c symbol, with a new
|
binding label. This function can be used to create a new,
|
binding label. This function can be used to create a new,
|
Line 4835... |
Line 4854... |
{
|
{
|
c->ts.type = BT_DERIVED;
|
c->ts.type = BT_DERIVED;
|
c->ts.u.derived = vtype;
|
c->ts.u.derived = vtype;
|
c->initializer->expr_type = EXPR_NULL;
|
c->initializer->expr_type = EXPR_NULL;
|
}
|
}
|
|
gfc_commit_symbol (vtype);
|
}
|
}
|
vtab->ts.u.derived = vtype;
|
vtab->ts.u.derived = vtype;
|
|
|
vtab->value = gfc_default_initializer (&vtab->ts);
|
vtab->value = gfc_default_initializer (&vtab->ts);
|
|
gfc_commit_symbol (vtab);
|
}
|
}
|
}
|
}
|
|
|
return vtab;
|
return vtab;
|
}
|
}
|