OSDN Git Service

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