OSDN Git Service

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