OSDN Git Service

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