Index: gcc/gcc/fortran/trans.h |
diff --git a/gcc/gcc/fortran/trans.h b/gcc/gcc/fortran/trans.h |
index 2732aebee3cc6dc1545a1aa3c5c30da38efe417c..58a2f39a2765de5b0c7b3fc9e35d293989cbfcc0 100644 |
--- a/gcc/gcc/fortran/trans.h |
+++ b/gcc/gcc/fortran/trans.h |
@@ -1,6 +1,6 @@ |
/* Header for code translation functions |
- Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software |
- Foundation, Inc. |
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
+ Free Software Foundation, Inc. |
Contributed by Paul Brook |
This file is part of GCC. |
@@ -71,7 +71,7 @@ typedef struct gfc_se |
are NULL. Used by intrinsic size. */ |
unsigned data_not_needed:1; |
- /* If set, gfc_conv_function_call does not put byref calls into se->pre. */ |
+ /* If set, gfc_conv_procedure_call does not put byref calls into se->pre. */ |
unsigned no_function_call:1; |
/* Scalarization parameters. */ |
@@ -126,8 +126,9 @@ typedef enum |
scalarization loop. */ |
GFC_SS_SCALAR, |
- /* Like GFC_SS_SCALAR except it evaluates a pointer to the expression. |
- Used for elemental function parameters. */ |
+ /* Like GFC_SS_SCALAR it evaluates the expression outside the |
+ loop. Is always evaluated as a reference to the temporary. |
+ Used for elemental function arguments. */ |
GFC_SS_REFERENCE, |
/* An array section. Scalarization indices will be substituted during |
@@ -310,11 +311,12 @@ void gfc_conv_intrinsic_function (gfc_se *, gfc_expr *); |
/* Does an intrinsic map directly to an external library call. */ |
int gfc_is_intrinsic_libcall (gfc_expr *); |
-/* Also used to CALL subroutines. */ |
-int gfc_conv_function_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *, |
- tree); |
+/* Used to call ordinary functions/subroutines |
+ and procedure pointer components. */ |
+int gfc_conv_procedure_call (gfc_se *, gfc_symbol *, gfc_actual_arglist *, |
+ gfc_expr *, tree); |
-void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent); |
+void gfc_conv_subref_array_arg (gfc_se *, gfc_expr *, int, sym_intent, bool); |
/* gfc_trans_* shouldn't call push/poplevel, use gfc_push/pop_scope */ |
@@ -408,6 +410,10 @@ void gfc_shadow_sym (gfc_symbol *, tree, gfc_saved_var *); |
/* Restore the original variable. */ |
void gfc_restore_sym (gfc_symbol *, gfc_saved_var *); |
+/* Setting a decl assembler name, mangling it according to target rules |
+ (like Windows @NN decorations). */ |
+void gfc_set_decl_assembler_name (tree, tree); |
+ |
/* Returns true if a variable of specified size should go on the stack. */ |
int gfc_can_put_var_on_stack (tree); |
@@ -426,8 +432,7 @@ void gfc_generate_block_data (gfc_namespace *); |
/* Output a decl for a module variable. */ |
void gfc_generate_module_vars (gfc_namespace *); |
-struct module_htab_entry GTY(()) |
-{ |
+struct GTY(()) module_htab_entry { |
const char *name; |
tree namespace_decl; |
htab_t GTY ((param_is (union tree_node))) decls; |
@@ -494,6 +499,12 @@ void gfc_build_io_library_fndecls (void); |
/* Build a function decl for a library function. */ |
tree gfc_build_library_function_decl (tree, tree, int, ...); |
+/* Process the local variable decls of a block construct. */ |
+void gfc_process_block_locals (gfc_namespace*); |
+ |
+/* Output initialization/clean-up code that was deferred. */ |
+tree gfc_trans_deferred_vars (gfc_symbol*, tree); |
+ |
/* somewhere! */ |
tree pushdecl (tree); |
tree pushdecl_top_level (tree); |
@@ -508,6 +519,7 @@ bool gfc_get_array_descr_info (const_tree, struct array_descr_info *); |
/* In trans-openmp.c */ |
bool gfc_omp_privatize_by_reference (const_tree); |
enum omp_clause_default_kind gfc_omp_predetermined_sharing (tree); |
+tree gfc_omp_report_decl (tree); |
tree gfc_omp_clause_default_ctor (tree, tree, tree); |
tree gfc_omp_clause_copy_ctor (tree, tree, tree); |
tree gfc_omp_clause_assign_op (tree, tree, tree); |
@@ -540,8 +552,7 @@ extern GTY(()) tree gfor_fndecl_associated; |
/* Math functions. Many other math functions are handled in |
trans-intrinsic.c. */ |
-typedef struct gfc_powdecl_list GTY(()) |
-{ |
+typedef struct GTY(()) gfc_powdecl_list { |
tree integer; |
tree real; |
tree cmplx; |
@@ -614,8 +625,7 @@ enum gfc_array_kind |
}; |
/* Array types only. */ |
-struct lang_type GTY(()) |
-{ |
+struct GTY(()) lang_type { |
int rank; |
enum gfc_array_kind akind; |
tree lbound[GFC_MAX_DIMENSIONS]; |
@@ -626,10 +636,10 @@ struct lang_type GTY(()) |
tree dtype; |
tree dataptr_type; |
tree span; |
+ tree base_decl[2]; |
}; |
-struct lang_decl GTY(()) |
-{ |
+struct GTY(()) lang_decl { |
/* Dummy variables. */ |
tree saved_descriptor; |
/* Assigned integer nodes. Stringlength is the IO format string's length. |
@@ -679,6 +689,8 @@ struct lang_decl GTY(()) |
#define GFC_TYPE_ARRAY_DATAPTR_TYPE(node) \ |
(TYPE_LANG_SPECIFIC(node)->dataptr_type) |
#define GFC_TYPE_ARRAY_SPAN(node) (TYPE_LANG_SPECIFIC(node)->span) |
+#define GFC_TYPE_ARRAY_BASE_DECL(node, internal) \ |
+ (TYPE_LANG_SPECIFIC(node)->base_decl[(internal)]) |
/* Build an expression with void type. */ |
#define build1_v(code, arg) fold_build1(code, void_type_node, arg) |
@@ -761,9 +773,15 @@ void gfc_apply_interface_mapping (gfc_interface_mapping *, |
/* Standard error messages used in all the trans-*.c files. */ |
-extern const char gfc_msg_bounds[]; |
extern const char gfc_msg_fault[]; |
extern const char gfc_msg_wrong_return[]; |
+#define OMPWS_WORKSHARE_FLAG 1 /* Set if in a workshare construct. */ |
+#define OMPWS_CURR_SINGLEUNIT 2 /* Set if current gfc_code in workshare |
+ construct is not workshared. */ |
+#define OMPWS_SCALARIZER_WS 4 /* Set if scalarizer should attempt |
+ to create parallel loops. */ |
+#define OMPWS_NOWAIT 8 /* Use NOWAIT on OMP_FOR. */ |
+extern int ompws_flags; |
#endif /* GFC_TRANS_H */ |