OSDN Git Service

f68a6cafdd91f322e83f40212889b890f524b531
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2010-04-06  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/18918
4         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
5         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
6         stat_locked_other_image, stat_stopped_image and stat_unlocked of
7         Fortran 2008.
8         * intrinsic.texi (iso_fortran_env): Ditto.
9         * libgfortran.h (libgfortran_stat_codes): New enum.
10         * module.c (use_iso_fortran_env_module): Honour -std= when loading
11         constants from the intrinsic module.
12
13 2010-04-06  Tobias Burnus  <burnus@net-b.de>
14
15         PR fortran/39997
16         * intrinsic.c (add_functions): Add num_images.
17         * decl.c (gfc_match_end): Handle END CRITICAL.
18         * intrinsic.h (gfc_simplify_num_images): Add prototype.
19         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
20         and SYNC.
21         * gfortran.h (gfc_statement): Add enum items for those.
22         (gfc_exec_op) Ditto.
23         (gfc_isym_id): Add num_images.
24         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
25         (gfc_trans_sync,gfc_trans_critical): New functions.
26         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
27         gfc_trans_critical): Add/update prototypes.
28         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
29         and SYNC statements.
30         * trans.h (gfor_fndecl_error_stop_string) Add variable.
31         * resolve.c (resolve_sync): Add function.
32         (gfc_resolve_blocks): Handle CRITICAL.
33         (resolve_code): Handle CRITICAL, ERROR STOP,
34         (resolve_branch): Add CRITICAL constraint check.
35         and SYNC statements.
36         * st.c (gfc_free_statement): Add new statements.
37         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
38         (gfc_build_builtin_function_decls): Initialize it.
39         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
40         (gfc_match_critical, gfc_match_error_stop, sync_statement,
41         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
42         New functions.
43         (match_exit_cycle): Handle CRITICAL constraint.
44         (gfc_match_stopcode): Handle ERROR STOP.
45         * match.h (gfc_match_critical, gfc_match_error_stop,
46         gfc_match_sync_all, gfc_match_sync_images,
47         gfc_match_sync_memory): Add prototype.
48         * parse.c (decode_statement, gfc_ascii_statement,
49         parse_executable): Handle new statements.
50         (parse_critical_block): New function.
51         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
52         * intrinsic.texi (num_images): Document new function.
53         * simplify.c (gfc_simplify_num_images): Add function.
54
55 2010-04-06  Tobias Burnus  <burnus@net-b.de>
56
57         PR fortran/43178
58         * trans-array.c (gfc_conv_expr_descriptor): Update
59         gfc_trans_scalar_assign call.
60         (has_default_initializer): New function.
61         (gfc_trans_deferred_array): Nullify less often.
62         * trans-expr.c (gfc_conv_subref_array_arg,
63         gfc_trans_subcomponent_assign): Update call to
64         gfc_trans_scalar_assign.
65         (gfc_trans_scalar_assign): Add parameter and pass it on.
66         (gfc_trans_assignment_1): Optionally, do not dealloc before
67         assignment.
68         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
69         call to gfc_trans_scalar_assign.
70         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
71         initializer to static variables.
72         (gfc_init_default_dt): Add dealloc parameter and pass it on.
73         * trans-stmt.c (forall_make_variable_temp,
74         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
75         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
76         gfc_trans_allocate): Update gfc_trans_assignment call.
77         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
78         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
79         parameter to prototype.
80
81 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
82
83         * ioparm.def : Update copyright.
84         * lang.opt : ditto
85         * trans-array.c : ditto
86         * trans-array.h : ditto
87         * expr.c: ditto
88         * trans-types.c: ditto
89         * dependency.c : ditto
90         * gfortran.h : ditto
91         * options.c : ditto
92         * trans-io.c : ditto
93         * trans-intrinsic.c : ditto
94         * libgfortran.h : ditto
95         * invoke.texi : ditto
96         * intrinsic.texi : ditto
97         * trans.c : ditto
98         * trans.h : ditto
99         * intrinsic.c : ditto
100         * interface.c : ditto
101         * iresolve.c : ditto
102         * trans-stmt.c : ditto
103         * trans-stmt.h : ditto
104         * parse,c : ditto
105         * match.h : ditto
106         * error.c : ditto
107
108 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
109
110         PR fortran/43450
111         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
112         do not assert the context of derived types.
113
114 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
115
116         PR fortran/43409
117         * ioparm.def: Change inquire size variable to type pointer to
118         GFC_IO_INT type.
119
120 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
121
122         PR fortran/43039
123         * trans-expr.c (conv_parent_component_references): Ensure that
124         'dt' has a backend_decl.
125
126         PR fortran/43043
127         * trans-expr.c (gfc_conv_structure): Ensure that the derived
128         type has a backend_decl.
129
130         PR fortran/43044
131         * resolve.c (resolve_global_procedure): Check that the 'cl'
132         structure is not NULL.
133
134 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
135
136         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
137         redundant tab.
138
139 2010-03-17  Tobias Burnus  <burnus@net-b.de>
140
141         PR fortran/43331
142         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
143         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
144         check.
145         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
146         pointees as having explizit size.
147         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
148         check.
149         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
150         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
151         * resolve.c (resolve_symbol): Handle cp_was_assumed.
152         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
153         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
154         pointers.
155
156 2010-03-14  Tobias Burnus  <burnus@net-b.de>
157
158         PR fortran/43362
159         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
160         (resolve_ordinary_assign): Add check to avoid segfault.
161
162 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
163
164         PR fortran/43291
165         PR fortran/43326
166         * resolve.c (resolve_compcall): Add new boolean dummy argument
167         'class_members'. Only resolve expression at end if false.
168         Remove redundant, static variable 'class_object'.
169         (check_class_members): Add extra argument to call of
170         resolve_compcall.
171         (resolve_typebound_function): Renamed resolve_class_compcall.
172         Do all the detection of class references here. Correct calls to
173         resolve_compcall for extra argument.
174         (resolve_typebound_subroutine): resolve_class_typebound_call
175         renamed. Otherwise same as resolve_typebound_function.
176         (gfc_resolve_expr): Call resolve_typebound_function.
177         (resolve_code): Call resolve_typebound_subroutine.
178
179 2010-03-10  Tobias Burnus  <burnus@net-b.de
180
181         PR fortran/43303
182         * symbol.c (get_iso_c_sym): Set sym->result.
183
184 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
185
186         PR fortran/43256
187         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
188         for TBPs, otherwise they will not be resolved properly.
189         (resolve_function): Use 'value.function.esym' instead of
190         'value.function.name' to check if we're dealing with a TBP.
191         (check_class_members): Set correct type of passed object for all TBPs,
192         not only generic ones, except if the type is abstract.
193
194 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
195
196         PR fortran/43244
197         * decl.c (gfc_match_final_decl): Make sure variable names starting with
198         'final...' are not misinterpreted as FINAL statements.
199
200 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
201
202         PR fortran/43243
203         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
204         allocatable ultimate components do not need temporaries, whilst
205         ultimate pointer components do.
206
207 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
208
209         PR fortran/43169
210         * resolve.c (resolve_code): Correctly set gfc_current_ns for
211         EXEC_SELECT_TYPE.
212         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
213         (gfc_pure): Ditto.
214
215 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
216
217         PR fortran/43180
218         * trans-array.c (gfc_conv_array_parameter): A full array of
219         derived type need not be restricted to a symbol without an
220         array spec to use the call to gfc_conv_expr_descriptor.
221
222         PR fortran/43173
223         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
224         allocatable arrays do not need temporaries.
225
226 2010-03-01  Tobias Burnus  <burnus@net-b.de>
227
228         PR fortran/43199
229         * resolve.c (find_array_spec): Handle REF_COMPONENT with
230         CLASS components.
231
232 2010-02-28  Tobias Burnus  <burnus@net-b.de>
233
234         PR fortran/43205
235         * trans-expr.c (is_zero_initializer_p): Move up in the file.
236         (gfc_conv_initializer): Handle zero initializer as special case.
237
238 2010-02-27  Tobias Burnus  <burnus@net-b.de>
239
240         PR fortran/43185
241         * resolve.c (resolve_fl_variable_derived): Imply SAVE
242         for module variables for Fortran 2008.
243
244 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
245
246         PR debug/43166
247         * trans-common.c (build_common_decl): Also update DECL_MODE,
248         and DECL_SIZE when encountering a larger common block and call
249         layout_decl.
250
251 2010-02-24  Tobias Burnus  <burnus@net-b.de>              
252
253         PR fortran/43042
254         * trans-expr.c (gfc_conv_initializer): Call directly
255         gfc_conv_constant for C_NULL_(FUN)PTR.              
256
257 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
258
259         PR fortran/43072
260         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
261         checking the rest of the dimensions for elements.
262
263 2010-02-21  Tobias Burnus  <burnus@net-b.de>
264
265         PR fortran/35259
266         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
267         * lang.opt: Ditto.
268         * option.c (gfc_init_options,gfc_handle_option): Ditto.
269         * trans-expr.c (gfc_conv_expr_op): Use the flag.
270         * invoke.texi: Document new -fno-protect-parens flag.
271
272 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
273
274         PR fortran/36932
275         PR fortran/36933
276         PR fortran/43072
277         PR fortran/43111
278         * dependency.c (gfc_check_argument_var_dependency): Use enum
279         value instead of arithmetic vaue for 'elemental'.
280         (check_data_pointer_types): New function.
281         (gfc_check_dependency): Call check_data_pointer_types.
282         * trans-array.h : Change fourth argument of
283         gfc_conv_array_parameter to boolean.
284         * trans-array.c (gfc_conv_array_parameter): A contiguous array
285         can be a dummy but it must not be assumed shape or deferred.
286         Change fourth argument to boolean. Array constructor exprs will
287         always be contiguous and do not need packing and unpacking.
288         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
289         space and change fourth argument of gfc_conv_array_parameter
290         to boolean.
291         (gfc_trans_arrayfunc_assign): Change fourth argument of
292         gfc_conv_array_parameter to boolean.
293         * trans-io.c (gfc_convert_array_to_string): The same.
294         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
295
296 2010-02-20  Tobias Burnus  <burnus@net-b.de>
297
298         PR fortran/42958
299         * libgfortran.h: Add GFC_RTCHECK_MEM.
300         * invoke.texi (-fcheck=): Document -fcheck=mem.
301         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
302         and enable malloc-success check only with -fcheck=mem.
303         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
304
305 2010-02-16  Tobias Burnus  <burnus@net-b.de>
306
307         PR fortran/43040
308         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
309         * intrinsic.c (add_functions): Ditto.
310         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
311         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
312
313 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
314
315         PR fortran/32382
316         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
317         gfc_trans_do prototype.
318         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
319         a loop exit condition.  If exit condition is given, build the loop exit
320         code, checking IO results of implied do loops in READ and WRITE.
321         (gfc_trans_do): Likewise.
322         * trans.c (trans_code): New static work function, previously
323         gfc_trans_code. Passes exit condition to gfc_trans_do.
324         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
325         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
326         * trans-io.c (build_dt): Build an exit condition to allow checking IO
327         result status bits in the dtparm structure. Use this condition in call
328         to gfc_trans_code_cond.
329
330 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
331
332         PR fortran/41113
333         PR fortran/41117
334         * trans-array.c (gfc_conv_array_parameter): Use
335         gfc_full_array_ref_p to detect full and contiguous variable
336         arrays. Full array components and contiguous arrays do not need
337         internal_pack and internal_unpack.
338
339 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
340
341         PR fortran/43030
342         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
343
344         PR fortran/43029
345         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
346         here.
347         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
348         MATCH_ERROR.
349
350 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
351             Tobias Burnus <burnus@net-b.de>
352
353         PR fortran/40823
354         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
355
356 2010-02-10  Tobias Burnus  <burnus@net-b.de>
357
358         PR fortran/43015
359         * trans-decl.c (gfc_generate_function_code): Only check
360         actual-vs.-dummy character bounds if not bind(C).
361
362 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
363
364         PR fortran/42309
365         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
366         info->dimen after info has been freed.
367
368 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
369
370         PR fortran/42999
371         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
372         with iterators.
373
374 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
375
376         * module.c (fix_mio_expr): Declare sym.
377
378 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
379
380         PR fortran/41869
381         * module.c (fix_mio_expr): Fix for private generic procedures.
382
383 2010-02-09  Daniel Kraft  <d@domob.eu>
384
385         PR fortran/39171
386         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
387         length to be correct and issue only with -Wsurprising.
388         * invoke.texi (Wsurprising): Mention this new warning that is
389         turned on by -Wsurprising.
390
391 2010-02-09  Daniel Kraft  <d@domob.eu>
392
393         PR fortran/41507
394         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
395         can be CHARACTER type.
396         (MINVAL), (MAXLOC), (MINLOC): Ditto.
397
398 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
399
400         PR fortran/42309
401         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
402         'formal_ptr'. If this is true, give returned descriptor unity
403         lbounds, in all dimensions, and the appropriate offset.
404         (gfc_conv_procedure_call); If formal is a pointer, set the last
405         argument of gfc_conv_subref_array_arg to true.
406         * trans.h : Add last argument for gfc_conv_subref_array_arg.
407         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
408         new arg of gfc_conv_subref_array_arg to false.
409         * trans-stmt.c (forall_make_variable_temp): The same.
410
411 2010-02-03  Tobias Burnus  <burnus@net-b.de>
412
413         PR fortran/42936
414         * interface.c (compare_parameter): Disable rank-checking
415         for NULL().
416
417 2010-02-02  Tobias Burnus  <burnus@net-b.de>
418
419         PR fortran/42650
420         * parse.c (decode_specification_statement): Use sym->result not sym.
421
422 2010-02-01  Tobias Burnus  <burnus@net-b.de>
423
424         PR fortran/42922
425         * decl.c (variable_decl): Allow default initializer in
426         TYPE declarations in PURE functions.
427
428 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
429
430         PR fortran/42888
431         * resolve.c (resolve_allocate_expr): Move default initialization code
432         here from gfc_trans_allocate.
433         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
434         EXEC_INIT_ASSIGN.
435         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
436         of CLASS variables via memcpy.
437         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
438         to resolve_allocate_expr.
439
440 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
441
442         PR fortran/38324
443         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
444         * gfortran.h : Add prototype for above.
445         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
446         (gfc_trans_subcomponent_assign): Call new function to replace
447         the code to deal with allocatable components.
448         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
449         gfc_get_full_arrayspec_from_expr to replace existing code.
450
451 2010-01-25  Tobias Burnus  <burnus@net-b.de>
452
453         PR fortran/42858
454         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
455         check.
456
457 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
458
459         PR fortran/41044
460         PR fortran/41167
461         * expr.c (remove_subobject_ref): If the constructor is NULL use
462         the expression as the source.
463         (simplify_const_ref): Change the type of expression if
464         there are component references.  Allow for substring to be at
465         the end of an arbitrarily long chain of references.  If an
466         element is found that is not in an EXPR_ARRAY, assume that this
467         is scalar initialization of array. Call remove_subobject_ref in
468         this case with NULL second argument.
469
470 2010-01-24  Tobias Burnus  <burnus@net-b.de>
471
472         PR fortran/39304
473         * array.c (gfc_array_dimen_size): Use correct specific
474         function in the check.
475
476 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
477
478         PR fortran/42736
479         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
480         is required, turn any trailing array elements after a range
481         into ranges so that offsets can be calculated.
482
483 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
484
485         * module.c (mio_f2k_derived): Use enumerator as initializer of
486         enum variable.
487
488         PR bootstrap/42812
489         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
490         bitfield of width 2.
491
492 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
493
494         PR fortran/42804
495         * resolve.c (extract_compcall_passed_object): Set locus for
496         passed-object argument.
497         (extract_ppc_passed_object): Set locus and correctly remove PPC
498         reference.
499
500 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
501
502         PR fortran/42783
503         * trans-decl.c (add_argument_checking): Do not use the backend
504         decl directly to test for the presence of an optional dummy
505         argument.  Use gfc_conv_expr_present, remembering to set the
506         symbol referenced.
507
508         PR fortran/42772
509         * trans-decl.c (gfc_generate_function_code): Small white space
510         changes. If 'recurcheckvar' is NULL do not try to reset it.
511
512 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
513
514         PR fortran/42545
515         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
516         component for extended types.
517         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
518         and take care of parent component accessibility.
519
520 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
521
522         PR fortran/42677
523         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
524         * interface.c (check_interface1): Move a warning message here from
525         resolve_fl_procedure.
526         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
527         * module.c (read_module): Remove call to gfc_check_interfaces, since
528         this comes too early here.
529         * resolve.c (resolve_fl_procedure): Move warning message to
530         check_interface1.
531
532 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
533
534         PR fortran/42684
535         * interface.c (check_interface1): Pass symbol name rather than NULL to
536         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
537         trap MULL.
538         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
539         than NULL to gfc_compare_interfaces.
540
541 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
542
543         PR fortran/41478
544         * trans-array.c (duplicate_allocatable):  Static version of
545         gfc_duplicate_allocatable with provision to handle scalar
546         components. New boolean argument to switch off call to malloc
547         if true.
548         (gfc_duplicate_allocatable): New function to call above with
549         new argument false.
550         (gfc_copy_allocatable_data): New function to call above with
551         new argument true.
552         (structure_alloc_comps): Do not apply indirect reference to
553         scalar pointers. Add new section to copy allocatable components
554         of arrays. Extend copying of allocatable components to include
555         scalars.
556         (gfc_copy_only_alloc_comp): New function to copy allocatable
557         component derived types, without allocating the base structure.
558         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
559         Add primitive for gfc_copy_only_alloc_comp.
560         * trans-expr.c (gfc_conv_procedure_call): After calls to
561         transformational functions with results that are derived types
562         with allocatable components, copy the components in the result.
563         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
564         of lhs derived types before allocation.
565         
566 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
567
568         PR fortran/42481
569         * module.c (load_generic_interfaces): If a procedure that is
570         use associated but not generic is given an interface that
571         includes itself, then make it generic.
572
573 2010-01-11  Joseph Myers  <joseph@codesourcery.com>  
574             Shujing Zhao  <pearly.zhao@oracle.com>
575
576         PR translation/42469
577         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
578         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
579         character between option name and help text.
580
581 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
582
583         PR fortran/20923
584         PR fortran/32489
585         * trans-array.c (gfc_conv_array_initializer): Change call to
586         gfc_error_now to call to gfc_fatal_error.
587         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
588         (is_constant_element): Changed name from constant_element.
589         (gfc_constant_ac): Only use expand_construuctor for expression
590         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
591         call gfc_is_constant_expr.
592         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
593         message.
594         * resolve.c (gfc_is_expandable_expr): New function that determiners if
595         array expressions should have their constructors expanded.
596         (gfc_resolve_expr): Use new function to determine whether or not to call
597         gfc_expand_constructor.
598
599 2010-01-09  Tobias Burnus  <burnus@net-b.de>
600
601         PR fortran/41298
602         * trans-expr.c (gfc_trans_structure_assign): Handle
603         c_null_(fun)ptr.
604         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
605         to the constructor for c_null_(fun)ptr.
606         * resolve.c (resolve_structure_cons): Add special case
607         for c_null_(fun)ptr.
608
609 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
610
611         * gfortranspec.c (lang_specific_driver): Update copyright notice
612         dates.
613
614 2010-01-08  Tobias Burnus  <burnus@net-b.de>
615
616         PR/fortran 25829
617         * symbol.c (check_conflict, gfc_copy_attr): Add
618         ASYNCHRONOUS support.
619         (gfc_add_asynchronous): New function.
620         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
621         (gfc_match_asynchronous): New function.
622         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
623         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
624         (gfc_add_asynchronous): New Prototype.
625         * module.c (ab_attribute, mio_symbol_attribute): Add
626         ASYNCHRONOUS support.
627         * resolve.c (was_declared): Ditto.
628         * match.h (gfc_match_asynchronous): New prototype.
629         * parse.c (decode_specification_statement,decode_statement):
630         Add ASYNCHRONOUS support.
631
632 2010-01-07  Tobias Burnus  <burnus@net-b.de>
633
634         PR fortran/42597
635         * trans-decl.c (get_proc_pointer_decl): Fix call to
636         gfc_conv_initializer for array-valued proc-pointer funcs.
637
638 2010-01-07  Tobias Burnus  <burnus@net-b.de>
639
640         PR fortran/41872
641         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
642         allocatable scalars with SAVE attribute.
643
644 2010-01-05  Tobias Burnus  <burnus@net-b.de>
645
646         PR fortran/42517
647         * options.c (gfc_post_options): Set -frecursion
648         when -fopenmp is used.
649
650 2010-01-05  Tobias Burnus  <burnus@net-b.de>
651
652         PR fortran/41872
653         * trans-expr.c (gfc_conv_procedure_call): Nullify
654         return value for allocatable-scalar character functions.
655
656 2010-01-04  Tobias Burnus  <burnus@net-b.de>
657
658         PR fortran/36161
659         * error.c (error_printf, gfc_warning, gfc_notify_std,
660         gfc_warning_now, gfc_error, gfc_error_now,
661         gfc_fatal_error): Change argument name from nocmsgid to
662         gmsgid to enable (x)gettext's % checking.
663
664 2010-01-04  Tobias Burnus  <burnus@net-b.de>
665         
666         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
667
668 2010-01-04  Tobias Burnus  <burnus@net-b.de>
669
670         PR fortran/41872
671         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
672         for functions returning allocatable scalars.
673         * trans-stmt.c (gfc_trans_allocate): Emmit error when
674         reallocating an allocatable scalar.
675         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
676         in comment.
677         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
678         allocatable scalars.
679         (gfc_generate_function_code): Nullify result variable for
680         allocatable scalars.
681         
682         PR fortran/40849
683         * module.c (gfc_use_module): Fix warning string to allow
684         for translation.
685
686         PR fortran/42517
687         * invoke.texi (-fcheck=recursion): Mention that the checking
688         is also disabled for -frecursive.
689         * trans-decl.c (gfc_generate_function_code): Disable
690         -fcheck=recursion when -frecursive is used.
691
692         * intrinsic.texi (iso_c_binding): Improve wording.
693
694 \f
695 Copyright (C) 2010 Free Software Foundation, Inc.
696
697 Copying and distribution of this file, with or without modification,
698 are permitted in any medium without royalty provided the copyright
699 notice and this notice are preserved.