OSDN Git Service

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