Commit 4f613946 by Tobias Schlüter Committed by Paul Brook

gfortran.h: Add comments.

2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	* gfortran.h: Add comments.
	* parse.c (parse_contained): Fix comment typo.
	* resolve.c (was_declared): Ditto.
	* symbol.c: Ditto.

From-SVN: r85950
parent b13de673
2004-08-13 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
* gfortran.h: Add comments.
* parse.c (parse_contained): Fix comment typo.
* resolve.c (was_declared): Ditto.
* symbol.c: Ditto.
2004-08-11 Paul Brook <paul@codeourcery.com> 2004-08-11 Paul Brook <paul@codeourcery.com>
PR fortran/16917 PR fortran/16917
......
...@@ -528,7 +528,9 @@ gfc_component; ...@@ -528,7 +528,9 @@ gfc_component;
/* Formal argument lists are lists of symbols. */ /* Formal argument lists are lists of symbols. */
typedef struct gfc_formal_arglist typedef struct gfc_formal_arglist
{ {
/* Symbol representing the argument at this position in the arglist. */
struct gfc_symbol *sym; struct gfc_symbol *sym;
/* Points to the next formal argument. */
struct gfc_formal_arglist *next; struct gfc_formal_arglist *next;
} }
gfc_formal_arglist; gfc_formal_arglist;
...@@ -712,18 +714,39 @@ gfc_symtree; ...@@ -712,18 +714,39 @@ gfc_symtree;
typedef struct gfc_namespace typedef struct gfc_namespace
{ {
/* Roots of the red/black symbol trees */ /* Tree containing all the symbols in this namespace. */
gfc_symtree *sym_root, *uop_root, *common_root; gfc_symtree *sym_root;
/* Tree containing all the user-defined operators in the namespace. */
gfc_symtree *uop_root;
/* Tree containing all the common blocks. */
gfc_symtree *common_root;
/* If set_flag[letter] is set, an implicit type has been set for letter. */
int set_flag[GFC_LETTERS]; int set_flag[GFC_LETTERS];
gfc_typespec default_type[GFC_LETTERS]; /* IMPLICIT typespecs */ /* Keeps track of the implicit types associated with the letters. */
gfc_typespec default_type[GFC_LETTERS];
/* If this is a namespace of a procedure, this points to the procedure. */
struct gfc_symbol *proc_name; struct gfc_symbol *proc_name;
gfc_interface *operator[GFC_INTRINSIC_OPS]; /* If this is the namespace of a unit which contains executable
struct gfc_namespace *parent, *contained, *sibling; code, this points to it. */
struct gfc_code *code; struct gfc_code *code;
gfc_common_head blank_common;
/* Points to the equivalences set up in this namespace. */
struct gfc_equiv *equiv; struct gfc_equiv *equiv;
gfc_interface *operator[GFC_INTRINSIC_OPS];
/* Points to the parent namespace, i.e. the namespace of a module or
procedure in which the procedure belonging to this namespace is
contained. The parent namespace points to this namespace either
directly via CONTAINED, or indirectly via the chain built by
SIBLING. */
struct gfc_namespace *parent;
/* CONTAINED points to the first contained namespace. Sibling
namespaces are chained via SIBLING. */
struct gfc_namespace *contained, *sibling;
gfc_common_head blank_common;
gfc_access default_access, operator_access[GFC_INTRINSIC_OPS]; gfc_access default_access, operator_access[GFC_INTRINSIC_OPS];
gfc_st_label *st_labels; gfc_st_label *st_labels;
...@@ -850,6 +873,13 @@ typedef struct gfc_intrinsic_arg ...@@ -850,6 +873,13 @@ typedef struct gfc_intrinsic_arg
gfc_intrinsic_arg; gfc_intrinsic_arg;
/* Specifies the various kinds of check functions used to verify the
argument lists of intrinsic functions. fX with X an integer refer
to check functions of intrinsics with X arguments. f1m is used for
the MAX and MIN intrinsics which can have an arbitrary number of
arguments, f3ml is used for the MINLOC and MAXLOC intrinsics as
these have special semantics. */
typedef union typedef union
{ {
try (*f1)(struct gfc_expr *); try (*f1)(struct gfc_expr *);
...@@ -864,6 +894,9 @@ typedef union ...@@ -864,6 +894,9 @@ typedef union
} }
gfc_check_f; gfc_check_f;
/* Like gfc_check_f, these specify the type of the simplification
function associated with an intrinsic. The fX are just like in
gfc_check_f. cc is used for type conversion functions. */
typedef union typedef union
{ {
...@@ -880,6 +913,10 @@ typedef union ...@@ -880,6 +913,10 @@ typedef union
} }
gfc_simplify_f; gfc_simplify_f;
/* Again like gfc_check_f, these specify the type of the resolution
function associated with an intrinsic. The fX are juse like in
gfc_check_f. f1m is used for MIN and MAX, s1 is used for abort().
*/
typedef union typedef union
{ {
......
...@@ -2201,7 +2201,7 @@ parse_contained (int module) ...@@ -2201,7 +2201,7 @@ parse_contained (int module)
gfc_new_block); gfc_new_block);
/* For internal procedures, create/update the symbol in the /* For internal procedures, create/update the symbol in the
* parent namespace */ parent namespace. */
if (!module) if (!module)
{ {
......
...@@ -371,7 +371,7 @@ resolve_structure_cons (gfc_expr * expr) ...@@ -371,7 +371,7 @@ resolve_structure_cons (gfc_expr * expr)
/****************** Expression name resolution ******************/ /****************** Expression name resolution ******************/
/* Returns 0 if a symbol was not declared with a type or /* Returns 0 if a symbol was not declared with a type or
or attribute declaration statement, nonzero otherwise. */ attribute declaration statement, nonzero otherwise. */
static int static int
was_declared (gfc_symbol * sym) was_declared (gfc_symbol * sym)
......
...@@ -1560,7 +1560,7 @@ done: ...@@ -1560,7 +1560,7 @@ done:
symbols are kept in a singly linked list so that we can commit or symbols are kept in a singly linked list so that we can commit or
undo the changes at a later time. undo the changes at a later time.
A symtree may point to a symbol node outside of it's namespace. In A symtree may point to a symbol node outside of its namespace. In
this case, that symbol has been used as a host associated variable this case, that symbol has been used as a host associated variable
at some previous time. */ at some previous time. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment