OSDN Git Service

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