OSDN Git Service

2012-01-09 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog-2011
1 2011-12-31  Thomas König  <tkoenig@gcc.gnu.org>
2
3         PR fortran/51502
4         * expr.c (gfc_check_vardef_context):  When determining
5         implicit pure status, also check for variable definition
6         context.  Walk up namespaces until a procedure is
7         found to reset the implict pure attribute.
8         * resolve.c (gfc_implicit_pure):  Walk up namespaces
9         until a procedure is found.
10
11 2011-12-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
12
13         * dependency.c (gfc_dep_compare_functions):  Document
14         new behavior for REALs and complex.  Add comment to cases
15         where only INTEGERs are handled.  Compare REAL and COMPLEX
16         constants, returning 0 and -2 only.  Add assert to make
17         sure that only integer constants are compared.
18
19 2011-12-19  Tobias Burnus  <burnus@net-b.de>
20
21         PR fortran/51605
22         * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as
23         local symbol.
24
25 2011-12-19  Tobias Burnus  <burnus@net-b.de>
26
27         PR fortran/51605
28         * match.c (gfc_match_select_type): Handle
29         scalar polymophic coarrays.
30         (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok.
31         * primary.c (gfc_match_rvalue): Avoid segfault if !class_ok.
32         * resolve.c (resolve_select_type): Ditto.
33         (resolve_assoc_var): Fix setting the TARGET attribute for
34         polymorphic selectors which are pointers.
35
36 2011-12-19  Tobias Burnus  <burnus@net-b.de>
37
38         * check.c (coarray_check): Add class ref if needed.
39         * resolve.c (resolve_fl_var_and_proc,
40         resolve_fl_derived0, resolve_symbol): Fix checking
41         for BT_CLASS.
42
43 2011-12-15  Paul Thomas  <pault@gcc.gnu.org>
44
45         * trans-expr.c (gfc_walk_function_expr): Detect elemental
46         procedure components as well as elemental procedures.
47         * trans-array.c (gfc_conv_procedure_call): Ditto.
48         * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous
49         break for class pointers to continue.
50
51 2011-12-15  Toon Moene  <toon@moene.org>
52
53         PR fortran/51310
54         * resolve.c (build_default_init_expr): Allow non-allocatable,
55         non-compile-time-constant-shape arrays to have a default
56         initializer.
57         * invoke.texi: Delete the restriction on automatic arrays not
58         being initialized by -finit-<type>=<constant>.
59
60 2011-12-15  Tobias Burnus  <burnus@net-b.de>
61
62         PR fortran/51550
63         PR fortran/47545
64         PR fortran/49050
65         PR fortran/51075        
66         * resolve.c (resolve_fl_derived0): Print not-implemented error
67         for deferred-length character components.
68
69 2011-12-15  Tobias Burnus  <burnus@net-b.de>
70
71         * primary.c (gfc_match_varspec): Match array spec for
72         polymorphic coarrays.
73         (gfc_match_rvalue): If a symbol of unknown flavor has a
74         codimension, mark it as a variable.
75         * simplify.c (gfc_simplify_image_index): Directly call
76         simplify_cobound.
77         * trans-intrinsic.c (trans_this_image): Fix handling of
78         corank = 1 arrays.
79
80 2011-12-15  Jakub Jelinek  <jakub@redhat.com>
81
82         PR debug/51517
83         * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span.
84         (gfc_trans_deferred_vars): Instead add its runtime initialization
85         here.
86
87 2011-12-11  Tobias Burnus  <burnus@net-b.de>
88
89         PR fortran/50923
90         * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only
91         if the front end has printed a warning.
92         (gfc_generate_function_code): Fix unset-result warning.
93
94 2011-12-11  Paul Thomas  <pault@gcc.gnu.org>
95         Tobias Burnus  <burnus@gcc.gnu.org>
96
97         PR fortran/41539
98         PR fortran/43214
99         PR fortran/43969
100         PR fortran/44568
101         PR fortran/46356
102         PR fortran/46990
103         PR fortran/49074
104         * interface.c (symbol_rank): Return the rank of the _data
105         component of class objects.
106         (compare_parameter): Also compare the derived type of the class
107         _data component for type mismatch.  Similarly, return 1 if the
108         formal and _data ranks match.
109         (compare_actual_formal): Do not compare storage sizes for class
110         expressions. It is an error if an actual class array, passed to
111         a formal class array is not full.
112         * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get,
113         gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get,
114         gfc_vtable_extends_get, gfc_vtable_def_init_get,
115         gfc_vtable_copy_get): New functions for class API.
116         (gfc_conv_derived_to_class): For an array reference in an
117         elemental procedure call retain the ss to provide the
118         scalarized array reference. Moved in file.
119         (gfc_conv_class_to_class): New function.
120         (gfc_conv_subref_array_arg): Use the type of the
121         class _data component as a basetype.
122         (gfc_conv_procedure_call): Ensure that class array expressions
123         have both the _data reference and an array reference. Use 
124         gfc_conv_class_to_class to handle class arrays for elemental
125         functions in scalarized loops, class array elements and full
126         class arrays. Use a call to gfc_conv_subref_array_arg in order
127         that the copy-in/copy-out for passing class arrays to derived
128         type arrays occurs correctly.
129         (gfc_conv_expr): If it is missing, add the _data component
130         between a class object or component and an array reference.
131         (gfc_trans_class_array_init_assign): New function.
132         (gfc_trans_class_init_assign): Call it for array expressions.
133         * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for
134         class scalars since their size will depend on the dynamic type.
135         (build_class_array_ref): New function.
136         (gfc_conv_scalarized_array_ref): Call build_class_array_ref.
137         (gfc_array_init_size): Add extra argument, expr3, that represents
138         the SOURCE argument. If present,use this for the element size.
139         (gfc_array_allocate): Also add argument expr3 and use it when
140         calling gfc_array_init_size.
141         (structure_alloc_comps): Enable class arrays.
142         * class.c (gfc_add_component_ref): Carry over the derived type
143         of the _data component.
144         (gfc_add_class_array_ref): New function.
145         (class_array_ref_detected): New static function.
146         (gfc_is_class_array_ref): New function that calls previous.
147         (gfc_is_class_scalar_expr): New function.
148         (gfc_build_class_symbol): Throw not implemented error for
149         assumed size class arrays.  Remove error that prevents
150         CLASS arrays.
151         (gfc_build_class_symbol): Prevent pointer/allocatable conflict.
152         Also unset codimension.
153         (gfc_find_derived_vtab): Make 'copy' elemental and set the
154         intent of the arguments accordingly.: 
155         * trans-array.h: Update prototype for gfc_array_allocate.
156         * array.c (gfc_array_dimen_size): Return failure if class expr.
157         (gfc_array_size): Likewise.
158         * gfortran.h: New prototypes for gfc_add_class_array_ref,
159         gfc_is_class_array_ref and gfc_is_class_scalar_expr.
160         * trans-stmt.c (trans_associate_var): Exclude class targets
161         from test. Move the allocation of the _vptr to an earlier time
162         for class objects.
163         (trans_associate_var): Assign the descriptor directly for class
164         arrays.
165         (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments.
166         Convert array element references into sections. Do not invoke
167         gfc_conv_procedure_call, use gfc_trans_call instead.
168         * expr.c (gfc_get_corank): Fix for BT_CLASS.
169         (gfc_is_simply_contiguous): Exclude class from test.
170         * trans.c (gfc_build_array_ref): Include class array refs.
171         * trans.h: Include prototypes for class API functions that are
172         new in trans-expr. Define GFC_DECL_CLASS(node).
173         * resolve.c (check_typebound_baseobject ): Remove error for
174         non-scalar base object.
175         (resolve_allocate_expr): Ensure that class _data component is
176         present. If array, call gfc_expr_to_intialize.
177         (resolve_select): Remove scalar error for SELECT statement as a
178         temporary measure.
179         (resolve_assoc_var): Update 'target' (aka 'selector') as
180         needed. Ensure that the target expression has the right rank.
181         (resolve_select_type): Ensure that target expressions have a
182         valid locus.
183         (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS.
184         * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where
185         appropriate.
186         (gfc_trans_deferred_vars): Get class arrays right.
187         * match.c(select_type_set_tmp): Add array spec to temporary.
188         (gfc_match_select_type): Allow class arrays.
189         * check.c (array_check): Ensure that class arrays have refs.
190         (dim_corank_check, dim_rank_check): Retrun success if class.
191         * primary.c (gfc_match_varspec): Fix for class arrays and
192         co-arrays. Make sure that class _data is present.
193         (gfc_match_rvalue): Handle class arrays.
194         *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array
195         reference.
196         (gfc_conv_allocated): Add _data component to class expressions.
197         (gfc_add_intrinsic_ss_code): ditto.
198         * simplify.c (simplify_cobound): Fix for BT_CLASS.
199         (simplify_bound): Return NULL for class arrays.
200         (simplify_cobound): Obtain correct array_spec. Use cotype as
201         appropriate. Use arrayspec for bounds.
202
203 2011-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
204
205         PR fortran/50690
206         * frontend-passes.c (in_omp_workshare):  New variable.
207         (cfe_expr_0):  Don't eliminiate common function if it would put
208         the variable immediately into a WORKSHARE construct.
209         (optimize_namespace):  Set in_omp_workshare.
210         (gfc_code_walker):  Keep track of OMP PARALLEL and OMP WORKSHARE
211         constructs.
212
213 2011-12-10  Tobias Burnus  <burnus@net-b.de>
214
215         * trans-decl.c (add_argument_checking): Fix syntax.
216
217 2011-12-10  Tobias Burnus  <burnus@net-b.de>
218             Kai Tietz  <ktietz@redhat.com>
219
220         * trans-decl.c (add_argument_checking): Check ts.deferred earlier.
221         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long.
222
223 2011-12-08  Tobias Burnus  <burnus@net-b.de>
224
225         PR fortran/50815
226         * trans-decl.c (add_argument_checking): Skip bound checking
227         for deferred-length strings.
228
229 2011-12-08  Tobias Burnus  <burnus@net-b.de>
230
231         PR fortran/51378
232         * symbol.c (gfc_find_component): Fix access check of parent
233         components.
234
235 2011-12-08  Tobias Burnus  <burnus@net-b.de>
236
237         PR fortran/51407
238         * io/transfer.c (require_numeric_type): New function.
239         (formatted_transfer_scalar_read, formatted_transfer_scalar_write):
240         Use it, allow BOZ edit descriptors with F2008.
241
242 2011-12-08  Tobias Burnus  <burnus@net-b.de>
243
244         PR fortran/51448
245         * fortran/trans-array.c (get_std_lbound): Fix handling of
246         conversion functions.
247
248 2011-12-08  Toon Moene  <toon@moene.org>
249
250         PR fortran/51310
251         * invoke.texi: Itemize the cases for which
252         -finit-<type>=<constant> doesn't work.
253
254 2011-12-06  Tobias Burnus  <burnus@net-b.de>
255
256         PR fortran/51435
257         * expr.c (gfc_has_default_initializer): Fix handling of
258         DT with initialized pointer components.
259
260 2011-12-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
261
262         PR fortran/51338
263         * dependency.c (are_identical_variables):  Handle case where
264         end fields of substring references are NULL.
265
266 2011-12-04  Tobias Burnus  <burnus@net-b.de>
267
268         PR fortran/51383
269         * resolve.c (find_array_spec): Use ref->u.c.component
270         directly without starting from ts.u.derived.
271
272 2011-12-03  Tobias Burnus  <burnus@net-b.de>
273
274         PR fortran/48887
275         * match.c (select_type_set_tmp): Don't set allocatable/pointer
276         attribute.
277         * class.c (gfc_build_class_symbol): Handle
278         attr.select_type_temporary.
279
280 2011-12-03  Tobias Burnus  <burnus@net-b.de>
281
282         PR fortran/50684
283         * check.c (variable_check): Fix intent(in) check.
284
285 2011-12-03  Tobias Burnus  <burnus@net-b.de>
286
287         * check.c (gfc_check_move_alloc): Allow nonpolymorphic
288         FROM with polymorphic TO.
289         * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle
290         nonpolymorphic FROM with polymorphic TO.
291
292 2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>
293
294         * module.c (dt_lower_string): Make static.
295         (dt_upper_string): Likewise.
296
297 2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>
298
299         PR fortran/25708
300         * module.c (parse_string): Read string into resizable array
301         instead of parsing twice and seeking.
302         (peek_atom): New implementation avoiding seeks.
303         (require_atom): Save and set column and line explicitly for error
304         handling.
305
306 2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>
307
308         * misc.c (gfc_open_file): Don't call stat.
309
310 2011-11-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
311
312         PR fortran/40958
313         * module.c (prev_module_line):  New variable.
314         (prev_module_column):  New variable.
315         (prev_character):  New variable.
316         (module_char):  Update the new variables.
317         (module_unget_char):  New function.
318         (parse_string):  Use module_unget_char.
319         (parse_integer):  Likewise.
320         (parse_name):  Likewise.
321
322 2011-11-29  Tobias Burnus  <burnus@net-b.de>
323
324         PR fortran/51306
325         PR fortran/48700
326         * check.c (gfc_check_move_alloc): Make sure that from/to
327         are both polymorphic or neither.
328         * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup,
329         generate inline code.
330
331 2011-11-28  Tobias Burnus  <burnus@net-b.de>
332             Steven G. Kargl  <kargl@gcc.gnu.org>
333
334         PR fortran/51308
335         * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER
336         conflicts for ISO_C_BINDING variables.
337         (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null
338         as SAVE.
339
340 2011-11-25  Mikael Morin  <mikael@gcc.gnu.org>
341
342         * trans-array.c (set_loop_bounds): Remove dead conditions.
343
344 2011-11-25  Mikael Morin  <mikael@gcc.gnu.org>
345
346         PR fortran/51250
347         PR fortran/43829
348         * trans-array.c (gfc_trans_create_temp_array): Get dimension from
349         the right gfc_ss struct.
350
351 2011-11-25  Tobias Burnus  <burnus@net-b.de>
352
353         PR fortran/50408
354         * trans-decl.c (gfc_get_module_backend_decl): Also copy
355         ts.u.derived from the gsym if the ts.type is BT_CLASS.
356         (gfc_get_extern_function_decl): Copy also the backend_decl
357         for the symbol's ts.u.{derived,cl} from the gsym.
358         * trans-types.c (gfc_copy_dt_decls_ifequal): Directly
359         return if "from" and "to" are the same.
360
361 2011-11-25  Tobias Burnus  <burnus@net-b.de>
362
363         PR fortran/51302
364         * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert.
365
366 2011-11-24  Tobias Burnus  <burnus@net-b.de>
367
368         PR fortran/51218
369         * resolve.c (pure_subroutine): If called subroutine is
370         impure, unset implicit_pure.
371         (resolve_function): Move impure check to simplify code.
372
373 2011-11-19  Tobias Burnus  <burnus@net-b.de>
374
375         PR fortran/51207
376         * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
377         and hence as TREE_READONLY; add subroutine attribute to
378         __copy_ procedure.
379
380         PR fortran/50640
381         * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
382         * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as
383         GFC_DECL_PUSH_TOPLEVEL.
384         (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
385         (build_function_decl): Push __copy_ procedure to the toplevel.
386
387 2011-11-16  Tobias Burnus  <burnus@net-b.de>
388
389         PR fortran/39427
390         PR fortran/37829
391         * decl.c (match_data_constant, match_data_constant, variable_decl,
392         gfc_match_decl_type_spec, access_attr_decl,
393         check_extended_derived_type, gfc_match_derived_decl,
394         gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
395         with DT constructors.
396         * gfortran.h (gfc_find_dt_in_generic,
397         gfc_convert_to_structure_constructor): New function prototypes.
398         * interface.c (check_interface0, check_interface1,
399         gfc_search_interface): Ignore DT constructors in generic list.
400         * match.h (gfc_match_structure_constructor): Update prototype.
401         * match.c (match_derived_type_spec): Ensure that one uses the DT
402         not the generic function.
403         * module.c (MOD_VERSION): Bump.
404         (dt_lower_string, dt_upper_string): New functions.
405         (find_use_name_n, find_use_operator, compare_true_names,
406         find_true_name, add_true_name, fix_mio_expr, load_needed,
407         read_module, write_dt_extensions, write_symbol): Changes to deal with
408         different symtree vs. sym names.
409         (create_derived_type): Create also generic procedure.
410         * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic
411         function as the same.
412         * primary.c (gfc_convert_to_structure_constructor): New function.
413         (gfc_match_structure_constructor): Restructured; calls
414         gfc_convert_to_structure_constructor.
415         (build_actual_constructor, gfc_match_rvalue): Update for DT generic
416         functions.
417         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
418         is_illegal_recursion, resolve_generic_f, resolve_variable,
419         resolve_fl_variable_derived, resolve_fl_derived0,
420         resolve_symbol): Handle DT and DT generic constructors.
421         * symbol.c (gfc_use_derived, gfc_undo_symbols,
422         gen_special_c_interop_ptr, gen_cptr_param,
423         generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
424         derived-types, which are hidden in the generic type.
425         (gfc_find_dt_in_generic): New function
426         * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER
427         expr by actual value.
428         * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts):
429         Ensure that we use the DT and not the generic function.
430         * trans-types.c (gfc_get_derived_type): Ensure that we use the DT
431         and not the generic procedure.
432
433 2011-11-14  Tobias Burnus  <burnus@net-b.de>
434
435         PR fortran/51073
436         * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays.
437
438 2011-11-09  Tobias Burnus  <burnus@net-b.de>
439
440         * symbol.c (clear_sym_mark, traverse_ns): Remove functions.
441         (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions.
442         (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree.
443
444 2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>
445
446         PR libfortran/50016
447         * gfortran.texi (Data consistency and durability): New section.
448
449 2011-11-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
450
451         PR fortran/50540
452         * resolve.c (resolve_forall_iterators): Transform internal errors
453         to normal errors.
454
455 2011-11-09  Janus Weil  <janus@gcc.gnu.org>
456
457         PR fortran/50960
458         * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER.
459         * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with
460         their value.
461         * resolve.c (resolve_values): Use-associated symbols do not need to
462         be resolved again.
463         (resolve_fl_parameter): Make sure the symbol has a value.
464
465 2011-11-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
466
467         PR fortran/38718
468         * intrinsic.c (add_functions): Allow dreal simplification.
469         * intrinsic.h (gfc_simplify_dreal): New prototype.
470         * simplify.c (gfc_simplify_dreal): New function.
471
472 2011-11-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
473
474         PR fortran/21881
475         * trans-types.c (gfc_get_dtype): Issue a fatal error instead of
476         an internal error.
477
478 2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
479
480         PR fortran/50404
481         * io.c (gfc_resolve_close): CLOSE requires a UNIT.
482
483 2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
484
485         PR fortran/50409
486         * expr.c (gfc_simplify_expr): Substrings can't have negative
487         length.
488
489 2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
490
491         PR fortran/50334
492         * invoke.texi (-finit-*): Document interaction with
493         -Wuninitialized.
494
495 2011-11-07  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>
496
497         PR libfortran/49188
498         PR libfortran/49336
499         * invoke.texi: Fix documentation of fsign-zero option. Remove
500         contractions.
501         * intrinsic.texi: Fix ATAN2 documentation for signed zeros.
502         Remove contractions.
503         * gfortran.texi: Remove contractions.
504
505 2011-11-07  Janus Weil  <janus@gcc.gnu.org>
506
507         PR fortran/50919
508         * class.c (add_proc_comp): Don't add non-overridable procedures to the
509         vtable.
510         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
511         Don't generate a dynamic _vptr call for non-overridable procedures.
512
513 2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>
514
515         * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
516         and time are part of the C standard library.
517
518 2011-11-06  Janus Weil  <janus@gcc.gnu.org>
519
520         * gfortran.h (gfc_extend_expr): Modified prototype.
521         * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'.
522         Remove argument 'real_error'.
523         * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'.
524
525 2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
526             Aldy Hernandez  <aldyh@redhat.com>
527
528         Merged from cxx-mem-model.
529
530         * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT,
531         BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
532         BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
533         BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
534         BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
535         BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT,
536         BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types.
537
538 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
539
540         PR fortran/43829
541         * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic
542         case in the assertion.
543         * trans-intrinsic (enter_nested_loop): New function.
544         (gfc_conv_intrinsic_arith): Support non-scalar cases.
545         (nest_loop_dimension, walk_inline_intrinsic_arith): New functions.
546         (walk_inline_intrinsic_function): Handle sum and product.
547         (gfc_inline_intrinsic_function_p): Ditto.
548         * trans.h (gfc_get_loopinfo): New macro.
549
550 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
551
552         * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent
553         expression variable.  Use it.
554
555 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
556
557         * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop
558         pointer.  Use it.
559
560 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
561
562         * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling
563         cleanup.
564
565 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
566
567         * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions.
568
569 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
570
571         * frontend-passes.c (cfe_register_funcs): Return early in the case
572         of an inline intrinsic function.
573         (optimize_binop_array_assignment): Skip optimization in the case of
574         an inline intrinsic function.
575
576 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
577
578         * array.c (match_subscript): Skip whitespaces before setting locus.
579         * matchexp.c (match_level_1): Ditto.
580
581 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
582
583         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's
584         temporary rank to the loop rank. Mark ss chains for multiple loop
585         if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
586         and start another.
587
588 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
589
590         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's
591         temporary rank to the loop rank. Mark ss chains for multiple loop
592         if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
593         and start another.
594
595 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
596
597         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate
598         offset twice in generated code.
599
600 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
601
602         * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for
603         arguments to elemental calls.
604         * trans-stmt.c (replace_ss): New function.
605         (gfc_conv_elemental_dependencies): Remove temporary loop handling.
606         Create a new ss for the temporary and replace the original one with it.
607         Remove fake array references. Recalculate all offsets.
608
609 2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>
610
611         * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes.
612         * trans-array.c (gfc_free_ss): Remove forward declaration.
613         Make non-static.
614         (set_delta, gfc_set_delta): Remove forward declaration.
615         Make non-static and rename the former to the later. Update uses.
616
617 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
618
619         * trans.h (gfc_inline_intrinsic_function_p): Move prototype...
620         * gfortran.h (gfc_inline_intrinsic_function_p): ... here.
621         * dependency.c (gfc_check_argument_var_dependency): Check dependencies
622         of inline intrinsics' arguments.
623
624 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
625
626         * trans-array.c (gfc_trans_preloop_setup): New pointers to outer
627         dimension's ss and loop. Use them.
628
629 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
630
631         * trans-array.c (outermost_loop): New function.
632         (gfc_trans_array_constructor, gfc_set_vector_loop_bounds,
633         gfc_add_loop_ss_code): Put generated code out of the outermost loop.
634
635 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
636
637         * trans-array.c (constant_array_constructor_loop_size):
638         Handle multiple loops.
639
640 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
641
642         * trans-array.c (get_rank, get_loop_upper_bound_for_array):
643         New functions.
644         (gfc_trans_array_constructor): Handle multiple loops.
645
646 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
647
648         * trans.h (struct gfc_loopinfo): New field parent.
649         * trans-array.c (gfc_cleanup_loop): Free nested loops.
650         (gfc_add_ss_to_loop): Set nested_loop's parent loop.
651         (gfc_trans_array_constructor): Update assertion.
652         (gfc_conv_loop_setup): Ditto.
653
654 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
655
656         * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss.
657         Call recursively gfc_add_loop_ss_code for all the nested loops.
658         (gfc_conv_ss_startstride): Only get the descriptor for the outermost
659         ss. Call recursively gfc_conv_ss_startstride for all the nested loops.
660         (set_loop_bounds): Call recursively for all the nested loops.
661         (set_delta): Ditto.
662
663 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
664
665         * trans.h (struct gfc_loopinfo): New fields nested and next.
666         * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if
667         ss has non-null nested_ss field.
668
669 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
670
671         * trans-array.c (gfc_trans_create_temp_array): Loop over the parents.
672
673 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
674
675         * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): 
676         Rename the former to the latter and loop over the parents.
677         (innermost_ss): New function.
678         (get_array_ref_dim_for_loop_dim): New function.
679         (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim.
680         (set_loop_bounds): Use get_array_dim_for_loop_dim).
681
682 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
683
684         * trans.h (struct gfc_ss): New field nested_ss.
685         * trans-expr.c (gfc_advance_se_ss_chain): Update assertion.
686
687 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
688
689         * trans-array.c (set_vector_loop_bounds): Loop over the parents.
690
691 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
692
693         * trans-array.c (gfc_trans_array_constructor): Loop over the parents.
694
695 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
696
697         * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the
698         parents.
699
700 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
701
702         * trans.h (struct gfc_ss): New field parent.
703         * trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a
704         parent exists.
705         * trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the
706         end of the chain.
707
708 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
709
710         * trans-array.h (gfc_trans_create_temp_array): Remove loop argument.
711         * trans-array.c (gfc_trans_create_temp_array): Ditto.  Get loop from ss.
712         Update reference to loop.  Remove loop argument.
713         (gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to
714         gfc_trans_create_temp_array.
715         * trans-expr.c (gfc_conv_procedure_call): Ditto.
716         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
717         * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
718         Set loop before calling gfc_trans_create_temp_array.
719
720 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
721
722         * trans-array.c (gfc_trans_create_temp_array): New variable total_dim.
723         Set total_dim to loop's rank. Replace usages of loop's rank.
724
725 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
726
727         * trans-array.c (gfc_trans_array_constructor, trans_array_constructor):
728         Rename the former to the later.  Get loop from ss.
729         Remove loop argument.
730         (gfc_add_loop_ss_code): Update call.
731
732 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
733
734         * trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss.
735         Remove loop argument.
736         (gfc_add_loop_ss_code): Update call.
737
738 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
739
740         * trans.h (struct gfc_ss): New field loop.
741         * trans-array.c (set_ss_loop): New function.
742         (gfc_add_ss_to_loop): Call set_ss_loop.
743
744 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
745
746         * trans.h (struct gfc_ss_info): New field refcount.
747         * trans-array.c (free_ss_info): Decrement refcount. Return early if
748         still non-zero.
749         (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment
750         refcount.
751
752 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
753
754         * trans-array.c (gfc_trans_create_temp_array): Move invariant condition
755         out of the containing loop. 
756
757 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
758
759         * trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array):
760         Move specloop arrays clearing from the former to the latter.
761
762 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
763
764         * trans-array.c (set_loop_bounds): Separate the beginning of
765         gfc_conv_loop_setup into a function of its own.
766         (set_delta): Separate the end of gfc_conv_loop_setup into a function
767         of its own.
768         (gfc_conv_loop_setup): Call set_loop_bounds and set delta.
769         (set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a
770         pointer to the specloop field from the loop struct.
771
772 2011-11-03  Tobias Burnus  <burnus@net-b.de>
773
774         PR fortran/50933
775         * interface.c (gfc_compare_derived_types): Fix check for BIND(C).
776
777 2011-11-03  Tobias Burnus  <burnus@net-b.de>
778
779         PR fortran/50960
780         * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY.
781
782 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
783
784         * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
785         gfc_ss::where into gfc_ss_info.
786         * trans-array.c (gfc_add_loop_ss_code):
787         Update reference chains.
788         * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
789
790 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
791
792         * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
793         gfc_ss::useflags into gfc_ss_info.
794         * trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup,
795         gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary):
796         Update reference chains.
797         * trans-expr.c (gfc_conv_procedure_call): Ditto.
798         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
799
800 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
801
802         * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
803         gfc_ss::data::info into gfc_ss_info::data and remove empty union
804         gfc_ss::data.
805         * trans-array.c (gfc_free_ss, gfc_trans_create_temp_array,
806         gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
807         gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
808         gfc_conv_ss_descriptor, gfc_trans_array_bound_check,
809         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
810         add_array_offset, gfc_trans_preloop_setup,
811         gfc_trans_scalarized_boundary, gfc_conv_section_startstride,
812         gfc_conv_ss_startstride, gfc_could_be_alias,
813         gfc_conv_loop_setup, gfc_conv_expr_descriptor,
814         gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref):
815         Update reference chains and factor them where possible.
816         * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
817         gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference
818         chains.
819         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
820         * trans-io.c (transfer_array_component): Ditto.
821         * trans-stmt.c (gfc_conv_elemental_dependencies,
822         gfc_trans_pointer_assign_need_temp): Ditto.
823
824 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
825
826         * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
827         gfc_ss::data::temp into gfc_ss_info::data.
828         * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference
829         chains.
830
831 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
832
833         * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
834         gfc_ss::data::scalar into newly created union gfc_ss_info::data,
835         and rename subfield expr to value.
836         * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset,
837         gfc_conv_expr_descriptor): Update reference chains.
838         * trans-const.c (gfc_conv_constant): Ditto.
839         * trans-expr.c (gfc_conv_expr): Ditto.
840
841 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
842
843         * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
844         string_length from the former struct to the latter.
845         * trans-array.c
846         (gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code,
847         gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref,
848         gfc_conv_resolve_dependencies, gfc_conv_loop_setup,
849         gfc_conv_expr_descriptor): Update references to string_length and
850         factor common reference chains where possible.
851         * trans-const.c (gfc_conv_constant): Ditto.
852         * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
853         gfc_conv_expr): Ditto.
854
855 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
856
857         * trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from
858         the former struct to the latter.
859         * trans-array.c
860         (gfc_get_array_ss, gfc_get_scalar_ss,
861         gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
862         gfc_add_loop_ss_code, gfc_conv_ss_descriptor,
863         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
864         gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride,
865         gfc_could_be_alias, gfc_conv_resolve_dependencies,
866         gfc_conv_loop_setup, gfc_conv_expr_descriptor,
867         gfc_alloc_allocatable_for_assignment): Update references to expr and
868         factor common reference chains where possible.
869         * trans-const.c (gfc_conv_constant): Ditto.
870         * trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call,
871         gfc_conv_array_constructor_expr, gfc_conv_expr,
872         gfc_conv_expr_reference): Ditto.
873         * trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound,
874         gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall,
875         gfc_add_intrinsic_ss_code): Ditto.
876         * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
877
878 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
879
880         * trans.h (struct gfc_ss_info): New struct.
881         (gfc_get_ss_info): New macro.
882         (struct gfc_ss): Move type field to struct gfc_ss_info.
883         Add an info field of type gfc_ss_info.
884         * trans-array.c (free_ss_info): New function.
885         (gfc_free_ss): Call free_ss_info.
886         (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss):
887         Allocate gfc_ss_info field.
888         (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss,
889         gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
890         gfc_conv_array_index_offset, gfc_trans_preloop_setup,
891         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
892         gfc_conv_ss_startstride, gfc_conv_resolve_dependencies,
893         gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor,
894         gfc_walk_elemental_function_args): Update references to type.
895         * trans-const.c (gfc_conv_constant): Factor common reference chains
896         and update reference to type.
897         * trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1):
898         Update reference to type.
899         (gfc_conv_array_constructor_expr, gfc_conv_expr,
900         gfc_conv_expr_reference): Ditto. Factor common reference chains.
901         * trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references
902         to type
903         * trans-stmt.c (gfc_trans_where_assign): Ditto.
904
905 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
906
907         * trans.h (struct gfc_ss, struct gfc_array_info): Move shape field
908         from the former struct to the latter.
909         * trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup):
910         Update field references.
911         * trans-expr.c (gfc_trans_subarray_assign): Update field references
912         and factor common reference chains.
913         * trans-io.c (transfer_array_component): Ditto.
914
915 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
916
917         * trans.h (struct gfc_array_info): Move dim and dimen fields...
918         (struct gfc_ss): ... here.  Remove gfc_ss::data::temp::dimen field.
919         * trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array
920         initialization.
921         (gfc_get_temp_ss): Initialize dim and dimen.
922         (gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss,
923         gfc_set_loop_bounds_from_array_spec, get_array_ref_dim,
924         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
925         gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref,
926         gfc_trans_preloop_setup, gfc_conv_ss_startstride,
927         gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims,
928         gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment,
929         gfc_walk_array_ref): Update field references.
930         * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
931         Ditto.
932         * trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto.
933         * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
934
935 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
936
937         * trans.h (struct gfc_ss_info, struct gfc_array_info):
938         Rename the former to the latter.
939         * trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage,
940         get_array_ref_dim, gfc_trans_create_temp_array,
941         gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds,
942         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
943         add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride,
944         gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims,
945         gfc_conv_expr_descriptor): Update all uses.
946         * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
947         Ditto.
948         * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
949         walk_inline_intrinsic_transpose): Ditto.
950         * trans-stmt.c (gfc_conv_elemental_dependencies,
951         gfc_trans_pointer_assign_need_temp): Ditto.
952
953 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
954
955         * trans-array.c (dim_ok, transposed_dims): Rename the former to the
956         latter.  Change argument type.  Invert return value.
957         (gfc_conv_expr_descriptor): Update calls.
958
959 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
960
961         * trans-array.c (get_array_ref_dim): Change argument type and name.
962         Obtain previous argument from the new argument in the body.
963         (gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls.
964
965 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
966
967         * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds):
968         Rename the former to the latter.  Change type and name of argument.
969         Get previous argument from the new one.
970         (gfc_add_loop_ss_code): Update call.
971
972 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
973
974         * trans-array.h (gfc_trans_create_temp_array): Replace info argument
975         with ss argument.
976         * trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss.
977         (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
978         gfc_trans_create_temp_array.
979         * trans-expr.c (gfc_conv_procedure_call): Ditto.
980         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
981         * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
982
983 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
984
985         * trans-array.c (gfc_trans_array_bound_check): Use ss argument
986         to get name.
987
988 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
989
990         * trans-array.c (gfc_trans_array_bound_check,
991         trans_array_bound_check): Rename the former to the latter.
992         Replace descriptor argument with ss argument.  Get descriptor from ss.
993         (gfc_conv_array_index_offset, conv_array_index_offset): Rename the
994         former to the latter.  Update call to trans_array_bound_check.
995         Replace info argument with ss argument.  Get info from ss.
996         (gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset.
997         (add_array_offset): Ditto
998
999 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1000
1001         * trans-array.c (gfc_trans_constant_array_constructor,
1002         trans_constant_array_constructor): Rename the former to the latter.
1003         Don't set the rank of the temporary for the loop.  Remove then unused
1004         loop argument.
1005         (gfc_trans_array_constructor): Update call.
1006
1007 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1008
1009         * trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end
1010         marker, not after it.
1011
1012 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1013
1014         * trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays.
1015
1016 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1017
1018         * trans-array.c (gfc_conv_ss_startstride): Access array bounds along
1019         array dimensions instead of loop dimensions.
1020
1021 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1022
1023         * trans-array.c (gfc_trans_preloop_setup): Assertify one condition.
1024
1025 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1026
1027         * trans-array.c (gfc_walk_array_ref): Skip coarray dimensions.
1028
1029 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1030
1031         * trans-array.c (get_array_ref_dim): Remove redundant condition.
1032
1033 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1034
1035         * trans-array.c (gfc_trans_preloop_setup): Move common code...
1036         (add_array_offset): ...into that new function.
1037
1038 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1039
1040         * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead
1041         of array's dimention. Check that it is indeed the same.
1042
1043 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1044
1045         * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion.
1046         Special case outermost loop.
1047
1048 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1049
1050         * trans-array.c (gfc_trans_preloop_setup): Factor loop index
1051         initialization.
1052
1053 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1054
1055         * trans-array.c (gfc_trans_preloop_setup): Move code earlier.
1056
1057 2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>
1058
1059         * trans-array.c (gfc_trans_preloop_setup): Move array reference
1060         initialisation earlier. Factor subsequent array references.
1061
1062 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1063
1064         * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.
1065
1066 2011-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>
1067
1068         PR fortran/50573
1069         * check.c (gfc_check_dshift): Update argument checking for BOZ.
1070         Update checking SHIFT against BITSIZE of I or J.
1071         * intrinsic.texi: Update docs for DSHIFTL and DSHIFTR.
1072
1073 2011-10-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1074
1075         * check.c (gfc_check_atan_2): Typo in comment.
1076         (gfc_check_nearest): If 's' is constant, check that it is not 0.
1077         * simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits,
1078         gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc,
1079         gfc_simplify_nearest): Remove dead code.
1080
1081 2011-10-23  Steven G. Kargl  <kargl@gcc.gnu.org>
1082
1083         * simplify.c (simplify_transformation_to_array): Fix memory leak.
1084
1085 2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1086
1087         PR fortran/50821
1088         * check.c (gfc_check_ishftc): Check args are constant before 
1089         extracting the integer.
1090
1091 2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1092
1093         PR fortran/50514
1094         * check.c (less_than_bitsize1): Check |shift| <= bit_size(i).
1095         (gfc_check_ishftc):  Check |shift| <= bit_size(i) and check
1096         that size is positive.
1097
1098 2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1099
1100         PR fortran/50524
1101         * resolve.c (resolve_ref): Check return value of resolve_substring().
1102
1103 2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1104
1105         * io.c (match_dt_format): Match a user-defined operator or a kind
1106         type prefixed string.
1107
1108 2011-10-19  Janus Weil  <janus@gcc.gnu.org>
1109
1110         PR fortran/47023
1111         * check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF.
1112         * intrinsinc.texi (SIZEOF): Document it.
1113         (STORAGE_SIZE): Fix special characters. Fix line breaks.
1114
1115 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1116
1117         PR fortran/50420
1118         * trans.c (gfc_build_array_ref): If type is not an array, check that
1119         there is nothing to do, and do nothing.
1120
1121 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1122
1123         PR fortran/50420
1124         * trans-types.c (gfc_build_array_type): Don't force lower bound to one
1125         in the deferred case.
1126
1127 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1128
1129         PR fortran/50420
1130         * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
1131         Don't set already set array ref.
1132
1133 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1134
1135         * array.c (gfc_find_array_ref): Remove coarray-specific handling.
1136
1137 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1138
1139         PR fortran/50420
1140         * check.c (dim_corank_check): Use gfc_get_corank to get corank.
1141
1142 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1143
1144         PR fortran/50420
1145         * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.
1146
1147         PR fortran/50420
1148         * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
1149         the scalarization chain initialization. 
1150
1151 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1152
1153         PR fortran/50420
1154         * trans-intrinsic.c (walk_coarray): Allow subreferences after a
1155         coarray object reference.
1156
1157 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1158
1159         PR fortran/50420
1160         * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
1161         if they are coarrays.
1162
1163 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1164
1165         * trans-array.h (gfc_walk_array_ref): New prototype.
1166         * trans-array.c (gfc_walk_array_ref): New function, containing
1167         all but the beginning of gfc_walk_variable_expr's code.
1168         (gfc_walk_variable_expr): Use gfc_walk_array_ref.
1169
1170 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1171
1172         PR fortran/50420
1173         * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
1174         ndim for the descriptor's rank.
1175
1176 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1177
1178         PR fortran/50420
1179         * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
1180         from zero, and add then the relevant offset (either ndim or loop.dimen)
1181         depending on context.
1182
1183 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1184
1185         * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.
1186
1187 2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>
1188
1189         * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
1190         earlier.
1191
1192 2011-10-18  Janus Weil  <janus@gcc.gnu.org>
1193
1194         PR fortran/47023
1195         * decl.c (verify_c_interop_param): Renamed to
1196         'gfc_verify_c_interop_param'. Add error message for polymorphic
1197         arguments.
1198         (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
1199         polymorphic variables.
1200         (verify_bind_c_sym): Renamed 'verify_c_interop'.
1201         * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
1202         * check.c (gfc_check_sizeof): Ditto.
1203         * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
1204         * symbol.c (verify_bind_c_derived_type): Ditto.
1205
1206 2011-10-15  Tom Tromey  <tromey@redhat.com>
1207             Dodji Seketeli  <dodji@redhat.com>
1208
1209         * cpp.c (print_line, cb_define): Adjust to avoid using internals
1210         of struct line_map.  Use the public API instead.
1211
1212 2011-10-17  Janus Weil  <janus@gcc.gnu.org>
1213
1214         PR fortran/47023
1215         PR fortran/50752
1216         * primary.c (match_kind_param): Avoid segfault.
1217
1218 2011-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
1219
1220         * frontend-passes.c (current_ns):  Make static.
1221         (create_var):  Note parent of newly created namespace.
1222         (optimize_namespace):  Don't wak sibling namespaces
1223         if they are EXEC_BLOCK because this is handled...
1224         (gfc_code_walker):  ... here.  Also walk ASSOCIATE lists.
1225
1226 2011-10-16  Janus Weil  <janus@gcc.gnu.org>
1227
1228         PR fortran/47023
1229         * primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
1230         (get_kind): Pass on 'is_iso_c' flag.
1231         (match_integer_constant,match_real_constant,match_logical_constant):
1232         Set 'ts.is_c_interop'.
1233
1234 2011-10-16  Janus Weil  <janus@gcc.gnu.org>
1235
1236         PR fortran/50547
1237         * resolve.c (resolve_formal_arglist): Remove unneeded error message.
1238         Some reshuffling.
1239
1240 2011-10-15  Tobias Burnus  <burnus@net-b.de>
1241
1242         * gfortran.texi (Fortran 2008 status, TS 29113 status,
1243         Further Interoperability of Fortran with C): Update implementation
1244         status, change references from TR 29113 to TS 29113.
1245         * intrinsic.texi (RANK): Change TR 29113 to TS 29113.
1246         * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts.
1247         * lang.opt (std=): Ditto.
1248         * options.c (gfc_handle_option, set_default_std_flags): Ditto and
1249         change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
1250         * libgfortran.h: Ditto.
1251         * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto.
1252         * decl.c (verify_c_interop_param): Ditto.
1253
1254 2011-10-14  Janus Weil  <janus@gcc.gnu.org>
1255
1256         PR fortran/50570
1257         * expr.c (gfc_check_vardef_context): Don't throw an error on
1258         non-pointer assignments involving an intent(in) pointer dummy.
1259
1260 2011-10-14  Tobias Burnus  <burnus@net-b.de>
1261
1262         PR fortran/50718
1263         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
1264         for dummy arguments with VALUE attribute.
1265
1266 2011-10-11  Tobias Burnus  <burnus@net-b.de>
1267             Janus Weil  <janus@gcc.gnu.org>
1268
1269         * invoke.texi (-fwhole-file): Update wording since -fwhole-file
1270         is now enabled by default.
1271
1272 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
1273
1274         * trans-expr.c (gfc_conv_power_op): Delete old interface with two
1275         parallel arrays to hold standard builtin declarations, and replace
1276         it with a function based interface that can support creating
1277         builtins on the fly in the future.  Change all uses, and poison
1278         the old names.  Make sure 0 is not a legitimate builtin index.
1279         (fill_with_spaces): Ditto.
1280         (gfc_trans_string_copy): Ditto.
1281         (gfc_trans_zero_assign): Ditto.
1282         (gfc_build_memcpy_call): Ditto.
1283         (alloc_scalar_allocatable_for_assignment): Ditto.
1284         * trans-array.c (gfc_trans_array_constructor_value): Ditto.
1285         (duplicate_allocatable): Ditto.
1286         (gfc_alloc_allocatable_for_assignment): Ditto.
1287         * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto.
1288         (gfc_omp_clause_assign_op): Ditto.
1289         (gfc_trans_omp_atomic): Ditto.
1290         (gfc_trans_omp_do): Ditto.
1291         (gfc_trans_omp_task): Ditto.
1292         * trans-stmt.c (gfc_trans_stop): Ditto.
1293         (gfc_trans_sync): Ditto.
1294         (gfc_trans_allocate): Ditto.
1295         (gfc_trans_deallocate): Ditto.
1296         * trans.c (gfc_call_malloc): Ditto.
1297         (gfc_allocate_using_malloc): Ditto.
1298         (gfc_call_free): Ditto.
1299         (gfc_deallocate_with_status): Ditto.
1300         (gfc_deallocate_scalar_with_status): Ditto.
1301         * f95-lang.c (gfc_define_builtin): Ditto.
1302         (gfc_init_builtin_functions): Ditto.
1303         * trans-decl.c (create_main_function): Ditto.
1304         * trans-intrinsic.c (builtin_decl_for_precision): Ditto.
1305
1306 2011-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1307
1308         PR fortran/50564
1309         * frontend-passes (forall_level):  New variable.
1310         (cfe_register_funcs):  Don't register functions if we
1311         are within a forall loop.
1312         (optimize_namespace):  Set forall_level to 0 before entry.
1313         (gfc_code_walker):  Increase/decrease forall_level.
1314
1315 2011-10-09  Tobias Burnus  <burnus@net-b.de>
1316
1317         PR fortran/50273
1318         * trans-common.c (translate_common): Fix -Walign-commons check.
1319
1320 2011-10-09  Mikael Morin  <mikael.morin@sfr.fr>
1321
1322         * interface.c (check_dummy_characteristics): Count dimensions starting
1323         from one in diagnostic.
1324
1325 2011-10-09  Tobias Burnus  <burnus@net-b.de>
1326
1327         * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
1328         dependency on iso-c-binding.def and iso-fortran-env.def.
1329         * module.c (import_iso_c_binding_module): Add error when
1330         explicitly importing a nonstandard symbol; extend standard-
1331         depending loading.
1332         * iso-c-binding.def: Add c_float128 and c_float128_complex
1333         integer parameters (for -std=gnu).
1334         * intrinsic.texi (ISO_C_Binding): Document them.
1335         * symbol.c (generate_isocbinding_symbol): Change macros
1336         to ignore GFC_STD_* data.
1337         * trans-types.c (gfc_init_c_interop_kinds): Ditto; make
1338         nonstatic and renamed from "init_c_interop_kinds".
1339         (gfc_init_kinds): Don't call it
1340         * trans-types.h (gfc_init_c_interop_kinds): Add prototype.
1341         * f95-lang.c (gfc_init_decl_processing): Call it.
1342
1343 2011-10-09  Janus Weil  <janus@gcc.gnu.org>
1344
1345         PR fortran/50659
1346         * expr.c (replace_symbol): Only do replacement if the symbol is a dummy.
1347
1348 2011-10-08  Paul Thomas  <pault@gcc.gnu.org>
1349
1350         PR fortran/47844
1351         * trans-array.c (gfc_conv_array_index_offset): Use descriptor
1352         stride for pointer function results.
1353
1354 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1355
1356         * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.
1357
1358 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1359
1360         * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases.
1361
1362 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1363
1364         * trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
1365         Remove conditions on coarray.
1366         (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
1367         (gfc_conv_expr_descriptor): Ditto. Add assertions before the call.
1368
1369 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1370
1371         * trans-array.c (gfc_conv_section_startstride): Remove coarray_last
1372         argument. Remove condition on coarray_last.
1373         (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
1374         (gfc_conv_expr_descriptor): Ditto.
1375
1376 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1377
1378         * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray
1379         handling.  Don't reset array ref's corank and codimensions' types
1380         in the full array ref case.  Update loop upper limit.
1381         Remove DIMEN_THIS_IMAGE case.  Remove unnecessary conditions.
1382
1383 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1384
1385         * trans.h (gfc_ss_info): Remove codimen field.
1386         * trans-array.c (gfc_get_array_ss): Don't set codimen field.
1387         (gfc_trans_create_temp_array): Don't set descriptor's cobounds.
1388         (gfc_trans_constant_array_constructor): Update loop upper limit.
1389         (gfc_conv_ss_startstride): Don't set codimen field.
1390         Don't get descriptor's cobounds.
1391         (gfc_walk_variable_expr): Update dimension index.
1392         * trans-intrinsic.c (trans_this_image, trans_image_index,
1393         conv_intrinsic_cobound): Don't set codimen field
1394
1395 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1396
1397         * trans.h (gfc_loopinfo): Remove codimen field.
1398         * trans-array.c (gfc_set_vector_loop_bounds,
1399         gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
1400         limit.
1401         (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last
1402         codimension.
1403         (gfc_start_scalarized_body): Update loop lower limit.
1404         (gfc_conv_ss_startstride): Don't set loop's codimen field.
1405         (gfc_conv_loop_setup): Remove unnecessary condition.
1406         (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank.
1407
1408 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1409
1410         * trans.h (gfc_ss): Remove data.temp.codimen field.
1411         * trans-array.c (gfc_conv_resolve_dependencies,
1412         gfc_conv_expr_descriptor): Don't set temp's codimen field.
1413
1414 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1415
1416         * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the
1417         associated dimen_type) in the full array ref case.
1418
1419 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1420
1421         * trans-intrinsic.c (walk_coarray): New function.
1422         (convert_element_to_coarray_ref): Move code to walk_coarray. Remove.
1423         (trans-this_image, trans_image_index, conv_intrinsic_cobound):
1424         Use walk_coarray.
1425
1426 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1427
1428         * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer
1429         cobounds evaluation.
1430
1431 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1432
1433         * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.
1434
1435 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1436
1437         * trans-array.c (gfc_conv_section_startstride): Move code to
1438         evaluate_bound.  Use evaluate_bound.
1439         (evaluate_bound): New function.
1440
1441 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1442
1443         * trans-array.c (gfc_conv_section_startstride): Update assertion to
1444         also accept coarrays.
1445
1446 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1447
1448         * trans-array.c (gfc_conv_section_startstride): Factor common
1449         array ref references.
1450
1451 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1452
1453         * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of
1454         loop.codimen as argument to gfc_get_array_type_bounds.
1455
1456 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1457
1458         * trans-array.h (struct gfc_se): New flag want_coarray.
1459         * trans-intrinsic.c (trans_this_image, trans_image_index,
1460         conv_intrinsic_cobound): Set want_coarray.
1461         * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension
1462         earlier and without relying on the scalarizer.
1463
1464 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1465
1466         * expr.c (gfc_get_corank): Return 0 if input expression is not a
1467         coarray.
1468
1469 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1470
1471         * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
1472         descriptor setup code.
1473
1474 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1475
1476         * resolve.c (compare_spec_to_ref): Move coarray ref initialization
1477         code...
1478         (resolve_array_ref): ... here.
1479
1480 2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>
1481
1482         * check.c (is_coarray): Remove.
1483         (coarray_check): Use gfc_is_coarray.
1484
1485 2011-10-07  Janus Weil  <janus@gcc.gnu.org>
1486
1487         PR fortran/50625
1488         * class.c (gfc_build_class_symbol): Fix whitespace.
1489         * module.c (mio_symbol): Set 'class_ok' attribute.
1490         * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
1491         been built for class symbols.
1492
1493 2011-10-04  Janus Weil  <janus@gcc.gnu.org>
1494
1495         PR fortran/35831
1496         * interface.c (check_dummy_characteristics): Check the array shape.
1497
1498 2011-10-01  Janus Weil  <janus@gcc.gnu.org>
1499
1500         PR fortran/50585
1501         * interface.c (get_expr_storage_size): Check if 'length' component is
1502         associated.
1503
1504 2011-09-29  Janus Weil  <janus@gcc.gnu.org>
1505
1506         PR fortran/50547
1507         * resolve.c (resolve_formal_arglist): Fix pureness check for dummy
1508         functions.
1509
1510         PR fortran/50553
1511         * symbol.c (check_conflict): Forbid TARGET attribute for statement
1512         functions.
1513
1514 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
1515
1516         * trans-types.c (gfc_type_for_size): Return wider type
1517         if no suitable narrower type has been found.
1518         (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
1519         returned type doesn't have expected TYPE_MODE.
1520
1521 2011-09-26  Janus Weil  <janus@gcc.gnu.org>
1522
1523         PR fortran/50515
1524         * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute.
1525
1526         PR fortran/50517
1527         * interface.c (gfc_compare_interfaces): Bugfix in check for result type.
1528
1529 2011-09-22  Janus Weil  <janus@gcc.gnu.org>
1530
1531         PR fortran/41733
1532         * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental
1533         procedures.
1534         * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check
1535         for PURE and ELEMENTAL attributes.
1536         (compare_actual_formal): Remove pureness check here.
1537
1538 2011-09-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1539
1540         * check.c (gfc_check_c_sizeof): Remove redundant word.
1541
1542 2011-09-20  Simon Baldwin  <simonb@google.com>
1543
1544         * module.c (gfc_dump_module): Omit timestamp from output.
1545
1546 2011-09-17  Janus Weil  <janus@gcc.gnu.org>
1547
1548         PR fortran/50403
1549         * symbol.c (gfc_use_derived): Fix coding style.
1550
1551 2011-09-15  Janus Weil  <janus@gcc.gnu.org>
1552
1553         PR fortran/50401
1554         * resolve.c (resolve_transfer): Check if component 'ref' is defined.
1555
1556         PR fortran/50403
1557         * symbol.c (gfc_use_derived): Check if argument 'sym' is defined.
1558
1559 2011-09-14  Tobias Burnus  <burnus@net-b.de>
1560
1561         PR fortran/34547
1562         PR fortran/50375
1563         * check.c (gfc_check_null): Allow allocatables as MOLD to NULL.
1564         * resolve.c (resolve_transfer): Reject NULL without MOLD.
1565         * interface.c (gfc_procedure_use): Reject NULL without MOLD
1566         if no explicit interface is known.
1567         (gfc_search_interface): Reject NULL without MOLD if it would
1568         lead to ambiguity.
1569
1570 2011-09-13  Janus Weil  <janus@gcc.gnu.org>
1571
1572         PR fortran/50379
1573         * symbol.c (check_conflict): Check conflict between GENERIC and RESULT
1574         attributes.
1575
1576 2011-09-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1577
1578         PR fortran/50327
1579         * frontend-passes.c (dummy_expr_callback):  New function.
1580         (convert_do_while):  New function.
1581         (optimize_namespace):  Call code walker to convert do while loops.
1582
1583 2011-09-11  Janus Weil  <janus@gcc.gnu.org>
1584
1585         PR fortran/35831
1586         PR fortran/47978
1587         * interface.c (check_dummy_characteristics): New function to check the
1588         characteristics of dummy arguments.
1589         (gfc_compare_interfaces,gfc_check_typebound_override): Call it here.
1590
1591 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
1592
1593         * trans-array.c (gfc_trans_constant_array_constructor): Remove
1594         superfluous initialisation of DIM field.
1595         (gfc_trans_array_constructor): Assert that DIMEN field is properly set.
1596         (gfc_conv_expr_descriptor): Ditto.
1597         * trans-expr.c (gfc_conv_procedure_call): Ditto.
1598
1599 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
1600
1601         * trans-array.h (gfc_get_scalar_ss): New prototype.
1602         * trans-array.c (gfc_get_scalar_ss): New function.
1603         (gfc_walk_variable_expr, gfc_walk_op_expr,
1604         gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
1605         * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1606         (gfc_trans_assignment_1): Ditto.
1607         * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
1608         gfc_trans_where_3): Ditto.
1609
1610 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
1611
1612         * trans-array.h (gfc_get_temp_ss): New prototype.
1613         * trans-array.c (gfc_get_temp_ss): New function.
1614         (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
1615         (gfc_conv_expr_descriptor): Ditto.
1616         * trans-expr.c (gfc_conv_subref_array_arg): Ditto.
1617
1618 2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>
1619
1620         * trans-array.h (gfc_get_array_ss): New prototype.
1621         * trans-array.c (gfc_get_array_ss): New function.
1622         (gfc_walk_variable_expr, gfc_walk_function_expr,
1623         gfc_walk_array_constructor): Re-use gfc_get_array_ss.
1624         * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1625         * trans-intrinsic.c (gfc_walk_intrinsic_bound,
1626         gfc_walk_intrinsic_libfunc): Ditto.
1627         * trans-io.c (transfer_array_component): Ditto.
1628
1629 2011-09-08  Tobias Burnus  <burnus@net-b.de>
1630
1631         PR fortran/44646
1632         * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT.
1633         * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT.
1634         * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT.
1635         * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode,
1636         lock_unlock_statement, sync_statement, gfc_match_allocate,
1637         gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic.
1638         (gfc_match_do): Match DO CONCURRENT.
1639         (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator,
1640         match_forall_iterator, match_forall_header, match_simple_forall,
1641         gfc_match_forall): Move up in the file.
1642         * parse.c (check_do_closure, parse_do_block): Handle do concurrent.
1643         * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT.
1644         * resolve.c (do_concurrent_flag): New global variable.
1645         (resolve_function, pure_subroutine, resolve_branch,
1646         gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent
1647         diagnostic.
1648         * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT.
1649         * trans-stmt.c (gfc_trans_do_concurrent): New function.
1650         (gfc_trans_forall_1): Handle do concurrent.
1651         * trans-stmt.h (gfc_trans_do_concurrent): New function prototype.
1652         * trans.c (trans_code): Call it.
1653         * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT.
1654
1655 2011-09-07  Janus Weil  <janus@gcc.gnu.org>
1656
1657         PR fortran/48095
1658         * primary.c (gfc_match_structure_constructor): Handle parsing of
1659         procedure pointers components in structure constructors.
1660         * resolve.c (resolve_structure_cons): Check interface of procedure
1661         pointer components. Changed wording of some error messages.
1662
1663 2011-09-04  Janus Weil  <janus@gcc.gnu.org>
1664
1665         PR fortran/50227
1666         * trans-types.c (gfc_sym_type): Check for proc_name.
1667
1668 2011-08-30  Tobias Burnus  <burnus@net-b.de>
1669
1670         PR fortran/45044
1671         * trans-common.c (build_common_decl): Warn if named common
1672         block's size is not everywhere the same.
1673
1674 2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>
1675
1676         PR fortran/45170
1677         * trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
1678
1679 2011-08-29  Janus Weil  <janus@gcc.gnu.org>
1680
1681         PR fortran/50225
1682         * trans-decl.c (gfc_generate_function_code): Nullify polymorphic
1683         allocatable function results.
1684
1685 2011-08-29  Tobias Burnus  <burnus@net-b.de>
1686
1687         * trans-decl.c (generate_coarray_sym_init): Use
1688         GFC_CAF_COARRAY_STATIC for static coarrays.
1689
1690 2011-08-28  Dodji Seketeli  <dodji@redhat.com>
1691
1692         * scanner.c (load_file): Don't abuse LC_RENAME reason while
1693         (indirectly) calling linemap_add.
1694
1695 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1696
1697         * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL
1698         if threadprivate.
1699         * symbol.c (check_conflict): Allow threadprivate attribute with
1700         FL_PROCEDURE if proc_pointer.
1701
1702 2011-08-25  Mikael Morin  <mikael@gcc.gnu.org>
1703
1704         PR fortran/50050
1705         * expr.c (gfc_free_shape): Do nothing if shape is NULL.
1706         (free_expr0): Remove redundant NULL shape check.
1707         * resolve.c (check_host_association): Ditto.
1708         * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is
1709         non-NULL.
1710         * trans-io.c (transfer_array_component): Ditto.
1711
1712 2011-08-25  Tobias Burnus  <burnus@net-b.de>
1713
1714         * trans-array.c (gfc_conv_descriptor_token): Add assert.
1715         * trans-decl.c (gfc_build_qualified_array,
1716         create_function_arglist): Handle assumed-shape arrays.
1717         * trans-expr.c (gfc_conv_procedure_call): Ditto.
1718         * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't
1719         add "caf_token" to assumed-shape descriptors, new akind argument.
1720         (gfc_get_array_type_bounds): Pass akind.
1721         * trans.h (lang_decl): New elements caf_offset and token.
1722         (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros.
1723
1724 2011-08-25  Tobias Burnus  <burnus@net-b.de>
1725
1726         * trans-array.c (structure_alloc_comps): Fix for allocatable
1727         scalar coarray components.
1728         * trans-expr.c (gfc_conv_component_ref): Ditto.
1729         * trans-type.c (gfc_get_derived_type): Ditto.
1730
1731 2011-08-24  Tobias Burnus  <burnus@net-b.de>
1732
1733         PR fortran/50163
1734         * expr.c (check_init_expr): Return when an error occured.
1735
1736 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
1737
1738         * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.
1739
1740 2011-08-23  Tobias Burnus  <burnus@net-b.de>
1741
1742         PR fortran/31600
1743         * symbol.c (gfc_add_type): Better diagnostic if redefining
1744         use-associated symbol.
1745         * module.c (gfc_use_module): Use module name as locus.
1746
1747 2011-08-22  Gabriel Charette  <gchare@google.com>
1748
1749         * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
1750         defined in cpp_define_builtins.
1751
1752 2011-08-22  Mikael Morin  <mikael@gcc.gnu.org>
1753
1754         PR fortran/50050
1755         * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
1756         * expr.c (gfc_clear_shape, gfc_free_shape): New functions.
1757         (free_expr0): Re-use gfc_free_shape.
1758         * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1759         * trans-io.c (transfer_array_component): Ditto.
1760         * resolve.c (check_host_association): Ditto.
1761         (gfc_expr_to_initialize): Don't force the rank value and free the shape
1762         after updating the expression. Recalculate shape and rank.
1763         (resolve_where_shape): Re-use gfc_clear_shape.
1764         * array.c (gfc_array_ref_shape): Ditto.
1765
1766 2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1767
1768         PR fortran/47659
1769         * expr.c (gfc_check_assign): Check for type conversions when the
1770         right-hand side is a constant REAL/COMPLEX contstant the left-hand
1771         side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
1772         for REAL does not change the value of the constant.
1773
1774 2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1775
1776         PR fortran/50130
1777         * resolve.c (resolve_array_ref):  Don't calculate upper bound
1778         if the stride is zero.
1779
1780 2011-08-20  Janus Weil  <janus@gcc.gnu.org>
1781
1782         PR fortran/49638
1783         * dependency.c (gfc_dep_compare_expr): Add new result value "-3".
1784         (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
1785         result value "-3".
1786         * frontend-passes.c (optimize_comparison): Ditto.
1787         * interface.c (gfc_check_typebound_override): Ditto.
1788
1789 2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>
1790
1791         PR fortran/50129
1792         * parse.c (parse_where): Undo changes after emitting an error. 
1793
1794 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
1795
1796         PR fortran/49792
1797         * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
1798         bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
1799         lhs needs reallocation.
1800         * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
1801         code is NULL, emit a barrier if workshare emitted no code at all
1802         and NOWAIT clause isn't present.
1803
1804 2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>
1805
1806         PR fortran/50071
1807         * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
1808         * parse.c (check_statement_label): Accept ST_END_BLOCK and
1809         ST_END_ASSOCIATE as valid branch target.
1810         (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
1811         Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
1812         * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
1813         EXEC_END_NESTED_BLOCK.
1814         (resolve_branch): Ditto.
1815         (resolve_code): Add EXEC_END_NESTED_BLOCK case.
1816         * st.c (gfc_free_statement): Ditto.
1817         * trans.c (trans_code): Ditto.
1818
1819 2011-08-18  Mikael Morin  <mikael.morin@sfr.fr>
1820
1821         PR fortran/50071
1822         * symbol.c (gfc_get_st_label): Use the derived type namespace when
1823         we are parsing a derived type definition.
1824
1825 2011-08-18  Tobias Burnus  <burnus@net-b.de>
1826
1827         PR fortran/18918
1828         * parse.c (parse_derived): Add lock_type
1829         checks, improve coarray_comp handling.
1830         * resolve.c (resolve_allocate_expr,
1831         resolve_lock_unlock, resolve_symbol): Fix lock_type
1832         constraint checks.
1833
1834 2011-08-17  Tobias Burnus  <burnus@net-b.de>
1835
1836         PR fortran/31461
1837         * trans-decl.c (generate_local_decl): Warn about
1838         unused explicitly imported module variables/parameters.
1839
1840 2011-08-17  Janus Weil  <janus@gcc.gnu.org>
1841
1842         PR fortran/50070
1843         * resolve.c (resolve_fl_variable): Reject non-constant character lengths
1844         in COMMON variables.
1845
1846 2011-08-16  Tobias Burnus  <burnus@net-b.de>
1847             Dominique Dhumieres  <dominiq@lps.ens.fr>
1848
1849         PR fortran/50094
1850         * resolve.c (resolve_symbol): Fix stupid typo.
1851
1852 2011-08-15  Tobias Burnus  <burnus@net-b.de>
1853
1854         * resolve.c (resolve_symbol): Fix coarray result-var check.
1855
1856 2011-08-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1857
1858         * module.c (use_iso_fortran_env_module):  Spell 'referrenced' correctly.
1859
1860 2011-08-14  Janus Weil  <janus@gcc.gnu.org>
1861
1862         PR fortran/50073
1863         * decl.c (check_function_name): New function, separated off from
1864         'variable_decl' and slightly extended.
1865         (variable_decl,attr_decl1): Call it.
1866
1867 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1868
1869         * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).
1870
1871 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
1872             Thomas Koenig  <tkoenig@gcc.gnu.org>
1873
1874         PR fortran/49638
1875         * dependency.c (are_identical_variables): For dummy arguments only
1876         check for equal names, not equal symbols.
1877         * interface.c (gfc_check_typebound_override): Add checking for rank
1878         and character length.
1879
1880 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
1881
1882         PR fortran/49638
1883         * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
1884         two prototypes.
1885         * dependency.c (gfc_are_identical_variables,are_identical_variables):
1886         Renamed the former to the latter and made static.
1887         (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
1888         commutativity of multiplication.
1889         (gfc_is_same_range,is_same_range): Renamed the former to the latter,
1890         made static and removed argument 'def'.
1891         (check_section_vs_section): Renamed 'gfc_is_same_range'.
1892         * gfortran.h (gfc_check_typebound_override): New prototype.
1893         * interface.c (gfc_check_typebound_override): Moved here from ...
1894         * resolve.c (check_typebound_override): ... here (and renamed).
1895         (resolve_typebound_procedure): Renamed 'check_typebound_override'.
1896
1897 2011-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1898
1899         PR fortran/50004
1900         * target-memory.c (gfc_target_expr-size): Don't clobber typespec
1901         for derived types.
1902         * simplify.c (gfc_simplify_transfer): Don't calculate source_size
1903         twice.
1904
1905 2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1906
1907         PR fortran/37211
1908         * gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
1909         * target-memory.h (gfc_target_interpret_expr):  Add boolean
1910         argument wether to convert wide characters.
1911         * target-memory.c (gfc_target_expr_size):  Also return length
1912         of characters for non-constant expressions if these can be
1913         determined from the cl.
1914         (interpret_array):  Add argument for gfc_target_interpret_expr.
1915         (gfc_interpret_derived):  Likewise.
1916         (gfc_target_interpret_expr):  Likewise.
1917         * check.c:  Include target-memory.h.
1918         (gfc_calculate_transfer_sizes):  New function.
1919         (gfc_check_transfer):  When -Wsurprising is in force, calculate
1920         sizes and warn if result is larger than size (check moved from
1921         gfc_simplify_transfer).
1922         * simplify.c (gfc_simplify_transfer):  Use
1923         gfc_calculate_transfer_sizes.  Remove warning.
1924
1925 2011-08-04  Richard Guenther  <rguenther@suse.de>
1926
1927         PR fortran/49957
1928         * trans-array.c (add_to_offset): New function.
1929         (gfc_conv_array_ref): Build the array index expression in optimally
1930         associated order.
1931         (gfc_walk_variable_expr): Adjust for the backward walk.
1932
1933 2011-08-02  Daniel Kraft  <d@domob.eu>
1934
1935         PR fortran/49885
1936         * trans-array.c (gfc_trans_auto_array_allocation): Change
1937         gfc_start_block to gfc_init_block to avoid spurious extra-scope.
1938
1939 2011-08-02  Tobias Burnus  <burnus@net-b.de>
1940
1941         * trans-array.c (gfc_array_allocate): Pass token to
1942           gfc_allocate_allocatable for -fcoarray=lib.
1943         * trans-stmt.c (gfc_trans_allocate): Update
1944         gfc_allocate_allocatable call.
1945         * trans.h (gfc_allocate_allocatable): Update prototype.
1946         (gfc_allocate_using_lib): Remove.
1947         * trans.c (gfc_allocate_using_lib): Make static, handle token.
1948         (gfc_allocate_allocatable): Ditto.
1949
1950 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1951
1952         PR fortran/46752
1953         * cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
1954         * openmp.c (gfc_free_omp_clauses): Free also final_expr.
1955         (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
1956         (gfc_match_omp_clauses): Handle parsing final and mergeable
1957         clauses.
1958         (OMP_TASK_CLAUSES): Allow final and mergeable clauses.
1959         (gfc_match_omp_taskyield): New function.
1960         (resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
1961         Cray pointers in clauses other than REDUCTION.
1962         (gfc_match_omp_atomic): Match optional
1963         read/write/update/capture keywords after !$omp atomic.
1964         (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
1965         * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
1966         print final and mergeable clauses.
1967         (show_code_node): Handle EXEC_OMP_TASKYIELD.
1968         * trans-openmp.c (gfc_trans_omp_clauses): Handle final and
1969         mergeable clauses.
1970         (gfc_trans_omp_taskyield): New function.
1971         (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
1972         (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
1973         (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
1974         (gfc_omp_predetermined_sharing): Adjust comment.
1975         * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
1976         ST_OMP_END_ATOMIC.
1977         (gfc_omp_clauses): Add final_expr and mergeable fields.
1978         (gfc_exec_op): Add EXEC_OMP_TASKYIELD.
1979         (gfc_omp_atomic_op): New enum typedef.
1980         (struct gfc_code): Add ext.omp_atomic.
1981         * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
1982         * frontend-passes.c (gfc_code_walker): Also walk final_expr.
1983         * resolve.c (gfc_resolve_blocks, resolve_code): Handle
1984         EXEC_OMP_TASKYIELD.
1985         * st.c (gfc_free_statement): Likewise.
1986         * match.h (gfc_match_omp_taskyield): New prototype.
1987         * parse.c (decode_omp_directive): Handle taskyield directive.
1988         Handle !$omp end atomic.
1989         (case_executable): Add ST_OMP_TASKYIELD case.
1990         (gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
1991         (parse_omp_atomic): Return gfc_statement instead of void.
1992         For !$omp atomic capture parse two assignments instead of
1993         just one and require !$omp end atomic afterwards, for
1994         other !$omp atomic forms just allow !$omp end atomic at the
1995         end.
1996         (parse_omp_structured_block, parse_executable): Adjust
1997         parse_omp_atomic callers.
1998
1999 2011-08-02  Tobias Burnus  <burnus@net-b.de>
2000
2001         * intrinsic.c (OMP_LIB): Updated openmp_version's
2002         value to 201107.
2003         * gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
2004         * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
2005         remove deleted omp_integer_kind and omp_logical_kind constants.
2006
2007 2011-07-31  Janus Weil  <janus@gcc.gnu.org>
2008
2009         PR fortran/49112
2010         * resolve.c (resolve_structure_cons): Don't do the full dt resolution,
2011         only call 'resolve_fl_derived0'.
2012         (resolve_typebound_procedures): Resolve typebound procedures of
2013         parent type.
2014         (resolve_fl_derived0): New function, which does a part of the work
2015         for 'resolve_fl_derived'.
2016         (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
2017         things.
2018
2019 2011-07-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
2020
2021         PR fortran/48876
2022         * expr.c (gfc_simplify_expr):  If end of a string is less
2023         than zero, set it to zero.
2024
2025 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
2026
2027         PR fortran/31067
2028         * frontend-passes.c (optimize_minmaxloc): New function.
2029         (optimize_expr): Call it.
2030
2031 2011-07-27  Tobias Burnus  <burnus@net-b.de>
2032
2033         PR fortran/45586
2034         * trans-types.c (gfc_get_derived_type): Ensure that pointer
2035         component types are marked as nonrestricted.
2036
2037 2011-07-27  Daniel Carrera  <dcarrera@gmail.com>
2038
2039         PR fortran/49755
2040         * trans.c (gfc_allocate_using_malloc): Change function signature.
2041         Return nothing. New parameter "pointer". Eliminate temorary variables. 
2042         (gfc_allocate_using_lib): Ditto.
2043         (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
2044         and gfc_allocate_using_malloc. Do not free and then reallocate a
2045         variable that is already allocated.
2046         (gfc_likely): New function. Basedon gfc_unlikely.
2047         * trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
2048         Instructions to modify the array descriptor are stored in this block
2049         while other instructions continue to be stored in "pblock".
2050         (gfc_array_allocate): Update call to gfc_array_init_size. Move the
2051         descriptor_block so that the array descriptor is only updated if
2052         the array was allocated successfully.
2053         Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
2054         * trans.h (gfc_allocate_allocatable): Change function signature.
2055         Function now returns void.
2056         (gfc_allocate_using_lib): Ditto, and new function parameter.
2057         (gfc_allocate_using_malloc): Ditto.
2058         * trans-openmp.c (gfc_omp_clause_default_ctor,
2059         gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
2060         to gfc_allocate_allocatable with gfc_allocate_using_malloc.
2061         * trans-stmt.c (gfc_trans_allocate): Update function calls for
2062         gfc_allocate_allocatable and gfc_allocate_using_malloc.
2063
2064 2011-07-26  Tobias Burnus  <burnus@net-b.de>
2065
2066         * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
2067         (gfc_conv_descriptor_token): New function.
2068         * trans-array.h (gfc_conv_descriptor_token): New prototype.
2069         * trans-types.c (gfc_get_array_descriptor_base): For coarrays
2070         with -fcoarray=lib, append "void *token" to the array descriptor.
2071         (gfc_array_descriptor_base_caf): New static variable.
2072         * trans-expr.c (gfc_conv_procedure_call): Handle token and offset
2073         when passing a descriptor coarray to a nondescriptor dummy. 
2074
2075 2011-07-23  Tobias Burnus  <burnus@net-b.de>
2076
2077         * resolve.c (resolve_symbol): Fix coarray var decl check.
2078
2079 2011-07-21  Daniel Carrera  <dcarrera@gmail.com>
2080
2081         * trans.c (gfc_allocate_with_status): Split into two functions
2082         gfc_allocate_using_malloc and gfc_allocate_usig_lib.
2083         (gfc_allocate_using_malloc): The status parameter is now the
2084         actual status rather than a pointer. Code cleanup.
2085         (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
2086         errlen. Pass these to the coarray lib.
2087         * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
2088         gfc_allocate_allocatable.
2089         (gfc_omp_clause_copy_ctor): Ditto.
2090         (gfc_trans_omp_array_reduction): Ditto.
2091         * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
2092         gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
2093         fuctions. If using coarray lib, pass errmsg and errlen to the allocate
2094         functions. Move error checking outside the if (!gfc_array_allocate)
2095         block so that it also affects trees produced by gfc_array_allocate.
2096         * trans-array.c (gfc_array_allocate): Add new parameters errmsg
2097         and errlen. Replace parameter pstat by status. Code cleanup. Update
2098         calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
2099         * trans-array.h (gfc_array_allocate): Update signature of
2100         gfc_array_allocate.
2101
2102 2011-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
2103
2104         * gfortran.texi: Remove a duplicate word.
2105
2106 2011-07-21  Tobias Burnus  <burnus@net-b.de>
2107
2108         * check.c (gfc_check_present): Allow coarrays.
2109         * trans-array.c (gfc_conv_array_ref): Avoid casting
2110         when a pointer is wanted.
2111         * trans-decl.c (create_function_arglist): For -fcoarray=lib,
2112         handle hidden token and offset arguments for nondescriptor
2113         coarrays.
2114         * trans-expr.c (get_tree_for_caf_expr): New function.
2115         (gfc_conv_procedure_call): For -fcoarray=lib pass the
2116         token and offset for nondescriptor coarray dummies.
2117         * trans.h (lang_type): Add caf_offset tree.
2118         (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.
2119
2120 2011-07-19  Tobias Burnus  <burnus@net-b.de>
2121
2122         * expr.c (gfc_is_coarray): New function.
2123         * gfortran.h (gfc_is_coarray): New prototype.
2124         * interface.c (compare_parameter): Use it.
2125
2126 2011-07-19  Richard Guenther  <rguenther@suse.de>
2127
2128         * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
2129         (gfc_trans_string_copy): Likewise.
2130         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
2131         * trans-types.c (gfc_get_array_descr_info): Likewise.
2132         * trans.c (gfc_build_array_ref): Likewise.
2133
2134 2011-07-19  Janus Weil  <janus@gcc.gnu.org>
2135
2136         PR fortran/49708
2137         * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.
2138
2139 2011-07-18  Tobias Burnus  <burnus@net-b.de>
2140
2141         * trans-decl.c (gfc_build_qualified_array): Make coarray's
2142         token TYPE_QUAL_RESTRICT.
2143
2144 2011-07-18  Tobias Burnus  <burnus@net-b.de>
2145
2146         * resolve.c (resolve_transfer): Mention defined I/O
2147         in the diagnostic for alloc_comp/pointer_comp.
2148
2149 2011-07-17  Tobias Burnus  <burnus@net-b.de>
2150
2151         PR fortran/34657
2152         * module.c (check_for_ambiguous): Check whether the name is matches
2153         the current program unit.
2154
2155 2011-07-17  Tobias Burnus  <burnus@net-b.de>
2156
2157         PR fortran/49624
2158         * expr.c (gfc_check_pointer_assign): Fix checking for invalid
2159         pointer bounds.
2160
2161 2011-07-16  Tobias Burnus  <burnus@net-b.de>
2162         
2163         * expr.c (gfc_ref_this_image): New function.
2164         (gfc_is_coindexed): Use it.
2165         * gfortran.h (gfc_ref_this_image): New prototype.
2166         * resolve.c (resolve_deallocate_expr,
2167         resolve_allocate_expr): Support alloc scalar coarrays.
2168         * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
2169         gfc_conv_descriptor_cosize, gfc_array_allocate,
2170         gfc_trans_deferred_array): Ditto.
2171         * trans-expr.c (gfc_conv_variable) Ditto.:
2172         * trans-stmt.c (gfc_trans_deallocate): Ditto.
2173         * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
2174         gfc_get_array_descr_info): Ditto.
2175         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2176
2177 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
2178
2179         PR fortran/49698
2180         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
2181         inner_size to gfc_index_one_node instead of integer_one_node.
2182
2183 2011-07-10  Tobias Burnus  <burnus@net-b.de>
2184
2185         PR fortran/49690
2186         * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
2187
2188 2011-07-09  Uros Bizjak  <ubizjak@gmail.com>
2189
2190         PR fortran/48926
2191         * expr.c (gfc_get_corank): Change return value to int.
2192         * gfortran.h (gfc_get_corank): Update function prototype.
2193
2194 2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>
2195
2196         PR fortran/49648
2197         * resolve.c (resolve_symbol): Force resolution of function result's
2198         array specification.
2199
2200 2011-07-07  Tobias Burnus  <burnus@net-b.de>
2201
2202         * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
2203         with NULL arguments for (new) stat=/errmsg= arguments.
2204
2205 2011-07-06  Daniel Carrera  <dcarrera@gmail.com>
2206
2207         * trans-array.c (gfc_array_allocate): Rename allocatable_array to
2208         allocatable. Rename function gfc_allocate_array_with_status to
2209         gfc_allocate_allocatable_with_status. Update function call for
2210         gfc_allocate_with_status.
2211         * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
2212         gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
2213         * trans-stmt.c (gfc_trans_allocate): Update function call for
2214         gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
2215         to gfc_allocate_allocatable_with_status.
2216         * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
2217         so it uses the library for memory allocation when -fcoarray=lib.
2218         (gfc_allocate_allocatable_with_status): Renamed from
2219         gfc_allocate_array_with_status.
2220         (gfc_allocate_allocatable_with_status): Update function call for
2221         gfc_allocate_with_status.
2222         * trans.h (gfc_coarray_type): New enum.
2223         (gfc_allocate_with_status): Update prototype.
2224         (gfc_allocate_allocatable_with_status): Renamed from
2225         gfc_allocate_array_with_status.
2226         * trans-decl.c (generate_coarray_sym_init): Use the new constant
2227         GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.
2228
2229 2011-07-06  Richard Guenther  <rguenther@suse.de>
2230
2231         * f95-lang.c (gfc_init_decl_processing):
2232         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
2233
2234 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
2235
2236         PR fortran/49623
2237         * gfortranspec.c (lang_specific_driver): Ignore options with
2238         CL_ERR_MISSING_ARG errors.
2239
2240 2011-07-02  Janus Weil  <janus@gcc.gnu.org>
2241
2242         PR fortran/49562
2243         * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
2244
2245 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
2246
2247         PR fortran/49540
2248         * gfortran.h (gfc_constructor): Add repeat field.
2249         * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
2250         * array.c (current_expand): Add repeat field.
2251         (expand_constructor): Copy repeat.
2252         * constructor.c (node_free, node_copy, gfc_constructor_get,
2253         gfc_constructor_lookup): Handle repeat field.
2254         (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
2255         * data.h (gfc_assign_data_value): Add mpz_t * argument.
2256         (gfc_assign_data_value_range): Removed.
2257         * constructor.h (gfc_constructor_advance): Removed.
2258         (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
2259         * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
2260         also handle overwriting a range with a single entry.
2261         (gfc_assign_data_value_range): Removed.
2262         * resolve.c (check_data_variable): Adjust gfc_assign_data_value
2263         call.  Use gfc_assign_data_value instead of
2264         gfc_assign_data_value_expr.
2265
2266 2011-06-27  Janus Weil  <janus@gcc.gnu.org>
2267
2268         PR fortran/49466
2269         * trans-array.c (structure_alloc_comps): Make sure sub-components
2270         and extended types are correctly deallocated.
2271
2272 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
2273
2274         * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
2275         * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
2276         * trans-decl.c: Add sync_ or SYNC__ to builtin names.
2277
2278 2011-06-21  Janus Weil  <janus@gcc.gnu.org>
2279
2280         PR fortran/49112
2281         * class.c (gfc_find_derived_vtab): Make vtab and default initialization
2282         symbols SAVE_IMPLICIT.
2283
2284 2011-06-20  Tobias Burnus  <burnus@net-b.de>
2285
2286         PR fortran/18918
2287         * gfortran.h (gfc_check_vardef_context): Update prototype.
2288         (iso_fortran_env_symbol): Handle derived types.
2289         (symbol_attribute): Add lock_comp.
2290         * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
2291         * interface.c (compare_parameter, gfc_procedure_use): Handle
2292         LOCK_TYPE.
2293         (compare_actual_formal): Update
2294         gfc_check_vardef_context call.
2295         * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
2296         * intrinsic.c (check_arglist): Ditto.
2297         * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
2298         * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
2299         * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
2300         * module.c (mio_symbol_attribute): Handle lock_comp.
2301         (create_derived_type): New function.
2302         (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
2303         * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
2304         * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
2305         checks for LOCK_TYPE.
2306         (gfc_resolve_iterator, resolve_deallocate_expr,
2307         resolve_allocate_expr, resolve_code, resolve_transfer): Update
2308         gfc_check_vardef_context call.
2309         * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
2310         * trans-stmt.c (gfc_trans_lock_unlock): New function.
2311         * trans.c (trans_code): Handle LOCK and UNLOCK.
2312
2313 2011-06-18  Janus Weil  <janus@gcc.gnu.org>
2314
2315         PR fortran/49400
2316         * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
2317         BLOCK constructs.
2318
2319 2011-06-17  Janus Weil  <janus@gcc.gnu.org>
2320
2321         PR fortran/48699
2322         * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
2323         make sure the vtab is present.
2324
2325 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
2326
2327         PR fortran/49074
2328         * interface.c (gfc_extend_assign): Propagate the locus from the
2329         assignment to the type-bound procedure call.
2330
2331 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
2332
2333         PR fortran/49417
2334         * module.c (mio_component): Make sure the 'class_ok' attribute is set
2335         for use-associated CLASS components.
2336         * parse.c (parse_derived): Check for 'class_ok' attribute.
2337         * resolve.c (resolve_fl_derived): Ditto.
2338
2339 2011-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
2340
2341         * frontend-passes.c (remove_trim):  New function.
2342         (optimize_assignment):  Use it.
2343         (optimize_comparison):  Likewise.  Return correct status
2344         for previous change.
2345
2346 2011-06-12  Tobias Burnus
2347
2348         PR fortran/49324
2349         * trans-expr.c (gfc_trans_assignment_1): Tell
2350         gfc_trans_scalar_assign to also deep-copy RHS nonvariables
2351         with allocatable components.
2352         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
2353
2354 2011-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
2355
2356         * frontend-passes.c (optimize_assignment): Follow chains
2357         of concatenation operators to the end for removing trailing
2358         TRIMS for assignments.
2359
2360 2011-06-10  Daniel Carrera  <dcarrera@gmail.com>
2361
2362         * trans-decl.c (gfc_build_builtin_function_decls):
2363         Updated declaration of caf_sync_all and caf_sync_images.
2364         * trans-stmt.c (gfc_trans_sync): Function
2365         can now handle a "stat" variable that has an integer type
2366         different from integer_type_node.
2367
2368 2011-06-09  Richard Guenther  <rguenther@suse.de>
2369
2370         * trans.c (gfc_allocate_array_with_status): Mark error path
2371         as unlikely.
2372
2373 2011-06-08  Tobias Burnus  <burnus@net-b.de>
2374
2375         PR fortran/18918
2376         * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
2377         (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
2378         (gfc_code): Add expr4.
2379         * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
2380         * match.c (gfc_match_lock, gfc_match_unlock,
2381         lock_unlock_statement): New functions.
2382         (sync_statement): Bug fix, avoiding double freeing.
2383         (gfc_match_if): Handle LOCK/UNLOCK statement.
2384         * parse.c (decode_statement, next_statement,
2385         gfc_ascii_statement): Ditto.
2386         * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
2387         * resolve.c (resolve_lock_unlock): New function.
2388         (resolve_code): Call it.
2389         * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
2390
2391 2011-06-07  Richard Guenther  <rguenther@suse.de>
2392
2393         * f95-lang.c (gfc_init_decl_processing): Do not set
2394         size_type_node or call set_sizetype.
2395
2396 2011-06-05  Tobias Burnus  <burnus@net-b.de>
2397
2398         PR fortran/49255
2399         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
2400         for F2008.
2401
2402 2011-06-05  Andreas Schmidt  <andreas.schmidt.42@gmx.net>
2403         Thomas Koenig  <tkoenig@gcc.gnu.org>
2404
2405         * dump-parse-tree.c (show_symbol):  Don't dump namespace
2406         for ENTRY to avoid infinite recursion.
2407
2408 2011-06-02  Asher Langton  <langton2@llnl.gov>
2409
2410         PR fortran/49268
2411         * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
2412         pointees as AS_EXPLICIT.
2413
2414 2011-06-02  Asher Langton  <langton2@llnl.gov>
2415
2416         PR fortran/37039
2417         * decl.c (variable_decl): Merge current_as before copying to cp_as.
2418
2419 2011-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>
2420
2421         PR fortran/49265
2422         * decl.c (gfc_match_modproc):  Allow for a double colon in a module
2423         procedure statement.
2424         * parse.c ( decode_statement): Deal with whitespace around :: in
2425         gfc_match_modproc.
2426
2427 2011-05-31  Tobias Burnus  <burnus@net-b.de>
2428
2429         PR fortran/18918
2430         * intrinsic.c (klass): Add CLASS_ATOMIC.
2431         (add_subroutines): Add atomic_ref/atomic_define.
2432         * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
2433         * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
2434         gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
2435         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
2436         and GFC_ISYM_ATOMIC_REF.
2437         (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
2438         * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
2439         functions.
2440         * check.c (gfc_check_atomic, gfc_check_atomic_def,
2441         gfc_check_atomic_ref): New functions.
2442         * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
2443         ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
2444         * trans-intrinsic.c (conv_intrinsic_atomic_def,
2445         conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
2446         functions.
2447         (conv_intrinsic_move_alloc) Renamed from
2448         gfc_conv_intrinsic_move_alloc - and made static.
2449         * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
2450         (gfc_conv_intrinsic_subroutine) Add prototype.
2451         * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
2452         * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
2453         global vars.
2454         (gfc_init_kinds): Set them.
2455
2456 2011-05-31  Tobias Burnus  <burnus@net-b.de>
2457
2458         PR fortran/18918
2459         * trans-array.c (gfc_trans_dummy_array_bias): Handle
2460         cobounds of assumed-shape arrays.
2461
2462 2011-05-31  Tobias Burnus  <burnus@net-b.de>
2463
2464         PR fortran/18918
2465         * resolve.c (resolve_fl_variable): Handle static coarrays
2466         with non-constant cobounds.
2467
2468 2011-05-29  Janus Weil  <janus@gcc.gnu.org>
2469
2470         PR fortran/47601
2471         * module.c (mio_component_ref): Handle components of extended types.
2472         * symbol.c (gfc_find_component): Return is sym is NULL.
2473
2474 2011-05-29  Tobias Burnus  <burnus@net-b.de>
2475
2476         PR fortran/18918
2477         * interface.c (compare_parameter): Add check for passing coarray
2478         to allocatable noncoarray dummy.
2479
2480 2011-05-29  Tobias Burnus  <burnus@net-b.de>
2481             Richard Guenther  <rguenther@suse.de>
2482
2483         PR fortran/18918
2484         * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
2485         the type's TREE_TYPE.
2486         * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
2487         * trans.c (gfc_build_array_ref): Ditto.
2488
2489 2011-05-27  Tobias Burnus  <burnus@net-b.de>
2490
2491         PR fortran/18918
2492         * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
2493         * match.c (gfc_match_nullify): Ditto.
2494         * resolve.c (resolve_deallocate_expr): Ditto.
2495         * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
2496         for nonpointers.
2497
2498 2011-05-27  Tobias Burnus  <burnus@net-b.de>
2499
2500         PR fortran/48820
2501         * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
2502         * intrinsic.c (add_functions): Add rank intrinsic.
2503         (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
2504         * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
2505         * simplify.c (gfc_simplify_rank): New function.
2506         * intrinsic.texi (RANK): Add description for rank intrinsic.
2507         * check.c (gfc_check_rank): New function.
2508
2509 2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
2510             Thomas Koenig  <tkoenig@gcc.gnu.org>
2511
2512         PR fortran/48955
2513         * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
2514         changed to GFC_ENABLE_REVERSE.
2515         * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
2516         to GFC_INHIBIT_REVERSE.
2517         * gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE,
2518         GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
2519         * dependency.c (gfc_dep_resolver): Change names for elements of
2520         gfc_reverse as necessary. Change the logic so that forward
2521         dependences are remembered as well as backward ones. When both
2522         have appeared, force a temporary.
2523
2524 2011-05-26  Tobias Burnus  <burnus@net-b.de>
2525
2526         PR fortran/18918
2527         * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
2528         * trans-decl.c (has_coarray_vars, caf_init_block,
2529         gfor_fndecl_caf_register): New file-global variables.
2530         (gfc_finish_var_decl): Make sure that coarrays in main are static.
2531         (gfc_build_qualified_array): Generate coarray token variable.
2532         (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
2533         (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
2534         (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
2535         static coarrays.
2536         (generate_local_decl): Check for local coarrays.
2537         (create_main_function): SYNC ALL before calling MAIN.
2538         (generate_coarray_sym_init): Register static coarray.
2539         (generate_coarray_init): Generate CAF registering constructor
2540         function.
2541         (gfc_generate_function_code): Call it, if needed, do not create
2542         cgraph twice.
2543         (gfc_generate_module_vars, gfc_process_block_locals): Call
2544         generate_coarray_init.
2545         * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
2546         -fcoarray=lib.
2547         * trans.h (gfor_fndecl_caf_register): New variable.
2548         (lang_type): New element caf_token.
2549         (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
2550
2551 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
2552
2553         * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
2554         (gfortran$(exeext)): Use libcommon-target.a.
2555
2556 2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2557
2558         * frontend-passes.c (cfe_register_funcs):  Also register
2559         character functions if their charlens are known and constant.
2560         Also register allocatable functions.
2561
2562 2011-05-21  Janus Weil  <janus@gcc.gnu.org>
2563
2564         PR fortran/48699
2565         * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
2566         selector is ALLOCATABLE.
2567
2568 2011-05-20  Janus Weil  <janus@gcc.gnu.org>
2569
2570         PR fortran/48706
2571         * module.c (write_dt_extensions): Do not write extended types which
2572         are local to a subroutine.
2573
2574 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
2575
2576         * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
2577
2578 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
2579
2580         * gfortran.texi (set_fpe): Update documentation.
2581         * invoke.texi (-ffpe-trap): Likewise.
2582         * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
2583         * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
2584         precision an alias for it.
2585
2586 2011-05-19  Tobias Burnus  <burnus@net-b.de>
2587
2588         PR fortran/18918
2589         * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
2590         (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
2591         coarrays.
2592         * trans.c (gfc_build_array_ref): Return original type not variant
2593         copy for scalar coarrays.
2594         * trans-array.c (gfc_conv_array_ref): Ditto.
2595
2596 2011-05-18  Janus Weil  <janus@gcc.gnu.org>
2597
2598         PR fortran/48700
2599         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
2600         argument to avoid memory leaks.
2601
2602 2011-05-16  Tobias Burnus  <burnus@net-b.de>
2603
2604         * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
2605         (Fortran 2008 status): Multi-image support for coarrays.
2606         (TR 19113 status): New section.
2607
2608 2011-05-15  Tobias Burnus  <burnus@net-b.de>
2609
2610         PR fortran/18918
2611         actual argument is not an array; rank mismatch is diagnosted later.
2612         * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
2613         scalar coarrays.
2614         * trans-types.c (gfc_get_array_type_bounds): Ditto.
2615
2616 2011-05-15  Joern Rennecke  <amylaar@spamcop.net>
2617
2618         PR middle-end/46500
2619         * trans-types.c: Include "tm.h".
2620         [0] (c_size_t_size): Remove.
2621
2622 2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
2623
2624         PR libfortran/48915
2625         * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
2626         is now the default, the library defaults to backtracing disabled.
2627
2628 2011-05-14  Tobias Burnus  <burnus@net-b.de>
2629
2630         * lang.opt (fdump-core): Re-add as ignored option
2631         for backward compatibility.
2632
2633 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
2634
2635         PR libfortran/48915
2636         * gfortran.texi: Update mixed-language programming section
2637         reflecting the removal of the fdump-core option, and that
2638         -fbacktrace is now enabled by default.
2639
2640 2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
2641
2642         PR fortran/22572
2643         * frontend-passes.c (cfe_register_funcs):  Also register functions
2644         for potential elimination if the rank is > 0, the shape is unknown
2645         and reallocate on assignment is active.
2646         (create_var):  For rank > 0 functions with unknown shape, create
2647         an allocatable temporary.
2648
2649 2011-05-14  Tobias Burnus  <burnus@net-b.de>
2650
2651         PR fortran/18918
2652         * interface.c (compare_parameter): Skip diagnostic if
2653         actual argument is not an array; rank mismatch is diagnosted later.
2654
2655 2011-05-14  Tobias Burnus  <burnus@net-b.de>
2656
2657         * options.c (gfc_init_options, gfc_post_options): Enable
2658         -fstack-arrays by default if -Ofast is used.
2659         * invoke.texi (-fstack-arrays): Document this.
2660
2661 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
2662
2663         PR libfortran/48915
2664         * gfortran.h (gfc_option_t): Remove flag_dump_core.
2665         * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
2666         (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
2667         * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
2668         * invoke.texi: Remove -fdump-core, document that -fbacktrace is
2669         enabled by default.
2670         * lang.opt: Remove -fdump-core.
2671         * options.c (gfc_init_options): Make backtrace default to enabled,
2672         remove dump_core.
2673         (gfc_handle_option): Remove OPT_fdump-core.
2674         * trans-decl.c: Pass a 0 to preserve ABI.
2675
2676 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
2677
2678         * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
2679
2680 2011-05-13  Tobias Burnus  <burnus@net-b.de>
2681
2682         PR fortran/48972
2683         * io.c (resolve_tag_format, resolve_tag): Make sure
2684         that the string is of default kind.
2685         (gfc_resolve_inquire): Also resolve decimal tag.
2686
2687 2011-05-12  Tobias Burnus  <burnus@net-b.de>
2688
2689         PR fortran/48972
2690         * resolve.c (resolve_intrinsic): Don't resolve module
2691         intrinsics multiple times.
2692
2693 2011-05-11  Tobias Burnus  <burnus@net-b.de>
2694
2695         PR fortran/48889
2696         * expr.c (gfc_is_constant_expr): Use e->value.function.esym
2697         instead of e->symtree->n.sym, if available.
2698
2699 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
2700
2701         * f95-lang.c (global_bindings_p): Return bool and simplify.
2702
2703 2011-05-07  Tobias Burnus  <burnus@net-b.de>
2704
2705         PR fortran/18918
2706         PR fortran/48919
2707         * trans.h: Move gfc_init_coarray_decl prototype ...
2708         * gfortran.h: ... to here.
2709         * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
2710         (gfc_parse_file): Update translate_all_program_units call.
2711         * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
2712         new argument whether DECL_EXTERNAL should be used.
2713         (create_main_function): Update gfc_init_coarray_decl call.
2714         * trans-intrinsic.c (trans_this_image, trans_image_index,
2715         conv_intrinsic_cobound): Ditto.
2716
2717 2011-05-06  Tobias Burnus  <burnus@net-b.de>
2718
2719         PR fortran/18918
2720         * trans-array.c (gfc_walk_variable_expr): Continue walking
2721         for scalar coarrays.
2722         * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
2723         (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
2724         (trans_this_image): Fix algorithm.
2725         * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
2726         gfc_sym_type): Handle scalar coarrays.
2727
2728 2011-05-06  Tobias Burnus  <burnus@net-b.de>
2729
2730         PR fortran/48858
2731         PR fortran/48820
2732         * lang.opt (std=f2008tr): New.
2733         * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
2734         * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
2735         procedures for -std=f2008tr/gnu/legacy.
2736         (gfc_match_import): Set sym to NULL.
2737         * options.c (set_default_std_flags,gfc_handle_option): Handle
2738         -std=f2008tr.
2739         * invoke.texi (-std=): Document -std=f2008tr.
2740
2741 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
2742
2743         * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
2744         * trans-io.c (add_case): Likewise.
2745         * trans-stmt.c (gfc_trans_integer_select): Likewise.
2746         (gfc_trans_character_select): Likewise.
2747
2748 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
2749
2750         * trans-decl.c (trans_function_start): Do not set
2751         dont_save_pending_sizes_p.
2752
2753 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2754
2755         * trans.h (gfc_chainon_list): Delete.
2756         * trans.c (gfc_chainon_list): Delete.
2757
2758 2011-05-04  Tobias Burnus  <burnus@net-b.de>
2759
2760         PR fortran/48864
2761         * invoke.texi (fno-protect-parens): Document
2762         that -Ofast implies -fno-protect-parens.
2763         * options.c (gfc_init_options, gfc_post_options):
2764         Make -Ofast imply -fno-protect-parens.
2765
2766 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
2767
2768         * trans-decl.c (build_library_function_decl_1): Call
2769         build_function_type_vec.  Adjust argument list building accordingly.
2770         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
2771         * trans-types.c (gfc_get_function_type): Likewise.
2772
2773 2011-05-04  Richard Guenther  <rguenther@suse.de>
2774
2775         * trans-array.c (gfc_trans_array_constructor_value): Use
2776         size_int for bounds of range types.
2777         (gfc_trans_array_constructor_value): Use size_type_node
2778         for memcpy argument.
2779         * trans-common.c (build_field): Use gfc_charlen_type_node
2780         for lengths.
2781         * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
2782         as type to build_int_cst.
2783         * trans-const.c (gfc_build_string_const): Use size_int
2784         for bounds of range types.
2785         (gfc_build_wide_string_const): Likewise.
2786         * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
2787         for lengths.
2788         (gfc_trans_character_select): Likewise.
2789         (gfc_trans_character_select): Do not pass NULL
2790         as type to build_int_cst.
2791         (gfc_trans_character_select): Use size_int for bounds of range types.
2792         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
2793         (add_case): Do not pass NULL as type to build_int_cst.
2794         (transfer_expr): Likewise.
2795         (transfer_array_desc): Likewise.
2796         * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
2797         for lengths.
2798         (gfc_trans_assign_aux_var): Likewise.
2799         (create_main_function): Use size_int for bounds of range types.
2800         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
2801         NULL as type to build_int_cst.
2802         (gfc_conv_intrinsic_spacing): Likewise.
2803         (gfc_conv_intrinsic_rrspacing): Likewise.
2804         (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
2805
2806 2011-05-04  Richard Guenther  <rguenther@suse.de>
2807
2808         * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
2809         argument to int_const_binop.
2810
2811 2011-05-03  Tobias Burnus  <burnus@net-b.de>
2812
2813         PR fortran/18918
2814         * trans-intrinsic.c (trans_this_image): Implement version with
2815         coarray argument.
2816         (conv_intrinsic_cobound): Simplify code.
2817         (gfc_conv_intrinsic_function): Call trans_this_image for
2818         this_image(coarray) except for -fcoarray=single.
2819
2820 2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
2821
2822         PR fortran/48720
2823         * gfortran.texi: Document the 'Q' exponent-letter extension.
2824         * invoke.texi: Document -Wreal-q-constant.
2825         * lang.opt: Add -Wreal-q-constant option.
2826         * gfortran.h: Add warn_real_q_constant to option struct.
2827         * primary.c (match_real_constant):  Use it.  Accept 'Q' as
2828         exponent-letter for REAL(16) real-literal-constant with a
2829         fallback to REAL(10) or error if REAL(10) is not available.
2830         * options.c (gfc_init_options, set_Wall) Set it.
2831         (gfc_handle_option): Handle new option.
2832
2833 2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
2834
2835         * dump-prase-tree.c (show_code_node):  Set the current
2836         namespace to the BLOCK before displaying it; restore
2837         afterwards.
2838
2839 2011-04-30  Tobias Burnus  <burnus@net-b.de>
2840
2841         PR fortran/48821
2842         * decl.c (gfc_match_import): Don't try to find the
2843         symbol if already found.
2844
2845 2011-04-30  Paul Thomas  <pault@gcc.gnu.org>
2846
2847         PR fortran/48746
2848         * trans-expr.c (fcncall_realloc_result): Set the bounds and the
2849         offset so that the lbounds are one.
2850         (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
2851
2852 2011-04-29  Paul Thomas  <pault@gcc.gnu.org>
2853
2854         PR fortran/48462
2855         * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
2856         automatic reallocation when the lhs is a target.
2857
2858         PR fortran/48746
2859         * trans-expr.c (fcncall_realloc_result): Make sure that the
2860         result dtype field is set before the function call.
2861
2862 2011-04-29  Tobias Burnus  <burnus@net-b.de>
2863
2864         PR fortran/48810
2865         * resolve.c (resolve_typebound_generic_call): Don't check access
2866         flags of the specific function.
2867
2868         PR fortran/48800
2869         * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
2870         to AS_ASSUMED_SHAPE for function results.
2871         (resolve_fl_var_and_proc): Print also for function results with
2872         AS_DEFERRED an error, if they are not a pointer or allocatable.
2873         (resolve_types): Make sure arguments of procedures in interface
2874         blocks are resolved.
2875
2876 2011-04-29  Michael Matz  <matz@suse.de>
2877
2878         * options.c (options.c): Set warn_maybe_uninitialized.
2879
2880 2011-04-28  Tobias Burnus  <burnus@net-b.de>
2881
2882         PR fortran/48112
2883         * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
2884         function results only once.
2885         (resolve_symbol): Always resolve function results.
2886
2887         PR fortran/48279
2888         * expr.c (gfc_check_vardef_context): Fix handling of generic
2889         EXPR_FUNCTION.
2890         * interface.c (check_interface0): Reject internal functions
2891         in generic interfaces, unless -std=gnu.
2892
2893 2011-04-27  Tobias Burnus  <burnus@net-b.de>
2894
2895         PR fortran/48788
2896         * resolve.c (resolve_global_procedure): Error recovery -
2897         avoid segfault for (non)character-returning functions.
2898
2899 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
2900
2901         * decl.c (gfc_match_end):  Check that the block name starts
2902         with "block@".
2903         * parse.c (gfc_build_block_ns):  Make block names unique by
2904         numbering them.
2905
2906 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
2907
2908         * frontend-passes.c (inserted_block):  New variable.
2909         (changed_statement):  Likewise.
2910         (create_var):  Encase statement to be operated on in a BLOCK.
2911         Adjust code insertion for BLOCK.
2912         (cfe_code):  Set inserted_block and changed_statement to NULL.
2913
2914 2011-04-23  Tobias Burnus  <burnus@net-b.de>
2915
2916         PR fortran/18918
2917         * module.c (mio_array_spec): Set as->cotype on reading.
2918         * resolve.c (resolve_allocate_expr): Fix allocating coarray
2919         components.
2920
2921 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2922
2923         PR fortran/48405
2924         * frontend_passes (cfe_register_funcs): Remove workaround for DO
2925         loops.
2926         (gfc_code_walker):  Make sure the pointer to the current
2927         statement doen't change when other statements are inserted.
2928
2929 2011-04-21  Tobias Burnus  <burnus@net-b.de>
2930
2931         PR fortran/18918
2932         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
2933
2934 2011-04-20  Jim Meyering  <meyering@redhat.com>
2935
2936         * expr.c (free_expr0): Remove useless if-before-free.
2937         * gfortranspec.c (lang_specific_pre_link): Likewise.
2938         * interface.c (gfc_extend_expr): Likewise.
2939         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
2940
2941 2011-04-19  Tobias Burnus  <burnus@net-b.de>
2942
2943         PR fortran/48588
2944         PR fortran/48692
2945
2946         * module.c (fix_mio_expr): Commit created symbol.
2947
2948 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
2949
2950         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
2951
2952 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
2953
2954         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
2955         free.
2956
2957 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
2958
2959         * misc.c (gfc_getmem): Remove function.
2960         * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
2961         usage with XCNEW or XCNEWVEC.
2962         * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
2963         XCNEW or XCNEWVEC.
2964         * options.c (gfc_handle_module_path_options)
2965         (gfc_get_option_string): Likewise.
2966         * resolve.c (gfc_resolve_forall): Likewise.
2967         * simplify.c (simplify_transformation_to_array): Likewise.
2968         * target-memory.c (gfc_target_interpret_expr): Likewise.
2969         * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
2970         (get_init_field): Likewise.
2971         * trans-expr.c (gfc_conv_statement_function): Likewise.
2972         * trans-io.c (nml_full_name): Likewise.
2973         * trans-stmt.c (gfc_trans_forall_1): Likewise.
2974         * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
2975
2976 2011-04-19  Tobias Burnus  <burnus@net-b.de>
2977
2978         PR fortran/48588
2979         * parse.c (resolve_all_program_units): Skip modules.
2980         (translate_all_program_units): Handle modules.
2981         (gfc_parse_file): Defer code generation for modules.
2982
2983 2011-04-19  Martin Jambor  <mjambor@suse.cz>
2984
2985         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
2986         instead of cgraph_get_create_node.
2987
2988 2011-04-18  Jim Meyering  <meyering@redhat.com>
2989
2990         remove now-unused definition of gfc_free
2991         * misc.c (gfc_free): Remove function.
2992         * gfortran.h (gfc_free): Remove its prototype.
2993
2994 2011-04-18  Jim Meyering  <meyering@redhat.com>
2995
2996         convert each use of gfc_free (p) to free (p)
2997         Do that by running this command:
2998           perl -pi -e    's/\bgfc_free ?\(/free (/' \
2999             $(git grep -El '\bgfc_free ?\(')
3000         which also corrects the few uses that lacked a space between
3001         the function name and the open parenthesis.
3002         Manually undo the change to the function definition itself
3003         and its prototype.  They'll be removed next.
3004         * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
3005         * constructor.c (node_free): Likewise.
3006         * cpp.c (dump_queued_macros): Likewise.
3007         * data.c (gfc_assign_data_value): Likewise.
3008         * decl.c (free_variable, free_value, gfc_free_data): Likewise.
3009         (gfc_free_data_all, match_old_style_init): Likewise.
3010         (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
3011         Likewise.
3012         (gfc_match_modproc): Likewise.
3013         * dependency.c (check_section_vs_section): Likewise.
3014         * error.c (gfc_pop_error, gfc_free_error): Likewise.
3015         * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
3016         (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
3017         (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
3018         Likewise.
3019         * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
3020         (strip_function_call, optimize_comparison): Likewise.
3021         * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
3022         (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
3023         Likewise.
3024         * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
3025         (gfc_convert_chartype): Likewise.
3026         * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
3027         Likewise.
3028         (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
3029         * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
3030         (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
3031         Likewise.
3032         (free_case, gfc_free_forall_iterator): Likewise.
3033         * misc.c: Likewise.
3034         * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
3035         (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
3036         (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
3037         (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
3038         (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
3039         (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
3040         * openmp.c (gfc_free_omp_clauses): Likewise.
3041         * options.c (gfc_post_options): Likewise.
3042         * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
3043         * primary.c (gfc_free_structure_ctor_component): Likewise.
3044         * resolve.c (resolve_structure_cons, check_host_association): Likewise.
3045         (gfc_resolve_forall, resolve_equivalence): Likewise.
3046         * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
3047         (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
3048         (load_file, gfc_read_orig_filename): Likewise.
3049         * simplify.c (simplify_transformation_to_array): Likewise.
3050         (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
3051         Likewise.
3052         (gfc_simplify_compiler_options): Likewise.
3053         * st.c (gfc_free_statement, gfc_free_statements): Likewise.
3054         (gfc_free_association_list): Likewise.
3055         * symbol.c (free_components, gfc_free_st_label, free_st_labels):
3056         Likewise.
3057         (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
3058         (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
3059         (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
3060         (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
3061         Likewise.
3062         (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
3063         (gfc_free_namespace): Likewise.
3064         * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
3065         (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
3066         (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
3067         * trans-common.c (get_init_field, create_common): Likewise.
3068         * trans-const.c (gfc_build_wide_string_const): Likewise.
3069         (gfc_conv_string_init): Likewise.
3070         * trans-decl.c (gfc_generate_function_code): Likewise.
3071         * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
3072         Likewise.
3073         (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
3074         (gfc_trans_subarray_assign): Likewise.
3075         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
3076         * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
3077         (transfer_namelist_element, transfer_array_component): Likewise.
3078         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
3079         * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
3080         * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
3081         Likewise.
3082
3083 2011-04-15  Jim Meyering  <meyering@redhat.com>
3084
3085         gfortran: remove cpp definition of free, ...
3086         in preparation for the s/gfc_free/free/ transformation.
3087         * gfortran.h (free): Remove macro definition that would otherwise
3088         prevent direct use of the function.
3089
3090 2011-04-18  Tobias Burnus  <burnus@net-b.de>
3091
3092         PR fortran/18918
3093         * array.c (gfc_match_array_ref): Check for too many codimensions.
3094         * check.c (gfc_check_image_index): Check number of elements
3095         in SUB argument.
3096         * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
3097
3098 2011-04-18  Tobias Burnus  <burnus@net-b.de>
3099
3100         PR fortran/18918
3101         * iresolve.c (gfc_resolve_image_index): Set ts.type.
3102         * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
3103         are not known at compile time and handle -fcoarray=lib.
3104         * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
3105         IMAGE_INDEX.
3106         (conv_intrinsic_cobound): Fix comment typo.
3107         (trans_this_image): New function.
3108         * trans-array.c (gfc_unlikely): Move to trans.c.
3109         * trans.c (gfc_unlikely): Function moved from trans-array.c.
3110         (gfc_trans_runtime_check): Use it.
3111         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
3112         * trans.h (gfc_unlikely): Add prototype.
3113
3114 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
3115
3116         PR fortran/48462
3117         * trans-expr.c (fcncall_realloc_result): Renamed version of
3118         realloc_lhs_bounds_for_intrinsic_call that does not touch the
3119         descriptor bounds anymore but makes a temporary descriptor to
3120         hold the result.
3121         (gfc_trans_arrayfunc_assign): Modify the reference to above
3122         renamed function.
3123
3124 2011-05-17  Tobias Burnus  <burnus@net-b.de>
3125
3126         PR fortran/48624
3127         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
3128         for external procedures with proc arguments.
3129
3130 2011-04-15  Michael Matz  <matz@suse.de>
3131
3132         * trans-array.c (toplevel): Include gimple.h.
3133         (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
3134         properly expand variable length arrays.
3135         (gfc_trans_auto_array_allocation): If flag_stack_arrays create
3136         variable length decls and associate them with their scope.
3137         * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
3138         * options.c (gfc_init_options): Handle -fstack_arrays option.
3139         * lang.opt (fstack-arrays): Add option.
3140         * invoke.texi (Code Gen Options): Document it.
3141         * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
3142
3143 2011-04-15  Tobias Burnus  <burnus@net-b.de>
3144
3145         PR fortran/18918
3146         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
3147         code which is also causing an ICE.
3148
3149 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
3150
3151         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
3152
3153 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
3154
3155         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
3156         calling TREE_CHAIN.
3157
3158 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
3159
3160         PR fortran/48360
3161         PR fortran/48456
3162         * trans-array.c (get_std_lbound): For derived type variables
3163         return array valued component lbound.
3164
3165 2011-04-12  Martin Jambor  <mjambor@suse.cz>
3166
3167         * trans-decl.c (gfc_generate_function_code): Call
3168         cgraph_get_create_node instead of cgraph_node.
3169
3170 2011-04-11  Tobias Burnus  <burnus@net-b.de>
3171
3172         PR fortran/18918
3173         * simplify.c (simplify_bound_dim): Exit for
3174         ucobound's last dimension unless -fcoarray=single.
3175         * trans-array (gfc_conv_descriptor_size_1): Renamed from
3176         gfc_conv_descriptor_size, made static, has now from_dim and
3177         to_dim arguments.
3178         (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
3179         (gfc_conv_descriptor_cosize): New function.
3180         * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
3181         * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
3182         and handle last codim of ucobound for when -fcoarray is not "single".
3183
3184 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
3185
3186         PR fortran/48448
3187         * gfortran.h (gfc_option_t):  Add warn_function_elimination and
3188         flag_frontend_optimize.
3189         * lang.opt (Wfunction-elimination):  Add.
3190         (ffrontend-optimize):  Add.
3191         * invoke.texi:  Add documentation for -Wfunction-elimination
3192         and -ffrontend-optimize.  Add -faggressive-function-elimination
3193         to list of code generation options.
3194         * frontend-passes.c (gfc_run_passes):  Run optimizations if
3195         flag_frontend_optimize is set.
3196         (warn_function_elimination):  New function.
3197         (cfe_expr_0):  Call it if requested to do so.
3198         * options.c (gfc_init_options):  Initiate warn_function_elimination
3199         and flag_frontend_optimize.
3200         (gfc_post_options):  Set flag_frontend_optimize if not specified
3201         by user, depending on the optimization level.
3202         (gfc_handle_option):  Handle -Wfunction-elimination and
3203         -ffrontend-optimize.
3204
3205 2011-04-06  Tobias Burnus  <burnus@net-b.de>
3206
3207         PR fortran/18918
3208         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
3209         call for this_image.
3210
3211 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
3212
3213         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
3214         build_function_type_list instead of build_function_type.  Correct
3215         argument order for func_frexp and func_scalbn.
3216
3217 2011-04-05  Duncan Sands  <baldrick@free.fr>
3218
3219         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
3220
3221 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3222
3223         * frontend-passes: (optimize_lexical_comparison): New function.
3224         (optimize_expr): Call it.
3225         (optimize_comparison): Also handle lexical comparison functions.
3226         Return false instad of -2 for unequal comparison.
3227
3228 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
3229
3230         PR fortran/48412
3231         * frontend-passes (cfe_expr_0):  Reverse the order of going
3232         through the loops.
3233
3234 2011-04-04  Tobias Burnus  <burnus@net-b.de>
3235             Mikael Morin  <mikael.morin@sfr.fr>
3236
3237         PR fortran/18918
3238         * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
3239         * expr.c (gfc_is_coindexed): Ditto.
3240         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
3241         * interface.c (compare_parameter): Use gfc_expr_attr and
3242         gfc_is_coindexed.
3243         * resolve.c (check_dimension, compare_spec_to_ref,
3244         resolve_allocate_expr, check_data_variable): Update for
3245         DIMEN_THIS_IMAGE.
3246         * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
3247         gfc_simplify_ucobound): Allow non-constant bounds.
3248         * trans-array.c (gfc_set_loop_bounds_from_array_spec,
3249         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
3250         gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
3251         gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
3252         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
3253         gfc_conv_ss_startstride, gfc_conv_loop_setup,
3254         gfc_trans_array_bounds, gfc_conv_expr_descriptor,
3255         gfc_walk_variable_expr): Handle codimen.
3256         * trans-decl.c (gfc_build_qualified_array): Save cobounds.
3257         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
3258         (conv_intrinsic_cobound): New function.
3259         (gfc_conv_intrinsic_function): Call it.
3260         (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
3261         ucobound, lcobound, this_image.
3262         * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
3263         (gfc_get_dtype): Honour corank.
3264         (gfc_get_nodesc_array_type): Save corank and codimensions.
3265         (gfc_get_array_type_bounds): Save cobound.
3266         * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
3267         (gfc_array_kind): Add corank item.
3268         (GFC_TYPE_ARRAY_CORANK): New macro.
3269
3270 2011-04-03  Kai Tietz  <ktietz@redhat.com>
3271
3272         PR middle-end/48422
3273         * Make-lang.in (f95-lang.o): Add some missing dependencies.
3274
3275 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
3276
3277         PR fortran/48352
3278         * frontend-passes (cfe_register_funcs):  Don't
3279         register functions if they appear as iterators in DO loops.
3280
3281 2011-03-30  Michael Matz  <matz@suse.de>
3282
3283         PR fortran/47516
3284         * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
3285         don't use local variable.
3286         (gfc_trans_arrayfunc_assign): Adjust caller.
3287
3288 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
3289
3290         PR fortran/48095
3291         * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
3292         * module.c (MOD_VERSION): Bump.
3293         (mio_typespec): Read/write 'interface' field.
3294         * primary.c (match_string_constant,match_logical_constant): Remove
3295         unneeded code.
3296         (match_complex_constant): Make sure to clear the typespec.
3297
3298 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
3299
3300         * frontend-passes.c (create_var):  Warn about creating an
3301         array temporary if requested.
3302
3303 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
3304
3305         PR fortran/47065
3306         * frontend-passes.c (optimize_trim): Also follow references, except
3307         when they are substring references or array references.
3308
3309 2011-03-27  Tobias Burnus  <burnus@net-b.de>
3310
3311         PR fortran/18918
3312         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
3313         GFC_ISYM_NUM_IMAGES.
3314         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
3315         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
3316         rename.
3317         * invoke.texi (-fcoarray=): Document "lib" argument.
3318         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
3319         * libgfortran.h (libgfortran_stat_codes): Add comments.
3320         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
3321         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
3322         Handle GFC_FCOARRAY_LIB.
3323         * trans.h (gfc_init_coarray_decl): New prototype.
3324         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
3325         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
3326         gfor_fndecl_caf_s