OSDN Git Service

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