OSDN Git Service

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