1 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
4 * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
5 * trans-array.c: If the reference can be NULL, save the reference
7 * trans-expr.c (gfc_conv_expr): If we have saved a reference,
10 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
12 * trans-expr.c (gfc_conv_expr): Move address taking...
13 (gfc_conv_expr_reference): ... here.
15 2012-01-04 Thomas Koenig <tkoenig@gcc.gnu.org>
18 * trans-common.c (create_common): Update copyright years. Mark
19 variables as used to avoid warnings about unused variables in
22 2012-01-03 Hans-Peter Nilsson <hp@axis.com>
24 * gfortran.h (struct gfc_expr): Add missing "struct"
25 qualifier for member base_expr.
27 2012-01-02 Paul Thomas <pault@gcc.gnu.org>
30 * trans-array.c (gfc_array_allocate): Null allocated memory of
31 newly allocted class arrays.
36 * interface.c(build_compcall_for_operator): Add a type to the
38 * trans-expr.c (conv_base_obj_fcn_val): New function.
39 (gfc_conv_procedure_call): Use base_expr to detect non-variable
40 base objects and, ensuring that there is a temporary variable,
41 build up the typebound call using conv_base_obj_fcn_val.
42 (gfc_trans_class_assign): Pick out class procedure pointer
43 assignments and do the assignment with no further prcessing.
44 (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
45 gfc_trans_class_assign): Move to top of file.
46 * gfortran.h : Add 'base_expr' field to gfc_expr.
47 * resolve.c (get_declared_from_expr): Add 'types' argument to
48 switch checking of derived types on or off.
49 (resolve_typebound_generic_call): Set the new argument.
50 (resolve_typebound_function, resolve_typebound_subroutine):
51 Set 'types' argument for get_declared_from_expr appropriately.
52 Identify base expression, if not a variable, in the argument
53 list of class valued calls. Assign it to the 'base_expr' field
54 of the final expression. Strip away all references after the
57 2012-01-02 Tobias Burnus <burnus@net-b.de>
60 * trans-intrinsic.c (trans_this_image, trans_image_index,
61 trans_num_images, conv_intrinsic_cobound): Fold_convert the
62 caf_num_images/caf_this_images variables to the correct int kind.
64 2012-01-01 Jakub Jelinek <jakub@redhat.com>
66 * gfortranspec.c (lang_specific_driver): Update copyright notice
69 2011-12-31 Thomas König <tkoenig@gcc.gnu.org>
72 * expr.c (gfc_check_vardef_context): When determining
73 implicit pure status, also check for variable definition
74 context. Walk up namespaces until a procedure is
75 found to reset the implict pure attribute.
76 * resolve.c (gfc_implicit_pure): Walk up namespaces
77 until a procedure is found.
79 2011-12-29 Thomas Koenig <tkoenig@gcc.gnu.org>
81 * dependency.c (gfc_dep_compare_functions): Document
82 new behavior for REALs and complex. Add comment to cases
83 where only INTEGERs are handled. Compare REAL and COMPLEX
84 constants, returning 0 and -2 only. Add assert to make
85 sure that only integer constants are compared.
87 2011-12-19 Tobias Burnus <burnus@net-b.de>
90 * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as
93 2011-12-19 Tobias Burnus <burnus@net-b.de>
96 * match.c (gfc_match_select_type): Handle
97 scalar polymophic coarrays.
98 (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok.
99 * primary.c (gfc_match_rvalue): Avoid segfault if !class_ok.
100 * resolve.c (resolve_select_type): Ditto.
101 (resolve_assoc_var): Fix setting the TARGET attribute for
102 polymorphic selectors which are pointers.
104 2011-12-19 Tobias Burnus <burnus@net-b.de>
106 * check.c (coarray_check): Add class ref if needed.
107 * resolve.c (resolve_fl_var_and_proc,
108 resolve_fl_derived0, resolve_symbol): Fix checking
111 2011-12-15 Paul Thomas <pault@gcc.gnu.org>
113 * trans-expr.c (gfc_walk_function_expr): Detect elemental
114 procedure components as well as elemental procedures.
115 * trans-array.c (gfc_conv_procedure_call): Ditto.
116 * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous
117 break for class pointers to continue.
119 2011-12-15 Toon Moene <toon@moene.org>
122 * resolve.c (build_default_init_expr): Allow non-allocatable,
123 non-compile-time-constant-shape arrays to have a default
125 * invoke.texi: Delete the restriction on automatic arrays not
126 being initialized by -finit-<type>=<constant>.
128 2011-12-15 Tobias Burnus <burnus@net-b.de>
134 * resolve.c (resolve_fl_derived0): Print not-implemented error
135 for deferred-length character components.
137 2011-12-15 Tobias Burnus <burnus@net-b.de>
139 * primary.c (gfc_match_varspec): Match array spec for
140 polymorphic coarrays.
141 (gfc_match_rvalue): If a symbol of unknown flavor has a
142 codimension, mark it as a variable.
143 * simplify.c (gfc_simplify_image_index): Directly call
145 * trans-intrinsic.c (trans_this_image): Fix handling of
148 2011-12-15 Jakub Jelinek <jakub@redhat.com>
151 * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span.
152 (gfc_trans_deferred_vars): Instead add its runtime initialization
155 2011-12-11 Tobias Burnus <burnus@net-b.de>
158 * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only
159 if the front end has printed a warning.
160 (gfc_generate_function_code): Fix unset-result warning.
162 2011-12-11 Paul Thomas <pault@gcc.gnu.org>
163 Tobias Burnus <burnus@gcc.gnu.org>
172 * interface.c (symbol_rank): Return the rank of the _data
173 component of class objects.
174 (compare_parameter): Also compare the derived type of the class
175 _data component for type mismatch. Similarly, return 1 if the
176 formal and _data ranks match.
177 (compare_actual_formal): Do not compare storage sizes for class
178 expressions. It is an error if an actual class array, passed to
179 a formal class array is not full.
180 * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get,
181 gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get,
182 gfc_vtable_extends_get, gfc_vtable_def_init_get,
183 gfc_vtable_copy_get): New functions for class API.
184 (gfc_conv_derived_to_class): For an array reference in an
185 elemental procedure call retain the ss to provide the
186 scalarized array reference. Moved in file.
187 (gfc_conv_class_to_class): New function.
188 (gfc_conv_subref_array_arg): Use the type of the
189 class _data component as a basetype.
190 (gfc_conv_procedure_call): Ensure that class array expressions
191 have both the _data reference and an array reference. Use
192 gfc_conv_class_to_class to handle class arrays for elemental
193 functions in scalarized loops, class array elements and full
194 class arrays. Use a call to gfc_conv_subref_array_arg in order
195 that the copy-in/copy-out for passing class arrays to derived
196 type arrays occurs correctly.
197 (gfc_conv_expr): If it is missing, add the _data component
198 between a class object or component and an array reference.
199 (gfc_trans_class_array_init_assign): New function.
200 (gfc_trans_class_init_assign): Call it for array expressions.
201 * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for
202 class scalars since their size will depend on the dynamic type.
203 (build_class_array_ref): New function.
204 (gfc_conv_scalarized_array_ref): Call build_class_array_ref.
205 (gfc_array_init_size): Add extra argument, expr3, that represents
206 the SOURCE argument. If present,use this for the element size.
207 (gfc_array_allocate): Also add argument expr3 and use it when
208 calling gfc_array_init_size.
209 (structure_alloc_comps): Enable class arrays.
210 * class.c (gfc_add_component_ref): Carry over the derived type
211 of the _data component.
212 (gfc_add_class_array_ref): New function.
213 (class_array_ref_detected): New static function.
214 (gfc_is_class_array_ref): New function that calls previous.
215 (gfc_is_class_scalar_expr): New function.
216 (gfc_build_class_symbol): Throw not implemented error for
217 assumed size class arrays. Remove error that prevents
219 (gfc_build_class_symbol): Prevent pointer/allocatable conflict.
220 Also unset codimension.
221 (gfc_find_derived_vtab): Make 'copy' elemental and set the
222 intent of the arguments accordingly.:
223 * trans-array.h: Update prototype for gfc_array_allocate.
224 * array.c (gfc_array_dimen_size): Return failure if class expr.
225 (gfc_array_size): Likewise.
226 * gfortran.h: New prototypes for gfc_add_class_array_ref,
227 gfc_is_class_array_ref and gfc_is_class_scalar_expr.
228 * trans-stmt.c (trans_associate_var): Exclude class targets
229 from test. Move the allocation of the _vptr to an earlier time
231 (trans_associate_var): Assign the descriptor directly for class
233 (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments.
234 Convert array element references into sections. Do not invoke
235 gfc_conv_procedure_call, use gfc_trans_call instead.
236 * expr.c (gfc_get_corank): Fix for BT_CLASS.
237 (gfc_is_simply_contiguous): Exclude class from test.
238 * trans.c (gfc_build_array_ref): Include class array refs.
239 * trans.h: Include prototypes for class API functions that are
240 new in trans-expr. Define GFC_DECL_CLASS(node).
241 * resolve.c (check_typebound_baseobject ): Remove error for
242 non-scalar base object.
243 (resolve_allocate_expr): Ensure that class _data component is
244 present. If array, call gfc_expr_to_intialize.
245 (resolve_select): Remove scalar error for SELECT statement as a
247 (resolve_assoc_var): Update 'target' (aka 'selector') as
248 needed. Ensure that the target expression has the right rank.
249 (resolve_select_type): Ensure that target expressions have a
251 (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS.
252 * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where
254 (gfc_trans_deferred_vars): Get class arrays right.
255 * match.c(select_type_set_tmp): Add array spec to temporary.
256 (gfc_match_select_type): Allow class arrays.
257 * check.c (array_check): Ensure that class arrays have refs.
258 (dim_corank_check, dim_rank_check): Retrun success if class.
259 * primary.c (gfc_match_varspec): Fix for class arrays and
260 co-arrays. Make sure that class _data is present.
261 (gfc_match_rvalue): Handle class arrays.
262 *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array
264 (gfc_conv_allocated): Add _data component to class expressions.
265 (gfc_add_intrinsic_ss_code): ditto.
266 * simplify.c (simplify_cobound): Fix for BT_CLASS.
267 (simplify_bound): Return NULL for class arrays.
268 (simplify_cobound): Obtain correct array_spec. Use cotype as
269 appropriate. Use arrayspec for bounds.
271 2011-12-11 Thomas Koenig <tkoenig@gcc.gnu.org>
274 * frontend-passes.c (in_omp_workshare): New variable.
275 (cfe_expr_0): Don't eliminiate common function if it would put
276 the variable immediately into a WORKSHARE construct.
277 (optimize_namespace): Set in_omp_workshare.
278 (gfc_code_walker): Keep track of OMP PARALLEL and OMP WORKSHARE
281 2011-12-10 Tobias Burnus <burnus@net-b.de>
283 * trans-decl.c (add_argument_checking): Fix syntax.
285 2011-12-10 Tobias Burnus <burnus@net-b.de>
286 Kai Tietz <ktietz@redhat.com>
288 * trans-decl.c (add_argument_checking): Check ts.deferred earlier.
289 * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long.
291 2011-12-08 Tobias Burnus <burnus@net-b.de>
294 * trans-decl.c (add_argument_checking): Skip bound checking
295 for deferred-length strings.
297 2011-12-08 Tobias Burnus <burnus@net-b.de>
300 * symbol.c (gfc_find_component): Fix access check of parent
303 2011-12-08 Tobias Burnus <burnus@net-b.de>
306 * io/transfer.c (require_numeric_type): New function.
307 (formatted_transfer_scalar_read, formatted_transfer_scalar_write):
308 Use it, allow BOZ edit descriptors with F2008.
310 2011-12-08 Tobias Burnus <burnus@net-b.de>
313 * fortran/trans-array.c (get_std_lbound): Fix handling of
314 conversion functions.
316 2011-12-08 Toon Moene <toon@moene.org>
319 * invoke.texi: Itemize the cases for which
320 -finit-<type>=<constant> doesn't work.
322 2011-12-06 Tobias Burnus <burnus@net-b.de>
325 * expr.c (gfc_has_default_initializer): Fix handling of
326 DT with initialized pointer components.
328 2011-12-05 Thomas Koenig <tkoenig@gcc.gnu.org>
331 * dependency.c (are_identical_variables): Handle case where
332 end fields of substring references are NULL.
334 2011-12-04 Tobias Burnus <burnus@net-b.de>
337 * resolve.c (find_array_spec): Use ref->u.c.component
338 directly without starting from ts.u.derived.
340 2011-12-03 Tobias Burnus <burnus@net-b.de>
343 * match.c (select_type_set_tmp): Don't set allocatable/pointer
345 * class.c (gfc_build_class_symbol): Handle
346 attr.select_type_temporary.
348 2011-12-03 Tobias Burnus <burnus@net-b.de>
351 * check.c (variable_check): Fix intent(in) check.
353 2011-12-03 Tobias Burnus <burnus@net-b.de>
355 * check.c (gfc_check_move_alloc): Allow nonpolymorphic
356 FROM with polymorphic TO.
357 * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle
358 nonpolymorphic FROM with polymorphic TO.
360 2011-12-01 Janne Blomqvist <jb@gcc.gnu.org>
362 * module.c (dt_lower_string): Make static.
363 (dt_upper_string): Likewise.
365 2011-12-01 Janne Blomqvist <jb@gcc.gnu.org>
368 * module.c (parse_string): Read string into resizable array
369 instead of parsing twice and seeking.
370 (peek_atom): New implementation avoiding seeks.
371 (require_atom): Save and set column and line explicitly for error
374 2011-12-01 Janne Blomqvist <jb@gcc.gnu.org>
376 * misc.c (gfc_open_file): Don't call stat.
378 2011-11-29 Thomas Koenig <tkoenig@gcc.gnu.org>
381 * module.c (prev_module_line): New variable.
382 (prev_module_column): New variable.
383 (prev_character): New variable.
384 (module_char): Update the new variables.
385 (module_unget_char): New function.
386 (parse_string): Use module_unget_char.
387 (parse_integer): Likewise.
388 (parse_name): Likewise.
390 2011-11-29 Tobias Burnus <burnus@net-b.de>
394 * check.c (gfc_check_move_alloc): Make sure that from/to
395 are both polymorphic or neither.
396 * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup,
397 generate inline code.
399 2011-11-28 Tobias Burnus <burnus@net-b.de>
400 Steven G. Kargl <kargl@gcc.gnu.org>
403 * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER
404 conflicts for ISO_C_BINDING variables.
405 (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null
408 2011-11-25 Mikael Morin <mikael@gcc.gnu.org>
410 * trans-array.c (set_loop_bounds): Remove dead conditions.
412 2011-11-25 Mikael Morin <mikael@gcc.gnu.org>
416 * trans-array.c (gfc_trans_create_temp_array): Get dimension from
417 the right gfc_ss struct.
419 2011-11-25 Tobias Burnus <burnus@net-b.de>
422 * trans-decl.c (gfc_get_module_backend_decl): Also copy
423 ts.u.derived from the gsym if the ts.type is BT_CLASS.
424 (gfc_get_extern_function_decl): Copy also the backend_decl
425 for the symbol's ts.u.{derived,cl} from the gsym.
426 * trans-types.c (gfc_copy_dt_decls_ifequal): Directly
427 return if "from" and "to" are the same.
429 2011-11-25 Tobias Burnus <burnus@net-b.de>
432 * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert.
434 2011-11-24 Tobias Burnus <burnus@net-b.de>
437 * resolve.c (pure_subroutine): If called subroutine is
438 impure, unset implicit_pure.
439 (resolve_function): Move impure check to simplify code.
441 2011-11-19 Tobias Burnus <burnus@net-b.de>
444 * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
445 and hence as TREE_READONLY; add subroutine attribute to
449 * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
450 * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as
451 GFC_DECL_PUSH_TOPLEVEL.
452 (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
453 (build_function_decl): Push __copy_ procedure to the toplevel.
455 2011-11-16 Tobias Burnus <burnus@net-b.de>
459 * decl.c (match_data_constant, match_data_constant, variable_decl,
460 gfc_match_decl_type_spec, access_attr_decl,
461 check_extended_derived_type, gfc_match_derived_decl,
462 gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
463 with DT constructors.
464 * gfortran.h (gfc_find_dt_in_generic,
465 gfc_convert_to_structure_constructor): New function prototypes.
466 * interface.c (check_interface0, check_interface1,
467 gfc_search_interface): Ignore DT constructors in generic list.
468 * match.h (gfc_match_structure_constructor): Update prototype.
469 * match.c (match_derived_type_spec): Ensure that one uses the DT
470 not the generic function.
471 * module.c (MOD_VERSION): Bump.
472 (dt_lower_string, dt_upper_string): New functions.
473 (find_use_name_n, find_use_operator, compare_true_names,
474 find_true_name, add_true_name, fix_mio_expr, load_needed,
475 read_module, write_dt_extensions, write_symbol): Changes to deal with
476 different symtree vs. sym names.
477 (create_derived_type): Create also generic procedure.
478 * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic
479 function as the same.
480 * primary.c (gfc_convert_to_structure_constructor): New function.
481 (gfc_match_structure_constructor): Restructured; calls
482 gfc_convert_to_structure_constructor.
483 (build_actual_constructor, gfc_match_rvalue): Update for DT generic
485 * resolve.c (resolve_formal_arglist, resolve_structure_cons,
486 is_illegal_recursion, resolve_generic_f, resolve_variable,
487 resolve_fl_variable_derived, resolve_fl_derived0,
488 resolve_symbol): Handle DT and DT generic constructors.
489 * symbol.c (gfc_use_derived, gfc_undo_symbols,
490 gen_special_c_interop_ptr, gen_cptr_param,
491 generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
492 derived-types, which are hidden in the generic type.
493 (gfc_find_dt_in_generic): New function
494 * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER
495 expr by actual value.
496 * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts):
497 Ensure that we use the DT and not the generic function.
498 * trans-types.c (gfc_get_derived_type): Ensure that we use the DT
499 and not the generic procedure.
501 2011-11-14 Tobias Burnus <burnus@net-b.de>
504 * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays.
506 2011-11-09 Tobias Burnus <burnus@net-b.de>
508 * symbol.c (clear_sym_mark, traverse_ns): Remove functions.
509 (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions.
510 (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree.
512 2011-11-09 Janne Blomqvist <jb@gcc.gnu.org>
515 * gfortran.texi (Data consistency and durability): New section.
517 2011-11-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
520 * resolve.c (resolve_forall_iterators): Transform internal errors
523 2011-11-09 Janus Weil <janus@gcc.gnu.org>
526 * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER.
527 * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with
529 * resolve.c (resolve_values): Use-associated symbols do not need to
531 (resolve_fl_parameter): Make sure the symbol has a value.
533 2011-11-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
536 * intrinsic.c (add_functions): Allow dreal simplification.
537 * intrinsic.h (gfc_simplify_dreal): New prototype.
538 * simplify.c (gfc_simplify_dreal): New function.
540 2011-11-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
543 * trans-types.c (gfc_get_dtype): Issue a fatal error instead of
546 2011-11-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
549 * io.c (gfc_resolve_close): CLOSE requires a UNIT.
551 2011-11-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
554 * expr.c (gfc_simplify_expr): Substrings can't have negative
557 2011-11-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
560 * invoke.texi (-finit-*): Document interaction with
563 2011-11-07 François-Xavier Coudert <fxcoudert@gcc.gnu.org>
567 * invoke.texi: Fix documentation of fsign-zero option. Remove
569 * intrinsic.texi: Fix ATAN2 documentation for signed zeros.
571 * gfortran.texi: Remove contractions.
573 2011-11-07 Janus Weil <janus@gcc.gnu.org>
576 * class.c (add_proc_comp): Don't add non-overridable procedures to the
578 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
579 Don't generate a dynamic _vptr call for non-overridable procedures.
581 2011-11-07 Janne Blomqvist <jb@gcc.gnu.org>
583 * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
584 and time are part of the C standard library.
586 2011-11-06 Janus Weil <janus@gcc.gnu.org>
588 * gfortran.h (gfc_extend_expr): Modified prototype.
589 * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'.
590 Remove argument 'real_error'.
591 * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'.
593 2011-11-06 Andrew MacLeod <amacleod@redhat.com>
594 Aldy Hernandez <aldyh@redhat.com>
596 Merged from cxx-mem-model.
598 * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT,
599 BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
600 BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
601 BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
602 BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
603 BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT,
604 BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types.
606 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
609 * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic
610 case in the assertion.
611 * trans-intrinsic (enter_nested_loop): New function.
612 (gfc_conv_intrinsic_arith): Support non-scalar cases.
613 (nest_loop_dimension, walk_inline_intrinsic_arith): New functions.
614 (walk_inline_intrinsic_function): Handle sum and product.
615 (gfc_inline_intrinsic_function_p): Ditto.
616 * trans.h (gfc_get_loopinfo): New macro.
618 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
620 * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent
621 expression variable. Use it.
623 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
625 * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop
628 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
630 * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling
633 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
635 * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions.
637 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
639 * frontend-passes.c (cfe_register_funcs): Return early in the case
640 of an inline intrinsic function.
641 (optimize_binop_array_assignment): Skip optimization in the case of
642 an inline intrinsic function.
644 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
646 * array.c (match_subscript): Skip whitespaces before setting locus.
647 * matchexp.c (match_level_1): Ditto.
649 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
651 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's
652 temporary rank to the loop rank. Mark ss chains for multiple loop
653 if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop
656 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
658 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's
659 temporary rank to the loop rank. Mark ss chains for multiple loop
660 if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop
663 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
665 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate
666 offset twice in generated code.
668 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
670 * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for
671 arguments to elemental calls.
672 * trans-stmt.c (replace_ss): New function.
673 (gfc_conv_elemental_dependencies): Remove temporary loop handling.
674 Create a new ss for the temporary and replace the original one with it.
675 Remove fake array references. Recalculate all offsets.
677 2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
679 * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes.
680 * trans-array.c (gfc_free_ss): Remove forward declaration.
682 (set_delta, gfc_set_delta): Remove forward declaration.
683 Make non-static and rename the former to the later. Update uses.
685 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
687 * trans.h (gfc_inline_intrinsic_function_p): Move prototype...
688 * gfortran.h (gfc_inline_intrinsic_function_p): ... here.
689 * dependency.c (gfc_check_argument_var_dependency): Check dependencies
690 of inline intrinsics' arguments.
692 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
694 * trans-array.c (gfc_trans_preloop_setup): New pointers to outer
695 dimension's ss and loop. Use them.
697 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
699 * trans-array.c (outermost_loop): New function.
700 (gfc_trans_array_constructor, gfc_set_vector_loop_bounds,
701 gfc_add_loop_ss_code): Put generated code out of the outermost loop.
703 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
705 * trans-array.c (constant_array_constructor_loop_size):
706 Handle multiple loops.
708 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
710 * trans-array.c (get_rank, get_loop_upper_bound_for_array):
712 (gfc_trans_array_constructor): Handle multiple loops.
714 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
716 * trans.h (struct gfc_loopinfo): New field parent.
717 * trans-array.c (gfc_cleanup_loop): Free nested loops.
718 (gfc_add_ss_to_loop): Set nested_loop's parent loop.
719 (gfc_trans_array_constructor): Update assertion.
720 (gfc_conv_loop_setup): Ditto.
722 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
724 * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss.
725 Call recursively gfc_add_loop_ss_code for all the nested loops.
726 (gfc_conv_ss_startstride): Only get the descriptor for the outermost
727 ss. Call recursively gfc_conv_ss_startstride for all the nested loops.
728 (set_loop_bounds): Call recursively for all the nested loops.
731 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
733 * trans.h (struct gfc_loopinfo): New fields nested and next.
734 * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if
735 ss has non-null nested_ss field.
737 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
739 * trans-array.c (gfc_trans_create_temp_array): Loop over the parents.
741 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
743 * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim):
744 Rename the former to the latter and loop over the parents.
745 (innermost_ss): New function.
746 (get_array_ref_dim_for_loop_dim): New function.
747 (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim.
748 (set_loop_bounds): Use get_array_dim_for_loop_dim).
750 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
752 * trans.h (struct gfc_ss): New field nested_ss.
753 * trans-expr.c (gfc_advance_se_ss_chain): Update assertion.
755 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
757 * trans-array.c (set_vector_loop_bounds): Loop over the parents.
759 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
761 * trans-array.c (gfc_trans_array_constructor): Loop over the parents.
763 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
765 * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the
768 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
770 * trans.h (struct gfc_ss): New field parent.
771 * trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a
773 * trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the
776 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
778 * trans-array.h (gfc_trans_create_temp_array): Remove loop argument.
779 * trans-array.c (gfc_trans_create_temp_array): Ditto. Get loop from ss.
780 Update reference to loop. Remove loop argument.
781 (gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to
782 gfc_trans_create_temp_array.
783 * trans-expr.c (gfc_conv_procedure_call): Ditto.
784 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
785 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
786 Set loop before calling gfc_trans_create_temp_array.
788 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
790 * trans-array.c (gfc_trans_create_temp_array): New variable total_dim.
791 Set total_dim to loop's rank. Replace usages of loop's rank.
793 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
795 * trans-array.c (gfc_trans_array_constructor, trans_array_constructor):
796 Rename the former to the later. Get loop from ss.
797 Remove loop argument.
798 (gfc_add_loop_ss_code): Update call.
800 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
802 * trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss.
803 Remove loop argument.
804 (gfc_add_loop_ss_code): Update call.
806 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
808 * trans.h (struct gfc_ss): New field loop.
809 * trans-array.c (set_ss_loop): New function.
810 (gfc_add_ss_to_loop): Call set_ss_loop.
812 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
814 * trans.h (struct gfc_ss_info): New field refcount.
815 * trans-array.c (free_ss_info): Decrement refcount. Return early if
817 (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment
820 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
822 * trans-array.c (gfc_trans_create_temp_array): Move invariant condition
823 out of the containing loop.
825 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
827 * trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array):
828 Move specloop arrays clearing from the former to the latter.
830 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
832 * trans-array.c (set_loop_bounds): Separate the beginning of
833 gfc_conv_loop_setup into a function of its own.
834 (set_delta): Separate the end of gfc_conv_loop_setup into a function
836 (gfc_conv_loop_setup): Call set_loop_bounds and set delta.
837 (set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a
838 pointer to the specloop field from the loop struct.
840 2011-11-03 Tobias Burnus <burnus@net-b.de>
843 * interface.c (gfc_compare_derived_types): Fix check for BIND(C).
845 2011-11-03 Tobias Burnus <burnus@net-b.de>
848 * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY.
850 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
852 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
853 gfc_ss::where into gfc_ss_info.
854 * trans-array.c (gfc_add_loop_ss_code):
855 Update reference chains.
856 * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
858 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
860 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
861 gfc_ss::useflags into gfc_ss_info.
862 * trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup,
863 gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary):
864 Update reference chains.
865 * trans-expr.c (gfc_conv_procedure_call): Ditto.
866 * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
868 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
870 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
871 gfc_ss::data::info into gfc_ss_info::data and remove empty union
873 * trans-array.c (gfc_free_ss, gfc_trans_create_temp_array,
874 gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
875 gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
876 gfc_conv_ss_descriptor, gfc_trans_array_bound_check,
877 gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
878 add_array_offset, gfc_trans_preloop_setup,
879 gfc_trans_scalarized_boundary, gfc_conv_section_startstride,
880 gfc_conv_ss_startstride, gfc_could_be_alias,
881 gfc_conv_loop_setup, gfc_conv_expr_descriptor,
882 gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref):
883 Update reference chains and factor them where possible.
884 * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
885 gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference
887 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
888 * trans-io.c (transfer_array_component): Ditto.
889 * trans-stmt.c (gfc_conv_elemental_dependencies,
890 gfc_trans_pointer_assign_need_temp): Ditto.
892 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
894 * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
895 gfc_ss::data::temp into gfc_ss_info::data.
896 * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference
899 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
901 * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
902 gfc_ss::data::scalar into newly created union gfc_ss_info::data,
903 and rename subfield expr to value.
904 * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset,
905 gfc_conv_expr_descriptor): Update reference chains.
906 * trans-const.c (gfc_conv_constant): Ditto.
907 * trans-expr.c (gfc_conv_expr): Ditto.
909 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
911 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
912 string_length from the former struct to the latter.
914 (gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code,
915 gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref,
916 gfc_conv_resolve_dependencies, gfc_conv_loop_setup,
917 gfc_conv_expr_descriptor): Update references to string_length and
918 factor common reference chains where possible.
919 * trans-const.c (gfc_conv_constant): Ditto.
920 * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
921 gfc_conv_expr): Ditto.
923 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
925 * trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from
926 the former struct to the latter.
928 (gfc_get_array_ss, gfc_get_scalar_ss,
929 gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
930 gfc_add_loop_ss_code, gfc_conv_ss_descriptor,
931 gfc_trans_array_bound_check, gfc_conv_array_index_offset,
932 gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride,
933 gfc_could_be_alias, gfc_conv_resolve_dependencies,
934 gfc_conv_loop_setup, gfc_conv_expr_descriptor,
935 gfc_alloc_allocatable_for_assignment): Update references to expr and
936 factor common reference chains where possible.
937 * trans-const.c (gfc_conv_constant): Ditto.
938 * trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call,
939 gfc_conv_array_constructor_expr, gfc_conv_expr,
940 gfc_conv_expr_reference): Ditto.
941 * trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound,
942 gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall,
943 gfc_add_intrinsic_ss_code): Ditto.
944 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
946 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
948 * trans.h (struct gfc_ss_info): New struct.
949 (gfc_get_ss_info): New macro.
950 (struct gfc_ss): Move type field to struct gfc_ss_info.
951 Add an info field of type gfc_ss_info.
952 * trans-array.c (free_ss_info): New function.
953 (gfc_free_ss): Call free_ss_info.
954 (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss):
955 Allocate gfc_ss_info field.
956 (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss,
957 gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
958 gfc_conv_array_index_offset, gfc_trans_preloop_setup,
959 gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
960 gfc_conv_ss_startstride, gfc_conv_resolve_dependencies,
961 gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor,
962 gfc_walk_elemental_function_args): Update references to type.
963 * trans-const.c (gfc_conv_constant): Factor common reference chains
964 and update reference to type.
965 * trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1):
966 Update reference to type.
967 (gfc_conv_array_constructor_expr, gfc_conv_expr,
968 gfc_conv_expr_reference): Ditto. Factor common reference chains.
969 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references
971 * trans-stmt.c (gfc_trans_where_assign): Ditto.
973 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
975 * trans.h (struct gfc_ss, struct gfc_array_info): Move shape field
976 from the former struct to the latter.
977 * trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup):
978 Update field references.
979 * trans-expr.c (gfc_trans_subarray_assign): Update field references
980 and factor common reference chains.
981 * trans-io.c (transfer_array_component): Ditto.
983 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
985 * trans.h (struct gfc_array_info): Move dim and dimen fields...
986 (struct gfc_ss): ... here. Remove gfc_ss::data::temp::dimen field.
987 * trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array
989 (gfc_get_temp_ss): Initialize dim and dimen.
990 (gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss,
991 gfc_set_loop_bounds_from_array_spec, get_array_ref_dim,
992 gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
993 gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref,
994 gfc_trans_preloop_setup, gfc_conv_ss_startstride,
995 gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims,
996 gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment,
997 gfc_walk_array_ref): Update field references.
998 * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
1000 * trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto.
1001 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
1003 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1005 * trans.h (struct gfc_ss_info, struct gfc_array_info):
1006 Rename the former to the latter.
1007 * trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage,
1008 get_array_ref_dim, gfc_trans_create_temp_array,
1009 gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds,
1010 gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
1011 add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride,
1012 gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims,
1013 gfc_conv_expr_descriptor): Update all uses.
1014 * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
1016 * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
1017 walk_inline_intrinsic_transpose): Ditto.
1018 * trans-stmt.c (gfc_conv_elemental_dependencies,
1019 gfc_trans_pointer_assign_need_temp): Ditto.
1021 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1023 * trans-array.c (dim_ok, transposed_dims): Rename the former to the
1024 latter. Change argument type. Invert return value.
1025 (gfc_conv_expr_descriptor): Update calls.
1027 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1029 * trans-array.c (get_array_ref_dim): Change argument type and name.
1030 Obtain previous argument from the new argument in the body.
1031 (gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls.
1033 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1035 * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds):
1036 Rename the former to the latter. Change type and name of argument.
1037 Get previous argument from the new one.
1038 (gfc_add_loop_ss_code): Update call.
1040 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1042 * trans-array.h (gfc_trans_create_temp_array): Replace info argument
1044 * trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss.
1045 (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
1046 gfc_trans_create_temp_array.
1047 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1048 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
1049 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
1051 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1053 * trans-array.c (gfc_trans_array_bound_check): Use ss argument
1056 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1058 * trans-array.c (gfc_trans_array_bound_check,
1059 trans_array_bound_check): Rename the former to the latter.
1060 Replace descriptor argument with ss argument. Get descriptor from ss.
1061 (gfc_conv_array_index_offset, conv_array_index_offset): Rename the
1062 former to the latter. Update call to trans_array_bound_check.
1063 Replace info argument with ss argument. Get info from ss.
1064 (gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset.
1065 (add_array_offset): Ditto
1067 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1069 * trans-array.c (gfc_trans_constant_array_constructor,
1070 trans_constant_array_constructor): Rename the former to the latter.
1071 Don't set the rank of the temporary for the loop. Remove then unused
1073 (gfc_trans_array_constructor): Update call.
1075 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1077 * trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end
1078 marker, not after it.
1080 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1082 * trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays.
1084 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1086 * trans-array.c (gfc_conv_ss_startstride): Access array bounds along
1087 array dimensions instead of loop dimensions.
1089 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1091 * trans-array.c (gfc_trans_preloop_setup): Assertify one condition.
1093 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1095 * trans-array.c (gfc_walk_array_ref): Skip coarray dimensions.
1097 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1099 * trans-array.c (get_array_ref_dim): Remove redundant condition.
1101 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1103 * trans-array.c (gfc_trans_preloop_setup): Move common code...
1104 (add_array_offset): ...into that new function.
1106 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1108 * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead
1109 of array's dimention. Check that it is indeed the same.
1111 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1113 * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion.
1114 Special case outermost loop.
1116 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1118 * trans-array.c (gfc_trans_preloop_setup): Factor loop index
1121 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1123 * trans-array.c (gfc_trans_preloop_setup): Move code earlier.
1125 2011-11-03 Mikael Morin <mikael@gcc.gnu.org>
1127 * trans-array.c (gfc_trans_preloop_setup): Move array reference
1128 initialisation earlier. Factor subsequent array references.
1130 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1132 * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.
1134 2011-10-30 Steven G. Kargl <kargl@gcc.gnu.org>
1137 * check.c (gfc_check_dshift): Update argument checking for BOZ.
1138 Update checking SHIFT against BITSIZE of I or J.
1139 * intrinsic.texi: Update docs for DSHIFTL and DSHIFTR.
1141 2011-10-28 Steven G. Kargl <kargl@gcc.gnu.org>
1143 * check.c (gfc_check_atan_2): Typo in comment.
1144 (gfc_check_nearest): If 's' is constant, check that it is not 0.
1145 * simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits,
1146 gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc,
1147 gfc_simplify_nearest): Remove dead code.
1149 2011-10-23 Steven G. Kargl <kargl@gcc.gnu.org>
1151 * simplify.c (simplify_transformation_to_array): Fix memory leak.
1153 2011-10-20 Steven G. Kargl <kargl@gcc.gnu.org>
1156 * check.c (gfc_check_ishftc): Check args are constant before
1157 extracting the integer.
1159 2011-10-20 Steven G. Kargl <kargl@gcc.gnu.org>
1162 * check.c (less_than_bitsize1): Check |shift| <= bit_size(i).
1163 (gfc_check_ishftc): Check |shift| <= bit_size(i) and check
1164 that size is positive.
1166 2011-10-20 Steven G. Kargl <kargl@gcc.gnu.org>
1169 * resolve.c (resolve_ref): Check return value of resolve_substring().
1171 2011-10-20 Steven G. Kargl <kargl@gcc.gnu.org>
1173 * io.c (match_dt_format): Match a user-defined operator or a kind
1174 type prefixed string.
1176 2011-10-19 Janus Weil <janus@gcc.gnu.org>
1179 * check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF.
1180 * intrinsinc.texi (SIZEOF): Document it.
1181 (STORAGE_SIZE): Fix special characters. Fix line breaks.
1183 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1186 * trans.c (gfc_build_array_ref): If type is not an array, check that
1187 there is nothing to do, and do nothing.
1189 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1192 * trans-types.c (gfc_build_array_type): Don't force lower bound to one
1193 in the deferred case.
1195 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1198 * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
1199 Don't set already set array ref.
1201 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1203 * array.c (gfc_find_array_ref): Remove coarray-specific handling.
1205 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1208 * check.c (dim_corank_check): Use gfc_get_corank to get corank.
1210 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1213 * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.
1216 * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
1217 the scalarization chain initialization.
1219 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1222 * trans-intrinsic.c (walk_coarray): Allow subreferences after a
1223 coarray object reference.
1225 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1228 * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
1229 if they are coarrays.
1231 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1233 * trans-array.h (gfc_walk_array_ref): New prototype.
1234 * trans-array.c (gfc_walk_array_ref): New function, containing
1235 all but the beginning of gfc_walk_variable_expr's code.
1236 (gfc_walk_variable_expr): Use gfc_walk_array_ref.
1238 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1241 * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
1242 ndim for the descriptor's rank.
1244 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1247 * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
1248 from zero, and add then the relevant offset (either ndim or loop.dimen)
1249 depending on context.
1251 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1253 * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.
1255 2011-10-18 Mikael Morin <mikael@gcc.gnu.org>
1257 * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
1260 2011-10-18 Janus Weil <janus@gcc.gnu.org>
1263 * decl.c (verify_c_interop_param): Renamed to
1264 'gfc_verify_c_interop_param'. Add error message for polymorphic
1266 (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
1267 polymorphic variables.
1268 (verify_bind_c_sym): Renamed 'verify_c_interop'.
1269 * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
1270 * check.c (gfc_check_sizeof): Ditto.
1271 * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
1272 * symbol.c (verify_bind_c_derived_type): Ditto.
1274 2011-10-15 Tom Tromey <tromey@redhat.com>
1275 Dodji Seketeli <dodji@redhat.com>
1277 * cpp.c (print_line, cb_define): Adjust to avoid using internals
1278 of struct line_map. Use the public API instead.
1280 2011-10-17 Janus Weil <janus@gcc.gnu.org>
1284 * primary.c (match_kind_param): Avoid segfault.
1286 2011-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
1288 * frontend-passes.c (current_ns): Make static.
1289 (create_var): Note parent of newly created namespace.
1290 (optimize_namespace): Don't wak sibling namespaces
1291 if they are EXEC_BLOCK because this is handled...
1292 (gfc_code_walker): ... here. Also walk ASSOCIATE lists.
1294 2011-10-16 Janus Weil <janus@gcc.gnu.org>
1297 * primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
1298 (get_kind): Pass on 'is_iso_c' flag.
1299 (match_integer_constant,match_real_constant,match_logical_constant):
1300 Set 'ts.is_c_interop'.
1302 2011-10-16 Janus Weil <janus@gcc.gnu.org>
1305 * resolve.c (resolve_formal_arglist): Remove unneeded error message.
1308 2011-10-15 Tobias Burnus <burnus@net-b.de>
1310 * gfortran.texi (Fortran 2008 status, TS 29113 status,
1311 Further Interoperability of Fortran with C): Update implementation
1312 status, change references from TR 29113 to TS 29113.
1313 * intrinsic.texi (RANK): Change TR 29113 to TS 29113.
1314 * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts.
1315 * lang.opt (std=): Ditto.
1316 * options.c (gfc_handle_option, set_default_std_flags): Ditto and
1317 change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
1318 * libgfortran.h: Ditto.
1319 * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto.
1320 * decl.c (verify_c_interop_param): Ditto.
1322 2011-10-14 Janus Weil <janus@gcc.gnu.org>
1325 * expr.c (gfc_check_vardef_context): Don't throw an error on
1326 non-pointer assignments involving an intent(in) pointer dummy.
1328 2011-10-14 Tobias Burnus <burnus@net-b.de>
1331 * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
1332 for dummy arguments with VALUE attribute.
1334 2011-10-11 Tobias Burnus <burnus@net-b.de>
1335 Janus Weil <janus@gcc.gnu.org>
1337 * invoke.texi (-fwhole-file): Update wording since -fwhole-file
1338 is now enabled by default.
1340 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1342 * trans-expr.c (gfc_conv_power_op): Delete old interface with two
1343 parallel arrays to hold standard builtin declarations, and replace
1344 it with a function based interface that can support creating
1345 builtins on the fly in the future. Change all uses, and poison
1346 the old names. Make sure 0 is not a legitimate builtin index.
1347 (fill_with_spaces): Ditto.
1348 (gfc_trans_string_copy): Ditto.
1349 (gfc_trans_zero_assign): Ditto.
1350 (gfc_build_memcpy_call): Ditto.
1351 (alloc_scalar_allocatable_for_assignment): Ditto.
1352 * trans-array.c (gfc_trans_array_constructor_value): Ditto.
1353 (duplicate_allocatable): Ditto.
1354 (gfc_alloc_allocatable_for_assignment): Ditto.
1355 * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto.
1356 (gfc_omp_clause_assign_op): Ditto.
1357 (gfc_trans_omp_atomic): Ditto.
1358 (gfc_trans_omp_do): Ditto.
1359 (gfc_trans_omp_task): Ditto.
1360 * trans-stmt.c (gfc_trans_stop): Ditto.
1361 (gfc_trans_sync): Ditto.
1362 (gfc_trans_allocate): Ditto.
1363 (gfc_trans_deallocate): Ditto.
1364 * trans.c (gfc_call_malloc): Ditto.
1365 (gfc_allocate_using_malloc): Ditto.
1366 (gfc_call_free): Ditto.
1367 (gfc_deallocate_with_status): Ditto.
1368 (gfc_deallocate_scalar_with_status): Ditto.
1369 * f95-lang.c (gfc_define_builtin): Ditto.
1370 (gfc_init_builtin_functions): Ditto.
1371 * trans-decl.c (create_main_function): Ditto.
1372 * trans-intrinsic.c (builtin_decl_for_precision): Ditto.
1374 2011-10-10 Thomas Koenig <tkoenig@gcc.gnu.org>
1377 * frontend-passes (forall_level): New variable.
1378 (cfe_register_funcs): Don't register functions if we
1379 are within a forall loop.
1380 (optimize_namespace): Set forall_level to 0 before entry.
1381 (gfc_code_walker): Increase/decrease forall_level.
1383 2011-10-09 Tobias Burnus <burnus@net-b.de>
1386 * trans-common.c (translate_common): Fix -Walign-commons check.
1388 2011-10-09 Mikael Morin <mikael.morin@sfr.fr>
1390 * interface.c (check_dummy_characteristics): Count dimensions starting
1391 from one in diagnostic.
1393 2011-10-09 Tobias Burnus <burnus@net-b.de>
1395 * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
1396 dependency on iso-c-binding.def and iso-fortran-env.def.
1397 * module.c (import_iso_c_binding_module): Add error when
1398 explicitly importing a nonstandard symbol; extend standard-
1400 * iso-c-binding.def: Add c_float128 and c_float128_complex
1401 integer parameters (for -std=gnu).
1402 * intrinsic.texi (ISO_C_Binding): Document them.
1403 * symbol.c (generate_isocbinding_symbol): Change macros
1404 to ignore GFC_STD_* data.
1405 * trans-types.c (gfc_init_c_interop_kinds): Ditto; make
1406 nonstatic and renamed from "init_c_interop_kinds".
1407 (gfc_init_kinds): Don't call it
1408 * trans-types.h (gfc_init_c_interop_kinds): Add prototype.
1409 * f95-lang.c (gfc_init_decl_processing): Call it.
1411 2011-10-09 Janus Weil <janus@gcc.gnu.org>
1414 * expr.c (replace_symbol): Only do replacement if the symbol is a dummy.
1416 2011-10-08 Paul Thomas <pault@gcc.gnu.org>
1419 * trans-array.c (gfc_conv_array_index_offset): Use descriptor
1420 stride for pointer function results.
1422 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1424 * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.
1426 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1428 * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases.
1430 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1432 * trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
1433 Remove conditions on coarray.
1434 (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
1435 (gfc_conv_expr_descriptor): Ditto. Add assertions before the call.
1437 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1439 * trans-array.c (gfc_conv_section_startstride): Remove coarray_last
1440 argument. Remove condition on coarray_last.
1441 (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
1442 (gfc_conv_expr_descriptor): Ditto.
1444 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1446 * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray
1447 handling. Don't reset array ref's corank and codimensions' types
1448 in the full array ref case. Update loop upper limit.
1449 Remove DIMEN_THIS_IMAGE case. Remove unnecessary conditions.
1451 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1453 * trans.h (gfc_ss_info): Remove codimen field.
1454 * trans-array.c (gfc_get_array_ss): Don't set codimen field.
1455 (gfc_trans_create_temp_array): Don't set descriptor's cobounds.
1456 (gfc_trans_constant_array_constructor): Update loop upper limit.
1457 (gfc_conv_ss_startstride): Don't set codimen field.
1458 Don't get descriptor's cobounds.
1459 (gfc_walk_variable_expr): Update dimension index.
1460 * trans-intrinsic.c (trans_this_image, trans_image_index,
1461 conv_intrinsic_cobound): Don't set codimen field
1463 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1465 * trans.h (gfc_loopinfo): Remove codimen field.
1466 * trans-array.c (gfc_set_vector_loop_bounds,
1467 gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
1469 (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last
1471 (gfc_start_scalarized_body): Update loop lower limit.
1472 (gfc_conv_ss_startstride): Don't set loop's codimen field.
1473 (gfc_conv_loop_setup): Remove unnecessary condition.
1474 (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank.
1476 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1478 * trans.h (gfc_ss): Remove data.temp.codimen field.
1479 * trans-array.c (gfc_conv_resolve_dependencies,
1480 gfc_conv_expr_descriptor): Don't set temp's codimen field.
1482 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1484 * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the
1485 associated dimen_type) in the full array ref case.
1487 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1489 * trans-intrinsic.c (walk_coarray): New function.
1490 (convert_element_to_coarray_ref): Move code to walk_coarray. Remove.
1491 (trans-this_image, trans_image_index, conv_intrinsic_cobound):
1494 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1496 * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer
1497 cobounds evaluation.
1499 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1501 * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.
1503 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1505 * trans-array.c (gfc_conv_section_startstride): Move code to
1506 evaluate_bound. Use evaluate_bound.
1507 (evaluate_bound): New function.
1509 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1511 * trans-array.c (gfc_conv_section_startstride): Update assertion to
1512 also accept coarrays.
1514 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1516 * trans-array.c (gfc_conv_section_startstride): Factor common
1517 array ref references.
1519 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1521 * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of
1522 loop.codimen as argument to gfc_get_array_type_bounds.
1524 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1526 * trans-array.h (struct gfc_se): New flag want_coarray.
1527 * trans-intrinsic.c (trans_this_image, trans_image_index,
1528 conv_intrinsic_cobound): Set want_coarray.
1529 * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension
1530 earlier and without relying on the scalarizer.
1532 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1534 * expr.c (gfc_get_corank): Return 0 if input expression is not a
1537 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1539 * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
1540 descriptor setup code.
1542 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1544 * resolve.c (compare_spec_to_ref): Move coarray ref initialization
1546 (resolve_array_ref): ... here.
1548 2011-10-07 Mikael Morin <mikael.morin@sfr.fr>
1550 * check.c (is_coarray): Remove.
1551 (coarray_check): Use gfc_is_coarray.
1553 2011-10-07 Janus Weil <janus@gcc.gnu.org>
1556 * class.c (gfc_build_class_symbol): Fix whitespace.
1557 * module.c (mio_symbol): Set 'class_ok' attribute.
1558 * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
1559 been built for class symbols.
1561 2011-10-04 Janus Weil <janus@gcc.gnu.org>
1564 * interface.c (check_dummy_characteristics): Check the array shape.
1566 2011-10-01 Janus Weil <janus@gcc.gnu.org>
1569 * interface.c (get_expr_storage_size): Check if 'length' component is
1572 2011-09-29 Janus Weil <janus@gcc.gnu.org>
1575 * resolve.c (resolve_formal_arglist): Fix pureness check for dummy
1579 * symbol.c (check_conflict): Forbid TARGET attribute for statement
1582 2011-09-27 Jakub Jelinek <jakub@redhat.com>
1584 * trans-types.c (gfc_type_for_size): Return wider type
1585 if no suitable narrower type has been found.
1586 (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
1587 returned type doesn't have expected TYPE_MODE.
1589 2011-09-26 Janus Weil <janus@gcc.gnu.org>
1592 * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute.
1595 * interface.c (gfc_compare_interfaces): Bugfix in check for result type.
1597 2011-09-22 Janus Weil <janus@gcc.gnu.org>
1600 * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental
1602 * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check
1603 for PURE and ELEMENTAL attributes.
1604 (compare_actual_formal): Remove pureness check here.
1606 2011-09-20 Steven G. Kargl <kargl@gcc.gnu.org>
1608 * check.c (gfc_check_c_sizeof): Remove redundant word.
1610 2011-09-20 Simon Baldwin <simonb@google.com>
1612 * module.c (gfc_dump_module): Omit timestamp from output.
1614 2011-09-17 Janus Weil <janus@gcc.gnu.org>
1617 * symbol.c (gfc_use_derived): Fix coding style.
1619 2011-09-15 Janus Weil <janus@gcc.gnu.org>
1622 * resolve.c (resolve_transfer): Check if component 'ref' is defined.
1625 * symbol.c (gfc_use_derived): Check if argument 'sym' is defined.
1627 2011-09-14 Tobias Burnus <burnus@net-b.de>
1631 * check.c (gfc_check_null): Allow allocatables as MOLD to NULL.
1632 * resolve.c (resolve_transfer): Reject NULL without MOLD.
1633 * interface.c (gfc_procedure_use): Reject NULL without MOLD
1634 if no explicit interface is known.
1635 (gfc_search_interface): Reject NULL without MOLD if it would
1638 2011-09-13 Janus Weil <janus@gcc.gnu.org>
1641 * symbol.c (check_conflict): Check conflict between GENERIC and RESULT
1644 2011-09-11 Thomas Koenig <tkoenig@gcc.gnu.org>
1647 * frontend-passes.c (dummy_expr_callback): New function.
1648 (convert_do_while): New function.
1649 (optimize_namespace): Call code walker to convert do while loops.
1651 2011-09-11 Janus Weil <janus@gcc.gnu.org>
1655 * interface.c (check_dummy_characteristics): New function to check the
1656 characteristics of dummy arguments.
1657 (gfc_compare_interfaces,gfc_check_typebound_override): Call it here.
1659 2011-09-08 Mikael Morin <mikael.morin@sfr.fr>
1661 * trans-array.c (gfc_trans_constant_array_constructor): Remove
1662 superfluous initialisation of DIM field.
1663 (gfc_trans_array_constructor): Assert that DIMEN field is properly set.
1664 (gfc_conv_expr_descriptor): Ditto.
1665 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1667 2011-09-08 Mikael Morin <mikael.morin@sfr.fr>
1669 * trans-array.h (gfc_get_scalar_ss): New prototype.
1670 * trans-array.c (gfc_get_scalar_ss): New function.
1671 (gfc_walk_variable_expr, gfc_walk_op_expr,
1672 gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
1673 * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1674 (gfc_trans_assignment_1): Ditto.
1675 * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
1676 gfc_trans_where_3): Ditto.
1678 2011-09-08 Mikael Morin <mikael.morin@sfr.fr>
1680 * trans-array.h (gfc_get_temp_ss): New prototype.
1681 * trans-array.c (gfc_get_temp_ss): New function.
1682 (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
1683 (gfc_conv_expr_descriptor): Ditto.
1684 * trans-expr.c (gfc_conv_subref_array_arg): Ditto.
1686 2011-09-08 Mikael Morin <mikael.morin@sfr.fr>
1688 * trans-array.h (gfc_get_array_ss): New prototype.
1689 * trans-array.c (gfc_get_array_ss): New function.
1690 (gfc_walk_variable_expr, gfc_walk_function_expr,
1691 gfc_walk_array_constructor): Re-use gfc_get_array_ss.
1692 * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1693 * trans-intrinsic.c (gfc_walk_intrinsic_bound,
1694 gfc_walk_intrinsic_libfunc): Ditto.
1695 * trans-io.c (transfer_array_component): Ditto.
1697 2011-09-08 Tobias Burnus <burnus@net-b.de>
1700 * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT.
1701 * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT.
1702 * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT.
1703 * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode,
1704 lock_unlock_statement, sync_statement, gfc_match_allocate,
1705 gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic.
1706 (gfc_match_do): Match DO CONCURRENT.
1707 (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator,
1708 match_forall_iterator, match_forall_header, match_simple_forall,
1709 gfc_match_forall): Move up in the file.
1710 * parse.c (check_do_closure, parse_do_block): Handle do concurrent.
1711 * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT.
1712 * resolve.c (do_concurrent_flag): New global variable.
1713 (resolve_function, pure_subroutine, resolve_branch,
1714 gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent
1716 * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT.
1717 * trans-stmt.c (gfc_trans_do_concurrent): New function.
1718 (gfc_trans_forall_1): Handle do concurrent.
1719 * trans-stmt.h (gfc_trans_do_concurrent): New function prototype.
1720 * trans.c (trans_code): Call it.
1721 * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT.
1723 2011-09-07 Janus Weil <janus@gcc.gnu.org>
1726 * primary.c (gfc_match_structure_constructor): Handle parsing of
1727 procedure pointers components in structure constructors.
1728 * resolve.c (resolve_structure_cons): Check interface of procedure
1729 pointer components. Changed wording of some error messages.
1731 2011-09-04 Janus Weil <janus@gcc.gnu.org>
1734 * trans-types.c (gfc_sym_type): Check for proc_name.
1736 2011-08-30 Tobias Burnus <burnus@net-b.de>
1739 * trans-common.c (build_common_decl): Warn if named common
1740 block's size is not everywhere the same.
1742 2011-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
1745 * trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
1747 2011-08-29 Janus Weil <janus@gcc.gnu.org>
1750 * trans-decl.c (gfc_generate_function_code): Nullify polymorphic
1751 allocatable function results.
1753 2011-08-29 Tobias Burnus <burnus@net-b.de>
1755 * trans-decl.c (generate_coarray_sym_init): Use
1756 GFC_CAF_COARRAY_STATIC for static coarrays.
1758 2011-08-28 Dodji Seketeli <dodji@redhat.com>
1760 * scanner.c (load_file): Don't abuse LC_RENAME reason while
1761 (indirectly) calling linemap_add.
1763 2011-08-26 Jakub Jelinek <jakub@redhat.com>
1765 * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL
1767 * symbol.c (check_conflict): Allow threadprivate attribute with
1768 FL_PROCEDURE if proc_pointer.
1770 2011-08-25 Mikael Morin <mikael@gcc.gnu.org>
1773 * expr.c (gfc_free_shape): Do nothing if shape is NULL.
1774 (free_expr0): Remove redundant NULL shape check.
1775 * resolve.c (check_host_association): Ditto.
1776 * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is
1778 * trans-io.c (transfer_array_component): Ditto.
1780 2011-08-25 Tobias Burnus <burnus@net-b.de>
1782 * trans-array.c (gfc_conv_descriptor_token): Add assert.
1783 * trans-decl.c (gfc_build_qualified_array,
1784 create_function_arglist): Handle assumed-shape arrays.
1785 * trans-expr.c (gfc_conv_procedure_call): Ditto.
1786 * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't
1787 add "caf_token" to assumed-shape descriptors, new akind argument.
1788 (gfc_get_array_type_bounds): Pass akind.
1789 * trans.h (lang_decl): New elements caf_offset and token.
1790 (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros.
1792 2011-08-25 Tobias Burnus <burnus@net-b.de>
1794 * trans-array.c (structure_alloc_comps): Fix for allocatable
1795 scalar coarray components.
1796 * trans-expr.c (gfc_conv_component_ref): Ditto.
1797 * trans-type.c (gfc_get_derived_type): Ditto.
1799 2011-08-24 Tobias Burnus <burnus@net-b.de>
1802 * expr.c (check_init_expr): Return when an error occured.
1804 2011-08-24 Joseph Myers <joseph@codesourcery.com>
1806 * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.
1808 2011-08-23 Tobias Burnus <burnus@net-b.de>
1811 * symbol.c (gfc_add_type): Better diagnostic if redefining
1812 use-associated symbol.
1813 * module.c (gfc_use_module): Use module name as locus.
1815 2011-08-22 Gabriel Charette <gchare@google.com>
1817 * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
1818 defined in cpp_define_builtins.
1820 2011-08-22 Mikael Morin <mikael@gcc.gnu.org>
1823 * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
1824 * expr.c (gfc_clear_shape, gfc_free_shape): New functions.
1825 (free_expr0): Re-use gfc_free_shape.
1826 * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1827 * trans-io.c (transfer_array_component): Ditto.
1828 * resolve.c (check_host_association): Ditto.
1829 (gfc_expr_to_initialize): Don't force the rank value and free the shape
1830 after updating the expression. Recalculate shape and rank.
1831 (resolve_where_shape): Re-use gfc_clear_shape.
1832 * array.c (gfc_array_ref_shape): Ditto.
1834 2011-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
1837 * expr.c (gfc_check_assign): Check for type conversions when the
1838 right-hand side is a constant REAL/COMPLEX contstant the left-hand
1839 side is also REAL/COMPLEX. Don't warn when a narrowing conversion
1840 for REAL does not change the value of the constant.
1842 2011-08-21 Thomas Koenig <tkoenig@gcc.gnu.org>
1845 * resolve.c (resolve_array_ref): Don't calculate upper bound
1846 if the stride is zero.
1848 2011-08-20 Janus Weil <janus@gcc.gnu.org>
1851 * dependency.c (gfc_dep_compare_expr): Add new result value "-3".
1852 (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
1854 * frontend-passes.c (optimize_comparison): Ditto.
1855 * interface.c (gfc_check_typebound_override): Ditto.
1857 2011-08-19 Mikael Morin <mikael.morin@sfr.fr>
1860 * parse.c (parse_where): Undo changes after emitting an error.
1862 2011-08-19 Jakub Jelinek <jakub@redhat.com>
1865 * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
1866 bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
1867 lhs needs reallocation.
1868 * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
1869 code is NULL, emit a barrier if workshare emitted no code at all
1870 and NOWAIT clause isn't present.
1872 2011-08-19 Mikael Morin <mikael.morin@sfr.fr>
1875 * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
1876 * parse.c (check_statement_label): Accept ST_END_BLOCK and
1877 ST_END_ASSOCIATE as valid branch target.
1878 (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
1879 Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
1880 * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
1881 EXEC_END_NESTED_BLOCK.
1882 (resolve_branch): Ditto.
1883 (resolve_code): Add EXEC_END_NESTED_BLOCK case.
1884 * st.c (gfc_free_statement): Ditto.
1885 * trans.c (trans_code): Ditto.
1887 2011-08-18 Mikael Morin <mikael.morin@sfr.fr>
1890 * symbol.c (gfc_get_st_label): Use the derived type namespace when
1891 we are parsing a derived type definition.
1893 2011-08-18 Tobias Burnus <burnus@net-b.de>
1896 * parse.c (parse_derived): Add lock_type
1897 checks, improve coarray_comp handling.
1898 * resolve.c (resolve_allocate_expr,
1899 resolve_lock_unlock, resolve_symbol): Fix lock_type
1902 2011-08-17 Tobias Burnus <burnus@net-b.de>
1905 * trans-decl.c (generate_local_decl): Warn about
1906 unused explicitly imported module variables/parameters.
1908 2011-08-17 Janus Weil <janus@gcc.gnu.org>
1911 * resolve.c (resolve_fl_variable): Reject non-constant character lengths
1912 in COMMON variables.
1914 2011-08-16 Tobias Burnus <burnus@net-b.de>
1915 Dominique Dhumieres <dominiq@lps.ens.fr>
1918 * resolve.c (resolve_symbol): Fix stupid typo.
1920 2011-08-15 Tobias Burnus <burnus@net-b.de>
1922 * resolve.c (resolve_symbol): Fix coarray result-var check.
1924 2011-08-14 Steven G. Kargl <kargl@gcc.gnu.org>
1926 * module.c (use_iso_fortran_env_module): Spell 'referrenced' correctly.
1928 2011-08-14 Janus Weil <janus@gcc.gnu.org>
1931 * decl.c (check_function_name): New function, separated off from
1932 'variable_decl' and slightly extended.
1933 (variable_decl,attr_decl1): Call it.
1935 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1937 * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).
1939 2011-08-07 Janus Weil <janus@gcc.gnu.org>
1940 Thomas Koenig <tkoenig@gcc.gnu.org>
1943 * dependency.c (are_identical_variables): For dummy arguments only
1944 check for equal names, not equal symbols.
1945 * interface.c (gfc_check_typebound_override): Add checking for rank
1946 and character length.
1948 2011-08-07 Janus Weil <janus@gcc.gnu.org>
1951 * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
1953 * dependency.c (gfc_are_identical_variables,are_identical_variables):
1954 Renamed the former to the latter and made static.
1955 (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
1956 commutativity of multiplication.
1957 (gfc_is_same_range,is_same_range): Renamed the former to the latter,
1958 made static and removed argument 'def'.
1959 (check_section_vs_section): Renamed 'gfc_is_same_range'.
1960 * gfortran.h (gfc_check_typebound_override): New prototype.
1961 * interface.c (gfc_check_typebound_override): Moved here from ...
1962 * resolve.c (check_typebound_override): ... here (and renamed).
1963 (resolve_typebound_procedure): Renamed 'check_typebound_override'.
1965 2011-08-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1968 * target-memory.c (gfc_target_expr-size): Don't clobber typespec
1970 * simplify.c (gfc_simplify_transfer): Don't calculate source_size
1973 2011-08-05 Thomas Koenig <tkoenig@gcc.gnu.org>
1976 * gfortran.h (gfc_calculate_transfer_sizes): Add prototype.
1977 * target-memory.h (gfc_target_interpret_expr): Add boolean
1978 argument wether to convert wide characters.
1979 * target-memory.c (gfc_target_expr_size): Also return length
1980 of characters for non-constant expressions if these can be
1981 determined from the cl.
1982 (interpret_array): Add argument for gfc_target_interpret_expr.
1983 (gfc_interpret_derived): Likewise.
1984 (gfc_target_interpret_expr): Likewise.
1985 * check.c: Include target-memory.h.
1986 (gfc_calculate_transfer_sizes): New function.
1987 (gfc_check_transfer): When -Wsurprising is in force, calculate
1988 sizes and warn if result is larger than size (check moved from
1989 gfc_simplify_transfer).
1990 * simplify.c (gfc_simplify_transfer): Use
1991 gfc_calculate_transfer_sizes. Remove warning.
1993 2011-08-04 Richard Guenther <rguenther@suse.de>
1996 * trans-array.c (add_to_offset): New function.
1997 (gfc_conv_array_ref): Build the array index expression in optimally
1999 (gfc_walk_variable_expr): Adjust for the backward walk.
2001 2011-08-02 Daniel Kraft <d@domob.eu>
2004 * trans-array.c (gfc_trans_auto_array_allocation): Change
2005 gfc_start_block to gfc_init_block to avoid spurious extra-scope.
2007 2011-08-02 Tobias Burnus <burnus@net-b.de>
2009 * trans-array.c (gfc_array_allocate): Pass token to
2010 gfc_allocate_allocatable for -fcoarray=lib.
2011 * trans-stmt.c (gfc_trans_allocate): Update
2012 gfc_allocate_allocatable call.
2013 * trans.h (gfc_allocate_allocatable): Update prototype.
2014 (gfc_allocate_using_lib): Remove.
2015 * trans.c (gfc_allocate_using_lib): Make static, handle token.
2016 (gfc_allocate_allocatable): Ditto.
2018 2011-08-02 Jakub Jelinek <jakub@redhat.com>
2021 * cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
2022 * openmp.c (gfc_free_omp_clauses): Free also final_expr.
2023 (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
2024 (gfc_match_omp_clauses): Handle parsing final and mergeable
2026 (OMP_TASK_CLAUSES): Allow final and mergeable clauses.
2027 (gfc_match_omp_taskyield): New function.
2028 (resolve_omp_clauses): Resolve final clause. Allow POINTERs and
2029 Cray pointers in clauses other than REDUCTION.
2030 (gfc_match_omp_atomic): Match optional
2031 read/write/update/capture keywords after !$omp atomic.
2032 (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
2033 * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
2034 print final and mergeable clauses.
2035 (show_code_node): Handle EXEC_OMP_TASKYIELD.
2036 * trans-openmp.c (gfc_trans_omp_clauses): Handle final and
2038 (gfc_trans_omp_taskyield): New function.
2039 (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
2040 (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
2041 (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
2042 (gfc_omp_predetermined_sharing): Adjust comment.
2043 * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
2045 (gfc_omp_clauses): Add final_expr and mergeable fields.
2046 (gfc_exec_op): Add EXEC_OMP_TASKYIELD.
2047 (gfc_omp_atomic_op): New enum typedef.
2048 (struct gfc_code): Add ext.omp_atomic.
2049 * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
2050 * frontend-passes.c (gfc_code_walker): Also walk final_expr.
2051 * resolve.c (gfc_resolve_blocks, resolve_code): Handle
2053 * st.c (gfc_free_statement): Likewise.
2054 * match.h (gfc_match_omp_taskyield): New prototype.
2055 * parse.c (decode_omp_directive): Handle taskyield directive.
2056 Handle !$omp end atomic.
2057 (case_executable): Add ST_OMP_TASKYIELD case.
2058 (gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
2059 (parse_omp_atomic): Return gfc_statement instead of void.
2060 For !$omp atomic capture parse two assignments instead of
2061 just one and require !$omp end atomic afterwards, for
2062 other !$omp atomic forms just allow !$omp end atomic at the
2064 (parse_omp_structured_block, parse_executable): Adjust
2065 parse_omp_atomic callers.
2067 2011-08-02 Tobias Burnus <burnus@net-b.de>
2069 * intrinsic.c (OMP_LIB): Updated openmp_version's
2071 * gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
2072 * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
2073 remove deleted omp_integer_kind and omp_logical_kind constants.
2075 2011-07-31 Janus Weil <janus@gcc.gnu.org>
2078 * resolve.c (resolve_structure_cons): Don't do the full dt resolution,
2079 only call 'resolve_fl_derived0'.
2080 (resolve_typebound_procedures): Resolve typebound procedures of
2082 (resolve_fl_derived0): New function, which does a part of the work
2083 for 'resolve_fl_derived'.
2084 (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
2087 2011-07-30 Thomas Koenig <tkoenig@gcc.gnu.org>
2090 * expr.c (gfc_simplify_expr): If end of a string is less
2091 than zero, set it to zero.
2093 2011-07-28 Jakub Jelinek <jakub@redhat.com>
2096 * frontend-passes.c (optimize_minmaxloc): New function.
2097 (optimize_expr): Call it.
2099 2011-07-27 Tobias Burnus <burnus@net-b.de>
2102 * trans-types.c (gfc_get_derived_type): Ensure that pointer
2103 component types are marked as nonrestricted.
2105 2011-07-27 Daniel Carrera <dcarrera@gmail.com>
2108 * trans.c (gfc_allocate_using_malloc): Change function signature.
2109 Return nothing. New parameter "pointer". Eliminate temorary variables.
2110 (gfc_allocate_using_lib): Ditto.
2111 (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
2112 and gfc_allocate_using_malloc. Do not free and then reallocate a
2113 variable that is already allocated.
2114 (gfc_likely): New function. Basedon gfc_unlikely.
2115 * trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
2116 Instructions to modify the array descriptor are stored in this block
2117 while other instructions continue to be stored in "pblock".
2118 (gfc_array_allocate): Update call to gfc_array_init_size. Move the
2119 descriptor_block so that the array descriptor is only updated if
2120 the array was allocated successfully.
2121 Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
2122 * trans.h (gfc_allocate_allocatable): Change function signature.
2123 Function now returns void.
2124 (gfc_allocate_using_lib): Ditto, and new function parameter.
2125 (gfc_allocate_using_malloc): Ditto.
2126 * trans-openmp.c (gfc_omp_clause_default_ctor,
2127 gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
2128 to gfc_allocate_allocatable with gfc_allocate_using_malloc.
2129 * trans-stmt.c (gfc_trans_allocate): Update function calls for
2130 gfc_allocate_allocatable and gfc_allocate_using_malloc.
2132 2011-07-26 Tobias Burnus <burnus@net-b.de>
2134 * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
2135 (gfc_conv_descriptor_token): New function.
2136 * trans-array.h (gfc_conv_descriptor_token): New prototype.
2137 * trans-types.c (gfc_get_array_descriptor_base): For coarrays
2138 with -fcoarray=lib, append "void *token" to the array descriptor.
2139 (gfc_array_descriptor_base_caf): New static variable.
2140 * trans-expr.c (gfc_conv_procedure_call): Handle token and offset
2141 when passing a descriptor coarray to a nondescriptor dummy.
2143 2011-07-23 Tobias Burnus <burnus@net-b.de>
2145 * resolve.c (resolve_symbol): Fix coarray var decl check.
2147 2011-07-21 Daniel Carrera <dcarrera@gmail.com>
2149 * trans.c (gfc_allocate_with_status): Split into two functions
2150 gfc_allocate_using_malloc and gfc_allocate_usig_lib.
2151 (gfc_allocate_using_malloc): The status parameter is now the
2152 actual status rather than a pointer. Code cleanup.
2153 (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
2154 errlen. Pass these to the coarray lib.
2155 * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
2156 gfc_allocate_allocatable.
2157 (gfc_omp_clause_copy_ctor): Ditto.
2158 (gfc_trans_omp_array_reduction): Ditto.
2159 * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
2160 gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
2161 fuctions. If using coarray lib, pass errmsg and errlen to the allocate
2162 functions. Move error checking outside the if (!gfc_array_allocate)
2163 block so that it also affects trees produced by gfc_array_allocate.
2164 * trans-array.c (gfc_array_allocate): Add new parameters errmsg
2165 and errlen. Replace parameter pstat by status. Code cleanup. Update
2166 calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
2167 * trans-array.h (gfc_array_allocate): Update signature of
2170 2011-07-21 Steven G. Kargl <kargl@gcc.gnu.org>
2172 * gfortran.texi: Remove a duplicate word.
2174 2011-07-21 Tobias Burnus <burnus@net-b.de>
2176 * check.c (gfc_check_present): Allow coarrays.
2177 * trans-array.c (gfc_conv_array_ref): Avoid casting
2178 when a pointer is wanted.
2179 * trans-decl.c (create_function_arglist): For -fcoarray=lib,
2180 handle hidden token and offset arguments for nondescriptor
2182 * trans-expr.c (get_tree_for_caf_expr): New function.
2183 (gfc_conv_procedure_call): For -fcoarray=lib pass the
2184 token and offset for nondescriptor coarray dummies.
2185 * trans.h (lang_type): Add caf_offset tree.
2186 (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.
2188 2011-07-19 Tobias Burnus <burnus@net-b.de>
2190 * expr.c (gfc_is_coarray): New function.
2191 * gfortran.h (gfc_is_coarray): New prototype.
2192 * interface.c (compare_parameter): Use it.
2194 2011-07-19 Richard Guenther <rguenther@suse.de>
2196 * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
2197 (gfc_trans_string_copy): Likewise.
2198 * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
2199 * trans-types.c (gfc_get_array_descr_info): Likewise.
2200 * trans.c (gfc_build_array_ref): Likewise.
2202 2011-07-19 Janus Weil <janus@gcc.gnu.org>
2205 * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.
2207 2011-07-18 Tobias Burnus <burnus@net-b.de>
2209 * trans-decl.c (gfc_build_qualified_array): Make coarray's
2210 token TYPE_QUAL_RESTRICT.
2212 2011-07-18 Tobias Burnus <burnus@net-b.de>
2214 * resolve.c (resolve_transfer): Mention defined I/O
2215 in the diagnostic for alloc_comp/pointer_comp.
2217 2011-07-17 Tobias Burnus <burnus@net-b.de>
2220 * module.c (check_for_ambiguous): Check whether the name is matches
2221 the current program unit.
2223 2011-07-17 Tobias Burnus <burnus@net-b.de>
2226 * expr.c (gfc_check_pointer_assign): Fix checking for invalid
2229 2011-07-16 Tobias Burnus <burnus@net-b.de>
2231 * expr.c (gfc_ref_this_image): New function.
2232 (gfc_is_coindexed): Use it.
2233 * gfortran.h (gfc_ref_this_image): New prototype.
2234 * resolve.c (resolve_deallocate_expr,
2235 resolve_allocate_expr): Support alloc scalar coarrays.
2236 * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
2237 gfc_conv_descriptor_cosize, gfc_array_allocate,
2238 gfc_trans_deferred_array): Ditto.
2239 * trans-expr.c (gfc_conv_variable) Ditto.:
2240 * trans-stmt.c (gfc_trans_deallocate): Ditto.
2241 * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
2242 gfc_get_array_descr_info): Ditto.
2243 * trans-decl.c (gfc_get_symbol_decl): Ditto.
2245 2011-07-11 Jakub Jelinek <jakub@redhat.com>
2248 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
2249 inner_size to gfc_index_one_node instead of integer_one_node.
2251 2011-07-10 Tobias Burnus <burnus@net-b.de>
2254 * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
2256 2011-07-09 Uros Bizjak <ubizjak@gmail.com>
2259 * expr.c (gfc_get_corank): Change return value to int.
2260 * gfortran.h (gfc_get_corank): Update function prototype.
2262 2011-07-07 Mikael Morin <mikael.morin@sfr.fr>
2265 * resolve.c (resolve_symbol): Force resolution of function result's
2266 array specification.
2268 2011-07-07 Tobias Burnus <burnus@net-b.de>
2270 * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
2271 with NULL arguments for (new) stat=/errmsg= arguments.
2273 2011-07-06 Daniel Carrera <dcarrera@gmail.com>
2275 * trans-array.c (gfc_array_allocate): Rename allocatable_array to
2276 allocatable. Rename function gfc_allocate_array_with_status to
2277 gfc_allocate_allocatable_with_status. Update function call for
2278 gfc_allocate_with_status.
2279 * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
2280 gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
2281 * trans-stmt.c (gfc_trans_allocate): Update function call for
2282 gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
2283 to gfc_allocate_allocatable_with_status.
2284 * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
2285 so it uses the library for memory allocation when -fcoarray=lib.
2286 (gfc_allocate_allocatable_with_status): Renamed from
2287 gfc_allocate_array_with_status.
2288 (gfc_allocate_allocatable_with_status): Update function call for
2289 gfc_allocate_with_status.
2290 * trans.h (gfc_coarray_type): New enum.
2291 (gfc_allocate_with_status): Update prototype.
2292 (gfc_allocate_allocatable_with_status): Renamed from
2293 gfc_allocate_array_with_status.
2294 * trans-decl.c (generate_coarray_sym_init): Use the new constant
2295 GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.
2297 2011-07-06 Richard Guenther <rguenther@suse.de>
2299 * f95-lang.c (gfc_init_decl_processing):
2300 Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
2302 2011-07-04 Jakub Jelinek <jakub@redhat.com>
2305 * gfortranspec.c (lang_specific_driver): Ignore options with
2306 CL_ERR_MISSING_ARG errors.
2308 2011-07-02 Janus Weil <janus@gcc.gnu.org>
2311 * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
2313 2011-06-30 Jakub Jelinek <jakub@redhat.com>
2316 * gfortran.h (gfc_constructor): Add repeat field.
2317 * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
2318 * array.c (current_expand): Add repeat field.
2319 (expand_constructor): Copy repeat.
2320 * constructor.c (node_free, node_copy, gfc_constructor_get,
2321 gfc_constructor_lookup): Handle repeat field.
2322 (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
2323 * data.h (gfc_assign_data_value): Add mpz_t * argument.
2324 (gfc_assign_data_value_range): Removed.
2325 * constructor.h (gfc_constructor_advance): Removed.
2326 (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
2327 * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
2328 also handle overwriting a range with a single entry.
2329 (gfc_assign_data_value_range): Removed.
2330 * resolve.c (check_data_variable): Adjust gfc_assign_data_value
2331 call. Use gfc_assign_data_value instead of
2332 gfc_assign_data_value_expr.
2334 2011-06-27 Janus Weil <janus@gcc.gnu.org>
2337 * trans-array.c (structure_alloc_comps): Make sure sub-components
2338 and extended types are correctly deallocated.
2340 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
2342 * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
2343 * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
2344 * trans-decl.c: Add sync_ or SYNC__ to builtin names.
2346 2011-06-21 Janus Weil <janus@gcc.gnu.org>
2349 * class.c (gfc_find_derived_vtab): Make vtab and default initialization
2350 symbols SAVE_IMPLICIT.
2352 2011-06-20 Tobias Burnus <burnus@net-b.de>
2355 * gfortran.h (gfc_check_vardef_context): Update prototype.
2356 (iso_fortran_env_symbol): Handle derived types.
2357 (symbol_attribute): Add lock_comp.
2358 * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
2359 * interface.c (compare_parameter, gfc_procedure_use): Handle
2361 (compare_actual_formal): Update
2362 gfc_check_vardef_context call.
2363 * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
2364 * intrinsic.c (check_arglist): Ditto.
2365 * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
2366 * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
2367 * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
2368 * module.c (mio_symbol_attribute): Handle lock_comp.
2369 (create_derived_type): New function.
2370 (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
2371 * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
2372 * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
2373 checks for LOCK_TYPE.
2374 (gfc_resolve_iterator, resolve_deallocate_expr,
2375 resolve_allocate_expr, resolve_code, resolve_transfer): Update
2376 gfc_check_vardef_context call.
2377 * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
2378 * trans-stmt.c (gfc_trans_lock_unlock): New function.
2379 * trans.c (trans_code): Handle LOCK and UNLOCK.
2381 2011-06-18 Janus Weil <janus@gcc.gnu.org>
2384 * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
2387 2011-06-17 Janus Weil <janus@gcc.gnu.org>
2390 * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
2391 make sure the vtab is present.
2393 2011-06-16 Janus Weil <janus@gcc.gnu.org>
2396 * interface.c (gfc_extend_assign): Propagate the locus from the
2397 assignment to the type-bound procedure call.
2399 2011-06-16 Janus Weil <janus@gcc.gnu.org>
2402 * module.c (mio_component): Make sure the 'class_ok' attribute is set
2403 for use-associated CLASS components.
2404 * parse.c (parse_derived): Check for 'class_ok' attribute.
2405 * resolve.c (resolve_fl_derived): Ditto.
2407 2011-06-13 Thomas Koenig <tkoenig@gcc.gnu.org>
2409 * frontend-passes.c (remove_trim): New function.
2410 (optimize_assignment): Use it.
2411 (optimize_comparison): Likewise. Return correct status
2412 for previous change.
2414 2011-06-12 Tobias Burnus
2417 * trans-expr.c (gfc_trans_assignment_1): Tell
2418 gfc_trans_scalar_assign to also deep-copy RHS nonvariables
2419 with allocatable components.
2420 * trans-array.c (gfc_conv_expr_descriptor): Ditto.
2422 2011-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
2424 * frontend-passes.c (optimize_assignment): Follow chains
2425 of concatenation operators to the end for removing trailing
2426 TRIMS for assignments.
2428 2011-06-10 Daniel Carrera <dcarrera@gmail.com>
2430 * trans-decl.c (gfc_build_builtin_function_decls):
2431 Updated declaration of caf_sync_all and caf_sync_images.
2432 * trans-stmt.c (gfc_trans_sync): Function
2433 can now handle a "stat" variable that has an integer type
2434 different from integer_type_node.
2436 2011-06-09 Richard Guenther <rguenther@suse.de>
2438 * trans.c (gfc_allocate_array_with_status): Mark error path
2441 2011-06-08 Tobias Burnus <burnus@net-b.de>
2444 * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
2445 (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
2446 (gfc_code): Add expr4.
2447 * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
2448 * match.c (gfc_match_lock, gfc_match_unlock,
2449 lock_unlock_statement): New functions.
2450 (sync_statement): Bug fix, avoiding double freeing.
2451 (gfc_match_if): Handle LOCK/UNLOCK statement.
2452 * parse.c (decode_statement, next_statement,
2453 gfc_ascii_statement): Ditto.
2454 * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
2455 * resolve.c (resolve_lock_unlock): New function.
2456 (resolve_code): Call it.
2457 * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
2459 2011-06-07 Richard Guenther <rguenther@suse.de>
2461 * f95-lang.c (gfc_init_decl_processing): Do not set
2462 size_type_node or call set_sizetype.
2464 2011-06-05 Tobias Burnus <burnus@net-b.de>
2467 * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
2470 2011-06-05 Andreas Schmidt <andreas.schmidt.42@gmx.net>
2471 Thomas Koenig <tkoenig@gcc.gnu.org>
2473 * dump-parse-tree.c (show_symbol): Don't dump namespace
2474 for ENTRY to avoid infinite recursion.
2476 2011-06-02 Asher Langton <langton2@llnl.gov>
2479 * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
2480 pointees as AS_EXPLICIT.
2482 2011-06-02 Asher Langton <langton2@llnl.gov>
2485 * decl.c (variable_decl): Merge current_as before copying to cp_as.
2487 2011-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
2490 * decl.c (gfc_match_modproc): Allow for a double colon in a module
2491 procedure statement.
2492 * parse.c ( decode_statement): Deal with whitespace around :: in
2495 2011-05-31 Tobias Burnus <burnus@net-b.de>
2498 * intrinsic.c (klass): Add CLASS_ATOMIC.
2499 (add_subroutines): Add atomic_ref/atomic_define.
2500 * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
2501 * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
2502 gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
2503 * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
2504 and GFC_ISYM_ATOMIC_REF.
2505 (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
2506 * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
2508 * check.c (gfc_check_atomic, gfc_check_atomic_def,
2509 gfc_check_atomic_ref): New functions.
2510 * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
2511 ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
2512 * trans-intrinsic.c (conv_intrinsic_atomic_def,
2513 conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
2515 (conv_intrinsic_move_alloc) Renamed from
2516 gfc_conv_intrinsic_move_alloc - and made static.
2517 * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
2518 (gfc_conv_intrinsic_subroutine) Add prototype.
2519 * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
2520 * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
2522 (gfc_init_kinds): Set them.
2524 2011-05-31 Tobias Burnus <burnus@net-b.de>
2527 * trans-array.c (gfc_trans_dummy_array_bias): Handle
2528 cobounds of assumed-shape arrays.
2530 2011-05-31 Tobias Burnus <burnus@net-b.de>
2533 * resolve.c (resolve_fl_variable): Handle static coarrays
2534 with non-constant cobounds.
2536 2011-05-29 Janus Weil <janus@gcc.gnu.org>
2539 * module.c (mio_component_ref): Handle components of extended types.
2540 * symbol.c (gfc_find_component): Return is sym is NULL.
2542 2011-05-29 Tobias Burnus <burnus@net-b.de>
2545 * interface.c (compare_parameter): Add check for passing coarray
2546 to allocatable noncoarray dummy.
2548 2011-05-29 Tobias Burnus <burnus@net-b.de>
2549 Richard Guenther <rguenther@suse.de>
2552 * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
2553 the type's TREE_TYPE.
2554 * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
2555 * trans.c (gfc_build_array_ref): Ditto.
2557 2011-05-27 Tobias Burnus <burnus@net-b.de>
2560 * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
2561 * match.c (gfc_match_nullify): Ditto.
2562 * resolve.c (resolve_deallocate_expr): Ditto.
2563 * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
2566 2011-05-27 Tobias Burnus <burnus@net-b.de>
2569 * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
2570 * intrinsic.c (add_functions): Add rank intrinsic.
2571 (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
2572 * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
2573 * simplify.c (gfc_simplify_rank): New function.
2574 * intrinsic.texi (RANK): Add description for rank intrinsic.
2575 * check.c (gfc_check_rank): New function.
2577 2011-05-26 Paul Thomas <pault@gcc.gnu.org>
2578 Thomas Koenig <tkoenig@gcc.gnu.org>
2581 * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
2582 changed to GFC_ENABLE_REVERSE.
2583 * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
2584 to GFC_INHIBIT_REVERSE.
2585 * gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE,
2586 GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
2587 * dependency.c (gfc_dep_resolver): Change names for elements of
2588 gfc_reverse as necessary. Change the logic so that forward
2589 dependences are remembered as well as backward ones. When both
2590 have appeared, force a temporary.
2592 2011-05-26 Tobias Burnus <burnus@net-b.de>
2595 * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
2596 * trans-decl.c (has_coarray_vars, caf_init_block,
2597 gfor_fndecl_caf_register): New file-global variables.
2598 (gfc_finish_var_decl): Make sure that coarrays in main are static.
2599 (gfc_build_qualified_array): Generate coarray token variable.
2600 (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
2601 (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
2602 (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
2604 (generate_local_decl): Check for local coarrays.
2605 (create_main_function): SYNC ALL before calling MAIN.
2606 (generate_coarray_sym_init): Register static coarray.
2607 (generate_coarray_init): Generate CAF registering constructor
2609 (gfc_generate_function_code): Call it, if needed, do not create
2611 (gfc_generate_module_vars, gfc_process_block_locals): Call
2612 generate_coarray_init.
2613 * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
2615 * trans.h (gfor_fndecl_caf_register): New variable.
2616 (lang_type): New element caf_token.
2617 (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
2619 2011-05-24 Joseph Myers <joseph@codesourcery.com>
2621 * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
2622 (gfortran$(exeext)): Use libcommon-target.a.
2624 2011-05-22 Thomas Koenig <tkoenig@gcc.gnu.org>
2626 * frontend-passes.c (cfe_register_funcs): Also register
2627 character functions if their charlens are known and constant.
2628 Also register allocatable functions.
2630 2011-05-21 Janus Weil <janus@gcc.gnu.org>
2633 * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
2634 selector is ALLOCATABLE.
2636 2011-05-20 Janus Weil <janus@gcc.gnu.org>
2639 * module.c (write_dt_extensions): Do not write extended types which
2640 are local to a subroutine.
2642 2011-05-20 Joseph Myers <joseph@codesourcery.com>
2644 * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
2646 2011-05-20 Janne Blomqvist <jb@gcc.gnu.org>
2648 * gfortran.texi (set_fpe): Update documentation.
2649 * invoke.texi (-ffpe-trap): Likewise.
2650 * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
2651 * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
2652 precision an alias for it.
2654 2011-05-19 Tobias Burnus <burnus@net-b.de>
2657 * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
2658 (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
2660 * trans.c (gfc_build_array_ref): Return original type not variant
2661 copy for scalar coarrays.
2662 * trans-array.c (gfc_conv_array_ref): Ditto.
2664 2011-05-18 Janus Weil <janus@gcc.gnu.org>
2667 * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
2668 argument to avoid memory leaks.
2670 2011-05-16 Tobias Burnus <burnus@net-b.de>
2672 * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
2673 (Fortran 2008 status): Multi-image support for coarrays.
2674 (TR 19113 status): New section.
2676 2011-05-15 Tobias Burnus <burnus@net-b.de>
2679 actual argument is not an array; rank mismatch is diagnosted later.
2680 * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
2682 * trans-types.c (gfc_get_array_type_bounds): Ditto.
2684 2011-05-15 Joern Rennecke <amylaar@spamcop.net>
2687 * trans-types.c: Include "tm.h".
2688 [0] (c_size_t_size): Remove.
2690 2011-05-15 Janne Blomqvist <jb@gcc.gnu.org>
2693 * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
2694 is now the default, the library defaults to backtracing disabled.
2696 2011-05-14 Tobias Burnus <burnus@net-b.de>
2698 * lang.opt (fdump-core): Re-add as ignored option
2699 for backward compatibility.
2701 2011-05-14 Janne Blomqvist <jb@gcc.gnu.org>
2704 * gfortran.texi: Update mixed-language programming section
2705 reflecting the removal of the fdump-core option, and that
2706 -fbacktrace is now enabled by default.
2708 2011-05-14 Thomas Koenig <tkoenig@gcc.gnu.org>
2711 * frontend-passes.c (cfe_register_funcs): Also register functions
2712 for potential elimination if the rank is > 0, the shape is unknown
2713 and reallocate on assignment is active.
2714 (create_var): For rank > 0 functions with unknown shape, create
2715 an allocatable temporary.
2717 2011-05-14 Tobias Burnus <burnus@net-b.de>
2720 * interface.c (compare_parameter): Skip diagnostic if
2721 actual argument is not an array; rank mismatch is diagnosted later.
2723 2011-05-14 Tobias Burnus <burnus@net-b.de>
2725 * options.c (gfc_init_options, gfc_post_options): Enable
2726 -fstack-arrays by default if -Ofast is used.
2727 * invoke.texi (-fstack-arrays): Document this.
2729 2011-05-14 Janne Blomqvist <jb@gcc.gnu.org>
2732 * gfortran.h (gfc_option_t): Remove flag_dump_core.
2733 * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
2734 (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
2735 * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
2736 * invoke.texi: Remove -fdump-core, document that -fbacktrace is
2738 * lang.opt: Remove -fdump-core.
2739 * options.c (gfc_init_options): Make backtrace default to enabled,
2741 (gfc_handle_option): Remove OPT_fdump-core.
2742 * trans-decl.c: Pass a 0 to preserve ABI.
2744 2011-05-14 Janne Blomqvist <jb@gcc.gnu.org>
2746 * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
2748 2011-05-13 Tobias Burnus <burnus@net-b.de>
2751 * io.c (resolve_tag_format, resolve_tag): Make sure
2752 that the string is of default kind.
2753 (gfc_resolve_inquire): Also resolve decimal tag.
2755 2011-05-12 Tobias Burnus <burnus@net-b.de>
2758 * resolve.c (resolve_intrinsic): Don't resolve module
2759 intrinsics multiple times.
2761 2011-05-11 Tobias Burnus <burnus@net-b.de>
2764 * expr.c (gfc_is_constant_expr): Use e->value.function.esym
2765 instead of e->symtree->n.sym, if available.
2767 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2769 * f95-lang.c (global_bindings_p): Return bool and simplify.
2771 2011-05-07 Tobias Burnus <burnus@net-b.de>
2775 * trans.h: Move gfc_init_coarray_decl prototype ...
2776 * gfortran.h: ... to here.
2777 * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
2778 (gfc_parse_file): Update translate_all_program_units call.
2779 * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
2780 new argument whether DECL_EXTERNAL should be used.
2781 (create_main_function): Update gfc_init_coarray_decl call.
2782 * trans-intrinsic.c (trans_this_image, trans_image_index,
2783 conv_intrinsic_cobound): Ditto.
2785 2011-05-06 Tobias Burnus <burnus@net-b.de>
2788 * trans-array.c (gfc_walk_variable_expr): Continue walking
2789 for scalar coarrays.
2790 * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
2791 (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
2792 (trans_this_image): Fix algorithm.
2793 * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
2794 gfc_sym_type): Handle scalar coarrays.
2796 2011-05-06 Tobias Burnus <burnus@net-b.de>
2800 * lang.opt (std=f2008tr): New.
2801 * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
2802 * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
2803 procedures for -std=f2008tr/gnu/legacy.
2804 (gfc_match_import): Set sym to NULL.
2805 * options.c (set_default_std_flags,gfc_handle_option): Handle
2807 * invoke.texi (-std=): Document -std=f2008tr.
2809 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2811 * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
2812 * trans-io.c (add_case): Likewise.
2813 * trans-stmt.c (gfc_trans_integer_select): Likewise.
2814 (gfc_trans_character_select): Likewise.
2816 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2818 * trans-decl.c (trans_function_start): Do not set
2819 dont_save_pending_sizes_p.
2821 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2823 * trans.h (gfc_chainon_list): Delete.
2824 * trans.c (gfc_chainon_list): Delete.
2826 2011-05-04 Tobias Burnus <burnus@net-b.de>
2829 * invoke.texi (fno-protect-parens): Document
2830 that -Ofast implies -fno-protect-parens.
2831 * options.c (gfc_init_options, gfc_post_options):
2832 Make -Ofast imply -fno-protect-parens.
2834 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2836 * trans-decl.c (build_library_function_decl_1): Call
2837 build_function_type_vec. Adjust argument list building accordingly.
2838 * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
2839 * trans-types.c (gfc_get_function_type): Likewise.
2841 2011-05-04 Richard Guenther <rguenther@suse.de>
2843 * trans-array.c (gfc_trans_array_constructor_value): Use
2844 size_int for bounds of range types.
2845 (gfc_trans_array_constructor_value): Use size_type_node
2846 for memcpy argument.
2847 * trans-common.c (build_field): Use gfc_charlen_type_node
2849 * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
2850 as type to build_int_cst.
2851 * trans-const.c (gfc_build_string_const): Use size_int
2852 for bounds of range types.
2853 (gfc_build_wide_string_const): Likewise.
2854 * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
2856 (gfc_trans_character_select): Likewise.
2857 (gfc_trans_character_select): Do not pass NULL
2858 as type to build_int_cst.
2859 (gfc_trans_character_select): Use size_int for bounds of range types.
2860 * trans-io.c (gfc_build_io_library_fndecls): Likewise.
2861 (add_case): Do not pass NULL as type to build_int_cst.
2862 (transfer_expr): Likewise.
2863 (transfer_array_desc): Likewise.
2864 * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
2866 (gfc_trans_assign_aux_var): Likewise.
2867 (create_main_function): Use size_int for bounds of range types.
2868 * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
2869 NULL as type to build_int_cst.
2870 (gfc_conv_intrinsic_spacing): Likewise.
2871 (gfc_conv_intrinsic_rrspacing): Likewise.
2872 (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
2874 2011-05-04 Richard Guenther <rguenther@suse.de>
2876 * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
2877 argument to int_const_binop.
2879 2011-05-03 Tobias Burnus <burnus@net-b.de>
2882 * trans-intrinsic.c (trans_this_image): Implement version with
2884 (conv_intrinsic_cobound): Simplify code.
2885 (gfc_conv_intrinsic_function): Call trans_this_image for
2886 this_image(coarray) except for -fcoarray=single.
2888 2011-05-02 Steven G. Kargl <kargl@gcc.gnu.org>
2891 * gfortran.texi: Document the 'Q' exponent-letter extension.
2892 * invoke.texi: Document -Wreal-q-constant.
2893 * lang.opt: Add -Wreal-q-constant option.
2894 * gfortran.h: Add warn_real_q_constant to option struct.
2895 * primary.c (match_real_constant): Use it. Accept 'Q' as
2896 exponent-letter for REAL(16) real-literal-constant with a
2897 fallback to REAL(10) or error if REAL(10) is not available.
2898 * options.c (gfc_init_options, set_Wall) Set it.
2899 (gfc_handle_option): Handle new option.
2901 2011-04-30 Thomas Koenig <tkoenig@gcc.gnu.org>
2903 * dump-prase-tree.c (show_code_node): Set the current
2904 namespace to the BLOCK before displaying it; restore
2907 2011-04-30 Tobias Burnus <burnus@net-b.de>
2910 * decl.c (gfc_match_import): Don't try to find the
2911 symbol if already found.
2913 2011-04-30 Paul Thomas <pault@gcc.gnu.org>
2916 * trans-expr.c (fcncall_realloc_result): Set the bounds and the
2917 offset so that the lbounds are one.
2918 (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
2920 2011-04-29 Paul Thomas <pault@gcc.gnu.org>
2923 * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
2924 automatic reallocation when the lhs is a target.
2927 * trans-expr.c (fcncall_realloc_result): Make sure that the
2928 result dtype field is set before the function call.
2930 2011-04-29 Tobias Burnus <burnus@net-b.de>
2933 * resolve.c (resolve_typebound_generic_call): Don't check access
2934 flags of the specific function.
2937 * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
2938 to AS_ASSUMED_SHAPE for function results.
2939 (resolve_fl_var_and_proc): Print also for function results with
2940 AS_DEFERRED an error, if they are not a pointer or allocatable.
2941 (resolve_types): Make sure arguments of procedures in interface
2942 blocks are resolved.
2944 2011-04-29 Michael Matz <matz@suse.de>
2946 * options.c (options.c): Set warn_maybe_uninitialized.
2948 2011-04-28 Tobias Burnus <burnus@net-b.de>
2951 * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
2952 function results only once.
2953 (resolve_symbol): Always resolve function results.
2956 * expr.c (gfc_check_vardef_context): Fix handling of generic
2958 * interface.c (check_interface0): Reject internal functions
2959 in generic interfaces, unless -std=gnu.
2961 2011-04-27 Tobias Burnus <burnus@net-b.de>
2964 * resolve.c (resolve_global_procedure): Error recovery -
2965 avoid segfault for (non)character-returning functions.
2967 2011-04-26 Thomas Koenig <tkoenig@gcc.gnu.org>
2969 * decl.c (gfc_match_end): Check that the block name starts
2971 * parse.c (gfc_build_block_ns): Make block names unique by
2974 2011-04-26 Thomas Koenig <tkoenig@gcc.gnu.org>
2976 * frontend-passes.c (inserted_block): New variable.
2977 (changed_statement): Likewise.
2978 (create_var): Encase statement to be operated on in a BLOCK.
2979 Adjust code insertion for BLOCK.
2980 (cfe_code): Set inserted_block and changed_statement to NULL.
2982 2011-04-23 Tobias Burnus <burnus@net-b.de>
2985 * module.c (mio_array_spec): Set as->cotype on reading.
2986 * resolve.c (resolve_allocate_expr): Fix allocating coarray
2989 2011-04-21 Thomas Koenig <tkoenig@gcc.gnu.org>
2992 * frontend_passes (cfe_register_funcs): Remove workaround for DO
2994 (gfc_code_walker): Make sure the pointer to the current
2995 statement doen't change when other statements are inserted.
2997 2011-04-21 Tobias Burnus <burnus@net-b.de>
3000 * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
3002 2011-04-20 Jim Meyering <meyering@redhat.com>
3004 * expr.c (free_expr0): Remove useless if-before-free.
3005 * gfortranspec.c (lang_specific_pre_link): Likewise.
3006 * interface.c (gfc_extend_expr): Likewise.
3007 * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
3009 2011-04-19 Tobias Burnus <burnus@net-b.de>
3014 * module.c (fix_mio_expr): Commit created symbol.
3016 2011-04-19 Janne Blomqvist <jb@gcc.gnu.org>
3018 * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
3020 2011-04-19 Janne Blomqvist <jb@gcc.gnu.org>
3022 * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
3025 2011-04-19 Janne Blomqvist <jb@gcc.gnu.org>
3027 * misc.c (gfc_getmem): Remove function.
3028 * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
3029 usage with XCNEW or XCNEWVEC.
3030 * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
3032 * options.c (gfc_handle_module_path_options)
3033 (gfc_get_option_string): Likewise.
3034 * resolve.c (gfc_resolve_forall): Likewise.
3035 * simplify.c (simplify_transformation_to_array): Likewise.
3036 * target-memory.c (gfc_target_interpret_expr): Likewise.
3037 * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
3038 (get_init_field): Likewise.
3039 * trans-expr.c (gfc_conv_statement_function): Likewise.
3040 * trans-io.c (nml_full_name): Likewise.
3041 * trans-stmt.c (gfc_trans_forall_1): Likewise.
3042 * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
3044 2011-04-19 Tobias Burnus <burnus@net-b.de>
3047 * parse.c (resolve_all_program_units): Skip modules.
3048 (translate_all_program_units): Handle modules.
3049 (gfc_parse_file): Defer code generation for modules.
3051 2011-04-19 Martin Jambor <mjambor@suse.cz>
3053 * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
3054 instead of cgraph_get_create_node.
3056 2011-04-18 Jim Meyering <meyering@redhat.com>
3058 remove now-unused definition of gfc_free
3059 * misc.c (gfc_free): Remove function.
3060 * gfortran.h (gfc_free): Remove its prototype.
3062 2011-04-18 Jim Meyering <meyering@redhat.com>
3064 convert each use of gfc_free (p) to free (p)
3065 Do that by running this command:
3066 perl -pi -e 's/\bgfc_free ?\(/free (/' \
3067 $(git grep -El '\bgfc_free ?\(')
3068 which also corrects the few uses that lacked a space between
3069 the function name and the open parenthesis.
3070 Manually undo the change to the function definition itself
3071 and its prototype. They'll be removed next.
3072 * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
3073 * constructor.c (node_free): Likewise.
3074 * cpp.c (dump_queued_macros): Likewise.
3075 * data.c (gfc_assign_data_value): Likewise.
3076 * decl.c (free_variable, free_value, gfc_free_data): Likewise.
3077 (gfc_free_data_all, match_old_style_init): Likewise.
3078 (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
3080 (gfc_match_modproc): Likewise.
3081 * dependency.c (check_section_vs_section): Likewise.
3082 * error.c (gfc_pop_error, gfc_free_error): Likewise.
3083 * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
3084 (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
3085 (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
3087 * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
3088 (strip_function_call, optimize_comparison): Likewise.
3089 * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
3090 (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
3092 * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
3093 (gfc_convert_chartype): Likewise.
3094 * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
3096 (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
3097 * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
3098 (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
3100 (free_case, gfc_free_forall_iterator): Likewise.
3102 * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
3103 (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
3104 (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
3105 (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
3106 (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
3107 (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
3108 * openmp.c (gfc_free_omp_clauses): Likewise.
3109 * options.c (gfc_post_options): Likewise.
3110 * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
3111 * primary.c (gfc_free_structure_ctor_component): Likewise.
3112 * resolve.c (resolve_structure_cons, check_host_association): Likewise.
3113 (gfc_resolve_forall, resolve_equivalence): Likewise.
3114 * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
3115 (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
3116 (load_file, gfc_read_orig_filename): Likewise.
3117 * simplify.c (simplify_transformation_to_array): Likewise.
3118 (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
3120 (gfc_simplify_compiler_options): Likewise.
3121 * st.c (gfc_free_statement, gfc_free_statements): Likewise.
3122 (gfc_free_association_list): Likewise.
3123 * symbol.c (free_components, gfc_free_st_label, free_st_labels):
3125 (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
3126 (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
3127 (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
3128 (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
3130 (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
3131 (gfc_free_namespace): Likewise.
3132 * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
3133 (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
3134 (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
3135 * trans-common.c (get_init_field, create_common): Likewise.
3136 * trans-const.c (gfc_build_wide_string_const): Likewise.
3137 (gfc_conv_string_init): Likewise.
3138 * trans-decl.c (gfc_generate_function_code): Likewise.
3139 * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
3141 (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
3142 (gfc_trans_subarray_assign): Likewise.
3143 * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
3144 * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
3145 (transfer_namelist_element, transfer_array_component): Likewise.
3146 * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
3147 * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
3148 * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
3151 2011-04-15 Jim Meyering <meyering@redhat.com>
3153 gfortran: remove cpp definition of free, ...
3154 in preparation for the s/gfc_free/free/ transformation.
3155 * gfortran.h (free): Remove macro definition that would otherwise
3156 prevent direct use of the function.
3158 2011-04-18 Tobias Burnus <burnus@net-b.de>
3161 * array.c (gfc_match_array_ref): Check for too many codimensions.
3162 * check.c (gfc_check_image_index): Check number of elements
3164 * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
3166 2011-04-18 Tobias Burnus <burnus@net-b.de>
3169 * iresolve.c (gfc_resolve_image_index): Set ts.type.
3170 * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
3171 are not known at compile time and handle -fcoarray=lib.
3172 * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
3174 (conv_intrinsic_cobound): Fix comment typo.
3175 (trans_this_image): New function.
3176 * trans-array.c (gfc_unlikely): Move to trans.c.
3177 * trans.c (gfc_unlikely): Function moved from trans-array.c.
3178 (gfc_trans_runtime_check): Use it.
3179 * trans-io.c (gfc_trans_io_runtime_check): Ditto.
3180 * trans.h (gfc_unlikely): Add prototype.
3182 2011-04-18 Paul Thomas <pault@gcc.gnu.org>
3185 * trans-expr.c (fcncall_realloc_result): Renamed version of
3186 realloc_lhs_bounds_for_intrinsic_call that does not touch the
3187 descriptor bounds anymore but makes a temporary descriptor to
3189 (gfc_trans_arrayfunc_assign): Modify the reference to above
3192 2011-05-17 Tobias Burnus <burnus@net-b.de>
3195 * trans-decl.c (gfc_get_extern_function_decl): Fix decl
3196 for external procedures with proc arguments.
3198 2011-04-15 Michael Matz <matz@suse.de>
3200 * trans-array.c (toplevel): Include gimple.h.
3201 (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
3202 properly expand variable length arrays.
3203 (gfc_trans_auto_array_allocation): If flag_stack_arrays create
3204 variable length decls and associate them with their scope.
3205 * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
3206 * options.c (gfc_init_options): Handle -fstack_arrays option.
3207 * lang.opt (fstack-arrays): Add option.
3208 * invoke.texi (Code Gen Options): Document it.
3209 * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
3211 2011-04-15 Tobias Burnus <burnus@net-b.de>
3214 * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
3215 code which is also causing an ICE.
3217 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
3219 * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
3221 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
3223 * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
3226 2011-04-12 Paul Thomas <pault@gcc.gnu.org>
3230 * trans-array.c (get_std_lbound): For derived type variables
3231 return array valued component lbound.
3233 2011-04-12 Martin Jambor <mjambor@suse.cz>
3235 * trans-decl.c (gfc_generate_function_code): Call
3236 cgraph_get_create_node instead of cgraph_node.
3238 2011-04-11 Tobias Burnus <burnus@net-b.de>
3241 * simplify.c (simplify_bound_dim): Exit for
3242 ucobound's last dimension unless -fcoarray=single.
3243 * trans-array (gfc_conv_descriptor_size_1): Renamed from
3244 gfc_conv_descriptor_size, made static, has now from_dim and
3246 (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
3247 (gfc_conv_descriptor_cosize): New function.
3248 * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
3249 * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
3250 and handle last codim of ucobound for when -fcoarray is not "single".
3252 2011-04-08 Thomas Koenig <tkoenig@gcc.gnu.org>
3255 * gfortran.h (gfc_option_t): Add warn_function_elimination and
3256 flag_frontend_optimize.
3257 * lang.opt (Wfunction-elimination): Add.
3258 (ffrontend-optimize): Add.
3259 * invoke.texi: Add documentation for -Wfunction-elimination
3260 and -ffrontend-optimize. Add -faggressive-function-elimination
3261 to list of code generation options.
3262 * frontend-passes.c (gfc_run_passes): Run optimizations if
3263 flag_frontend_optimize is set.
3264 (warn_function_elimination): New function.
3265 (cfe_expr_0): Call it if requested to do so.
3266 * options.c (gfc_init_options): Initiate warn_function_elimination
3267 and flag_frontend_optimize.
3268 (gfc_post_options): Set flag_frontend_optimize if not specified
3269 by user, depending on the optimization level.
3270 (gfc_handle_option): Handle -Wfunction-elimination and
3271 -ffrontend-optimize.
3273 2011-04-06 Tobias Burnus <burnus@net-b.de>
3276 * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
3277 call for this_image.
3279 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
3281 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
3282 build_function_type_list instead of build_function_type. Correct
3283 argument order for func_frexp and func_scalbn.
3285 2011-04-05 Duncan Sands <baldrick@free.fr>
3287 * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
3289 2011-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
3291 * frontend-passes: (optimize_lexical_comparison): New function.
3292 (optimize_expr): Call it.
3293 (optimize_comparison): Also handle lexical comparison functions.
3294 Return false instad of -2 for unequal comparison.
3296 2011-04-04 Thomas Koenig <tkoenig@gcc.gnu.org>
3299 * frontend-passes (cfe_expr_0): Reverse the order of going
3302 2011-04-04 Tobias Burnus <burnus@net-b.de>
3303 Mikael Morin <mikael.morin@sfr.fr>
3306 * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
3307 * expr.c (gfc_is_coindexed): Ditto.
3308 * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
3309 * interface.c (compare_parameter): Use gfc_expr_attr and
3311 * resolve.c (check_dimension, compare_spec_to_ref,
3312 resolve_allocate_expr, check_data_variable): Update for
3314 * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
3315 gfc_simplify_ucobound): Allow non-constant bounds.
3316 * trans-array.c (gfc_set_loop_bounds_from_array_spec,
3317 gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
3318 gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
3319 gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
3320 gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
3321 gfc_conv_ss_startstride, gfc_conv_loop_setup,
3322 gfc_trans_array_bounds, gfc_conv_expr_descriptor,
3323 gfc_walk_variable_expr): Handle codimen.
3324 * trans-decl.c (gfc_build_qualified_array): Save cobounds.
3325 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
3326 (conv_intrinsic_cobound): New function.
3327 (gfc_conv_intrinsic_function): Call it.
3328 (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
3329 ucobound, lcobound, this_image.
3330 * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
3331 (gfc_get_dtype): Honour corank.
3332 (gfc_get_nodesc_array_type): Save corank and codimensions.
3333 (gfc_get_array_type_bounds): Save cobound.
3334 * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
3335 (gfc_array_kind): Add corank item.
3336 (GFC_TYPE_ARRAY_CORANK): New macro.
3338 2011-04-03 Kai Tietz <ktietz@redhat.com>
3341 * Make-lang.in (f95-lang.o): Add some missing dependencies.
3343 2011-04-01 Thomas Koenig <tkoenig@gcc.gnu.org>
3346 * frontend-passes (cfe_register_funcs): Don't
3347 register functions if they appear as iterators in DO loops.
3349 2011-03-30 Michael Matz <matz@suse.de>
3352 * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
3353 don't use local variable.
3354 (gfc_trans_arrayfunc_assign): Adjust caller.
3356 2011-03-29 Janus Weil <janus@gcc.gnu.org>
3359 * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
3360 * module.c (MOD_VERSION): Bump.
3361 (mio_typespec): Read/write 'interface' field.
3362 * primary.c (match_string_constant,match_logical_constant): Remove
3364 (match_complex_constant): Make sure to clear the typespec.
3366 2011-03-29 Thomas Koenig <tkoenig@gcc.gnu.org>
3368 * frontend-passes.c (create_var): Warn about creating an
3369 array temporary if requested.
3371 2011-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
3374 * frontend-passes.c (optimize_trim): Also follow references, except
3375 when they are substring references or array references.
3377 2011-03-27 Tobias Burnus <burnus@net-b.de>
3380 * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
3381 GFC_ISYM_NUM_IMAGES.
3382 (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
3383 * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
3385 * invoke.texi (-fcoarray=): Document "lib" argument.
3386 * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
3387 * libgfortran.h (libgfortran_stat_codes): Add comments.
3388 * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
3389 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
3390 Handle GFC_FCOARRAY_LIB.
3391 * trans.h (gfc_init_coarray_decl): New prototype.
3392 (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
3393 gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
3394 gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
3395 gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
3396 gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
3397 New global variables.
3398 * trans-decl.c: Declare several CAF functions (cf. above).
3399 (gfc_build_builtin_function_decls): Initialize those.
3400 (gfc_init_coarray_decl): New function.
3401 (create_main_function): Call CAF init/finalize functions.
3402 * trans-intrinsic.c (trans_this_image, trans_num_images): New.
3403 (gfc_conv_intrinsic_function): Call those.
3404 * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
3405 Add code for GFC_FCOARRAY_LIB.
3407 2011-03-26 Janus Weil <janus@gcc.gnu.org>
3410 * class.c (get_unique_hashed_string): Adjust maximum allowable length
3411 for unique type string.
3413 2011-03-25 Kai Tietz <ktietz@redhat.com>
3415 * scanner.c (preprocessor_line): Use filename_cmp
3418 2011-03-25 Tobias Burnus <burnus@net-b.de>
3422 * trans-types.c (gfc_get_function_type): Don't use varargs if the
3423 procedure is known to have no arguments.
3425 2011-03-21 Thomas Koenig <tkoenig@gcc.gnu.org>
3428 * gfortran.h (gfc_option_t): Add
3429 flag_aggressive_function_elimination.
3430 (gfc_dep_compare_functions): Add prototype.
3431 * lang.opt: Add faggressive-function-elimination.
3432 * invoke.texi: Document -faggressive-function-elimination.
3433 * frontend_passes (expr_array): New static variable.
3434 (expr_size): Likewise.
3435 (expr_count): Likewise.
3436 (current_code): Likewise.
3437 (current_ns): Likewise.
3438 (gfc_run_passes): Allocate and free space for expressions.
3439 (cfe_register_funcs): New function.
3440 (create_var): New function.
3441 (cfc_expr_0): New function.
3442 (cfe_code): New function.
3443 (optimize_namespace): Invoke gfc_code_walker with cfe_code
3445 * dependency.c (gfc_dep_compare_functions): New function.
3446 (gfc_dep_compare_expr): Use it.
3447 * options.c (gfc_init_options): Handle
3448 flag_aggressive_function_elimination.
3449 (gfc_handle_option): Likewise.
3451 2011-03-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3453 * arith.c (arith_power): Plug memory leak.
3455 2011-03-12 Janus Weil <janus@gcc.gnu.org>
3458 * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
3459 for polymorphic arguments.
3461 2011-03-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3464 * intrinsic.texi: Clarify doc of logarithm functions.
3466 2011-03-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3469 * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
3470 the string length variable.
3472 2011-03-11 Janus Weil <janus@gcc.gnu.org>
3475 * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
3476 (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
3478 2011-03-06 Paul Thomas <pault@gcc.gnu.org>
3479 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3482 * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
3483 the expression has an iterator. Otherwise, iterate through the
3484 array, checking for constant expressions for each element.
3486 2011-03-04 Janne Blomqvist <jb@gcc.gnu.org>
3489 * intrinsic.texi: Update CTIME and FDATE documentation.
3491 2011-03-03 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3493 * invoke.texi (Option Summary, Fortran Dialect Options)
3494 (Preprocessing Options, Runtime Options, Code Gen Options):
3495 Fix vertical list spacing by using @itemx for additinoal
3496 items, empty line before @table. Fix typos.
3498 2011-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3501 * intrinsic.texi: Fix doc of the VERIFY intrinsic.
3503 2011-02-26 Tobias Burnus <burnus@net-b.de>
3506 * trans-stmt.c (gfc_trans_allocate): Fix allocation with
3507 type-spec of deferred-length strings.
3509 2011-02-26 Tobias Burnus <burnus@net-b.de>
3512 * openmp.c (gfc_resolve_omp_directive): Resolve if()
3513 condition of OpenMP's task.
3515 2011-02-26 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3518 * intrinsic.texi: Fix doc of the VERIFY intrinsic.
3520 2011-02-24 Tobias Burnus <burnus@net-b.de>
3523 * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
3524 multitable for linebreak between different syntax variants.
3526 2011-02-24 Richard Guenther <rguenther@suse.de>
3529 * f95-lang.c (pushdecl): For externs in non-global scope push
3530 a copy of the decl into the BLOCK.
3532 2011-02-23 Mikael Morin <mikael@gcc.gnu.org>
3535 * trans.c (gfc_prepend_expr_to_block): New function.
3536 * trans.h (gfc_prepend_expr_to_block): Declare.
3537 * trans-array.c (gfc_conv_array_parameter): Replace
3538 gfc_add_expr_to_block with gfc_prepend_expr_to_block.
3540 2011-02-22 Paul Thomas <pault@gcc.gnu.org>
3543 * trans-decl.c (gfc_get_extern_function_decl): Don't use the
3544 gsymbol backend_decl if the procedure has a formal argument
3545 that is a procedure.
3547 2011-02-22 Tobias Burnus <burnus@net-b.de>
3550 * trans-stmt.c (gfc_trans_if_1): Use correct line for
3551 expressions in the if condition.
3553 2011-02-20 Tobias Burnus <burnus@net-b.de>
3556 * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
3557 gfc_restore_backend_locus to have better debug locations.
3558 * trans-array.c (gfc_trans_deferred_array): Ditto.
3560 2011-02-20 Paul Thomas <pault@gcc.gnu.org>
3564 * trans-types.c (gfc_get_derived_type): Remove code that looks
3565 for decls in gsym and add call to gfc_get_module_backend_decl.
3566 * trans.h: Add prototype for gfc_get_module_backend_decl.
3567 * trans-decl.c (gfc_get_module_backend_decl): New function.
3568 (gfc_get_symbol_decl): Call it.
3570 2011-02-19 Paul Thomas <pault@gcc.gnu.org>
3573 * trans-array.c (get_array_ctor_all_strlen): Move up in file.
3574 (get_array_ctor_var_strlen): Add block dummy and add call to
3575 get_array_ctor_all_strlen instead of giving up on substrings.
3576 Call gcc_unreachable for default case.
3577 (get_array_ctor_strlen): Add extra argument to in call to
3578 get_array_ctor_var_strlen.
3580 2011-02-18 Janus Weil <janus@gcc.gnu.org>
3583 * primary.c (gfc_match_structure_constructor): Handle empty parent
3586 2011-02-18 Tobias Burnus
3589 * trans-expr.c (arrayfunc_assign_needs_temporary): Use
3590 esym to check whether the specific procedure returns an
3591 allocatable or pointer.
3593 2011-02-18 Michael Matz <matz@suse.de>
3596 * gfortran.h (struct gfc_component): Add norestrict_decl member.
3597 * trans.h (struct lang_type): Add nonrestricted_type member.
3598 * trans-expr.c (gfc_conv_component_ref): Search fields with correct
3600 * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
3601 (gfc_sym_type): Use it.
3603 2011-02-18 Janus Weil <janus@gcc.gnu.org>
3606 * resolve.c (resolve_transfer): Reject variables with procedure pointer
3609 2011-02-18 Janus Weil <janus@gcc.gnu.org>
3612 * gfortran.h (gfc_check_access): Removed prototype.
3613 (gfc_check_symbol_access): Added prototype.
3614 * module.c (gfc_check_access): Renamed to 'check_access', made static.
3615 (gfc_check_symbol_access): New function, basically a shortcut for
3617 (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
3618 'gfc_check_symbol_access'.
3619 (write_operator,write_module): Renamed 'gfc_check_access'.
3620 * resolve.c (resolve_fl_procedure,resolve_fl_derived,
3621 resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
3622 'gfc_check_symbol_access'.
3624 2011-02-16 Janus Weil <janus@gcc.gnu.org>
3627 * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
3628 * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
3629 'gfc_build_class_symbol'.
3630 (gfc_match_decl_type_spec): Reject unlimited polymorphism.
3631 * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
3632 * match.c (select_type_set_tmp): Move setting of 'class_ok' into
3633 'gfc_build_class_symbol'.
3634 * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
3636 2011-02-15 Steven G. Kargl <kargl@gcc.gnu.org>
3639 . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
3641 2011-02-14 Janus Weil <janus@gcc.gnu.org>
3644 * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
3646 2011-02-14 Janus Weil <janus@gcc.gnu.org>
3649 * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
3651 * primary.c (gfc_match_varspec): Avoid ICE for invalid class
3654 2011-02-14 Janus Weil <janus@gcc.gnu.org>
3657 * interface.c (get_expr_storage_size): Handle derived-type components.
3659 2011-02-13 Tobias Burnus <burnus@net-b.de>
3662 * interface.c (compare_parameter): Avoid ICE with
3663 character components.
3665 2011-02-12 Janus Weil <janus@gcc.gnu.org>
3667 * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
3668 * decl.c (build_sym,build_struct,attr_decl1): Use return value of
3669 'gfc_build_class_symbol'.
3671 2011-02-12 Michael Matz <matz@suse.de>
3672 Janus Weil <janus@gcc.gnu.org>
3673 Tobias Burnus <burnus@net-b.de>
3676 * trans-expr.c (conv_parent_component_references): Avoid unintendent
3677 skipping of parent compounds.
3679 2011-02-11 Tobias Burnus <burnus@net-b.de>
3682 * resolve.c (resolve_formal_arglist): PURE with VALUE
3683 and no INTENT: Add -std= diagnostics.
3685 2011-02-09 Janus Weil <janus@gcc.gnu.org>
3688 * resolve.c (resolve_procedure_interface): If interface has a result
3689 variable, copy the typespec and set result pointer to self.
3691 2011-02-09 Janus Weil <janus@gcc.gnu.org>
3694 * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
3696 2011-02-09 Janus Weil <janus@gcc.gnu.org>
3699 * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
3701 2011-02-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3703 * io.c (match_io_element): Do not set dt if not inquire.
3705 2011-02-08 Janus Weil <janus@gcc.gnu.org>
3708 * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
3709 initialization target.
3711 2011-02-07 Janne Blomqvist <jb@gcc.gnu.org>
3712 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3714 * gfortran.texi (Thread-safety): texinfo styling fixes.
3715 * intrinsic.texi: Likewise.
3717 2011-02-06 Janne Blomqvist <jb@gcc.gnu.org>
3719 * gfortran.texi (Compiler Characteristics): Add reference to
3720 thread-safety section.
3722 2011-02-06 Janne Blomqvist <jb@gcc.gnu.org>
3724 * gfortran.texi (Thread-safety): New section.
3725 * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
3727 (GET_ENVIRONMENT_VARIABLE): Likewise.
3730 2011-02-06 Paul Thomas <pault@gcc.gnu.org>
3733 * trans-stmt.c (gfc_trans_allocate): For deferred character
3734 length allocations with SOURCE, store to the values and string
3735 length to avoid calculating twice. Replace gfc_start_block
3736 with gfc_init_block to avoid unnecessary contexts and to keep
3737 declarations of temporaries where they should be. Tidy up the
3740 2011-02-05 Janne Blomqvist <jb@gcc.gnu.org>
3743 * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
3745 2011-02-02 Janus Weil <janus@gcc.gnu.org>
3746 Paul Thomas <pault@gcc.gnu.org>
3749 * trans-expr.c (gfc_trans_class_init_assign): Add call to
3750 gfc_get_derived_type.
3751 * module.c (read_cleanup): Do not use unique_symtrees for vtabs
3754 2011-02-02 Janus Weil <janus@gcc.gnu.org>
3757 * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
3759 2011-02-01 Janus Weil <janus@gcc.gnu.org>
3762 * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
3763 pointer components with allocatable result.
3765 2011-01-31 Janus Weil <janus@gcc.gnu.org>
3768 * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
3769 with pointer or allocatable result.
3771 2011-01-31 Paul Thomas <pault@gcc.gnu.org>
3774 * trans-stmt.c (gfc_trans_allocate): Improve handling of
3775 deferred character lengths with SOURCE.
3776 * iresolve.c (gfc_resolve_repeat): Calculate character
3777 length from source length and ncopies.
3778 * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
3779 expressions for ALLOCATE.
3781 2011-01-31 Janus Weil <janus@gcc.gnu.org>
3784 * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
3785 an argument of a typebound assignment being a component.
3787 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3789 * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
3790 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
3792 2011-01-31 Tobias Burnus <burnus@net-b.de>
3795 * resolve.c (resolve_fl_procedure): Reject stmt functions
3796 with pointer/allocatable attribute.
3798 2011-01-31 Tobias Burnus <burnus@net-b.de>
3801 * interface.c (gfc_procedure_use): Add explicit interface check for
3802 pointer/allocatable functions.
3804 2011-01-30 Paul Thomas <pault@gcc.gnu.org>
3807 * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
3808 expr and is assigned to a deferred character length scalar,
3809 make sure that the function is called before reallocation,
3810 so that the length is available. Include procedure pointer
3811 and procedure pointer component rhs as well.
3816 * gfortran.dg/allocatable_function_5.f90: New test not added by
3817 mistake on 2011-01-28.
3819 2011-01-29 Tobias Burnus <burnus@net-b.de>
3822 * check.c (gfc_check_shape): Support kind argument in SHAPE.
3823 * intrinsic.c (add_functions): Ditto.
3824 * resolve.c (gfc_resolve_shape): Ditto.
3825 * simplify.c (gfc_simplify_shape): Ditto.
3826 * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
3827 gfc_simplify_shape): Update prototypes.
3828 * intrinisc.text (SHAPE): Document kind argument.
3830 2011-01-28 Tobias Burnus <burnus@net-b.de>
3833 * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
3834 attribute also without INTENT.
3836 2011-01-28 Tobias Burnus <burnus@net-b.de>
3838 * gfortran.texi (Fortran 2003 status): Mention support for
3839 nonconstant namelist variables.
3841 2011-01-28 Paul Thomas <pault@gcc.gnu.org>
3842 Tobias Burnus <burnus@gcc.gnu.org>
3847 * interface.c (compare_actual_formal): An allocatable or pointer
3848 deferred length actual is only allowed if the formal argument
3849 is also deferred length. Clean up whitespace.
3850 * trans-expr.c (gfc_conv_procedure_call): Pass string length for
3851 deferred character length formal arguments by reference. Do the
3852 same for function results.
3853 (gfc_trans_pointer_assignment): Do not do runtime check of lhs
3854 and rhs character lengths, if deferred length lhs. In this case
3855 set the lhs character length to that of the rhs.
3856 (gfc_conv_string_parameter): Remove assert that string length is
3858 (is_scalar_reallocatable_lhs): New function.
3859 (alloc_scalar_allocatable_for_assignment): New function.
3860 (gfc_trans_assignment_1): Call above new function. If the rhs is
3861 a deferred character length itself, makes ure that the function
3862 is called before reallocation, so that the length is available.
3863 (gfc_trans_asssignment): Remove error about assignment to
3864 deferred length character variables.
3865 * gfortran.texi: Update entry about (re)allocation on
3867 * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
3868 length character variables.
3869 * module.c (mio_typespec): Transfer deferred characteristic.
3870 * trans-types.c (gfc_get_function_type): New code to generate
3871 hidden typelist, so that those character lengths that are
3872 passed by reference get the right type.
3873 * resolve.c (resolve_contained_fntype): Supress error for
3874 deferred character length functions.
3875 (resolve_function, resolve_fl_procedure) The same.
3876 (check_symbols): Remove the error that support for
3877 entity with deferred type parameter is not yet implemented.
3878 (resolve_fl_derived): The same.
3879 match.c (alloc_opt_list): Allow MOLD for deferred length object.
3880 * trans-decl.c (gfc_get_symbol_decl): For deferred character
3881 length dummies, generate a local variable for string length.
3882 (create_function_arglist): Hidden length can be a pointer.
3883 (gfc_trans_deferred_vars): For deferred character length
3884 results and dummies, assign the string length to the local
3885 variable from the hidden argument on entry and the other way
3886 round on exit, as appropriate.
3888 2011-01-27 Tobias Burnus <burnus@net-b.de>
3891 * trans-decl.c (gfc_generate_function_code): Fix init
3892 of allocatable result variable with allocatable components.
3894 2011-01-27 Tobias Burnus <burnus@net-b.de>
3897 * options.c (gfc_handle_module_path_options): Save
3898 module path without trailing slash as include path.
3900 2011-01-25 Tobias Burnus <burnus@net-b.de>
3903 * interface.c (gfc_check_operator_interface): Fix
3904 defined-assignment check.
3906 2011-01-23 Tobias Burnus <burnus@net-b.de>
3909 * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
3910 scalar allocatable dummy arguments.
3912 2011-01-22 Thomas Koenig <tkoenig@gcc.gnu.org>
3915 * resolve.c (gfc_iso_c_func_interface): For C_LOC,
3916 check for array sections followed by component references
3917 which are illegal. Also check for coindexed arguments.
3919 2011-01-22 Tobias Burnus <burnus@net-b.de>
3922 * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
3925 2011-01-21 Tobias Burnus <burnus@net-b.de>
3928 * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
3929 Use defined instead of magic number exit status codes.
3930 * scanner.c (include_line, gfc_new_file): Ditto.
3932 2011-01-21 Tobias Burnus <burnus@net-b.de>
3935 * expr.c (gfc_check_pointer_assign): Reject expr data-targets
3936 without pointer attribute.
3938 2011-01-18 Janus Weil <janus@gcc.gnu.org>
3941 * resolve.c (expression_rank): Fix rank of procedure poiner components.
3942 * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
3943 pointer components as actual arguments.
3945 2011-01-17 Jakub Jelinek <jakub@redhat.com>
3948 * gfortran.h (struct gfc_omp_saved_state): New type.
3949 (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
3950 * resolve.c (resolve_global_procedure): Call it around gfc_resolve
3952 * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
3955 2011-01-17 Tobias Burnus <burnus@net-b.de>
3958 * invoke.texi (Options to request or suppress errors
3959 and warnings): Fix cross link.
3961 2011-01-15 Tobias Burnus <burnus@net-b.de>
3963 * gfortran.texi: Update Fortran 2003 Status section.
3966 * invoke.texi: Add missing "-E" to the -dM example.
3968 2011-01-13 Tobias Burnus <burnus@net-b.de>
3971 * intrinsic.texi (get_command_argument, get_environment_variable):
3972 Mark arguments as optional in the Arguments section.
3974 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
3975 Tobias Burnus <burnus@net-b.de>
3978 * trans-decl.c (gfc_get_extern_function_decl,
3979 build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
3980 calling decl_attributes.
3982 2011-01-13 Tobias Burnus <burnus@net-b.de>
3983 Mikael Morin <mikael@gcc.gnu.org>
3987 * gfortran.h (gfc_code): Move union ext's case_list into
3989 * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
3991 * frontend-passes.c (gfc_code_walker): Ditto.
3992 * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
3993 gfc_match_type_is, gfc_match_class_is): Ditto.
3994 * resolve.c (resolve_select, resolve_select_type): Ditto.
3995 * st.c (gfc_free_statement): Ditto.
3996 * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
3997 gfc_trans_character_select): Ditto.
3998 * parse.c (resolve_all_program_units): For error recovery, avoid
3999 segfault is proc_name is NULL.
4001 2011-01-11 Paul Thomas <pault@gcc.gnu.org>
4004 * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
4005 to be standard compliant by testing for shape rather than size
4006 before skipping reallocation. Improve comments.
4008 2011-01-09 Janus Weil <janus@gcc.gnu.org>
4011 * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
4014 2011-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
4017 * resolve.c (is_scalar_expr_ptr): For a substring reference,
4018 use gfc_dep_compare_expr to compare start and end expession.
4019 Add FIXME for using gfc_deb_compare_expr elsewhere.
4021 2011-01-09 Janus Weil <janus@gcc.gnu.org>
4024 * class.c (get_unique_type_string): Make type name start with upper
4027 2011-01-08 Thomas Koenig <tkoenig@gcc.gnu.org>
4030 * invoke.texi: Mention -ffree-line-length-none and
4031 -ffixed-line-length-none for preprocessing.
4033 2011-01-08 Paul Thomas <pault@gcc.gnu.org>
4036 * trans-expr.c (gfc_conv_procedure_call): With a non-copying
4037 procedure argument (eg TRANSPOSE) use a temporary if there is
4038 any chance of aliasing due to host or use association.
4039 (arrayfunc_assign_needs_temporary): Correct logic for function
4040 results and do not use a temporary for implicitly PURE
4041 variables. Use a temporary for Cray pointees.
4042 * symbol.c (gfc_add_save): Explicit SAVE not compatible with
4043 implicit pureness of containing procedure.
4044 * decl.c (match_old_style_init, gfc_match_data): Where decl
4045 would fail in PURE procedure, set implicit_pure to zero.
4046 * gfortran.h: Add implicit_pure to structure symbol_attr and
4047 add prototype for function gfc_implicit_pure.
4048 * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
4049 Where decl would fail in PURE procedure, reset implicit_pure.
4050 * io.c (match_vtag, gfc_match_open, gfc_match_close,
4051 gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
4052 * match.c (gfc_match_critical, gfc_match_stopcode,
4053 sync_statement, gfc_match_allocate, gfc_match_deallocate): The
4055 * parse.c (decode_omp_directive): The same.
4056 (parse_contained): If not PURE, set implicit pure attribute.
4057 * resolve.c (resolve_formal_arglist, resolve_structure_cons,
4058 resolve_function, resolve_ordinary_assign): The same.
4059 (gfc_implicit_pure): New function.
4060 * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
4061 to ab_attribute enum and use it in this function.
4063 2011-01-08 Thomas Koenig <tkoenig@gcc.gnu.org>
4066 * symbol.c (gfc_symbols_could_alias): Strip gfc_ prefix,
4067 make static and move in front of its only caller, to ...
4068 * trans-array.c (symbols_could_alias): ... here.
4069 Pass information about pointer and target status as
4070 arguments. Allocatable arrays don't alias anything
4071 unless they have the POINTER attribute.
4072 (gfc_could_be_alias): Keep track of pointer and target
4073 status when following references. Also check if typespecs
4074 of components match those of other components or symbols.
4076 2011-01-07 Tobias Burnus <burnus@net-b.de>
4079 * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
4080 * intrinsic.c (add_functions): Use simplify functions for
4081 EXTENDS_TYPE_OF and SAME_TYPE_AS.
4082 * intrinsic.h (gfc_simplify_extends_type_of,
4083 gfc_simplify_same_type_as): New prototypes.
4084 * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
4085 gfc_simplify_same_type_as): New functions.
4087 2011-01-07 Janus Weil <janus@gcc.gnu.org>
4091 * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
4092 * class.c (gfc_class_null_initializer): Initialize _vptr to declared
4094 * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
4095 * resolve.c (resolve_deallocate_expr): _data component will be added
4096 at translation stage.
4097 * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
4098 * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
4100 2011-01-06 Daniel Franke <franke.daniel@gmail.com>
4104 * parse.c (parse_interface): Remove check for procedure types.
4105 * interface.c (check_interface0): Verify that procedures are
4106 either all SUBROUTINEs or all FUNCTIONs.
4108 2011-01-05 Janus Weil <janus@gcc.gnu.org>
4111 * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
4112 'vtab' is initialized).
4114 2011-01-05 Janus Weil <janus@gcc.gnu.org>
4117 * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
4118 assignment, set the _vptr component to the declared type.
4120 2011-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
4123 * resolve.c (resolve_allocate_deallocate): Follow references to
4124 check for duplicate occurence of allocation/deallocation objects.
4126 2011-01-05 Janus Weil <janus@gcc.gnu.org>
4129 * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
4130 of polymorphic allocatables according to their declared type.
4132 2011-01-04 Janus Weil <janus@gcc.gnu.org>
4135 * class.c (gfc_find_derived_vtab): Set the module field for the copying
4136 routine to make sure it receives module name mangling.
4138 2011-01-03 Jakub Jelinek <jakub@redhat.com>
4140 * gfortranspec.c (lang_specific_driver): Update copyright notice
4143 2011-01-03 Janus Weil <janus@gcc.gnu.org>
4145 * intrinsic.texi (LEADZ): Fix example.
4147 2011-01-02 Janus Weil <janus@gcc.gnu.org>
4150 * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
4154 Copyright (C) 2011 Free Software Foundation, Inc.
4156 Copying and distribution of this file, with or without modification,
4157 are permitted in any medium without royalty provided the copyright
4158 notice and this notice are preserved.