OSDN Git Service

2011-08-16 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2011-08-16  Tobias Burnus  <burnus@net-b.de>
2             Dominique Dhumieres  <dominiq@lps.ens.fr>
3
4         PR fortran/50094
5         * resolve.c (resolve_symbol): Fix stupid typo.
6
7 2011-08-15  Tobias Burnus  <burnus@net-b.de>
8
9         * resolve.c (resolve_symbol): Fix coarray result-var check.
10
11 2011-08-14  Steven G. Kargl  <kargl@gcc.gnu.org>
12
13         * module.c (use_iso_fortran_env_module):  Spell 'referrenced' correctly.
14
15 2011-08-14  Janus Weil  <janus@gcc.gnu.org>
16
17         PR fortran/50073
18         * decl.c (check_function_name): New function, separated off from
19         'variable_decl' and slightly extended.
20         (variable_decl,attr_decl1): Call it.
21
22 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23
24         * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).
25
26 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
27             Thomas Koenig  <tkoenig@gcc.gnu.org>
28
29         PR fortran/49638
30         * dependency.c (are_identical_variables): For dummy arguments only
31         check for equal names, not equal symbols.
32         * interface.c (gfc_check_typebound_override): Add checking for rank
33         and character length.
34
35 2011-08-07  Janus Weil  <janus@gcc.gnu.org>
36
37         PR fortran/49638
38         * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
39         two prototypes.
40         * dependency.c (gfc_are_identical_variables,are_identical_variables):
41         Renamed the former to the latter and made static.
42         (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
43         commutativity of multiplication.
44         (gfc_is_same_range,is_same_range): Renamed the former to the latter,
45         made static and removed argument 'def'.
46         (check_section_vs_section): Renamed 'gfc_is_same_range'.
47         * gfortran.h (gfc_check_typebound_override): New prototype.
48         * interface.c (gfc_check_typebound_override): Moved here from ...
49         * resolve.c (check_typebound_override): ... here (and renamed).
50         (resolve_typebound_procedure): Renamed 'check_typebound_override'.
51
52 2011-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
53
54         PR fortran/50004
55         * target-memory.c (gfc_target_expr-size): Don't clobber typespec
56         for derived types.
57         * simplify.c (gfc_simplify_transfer): Don't calculate source_size
58         twice.
59
60 2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
61
62         PR fortran/37211
63         * gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
64         * target-memory.h (gfc_target_interpret_expr):  Add boolean
65         argument wether to convert wide characters.
66         * target-memory.c (gfc_target_expr_size):  Also return length
67         of characters for non-constant expressions if these can be
68         determined from the cl.
69         (interpret_array):  Add argument for gfc_target_interpret_expr.
70         (gfc_interpret_derived):  Likewise.
71         (gfc_target_interpret_expr):  Likewise.
72         * check.c:  Include target-memory.h.
73         (gfc_calculate_transfer_sizes):  New function.
74         (gfc_check_transfer):  When -Wsurprising is in force, calculate
75         sizes and warn if result is larger than size (check moved from
76         gfc_simplify_transfer).
77         * simplify.c (gfc_simplify_transfer):  Use
78         gfc_calculate_transfer_sizes.  Remove warning.
79
80 2011-08-04  Richard Guenther  <rguenther@suse.de>
81
82         PR fortran/49957
83         * trans-array.c (add_to_offset): New function.
84         (gfc_conv_array_ref): Build the array index expression in optimally
85         associated order.
86         (gfc_walk_variable_expr): Adjust for the backward walk.
87
88 2011-08-02  Daniel Kraft  <d@domob.eu>
89
90         PR fortran/49885
91         * trans-array.c (gfc_trans_auto_array_allocation): Change
92         gfc_start_block to gfc_init_block to avoid spurious extra-scope.
93
94 2011-08-02  Tobias Burnus  <burnus@net-b.de>
95
96         * trans-array.c (gfc_array_allocate): Pass token to
97           gfc_allocate_allocatable for -fcoarray=lib.
98         * trans-stmt.c (gfc_trans_allocate): Update
99         gfc_allocate_allocatable call.
100         * trans.h (gfc_allocate_allocatable): Update prototype.
101         (gfc_allocate_using_lib): Remove.
102         * trans.c (gfc_allocate_using_lib): Make static, handle token.
103         (gfc_allocate_allocatable): Ditto.
104
105 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
106
107         PR fortran/46752
108         * cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
109         * openmp.c (gfc_free_omp_clauses): Free also final_expr.
110         (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
111         (gfc_match_omp_clauses): Handle parsing final and mergeable
112         clauses.
113         (OMP_TASK_CLAUSES): Allow final and mergeable clauses.
114         (gfc_match_omp_taskyield): New function.
115         (resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
116         Cray pointers in clauses other than REDUCTION.
117         (gfc_match_omp_atomic): Match optional
118         read/write/update/capture keywords after !$omp atomic.
119         (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
120         * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
121         print final and mergeable clauses.
122         (show_code_node): Handle EXEC_OMP_TASKYIELD.
123         * trans-openmp.c (gfc_trans_omp_clauses): Handle final and
124         mergeable clauses.
125         (gfc_trans_omp_taskyield): New function.
126         (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
127         (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
128         (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
129         (gfc_omp_predetermined_sharing): Adjust comment.
130         * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
131         ST_OMP_END_ATOMIC.
132         (gfc_omp_clauses): Add final_expr and mergeable fields.
133         (gfc_exec_op): Add EXEC_OMP_TASKYIELD.
134         (gfc_omp_atomic_op): New enum typedef.
135         (struct gfc_code): Add ext.omp_atomic.
136         * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
137         * frontend-passes.c (gfc_code_walker): Also walk final_expr.
138         * resolve.c (gfc_resolve_blocks, resolve_code): Handle
139         EXEC_OMP_TASKYIELD.
140         * st.c (gfc_free_statement): Likewise.
141         * match.h (gfc_match_omp_taskyield): New prototype.
142         * parse.c (decode_omp_directive): Handle taskyield directive.
143         Handle !$omp end atomic.
144         (case_executable): Add ST_OMP_TASKYIELD case.
145         (gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
146         (parse_omp_atomic): Return gfc_statement instead of void.
147         For !$omp atomic capture parse two assignments instead of
148         just one and require !$omp end atomic afterwards, for
149         other !$omp atomic forms just allow !$omp end atomic at the
150         end.
151         (parse_omp_structured_block, parse_executable): Adjust
152         parse_omp_atomic callers.
153
154 2011-08-02  Tobias Burnus  <burnus@net-b.de>
155
156         * intrinsic.c (OMP_LIB): Updated openmp_version's
157         value to 201107.
158         * gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
159         * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
160         remove deleted omp_integer_kind and omp_logical_kind constants.
161
162 2011-07-31  Janus Weil  <janus@gcc.gnu.org>
163
164         PR fortran/49112
165         * resolve.c (resolve_structure_cons): Don't do the full dt resolution,
166         only call 'resolve_fl_derived0'.
167         (resolve_typebound_procedures): Resolve typebound procedures of
168         parent type.
169         (resolve_fl_derived0): New function, which does a part of the work
170         for 'resolve_fl_derived'.
171         (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
172         things.
173
174 2011-07-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
175
176         PR fortran/48876
177         * expr.c (gfc_simplify_expr):  If end of a string is less
178         than zero, set it to zero.
179
180 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
181
182         PR fortran/31067
183         * frontend-passes.c (optimize_minmaxloc): New function.
184         (optimize_expr): Call it.
185
186 2011-07-27  Tobias Burnus  <burnus@net-b.de>
187
188         PR fortran/45586
189         * trans-types.c (gfc_get_derived_type): Ensure that pointer
190         component types are marked as nonrestricted.
191
192 2011-07-27  Daniel Carrera  <dcarrera@gmail.com>
193
194         PR fortran/49755
195         * trans.c (gfc_allocate_using_malloc): Change function signature.
196         Return nothing. New parameter "pointer". Eliminate temorary variables. 
197         (gfc_allocate_using_lib): Ditto.
198         (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
199         and gfc_allocate_using_malloc. Do not free and then reallocate a
200         variable that is already allocated.
201         (gfc_likely): New function. Basedon gfc_unlikely.
202         * trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
203         Instructions to modify the array descriptor are stored in this block
204         while other instructions continue to be stored in "pblock".
205         (gfc_array_allocate): Update call to gfc_array_init_size. Move the
206         descriptor_block so that the array descriptor is only updated if
207         the array was allocated successfully.
208         Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
209         * trans.h (gfc_allocate_allocatable): Change function signature.
210         Function now returns void.
211         (gfc_allocate_using_lib): Ditto, and new function parameter.
212         (gfc_allocate_using_malloc): Ditto.
213         * trans-openmp.c (gfc_omp_clause_default_ctor,
214         gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
215         to gfc_allocate_allocatable with gfc_allocate_using_malloc.
216         * trans-stmt.c (gfc_trans_allocate): Update function calls for
217         gfc_allocate_allocatable and gfc_allocate_using_malloc.
218
219 2011-07-26  Tobias Burnus  <burnus@net-b.de>
220
221         * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
222         (gfc_conv_descriptor_token): New function.
223         * trans-array.h (gfc_conv_descriptor_token): New prototype.
224         * trans-types.c (gfc_get_array_descriptor_base): For coarrays
225         with -fcoarray=lib, append "void *token" to the array descriptor.
226         (gfc_array_descriptor_base_caf): New static variable.
227         * trans-expr.c (gfc_conv_procedure_call): Handle token and offset
228         when passing a descriptor coarray to a nondescriptor dummy. 
229
230 2011-07-23  Tobias Burnus  <burnus@net-b.de>
231
232         * resolve.c (resolve_symbol): Fix coarray var decl check.
233
234 2011-07-21  Daniel Carrera  <dcarrera@gmail.com>
235
236         * trans.c (gfc_allocate_with_status): Split into two functions
237         gfc_allocate_using_malloc and gfc_allocate_usig_lib.
238         (gfc_allocate_using_malloc): The status parameter is now the
239         actual status rather than a pointer. Code cleanup.
240         (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
241         errlen. Pass these to the coarray lib.
242         * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
243         gfc_allocate_allocatable.
244         (gfc_omp_clause_copy_ctor): Ditto.
245         (gfc_trans_omp_array_reduction): Ditto.
246         * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
247         gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
248         fuctions. If using coarray lib, pass errmsg and errlen to the allocate
249         functions. Move error checking outside the if (!gfc_array_allocate)
250         block so that it also affects trees produced by gfc_array_allocate.
251         * trans-array.c (gfc_array_allocate): Add new parameters errmsg
252         and errlen. Replace parameter pstat by status. Code cleanup. Update
253         calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
254         * trans-array.h (gfc_array_allocate): Update signature of
255         gfc_array_allocate.
256
257 2011-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
258
259         * gfortran.texi: Remove a duplicate word.
260
261 2011-07-21  Tobias Burnus  <burnus@net-b.de>
262
263         * check.c (gfc_check_present): Allow coarrays.
264         * trans-array.c (gfc_conv_array_ref): Avoid casting
265         when a pointer is wanted.
266         * trans-decl.c (create_function_arglist): For -fcoarray=lib,
267         handle hidden token and offset arguments for nondescriptor
268         coarrays.
269         * trans-expr.c (get_tree_for_caf_expr): New function.
270         (gfc_conv_procedure_call): For -fcoarray=lib pass the
271         token and offset for nondescriptor coarray dummies.
272         * trans.h (lang_type): Add caf_offset tree.
273         (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.
274
275 2011-07-19  Tobias Burnus  <burnus@net-b.de>
276
277         * expr.c (gfc_is_coarray): New function.
278         * gfortran.h (gfc_is_coarray): New prototype.
279         * interface.c (compare_parameter): Use it.
280
281 2011-07-19  Richard Guenther  <rguenther@suse.de>
282
283         * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
284         (gfc_trans_string_copy): Likewise.
285         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
286         * trans-types.c (gfc_get_array_descr_info): Likewise.
287         * trans.c (gfc_build_array_ref): Likewise.
288
289 2011-07-19  Janus Weil  <janus@gcc.gnu.org>
290
291         PR fortran/49708
292         * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.
293
294 2011-07-18  Tobias Burnus  <burnus@net-b.de>
295
296         * trans-decl.c (gfc_build_qualified_array): Make coarray's
297         token TYPE_QUAL_RESTRICT.
298
299 2011-07-18  Tobias Burnus  <burnus@net-b.de>
300
301         * resolve.c (resolve_transfer): Mention defined I/O
302         in the diagnostic for alloc_comp/pointer_comp.
303
304 2011-07-17  Tobias Burnus  <burnus@net-b.de>
305
306         PR fortran/34657
307         * module.c (check_for_ambiguous): Check whether the name is matches
308         the current program unit.
309
310 2011-07-17  Tobias Burnus  <burnus@net-b.de>
311
312         PR fortran/49624
313         * expr.c (gfc_check_pointer_assign): Fix checking for invalid
314         pointer bounds.
315
316 2011-07-16  Tobias Burnus  <burnus@net-b.de>
317         
318         * expr.c (gfc_ref_this_image): New function.
319         (gfc_is_coindexed): Use it.
320         * gfortran.h (gfc_ref_this_image): New prototype.
321         * resolve.c (resolve_deallocate_expr,
322         resolve_allocate_expr): Support alloc scalar coarrays.
323         * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
324         gfc_conv_descriptor_cosize, gfc_array_allocate,
325         gfc_trans_deferred_array): Ditto.
326         * trans-expr.c (gfc_conv_variable) Ditto.:
327         * trans-stmt.c (gfc_trans_deallocate): Ditto.
328         * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
329         gfc_get_array_descr_info): Ditto.
330         * trans-decl.c (gfc_get_symbol_decl): Ditto.
331
332 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
333
334         PR fortran/49698
335         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
336         inner_size to gfc_index_one_node instead of integer_one_node.
337
338 2011-07-10  Tobias Burnus  <burnus@net-b.de>
339
340         PR fortran/49690
341         * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
342
343 2011-07-09  Uros Bizjak  <ubizjak@gmail.com>
344
345         PR fortran/48926
346         * expr.c (gfc_get_corank): Change return value to int.
347         * gfortran.h (gfc_get_corank): Update function prototype.
348
349 2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>
350
351         PR fortran/49648
352         * resolve.c (resolve_symbol): Force resolution of function result's
353         array specification.
354
355 2011-07-07  Tobias Burnus  <burnus@net-b.de>
356
357         * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
358         with NULL arguments for (new) stat=/errmsg= arguments.
359
360 2011-07-06  Daniel Carrera  <dcarrera@gmail.com>
361
362         * trans-array.c (gfc_array_allocate): Rename allocatable_array to
363         allocatable. Rename function gfc_allocate_array_with_status to
364         gfc_allocate_allocatable_with_status. Update function call for
365         gfc_allocate_with_status.
366         * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
367         gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
368         * trans-stmt.c (gfc_trans_allocate): Update function call for
369         gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
370         to gfc_allocate_allocatable_with_status.
371         * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
372         so it uses the library for memory allocation when -fcoarray=lib.
373         (gfc_allocate_allocatable_with_status): Renamed from
374         gfc_allocate_array_with_status.
375         (gfc_allocate_allocatable_with_status): Update function call for
376         gfc_allocate_with_status.
377         * trans.h (gfc_coarray_type): New enum.
378         (gfc_allocate_with_status): Update prototype.
379         (gfc_allocate_allocatable_with_status): Renamed from
380         gfc_allocate_array_with_status.
381         * trans-decl.c (generate_coarray_sym_init): Use the new constant
382         GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.
383
384 2011-07-06  Richard Guenther  <rguenther@suse.de>
385
386         * f95-lang.c (gfc_init_decl_processing):
387         Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
388
389 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
390
391         PR fortran/49623
392         * gfortranspec.c (lang_specific_driver): Ignore options with
393         CL_ERR_MISSING_ARG errors.
394
395 2011-07-02  Janus Weil  <janus@gcc.gnu.org>
396
397         PR fortran/49562
398         * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
399
400 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
401
402         PR fortran/49540
403         * gfortran.h (gfc_constructor): Add repeat field.
404         * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
405         * array.c (current_expand): Add repeat field.
406         (expand_constructor): Copy repeat.
407         * constructor.c (node_free, node_copy, gfc_constructor_get,
408         gfc_constructor_lookup): Handle repeat field.
409         (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
410         * data.h (gfc_assign_data_value): Add mpz_t * argument.
411         (gfc_assign_data_value_range): Removed.
412         * constructor.h (gfc_constructor_advance): Removed.
413         (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
414         * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
415         also handle overwriting a range with a single entry.
416         (gfc_assign_data_value_range): Removed.
417         * resolve.c (check_data_variable): Adjust gfc_assign_data_value
418         call.  Use gfc_assign_data_value instead of
419         gfc_assign_data_value_expr.
420
421 2011-06-27  Janus Weil  <janus@gcc.gnu.org>
422
423         PR fortran/49466
424         * trans-array.c (structure_alloc_comps): Make sure sub-components
425         and extended types are correctly deallocated.
426
427 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
428
429         * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
430         * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
431         * trans-decl.c: Add sync_ or SYNC__ to builtin names.
432
433 2011-06-21  Janus Weil  <janus@gcc.gnu.org>
434
435         PR fortran/49112
436         * class.c (gfc_find_derived_vtab): Make vtab and default initialization
437         symbols SAVE_IMPLICIT.
438
439 2011-06-20  Tobias Burnus  <burnus@net-b.de>
440
441         PR fortran/18918
442         * gfortran.h (gfc_check_vardef_context): Update prototype.
443         (iso_fortran_env_symbol): Handle derived types.
444         (symbol_attribute): Add lock_comp.
445         * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
446         * interface.c (compare_parameter, gfc_procedure_use): Handle
447         LOCK_TYPE.
448         (compare_actual_formal): Update
449         gfc_check_vardef_context call.
450         * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
451         * intrinsic.c (check_arglist): Ditto.
452         * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
453         * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
454         * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
455         * module.c (mio_symbol_attribute): Handle lock_comp.
456         (create_derived_type): New function.
457         (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
458         * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
459         * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
460         checks for LOCK_TYPE.
461         (gfc_resolve_iterator, resolve_deallocate_expr,
462         resolve_allocate_expr, resolve_code, resolve_transfer): Update
463         gfc_check_vardef_context call.
464         * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
465         * trans-stmt.c (gfc_trans_lock_unlock): New function.
466         * trans.c (trans_code): Handle LOCK and UNLOCK.
467
468 2011-06-18  Janus Weil  <janus@gcc.gnu.org>
469
470         PR fortran/49400
471         * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
472         BLOCK constructs.
473
474 2011-06-17  Janus Weil  <janus@gcc.gnu.org>
475
476         PR fortran/48699
477         * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
478         make sure the vtab is present.
479
480 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
481
482         PR fortran/49074
483         * interface.c (gfc_extend_assign): Propagate the locus from the
484         assignment to the type-bound procedure call.
485
486 2011-06-16  Janus Weil  <janus@gcc.gnu.org>
487
488         PR fortran/49417
489         * module.c (mio_component): Make sure the 'class_ok' attribute is set
490         for use-associated CLASS components.
491         * parse.c (parse_derived): Check for 'class_ok' attribute.
492         * resolve.c (resolve_fl_derived): Ditto.
493
494 2011-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
495
496         * frontend-passes.c (remove_trim):  New function.
497         (optimize_assignment):  Use it.
498         (optimize_comparison):  Likewise.  Return correct status
499         for previous change.
500
501 2011-06-12  Tobias Burnus
502
503         PR fortran/49324
504         * trans-expr.c (gfc_trans_assignment_1): Tell
505         gfc_trans_scalar_assign to also deep-copy RHS nonvariables
506         with allocatable components.
507         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
508
509 2011-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
510
511         * frontend-passes.c (optimize_assignment): Follow chains
512         of concatenation operators to the end for removing trailing
513         TRIMS for assignments.
514
515 2011-06-10  Daniel Carrera  <dcarrera@gmail.com>
516
517         * trans-decl.c (gfc_build_builtin_function_decls):
518         Updated declaration of caf_sync_all and caf_sync_images.
519         * trans-stmt.c (gfc_trans_sync): Function
520         can now handle a "stat" variable that has an integer type
521         different from integer_type_node.
522
523 2011-06-09  Richard Guenther  <rguenther@suse.de>
524
525         * trans.c (gfc_allocate_array_with_status): Mark error path
526         as unlikely.
527
528 2011-06-08  Tobias Burnus  <burnus@net-b.de>
529
530         PR fortran/18918
531         * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
532         (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
533         (gfc_code): Add expr4.
534         * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
535         * match.c (gfc_match_lock, gfc_match_unlock,
536         lock_unlock_statement): New functions.
537         (sync_statement): Bug fix, avoiding double freeing.
538         (gfc_match_if): Handle LOCK/UNLOCK statement.
539         * parse.c (decode_statement, next_statement,
540         gfc_ascii_statement): Ditto.
541         * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
542         * resolve.c (resolve_lock_unlock): New function.
543         (resolve_code): Call it.
544         * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
545
546 2011-06-07  Richard Guenther  <rguenther@suse.de>
547
548         * f95-lang.c (gfc_init_decl_processing): Do not set
549         size_type_node or call set_sizetype.
550
551 2011-06-05  Tobias Burnus  <burnus@net-b.de>
552
553         PR fortran/49255
554         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
555         for F2008.
556
557 2011-06-05  Andreas Schmidt  <andreas.schmidt.42@gmx.net>
558         Thomas Koenig  <tkoenig@gcc.gnu.org>
559
560         * dump-parse-tree.c (show_symbol):  Don't dump namespace
561         for ENTRY to avoid infinite recursion.
562
563 2011-06-02  Asher Langton  <langton2@llnl.gov>
564
565         PR fortran/49268
566         * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
567         pointees as AS_EXPLICIT.
568
569 2011-06-02  Asher Langton  <langton2@llnl.gov>
570
571         PR fortran/37039
572         * decl.c (variable_decl): Merge current_as before copying to cp_as.
573
574 2011-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>
575
576         PR fortran/49265
577         * decl.c (gfc_match_modproc):  Allow for a double colon in a module
578         procedure statement.
579         * parse.c ( decode_statement): Deal with whitespace around :: in
580         gfc_match_modproc.
581
582 2011-05-31  Tobias Burnus  <burnus@net-b.de>
583
584         PR fortran/18918
585         * intrinsic.c (klass): Add CLASS_ATOMIC.
586         (add_subroutines): Add atomic_ref/atomic_define.
587         * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
588         * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
589         gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
590         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
591         and GFC_ISYM_ATOMIC_REF.
592         (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
593         * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
594         functions.
595         * check.c (gfc_check_atomic, gfc_check_atomic_def,
596         gfc_check_atomic_ref): New functions.
597         * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
598         ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
599         * trans-intrinsic.c (conv_intrinsic_atomic_def,
600         conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
601         functions.
602         (conv_intrinsic_move_alloc) Renamed from
603         gfc_conv_intrinsic_move_alloc - and made static.
604         * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
605         (gfc_conv_intrinsic_subroutine) Add prototype.
606         * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
607         * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
608         global vars.
609         (gfc_init_kinds): Set them.
610
611 2011-05-31  Tobias Burnus  <burnus@net-b.de>
612
613         PR fortran/18918
614         * trans-array.c (gfc_trans_dummy_array_bias): Handle
615         cobounds of assumed-shape arrays.
616
617 2011-05-31  Tobias Burnus  <burnus@net-b.de>
618
619         PR fortran/18918
620         * resolve.c (resolve_fl_variable): Handle static coarrays
621         with non-constant cobounds.
622
623 2011-05-29  Janus Weil  <janus@gcc.gnu.org>
624
625         PR fortran/47601
626         * module.c (mio_component_ref): Handle components of extended types.
627         * symbol.c (gfc_find_component): Return is sym is NULL.
628
629 2011-05-29  Tobias Burnus  <burnus@net-b.de>
630
631         PR fortran/18918
632         * interface.c (compare_parameter): Add check for passing coarray
633         to allocatable noncoarray dummy.
634
635 2011-05-29  Tobias Burnus  <burnus@net-b.de>
636             Richard Guenther  <rguenther@suse.de>
637
638         PR fortran/18918
639         * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
640         the type's TREE_TYPE.
641         * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
642         * trans.c (gfc_build_array_ref): Ditto.
643
644 2011-05-27  Tobias Burnus  <burnus@net-b.de>
645
646         PR fortran/18918
647         * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
648         * match.c (gfc_match_nullify): Ditto.
649         * resolve.c (resolve_deallocate_expr): Ditto.
650         * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
651         for nonpointers.
652
653 2011-05-27  Tobias Burnus  <burnus@net-b.de>
654
655         PR fortran/48820
656         * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
657         * intrinsic.c (add_functions): Add rank intrinsic.
658         (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
659         * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
660         * simplify.c (gfc_simplify_rank): New function.
661         * intrinsic.texi (RANK): Add description for rank intrinsic.
662         * check.c (gfc_check_rank): New function.
663
664 2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
665             Thomas Koenig  <tkoenig@gcc.gnu.org>
666
667         PR fortran/48955
668         * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
669         changed to GFC_ENABLE_REVERSE.
670         * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
671         to GFC_INHIBIT_REVERSE.
672         * gfortran.h : Enum gfc_reverse is now GFC_ENABLE_REVERSE,
673         GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
674         * dependency.c (gfc_dep_resolver): Change names for elements of
675         gfc_reverse as necessary. Change the logic so that forward
676         dependences are remembered as well as backward ones. When both
677         have appeared, force a temporary.
678
679 2011-05-26  Tobias Burnus  <burnus@net-b.de>
680
681         PR fortran/18918
682         * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
683         * trans-decl.c (has_coarray_vars, caf_init_block,
684         gfor_fndecl_caf_register): New file-global variables.
685         (gfc_finish_var_decl): Make sure that coarrays in main are static.
686         (gfc_build_qualified_array): Generate coarray token variable.
687         (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
688         (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
689         (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
690         static coarrays.
691         (generate_local_decl): Check for local coarrays.
692         (create_main_function): SYNC ALL before calling MAIN.
693         (generate_coarray_sym_init): Register static coarray.
694         (generate_coarray_init): Generate CAF registering constructor
695         function.
696         (gfc_generate_function_code): Call it, if needed, do not create
697         cgraph twice.
698         (gfc_generate_module_vars, gfc_process_block_locals): Call
699         generate_coarray_init.
700         * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
701         -fcoarray=lib.
702         * trans.h (gfor_fndecl_caf_register): New variable.
703         (lang_type): New element caf_token.
704         (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
705
706 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
707
708         * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
709         (gfortran$(exeext)): Use libcommon-target.a.
710
711 2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
712
713         * frontend-passes.c (cfe_register_funcs):  Also register
714         character functions if their charlens are known and constant.
715         Also register allocatable functions.
716
717 2011-05-21  Janus Weil  <janus@gcc.gnu.org>
718
719         PR fortran/48699
720         * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
721         selector is ALLOCATABLE.
722
723 2011-05-20  Janus Weil  <janus@gcc.gnu.org>
724
725         PR fortran/48706
726         * module.c (write_dt_extensions): Do not write extended types which
727         are local to a subroutine.
728
729 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
730
731         * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
732
733 2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>
734
735         * gfortran.texi (set_fpe): Update documentation.
736         * invoke.texi (-ffpe-trap): Likewise.
737         * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
738         * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
739         precision an alias for it.
740
741 2011-05-19  Tobias Burnus  <burnus@net-b.de>
742
743         PR fortran/18918
744         * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
745         (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
746         coarrays.
747         * trans.c (gfc_build_array_ref): Return original type not variant
748         copy for scalar coarrays.
749         * trans-array.c (gfc_conv_array_ref): Ditto.
750
751 2011-05-18  Janus Weil  <janus@gcc.gnu.org>
752
753         PR fortran/48700
754         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
755         argument to avoid memory leaks.
756
757 2011-05-16  Tobias Burnus  <burnus@net-b.de>
758
759         * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
760         (Fortran 2008 status): Multi-image support for coarrays.
761         (TR 19113 status): New section.
762
763 2011-05-15  Tobias Burnus  <burnus@net-b.de>
764
765         PR fortran/18918
766         actual argument is not an array; rank mismatch is diagnosted later.
767         * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
768         scalar coarrays.
769         * trans-types.c (gfc_get_array_type_bounds): Ditto.
770
771 2011-05-15  Joern Rennecke  <amylaar@spamcop.net>
772
773         PR middle-end/46500
774         * trans-types.c: Include "tm.h".
775         [0] (c_size_t_size): Remove.
776
777 2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>
778
779         PR libfortran/48915
780         * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
781         is now the default, the library defaults to backtracing disabled.
782
783 2011-05-14  Tobias Burnus  <burnus@net-b.de>
784
785         * lang.opt (fdump-core): Re-add as ignored option
786         for backward compatibility.
787
788 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
789
790         PR libfortran/48915
791         * gfortran.texi: Update mixed-language programming section
792         reflecting the removal of the fdump-core option, and that
793         -fbacktrace is now enabled by default.
794
795 2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
796
797         PR fortran/22572
798         * frontend-passes.c (cfe_register_funcs):  Also register functions
799         for potential elimination if the rank is > 0, the shape is unknown
800         and reallocate on assignment is active.
801         (create_var):  For rank > 0 functions with unknown shape, create
802         an allocatable temporary.
803
804 2011-05-14  Tobias Burnus  <burnus@net-b.de>
805
806         PR fortran/18918
807         * interface.c (compare_parameter): Skip diagnostic if
808         actual argument is not an array; rank mismatch is diagnosted later.
809
810 2011-05-14  Tobias Burnus  <burnus@net-b.de>
811
812         * options.c (gfc_init_options, gfc_post_options): Enable
813         -fstack-arrays by default if -Ofast is used.
814         * invoke.texi (-fstack-arrays): Document this.
815
816 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
817
818         PR libfortran/48915
819         * gfortran.h (gfc_option_t): Remove flag_dump_core.
820         * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
821         (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
822         * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
823         * invoke.texi: Remove -fdump-core, document that -fbacktrace is
824         enabled by default.
825         * lang.opt: Remove -fdump-core.
826         * options.c (gfc_init_options): Make backtrace default to enabled,
827         remove dump_core.
828         (gfc_handle_option): Remove OPT_fdump-core.
829         * trans-decl.c: Pass a 0 to preserve ABI.
830
831 2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>
832
833         * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
834
835 2011-05-13  Tobias Burnus  <burnus@net-b.de>
836
837         PR fortran/48972
838         * io.c (resolve_tag_format, resolve_tag): Make sure
839         that the string is of default kind.
840         (gfc_resolve_inquire): Also resolve decimal tag.
841
842 2011-05-12  Tobias Burnus  <burnus@net-b.de>
843
844         PR fortran/48972
845         * resolve.c (resolve_intrinsic): Don't resolve module
846         intrinsics multiple times.
847
848 2011-05-11  Tobias Burnus  <burnus@net-b.de>
849
850         PR fortran/48889
851         * expr.c (gfc_is_constant_expr): Use e->value.function.esym
852         instead of e->symtree->n.sym, if available.
853
854 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
855
856         * f95-lang.c (global_bindings_p): Return bool and simplify.
857
858 2011-05-07  Tobias Burnus  <burnus@net-b.de>
859
860         PR fortran/18918
861         PR fortran/48919
862         * trans.h: Move gfc_init_coarray_decl prototype ...
863         * gfortran.h: ... to here.
864         * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
865         (gfc_parse_file): Update translate_all_program_units call.
866         * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
867         new argument whether DECL_EXTERNAL should be used.
868         (create_main_function): Update gfc_init_coarray_decl call.
869         * trans-intrinsic.c (trans_this_image, trans_image_index,
870         conv_intrinsic_cobound): Ditto.
871
872 2011-05-06  Tobias Burnus  <burnus@net-b.de>
873
874         PR fortran/18918
875         * trans-array.c (gfc_walk_variable_expr): Continue walking
876         for scalar coarrays.
877         * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
878         (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
879         (trans_this_image): Fix algorithm.
880         * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
881         gfc_sym_type): Handle scalar coarrays.
882
883 2011-05-06  Tobias Burnus  <burnus@net-b.de>
884
885         PR fortran/48858
886         PR fortran/48820
887         * lang.opt (std=f2008tr): New.
888         * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
889         * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
890         procedures for -std=f2008tr/gnu/legacy.
891         (gfc_match_import): Set sym to NULL.
892         * options.c (set_default_std_flags,gfc_handle_option): Handle
893         -std=f2008tr.
894         * invoke.texi (-std=): Document -std=f2008tr.
895
896 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
897
898         * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
899         * trans-io.c (add_case): Likewise.
900         * trans-stmt.c (gfc_trans_integer_select): Likewise.
901         (gfc_trans_character_select): Likewise.
902
903 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
904
905         * trans-decl.c (trans_function_start): Do not set
906         dont_save_pending_sizes_p.
907
908 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
909
910         * trans.h (gfc_chainon_list): Delete.
911         * trans.c (gfc_chainon_list): Delete.
912
913 2011-05-04  Tobias Burnus  <burnus@net-b.de>
914
915         PR fortran/48864
916         * invoke.texi (fno-protect-parens): Document
917         that -Ofast implies -fno-protect-parens.
918         * options.c (gfc_init_options, gfc_post_options):
919         Make -Ofast imply -fno-protect-parens.
920
921 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
922
923         * trans-decl.c (build_library_function_decl_1): Call
924         build_function_type_vec.  Adjust argument list building accordingly.
925         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
926         * trans-types.c (gfc_get_function_type): Likewise.
927
928 2011-05-04  Richard Guenther  <rguenther@suse.de>
929
930         * trans-array.c (gfc_trans_array_constructor_value): Use
931         size_int for bounds of range types.
932         (gfc_trans_array_constructor_value): Use size_type_node
933         for memcpy argument.
934         * trans-common.c (build_field): Use gfc_charlen_type_node
935         for lengths.
936         * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
937         as type to build_int_cst.
938         * trans-const.c (gfc_build_string_const): Use size_int
939         for bounds of range types.
940         (gfc_build_wide_string_const): Likewise.
941         * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
942         for lengths.
943         (gfc_trans_character_select): Likewise.
944         (gfc_trans_character_select): Do not pass NULL
945         as type to build_int_cst.
946         (gfc_trans_character_select): Use size_int for bounds of range types.
947         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
948         (add_case): Do not pass NULL as type to build_int_cst.
949         (transfer_expr): Likewise.
950         (transfer_array_desc): Likewise.
951         * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
952         for lengths.
953         (gfc_trans_assign_aux_var): Likewise.
954         (create_main_function): Use size_int for bounds of range types.
955         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
956         NULL as type to build_int_cst.
957         (gfc_conv_intrinsic_spacing): Likewise.
958         (gfc_conv_intrinsic_rrspacing): Likewise.
959         (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
960
961 2011-05-04  Richard Guenther  <rguenther@suse.de>
962
963         * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
964         argument to int_const_binop.
965
966 2011-05-03  Tobias Burnus  <burnus@net-b.de>
967
968         PR fortran/18918
969         * trans-intrinsic.c (trans_this_image): Implement version with
970         coarray argument.
971         (conv_intrinsic_cobound): Simplify code.
972         (gfc_conv_intrinsic_function): Call trans_this_image for
973         this_image(coarray) except for -fcoarray=single.
974
975 2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
976
977         PR fortran/48720
978         * gfortran.texi: Document the 'Q' exponent-letter extension.
979         * invoke.texi: Document -Wreal-q-constant.
980         * lang.opt: Add -Wreal-q-constant option.
981         * gfortran.h: Add warn_real_q_constant to option struct.
982         * primary.c (match_real_constant):  Use it.  Accept 'Q' as
983         exponent-letter for REAL(16) real-literal-constant with a
984         fallback to REAL(10) or error if REAL(10) is not available.
985         * options.c (gfc_init_options, set_Wall) Set it.
986         (gfc_handle_option): Handle new option.
987
988 2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
989
990         * dump-prase-tree.c (show_code_node):  Set the current
991         namespace to the BLOCK before displaying it; restore
992         afterwards.
993
994 2011-04-30  Tobias Burnus  <burnus@net-b.de>
995
996         PR fortran/48821
997         * decl.c (gfc_match_import): Don't try to find the
998         symbol if already found.
999
1000 2011-04-30  Paul Thomas  <pault@gcc.gnu.org>
1001
1002         PR fortran/48746
1003         * trans-expr.c (fcncall_realloc_result): Set the bounds and the
1004         offset so that the lbounds are one.
1005         (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
1006
1007 2011-04-29  Paul Thomas  <pault@gcc.gnu.org>
1008
1009         PR fortran/48462
1010         * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
1011         automatic reallocation when the lhs is a target.
1012
1013         PR fortran/48746
1014         * trans-expr.c (fcncall_realloc_result): Make sure that the
1015         result dtype field is set before the function call.
1016
1017 2011-04-29  Tobias Burnus  <burnus@net-b.de>
1018
1019         PR fortran/48810
1020         * resolve.c (resolve_typebound_generic_call): Don't check access
1021         flags of the specific function.
1022
1023         PR fortran/48800
1024         * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
1025         to AS_ASSUMED_SHAPE for function results.
1026         (resolve_fl_var_and_proc): Print also for function results with
1027         AS_DEFERRED an error, if they are not a pointer or allocatable.
1028         (resolve_types): Make sure arguments of procedures in interface
1029         blocks are resolved.
1030
1031 2011-04-29  Michael Matz  <matz@suse.de>
1032
1033         * options.c (options.c): Set warn_maybe_uninitialized.
1034
1035 2011-04-28  Tobias Burnus  <burnus@net-b.de>
1036
1037         PR fortran/48112
1038         * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
1039         function results only once.
1040         (resolve_symbol): Always resolve function results.
1041
1042         PR fortran/48279
1043         * expr.c (gfc_check_vardef_context): Fix handling of generic
1044         EXPR_FUNCTION.
1045         * interface.c (check_interface0): Reject internal functions
1046         in generic interfaces, unless -std=gnu.
1047
1048 2011-04-27  Tobias Burnus  <burnus@net-b.de>
1049
1050         PR fortran/48788
1051         * resolve.c (resolve_global_procedure): Error recovery -
1052         avoid segfault for (non)character-returning functions.
1053
1054 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1055
1056         * decl.c (gfc_match_end):  Check that the block name starts
1057         with "block@".
1058         * parse.c (gfc_build_block_ns):  Make block names unique by
1059         numbering them.
1060
1061 2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>
1062
1063         * frontend-passes.c (inserted_block):  New variable.
1064         (changed_statement):  Likewise.
1065         (create_var):  Encase statement to be operated on in a BLOCK.
1066         Adjust code insertion for BLOCK.
1067         (cfe_code):  Set inserted_block and changed_statement to NULL.
1068
1069 2011-04-23  Tobias Burnus  <burnus@net-b.de>
1070
1071         PR fortran/18918
1072         * module.c (mio_array_spec): Set as->cotype on reading.
1073         * resolve.c (resolve_allocate_expr): Fix allocating coarray
1074         components.
1075
1076 2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1077
1078         PR fortran/48405
1079         * frontend_passes (cfe_register_funcs): Remove workaround for DO
1080         loops.
1081         (gfc_code_walker):  Make sure the pointer to the current
1082         statement doen't change when other statements are inserted.
1083
1084 2011-04-21  Tobias Burnus  <burnus@net-b.de>
1085
1086         PR fortran/18918
1087         * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
1088
1089 2011-04-20  Jim Meyering  <meyering@redhat.com>
1090
1091         * expr.c (free_expr0): Remove useless if-before-free.
1092         * gfortranspec.c (lang_specific_pre_link): Likewise.
1093         * interface.c (gfc_extend_expr): Likewise.
1094         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
1095
1096 2011-04-19  Tobias Burnus  <burnus@net-b.de>
1097
1098         PR fortran/48588
1099         PR fortran/48692
1100
1101         * module.c (fix_mio_expr): Commit created symbol.
1102
1103 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1104
1105         * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
1106
1107 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1108
1109         * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
1110         free.
1111
1112 2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>
1113
1114         * misc.c (gfc_getmem): Remove function.
1115         * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
1116         usage with XCNEW or XCNEWVEC.
1117         * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
1118         XCNEW or XCNEWVEC.
1119         * options.c (gfc_handle_module_path_options)
1120         (gfc_get_option_string): Likewise.
1121         * resolve.c (gfc_resolve_forall): Likewise.
1122         * simplify.c (simplify_transformation_to_array): Likewise.
1123         * target-memory.c (gfc_target_interpret_expr): Likewise.
1124         * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
1125         (get_init_field): Likewise.
1126         * trans-expr.c (gfc_conv_statement_function): Likewise.
1127         * trans-io.c (nml_full_name): Likewise.
1128         * trans-stmt.c (gfc_trans_forall_1): Likewise.
1129         * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
1130
1131 2011-04-19  Tobias Burnus  <burnus@net-b.de>
1132
1133         PR fortran/48588
1134         * parse.c (resolve_all_program_units): Skip modules.
1135         (translate_all_program_units): Handle modules.
1136         (gfc_parse_file): Defer code generation for modules.
1137
1138 2011-04-19  Martin Jambor  <mjambor@suse.cz>
1139
1140         * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
1141         instead of cgraph_get_create_node.
1142
1143 2011-04-18  Jim Meyering  <meyering@redhat.com>
1144
1145         remove now-unused definition of gfc_free
1146         * misc.c (gfc_free): Remove function.
1147         * gfortran.h (gfc_free): Remove its prototype.
1148
1149 2011-04-18  Jim Meyering  <meyering@redhat.com>
1150
1151         convert each use of gfc_free (p) to free (p)
1152         Do that by running this command:
1153           perl -pi -e    's/\bgfc_free ?\(/free (/' \
1154             $(git grep -El '\bgfc_free ?\(')
1155         which also corrects the few uses that lacked a space between
1156         the function name and the open parenthesis.
1157         Manually undo the change to the function definition itself
1158         and its prototype.  They'll be removed next.
1159         * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
1160         * constructor.c (node_free): Likewise.
1161         * cpp.c (dump_queued_macros): Likewise.
1162         * data.c (gfc_assign_data_value): Likewise.
1163         * decl.c (free_variable, free_value, gfc_free_data): Likewise.
1164         (gfc_free_data_all, match_old_style_init): Likewise.
1165         (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
1166         Likewise.
1167         (gfc_match_modproc): Likewise.
1168         * dependency.c (check_section_vs_section): Likewise.
1169         * error.c (gfc_pop_error, gfc_free_error): Likewise.
1170         * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
1171         (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
1172         (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
1173         Likewise.
1174         * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
1175         (strip_function_call, optimize_comparison): Likewise.
1176         * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
1177         (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
1178         Likewise.
1179         * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
1180         (gfc_convert_chartype): Likewise.
1181         * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
1182         Likewise.
1183         (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
1184         * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
1185         (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
1186         Likewise.
1187         (free_case, gfc_free_forall_iterator): Likewise.
1188         * misc.c: Likewise.
1189         * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
1190         (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
1191         (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
1192         (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
1193         (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
1194         (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
1195         * openmp.c (gfc_free_omp_clauses): Likewise.
1196         * options.c (gfc_post_options): Likewise.
1197         * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
1198         * primary.c (gfc_free_structure_ctor_component): Likewise.
1199         * resolve.c (resolve_structure_cons, check_host_association): Likewise.
1200         (gfc_resolve_forall, resolve_equivalence): Likewise.
1201         * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
1202         (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
1203         (load_file, gfc_read_orig_filename): Likewise.
1204         * simplify.c (simplify_transformation_to_array): Likewise.
1205         (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
1206         Likewise.
1207         (gfc_simplify_compiler_options): Likewise.
1208         * st.c (gfc_free_statement, gfc_free_statements): Likewise.
1209         (gfc_free_association_list): Likewise.
1210         * symbol.c (free_components, gfc_free_st_label, free_st_labels):
1211         Likewise.
1212         (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
1213         (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
1214         (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
1215         (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
1216         Likewise.
1217         (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
1218         (gfc_free_namespace): Likewise.
1219         * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
1220         (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
1221         (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
1222         * trans-common.c (get_init_field, create_common): Likewise.
1223         * trans-const.c (gfc_build_wide_string_const): Likewise.
1224         (gfc_conv_string_init): Likewise.
1225         * trans-decl.c (gfc_generate_function_code): Likewise.
1226         * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
1227         Likewise.
1228         (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
1229         (gfc_trans_subarray_assign): Likewise.
1230         * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
1231         * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
1232         (transfer_namelist_element, transfer_array_component): Likewise.
1233         * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
1234         * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
1235         * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
1236         Likewise.
1237
1238 2011-04-15  Jim Meyering  <meyering@redhat.com>
1239
1240         gfortran: remove cpp definition of free, ...
1241         in preparation for the s/gfc_free/free/ transformation.
1242         * gfortran.h (free): Remove macro definition that would otherwise
1243         prevent direct use of the function.
1244
1245 2011-04-18  Tobias Burnus  <burnus@net-b.de>
1246
1247         PR fortran/18918
1248         * array.c (gfc_match_array_ref): Check for too many codimensions.
1249         * check.c (gfc_check_image_index): Check number of elements
1250         in SUB argument.
1251         * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
1252
1253 2011-04-18  Tobias Burnus  <burnus@net-b.de>
1254
1255         PR fortran/18918
1256         * iresolve.c (gfc_resolve_image_index): Set ts.type.
1257         * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
1258         are not known at compile time and handle -fcoarray=lib.
1259         * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
1260         IMAGE_INDEX.
1261         (conv_intrinsic_cobound): Fix comment typo.
1262         (trans_this_image): New function.
1263         * trans-array.c (gfc_unlikely): Move to trans.c.
1264         * trans.c (gfc_unlikely): Function moved from trans-array.c.
1265         (gfc_trans_runtime_check): Use it.
1266         * trans-io.c (gfc_trans_io_runtime_check): Ditto.
1267         * trans.h (gfc_unlikely): Add prototype.
1268
1269 2011-04-18  Paul Thomas  <pault@gcc.gnu.org>
1270
1271         PR fortran/48462
1272         * trans-expr.c (fcncall_realloc_result): Renamed version of
1273         realloc_lhs_bounds_for_intrinsic_call that does not touch the
1274         descriptor bounds anymore but makes a temporary descriptor to
1275         hold the result.
1276         (gfc_trans_arrayfunc_assign): Modify the reference to above
1277         renamed function.
1278
1279 2011-05-17  Tobias Burnus  <burnus@net-b.de>
1280
1281         PR fortran/48624
1282         * trans-decl.c (gfc_get_extern_function_decl): Fix decl
1283         for external procedures with proc arguments.
1284
1285 2011-04-15  Michael Matz  <matz@suse.de>
1286
1287         * trans-array.c (toplevel): Include gimple.h.
1288         (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
1289         properly expand variable length arrays.
1290         (gfc_trans_auto_array_allocation): If flag_stack_arrays create
1291         variable length decls and associate them with their scope.
1292         * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
1293         * options.c (gfc_init_options): Handle -fstack_arrays option.
1294         * lang.opt (fstack-arrays): Add option.
1295         * invoke.texi (Code Gen Options): Document it.
1296         * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
1297
1298 2011-04-15  Tobias Burnus  <burnus@net-b.de>
1299
1300         PR fortran/18918
1301         * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
1302         code which is also causing an ICE.
1303
1304 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1305
1306         * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
1307
1308 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1309
1310         * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
1311         calling TREE_CHAIN.
1312
1313 2011-04-12  Paul Thomas  <pault@gcc.gnu.org>
1314
1315         PR fortran/48360
1316         PR fortran/48456
1317         * trans-array.c (get_std_lbound): For derived type variables
1318         return array valued component lbound.
1319
1320 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1321
1322         * trans-decl.c (gfc_generate_function_code): Call
1323         cgraph_get_create_node instead of cgraph_node.
1324
1325 2011-04-11  Tobias Burnus  <burnus@net-b.de>
1326
1327         PR fortran/18918
1328         * simplify.c (simplify_bound_dim): Exit for
1329         ucobound's last dimension unless -fcoarray=single.
1330         * trans-array (gfc_conv_descriptor_size_1): Renamed from
1331         gfc_conv_descriptor_size, made static, has now from_dim and
1332         to_dim arguments.
1333         (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
1334         (gfc_conv_descriptor_cosize): New function.
1335         * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
1336         * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
1337         and handle last codim of ucobound for when -fcoarray is not "single".
1338
1339 2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
1340
1341         PR fortran/48448
1342         * gfortran.h (gfc_option_t):  Add warn_function_elimination and
1343         flag_frontend_optimize.
1344         * lang.opt (Wfunction-elimination):  Add.
1345         (ffrontend-optimize):  Add.
1346         * invoke.texi:  Add documentation for -Wfunction-elimination
1347         and -ffrontend-optimize.  Add -faggressive-function-elimination
1348         to list of code generation options.
1349         * frontend-passes.c (gfc_run_passes):  Run optimizations if
1350         flag_frontend_optimize is set.
1351         (warn_function_elimination):  New function.
1352         (cfe_expr_0):  Call it if requested to do so.
1353         * options.c (gfc_init_options):  Initiate warn_function_elimination
1354         and flag_frontend_optimize.
1355         (gfc_post_options):  Set flag_frontend_optimize if not specified
1356         by user, depending on the optimization level.
1357         (gfc_handle_option):  Handle -Wfunction-elimination and
1358         -ffrontend-optimize.
1359
1360 2011-04-06  Tobias Burnus  <burnus@net-b.de>
1361
1362         PR fortran/18918
1363         * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
1364         call for this_image.
1365
1366 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
1367
1368         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
1369         build_function_type_list instead of build_function_type.  Correct
1370         argument order for func_frexp and func_scalbn.
1371
1372 2011-04-05  Duncan Sands  <baldrick@free.fr>
1373
1374         * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
1375
1376 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1377
1378         * frontend-passes: (optimize_lexical_comparison): New function.
1379         (optimize_expr): Call it.
1380         (optimize_comparison): Also handle lexical comparison functions.
1381         Return false instad of -2 for unequal comparison.
1382
1383 2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
1384
1385         PR fortran/48412
1386         * frontend-passes (cfe_expr_0):  Reverse the order of going
1387         through the loops.
1388
1389 2011-04-04  Tobias Burnus  <burnus@net-b.de>
1390             Mikael Morin  <mikael.morin@sfr.fr>
1391
1392         PR fortran/18918
1393         * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
1394         * expr.c (gfc_is_coindexed): Ditto.
1395         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
1396         * interface.c (compare_parameter): Use gfc_expr_attr and
1397         gfc_is_coindexed.
1398         * resolve.c (check_dimension, compare_spec_to_ref,
1399         resolve_allocate_expr, check_data_variable): Update for
1400         DIMEN_THIS_IMAGE.
1401         * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
1402         gfc_simplify_ucobound): Allow non-constant bounds.
1403         * trans-array.c (gfc_set_loop_bounds_from_array_spec,
1404         gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
1405         gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
1406         gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
1407         gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
1408         gfc_conv_ss_startstride, gfc_conv_loop_setup,
1409         gfc_trans_array_bounds, gfc_conv_expr_descriptor,
1410         gfc_walk_variable_expr): Handle codimen.
1411         * trans-decl.c (gfc_build_qualified_array): Save cobounds.
1412         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
1413         (conv_intrinsic_cobound): New function.
1414         (gfc_conv_intrinsic_function): Call it.
1415         (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
1416         ucobound, lcobound, this_image.
1417         * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
1418         (gfc_get_dtype): Honour corank.
1419         (gfc_get_nodesc_array_type): Save corank and codimensions.
1420         (gfc_get_array_type_bounds): Save cobound.
1421         * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
1422         (gfc_array_kind): Add corank item.
1423         (GFC_TYPE_ARRAY_CORANK): New macro.
1424
1425 2011-04-03  Kai Tietz  <ktietz@redhat.com>
1426
1427         PR middle-end/48422
1428         * Make-lang.in (f95-lang.o): Add some missing dependencies.
1429
1430 2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1431
1432         PR fortran/48352
1433         * frontend-passes (cfe_register_funcs):  Don't
1434         register functions if they appear as iterators in DO loops.
1435
1436 2011-03-30  Michael Matz  <matz@suse.de>
1437
1438         PR fortran/47516
1439         * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
1440         don't use local variable.
1441         (gfc_trans_arrayfunc_assign): Adjust caller.
1442
1443 2011-03-29  Janus Weil  <janus@gcc.gnu.org>
1444
1445         PR fortran/48095
1446         * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
1447         * module.c (MOD_VERSION): Bump.
1448         (mio_typespec): Read/write 'interface' field.
1449         * primary.c (match_string_constant,match_logical_constant): Remove
1450         unneeded code.
1451         (match_complex_constant): Make sure to clear the typespec.
1452
1453 2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
1454
1455         * frontend-passes.c (create_var):  Warn about creating an
1456         array temporary if requested.
1457
1458 2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1459
1460         PR fortran/47065
1461         * frontend-passes.c (optimize_trim): Also follow references, except
1462         when they are substring references or array references.
1463
1464 2011-03-27  Tobias Burnus  <burnus@net-b.de>
1465
1466         PR fortran/18918
1467         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
1468         GFC_ISYM_NUM_IMAGES.
1469         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
1470         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
1471         rename.
1472         * invoke.texi (-fcoarray=): Document "lib" argument.
1473         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
1474         * libgfortran.h (libgfortran_stat_codes): Add comments.
1475         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
1476         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
1477         Handle GFC_FCOARRAY_LIB.
1478         * trans.h (gfc_init_coarray_decl): New prototype.
1479         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
1480         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
1481         gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
1482         gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
1483         gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
1484         New global variables.
1485         * trans-decl.c: Declare several CAF functions (cf. above).
1486         (gfc_build_builtin_function_decls): Initialize those.
1487         (gfc_init_coarray_decl): New function.
1488         (create_main_function): Call CAF init/finalize functions.
1489         * trans-intrinsic.c (trans_this_image, trans_num_images): New.
1490         (gfc_conv_intrinsic_function): Call those.
1491         * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
1492         Add code for GFC_FCOARRAY_LIB.
1493
1494 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
1495
1496         PR fortran/48291
1497         * class.c (get_unique_hashed_string): Adjust maximum allowable length
1498         for unique type string.
1499
1500 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1501
1502         * scanner.c (preprocessor_line): Use filename_cmp
1503         instead of strcmp.
1504
1505 2011-03-25  Tobias Burnus  <burnus@net-b.de>
1506
1507         PR fortran/48174
1508         PR fortran/45304
1509         * trans-types.c (gfc_get_function_type): Don't use varargs if the
1510         procedure is known to have no arguments.
1511
1512 2011-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1513
1514         PR fortran/22572
1515         * gfortran.h (gfc_option_t) : Add
1516         flag_aggressive_function_elimination.
1517         (gfc_dep_compare_functions):  Add prototype.
1518         * lang.opt: Add faggressive-function-elimination.
1519         * invoke.texi: Document -faggressive-function-elimination.
1520         * frontend_passes (expr_array):  New static variable.
1521         (expr_size):  Likewise.
1522         (expr_count):  Likewise.
1523         (current_code):  Likewise.
1524         (current_ns):  Likewise.
1525         (gfc_run_passes):  Allocate and free space for expressions.
1526         (cfe_register_funcs):  New function.
1527         (create_var):  New function.
1528         (cfc_expr_0):  New function.
1529         (cfe_code):  New function.
1530         (optimize_namespace):  Invoke gfc_code_walker with cfe_code
1531         and cfe_expr_0.
1532         * dependency.c (gfc_dep_compare_functions):  New function.
1533         (gfc_dep_compare_expr):  Use it.
1534         * options.c (gfc_init_options):  Handle
1535         flag_aggressive_function_elimination.
1536         (gfc_handle_option):  Likewise.
1537
1538 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1539
1540         * arith.c (arith_power): Plug memory leak.
1541
1542 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
1543
1544         PR fortran/48059
1545         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
1546         for polymorphic arguments.
1547
1548 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1549
1550         PR fortran/48054
1551         * intrinsic.texi: Clarify doc of logarithm functions.
1552
1553 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1554
1555         PR fortran/47552
1556         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
1557         the string length variable.
1558
1559 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
1560
1561         PR fortran/47768
1562         * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
1563         (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
1564
1565 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
1566             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1567
1568         PR fortran/47850
1569         * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
1570         the expression has an iterator.  Otherwise, iterate through the
1571         array, checking for constant expressions for each element.
1572
1573 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
1574
1575         PR libfortran/47802
1576         * intrinsic.texi: Update CTIME and FDATE documentation.
1577
1578 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1579
1580         * invoke.texi (Option Summary, Fortran Dialect Options)
1581         (Preprocessing Options, Runtime Options, Code Gen Options):
1582         Fix vertical list spacing by using @itemx for additinoal
1583         items, empty line before @table.  Fix typos.
1584
1585 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1586
1587         PR fortran/47894
1588         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1589
1590 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1591
1592         PR fortran/47846
1593         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
1594         type-spec of deferred-length strings.
1595
1596 2011-02-26  Tobias Burnus  <burnus@net-b.de>
1597
1598         PR fortran/47886
1599         * openmp.c (gfc_resolve_omp_directive): Resolve if()
1600         condition of OpenMP's task.
1601
1602 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1603
1604         PR fortran/47894
1605         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
1606
1607 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1608
1609         PR fortran/47872
1610         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
1611         multitable for linebreak between different syntax variants.
1612
1613 2011-02-24  Richard Guenther  <rguenther@suse.de>
1614
1615         PR fortran/47839
1616         * f95-lang.c (pushdecl): For externs in non-global scope push
1617         a copy of the decl into the BLOCK.
1618
1619 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
1620
1621         PR fortran/40850
1622         * trans.c (gfc_prepend_expr_to_block): New function.
1623         * trans.h (gfc_prepend_expr_to_block): Declare.
1624         * trans-array.c (gfc_conv_array_parameter): Replace
1625         gfc_add_expr_to_block with gfc_prepend_expr_to_block.
1626
1627 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
1628
1629         PR fortran/45743
1630         * trans-decl.c (gfc_get_extern_function_decl): Don't use the
1631         gsymbol backend_decl if the procedure has a formal argument
1632         that is a procedure.
1633
1634 2011-02-22  Tobias Burnus  <burnus@net-b.de>
1635
1636         PR fortran/41359
1637         * trans-stmt.c (gfc_trans_if_1): Use correct line for
1638         expressions in the if condition.
1639
1640 2011-02-20  Tobias Burnus  <burnus@net-b.de>
1641
1642         PR fortran/47797
1643         * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
1644         gfc_restore_backend_locus to have better debug locations.
1645         * trans-array.c (gfc_trans_deferred_array): Ditto.
1646
1647 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
1648
1649         PR fortran/45077
1650         PR fortran/44945
1651         * trans-types.c (gfc_get_derived_type): Remove code that looks
1652         for decls in gsym and add call to gfc_get_module_backend_decl.
1653         * trans.h : Add prototype for gfc_get_module_backend_decl.
1654         * trans-decl.c (gfc_get_module_backend_decl): New function.
1655         (gfc_get_symbol_decl): Call it.
1656
1657 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
1658
1659         PR fortran/47348
1660         * trans-array.c (get_array_ctor_all_strlen): Move up in file.
1661         (get_array_ctor_var_strlen): Add block dummy and add call to
1662         get_array_ctor_all_strlen instead of giving up on substrings.
1663         Call gcc_unreachable for default case.
1664         (get_array_ctor_strlen): Add extra argument to in call to
1665         get_array_ctor_var_strlen.
1666
1667 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1668
1669         PR fortran/47789
1670         * primary.c (gfc_match_structure_constructor): Handle empty parent
1671         types.
1672
1673 2011-02-18  Tobias Burnus
1674
1675         PR fortran/47775
1676         * trans-expr.c (arrayfunc_assign_needs_temporary): Use
1677         esym to check whether the specific procedure returns an
1678         allocatable or pointer.
1679
1680 2011-02-18  Michael Matz  <matz@suse.de>
1681
1682         PR fortran/45586
1683         * gfortran.h (struct gfc_component): Add norestrict_decl member.
1684         * trans.h (struct lang_type): Add nonrestricted_type member.
1685         * trans-expr.c (gfc_conv_component_ref): Search fields with correct
1686         parent type.
1687         * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
1688         (gfc_sym_type): Use it.
1689
1690 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1691
1692         PR fortran/47768
1693         * resolve.c (resolve_transfer): Reject variables with procedure pointer
1694         components.
1695
1696 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
1697
1698         PR fortran/47767
1699         * gfortran.h (gfc_check_access): Removed prototype.
1700         (gfc_check_symbol_access): Added prototype.
1701         * module.c (gfc_check_access): Renamed to 'check_access', made static.
1702         (gfc_check_symbol_access): New function, basically a shortcut for
1703         'check_access'.
1704         (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
1705         'gfc_check_symbol_access'.
1706         (write_operator,write_module): Renamed 'gfc_check_access'.
1707         * resolve.c (resolve_fl_procedure,resolve_fl_derived,
1708         resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
1709         'gfc_check_symbol_access'.
1710
1711 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
1712
1713         PR fortran/47745
1714         * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
1715         * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
1716         'gfc_build_class_symbol'.
1717         (gfc_match_decl_type_spec): Reject unlimited polymorphism.
1718         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
1719         * match.c (select_type_set_tmp): Move setting of 'class_ok' into
1720         'gfc_build_class_symbol'.
1721         * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
1722
1723 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
1724
1725         PR fortran/47633
1726         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
1727
1728 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1729
1730         PR fortran/47730
1731         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
1732
1733 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1734
1735         PR fortran/47728
1736         * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
1737         arrays.
1738         * primary.c (gfc_match_varspec): Avoid ICE for invalid class
1739         declaration.
1740
1741 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
1742
1743         PR fortran/47349
1744         * interface.c (get_expr_storage_size): Handle derived-type components.
1745
1746 2011-02-13  Tobias Burnus  <burnus@net-b.de>
1747
1748         PR fortran/47569
1749         * interface.c (compare_parameter): Avoid ICE with
1750         character components.
1751
1752 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
1753
1754         * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
1755         * decl.c (build_sym,build_struct,attr_decl1): Use return value of
1756         'gfc_build_class_symbol'.
1757
1758 2011-02-12  Michael Matz  <matz@suse.de>
1759             Janus Weil  <janus@gcc.gnu.org>
1760             Tobias Burnus  <burnus@net-b.de>
1761
1762         PR fortran/45586
1763         * trans-expr.c (conv_parent_component_references): Avoid unintendent
1764         skipping of parent compounds.
1765
1766 2011-02-11  Tobias Burnus  <burnus@net-b.de>
1767
1768         PR fortran/47550
1769         * resolve.c (resolve_formal_arglist): PURE with VALUE
1770         and no INTENT: Add -std= diagnostics.
1771
1772 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1773
1774         PR fortran/47352
1775         * resolve.c (resolve_procedure_interface): If interface has a result
1776         variable, copy the typespec and set result pointer to self.
1777
1778 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1779
1780         PR fortran/47463
1781         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
1782
1783 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
1784
1785         PR fortran/47637
1786         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
1787
1788 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1789
1790         * io.c (match_io_element): Do not set dt if not inquire.
1791
1792 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
1793
1794         PR fortran/45290
1795         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
1796         initialization target.
1797
1798 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
1799             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1800
1801         * gfortran.texi (Thread-safety): texinfo styling fixes.
1802         * intrinsic.texi: Likewise.
1803
1804 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1805
1806         * gfortran.texi (Compiler Characteristics): Add reference to
1807         thread-safety section.
1808
1809 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
1810
1811         * gfortran.texi (Thread-safety): New section.
1812         * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
1813         (GETENV): Likewise.
1814         (GET_ENVIRONMENT_VARIABLE): Likewise.
1815         (SYSTEM): Likewise.
1816
1817 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
1818
1819         PR fortran/47592
1820         * trans-stmt.c (gfc_trans_allocate): For deferred character
1821         length allocations with SOURCE, store to the values and string
1822         length to avoid calculating twice.  Replace gfc_start_block
1823         with gfc_init_block to avoid unnecessary contexts and to keep
1824         declarations of temporaries where they should be. Tidy up the
1825         code a bit.
1826
1827 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
1828
1829         PR fortran/42434
1830         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
1831
1832 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1833             Paul Thomas  <pault@gcc.gnu.org>
1834
1835         PR fortran/47082
1836         * trans-expr.c (gfc_trans_class_init_assign): Add call to
1837         gfc_get_derived_type.
1838         * module.c (read_cleanup): Do not use unique_symtrees for vtabs
1839         or vtypes.
1840
1841 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
1842
1843         PR fortran/47572
1844         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
1845
1846 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
1847
1848         PR fortran/47565
1849         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
1850         pointer components with allocatable result.
1851
1852 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1853
1854         PR fortran/47455
1855         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
1856         with pointer or allocatable result.
1857
1858 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
1859
1860         PR fortran/47519
1861         * trans-stmt.c (gfc_trans_allocate): Improve handling of
1862         deferred character lengths with SOURCE.
1863         * iresolve.c (gfc_resolve_repeat): Calculate character
1864         length from source length and ncopies.
1865         * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
1866         expressions for ALLOCATE.
1867
1868 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
1869
1870         PR fortran/47463
1871         * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
1872         an argument of a typebound assignment being a component.
1873
1874 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1875
1876         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
1877         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1878
1879 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1880
1881         PR fortran/47042
1882         * resolve.c (resolve_fl_procedure): Reject stmt functions
1883         with pointer/allocatable attribute.
1884
1885 2011-01-31  Tobias Burnus  <burnus@net-b.de>
1886
1887         PR fortran/47042
1888         * interface.c (gfc_procedure_use): Add explicit interface check for
1889         pointer/allocatable functions.
1890
1891 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
1892
1893         PR fortran/47523
1894         * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
1895         expr and is assigned to a deferred character length scalar,
1896         make sure that the function is called before reallocation,
1897         so that the length is available. Include procedure pointer
1898         and procedure pointer component rhs as well.
1899
1900         PR fortran/45170
1901         PR fortran/35810
1902         PR fortran/47350
1903         * gfortran.dg/allocatable_function_5.f90: New test not added by
1904         mistake on 2011-01-28.
1905
1906 2011-01-29  Tobias Burnus  <burnus@net-b.de>
1907
1908         PR fortran/47531
1909         * check.c (gfc_check_shape): Support kind argument in SHAPE.
1910         * intrinsic.c (add_functions): Ditto.
1911         * resolve.c (gfc_resolve_shape): Ditto.
1912         * simplify.c (gfc_simplify_shape): Ditto.
1913         * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
1914         gfc_simplify_shape): Update prototypes.
1915         * intrinisc.text (SHAPE): Document kind argument.
1916
1917 2011-01-28  Tobias Burnus  <burnus@net-b.de>
1918
1919         PR fortran/47507
1920         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
1921         attribute also without INTENT.
1922
1923 2011-01-28  Tobias Burnus  <burnus@net-b.de>
1924
1925         * gfortran.texi (Fortran 2003 status): Mention support for
1926         nonconstant namelist variables.
1927
1928 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
1929             Tobias Burnus  <burnus@gcc.gnu.org>
1930
1931         PR fortran/45170
1932         PR fortran/35810
1933         PR fortran/47350
1934         * interface.c (compare_actual_formal): An allocatable or pointer
1935         deferred length actual is only allowed if the formal argument
1936         is also deferred length. Clean up whitespace.
1937         * trans-expr.c (gfc_conv_procedure_call): Pass string length for
1938         deferred character length formal arguments by reference. Do the
1939         same for function results.
1940         (gfc_trans_pointer_assignment): Do not do runtime check of lhs
1941         and rhs character lengths, if deferred length lhs.  In this case
1942         set the lhs character length to that of the rhs.
1943         (gfc_conv_string_parameter): Remove assert that string length is
1944         an integer type.
1945         (is_scalar_reallocatable_lhs): New function.
1946         (alloc_scalar_allocatable_for_assignment): New function.
1947         (gfc_trans_assignment_1): Call above new function. If the rhs is
1948         a deferred character length itself, makes ure that the function
1949         is called before reallocation, so that the length is available.
1950         (gfc_trans_asssignment): Remove error about assignment to
1951         deferred length character variables.
1952         * gfortran.texi : Update entry about (re)allocation on
1953         assignment.
1954         * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
1955         length character variables.
1956         * module.c (mio_typespec): Transfer deferred characteristic.
1957         * trans-types.c (gfc_get_function_type): New code to generate
1958         hidden typelist, so that those character lengths that are
1959         passed by reference get the right type.
1960         * resolve.c (resolve_contained_fntype): Supress error for
1961         deferred character length functions.
1962         (resolve_function, resolve_fl_procedure) The same.
1963         (check_symbols): Remove the error that support for
1964         entity with deferred type parameter is not yet implemented.
1965         (resolve_fl_derived): The same.
1966         match.c (alloc_opt_list): Allow MOLD for deferred length object.
1967         * trans-decl.c (gfc_get_symbol_decl): For deferred character
1968         length dummies, generate a local variable for string length.
1969         (create_function_arglist): Hidden length can be a pointer.
1970         (gfc_trans_deferred_vars): For deferred character length
1971         results and dummies, assign the string length to the local
1972         variable from the hidden argument on entry and the other way
1973         round on exit, as appropriate.
1974
1975 2011-01-27  Tobias Burnus  <burnus@net-b.de>
1976
1977         PR fortran/47474
1978         * trans-decl.c (gfc_generate_function_code): Fix init
1979         of allocatable result variable with allocatable components.
1980
1981 2011-01-27  Tobias Burnus  <burnus@net-b.de>
1982
1983         PR fortran/47472
1984         * options.c (gfc_handle_module_path_options): Save
1985         module path without trailing slash as include path.
1986
1987 2011-01-25  Tobias Burnus  <burnus@net-b.de>
1988
1989         PR fortran/47448
1990         * interface.c (gfc_check_operator_interface): Fix
1991         defined-assignment check.
1992
1993 2011-01-23  Tobias Burnus  <burnus@net-b.de>
1994
1995         PR fortran/47421
1996         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
1997         scalar allocatable dummy arguments.
1998
1999 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
2000
2001         PR fortran/38536
2002         * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
2003         check for array sections followed by component references
2004         which are illegal.  Also check for coindexed arguments.
2005
2006 2011-01-22  Tobias Burnus  <burnus@net-b.de>
2007
2008         PR fortran/47399
2009         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
2010         PARAMETER TBP.
2011
2012 2011-01-21  Tobias Burnus  <burnus@net-b.de>
2013
2014         PR fortran/47394
2015         * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
2016         Use defined instead of magic number exit status codes.
2017         * scanner.c (include_line, gfc_new_file): Ditto.
2018
2019 2011-01-21  Tobias Burnus  <burnus@net-b.de>
2020
2021         PR fortran/47377
2022         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
2023         without pointer attribute.
2024
2025 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
2026
2027         PR fortran/47240
2028         * resolve.c (expression_rank): Fix rank of procedure poiner components.
2029         * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
2030         pointer components as actual arguments.
2031
2032 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR fortran/47331
2035         * gfortran.h (struct gfc_omp_saved_state): New type.
2036         (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
2037         * resolve.c (resolve_global_procedure): Call it around gfc_resolve
2038         call.
2039         * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
2040         functions.
2041
2042 2011-01-17  Tobias Burnus  <burnus@net-b.de>
2043
2044         PR fortran/47327
2045         * invoke.texi (Options to request or suppress errors
2046         and warnings): Fix cross link.
2047
2048 2011-01-15  Tobias Burnus  <burnus@net-b.de>
2049
2050         * gfortran.texi: Update Fortran 2003 Status section.
2051
2052         PR fortran/47177
2053         * invoke.texi: Add missing "-E" to the -dM example.
2054
2055 2011-01-13  Tobias Burnus  <burnus@net-b.de>
2056
2057         PR fortran/47268
2058         * intrinsic.texi (get_command_argument, get_environment_variable):
2059         Mark arguments as optional in the Arguments section.
2060
2061 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
2062             Tobias Burnus  <burnus@net-b.de>
2063
2064         PR fortran/47260
2065         * trans-decl.c (gfc_get_extern_function_decl,
2066         build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
2067         calling decl_attributes.
2068
2069 2011-01-13  Tobias Burnus  <burnus@net-b.de>
2070             Mikael Morin  <mikael@gcc.gnu.org>
2071
2072         PR fortran/45848
2073         PR fortran/47204
2074         * gfortran.h (gfc_code): Move union ext's case_list into
2075         the struct block.
2076         * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
2077         by "block.".
2078         * frontend-passes.c (gfc_code_walker): Ditto.
2079         * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
2080         gfc_match_type_is, gfc_match_class_is): Ditto.
2081         * resolve.c (resolve_select, resolve_select_type): Ditto.
2082         * st.c (gfc_free_statement): Ditto.
2083         * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
2084         gfc_trans_character_select): Ditto.
2085         * parse.c (resolve_all_program_units): For error recovery, avoid
2086         segfault is proc_name is NULL.
2087
2088 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
2089
2090         PR fortran/47051
2091         * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
2092         to be standard compliant by testing for shape rather than size
2093         before skipping reallocation. Improve comments.
2094
2095 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
2096
2097         PR fortran/47224
2098         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
2099         of code.
2100
2101 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2102
2103         PR fortran/38536
2104         * resolve.c (is_scalar_expr_ptr):  For a substring reference,
2105         use gfc_dep_compare_expr to compare start and end expession.
2106         Add FIXME for using gfc_deb_compare_expr elsewhere.
2107
2108 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
2109
2110         PR fortran/46313
2111         * class.c (get_unique_type_string): Make type name start with upper
2112         case letter.
2113
2114 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2115
2116         PR fortran/46405
2117         * invoke.texi:  Mention -ffree-line-length-none and
2118         -ffixed-line-length-none for preprocessing.
2119
2120 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
2121
2122         PR fortran/46896
2123         * trans-expr.c (gfc_conv_procedure_call): With a non-copying
2124         procedure argument (eg TRANSPOSE) use a temporary if there is
2125         any chance of aliasing due to host or use association.
2126         (arrayfunc_assign_needs_temporary): Correct logic for function
2127         results and do not use a temporary for implicitly PURE
2128         variables.  Use a temporary for Cray pointees.
2129         * symbol.c (gfc_add_save): Explicit SAVE not compatible with
2130         implicit pureness of containing procedure.
2131         * decl.c (match_old_style_init, gfc_match_data): Where decl
2132         would fail in PURE procedure, set implicit_pure to zero.
2133         * gfortran.h : Add implicit_pure to structure symbol_attr and
2134         add prototype for function gfc_implicit_pure.
2135         * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
2136         Where decl would fail in PURE procedure, reset implicit_pure.
2137         * io.c (match_vtag, gfc_match_open, gfc_match_close,
2138         gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
2139         * match.c (gfc_match_critical, gfc_match_stopcode,
2140         sync_statement, gfc_match_allocate, gfc_match_deallocate): The
2141         same.
2142         * parse.c (decode_omp_directive): The same.
2143         (parse_contained): If not PURE, set implicit pure attribute.
2144         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
2145         resolve_function, resolve_ordinary_assign) : The same.
2146         (gfc_implicit_pure): New function.
2147         * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
2148         to ab_attribute enum and use it in this function.
2149
2150 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
2151
2152         PR fortran/45777
2153         * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
2154         make static and move in front of its only caller, to ...
2155         * trans-array.c (symbols_could_alias): ... here.
2156         Pass information about pointer and target status as
2157         arguments.  Allocatable arrays don't alias anything
2158         unless they have the POINTER attribute.
2159         (gfc_could_be_alias):  Keep track of pointer and target
2160         status when following references.  Also check if typespecs
2161         of components match those of other components or symbols.
2162
2163 2011-01-07  Tobias Burnus  <burnus@net-b.de>
2164
2165         PR fortran/41580
2166         * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
2167         * intrinsic.c (add_functions): Use simplify functions for
2168         EXTENDS_TYPE_OF and SAME_TYPE_AS.
2169         * intrinsic.h (gfc_simplify_extends_type_of,
2170         gfc_simplify_same_type_as): New prototypes.
2171         * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
2172         gfc_simplify_same_type_as): New functions.
2173
2174 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
2175
2176         PR fortran/47189
2177         PR fortran/47194
2178         * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
2179         * class.c (gfc_class_null_initializer): Initialize _vptr to declared
2180         type.
2181         * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
2182         * resolve.c (resolve_deallocate_expr): _data component will be added
2183         at translation stage.
2184         * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
2185         * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
2186
2187 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
2188
2189         PR fortran/33117
2190         PR fortran/46478
2191         * parse.c (parse_interface): Remove check for procedure types.
2192         * interface.c (check_interface0): Verify that procedures are
2193         either all SUBROUTINEs or all FUNCTIONs.
2194
2195 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2196
2197         PR fortran/47180
2198         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
2199         'vtab' is initialized).
2200
2201 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2202
2203         PR fortran/47180
2204         * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
2205         assignment, set the _vptr component to the declared type.
2206
2207 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2208
2209         PR fortran/46017
2210         * resolve.c (resolve_allocate_deallocate): Follow references to
2211         check for duplicate occurence of allocation/deallocation objects.
2212
2213 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
2214
2215         PR fortran/47024
2216         * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
2217         of polymorphic allocatables according to their declared type.
2218
2219 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
2220
2221         PR fortran/46448
2222         * class.c (gfc_find_derived_vtab): Set the module field for the copying
2223         routine to make sure it receives module name mangling.
2224
2225 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
2226
2227         * gfortranspec.c (lang_specific_driver): Update copyright notice
2228         dates.
2229
2230 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
2231
2232         * intrinsic.texi (LEADZ): Fix example.
2233
2234 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
2235
2236         PR fortran/46408
2237         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
2238         routine.
2239
2240 \f
2241 Copyright (C) 2011 Free Software Foundation, Inc.
2242
2243 Copying and distribution of this file, with or without modification,
2244 are permitted in any medium without royalty provided the copyright
2245 notice and this notice are preserved.