OSDN Git Service

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