GFC_ISYM_ALL,
GFC_ISYM_ALLOCATED,
GFC_ISYM_ANINT,
+ GFC_ISYM_AND,
GFC_ISYM_ANY,
GFC_ISYM_ASIN,
GFC_ISYM_ASINH,
GFC_ISYM_CHDIR,
GFC_ISYM_CMPLX,
GFC_ISYM_COMMAND_ARGUMENT_COUNT,
+ GFC_ISYM_COMPLEX,
GFC_ISYM_CONJG,
GFC_ISYM_COS,
GFC_ISYM_COSH,
GFC_ISYM_EXP,
GFC_ISYM_EXPONENT,
GFC_ISYM_FDATE,
+ GFC_ISYM_FGET,
+ GFC_ISYM_FGETC,
GFC_ISYM_FLOOR,
GFC_ISYM_FNUM,
+ GFC_ISYM_FPUT,
+ GFC_ISYM_FPUTC,
GFC_ISYM_FRACTION,
GFC_ISYM_FSTAT,
+ GFC_ISYM_FTELL,
GFC_ISYM_GETCWD,
GFC_ISYM_GETGID,
GFC_ISYM_GETPID,
GFC_ISYM_NEAREST,
GFC_ISYM_NINT,
GFC_ISYM_NOT,
+ GFC_ISYM_OR,
GFC_ISYM_PACK,
GFC_ISYM_PRESENT,
GFC_ISYM_PRODUCT,
GFC_ISYM_UNLINK,
GFC_ISYM_UNPACK,
GFC_ISYM_VERIFY,
+ GFC_ISYM_XOR,
GFC_ISYM_CONVERSION
};
typedef enum gfc_generic_isym_id gfc_generic_isym_id;
ENUM_BITFIELD (ifsrc) if_source:2;
ENUM_BITFIELD (procedure_type) proc:3;
-
+
/* Special attributes for Cray pointers, pointees. */
- unsigned cray_pointer:1, cray_pointee:1;
+ unsigned cray_pointer:1, cray_pointee:1;
}
symbol_attribute;
/* The following three structures are used to identify a location in
- the sources.
-
+ the sources.
+
gfc_file is used to maintain a tree of the source files and how
they include each other
which file it resides in
locus point to the sourceline and the character in the source
- line.
+ line.
*/
-typedef struct gfc_file
+typedef struct gfc_file
{
struct gfc_file *included_by, *next, *up;
int inclusion_line, line;
char *filename;
} gfc_file;
-typedef struct gfc_linebuf
+typedef struct gfc_linebuf
{
#ifdef USE_MAPPED_LOCATION
source_location location;
#define gfc_linebuf_header_size (offsetof (gfc_linebuf, line))
-typedef struct
+typedef struct
{
char *nextc;
gfc_linebuf *lb;
int use_assoc, saved;
char name[GFC_MAX_SYMBOL_LEN + 1];
struct gfc_symbol *head;
-}
+}
gfc_common_head;
#define gfc_get_common_head() gfc_getmem(sizeof(gfc_common_head))
/* Tree containing all the user-defined operators in the namespace. */
gfc_symtree *uop_root;
/* Tree containing all the common blocks. */
- gfc_symtree *common_root;
+ gfc_symtree *common_root;
/* If set_flag[letter] is set, an implicit type has been set for letter. */
int set_flag[GFC_LETTERS];
ext; /* Points to additional structures required by statement */
/* Backend_decl is used for cycle and break labels in do loops, and
- * probably for other constructs as well, once we translate them. */
+ probably for other constructs as well, once we translate them. */
tree backend_decl;
}
gfc_code;
void gfc_add_include_path (const char *);
void gfc_release_include_path (void);
-FILE *gfc_open_included_file (const char *);
+FILE *gfc_open_included_file (const char *, bool);
int gfc_at_end (void);
int gfc_at_eof (void);
void gfc_type_convert_binary (gfc_expr *);
int gfc_is_constant_expr (gfc_expr *);
try gfc_simplify_expr (gfc_expr *, int);
+int gfc_has_vector_index (gfc_expr *);
gfc_expr *gfc_get_expr (void);
void gfc_free_expr (gfc_expr *);