OSDN Git Service

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