2010-12-14 Tobias Burnus <burnus@net-b.de>
[official-gcc.git] / gcc / fortran / ChangeLog
blobfd635e0fa282fc505d51148905a758cf2773dd08
1 2010-12-14  Tobias Burnus  <burnus@net-b.de>
3         PR fortran/46937
4         * trans-types.c (create_fn_spec): "."-annotate derived types
5         with (proc-)pointer components.
7 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
9         PR fortran/46874
10         * trans-openmp.c (gfc_trans_omp_array_reduction): Handle allocatable
11         dummy variables.
13 2010-12-13  Janus Weil  <janus@gcc.gnu.org>
15         PR fortran/46201
16         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
17         components called on a dimensionful base object.
19 2010-12-13  Janus Weil  <janus@gcc.gnu.org>
21         PR fortran/46841
22         * trans-expr.c (gfc_trans_subcomponent_assign): Handle array-valued
23         procedure pointer components.
25 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
27         PR fortran/46884
28         * symbol.c (gfc_new_charlen): If old_cl is non-NULL, put it
29         at the ns->old_cl_list spot in the chain rather than at
30         ns->cl_list.
32 2010-12-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
34         * dump-parse-tree.c (show_expr): Add space for parens.
36 2010-12-12  Janus Weil  <janus@gcc.gnu.org>
38         PR fortran/46809
39         * resolve.c (resolve_select_type): Set the location of the first
40         argument when generating the EXTENDS_TYPE_OF call.
42 2010-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
44         PR fortran/46705
45         * gfortran.h: New enum gfc_instring.
46         (gfc_next_char_literal): Update prototype.
47         * scanner.c (gfc_next_char_literal): Use new enum. Only give missing
48         '&' warning for INSTRING_WARN. (gfc_next_char): Use new enum.
49         (gfc_gobble_whitespace): Likewise.
50         * io.c (next_char): Use new enum. (next_char_not_space): Likewise.
51         (format_lex): Likewise.
52         * match.c (gfc_match_parens): Likewise.
53         (gfc_match_special_char): Likewise. (gfc_match_name_C): Likewise.
54         * parse.c (next_fixed): Likewise.
55         * primary.c (match_hollerith_constant): Likewise.
56         (next_string_char): Likewise.
58 2010-12-11  Tobias Burnus  <burnus@net-b.de>
60         PR fortran/46370
61         * primary.c (gfc_match_varspec): Pass information about codimension
62         to gfc_match_array_ref also for BT_CLASS.
63         * resolve.c (resolve_procedure): Correct check for C612.
65 2010-12-11  Mikael Morin   <mikael@gcc.gnu.org>
66             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
68         PR fortran/46842
69         * trans-array.c (dim_ok): New helper function.
70         (gfc_conv_expr_descriptor): Use new helper function to check
71         function array is full.
73 2010-12-10  Tobias Burnus  <burnus@net-b.de>
75         PR fortran/46540
76         * trans-types.c (gfc_init_kinds): Handle
77         --disable-libquadmath-support.
79 2010-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
81         * check.c (gfc_check_sngl): Insert missing space in error message.
83 2010-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
85         * check.c (gfc_check_float): Insert missing space in error message.
87 2010-12-07  Tobias Burnus  <burnus@net-b.de>
89         PR fortran/44352
90         * trans-expr.c (gfc_string_to_single_character): Return if not
91         POINTER_TYPE_P.
92         (gfc_trans_string_copy): gfc_build_addr_expr if src or dest is
93         not a pointer.
94         (gfc_trans_string_copy): Make sure the argument string type
95         has a string length, fix indention, and remove not needed
96         gfc_build_addr_expr.
98 2010-12-04  Daniel Kraft  <d@domob.eu>
100         PR fortran/46794
101         * trans-expr.c (gfc_conv_power_op): Handle kind of result expression
102         correctly for integer kind 1 and 2 operands.
104 2010-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
106         PR fortran/44352
107         * dump-parse-tree.c (show_symbol):  Don't show formal namespace
108         for statement functions in order to avoid infinite recursion.
110 2010-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
112         PR fortran/45159
113         * dependency.c (check_section_vs_section):  Pre-calculate
114         the relationship between the strides and the relationship
115         between the start values.  Use an integer constant one for
116         that purpose.
117         Forward dependencies for positive strides apply for where
118         the lhs start <= rhs start and lhs stride <= rhs stride
119         and vice versa for negative stride.  No need to compare
120         end expressions in either case (assume no bounds violation).
122 2010-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
124         * trans-array.c (gfc_could_be_alias):  Handle BT_CLASS
125         as well as BT_DERIVED.
126         (gfc_array_allocate):  Likewise.
127         (gfc_conv_array_parameter):  Likewise.
128         (structure_alloc_comps):  Likewise.
129         (gfc_is_reallocatable_lhs):  Likewise.
130         (gfc_trans_deferred_array):  Likewise.
132 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
134         PR fortran/46753
135         * trans-openmp.c (gfc_trans_omp_do): Use build2_loc instead of
136         fold_build2_loc for OMP_FOR conditions.
138 2010-11-30  Janne Blomqvist  <jb@gcc.gnu.org>
140         PR fortran/28105
141         * trans-array.c (gfc_unlikely): Helper function to mark boolean
142         expr as unlikely.
143         (gfc_array_index_size): Check whether the size overflows.
144         (gfc_array_allocate): Check whether size overflows and generate
145         error.
147 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
149         * trans-common.c: Don't include toplev.h.
151 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
153         * gfortran.h (alloca): Don't include definitions.
154         (NULL): Don't define.
156 2010-11-28  Janus Weil  <janus@gcc.gnu.org>
158         PR fortran/46662
159         * resolve.c (update_ppc_arglist): Add check for abstract passed object.
161 2010-11-28  Paul Thomas  <pault@gcc.gnu.org>
163          PR fortran/35810
164         * trans-array.c (gfc_trans_array_constructor): If the loop->to
165         is a VAR_DECL, assume this is dynamic. In this case, use the
166         counter to obtain the value and set loop->to appropriately.
167         (gfc_conv_ss_descriptor): Always save the offset of a variable
168         in info.saved_offset.
169         (gfc_conv_ss_startstride): Do not attempt bound checking of the
170         lhs of an assignment, if allocatable and f2003 is allowed.
171         (gfc_conv_loop_setup): If possible, do not use an allocatable
172         lhs variable for the loopspec.
173         (gfc_is_reallocatable_lhs): New function.
174         (get_std_lbound): New function.
175         (gfc_alloc_allocatable_for_assignment): New function.
176         * gfortran.h : Add flag_realloc_lhs to the options structure.
177         * lang.opt : Add option f(no-)realloc-lhs.
178         * invoke.texi : Document option f(no-)realloc-lhs.
179         * options.c (gfc_init_options, gfc_post_options,
180         gfc_handle_option): Incorporate f(no-)realloc-lhs with default
181         to frealloc_lhs for -std > f95.
182         * trans-array.h : Add primitive for previous.
183         * trans-expr.c (gfc_conv_string_length): Return if character
184         length is a variable and the expression is NULL.
185         (gfc_conv_procedure_call): If the call is of the kind x = f(...)
186         and the lhs is allocatable and reallocation on assignment OK,
187         call gfc_alloc_allocatable_for_assignment. Do not generate the
188         function call unless direct by reference.
189         (realloc_lhs_loop_for_fcn_call): New function.
190         (realloc_lhs_bounds_for_intrinsic_call): New function.
191         (gfc_trans_arrayfunc_assign): Reallocation assignments need
192         a loopinfo and for the loop bounds to be set.  With intrinsic
193         functions, free the lhs data and let the library allocate the
194         data array. Done by the new functions above.
195         (gfc_trans_assignment_1): If the lhs is allocatable and
196         reallocation on assignment is allowed, mark the lhs and use
197         gfc_alloc_allocatable_for_assignment to make the reallocation.
198         * trans.h : Add is_alloc_lhs bitfield to gfc_ss structure.
200 2010-11-27  Tobias Burnus  <burnus@net-b.de>
201             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
203         PR fortran/46678
204         trans-decl.c (gfc_trans_auto_character_variable): Use gfc_init_block
205         instead of gfc_start_block.
207 2010-11-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
209         PR fortran/46301
210         trans-expr.c (gfc_trans_assignment): Add error message for not
211         implemented assignment to deferred-length character variable.
213 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
215         PR bootstrap/45700
216         * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
217         build4_stat_loc): Removed.
218         (build1_loc, build2_loc, build3_loc, build4_loc): Removed.
220 2010-11-25  Janus Weil  <janus@gcc.gnu.org>
222         PR fortran/46581
223         * trans.h (gfc_process_block_locals): Removed second argument.
224         * trans-decl.c (trans_associate_var): Moved to trans-stmt.c.
225         (gfc_trans_deferred_vars): Skip ASSOCIATE variables.
226         (gfc_process_block_locals): Don't mark associate names to be
227         initialized.
228         * trans-stmt.c (trans_associate_var): Moved here from trans-decl.c.
229         (gfc_trans_block_construct): Call 'trans_associate_var' from here
230         to make sure SELECT TYPE with associate-name is treated correctly.
232 2010-11-24  Tobias Burnus  <burnus@net-b.de>
234         PR fortran/46638
235         * target-memory.c (gfc_interpret_derived): Correctly handle
236         component offset.
238 2010-11-23  Tobias Burnus  <burnus@net-b.de>
240         PR fortran/46545
241         * gfortran.texi (KIND Type Parameters): Quadmath and F2008 changes.
243 2010-11-22  Michael Matz  <matz@suse.de>
245         * gfortranspec.c (library): New global, moved from ...
246         (lang_specific_driver): ... here.
247         (lang_specific_pre_link): Test it here before including
248         libgfortran.spec.
250 2010-11-21  Michael Matz  <matz@suse.de>
251             Tobias Burnus  <burnus@net-b.de>
253         PR driver/46516
254         * gfortranspec.c (lang_specific_driver,
255         lang_specific_pre_link): Load libgfortran.spec in
256         lang_specific_pre_link unless found in the -L path.
258 2010-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
260         * f95-lang.c (gfc_init_decl_processing): Set size_type_node as
261         unsigned int of pointer size and set sizetype based on that.
262         * trans-types.c (gfc_init_types): Don't set size_type_node to an
263         unsigned type.
265 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
267         * f95-lang.c (gfc_be_parse_file): Take no arguments.
269 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
270             Tobias Burnus  <burnus@net-b.de>
272         PR fortran/32049
273         * gfortranspec.c (find_spec_file): New function.
274         (lang_specific_driver): Try to find .spec file and use it.
275         * trans-io.c (iocall): Define IOCALL_X_REAL128/COMPLEX128(,write).
276         (gfc_build_io_library_fndecls): Build decl for __float128 I/O.
277         (transfer_expr): Call __float128 I/O functions.
278         * trans-types.c (gfc_init_kinds): Allow kind-16 belonging
279         to __float128.
281 2010-11-15  Tobias Burnus  <burnus@net.b.de>
283         PR fortran/46484
284         * check.c (variable_check): Don't treat functions calls as variables;
285         optionally accept function themselves.
286         (gfc_check_all_any, gfc_check_loc, gfc_check_move_alloc,
287         gfc_check_null, gfc_check_present, gfc_check_cpu_time,
288         gfc_check_date_and_time, gfc_check_mvbits, gfc_check_random_number,
289         gfc_check_random_seed, gfc_check_system_clock,
290         gfc_check_dtime_etime, gfc_check_dtime_etime_sub,
291         gfc_check_itime_idate,gfc_check_ltime_gmtime): Update call.
293 2010-11-13  Tobias Burnus  <burnus@net-b.de>
295         PR fortran/45742
296         * trans-common.c (build_field): Add TREE_SIDE_EFFECTS for volatile.
297         * trans-decl.c (gfc_finish_var_decl): Ditto.
298         (create_function_arglist): Handle volatile dummy arguments.
300 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
302         * Make-lang.in (gfortranspec.o): Use $(OPTS_H).
303         * gfortran.h (gfc_handle_option): Take location_t parameter.
304         * options.c (gfc_handle_option): Take location_t parameter.
306 2010-11-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
308         PR fortran/45794
309         trans-expr.c (gfc_conv_procedure_call): Avoid NULL array spec.
310         
311 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
313         PR c/44782
314         * options.c (gfc_post_options): Initialize gfc_option.max_errors.
315         (gfc_handle_option) [OPT_fmax_errors_]: Remove.
316         * lang.opt (fmax-errors=): Remove.
318 2010-11-11  Steven G. Kargl <kargl@gcc.gnu.org>
320         * symbol.c (verify_bind_c_derived_type):  Accept BIND(C) on an empty
321         derived type.
323 2010-11-11  Jan Hubicka  <jh@suse.cz>
325         * options.c (gfc_post_options): Remove flag_whopr.
327 2010-11-11  Tobias Burnus  <burnus@net-b.de>
329         PR fortran/46413
330         * resolve.c (resolve_transfer): Reject I/O transfer of
331         polymorphic type.
333         PR fortran/46205
334         * resolve.c (resolve_code): Reject nonscalar FORALL masks.
336 2010-11-11  Janus Weil  <janus@gcc.gnu.org>
338         * resolve.c (resolve_procedure_interface): Copy 'is_bind_c' attribute.
340 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
342         * trans-array.c (gfc_trans_deferred_array): Use "front-end"
343         spelling in diagnostic.
344         * trans.c (gfc_allocate_array_with_status): Add missing space in
345         diagnostic.
347 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
349         * cpp.c (asm_file_name): Don't declare here.
351 2010-11-10  Tobias Burnus  <burnus@net-b.de>
353         PR fortran/46411
354         * intrinsic.c (gfc_intrinsic_sub_interface): Check for attr.pure
355         and not for attr.elemental.
356         * intrinsic.texi (move_alloc): Document as being pure.
358 2010-11-10  Tobias Burnus <burnus@net-b.de>
360         PR fortran/46244
361         * resolve.c (resolve_fl_derived): Don't allow CLASS in
362         sequence/BIND(C) types.
364 2010-11-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
365             Mikael Morin   <mikael@gcc.gnu.org>
367         PR fortran/46331
368         * intrinsic.c: Correctly set the pure attributes for intrinsic
369         functions.
370         * expr.c (check_specification_function): Remove this function and move
371         its code into gfc_is_constant_expr. (gfc_is_constant_expr): Change the
372         order of checks by checking for non-constant arguments first.  Then,
373         check for initialization functions, followed by intrinsics.
375 2010-11-09  Janus Weil  <janus@gcc.gnu.org>
377         PR fortran/46313
378         * gfortran.h (gfc_add_data_component,gfc_add_vptr_component,
379         gfc_add_hash_component,gfc_add_size_component,
380         gfc_add_def_init_component): New macros.
381         * class.c (gfc_add_component_ref): Renamed data component.
382         (get_unique_type_string): New function.
383         (gfc_build_class_symbol): Use 'get_unique_type_string' to construct
384         uniques names for the class containers. Rename components.
385         (gfc_find_derived_vtab): Use 'get_unique_type_string' to construct
386         uniques names for the vtab symbols. Rename components.
387         * decl.c (attr_decl1): Renamed class container components.
388         * iresolve.c (gfc_resolve_extends_type_of): Ditto.
389         * match.c (select_type_set_tmp): Renamed temporaries.
390         * module.c (read_module): Renamed vtab and vtype symbols.
391         * resolve.c (resolve_structure_cons,resolve_typebound_function,
392         resolve_typebound_subroutine,resolve_deallocate_expr,
393         resolve_select_type,resolve_fl_derived): Renamed class container and
394         vtab components.
395         * trans-array.c (structure_alloc_comps): Ditto.
396         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
397         * trans-expr.c (gfc_conv_derived_to_class,gfc_conv_structure,
398         gfc_trans_class_init_assign,gfc_trans_class_assign): Ditto.
399         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof,
400         gfc_conv_intrinsic_storage_size,gfc_conv_allocated,gfc_conv_associated,
401         gfc_conv_same_type_as): Ditto.
402         * trans-stmt.c (gfc_trans_allocate): Ditto.
404 2010-11-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
406         PR fortran/43899
407         * trans-decl.c (generate_local_decl): Do not generate unused warning
408         for variables in namelists.
410 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
412         PR fortran/46344
413         * decl.c (build_struct): Build vtab immediately if derived type
414         has already been declared.
416 2010-11-08  Janus Weil  <janus@gcc.gnu.org>
418         PR fortran/46344
419         * trans-types.c (gfc_copy_dt_decls_ifequal): Handle CLASS components.
421 2010-11-06  Janus Weil  <janus@gcc.gnu.org>
423         PR fortran/46330
424         * trans-expr.c (gfc_trans_class_assign): Find 'vtab' symbol in correct
425         namespace.
427 2010-11-05  Janus Weil  <janus@gcc.gnu.org>
429         PR fortran/45451
430         PR fortran/46174
431         * class.c (gfc_find_derived_vtab): Improved search for existing vtab.
432         Add component '$copy' to vtype symbol for polymorphic deep copying.
433         * expr.c (gfc_check_pointer_assign): Make sure the vtab is generated
434         during resolution stage.
435         * resolve.c (resolve_codes): Don't resolve code if namespace is already
436         resolved.
437         * trans-stmt.c (gfc_trans_allocate): Call '$copy' procedure for
438         polymorphic ALLOCATE statements with SOURCE.
440 2010-11-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
441             Paul Thomas  <pault@gcc.gnu.org>
443         * dump-parse-tree.c (code_indent):  Take label into acount
444         when calculating indent.
445         (show_typespec):  Also display class.
446         (show_attr):  Add module name to argument.
447         Don't show UNKNOWN for flavor, access and save. Don't show
448         SAVE_NONE.  Don't show INTENT_UNKNOWN.  Show module for use
449         association.  Show intent only for dummy arguments.
450         Set length of shown symbol names to minimum of 12.
451         Show attributes header.
452         (show_symbol):  Adjust show_level.
453         (show_symtree):  Clear up display for ambiguous.  Show if symbol
454         was imported from namespace.
455         (show_code_node):  Clear up indenting.  Traverse symtree and
456         show code directly instead of calling show_namespace.
458 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
460         * trans-decl.c (add_argument_checking): Use build_zero_cst instead of
461         fold_convert.
462         * trans-expr.c (gfc_conv_missing_dummy, fill_with_spaces): Likewise.
463         * trans-stmt.c (gfc_trans_do): Likewise.
465 2010-11-02  Steven G. Kargl  < kargl@gcc.gnu.org>
466             Tobias Burnus  <burnus@net-b.de>
468         PR fortran/45170
469         * array.c (gfc_match_array_constructor): Reject deferred type
470         parameter (DTP) in type-spec.
471         * decl.c (char_len_param_value, match_char_length,
472         gfc_match_char_spec, build_sym, variable_decl,
473         enumerator_decl): Support DTP.
474         * expr.c (check_inquiry): Fix check due to support for DTP.
475         * gfortran.h (gfc_typespec): Add Boolean 'deferred'.
476         * misc.c (gfc_clear_ts): Set it to false.
477         * match.c (gfc_match_allocate): Support DTP.
478         * resolve.c (resolve_allocate_expr): Not-implemented error for DTP.
479         (resolve_fl_variable): Add DTP constraint check.
480         * trans-decl.c (gfc_trans_deferred_vars): Add not-implemented
481         error for DTP.
483 2010-11-01  Steven G. Kargl  <kargl@gcc.gnu.org>
485         PR fortran/46152
486         * fortran/match.c (match_derived_type_spec): Reoplace gfc_match_symbol
487         with a gfc_find_symbol to prevent namespace pollution.  Remove dead
488         code.
489         (match_type_spec): Remove parsing of '::'.  Collapse character
490         kind checking to one location.
491         (gfc_match_allocate): Use correct locus in error message.
493 2010-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
495         * gfortran.h (gfc_option_t):  Replace dump_parse_tree by
496         dump_fortran_original and add dump_fortran_optimized.
497         * lang.opt: Add fdump-fortran-original and
498         fdump-fortran-optimized.  Document that fdump-parse-tree is
499         deprecated.
500         * gfortran.texi: Add -fdump-fortran-original and
501         -fdump-fortran-optimized.  -fdump-parse-tree is deprecated.
502         * frontend-passes.c (gfc_run_passes):  If optimizing and
503         if gfc_option.dump_fortran_optimized is set, dump the parse tree
504         after optimization.
505         * parse.c:  Rename gfc_option.dump_parse_tree to
506         gfc_option.dump_fortran_original.
507         * options.c (gfc_init_options):  Rename gfc_option.dump_parse_tree
508         to gfc_option.dump_fortran_original and handle
509         gfc_option.dump_fortran_optimize.
510         (gfc_post_options): Rename gfc_option.dump_parse_tree
511         to gfc_option.dump_fortran_original.
512         (gfc_handle_option):  Rename OPT_fdump_parse_tree to
513         OPT_fdump_fortran_original and gfc_option.dump_parse_tree
514         to gfc_option.dump_fortran_original.  Handle
515         OPT_fdump_fortran_optimized.
517 2010-10-30  Janus Weil  <janus@gcc.gnu.org>
519         PR fortran/44917
520         PR fortran/44926
521         PR fortran/46196
522         * interface.c (count_types_test): Symmetrize type check.
523         (generic_correspondence): Ditto.
525 2010-10-27  Janus Weil  <janus@gcc.gnu.org>
527         PR fortran/46161
528         * interface.c (compare_allocatable): Handle polymorphic allocatables.
529         (compare_parameter): Add two error messages for polymorphic dummies.
531 2010-10-26  Janus Weil  <janus@gcc.gnu.org>
533         PR fortran/42647
534         * trans.h (gfc_deallocate_scalar_with_status): New prototype.
535         * trans.c (gfc_deallocate_scalar_with_status): New function for
536         deallocation of allocatable scalars.
537         * trans-array.c (structure_alloc_comps): Call it here ...
538         * trans-decl.c (gfc_trans_deferred_vars): ... here ...
539         * trans-stmt.c (gfc_trans_deallocate): ... and here.
541 2010-10-26  Tobias Burnus  <burnus@net-b.de>
543         PR fortran/45451
544         * trans-stmt.c (gfc_trans_allocate): Do a deep-copy for SOURCE=.
546         PR fortran/43018
547         * trans-array.c (duplicate_allocatable): Use size of type and not
548         the size of the pointer to the type.
550 2010-10-25  Steven G. Kargl  <kargl@gcc.gnu.org>
552         PR fortran/46140
553         * fortran/scanner.c (include_line): Check return value of load_file.
555 2010-10-23  Tobias Burnus  <burnus@net-b.de>
557         PR fortran/46122
558         * expr.c (gfc_check_vardef_context): Fix PROTECTED check.
560 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
562         PR fortran/46060
563         * match.h (gfc_matching_ptr_assignment): New global variable to indicate
564         we're currently matching a (non-proc-)pointer assignment.
565         * decl.c (match_pointer_init): Set it.
566         * match.c (gfc_match_pointer_assignment): Ditto.
567         * primary.c (matching_actual_arglist): New global variable to indicate
568         we're currently matching an actual argument list.
569         (gfc_match_actual_arglist): Set it.
570         (gfc_match_varspec): Reject procedure pointer component calls with
571         missing argument list.
573 2010-10-21  Janus Weil  <janus@gcc.gnu.org>
575         PR fortran/46067
576         * interface.c (gfc_compare_interfaces): Switch arguments of type
577         comparison (important for polymorphic variables).
579 2010-10-21  Tobias Burnus  <burnus@net-b.de>
581         PR fortran/46100
582         * expr.c (gfc_check_vardef_context): Treat pointer functions
583         as variables.
585 2010-10-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
587         PR fortran/46079
588         * trans_stmt.c (gfc_trans_stop): Fix whitespace.  Build a call to new
589         F08 numeric stop function.
590         * trans.h: Add declaration for gfor_fndecl_stop_numeric_f08.
591         * trans-decl.c (gfc_build_builtin_function_decls): Build declaration
592         for stop_numeric_f08.
594 2010-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
596         * gfortran.h: Remove definition of bt enumerator.
597         * libgfortran.h: Add bt enumerator type alighned with defintion.
598         Remove the dtype enumerator, no longer used.
599         previously given in libgfortran/io.h
600         * trans-types.c: Use new bt enumerator.
601         * trans-io.c: Likewise.
603 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
605         * trans-io.c (gfc_build_io_library_fndecls):
606         Array descriptor arguments to transfer_array can be
607         dereferenced recursively.
609 2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
611         PR fortran/20165
612         PR fortran/31593
613         PR fortran/43665
614         * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
615         IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
616         IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
617         IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
618         (gfc_build_io_library_fndecls):  Add corresponding function
619         decls.
620         (transfer_expr):  If the current transfer is a READ, use
621         the iocall with the original version, otherwise the version
622         with _WRITE.
623         (transfer_array_desc):  Likewise.
625 2010-10-15  Tobias Burnus  <burnus@net-b.de>
627         PR fortran/45186
628         * trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes.
629         (gfc_trans_runtime_error_vararg): Remove prototype.
630         * trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions.
631         (gfc_add_modify, gfc_evaluate_now): Use them.
632         (trans_runtime_error_vararg): Renamed from
633         gfc_trans_runtime_error_vararg, made static and use locus.
634         (gfc_trans_runtime_error): Use it.
635         (gfc_trans_runtime_check): Ditto and make use of locus.
636         * trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
637         gfc_trans_do, gfc_trans_do_while): Improve line number
638         associated with generated expressions.
640 2010-10-12  Daniel Kraft  <d@domob.eu>
642         PR fortran/38936
643         * parse.c (parse_associate): Set typespec of associate-name if that of
644         the target is already available.
646 2010-10-10  Janus Weil  <janus@gcc.gnu.org>
648         PR fortran/45961
649         * resolve.c (resolve_typebound_function): Bugfix for type-bound
650         operators.
652 2010-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
654         * frontend-passes.c:  Include opts.h.
655         (optimize_comparison):  Renamed from optimize_equality.
656         Change second argument to operation to be compared.
657         Use flag_finite_math_only to avoid comparing REAL and
658         COMPLEX only when NANs are honored.  Simplify comparing
659         of string concatenations where left or right operands are
660         equal.  Simplify all comparison operations, based on the result
661         of gfc_dep_compare_expr.
662         * dependency.c:  Include arith.h.
663         (gfc_are_identical_variables):  Volatile variables should not
664         compare equal to themselves.
665         (gfc_dep_compare_expr):  Handle string constants and string
666         concatenations.
668 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
670         * f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
671         * gfortran.h (gfc_init_options_struct): Declare.
672         * options.c (gfc_init_options_struct): New.  Split out from
673         gfc_init_options.
675 2010-10-07  Janus Weil  <janus@gcc.gnu.org>
677         PR fortran/45933
678         * resolve.c (resolve_typebound_function): Use correct declared type
679         for type-bound operators.
681 2010-10-07  Mikael Morin  <mikael@gcc.gnu.org>
683         PR fortran/45916
684         Revert revision 165026:
685         2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
687         * decl.c (match_procedure_in_type): Assertify if conditions.
689 2010-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
691         PR fortran/45889
692         * resolve.c (resolve_transfer): Use expression inside parenthesis to
693         find acutal component to be transgferred.
695 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
697         * trans-stmt.c (gfc_trans_allocate): free lhs expr.
699 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
701         * trans-array.c (gfc_free_ss_chain): Made non-static.
702         * trans-array.h (gfc_free_ss_chain): New prototype.
703         * trans-stmt.c (gfc_trans_where_2): Free ss chains.
705 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
707         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's
708         subcomponents.
710 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
712         * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.
714 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
716         * trans-expr.c (get_proc_ptr_comp): Restore initial expression type
717         before calling gfc_free_expr.
719 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
721         * trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to
722         gfc_advance_se_ss_chain.
723         * trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call,
724         gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove
725         calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref.
726         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
727         * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
729 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
731         * trans.c (gfc_restore_backend_locus): New function.
732         (gfc_get_backend_locus): Renamed to ...
733         (gfc_save_backend_locus): ... this.
734         * trans.h (gfc_restore_backend_locus, gfc_get_backend_locus,
735         gfc_save_backend_locus): Same.
736         * trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
737         gfc_trans_deferred_array): Rename gfc_get_backend_locus to
738         gfc_save_backend_locus.
739         (gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the
740         end.
741         (gfc_trans_g77_array, gfc_trans_deferred_array): Use
742         gfc_restore_backend_locus instead of gfc_set_backend_locus.
743         (gfc_trans_deferred_array): Call gfc_restore_backend_locus on early
744         return.
745         * trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks,
746         gfc_trans_deferred_vars):
747         Rename gfc_get_backend_locus to gfc_save_backend_locus.
748         Use gfc_restore_backend_locus insted of gfc_set_backend_locus.
750 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
752         * trans-array.c (gfc_build_constant_array_constructor): Free array
753         spec when done.
755 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
757         * symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list
758         before overwriting it.
760 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
762         * array.c (gfc_match_array_spec): Don't re-initialize cleared struct.
763         * symbol.c (gen_shape_param): Ditto.
765 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
767         * symbol.c (free_entry_list): New function.
768         (gfc_free_namespace): Free list of entries.
770 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
772         * symbol.c (free_components): Free list of formal args and formal
773         namespace.
775 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
777         * simplify.c (gfc_simplify_size): Clear temporary mpz int before
778         returning.
780 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
782         * resolve.c (add_dt_to_dt_list): Remove unneeded if.
784 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
786         * resolve.c (check_typebound_baseobject): Free local expr before
787         returning.
789 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
791         * primary.c (gfc_match_structure_constructor): Invert the assert logic.
793 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
795         * primary.c (gfc_free_structure_ctor_component): Also free the
796         component structure itself.
798 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
800         * module.c (gfc_use_module): Free atom_string when done with it.
802 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
804         * module.c (read_module): Remove useless string duplication.
806 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
808         * gfortranspec.c (append_arg): Remove commented code.
810 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
812         * decl.c (match_procedure_in_type): Assertify if conditions.
814 2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
816         * cpp.c (gfc_cpp_post_options): Don't create a cpp reader if
817         preprocessing is disabled.
819 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
821         PR middle-end/45838
822         * f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST,
823         ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define.
824         (gfc_define_builtin): Change last argument to int bitmask from bool,
825         control addition of TREE_NOTHROW and leaf attribute as well.
826         (DO_DEFINE_MATH_BUILTIN): Adjust callers.
827         (gfc_init_builtin_functions): Likewise.  Remove
828         ATTR_{,CONST_}NOTHROW_LIST enum.
830 2010-10-04  Andi Kleen <ak@linux.intel.com>
832         * Make-lang.in (gfortran, f951): Add + to build rule.
834 2010-10-04  Richard Guenther  <rguenther@suse.de>
836         * f95-lang.c (current_translation_unit): New global variable.
837         (gfc_create_decls): Build a translation-unit decl.
838         (pushdecl): In the global binding-level use the
839         translation-unit decl as DECL_CONTEXT.
840         * trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
841         (build_function_decl): Likewise.  Delay setting the assembler
842         name, leave setting of DECL_CONTEXT to pushdecl.
843         (trans_function_start): Use DECL_FILE_SCOPE_P.
844         (gfc_create_module_variable): Likewise.  Remove questionable
845         asserts.
846         * trans.c (gfc_generate_module_code): Likewise.
848 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
850         * cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c
851         instead of duplicating code.
852         * Make-lang.in: Add dependency on cppbuiltin.h. Don't define
853         BASEVER.
855 2010-10-02  Janus Weil  <janus@gcc.gnu.org>
857         PR fortran/45748
858         * resolve.c (resolve_formal_arglist): Avoid setting default type for
859         formal arguments of intrinsic procedures.
861 2010-09-30  Janus Weil  <janus@gcc.gnu.org>
863         PR fortran/45828
864         * resolve.c (resolve_allocate_expr): Do not use
865         'gfc_has_default_initializer'.
867 2010-09-30  Tobias Burnus  <burnus@net-b.de>
869         * gfortran.tex (Fortran 2008 status): Update list of
870         implemented features.
872 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
874         * lang.opt: Don't use VarExists.
876 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
878         * cpp.c (cpp_define_builtins): Update names of gfc_option_t
879         members.
880         (gfc_cpp_post_options): Update names of cpp_options members.
881         (cb_cpp_error): Update names of diagnostic_context members.
882         * f95-lang.c (gfc_init_builtin_functions): Update names of
883         gfc_option_t members.
884         * gfortran.h (gfc_option_t): Rename warn_conversion and
885         flag_openmp.
886         * intrinsic.c (gfc_convert_type_warn): Update names of
887         gfc_option_t members.
888         * options.c (gfc_init_options, gfc_post_options, set_Wall,
889         gfc_handle_option): Update names of gfc_option_t members.
890         * parse.c (next_free, next_fixed): Update names of gfc_option_t
891         members.
892         * scanner.c (pedantic): Remove extern declaration.
893         (skip_free_comments, skip_fixed_comments, include_line): Update
894         names of gfc_option_t members.
895         * trans-decl.c (gfc_generate_function_code): Update names of
896         gfc_option_t members.
898 2010-09-28  Tobias Burnus  <burnus@net-b.de>
900         PR fortran/40569
901         PR fortran/40568
902         * intrinsic.c (add_functions): Make compiler_version and
903         compiler_options CLASS_INQUIRY.
904         * gfortran.h (gfc_get_option_string): New prototype.
905         * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
906         Add documentation.
907         (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
908         (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
909         (ISO_C_BINDING): Refer to C_SIZEOF.
910         * options.c (gfc_get_option_string): New function.
911         * simplify.c (gfc_simplify_compiler_options): Use it.
912         (gfc_simplify_compiler_version): Include compiler name.
914 2010-09-28  Jan Hubicka  <jh@suse.cz>
916         * f95-lang.c (gfc_define_builtin): Make leaf.
917         (gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST
918         and ATTR_NOTHROW_LEAF_LIST.
919         (DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST.
920         (DEF_GOMP_BUILTIN): Likewise.
922 2010-09-28  Tobias Burnus  <burnus@net-b.de>
924         PR fortran/45756
925         * trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of
926         module parameters.
928 2010-09-27  Tobias Burnus  <burnus@net-b.de>
930         PR fortran/40569
931         PR fortran/40568
932         * intrinsic.h (gfc_simplify_compiler_options,
933         gfc_simplify_compiler_version): New prototypes.
934         * intrinsic.c (gfc_intrinsic_function_by_id,
935         make_from_module): New functions.
936         (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
937         gfc_specific_intrinsic): Don't return module intrinsics.
938         (add_functions): Add compiler_options, compiler_version.
939         (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
940         * symbol.c (std_for_isocbinding_symbol): Add version check for
941         NAMED_FUNCTIONS.
942         * iso-fortran-env.def: Add compiler_options, compiler_version.
943         * iso-c-binding.def: Add c_sizeof.
944         * gfortran.h (gfc_intrinsic_sym): Add from_module:1.
945         (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
946         (gfc_intrinsic_function_by_id): New prototype.
947         * module.c (create_intrinsic_function): New function.
948         (import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
949         * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
950         * resolve.c (resolve_intrinsic): Try also to resolve intrinsics
951         by ISYM ID.
952         * simplify.c (gfc_simplify_compiler_options,
953         gfc_simplify_compiler_version): New functions.
955 2010-09-26  Daniel Kraft  <d@domob.eu>
957         PR fortran/45783
958         PR fortran/45795
959         * resolve.c (resolve_select_type): Clarify code.
960         (resolve_assoc_var): Only set typespec if it is currently unknown.
962 2010-09-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
964         PR fortran/45793
965         * module.c (create_int_parameter_array): Set the array value shape.
967 2010-09-25  Tobias Burnus  <burnus@net-b.de>
969         * gfortran.texi: Re-add accidently removed \input line.
971 2010-09-25  Daniel Kraft  <d@domob.eu>
973         PR fortran/45776
974         * gfortran.h (struct gfc_dt): New member `dt_io_kind'.
975         * io.c (resolve_tag): F2008 check for NEWUNIT and variable
976         definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
977         (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
978         `extra_comma' with changed semantics.
979         (gfc_resolve_dt): Check variable definitions.
980         (match_io_element): Remove INTENT and PURE checks here and
981         initialize code->ext.dt member.
982         (match_io): Set dt->dt_io_kind.
983         (gfc_resolve_inquire): Check variable definition for all tags
984         except UNIT, FILE and ID.
985         * resolve.c (resolve_transfer): Variable definition check.
987 2010-09-25  Tobias Burnus  <burnus@net-b.de>
989         * interface.c (gfc_match_end_interface): Constify char pointer
990         to fix warning.
992 2010-09-24  Steven G. Kargl  < kargl@gcc.gnu.org>
994         * interface.c (gfc_match_end_interface): Deal with user defined
995         operators that overload rational operators and C1202.
997 2010-09-24  Tobias Burnus  <burnus@net-b.de>
999         * gfortran.texi: Add second space after end-of-sentence period;
1000         change / to /@/ to allow hyphenation of URLs.
1001         (Standards): Remove duplicated OpenMP, update wording given that
1002         Fortran 2008 now released.
1003         (Fortran 2008 status): Update and add list of implemented features.
1005 2010-09-24  Tobias Burnus  <burnus@net-b.de>
1007         PR fortran/40571
1008         * iso-fortran-env.def: Add NAMED_KINDARRAY with
1009         character_kinds, integer_kinds, logical_kinds and
1010         real_kinds.
1011         * gfortran.h: Add them to iso_fortran_env_symbol.
1012         * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
1013         LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
1014         libgfortran_stat_codes to libgfortran_error_codes.
1015         * module.c (create_int_parameter_array): New function.
1016         (use_iso_fortran_env_module): Use it for
1017         NAMED_KINDARRAY of iso-fortran-env.def.
1018         * trans-decl.c (gfc_get_symbol_decl): Parameter
1019         arrays of intrinsics modules become local static variables.
1020         * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
1021         integer_kinds, logical_kinds and real_kinds.
1023 2010-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
1025         PR fortran/45744
1026         * frontend-passes.c (optimize_binop_array_assignment):
1027         Only re-use lhs as intermediate storage if kind and type
1028         parameters match.
1030 2010-09-23  Mikael Morin  <mikael@gcc.gnu.org>
1032         PR fortran/45745
1033         PR fortran/45648
1034         * trans-array.c (gfc_conv_expr_descriptor): Handle
1035         ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
1037 2010-09-23  Tobias Burnus  <burnus@net-b.de>
1039         * intrinsic.texi (OpenMP modules): Add named constants of
1040         OMP_LIB.
1042 2010-09-23  Daniel Kraft  <d@domob.eu>
1044         PR fortran/38936
1045         PR fortran/44044
1046         PR fortran/45474
1047         * gfortran.h (gfc_check_vardef_context): New method.
1048         (struct symbol_attribute): New flag `select_type_temporary'.
1049         * primary.c (gfc_variable_attr): Clarify initialization of ref.
1050         (match_variable): Remove PROTECTED check and assignment check
1051         for PARAMETERs (this is now done later).
1052         * match.c (gfc_match_iterator): Remove INTENT(IN) check.
1053         (gfc_match_associate): Defer initialization of newAssoc->variable.
1054         (gfc_match_nullify): Remove PURE definability check.
1055         (select_type_set_tmp): Set new `select_type_temporary' flag.
1056         * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
1057         (gfc_check_pointer_assign): Ditto (and other checks removed).
1058         (gfc_check_vardef_context): New method.
1059         * interface.c (compare_parameter_protected): Removed.
1060         (compare_actual_formal): Use `gfc_check_vardef_context' for checks
1061         related to INTENT([IN]OUT) arguments.
1062         * intrinsic.c (check_arglist): Check INTENT for intrinsics.
1063         * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
1064         (remove_last_array_ref): New method.
1065         (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
1066         (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
1067         (resolve_assoc_var): Remove checks for definability here.
1068         (resolve_select_type): Handle resolving of code->block here.
1069         (resolve_ordinary_assign): Remove PURE check.
1070         (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
1071         Use `gfc_check_vardef_context' for assignments and pointer-assignments.
1073 2010-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1075         * gfortran.texi (Argument list functions): Allow URL to wrap.
1076         * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
1077         (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
1078         (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
1079         code markups in the text.
1080         * invoke.texi (Fortran Dialect Options)
1081         (Error and Warning Options, Directory Options, Code Gen Options):
1082         Likewise.  Remove @code inside @smallexample.
1084 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
1086         * gfortranspec.c (lang_specific_driver): Handle OPT__version and
1087         OPT__help instead of OPT_fversion and OPT_fhelp.
1088         * lang.opt (-all-warnings, -assert, -assert=, -comments,
1089         -comments-in-macros, -define-macro, -define-macro=, -dependencies,
1090         -dump, -dump=, -include-barrier, -include-directory,
1091         -include-directory=, -include-directory-after,
1092         -include-directory-after=, -include-prefix, -include-prefix=,
1093         -no-line-commands, -no-standard-includes, -output, -output=,
1094         -preprocess, -print-missing-file-dependencies, -trace-includes,
1095         -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
1096         -write-dependencies, -write-user-dependencies): New.
1098 2010-09-21  Jason Blevins  <jrblevin@sdf.org>
1100         * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
1101         execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
1102         Correct spelling.
1104 2010-09-21  Mikael Morin  <mikael@gcc.gnu.org>
1106         PR fortran/45648
1107         * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
1108         info->dim.
1110         PR fortran/45648
1111         * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
1112         accessing dimensions in reversed order. 
1114         PR fortran/45648
1115         * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
1116         intrinsic function call. 
1118         * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
1119         Update asserts accordingly.
1121         PR fortran/45648
1122         * trans.h (gfc_se): New field force_tmp. 
1123         * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
1124         and set parmse.force_tmp if some alias is found. 
1125         * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
1126         if se->force_tmp is set. 
1128 2010-09-20  Janus Weil  <janus@gcc.gnu.org>
1130         PR fortran/45438
1131         * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
1132         TBPs, PPCs and pointer/allocatable components.
1134 2010-09-20  Paul Thomas  <pault@gcc.gnu.org>
1136         PR fortran/45081
1137         * simplify.c (is_constant_array_expr): Allow structure array
1138         elements as well as constants.
1139         (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
1140         gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
1141         type of source to the result.
1143 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1145         * frontend-passes.c (gfc_expr_walker):  Also
1146         handle EXPR_SUBSTRING.
1148 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
1150         * frontend-passes.c (gfc_expr_walker):  Handle
1151         constructors and references.
1153 2010-09-16  Tobias Burnus  <burnus@net-b.de>
1155         PR fortran/43665
1156         * trans-types.c (create_fn_spec): New function.
1157         (gfc_get_function_type): Call it.
1159 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
1161         * gfortran.h (walk_code_fn_t, walk_expr_fn_t): New types.
1162         (gfc_expr_walker, gfc_code_walker): New prototypes.
1163         * frontend-passes.c (gfc_expr_walker, gfc_code_walker): New functions.
1164         (WALK_SUBEXPR, WALK_SUBEXPR_TAIL, WALK_SUBCODE): Define.
1165         (optimize_namespace): Use gfc_code_walker.
1166         (optimize_code, optimize_expr): Rewritten as gfc_code_walker hooks.
1167         (optimize_expr_0, optimize_code_node,
1168         optimize_actual_arglist): Removed.
1169         (optimize_assignment): Don't call optimize_expr_0.
1171 2010-09-16  Janus Weil  <janus@gcc.gnu.org>
1173         PR fortran/45674
1174         * interface.c (compare_parameter): Create vtab for actual argument,
1175         instead of formal (if needed).
1177 2010-09-15  Janus Weil  <janus@gcc.gnu.org>
1179         PR fortran/45577
1180         * resolve.c (resolve_allocate_expr): Do default initialization via
1181         EXEC_INIT_ASSIGN.
1183 2010-09-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1185         * mathbuiltins.def: Do not defined huge_val built-in.
1186         * trans-const.c (gfc_build_inf_or_huge): New function.
1187         * trans-const.h (gfc_build_inf_or_huge): New prototype.
1188         * f95-lang.c (gfc_init_builtin_functions): Don't defined
1189         huge_val built-ins.
1190         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
1191         have functions of type (*) (void) anymore.
1192         (gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
1193         (gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
1194         of generating a call to huge_val().
1196 2010-09-11  Mikael Morin  <mikael@gcc.gnu.org>
1198         * gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
1199         * dependency.c (gfc_check_dependency): Don't depend on
1200         expr's inline_noncopying_intrinsic_attribute.
1201         * dependency.c (gfc_check_argument_var_dependency,
1202         gfc_check_argument_dependency): Ditto. Recursively check dependency
1203         as NOT_ELEMENTAL in the non-copying (=transpose) case.
1204         * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
1205         * resolve.c (find_noncopying_intrinsics): Remove.
1206         (resolve_function, resolve_call): Remove call to
1207         find_noncopying_intrinsics.
1209         * trans-array.c (gfc_conv_array_transpose): Remove.
1210         (gfc_walk_subexpr): Make non-static. Move prototype...
1211         * trans-array.h (gfc_walk_subexpr): ... here.
1212         * trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
1213         handling.
1214         (walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
1215         gfc_inline_intrinsic_function_p): New.
1216         (gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
1217         Remove transpose from the libcall list.
1218         (gfc_walk_intrinsic_function): Special case inline intrinsic.
1219         * trans.h (gfc_inline_intrinsic_function_p): New prototype.
1221 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
1223         * trans-expr.c (expr_is_variable): New function taking non-copying
1224         intrinsic functions into account.
1225         (gfc_trans_assignment_1): Use expr_is_variable.
1227 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
1229         * trans-array.c (gfc_conv_loop_setup): Access the shape along the
1230         real array dimension instead of the scalarizer (loop) dimension.
1232 2010-09-10  Mikael Morin  <mikael@gcc.gnu.org>
1234         * trans-array.c (gfc_conv_resolve_dependencies): Handle same-array
1235         transposed references.
1237 2010-09-10  Tobias Burnus  <burnus@net-b.de>
1239         PR fortran/45186
1240         * trans.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
1241         build4_stat_loc): New inline functions.
1242         (build1_loc, build2_loc, build3_loc, build4_loc): New macros.
1243         (build1_v, build2_v, build3_v, build4_v): Use input_location
1244         as locus.
1245         * trans-array.c (gfc_trans_scalarized_loop_end,
1246         gfc_conv_array_parameter): Replace build[1-4] by build[1-4]_loc.
1247         * trans.c (gfc_build_addr_expr, gfc_build_array_ref,
1248         gfc_finish_wrapped_block): Ditto.
1249         * trans-decl.c (gfc_init_default_dt, init_intent_out_dt): Ditto.
1250         * trans-expr.c (gfc_conv_missing_dummy,
1251         gfc_trans_alloc_subarray_assign, gfc_trans_zero_assign): Ditto.
1252         * trans-openmp.c (gfc_omp_clause_default_ctor,
1253         gfc_trans_omp_critical, gfc_trans_omp_parallel,
1254         gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
1255         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections
1256         gfc_trans_omp_single, gfc_trans_omp_task,
1257         gfc_trans_omp_workshare): Ditto.
1259 2010-09-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1261         * fortran/expr.c (check_inquiry): OPTIONAL attribute is not allowed
1262         for dummy argument that appears in a specification statement.
1264 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1266         * trans-array.c (gfc_get_array_ref_dim): New function.
1267         (gfc_trans_create_temp_array): Reconstruct array
1268         bounds from loop bounds. Use array bounds instead of loop bounds.
1270 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1272         * trans-array.c (gfc_set_loop_bounds_from_array_spec):
1273         Get the array dimension from the dim array.
1275 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1277         * trans-array.c (gfc_trans_preloop_setup): Unconditionally use the
1278         dim array to get the stride in the innermost loop.
1280 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1282         * trans-array.c (gfc_trans_create_temp_array): Don't set dim array.
1283         (gfc_conv_loop_setup, gfc_walk_function_expr): Set dim array.
1284         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
1286 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1288         * trans-array.c (gfc_trans_create_temp_array): Assert loop dimension
1289         and info dimension are the same. Loop over loop dimension.
1290         * trans-stmt.c (gfc_conv_elemental_dependencies): Set loop dimension
1292 2010-09-09  Mikael Morin  <mikael@gcc.gnu.org>
1294         * trans-array.c (gfc_conv_array_transpose): Change generated descriptor
1295         name
1297 2010-09-09  Tobias Burnus  <burnus@net-b.de>
1299         PR fortran/43665
1300         * intrincic.texi (FGET, FGETC, FPUT, FPUTC, FSTAT, GETCWD, KILL,
1301         STAT): Show also syntax for the function version.
1302         * intrinsic.c (add_sym_1s_intent, add_sym_2s_intent,
1303          add_sym_3s_intent): Remove function.
1304         (add_sym_1s, add_sym_2s, add_sym_3s): Take always the intent
1305         as argument.
1306         (add_sym_2_intent): New function.
1307         (add_functions): Set intent for functions which modify
1308         the argument: fstat, fgetc, fget, hostnm, lstat, stat. Change
1309         argument name of hostnm from "a" to "c"
1310         (add_subroutines): Change add_sym_*s_intent to
1311         add_sym_*s and add intent to the add_sym_*s calls.
1313 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1315         PR fortran/38282
1316         * intrinsic.c (add_functions): Add B{G,L}{E,T}, DSHIFT{L,R},
1317         MASK{L,R}, MERGE_BITS and SHIFT{A,L,R}.
1318         * gfortran.h: Define ISYM values for above intrinsics.
1319         * intrinsic.h (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
1320         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift,
1321         gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
1322         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
1323         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
1324         gfc_simplify_merge_bits, gfc_simplify_rshift,
1325         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr,
1326         gfc_resolve_dshift, gfc_resolve_mask, gfc_resolve_merge_bits,
1327         gfc_resolve_shift): New prototypes.
1328         * iresolve.c (gfc_resolve_dshift, gfc_resolve_mask,
1329         gfc_resolve_merge_bits, gfc_resolve_shift): New functions.
1330         * check.c (gfc_check_bge_bgt_ble_blt, gfc_check_dshift,
1331         gfc_check_mask, gfc_check_merge_bits, gfc_check_shift): New
1332         functions.
1333         * trans-intrinsic.c (gfc_conv_intrinsic_dshift,
1334         gfc_conv_intrinsic_bitcomp, gfc_conv_intrinsic_shift,
1335         gfc_conv_intrinsic_merge_bits, gfc_conv_intrinsic_mask): New
1336         functions.
1337         (gfc_conv_intrinsic_function): Call above static functions.
1338         * intrinsic.texi: Document new intrinsics.
1339         * simplify.c (gfc_simplify_bge, gfc_simplify_bgt, gfc_simplify_ble,
1340         gfc_simplify_blt, gfc_simplify_dshiftl, gfc_simplify_dshiftr,
1341         gfc_simplify_lshift, gfc_simplify_maskl, gfc_simplify_maskr,
1342         gfc_simplify_merge_bits, gfc_simplify_rshift, 
1343         gfc_simplify_shifta, gfc_simplify_shiftl, gfc_simplify_shiftr):
1344         New functions.
1346 2010-09-08  Jakub Jelinek  <jakub@redhat.com>
1348         * frontend-passes.c (optimize_code_node): Walk block chain by default.
1350         PR fortran/45597
1351         * trans-openmp.c (gfc_trans_omp_do): Store exit/cycle labels on code
1352         instead of code->block.
1354         PR fortran/45595
1355         * openmp.c (resolve_omp_do): Report not enough do loops for
1356         collapse even if block->next is NULL.
1358 2010-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1360         PR fortran/45576
1361         * dependency.c (gfc_deb_compare_expr):  Take missing optional
1362         arguments into account.
1364 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1366         * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
1367         * trans-decl.c (gfor_fndecl_clz128, gfor_fndecl_ctz128): Remove.
1368         (gfc_build_intrinsic_function_decls): Don't build the
1369         gfor_fndecl_clz128 and gfor_fndecl_ctz128.
1370         * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
1371         gfc_conv_intrinsic_trailz): Generate inline arithmetic instead
1372         of calling clz128/ctz128 library functions.
1374 2010-09-07  Jan Hubicka  <jh@suse.cz>
1376         * trans-expr.c (gfc_conv_initializer): Set STATIC flags for
1377         initializers.
1379 2010-09-07  Tobias Burnus <burnus@net-b.de>
1380         
1381         PR fortran/45583
1382         * intrinsic.texi (COS): Remove superfluous "n".
1384 2010-09-07  Tobias Burnus <burnus@net-b.de>
1386         PR fortran/45186
1387         * trans-array.c (gfc_conv_descriptor_data_get,
1388         gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr,
1389         gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype,
1390         gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride,
1391         gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound,
1392         gfc_conv_shift_descriptor_lbound,
1393         gfc_set_loop_bounds_from_array_spec,
1394         gfc_trans_allocate_array_storage, gfc_trans_create_temp_array,
1395         gfc_conv_array_transpose, gfc_get_iteration_count,
1396         gfc_grow_array, gfc_trans_array_ctor_element,
1397         gfc_trans_array_constructor_subarray,
1398         gfc_trans_array_constructor_value,
1399         constant_array_constructor_loop_size, gfc_trans_array_constructor,
1400         gfc_set_vector_loop_bounds, gfc_trans_array_bound_check,
1401         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
1402         gfc_conv_array_ref, gfc_trans_preloop_setup,
1403         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
1404         gfc_conv_loop_setup, gfc_conv_array_extent_dim,
1405         gfc_conv_descriptor_size, gfc_array_init_size,
1406         gfc_array_allocate, gfc_array_deallocate,
1407         gfc_trans_array_bounds, gfc_trans_auto_array_allocation,
1408         gfc_trans_dummy_array_bias, gfc_get_dataptr_offset,
1409         get_array_charlen, gfc_conv_expr_descriptor,
1410         array_parameter_size, gfc_conv_array_parameter,
1411         gfc_trans_dealloc_allocated, get_full_array_size,
1412         duplicate_allocatable,
1413         structure_alloc_comps): Change fold_build[0-9] to
1414         fold_build[0-9]_loc.
1415         (duplicate_allocatable, structure_alloc_comps,
1416         gfc_duplicate_allocatable): Add space after function name.
1418 2010-09-07  Mikael Morin  <mikael@gcc.gnu.org>
1420         * trans-stmt.c (gfc_trans_character_select): Be conversion-safe while
1421         checking string length value.
1422         * trans-intrinsic.c (gfc_conv_intrinsic_char): Build integer using
1423         gfc_charlen_type_node type.
1425         PR fortran/45564
1426         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert string
1427         length to gfc_charlen_type_node.
1429 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1431         PR fortran/36931
1432         * frontend-passes.c (optimize_binop_array_assignment):  New
1433         function.
1434         (optimize_assignment):  Call it.
1436 2010-09-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
1438         PR fortran/34145
1439         * trans-expr.c (gfc_conv_substring):  If start and end
1440         of the string reference are equal, set the length to one.
1442 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1444         PR fortran/45560
1445         * dump-parse-tree.c (gfc_debug_expr): Use stderr instead of stdout.
1447 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1449         PR fortran/45560
1450         * dump-parse-tree.c (gfc_debug_expr): New function.
1452 2010-09-06  Tobias Burnus  <burnus@net-b.de>
1454         PR fortran/38282
1455         * intrinsic.c (add_functions): Support IALL, IANY, IPARITY.
1456         (check_specific): Special case for those intrinsics.
1457         * gfortran.h (gfc_isym_id): Add new intrinsics
1458         * intrinsic.h (gfc_check_transf_bit_intrins,
1459         gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
1460         gfc_resolve_iall, gfc_resolve_iany, gfc_resolve_iparity):
1461         New prototypes.
1462         * iresolve.c (gfc_resolve_iall, gfc_resolve_iany,
1463         gfc_resolve_iparity, resolve_transformational): New functions.
1464         (gfc_resolve_product, gfc_resolve_sum,
1465         gfc_resolve_parity): Use resolve_transformational.
1466         * check.c (gfc_check_transf_bit_intrins): New function.
1467         * simplify.c (gfc_simplify_iall, gfc_simplify_iany,
1468         gfc_simplify_iparity, do_bit_any, do_bit_ior,
1469         do_bit_xor, simplify_transformation): New functions.
1470         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_parity,
1471         gfc_simplify_sum, gfc_simplify_product): Use simplify_transformation.
1472         * trans-intrinsic.c (gfc_conv_intrinsic_arith,
1473         gfc_conv_intrinsic_function, gfc_is_intrinsic_libcall):
1474         Handle IALL, IANY and IPARITY intrinsics.       
1475         * intrinsic.texi (IMAGE_INDEX): Move up to fix alphabetic
1476         order.
1477         (IALL, IANY, IPARITY): Document new intrinsics.
1479 2010-09-05  Tobias Burnus <burnus@net-b.de>
1481         PR fortran/45186
1482         * f95-lang.c (gfc_truthvalue_conversion): Use
1483         fold_build[0-9]_loc instead of fold_build[0-9].
1484         * convert.c (convert): Ditto.
1485         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
1486         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
1487         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
1488         gfc_conv_intrinsic_conjg, gfc_trans_same_strlen_check,
1489         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_abs,
1490         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1491         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1492         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_char,
1493         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
1494         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
1495         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_anyall,
1496         gfc_conv_intrinsic_count, gfc_conv_intrinsic_arith,
1497         gfc_conv_intrinsic_dot_product, gfc_conv_intrinsic_minmaxloc,
1498         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1499         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_not,
1500         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
1501         gfc_conv_intrinsic_rlshift, gfc_conv_intrinsic_ishft,
1502         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_leadz,
1503         gfc_conv_intrinsic_trailz, gfc_conv_intrinsic_popcnt_poppar,
1504         gfc_conv_intrinsic_ichar, gfc_conv_has_intvalue,
1505         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_spacing,
1506         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_size,
1507         size_of_string_in_bytes, gfc_conv_intrinsic_sizeof,
1508         gfc_conv_intrinsic_storage_size, gfc_conv_intrinsic_strcmp,
1509         gfc_conv_intrinsic_transfer, gfc_conv_allocated,
1510         gfc_conv_associated, gfc_conv_same_type_as,
1511         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Ditto.
1513 2010-09-04  Tobias Burnus  <burnus@net-b.de>
1515         PR fortran/45530
1516         * resolve.c (resolve_fl_namelist): Change constraint checking
1517         order to prevent endless loop.
1519 2010-09-04  Janus Weil  <janus@gcc.gnu.org>
1521         PR fortran/45507
1522         * resolve.c (resolve_allocate_expr): Generate default initializers
1523         already at this point, resolve them and put them into expr3, ...
1524         * trans-stmt.c (gfc_trans_allocate): ... instead of waiting until
1525         translation stage.
1527 2010-09-03  Tobias Burnus  <burnus@net-b.de>
1529         PR fortran/45186
1530         * trans-intrinsic.c (gfc_conv_intrinsic_sign,
1531         gfc_conv_intrinsic_leadz): Use build_call_expr_loc instead
1532         of build_call_expr.
1533         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
1534         gfc_conv_string_length, gfc_conv_substring,
1535         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1536         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1537         gfc_conv_expr_op, gfc_build_compare_string,
1538         gfc_set_interface_mapping_bounds, gfc_conv_subref_array_arg,
1539         gfc_conv_derived_to_class, conv_isocbinding_procedure,
1540         gfc_conv_procedure_call, fill_with_spaces,
1541         gfc_trans_string_copy, gfc_trans_alloc_subarray_assign,
1542         gfc_trans_structure_assign, gfc_trans_pointer_assignment,
1543         gfc_trans_scalar_assign, gfc_trans_zero_assign,
1544         gfc_trans_array_copy, gfc_trans_array_constructor_copy): Change
1545         fold_build[0-9] to fold_build[0-9]_loc.
1546         * trans-io.c (set_parameter_const, set_parameter_value,
1547         set_parameter_ref, gfc_convert_array_to_string, set_string,
1548         set_internal_unit, io_result, set_error_locus,
1549         nml_get_addr_expr, build_dt): Ditto.
1550         * trans-openmp.c (gfc_omp_clause_default_ctor,
1551         gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
1552         gfc_trans_omp_array_reduction, gfc_trans_omp_atomic,
1553         gfc_trans_omp_do): Ditto.
1554         * trans.c (gfc_add_modify, gfc_build_addr_expr,
1555         gfc_build_array_ref, gfc_trans_runtime_error_vararg,
1556         gfc_trans_runtime_check, gfc_call_malloc,
1557         gfc_allocate_with_status, gfc_allocate_array_with_status,
1558         gfc_call_free, gfc_deallocate_with_status,
1559         gfc_call_realloc): Ditto.
1561 2010-09-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
1563         PR fortran/45159
1564         * dependency.c (gfc_deb_compare_expr):  Compare equal for equal
1565         arglists for pure user functions, or for those intrinsic
1566         functions which are also pure.
1567         * intrinsics.c (add_conv):  Mark conversion functions as pure.
1568         (add_char_conversions):  Likewise.
1570 2010-09-03  Daniel Kraft  <d@domob.eu>
1572         PR fortran/34162
1573         * resolve.c (resolve_actual_arglist): Allow internal procedure
1574         as actual argument with Fortran 2008.
1576 2010-09-03  Daniel Kraft  <d@domob.eu>
1578         PR fortran/44602
1579         * gfortran.h (struct gfc_code): Renamed `whichloop' to
1580         `which_construct' as this is no longer restricted to loops.
1581         * parse.h (struct gfc_state_data): New field `construct'.
1582         * match.c (match_exit_cycle): Handle EXIT from non-loops.
1583         * parse.c (push_state): Set `construct' field.
1584         * resolve.c (resolve_select_type): Extend comment.
1585         * trans-stmt.c (gfc_trans_if): Add exit label.
1586         (gfc_trans_block_construct), (gfc_trans_select): Ditto.
1587         (gfc_trans_simple_do): Store exit/cycle labels on the gfc_code itself.
1588         (gfc_trans_do), (gfc_trans_do_while): Ditto.
1589         (gfc_trans_exit): Use new name `which_construct' instead of `whichloop'.
1590         (gfc_trans_cycle): Ditto.
1591         (gfc_trans_if_1): Use fold_build3_loc instead of fold_build3.
1593 2010-09-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1595         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix whitespace.
1596         (gfc_conv_intrinsic_ishft): Only evaluate arguments once.
1597         (gfc_conv_intrinsic_ishftc): Only evaluate arguments once.
1598         * intrinsic.texi (RSHIFT): Fix documentation.
1600 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1602         PR fortran/45186
1603         * trans-common.c (create_common): Change build[0-9] to
1604         build[0-9]_loc.
1605         * trans-const.c (gfc_conv_constant_to_tree,
1606         gfc_conv_constant_to_tree): Ditto.
1607         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
1608         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
1609         add_argument_checking, create_main_function,
1610         gfc_generate_return): Ditto.
1611         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Ditto.
1612         * trans-stmt.c (allocate_temp_for_forall_nest_1,
1613         compute_inner_temp_size, compute_overall_iter_number,
1614         generate_loop_for_rhs_to_temp, generate_loop_for_temp_to_lhs,
1615         gfc_conv_elemental_dependencies, gfc_do_allocate,
1616         gfc_evaluate_where_mask, gfc_trans_allocate,
1617         gfc_trans_arithmetic_if, gfc_trans_call,
1618         gfc_trans_character_select, gfc_trans_deallocate,
1619         gfc_trans_do, gfc_trans_do_while, gfc_trans_forall_1,
1620         gfc_trans_forall_loop, gfc_trans_goto, gfc_trans_if_1,
1621         gfc_trans_integer_select, gfc_trans_logical_select,
1622         gfc_trans_pointer_assign_need_temp, gfc_trans_return,
1623         gfc_trans_simple_do, gfc_trans_sync, gfc_trans_where_2,
1624         gfc_trans_where_assign) Ditto.
1626 2010-09-02  Janus Weil  <janus@gcc.gnu.org>
1628         PR fortran/44541
1629         * resolve.c (resolve_symbol): Correct check for attributes of CLASS
1630         variable.
1632 2010-09-02  Tobias Burnus  <burnus@net-b.de>
1634         PR fortran/45489
1635         * resolve.c (apply_default_init): Mark symbol as referenced,
1636         if it is initialized.
1637         (resolve_symbol): Change intialized check for BT_DERIVED such
1638         that also function results get initialized; remove now obsolete
1639         gfc_set_sym_referenced for BT_CLASS.
1641 2010-09-01  Janus Weil  <janus@gcc.gnu.org>
1643         PR fortran/44541
1644         * class.c (gfc_find_derived_vtab): Add component '$def_init'.
1645         * resolve.c (resolve_allocate_expr): Defer handling of default
1646         initialization to 'gfc_trans_allocate'.
1647         (apply_default_init,resolve_symbol): Handle polymorphic dummies.
1648         (resolve_fl_derived): Suppress error messages for vtypes.
1649         * trans-stmt.c (gfc_trans_allocate): Handle initialization via
1650         polymorphic MOLD expression.
1651         * trans-expr.c (gfc_trans_class_init_assign): Now only used for
1652         dummy initialization.
1654 2010-09-01  Tobias Burnus  <burnus@net-b.de>
1656         * gfortran.texi (preprocessing): Update URL to COCO.
1658 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1660         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Resize
1661         array quad_decls. Remove unnecessary assignment.
1663 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1665         * trans-expr.c (gfc_conv_power_op): Handle floating-point types
1666         other than long double.
1667         * mathbuiltins.def: Add builtins from the POW and CPOW family.
1668         * trans.h (gfc_builtin_decl_for_float_kind): New prototype.
1669         * trans-intrinsic.c (gfc_builtin_decl_for_float_kind): Add gfc_
1670         prefix to function name.
1671         (gfc_build_intrinsic_lib_fndecls): Add cpow prototype.
1672         (gfc_conv_intrinsic_aint): Use gfc_builtin_decl_for_float_kind
1673         function name.
1674         (gfc_conv_intrinsic_exponent): Likewise.
1675         (gfc_conv_intrinsic_abs): Likewise.
1676         (gfc_conv_intrinsic_mod): Likewise.
1677         (gfc_conv_intrinsic_sign): Likewise.
1678         (gfc_conv_intrinsic_arith): Likewise.
1679         (gfc_conv_intrinsic_fraction): Likewise.
1680         (gfc_conv_intrinsic_nearest): Likewise.
1681         (gfc_conv_intrinsic_spacing): Likewise.
1682         (gfc_conv_intrinsic_rrspacing): Likewise.
1683         (gfc_conv_intrinsic_scale): Likewise.
1684         (gfc_conv_intrinsic_set_exponent): Likewise.
1686 2010-09-01  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1688         * intrinsic.c: Add EXECUTE_COMMAND_LINE intrinsic.
1689         * intrinsic.h (gfc_resolve_execute_command_line): New function.
1690         * iresolve.c (gfc_resolve_execute_command_line): New function.
1691         * gfortran.h (GFC_ISYM_EXECUTE_COMMAND_LINE): New value.
1692         * intrinsic.texi: Document EXECUTE_COMMAND_LINE.
1694 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1696         PR fortran/38282
1697         * f95-lang.c (gfc_init_builtin_functions): Define popcount{,l,ll}
1698         and parity{,l,ll} builtins.
1699         * trans-intrinsic.c (gfc_conv_intrinsic_popcnt_poppar): New function.
1700         (gfc_conv_intrinsic_function): Call above new functions.
1701         * simplify.c (gfc_simplify_popcnt, gfc_simplify_poppar): New
1702         functions.
1703         * intrinsic.texi: Document POPCNT and POPPAR.
1705 2010-08-30  Janus Weil  <janus@gcc.gnu.org>
1707         PR fortran/45456
1708         * resolve.c (resolve_structure_cons): Handle pointer-valued PPCs.
1710 2010-08-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1712         * Make-lang.in: Add frontend-passes.o dependencies.
1714 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1716         PR fortran/42769
1717         * resolve.c (resolve_structure_cons): For derived types, make sure the
1718         type has been resolved.
1719         (resolve_typebound_procedures): Make sure the vtab has been generated.
1721 2010-08-29  Janus Weil  <janus@gcc.gnu.org>
1723         PR fortran/45439
1724         * match.c (gfc_match_select_type): Give the associate-name the
1725         FL_VARIABLE attribute.
1727 2010-08-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1729         * simplify.c (gfc_simplify_bessel_n2): Fix indention
1730         and argument type.
1732 2010-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1734         PR fortran/45436
1735         * trans-types.c (gfc_init_kinds): Disable TFmode.
1737 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1739         PR fortran/45432
1740         * match.c (gfc_match_allocate): Avoid double free on error.
1742 2010-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1744         PR fortran/32049
1745         * gfortran.h (gfc_real_info): Add c_float128 field.
1746         * mathbuiltins.def: Indicate which builtins are const.
1747         * trans-types.h (float128_type_node, complex_float128_type_node,
1748         gfc_real16_is_float128): New variables.
1749         * trans-types.c (float128_type_node, complex_float128_type_node,
1750         gfc_real16_is_float128): New variables.
1751         (gfc_init_kinds): Allow TFmode.
1752         (gfc_build_real_type): Mark __float128 types as such.
1753         (gfc_init_types): Initialize float128_type_node and
1754         complex_float128_type_node
1755         * f95-lang.c (gfc_init_builtin_functions): Adjust for new
1756         argument of OTHER_BUILTIN macro.
1757         * trans-intrinsic.c (gfc_intrinsic_map_t): Likewise.
1758         (builtin_decl_for_precision): Special case for __float128.
1759         (builtin_decl_for_float_kind): Likewise.
1760         (define_quad_builtin): New function.
1761         (gfc_build_intrinsic_lib_fndecls): Create all __float128
1762         library decls if necessary. Store them in the real16_decl and
1763         complex16_decl builtin map fields.
1764         (gfc_get_intrinsic_lib_fndecl): Handle q-suffixed __float128
1765         library function names.
1767 2010-08-27  Tobias Burnus  <burnus@net-b.de>
1769         PR fortran/33197
1770         * gcc/fortran/intrinsic.c (add_functions): Add norm2 and parity.
1771         * gcc/fortran/intrinsic.h (gfc_check_norm2, gfc_check_parity):
1772         gfc_simplify_norm2, gfc_simplify_parity, gfc_resolve_norm2,
1773         gfc_resolve_parity): New prototypes.
1774         * gcc/fortran/gfortran.h (gfc_isym_id): New enum items
1775         GFC_ISYM_NORM2 and GFC_ISYM_PARITY.
1776         * gcc/fortran/iresolve.c (gfc_resolve_norm2,
1777         gfc_resolve_parity): New functions.
1778         * gcc/fortran/check.c (gfc_check_norm2, gfc_check_parity):
1779         New functions.
1780         * gcc/fortran/trans-intrinsic.c (gfc_conv_intrinsic_arith,
1781         gfc_conv_intrinsic_function): Handle NORM2 and PARITY.
1782         * gcc/fortran/intrinsic.texi (NORM2, PARITY): Add.
1783         * gcc/fortran/simplify.c (simplify_transformation_to_array):
1784         Add post-processing opterator.
1785         (gfc_simplify_all, gfc_simplify_any, gfc_simplify_count,
1786         gfc_simplify_product, gfc_simplify_sum): Update call.
1787         (add_squared, do_sqrt, gfc_simplify_norm2, do_xor,
1788         gfc_simplify_parity): New functions.
1790 2010-08-27  Janus Weil  <janus@gcc.gnu.org>
1792         PR fortran/45420
1793         * match.c (select_type_set_tmp): Add the possibility to reset the
1794         temporary to NULL.
1795         (gfc_match_class_is): Reset the temporary in CLASS DEFAULT clauses.
1797 2010-08-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1799         PR fortran/45159
1800         * dependency.c (check_section_vs_section):  Single test for
1801         identical strides which takes into account that only one
1802         of the strides may be NULL.
1804 2010-08-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1806         PR fortran/43217
1807         * primary.c (match_hollerith_constant): Calculate padding needed to
1808         fill default integer and allocate string for that size.  Set pad bytes
1809         to ' '.
1810         * gfortran.h: Add hollerith pad value to type spec union.
1811         * data.c (create_character_initializer): Fix spelling of function name.
1812         Use hollerith pad value to calculate length.
1813         * arith.c (hollerith2representation); Use hollerith pad value to
1814         calculate length.
1816 2010-08-26  Daniel Kraft  <d@domob.eu>
1818         PR fortran/38936
1819         PR fortran/44047
1820         PR fortran/45384
1821         * gfortran.h (struct gfc_association_list): New flag `dangling'.
1822         (gfc_build_block_ns): Declared here...
1823         * parse.h (gfc_build_block_ns): ...instead of here.
1824         * trans.h (gfc_process_block_locals): Expect additionally the
1825         gfc_association_list of BLOCK (if present).
1826         * match.c (select_type_set_tmp): Create sym->assoc for temporary.
1827         * resolve.c (resolve_variable): Only check for invalid *array*
1828         references on associate-names.
1829         (resolve_assoc_var): New method with code previously in resolve_symbol.
1830         (resolve_select_type): Use association to give the selector and
1831         temporaries their values instead of ordinary assignment.
1832         (resolve_fl_var_and_proc): Allow CLASS associate-names.
1833         (resolve_symbol): Use new `resolve_assoc_var' instead of inlining here.
1834         * trans-stmt.c (gfc_trans_block_construct): Pass association-list
1835         to `gfc_process_block_locals' to match new interface.
1836         * trans-decl.c (gfc_get_symbol_decl): Don't defer associate-names
1837         here automatically.
1838         (gfc_process_block_locals): Defer them rather here when linked to
1839         from the BLOCK's association list.
1841 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
1843         * trans-decl.c (gfc_build_intrinsic_function_decls): Set
1844         TREE_NOTHROW on fndecls that can't throw.  Set
1845         TREE_READONLY on gfor_fndecl_math_ishftc{4,8,16}.
1846         (gfc_build_builtin_function_decls): Set TREE_NOTHROW on
1847         gfor_fndecl_associated.
1849 2010-08-23  Mikael Morin  <mikael@gcc.gnu.org>
1851         PR fortran/45380
1852         * frontend-passes.c (optimize_equality): Don't optimize array equality
1854 2010-08-23  Janus Weil  <janus@gcc.gnu.org>
1856         PR fortran/45366
1857         * resolve.c (resolve_procedure_interface): New function split off from
1858         'resolve_symbol'.
1859         (resolve_formal_arglist): Call it here ...
1860         (resolve_symbol): ... and here.
1862 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
1864         * Make-lang.in (gfortranspec.o): Update dependencies.
1865         * gfortranspec.c: Include coretypes.h before gcc.h.  Include
1866         opts.h.
1867         (MATH_LIBRARY, FORTRAN_LIBRARY): Remove initial "-l".
1868         (ADD_ARG_LIBGFORTRAN, Option, lookup_option): Remove.
1869         (g77_xargc): Make unsigned.
1870         (g77_xargv): Change to g77_x_decoded_options.
1871         (g77_newargc): Make unsigned.
1872         (g77_newargv): Change to g77_new_decoded_options.
1873         (strings_same, options_same): New.
1874         (append_arg): Use cl_decoded_option structures.
1875         (append_option): New.
1876         (add_arg_libgfortran): New.
1877         (lang_specific_driver): Use cl_decoded_option structures.
1879 2010-08-21  Janus Weil  <janus@gcc.gnu.org>
1881         PR fortran/45271
1882         PR fortran/45290
1883         * class.c (add_proc_comp): Add static initializer for PPCs.
1884         (add_procs_to_declared_vtab): Modified comment.
1885         * module.c (mio_component): Add argument 'vtype'. Don't read/write the
1886         initializer if the component is part of a vtype.
1887         (mio_component_list): Add argument 'vtype', pass it on to
1888         'mio_component'.
1889         (mio_symbol): Modified call to 'mio_component_list'.
1890         * trans.h (gfc_conv_initializer): Modified prototype.
1891         (gfc_trans_assign_vtab_procs): Removed.
1892         * trans-common.c (create_common): Modified call to
1893         'gfc_conv_initializer'.
1894         * trans-decl.c (gfc_get_symbol_decl,get_proc_pointer_decl,
1895         gfc_emit_parameter_debug_info): Modified call to
1896         'gfc_conv_initializer'.
1897         (build_function_decl): Remove assertion.
1898         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
1899         Removed call to 'gfc_trans_assign_vtab_procs'.
1900         (gfc_conv_initializer): Add argument 'procptr'.
1901         (gfc_conv_structure): Modified call to 'gfc_conv_initializer'.
1902         (gfc_trans_assign_vtab_procs): Removed.
1903         * trans-stmt.c (gfc_trans_allocate): Removed call to
1904         'gfc_trans_assign_vtab_procs'.
1906 2010-08-21  Tobias Burnus  <burnus@net-b.de>
1908         PR fortran/36158
1909         PR fortran/33197
1910         * intrinsic.c (add_sym): Init value attribute.
1911         (set_attr_value): New function.
1912         (add_functions) Use it and add JN/YN resolvers.
1913         * symbol.c (gfc_copy_formal_args_intr): Copy value attr.
1914         * intrinsic.h (gfc_resolve_bessel_n2): New prototype.
1915         * gfortran.h (gfc_intrinsic_arg): Add value attribute.
1916         * iresolve.c (gfc_resolve_bessel_n2): New function.
1917         * trans-intrinsic.c (gfc_get_symbol_for_expr): Create
1918         formal arg list.
1919         (gfc_conv_intrinsic_function,gfc_is_intrinsic_libcall):
1920         Add GFC_ISYM_JN2/GFC_ISYM_YN2 as case value.
1921         * simplify.c (): For YN set to -INF if previous values
1922         was -INF.
1923         * trans-expr.c (gfc_conv_procedure_call): Don't crash
1924         if sym->as is NULL.
1925         * iresolve.c (gfc_resolve_extends_type_of): Set the
1926         type of the dummy argument to the one of the actual.
1928 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1930         * lang.opt (MD, MMD): Use NoDriverArg instead of NoArgDriver.
1932 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
1934         * gfortranspec.c (lang_specific_driver): Refer to -lgfortran in
1935         comment, not -lg2c.
1937 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
1939         * trans-openmp.c: Use FOR_EACH_VEC_ELT.
1941 2010-08-19  Daniel Kraft  <d@domob.eu>
1943         PR fortran/29785
1944         PR fortran/45016
1945         * trans.h (struct gfc_se): New flag `byref_noassign'.
1946         * trans-array.h (gfc_conv_shift_descriptor_lbound): New method.
1947         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1948         * expr.c (gfc_check_pointer_assign): Allow bounds and rank remapping
1949         and check for compile-time errors with those.
1950         * trans-decl.c (trans_associate_var): Use new routine
1951         `gfc_conv_shift_descriptor_lbound' instead of doing it manually.
1952         * trans-array.c (gfc_conv_shift_descriptor_lbound): New method.
1953         (gfc_conv_array_extent_dim), (gfc_conv_descriptor_size): New methods.
1954         (gfc_array_init_size): Use new `gfc_conv_array_extent_dim'.
1955         (gfc_conv_expr_descriptor): Handle new flag `byref_noassign'.
1956         * trans-expr.c (gfc_trans_pointer_assignment): Handle bounds and
1957         rank remapping for assignment.
1959 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1961         * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
1962         * * simplify.c (gfc_simplify_bessel_yn): Change recursive
1963         into recurrence.
1965 2010-08-19  Tobias Burnus  <burnus@net-b.de>
1967         PR fortran/36158
1968         PR fortran/33197
1969         * check.c (gfc_check_bessel_n2): New function.
1970         * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
1971         * intrinsic.c (add_functions): Add transformational version
1972         of the Bessel_jn/yn intrinsics.
1973         * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
1974         gfc_simplify_bessel_yn2): New prototypes.
1975         * intrinsic.texi (Bessel_jn, Bessel_yn): Document
1976         transformational variant.
1977         * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
1978         Check for negative order.
1979         (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
1980         gfc_simplify_bessel_yn2): New functions.
1982 2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1984         PR fortran/41859
1985         * resolve.c (resolve_transfer): Traverse operands and set expression
1986         to be checked to a non EXPR_OP type.
1988 2010-08-19  Janus Weil  <janus@gcc.gnu.org>
1990         PR fortran/45290
1991         * gfortran.h (gfc_add_save): Modified prototype.
1992         * decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
1993         (match_pointer_init): New function to match F08 pointer initialization.
1994         (variable_decl,match_procedure_decl,match_ppc_decl): Use
1995         'match_pointer_init'.
1996         (match_attr_spec): Module variables are implicitly SAVE.
1997         (gfc_match_save): Modified call to 'gfc_add_save'.
1998         * expr.c (gfc_check_assign_symbol): Extra checks for pointer
1999         initialization.
2000         * primary.c (gfc_variable_attr): Handle SAVE attribute.
2001         * resolve.c (resolve_structure_cons): Add new argument and do pointer
2002         initialization checks.
2003         (gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
2004         (resolve_values): Call 'resolve_structure_cons' directly with init arg.
2005         (resolve_fl_variable): Handle SAVE_IMPLICIT.
2006         * symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
2007         SAVE_IMPLICIT.
2008         * trans-decl.c (gfc_create_module_variable): Module variables with
2009         TARGET can already exist.
2010         * trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
2011         (gfc_conv_initializer): Implement non-NULL pointer
2012         initialization.
2014 2010-08-18  Tobias Burnus  <burnus@net-b.de>
2016         PR fortran/45295
2017         * intrinsic.texi (selected_char_kind): Document ISO_10646
2018         support.
2020 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
2022         PR fortran/45304
2023         * trans-decl.c (build_library_function_decl_1): Chain on
2024         void_list_node instead of creating a new TREE_LIST.
2025         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
2026         * trans-types.c (gfc_get_function_type): Likewise.  Set
2027         typelist to void_list_node for the main program.
2029 2010-08-17  Daniel Kraft  <d@domob.eu>
2031         PR fortran/38936
2032         * gfortran.h (struct gfc_association_list): New member `where'.
2033         (gfc_is_associate_pointer) New method.
2034         * match.c (gfc_match_associate): Remember locus for each associate
2035         name matched and do not try to set variable flag.
2036         * parse.c (parse_associate): Use remembered locus for symbols.
2037         * primary.c (match_variable): Instead of variable-flag check for
2038         associate names set it for all such names used.
2039         * symbol.c (gfc_is_associate_pointer): New method.
2040         * resolve.c (resolve_block_construct): Don't generate assignments
2041         to give associate-names their values.
2042         (resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
2043         (resolve_symbol): Set some more attributes for associate variables,
2044         set variable flag here and check it and don't try to build an
2045         explicitely shaped array-spec for array associate variables.
2046         * trans-expr.c (gfc_conv_variable): Dereference in case of association
2047         to scalar variable.
2048         * trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
2049         (gfc_sym_type): Return pointer type for association to scalar vars.
2050         * trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
2051         (trans_associate_var): New method.
2052         (gfc_trans_deferred_vars): Handle association symbols.
2054 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2056         * lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
2057         RejectDriver.
2058         (MMDX): Change back to MMD.  Mark NoDriverArg instead of
2059         RejectDriver.
2060         * cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
2061         OPT_MDX and OPT_MMDX.
2063 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
2065         * lang.opt (MDX, MMDX): Mark RejectDriver.
2067 2010-08-15  Janus Weil  <janus@gcc.gnu.org>
2069         * trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
2070         vtabs for generics any more).
2072 2010-08-15  Daniel Kraft  <d@domob.eu>
2074         PR fortran/38936
2075         * gfortran.h (gfc_find_proc_namespace): New method.
2076         * expr.c (gfc_build_intrinsic_call): No need to build symtree messing
2077         around with namespace.
2078         * symbol.c (gfc_find_proc_namespace): New method.
2079         * trans-decl.c (gfc_build_qualified_array): Use it for correct
2080         value of nest.
2081         * primary.c (gfc_match_varspec): Handle associate-names as arrays.
2082         * parse.c (parse_associate): Removed assignment-generation here...
2083         * resolve.c (resolve_block_construct): ...and added it here.
2084         (resolve_variable): Handle names that are arrays but were not parsed
2085         as such because of association.
2086         (resolve_code): Fix BLOCK resolution.
2087         (resolve_symbol): Generate array-spec for associate-names.
2089 2010-08-15  Tobias Burnus  <burnus@net-b.de>
2091         PR fortran/45211
2092         * decl.c (verify_c_interop_param): Remove superfluous space (" ").
2093         (verify_c_interop): Handle unresolved DT with bind(C).
2095 2010-08-15  Tobias Burnus  <burnus@net-b.de>
2097         * trans-expr.c (gfc_conv_expr_present): Regard nullified
2098         pointer arrays as absent.
2099         (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
2100         dummys as absent argument.
2101         * interface.c (compare_actual_formal,compare_parameter):
2102         Ditto.
2104 2010-08-15  Tobias Burnus  <burnus@net-b.de>
2106         * interface.c (compare_pointer, ): Allow passing TARGETs to pointers
2107         dummies with intent(in).
2109 2010-08-15  Daniel Kraft  <d@domob.eu>
2111         PR fortran/45197
2112         * decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
2113         routines not IMPURE also as PURE.
2114         * intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
2115         `NO_CLASS' in `CLASS_IMPURE'.
2116         (add_sym): Set symbol-attributes `pure' and `elemental' correctly.
2117         (add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
2118         (add_functions): Ditto.
2119         (add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
2120         * resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
2121         (resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
2122         are not ALLOCATABLE and have their INTENT specified.
2124 2010-08-13  Daniel Kraft  <d@domob.eu>
2126         * gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
2127         * array.c (gfc_match_array_spec): Match implied-shape specification and
2128         handle AS_IMPLIED_SHAPE correctly otherwise.
2129         * decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
2130         (variable_decl): Some checks for implied-shape declaration.
2131         * resolve.c (resolve_symbol): Assert that array-spec is no longer
2132         AS_IMPLIED_SHAPE in any case.
2134 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
2136         * lang.opt (MD, MMD): Change to MDX and MMDX.
2137         * cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.
2139 2010-08-11  Janus Weil  <janus@gcc.gnu.org>
2141         PR fortran/44595
2142         * intrinsic.c (gfc_current_intrinsic_arg): Change type from 'char' to
2143         'gfc_intrinsic_arg'.
2144         (check_arglist,check_specific): Add reference to 'name' field.
2145         (init_arglist): Remove reference to 'name' field.
2146         * intrinsic.h (gfc_current_intrinsic_arg): Modify prototype.
2147         * check.c (variable_check): Reverse order of checks. Respect intent of
2148         formal arg.
2149         (int_or_proc_check): New function.
2150         (coarray_check): New function.
2151         (allocatable_check): New function.
2152         (gfc_check_allocated,gfc_check_move_alloc): Use 'allocatable_check'.
2153         (gfc_check_complex): Use 'int_or_real_check'.
2154         (gfc_check_lcobound,gfc_check_image_index,gfc_check_this_image,
2155         gfc_check_ucobound): Use 'coarray_check'.
2156         (gfc_check_pack): Use 'real_or_complex_check'.
2157         (gfc_check_alarm_sub,gfc_check_signal,gfc_check_signal_sub): Use
2158         'int_or_proc_check'.
2159         (scalar_check,type_check,numeric_check,int_or_real_check,
2160         real_or_complex_check,kind_check,double_check,logical_array_check,
2161         array_check,same_type_check,rank_check,nonoptional_check,
2162         kind_value_check,gfc_check_a_p,gfc_check_associated,gfc_check_cmplx,
2163         gfc_check_cshift,gfc_check_dcmplx,gfc_check_dot_product,gfc_check_dprod,
2164         gfc_check_eoshift,gfc_check_fn_rc2008,gfc_check_index,gfc_check_kind,
2165         gfc_check_matmul,gfc_check_minloc_maxloc,check_reduction,gfc_check_null,
2166         gfc_check_present,gfc_check_reshape,gfc_check_same_type_as,
2167         gfc_check_spread,gfc_check_unpack,gfc_check_random_seed,
2168         gfc_check_getarg,gfc_check_and,gfc_check_storage_size): Add reference
2169         to 'name' field.
2171 2010-08-10  Daniel Kraft  <d@domob.eu>
2173         * gfortran.texi (Interoperability with C): Fix ordering in menu
2174         and add new subsection about pointers.
2175         (Interoperable Subroutines and Functions): Split off the pointer part.
2176         (working with Pointers): New subsection with extended discussion
2177         of pointers (especially procedure pointers).
2179 2010-08-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
2181         PR fortran/44235
2182         * array.c (gfc_ref_dimen_size):  Add end argument.
2183         If end is non-NULL, calculate it.
2184         (ref_size):  Adjust call to gfc_ref_dimen_size.
2185         (gfc_array_dimen_size):  Likewise.
2186         (gfc_array_res_shape):  Likewise.
2187         * gfortran.h:  Adjust prototype for gfc_ref_dimen_size.
2188         * resolve.c (resolve_array_ref):  For stride not equal to -1,
2189         fill in the lowest possible end.
2191 2010-08-09  Janus Weil  <janus@gcc.gnu.org>
2193         * intrinsic.texi: Correct documentation of ASINH, ACOSH and ATANH.
2195 2010-08-07  Nathan Froyd  <froydnj@codesourcery.com>
2197         * interface.c (compare_actual_formal): Use XALLOCAVEC instead of
2198         alloca.
2199         (check_some_aliasing): Likewise.
2200         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Likewise.
2201         (gfc_conv_intrinsic_int): Likewise.
2202         (gfc_conv_intrinsic_lib_function): Likewise.
2203         (gfc_conv_intrinsic_cmplx): Likewise.
2204         (gfc_conv_intrinsic_ctime): Likewise.
2205         (gfc_conv_intrinsic_fdate): Likewise.
2206         (gfc_conv_intrinsic_ttynam): Likewise.
2207         (gfc_conv_intrinsic_minmax): Likewise.
2208         (gfc_conv_intrinsic_minmax_char): Likewise.
2209         (gfc_conv_intrinsic_ishftc): Likewise.
2210         (gfc_conv_intrinsic_index_scan_verify): Likewise.
2211         (gfc_conv_intrinsic_merge): Likewise.
2212         (gfc_conv_intrinsic_trim): Likewise.
2213         * trans.c (gfc_trans_runtime_error_vararg): Likewise.
2215 2010-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2217         PR fortran/45159
2218         * dependency.c (check_section_vs_section):  Handle cases where
2219         the start expression coincides with the lower or upper
2220         bound of the array.
2222 2010-08-04  Janus Weil  <janus@gcc.gnu.org>
2224         PR fortran/42207
2225         PR fortran/44064
2226         PR fortran/44065
2227         * class.c (gfc_find_derived_vtab): Do not generate vtabs for class
2228         container types. Do not artificially increase refs. Commit symbols one
2229         by one.
2230         * interface.c (compare_parameter): Make sure vtabs are present before
2231         generating module variables.
2232         * resolve.c (resolve_allocate_expr): Ditto.
2234 2010-08-04  Tobias Burnus  <burnus@net-b.de>
2236         PR fortran/45183
2237         PR fortran/44857
2238         * resolve.c (resolve_structure_cons): Fix
2239         freeing of charlen.
2241 2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
2243         PR fortran/42051
2244         PR fortran/44064
2245         * symbol.c (changed_syms): Made static again.
2246         (gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
2247         Changed conditional internal error into assert.
2248         Rename function to ...
2249         (gfc_enforce_clean_symbol_state): ... this.
2250         * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
2251         Rename the former to the latter.
2252         * parse.c (decode_statement, decode_omp_directive,
2253         decode_gcc_attribute): Update callers accordingly. Don't conditionalize
2254         on GFC_DEBUG.
2255         (changed_syms): Remove declaration.
2256         (next_statement): Use gfc_enforce_clean_symbol_state.
2258 2010-08-04  Tobias Burnus  <burnus@net-b.de>
2260         PR fortran/44857
2261         * resolve.c (resolve_structure_cons): Fix handling of
2262         initialization structure constructors with character
2263         elements of the wrong length.
2264         * array.c (gfc_check_iter_variable): Add NULL check.
2265         (gfc_resolve_character_array_constructor): Also truncate
2266         character length.
2268 2010-08-04  Tobias Burnus  <burnus@net-b.de>
2270         * trans-io.c (gfc_build_io_library_fndecls): Fix return
2271         value of some libgfortran functions.
2273 2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
2275         PR fortran/45159
2276         * dependency.c (gfc_deb_compare_expr):  Remove any integer
2277         conversion functions to larger types from both arguments.
2278         Remove handling these functions futher down.
2280 2010-08-03  Janus Weil  <janus@gcc.gnu.org>
2282         PR fortran/44584
2283         PR fortran/45161
2284         * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
2285         * resolve.c (resolve_tb_generic_targets): Check for errors.
2287 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2289         PR fortran/45159
2290         * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
2291         can be reversed.
2293 2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
2295         PR fortran/36854
2296         * dependency.h:  Add prototype for gfc_are_identical_variables.
2297         * frontend-passes.c:  Include depencency.h.
2298         (optimimize_equality):  Use gfc_are_identical_variables.
2299         * dependency.c (identical_array_ref): New function.
2300         (gfc_are_identical_variables):  New function.
2301         (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
2302         * dependency.c (gfc_check_section_vs_section).  Rename gfc_
2303         prefix from statc function.
2304         (check_section_vs_section): Change arguments to gfc_array_ref,
2305         adjust function body accordingly.
2307 2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
2308             Janus Weil  <janus@gcc.gnu.org>
2310         PR fortran/42051
2311         PR fortran/44064
2312         PR fortran/45151
2313         * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
2314         * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
2315         gfc_copy_formal_args, gfc_copy_formal_args_intr,
2316         gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
2317         * parse.c (parse_derived_contains, parse_spec, parse_progunit):
2318         Call reject_statement in case of error.
2319         (match_deferred_characteritics): Call gfc_undo_symbols in case match
2320         fails.
2322 2010-08-01  Janus Weil  <janus@gcc.gnu.org>
2324         PR fortran/44912
2325         * class.c (gfc_build_class_symbol): Make '$vptr' component private.
2326         (gfc_find_derived_vtab): Make vtabs and vtypes public.
2327         * module.c (read_module): When reading module files, always import
2328         vtab and vtype symbols.
2330 2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
2332         PR fortran/42051
2333         PR fortran/44064
2334         * symbol.c (changed_syms): Made non-static.
2335         * parse.c (changed_syms): Declare new external.
2336         (next_statement): Assert changed_syms is NULL at the beginning.
2338 2010-07-30  Janus Weil  <janus@gcc.gnu.org>
2339             Steven G. Kargl  <kargl@gcc.gnu.org>
2341         PR fortran/44929
2342         * match.c (match_type_spec): Try to parse derived types before
2343         intrinsic types.
2345 2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
2347         * gfortran.h (gfc_release_symbol): New prototype.
2348         * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
2349         (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
2350         Use gfc_release_symbol.
2351         * parse.c (gfc_fixup_sibling_symbols): Ditto.
2352         * resolve.c (resolve_symbol): Ditto.
2354 2010-07-29  Tobias Burnus  <burnus@net-b.de>
2356         PR fortran/45087
2357         PR fortran/45125
2358         * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
2359         external procedure declarations in modules.
2360         (gfc_get_symbol_decl): Modify assert.
2362 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
2364         PR fortran/44962
2365         * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
2367 2010-07-29  Janus Weil  <janus@gcc.gnu.org>
2369         PR fortran/45004
2370         * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
2371         (gfc_trans_class_assign): Modified prototype.
2372         * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
2373         * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
2374         (gfc_trans_class_assign): ... here. Modified actual arguments.
2375         * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
2376         handle the MOVE_ALLOC intrinsic with scalar and class arguments.
2377         * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
2379 2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
2381         PR fortran/42051
2382         PR fortran/44064
2383         * class.c (gfc_find_derived_vtab): Accept or discard newly created
2384         symbols before returning.
2386 2010-07-29  Joseph Myers  <joseph@codesourcery.com>
2388         * lang.opt (cpp): Remove Joined and Separate markers.
2389         (cpp=): New internal option.
2390         * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
2391         * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
2392         OPT_cpp.
2394 2010-07-29  Daniel Kraft  <d@domob.eu>
2396         PR fortran/45117
2397         * array.c (resolve_array_bound): Fix error message to properly handle
2398         non-variable expressions.
2400 2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
2402         * decl.c (free_value): Also free repeat field.
2403         * data.c (gfc_assign_data_value): Always free offset before returning.
2405 2010-07-28  Daniel Kraft  <d@domob.eu>
2407         * gfortran.h (gfc_build_intrinsic_call): New method.
2408         * expr.c (gfc_build_intrinsic_call): New method.
2409         * simplify.c (range_check): Ignore non-constant value.
2410         (simplify_bound_dim): Handle non-variable expressions and
2411         fix memory leak with non-free'ed expression.
2412         (simplify_bound): Handle non-variable expressions.
2413         (gfc_simplify_shape): Ditto.
2414         (gfc_simplify_size): Ditto, but only in certain cases possible.
2416 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
2418         * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
2419         Remove.
2421 2010-07-28  Tobias Burnus  <burnus@net-b.de>
2423         PR fortran/45077
2424         * trans-types.c (gfc_get_derived_type): Fix DT declaration
2425         from modules for whole-file mode.
2427 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2429         * gfortran.h (gfc_handle_option): Update prototype and return
2430         value type.
2431         * options.c (gfc_handle_option): Update prototype and return value
2432         type.
2434 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
2436         * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
2437         decoded options in allocating deferred_opt.
2438         * cpp.h (gfc_cpp_init_options): Update prototype.
2439         * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
2440         * gfortran.h (gfc_option_lang_mask): New.
2441         (gfc_init_options): Update prototype.
2442         * options.c (gfc_option_lang_mask): New.
2443         (gfc_init_options): Update prototype.  Pass new arguments to
2444         gfc_cpp_init_options.
2446 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2448         PR fortran/40873
2449         * trans-decl.c (gfc_get_extern_function_decl): Fix generation
2450         for functions which are later in the same file.
2451         (gfc_create_function_decl, build_function_decl,
2452         build_entry_thunks): Add global argument.
2453         * trans.c (gfc_generate_module_code): Update
2454         gfc_create_function_decl call.
2455         * trans.h (gfc_create_function_decl): Update prototype.
2456         * resolve.c (resolve_global_procedure): Also resolve for
2457         IFSRC_IFBODY.
2459 2010-07-26  Richard Henderson  <rth@redhat.com>
2461         PR target/44132
2462         * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
2463         (gfc_write_global_declarations): New.
2465 2010-07-26  Tobias Burnus  <burnus@net-b.de>
2467         PR fortran/45066
2468         * trans-io.c (build_dt): Use NULL_TREE rather than NULL
2469         for call to transfer_namelist_element.
2470         * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
2471         for -fwhole-file.
2473 2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
2475         PR fortran/40628
2476         * Make-lang.in:  Add fortran/frontend-passes.o.
2477         * gfortran.h:  Add prototype for gfc_run_passes.
2478         * resolve.c (gfc_resolve):  Call gfc_run_passes.
2479         * frontend-passes.c:  New file.
2481 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2483         PR fortran/42852
2484         * scanner.c (gfc_next_char_literal): Enable truncation warning for
2485         free-form '&'.
2487 2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
2489         PR fortran/44660
2490         * gfortran.h (gfc_namespace): New field old_equiv.
2491         (gfc_free_equiv_until): New prototype.
2492         * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
2493         a parameterized stop condition.
2494         (gfc_free_equiv): Use gfc_free_equiv_until.
2495         * parse.c (next_statement): Save equivalence list.
2496         (reject_statement): Restore equivalence list.
2498 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2500         PR fortran/42852
2501         * scanner.c (gfc_next_char_literal): Move check for truncation earlier
2502         in the function so that it does not get missed by early exits.
2503         (load_line): Add checks for quoted strings and free form comments to
2504         disable warnings on comments. Add check for ampersand as first
2505         character after truncation and don't warn for this case, but warn if
2506         there are subsequent non-whitespace characters.
2508 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2510         PR fortran/40011
2511         * parse.c (gfc_parse_file): Do not override
2512         gfc_global_ns_list items.
2514 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2516         * options.c (gfc_init_options): Enable -fwhole-file by default.
2517         * interface.c (compare_parameter): Assume a Hollerith constant is
2518         compatible with all other argument types.
2520 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2522         PR fortran/44945
2523         * trans-decl.c (gfc_get_symbol_decl): Use module decl with
2524         -fwhole-file also for derived types.
2525         * trans-types.c (copy_dt_decls_ifequal): Remove static and
2526         rename to gfc_copy_dt_decls_ifequal.
2527         (gfc_get_derived_type): Update call.
2528         * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
2530 2010-07-23  Tobias Burnus  <burnus@net-b.de>
2532         PR fortran/45030
2533         * resolve.c (resolve_global_procedure): Properly handle ENTRY.
2535 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
2537         * trans-types.c (gfc_get_array_descriptor_base,
2538         gfc_get_array_type_bounds): Set TYPE_NAMELESS.
2539         * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
2540         instead of clearing DECL_NAME.
2541         (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
2543 2009-07-23  Paul Thomas  <pault@gcc.gnu.org>
2545         PR fortran/24524
2546         * trans-array.c (gfc_init_loopinfo): Initialize the reverse
2547         field.
2548         gfc_trans_scalarized_loop_end: If reverse set in dimension n,
2549         reverse the scalarization loop.
2550         gfc_conv_resolve_dependencies: Pass the reverse field of the
2551         loopinfo to gfc_dep_resolver.
2552         trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
2553         assignment by resetting loop.reverse.
2554         gfortran.h : Add the gfc_reverse enum.
2555         trans.h : Add the reverse field to gfc_loopinfo.
2556         dependency.c (gfc_check_dependency): Pass null to the new arg
2557         of gfc_dep_resolver.
2558         (gfc_check_section_vs_section): Check for reverse dependencies.
2559         (gfc_dep_resolver): Add reverse argument and deal with the loop
2560         reversal logic.
2561         dependency.h : Modify prototype for gfc_dep_resolver to include
2562         gfc_reverse *.
2564 2010-07-23  Daniel Kraft  <d@domob.eu>
2566         PR fortran/44709
2567         * gfortran.h (gfc_find_symtree_in_proc): New method.
2568         * symbol.c (gfc_find_symtree_in_proc): New method.
2569         * match.c (match_exit_cycle): Look for loop name also in parent
2570         namespaces within current procedure.
2572 2010-07-22  Tobias Burnus  <burnus@net-b.de>
2574         PR fortran/45019
2575         * dependency.c (gfc_check_dependency): Add argument alising check.
2576         * symbol.c (gfc_symbols_could_alias): Add argument alising check.
2578 2010-07-22  Daniel Kraft  <d@domob.eu>
2580         * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
2581         now in the correct place.
2583 2010-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>
2585         PR fortran/44929
2586         * Revert my commit r162325.
2588 2010-07-21  Daniel Kraft  <d@domob.eu>
2590         * trans.h (gfc_get_return_label): Removed.
2591         (gfc_generate_return): New method.
2592         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2593         returning a tree directly.
2594         * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
2595         (gfc_trans_block_construct): Update for new interface to
2596         `gfc_trans_deferred_vars'.
2597         * trans-decl.c (current_function_return_label): Removed.
2598         (current_procedure_symbol): New variable.
2599         (gfc_get_return_label): Removed.
2600         (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
2601         returning a tree directly.
2602         (get_proc_result), (gfc_generate_return): New methods.
2603         (gfc_generate_function_code): Clean up and do init/cleanup here
2604         also with gfc_wrapped_block.  Remove return-label but rather
2605         return directly.
2607 2010-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
2609         PR fortran/44929
2610         * fortran/match.c (match_type_spec): Check for derived type before
2611         intrinsic types.
2613 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2615         PR fortran/42385
2616         * interface.c (matching_typebound_op): Add argument for the
2617         return of the generic name for the procedure.
2618         (build_compcall_for_operator): Add an argument for the generic
2619         name of an operator procedure and supply it to the expression.
2620         (gfc_extend_expr, gfc_extend_assign): Use the generic name in
2621         calls to the above procedures.
2622         * resolve.c (resolve_typebound_function): Catch procedure
2623         component calls for CLASS objects, check that the vtable is
2624         complete and insert the $vptr and procedure components, to make
2625         the call.
2626         (resolve_typebound_function): The same.
2627         * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
2628         an allocatable scalar if it is a result.
2630 2010-07-19  Paul Thomas  <pault@gcc.gnu.org>
2632         PR fortran/44353
2633         * match.c (gfc_match_iterator): Reverted.
2635 2010-07-18  Paul Thomas  <pault@gcc.gnu.org>
2637         PR fortran/44353
2638         * match.c (gfc_match_iterator): Remove error that iterator
2639         cannot be INTENT(IN).
2641 2010-07-17  Mikael Morin  <mikael@gcc.gnu.org>
2643         * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
2644         Access subscript through the "dim" field index.
2645         (gfc_trans_create_temp_array): Access ss info through the "dim" field
2646         index.
2647         (gfc_conv_array_index_offset): Ditto.
2648         (gfc_conv_loop_setup): Ditto.
2649         (gfc_conv_expr_descriptor): Ditto.
2650         (gfc_conv_ss_startstride): Ditto.  Update call to
2651         gfc_conv_section_startstride.
2652         (gfc_conv_section_startstride): Set values along the array dimension.
2653         Get array dimension directly from the argument.
2655 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2657         * trans.h (gfc_string_to_single_character): New prototype.
2658         * trans-expr.c (string_to_single_character): Renamed to ...
2659         (gfc_string_to_single_character): ... this.  No longer static.
2660         (gfc_conv_scalar_char_value, gfc_build_compare_string,
2661         gfc_trans_string_copy): Adjust callers.
2662         * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
2663         * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
2664         (select_struct): Move to toplevel, add GTY(()).
2665         (gfc_trans_character_select): Optimize SELECT CASE
2666         with character length 1.
2668 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2670         * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2671         * trans-common.c: Likewise.
2672         * trans-decl.c: Likewise.
2673         * trans-types.c: Likewise.
2674         * trans.c: Likewise.
2676 2010-07-15  Janus Weil  <janus@gcc.gnu.org>
2678         PR fortran/44936
2679         * resolve.c (resolve_typebound_generic_call): Resolve generic
2680         non-polymorphic type-bound procedure calls to the correct specific
2681         procedure.
2682         (resolve_typebound_subroutine): Remove superfluous code.
2684 2010-07-15  Daniel Kraft  <d@domob.eu>
2686         PR fortran/44709
2687         * trans.h (struct gfc_wrapped_block): New struct.
2688         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2689         (gfc_finish_wrapped_block): New method.
2690         (gfc_init_default_dt): Add new init code to block rather than
2691         returning it.
2692         * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
2693         (gfc_trans_dummy_array_bias): Ditto.
2694         (gfc_trans_g77_array): Ditto.
2695         (gfc_trans_deferred_array): Ditto.
2696         * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
2697         (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
2698         (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
2699         (gfc_finish_wrapped_block): New method.
2700         * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
2701         (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
2702         (gfc_trans_deferred_array): Ditto.
2703         * trans-decl.c (gfc_trans_dummy_character): Ditto.
2704         (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
2705         (init_intent_out_dt): Ditto.
2706         (gfc_init_default_dt): Add new init code to block rather than
2707         returning it.
2708         (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
2709         and cleanup code and put it all together.
2711 2010-07-15  Jakub Jelinek  <jakub@redhat.com>
2713         * trans.h (gfc_build_compare_string): Add CODE argument.
2714         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
2715         gfc_build_compare_string.
2716         * trans-expr.c (gfc_conv_expr_op): Pass CODE to
2717         gfc_build_compare_string.
2718         (string_to_single_character): Rename len variable to length.
2719         (gfc_optimize_len_trim): New function.
2720         (gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
2721         or NE_EXPR and one of the strings is string literal with LEN_TRIM
2722         bigger than the length of the other string, they compare unequal.
2724         PR fortran/40206
2725         * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
2726         in CASE_LABEL_EXPR and use NULL for low for the default case.
2728 2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>
2730         * trans-array.c (gfc_conv_section_upper_bound): Remove
2731         (gfc_conv_section_startstride): Don't set the upper bound in the
2732         vector subscript case.
2733         (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
2735 2010-07-14  Janus Weil  <janus@gcc.gnu.org>
2737         PR fortran/44925
2738         * gfortran.h (gfc_is_data_pointer): Remove prototype.
2739         * dependency.c (gfc_is_data_pointer): Make it static.
2740         * intrinsic.texi: Update documentation on C_LOC.
2741         * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
2742         and add a check for polymorphic variables.
2744 2010-07-14  Jakub Jelinek  <jakub@redhat.com>
2746         * trans-expr.c (string_to_single_character): Also optimize
2747         string literals containing a single char followed only by spaces.
2748         (gfc_trans_string_copy): Remove redundant string_to_single_character
2749         calls.
2751         * trans-decl.c (gfc_build_intrinsic_function_decls,
2752         gfc_build_builtin_function_decls): Mark functions as
2753         DECL_PURE_P or TREE_READONLY.
2755 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
2757         * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
2758         instead of build_function_call_expr.
2759         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
2761 2010-07-13  Tobias Burnus  <burnus@net-b.de>
2762             Daniel Franke  <franke.daniel@gmail.com>
2764         PR fortran/43665
2765         * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
2766         * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
2767         static.
2768         * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
2770 2010-07-13  Daniel Franke  <franke.daniel@gmail.com>
2771             Tobias Burnus  <burnus@net-b.de>
2773         PR fortran/43665
2774         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
2775         noclobber/noescape annotations to function calls.
2776         (gfc_build_builtin_function_decls): Likewise.
2778 2010-07-13  Janus Weil  <janus@gcc.gnu.org>
2780         PR fortran/44434
2781         PR fortran/44565
2782         PR fortran/43945
2783         PR fortran/44869
2784         * gfortran.h (gfc_find_derived_vtab): Modified prototype.
2785         * class.c (gfc_build_class_symbol): Modified call to
2786         'gfc_find_derived_vtab'.
2787         (add_proc_component): Removed, moved code into 'add_proc_comp'.
2788         (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
2789         generics.
2790         (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
2791         Removed treatment of generics.
2792         (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
2793         Call 'add_proc_comp' instead of duplicating code.
2794         (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
2795         and 'declared'.
2796         (add_generic_specifics,add_generics_to_declared_vtab): Removed.
2797         (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
2798         Removed treatment of generics.
2799         * iresolve.c (gfc_resolve_extends_type_of): Modified call to
2800         'gfc_find_derived_vtab'.
2801         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
2802         Removed treatment of generics.
2803         (resolve_select_type,resolve_fl_derived): Modified call to
2804         'gfc_find_derived_vtab'.
2805         * trans-decl.c (gfc_get_symbol_decl): Ditto.
2806         * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
2807         Ditto.
2808         * trans-stmt.c (gfc_trans_allocate): Ditto.
2810 2010-07-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2812         PR fortran/37077
2813         * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
2814         internal unit.
2816 2010-07-12  Mikael Morin  <mikael@gcc.gnu.org>
2818         * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
2819         * resolve.c (build_default_init_expr): Ditto.
2821 2010-07-11  Tobias Burnus  <burnus@net-b.de>
2823         PR fortran/44702
2824         * module.c (sort_iso_c_rename_list): Remove.
2825         (import_iso_c_binding_module,use_iso_fortran_env_module):
2826         Allow multiple imports of the same symbol.
2828 2010-07-11  Mikael Morin  <mikael@gcc.gnu.org>
2830         * arith.c (gfc_arith_done_1): Release mpfr internal caches.
2832 2010-07-11  Janus Weil  <janus@gcc.gnu.org>
2834         PR fortran/44869
2835         * decl.c (build_sym,attr_decl1): Only build the class container if the
2836         symbol has sufficient attributes.
2837         * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
2838         pointer attribute for classes.
2839         * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
2840         * module.c (MOD_VERSION): Bump.
2841         (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
2842         (mio_symbol_attribute): Handle class_pointer attribute.
2843         * parse.c (parse_derived): Use class_pointer instead of pointer
2844         attribute for classes.
2845         * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
2846         * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
2847         resolve_allocate_expr,resolve_fl_derived): Ditto.
2848         (resolve_fl_var_and_proc): Check for class_ok attribute.
2850 2010-07-10  Mikael Morin  <mikael@gcc.gnu.org>
2852         * trans-io.c (gfc_build_st_parameter): Update calls to
2853         gfc_add_field_to_struct.
2854         * trans-stmt.c (ADD_FIELD): Ditto.
2855         * trans-types.c
2856         (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
2857         C_ADDRESS field.
2858         (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
2859         fieldlist, remove fieldlist from argument list.
2860         (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
2861         and remove fieldlist from argument list.
2862         (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
2863         gfc_get_mixed_entry_union): Move setting
2864         TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
2865         * trans-types.h (gfc_add_field_to_struct): Update prototype.
2867 2010-07-10  Paul Thomas  <pault@gcc.gnu.org>
2869         PR fortran/44773
2870         * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
2871         if the lhs has never been host associated, as well as not being
2872         use associated, a pointer or a target.
2873         * resolve.c (resolve_variable): Mark variables that are host
2874         associated.
2875         * gfortran.h: Add the host_assoc bit to the symbol_attribute
2876         structure.
2878 2010-07-09  Janus Weil  <janus@gcc.gnu.org>
2880         * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
2881         STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
2882         SIZEOF and C_SIZEOF.
2884 2010-07-08  Janus Weil  <janus@gcc.gnu.org>
2886         PR fortran/44649
2887         * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
2888         * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
2889         gfc_resolve_storage_size): New prototypes.
2890         * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
2891         * intrinsic.c (add_functions): Add STORAGE_SIZE.
2892         * iresolve.c (gfc_resolve_storage_size): New function.
2893         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
2894         arguments.
2895         (gfc_conv_intrinsic_storage_size): New function.
2896         (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
2898 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
2900         PR fortran/44847
2901         * match.c (match_exit_cycle): Error on EXIT also from collapsed
2902         !$omp do loops.  Error on CYCLE to non-innermost collapsed
2903         !$omp do loops.
2905 2010-07-08  Tobias Burnus  <burnus@net-b.de>
2907         PR fortran/18918
2908         * array.c (gfc_match_array_ref): Better error message for
2909         coarrays with too few ranks.
2910         (match_subscript): Move one diagnostic to caller.
2911         * gfortran.h (gfc_get_corank): Add prottype.
2912         * expr.c (gfc_get_corank): New function.
2913         * iresolve.c (resolve_bound): Fix rank for cobounds.
2914         (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
2915         gfc_resolve_ucobound, gfc_resolve_this_image): Update
2916         resolve_bound call.
2918 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2920         PR fortran/44742
2921         * array.c (gfc_expand_constructor): Add optional diagnostic.
2922         * gfortran.h (gfc_expand_constructor): Update prototype.
2923         * expr.c (gfc_simplify_expr, check_init_expr,
2924         gfc_reduce_init_expr): Update gfc_expand_constructor call.
2925         * resolve.c (gfc_resolve_expr): Ditto.
2927 2010-07-06  Tobias Burnus  <burnus@net-b.de>
2929         * trans-decl.c: Include diagnostic-core.h besides toplev.h.
2930         * trans-intrinsic.c: Ditto.
2931         * trans-types.c: Ditto.
2932         * convert.c: Include diagnostic-core.h instead of toplev.h.
2933         * options.c: Ditto.
2934         * trans-array.c: Ditto.
2935         * trans-const.c: Ditto.
2936         * trans-expr.c: Ditto.
2937         * trans-io.c: Ditto.
2938         * trans-openmp.c: Ditto.
2939         * trans.c: Ditto.
2941 2010-07-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2943         PR fortran/PR44693
2944         * check.c (dim_rank_check):  Also check intrinsic functions.
2945         Adjust permissible rank for functions which reduce the rank of
2946         their argument.  Spread is an exception, where DIM can
2947         be one larger than the rank of array.
2949 2010-07-05  Steven G. Kargl  <kargl@gcc.gnu.org>
2951         PR fortran/44797
2952         * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
2954 2010-07-05  Paul Thomas  <pault@gcc.gnu.org>
2956         PR fortran/44596
2957         * trans-types.c (gfc_get_derived_type): Derived type fields
2958         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
2959         but build_pointer_type_for_mode must be used for this.
2961 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
2963         * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
2964         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
2965         type of gfc_conv_procedure_call.
2966         (conv_generic_with_optional_char_arg): Likewise.
2967         * trans-stmt.c (gfc_trans_call): Likewise.
2968         * trans-expr.c (gfc_conv_function_expr): Likewise.
2969         (gfc_conv_procedure_call): Use build_call_vec instead of
2970         build_call_list.
2972 2010-07-04  Daniel Kraft  <d@domob.eu>
2974         * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
2976 2010-07-04  Paul Thomas  <pault@gcc.gnu.org>
2978         PR fortran/44596
2979         PR fortran/44745
2980         * trans-types.c (gfc_get_derived_type): Derived type fields
2981         with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
2983 2010-07-02  Mikael Morin  <mikael@gcc.gnu.org>
2985         PR fortran/44662
2986         * decl.c (match_procedure_in_type): Clear structure before using.
2987         (gfc_match_generic): Ditto.
2989 2010-07-02  Nathan Froyd  <froydnj@codesourcery.com>
2991         * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
2992         * trans-types.c (gfc_add_field_to_struct_1): New function, most
2993         of which comes from...
2994         (gfc_add_field_to_struct): ...here.  Call it.  Add new parameter.
2995         (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
2996         building fields.
2997         (gfc_get_array_descriptor_base): Likewise.
2998         (gfc_get_mixed_entry_union): Likewise.
2999         (gfc_get_derived_type): Add extra chain parameter for
3000         gfc_add_field_to_struct.
3001         * trans-stmt.c (gfc_trans_character_select): Likewise.
3002         * trans-io.c (gfc_build_st_parameter): Likewise.
3004 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
3006         PR fortran/44718
3007         * resolve.c (is_external_proc): Prevent procedure pointers from being
3008         regarded as external procedures.
3010 2010-06-29  Janus Weil  <janus@gcc.gnu.org>
3012         PR fortran/44696
3013         * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
3014         passed as second argument of ASSOCIATED.
3016 2010-06-29  Paul Thomas  <pault@gcc.gnu.org>
3018         PR fortran/44582
3019         * trans-expr.c (arrayfunc_assign_needs_temporary): New function
3020         to determine if a function assignment can be made without a
3021         temporary.
3022         (gfc_trans_arrayfunc_assign): Move all the conditions that
3023         suppress the direct function call to the above new functon and
3024         call it.
3026 2010-06-28  Paul Thomas  <pault@gcc.gnu.org>
3028         PR fortran/40158
3029         * interface.c (argument_rank_mismatch): New function.
3030         (compare_parameter): Call new function instead of generating
3031         the error directly.
3033 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
3035         * trans-openmp.c (dovar_init): Define.  Define VECs containing it.
3036         (gfc_trans_omp_do): Use a VEC to accumulate variables and their
3037         initializers.
3039 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
3041         * Make-lang.in: Update dependencies.
3043 2010-06-27  Nathan Froyd  <froydnj@codesourcery.com>
3045         * gfortran.h (gfc_code): Split backend_decl field into cycle_label
3046         and exit_label fields.
3047         * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
3048         individually.
3049         * trans-stmt.c (gfc_trans_simple_do): Likewise.
3050         (gfc_trans_do): Likewise.
3051         (gfc_trans_do_while): Likewise.
3052         (gfc_trans_cycle): Use cycle_label directly.
3053         (gfc_trans_exit): Use exit_label directly.
3055 2010-06-27  Daniel Kraft  <d@domob.eu>
3057         * dump-parse-tree.c (show_symbol): Dump target-expression for
3058         associate names.
3059         (show_code_node): Make distinction between BLOCK and ASSOCIATE.
3060         (show_namespace): Use show_level for correct indentation of
3061         "inner namespaces" (contained procedures or BLOCK).
3063 2010-06-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
3065         PR fortran/44678
3066         * dump-parse-tree.c (show_code_node):  Show namespace for
3067         EXEC_BLOCK.
3069 2010-06-26  Tobias Burnus  <burnus@net-b.de>
3071         * decl.c (gfc_match_decl_type_spec): Support
3072         TYPE(intrinsic-type-spec).
3074 2010-06-25  Tobias Burnus  <burnus@net-b.de>
3076         * intrinsic.h (gfc_check_selected_real_kind,
3077         gfc_simplify_selected_real_kind): Update prototypes.
3078         * intrinsic.c (add_functions): Add radix support to
3079         selected_real_kind.
3080         * check.c (gfc_check_selected_real_kind): Ditto.
3081         * simplify.c (gfc_simplify_selected_real_kind): Ditto.
3082         * trans-decl.c (gfc_build_intrinsic_function_decls):
3083         Change call from selected_real_kind to selected_real_kind2008.
3084         * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
3085         (PRECISION, RANGE, RADIX): Add cross @refs.
3087 2010-06-25  Tobias Burnus  <burnus@net-b.de>
3089         * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
3090         * gfortran.texi (_gfortran_set_options): Update for
3091         GFC_STD_F2008_OBS addition.
3092         * libgfortran.h: Add GFC_STD_F2008_OBS.
3093         * options.c (set_default_std_flags, gfc_handle_option): Handle
3094         GFC_STD_F2008_OBS.
3095         io.c (check_format): Fix allow_std check.
3097 2010-06-25  Tobias Burnus  <burnus@net-b.de>
3099         * decl.c (gfc_match_entry): Allow END besides
3100         END SUBROUTINE/END FUNCTION for contained procedures.
3102 2010-06-25  Tobias Burnus  <burnus@net-b.de>
3104         * parse.c (next_free, next_fixed): Allow ";" as first character.
3106 2010-06-24  Tobias Burnus  <burnus@net-b.de>
3108         PR fortran/44614
3109         * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
3111 2010-06-22  Janus Weil  <janus@gcc.gnu.org>
3113         PR fortran/44616
3114         * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
3115         containers.
3117 2010-06-21  Tobias Burnus  <burnus@net-b.de>
3119         PR fortran/40632
3120         * interface.c (compare_parameter): Add gfc_is_simply_contiguous
3121         checks.
3122         * symbol.c (gfc_add_contiguous): New function.
3123         (gfc_copy_attr, check_conflict): Handle contiguous attribute.
3124         * decl.c (match_attr_spec): Ditto.
3125         (gfc_match_contiguous): New function.
3126         * resolve.c (resolve_fl_derived, resolve_symbol): Handle
3127         contiguous.
3128         * gfortran.h (symbol_attribute): Add contiguous.
3129         (gfc_is_simply_contiguous): Add prototype.
3130         (gfc_add_contiguous): Add prototype.
3131         * match.h (gfc_match_contiguous): Add prototype.
3132         * parse.c (decode_specification_statement,
3133         decode_statement): Handle contiguous attribute.
3134         * expr.c (gfc_is_simply_contiguous): New function.
3135         * dump-parse-tree.c (show_attr): Handle contiguous.
3136         * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
3137         Ditto.
3138         * trans-expr.c (gfc_add_interface_mapping): Copy
3139         attr.contiguous.
3140         * trans-array.c (gfc_conv_descriptor_stride_get,
3141         gfc_conv_array_parameter): Handle contiguous arrays.
3142         * trans-types.c (gfc_build_array_type, gfc_build_array_type,
3143         gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
3144         Ditto.
3145         * trans.h (gfc_array_kind): Ditto.
3146         * trans-decl.c (gfc_get_symbol_decl): Ditto.
3148 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
3150         * options.c (gfc_handle_option): Don't handle N_OPTS.
3152 2010-06-19  Janus Weil  <janus@gcc.gnu.org>
3154         PR fortran/44584
3155         * resolve.c (resolve_fl_derived): Reverse ordering of conditions
3156         to avoid ICE.
3158 2010-06-18  Tobias Burnus  <burnus@net-b.de>
3160         PR fortran/44556
3161         * resolve.c (resolve_allocate_deallocate): Properly check
3162         part-refs in stat=/errmsg= for invalid use.
3164 2010-06-17  Janus Weil  <janus@gcc.gnu.org>
3166         PR fortran/44558
3167         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
3168         Return directly in case of an error.
3170 2010-06-16  Janus Weil  <janus@gcc.gnu.org>
3172         PR fortran/44549
3173         * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
3174         * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
3175         structure to each procedure in a procedure list.
3176         * module.c (mio_typebound_proc): Add NULL argument to
3177         'gfc_get_typebound_proc'.
3178         * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
3179         to initialize the new structure.
3181 2010-06-15  Janus Weil  <janus@gcc.gnu.org>
3183         PR fortran/43388
3184         * gfortran.h (gfc_expr): Add new member 'mold'.
3185         * match.c (gfc_match_allocate): Implement the MOLD tag.
3186         * resolve.c (resolve_allocate_expr): Ditto.
3187         * trans-stmt.c (gfc_trans_allocate): Ditto.
3189 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
3191         PR fortran/44536
3192         * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
3193         OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
3194         GFC_DECL_SAVED_DESCRIPTOR set.
3195         (gfc_omp_report_decl): New function.
3196         * trans.h (gfc_omp_report_decl): New prototype.
3197         * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
3199 2010-06-13  Daniel Franke  <franke.daniel@gmail.com>
3201         PR fortran/31588
3202         PR fortran/43954
3203         * gfortranspec.c (lang_specific_driver): Removed deprecation
3204         warning for -M.
3205         * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
3206         * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
3207         * cpp.h (gfc_cpp_makedep): New.
3208         (gfc_cpp_add_dep): New.
3209         (gfc_cpp_add_target): New.
3210         * cpp.c (gfc_cpp_option): Add deps* members.
3211         (gfc_cpp_makedep): New.
3212         (gfc_cpp_add_dep): New.
3213         (gfc_cpp_add_target): New.
3214         (gfc_cpp_init_options): Initialize new options.
3215         (gfc_cpp_handle_option): Handle new options.
3216         (gfc_cpp_post_options): Map new options to libcpp-options.
3217         (gfc_cpp_init): Handle deferred -MQ and -MT options.
3218         (gfc_cpp_done): If requested, write dependencies to file.
3219         * module.c (gfc_dump_module): Add a module filename as target.
3220         * scanner.c (open_included_file): New parameter system; add the
3221         included file as dependency.
3222         (gfc_open_included_file): Add the included file as dependency.
3223         (gfc_open_intrinsic_module): Likewise.
3224         * invoke.texi: Removed deprecation warning for -M.
3225         * gfortran.texi: Removed Makefile-dependencies project.
3227 2010-06-12  Daniel Franke  <franke.daniel@gmail.com>
3229         * resolve.c (resolve_global_procedure): Improved checking if an
3230         explicit interface is required.
3232 2010-06-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3234         * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
3235         return type.
3236         * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
3237         (gfc_conv_intrinsic_ttynam): Likewise.
3238         (gfc_conv_intrinsic_trim): Likewise.
3240 2010-06-12  Janus Weil  <janus@gcc.gnu.org>
3242         PR fortran/40117
3243         * decl.c (match_procedure_in_type): Allow procedure lists (F08).
3245 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3247         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
3249 2010-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3251         * mathbuiltins.def: Add builtins that do not directly correspond
3252         to a Fortran intrinsic, with new macro OTHER_BUILTIN.
3253         * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
3254         * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
3255         code_{r,c}{4,8,10,16} fields. Add
3256         {,complex}{float,double,long_double}_built_in fields.
3257         (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
3258         DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
3259         definition of OTHER_BUILTIN.
3260         (real_compnt_info): Remove unused struct.
3261         (builtin_decl_for_precision, builtin_decl_for_float_kind): New
3262         functions.
3263         (build_round_expr): Call builtin_decl_for_precision instead of
3264         series of if-else.
3265         (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
3266         instead of a switch.
3267         (gfc_build_intrinsic_lib_fndecls): Match
3268         {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
3269         (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
3270         kinds.
3271         (gfc_conv_intrinsic_lib_function): Go through all the extended
3272         gfc_intrinsic_map.
3273         (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
3274         instead of a switch.
3275         (gfc_conv_intrinsic_abs): Likewise.
3276         (gfc_conv_intrinsic_mod): Likewise.
3277         (gfc_conv_intrinsic_sign): Likewise.
3278         (gfc_conv_intrinsic_fraction): Likewise.
3279         (gfc_conv_intrinsic_nearest): Likewise.
3280         (gfc_conv_intrinsic_spacing): Likewise.
3281         (gfc_conv_intrinsic_rrspacing): Likewise.
3282         (gfc_conv_intrinsic_scale): Likewise.
3283         (gfc_conv_intrinsic_set_exponent): Likewise.
3285 2010-06-11  Paul Thomas  <pault@gcc.gnu.org>
3287         PR fortran/42051
3288         PR fortran/43896
3289         * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
3290         functions with CLASS formal arguments.
3292 2010-06-10  Janus Weil  <janus@gcc.gnu.org>
3294         PR fortran/44207
3295         * resolve.c (conformable_arrays): Handle allocatable components.
3297 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3299         PR fortran/38273
3300         * gfortran.texi: Document that Cray pointers cannot be function
3301         results.
3303 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3305         PR fortran/36234
3306         * gfortran.texi: Document lack of support for syntax
3307         "complex FUNCTION name*16()", and existence of alternative
3308         legacy syntax "complex*16 FUNCTION name()".
3310 2010-06-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3312         PR fortran/43032
3313         * intrinsic.texi (FLUSH): Note the difference between FLUSH and
3314         POSIX's fsync(), and how to call the latter from Fortran code.
3316 2010-06-10  Daniel Franke  <franke.daniel@gmail.com>
3318         PR fortran/44457
3319         * interface.c (compare_actual_formal): Reject actual arguments with
3320         array subscript passed to ASYNCHRONOUS dummys.
3322 2010-06-10  Daniel Kraft  <d@domob.eu>
3324         PR fortran/38936
3325         * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
3326         (struct gfc_symbol): New field `assoc'.
3327         (struct gfc_association_list): New struct.
3328         (struct gfc_code): New struct `block' in union, move `ns' there
3329         and add association list.
3330         (gfc_free_association_list): New method.
3331         (gfc_has_vector_subscript): Made public;
3332         * match.h (gfc_match_associate): New method.
3333         * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
3334         * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
3335         * interface.c (gfc_has_vector_subscript): Made public.
3336         (compare_actual_formal): Rename `has_vector_subscript' accordingly.
3337         * match.c (gfc_match_associate): New method.
3338         (gfc_match_select_type): Change reference to gfc_code's `ns' field.
3339         * primary.c (match_variable): Don't allow names associated to expr here.
3340         * parse.c (decode_statement): Try matching ASSOCIATE statement.
3341         (case_exec_markers, case_end): Add ASSOCIATE statement.
3342         (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
3343         (parse_associate): New method.
3344         (parse_executable): Handle ST_ASSOCIATE.
3345         (parse_block_construct): Change reference to gfc_code's `ns' field.
3346         * resolve.c (resolve_select_type): Ditto.
3347         (resolve_code): Ditto.
3348         (resolve_block_construct): Ditto and add comment.
3349         (resolve_select_type): Set association list in generated BLOCK to NULL.
3350         (resolve_symbol): Resolve associate names.
3351         * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
3352         and free association list.
3353         (gfc_free_association_list): New method.
3354         * symbol.c (gfc_new_symbol): NULL new field `assoc'.
3355         * trans-stmt.c (gfc_trans_block_construct): Change reference to
3356         gfc_code's `ns' field.
3358 2010-06-10  Kai Tietz  <kai.tietz@onevision.com>
3360         * error.c (error_print): Pre-initialize loc by NULL.
3361         * openmp.c (resolve_omp_clauses): Add explicit
3362         braces to avoid ambigous else.
3363         * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
3365 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
3367         * gfc-internals.texi: Move to GFDL 1.3.
3368         * gfortran.texi: Ditto.
3369         * intrinsic.texi: Ditto.
3370         * invoke.texi: Ditto.
3372 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
3374         PR fortran/44347
3375         * check.c (gfc_check_selected_real_kind): Verify that the
3376         actual arguments are scalar.
3378 2010-06-09  Daniel Franke  <franke.daniel@gmail.com>
3380         PR fortran/44359
3381         * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
3383 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
3385         PR fortran/44430
3386         * dump-parse-tree.c (show_symbol): Avoid infinite loop.
3388 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3390         * fortran/symbol.c (check_conflict):  Remove an invalid conflict check.
3392 2010-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
3394         * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
3395         gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
3396         * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
3397         gfc_check_ibclr, and gfc_check_ibset.  Add prototype for
3398         gfc_check_bitfcn.
3399         * fortran/check.c (nonnegative_check, less_than_bitsize1, 
3400         less_than_bitsize2): New functions.
3401         (gfc_check_btest): Renamed to gfc_check_bitfcn.  Use
3402         nonnegative_check and less_than_bitsize1.
3403         (gfc_check_ibclr, gfc_check_ibset): Removed.
3404         (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
3405         less_than_bitsize1.
3407 2010-06-09  Janus Weil  <janus@gcc.gnu.org>
3409         PR fortran/44211
3410         * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
3411         Resolve references.
3413 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
3415         * resolve.c (resolve_deallocate_expr): Avoid warning
3416         about possible use of iunitialized sym.
3417         (resolve_allocate_expr): Pre-initialize sym by NULL.
3419 2010-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3421         PR fortran/43040
3422         * f95-lang.c (gfc_init_builtin_functions): Remove comment.
3424 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3426         * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
3427         allocation.
3428         (gfc_get_array_type_bounds): Likewise.
3430         * trans-decl.c (gfc_allocate_lang_decl): Likewise.
3431         (gfc_find_module): Likewise.
3433         * f95-lang.c (pushlevel): Likewise.
3435         * trans.h (struct lang_type): Add variable_size GTY option.
3436         (struct lang_decl): Likewise.
3438 2010-06-08  Tobias Burnus  <burnus@net-b.de>
3440         PR fortran/44446
3441         * symbol.c (check_conflict): Move protected--external/procedure check ...
3442         * resolve.c (resolve_select_type): ... to the resolution stage.
3444 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3446         * options.c (gfc_handle_option): Fix -fno-recursive.
3448 2010-06-07  Tobias Burnus  <burnus@net-b.de>
3450         * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
3451         * gfortran.texi (copyrights-gfortran): Ditto.
3453 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
3455         * lang.opt (fshort-enums): Define using Var and VarExists.
3456         * options.c (gfc_handle_option): Don't set flag_short_enums here.
3458 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3459             Janus Weil  <janus@gcc.gnu.org>
3461         PR fortran/43945
3462         * resolve.c (get_declared_from_expr): Move to before
3463         resolve_typebound_generic_call.  Make new_ref and class_ref
3464         ignorable if set to NULL.
3465         (resolve_typebound_generic_call): Once we have resolved the
3466         generic call, check that the specific instance is that which
3467         is bound to the declared type.
3468         (resolve_typebound_function,resolve_typebound_subroutine): Avoid
3469         freeing 'class_ref->next' twice.
3471 2010-06-05  Paul Thomas  <pault@gcc.gnu.org>
3473         PR fortran/43895
3474         * trans-array.c (structure_alloc_comps): Dereference scalar
3475         'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
3476         TREE_TYPE (decl).
3478 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
3480         * gfortranspec.c (append_arg, lang_specific_driver): Use
3481         GCC-specific formats in diagnostics.
3483 2010-06-02  Tobias Burnus  <burnus@net-b.de>
3485         PR fortran/44360
3486         * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
3487         symbols.
3489 2010-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3491         PR fortran/44371
3492         * match.c (gfc_match_stopcode): Move gfc_match_eos call inside 
3493         condition block.
3495 2010-05-31  Steven G. Kargl  <kargl@gcc.gnu.org>
3497         * fortran/gfortran.texi:  Fix typos in description of variable-format-
3498         expressions.
3500 2010-05-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
3502         PR fortran/36928
3503         * dependency.c (gfc_check_section_vs_section):  Check
3504         for interleaving array assignments without conflicts.
3506 2010-05-30  Janus Weil  <janus@gcc.gnu.org>
3508         * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
3509         $data component of a class container.
3510         * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
3511         * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
3512         gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
3513         * gcc/fortran/interface.c (matching_typebound_op): Ditto.
3514         * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
3515         * gcc/fortran/parse.c (parse_derived): Ditto.
3516         * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
3517         gfc_expr_attr): Ditto.
3518         * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
3519         resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
3520         resolve_fl_var_and_proc, resolve_typebound_procedure,
3521         resolve_fl_derived): Ditto.
3522         * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
3523         * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
3524         CLASS_DATA.
3525         * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
3526         gfc_trans_deferred_vars): Ditto.
3527         * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
3529 2010-05-28  Tobias Burnus  <burnus@net-b.de>
3531         * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
3533 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3535         * gfortranspec.c (append_arg, lang_specific_driver): Use
3536         fatal_error instead of fatal.  Use warning instead of fprintf for
3537         warnings.
3539 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3541         * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
3542         * module.c (write_char, gfc_dump_module, gfc_use_module): Use
3543         xstrerror instead of strerror.
3545 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3547         * cpp.c (cb_cpp_error): Save and restore
3548         global_dc->warn_system_headers, not variable warn_system_headers.
3550 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3552         * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
3554 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3556         * trans-common.c: Do not include rtl.h, include output.h instead.
3557         * trans-decl.c: Likewise.
3559 2010-05-26  Paul Thomas  <pault@gcc.gnu.org>
3561         PR fortran/40011
3562         * resolve.c (resolve_global_procedure): Resolve the gsymbol's
3563         namespace before trying to reorder the gsymbols.
3565 2010-05-25  Daniel Franke  <franke.daniel@gmail.com>
3567         PR fortran/30668
3568         PR fortran/31346
3569         PR fortran/34260
3570         * resolve.c (resolve_global_procedure): Add check for global
3571         procedures with implicit interfaces and assumed-shape or optional
3572         dummy arguments. Verify that function return type, kind and string
3573         lengths match.
3575 2010-05-21  Tobias Burnus  <burnus@net-b.de>
3577         * gfortran.h: Do not include system.h.
3578         * bbt.c: Include system.h.
3579         * data.c: Ditto.
3580         * dependency.c: Ditto.
3581         * dump-parse-tree.c: Ditto.
3582         * arith.h: Do not include gfortran.h.
3583         * constructor.h: Do not include gfortran.h and splay-tree.h.
3584         * match.h: Do not include gfortran.h.
3585         * parse.h: Ditto.
3586         * target-memory.h: Ditto.
3587         * openmp.c: Do not include toplev.h and target.h.
3588         * trans-stmt.c: Ditto not include toplev.h.
3589         * primary.c: Ditto.
3590         * trans-common.c: Tell why toplev.h is needed. And
3591         do not include target.h.
3592         * trans-expr.c: Tell why toplev.h is needed.
3593         * trans-array.c: Ditto.
3594         * trans-openmp.c: Ditto.
3595         * trans-const.c: Ditto.
3596         * trans.c: Ditto.
3597         * trans-types.c: Ditto.
3598         * trans-io.c: Ditto.
3599         * trans-decl.c: Ditto.
3600         * scanner.c: Ditto.
3601         * convert.c: Ditto.
3602         * trans-intrinsic.c: Ditto.
3603         * options.c: Ditto.
3605 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3607         PR fortran/43851
3608         * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
3609         before returning MATCH_ERROR. Add check for scalar. Add check for
3610         default integer kind.
3612 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3614         PR fortran/44212
3615         * match.c (gfc_match_select_type): On error jump back out of the local
3616         namespace.
3617         * parse.c (parse_derived): Defer creation of vtab symbols to resolution
3618         stage, more precisely to ...
3619         * resolve.c (resolve_fl_derived): ... this place.
3621 2010-05-22  Janus Weil  <janus@gcc.gnu.org>
3623         PR fortran/44213
3624         * resolve.c (ensure_not_abstract): Allow abstract types with
3625         non-abstract ancestors.
3627 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3629         * trans-const.c: Include realmpfr.h.
3630         * Make-lang.in: Update dependencies.
3632 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3634         * trans-const.c, trans-types.c, trans-intrinsic.c:
3635         Clean up redundant includes.
3637 2010-05-20  Daniel Franke  <franke.daniel@gmail.com>
3639         PR fortran/38407
3640         * lang.opt (Wunused-dummy-argument): New option.
3641         * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
3642         * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
3643         (set_Wall): Enable warn_unused_dummy_argument.
3644         (gfc_handle_option): Set warn_unused_dummy_argument according to
3645         command line.
3646         * trans-decl.c (generate_local_decl): Separate warnings about
3647         unused variables and unused dummy arguments.
3648         * invoke.texi: Documented new option.
3650 2010-05-20  Steven Bosscher  <steven@gcc.gnu.org>
3652         * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
3653         (gfc_conv_string_tmp): Do not assert type comparibilty.
3654         *  trans-array.c: Do not include gimple.h, ggc.h, and real.h.
3655         (gfc_conv_expr_descriptor): Remove assert.
3656         * trans-common.c: Clarify why rtl.h and tm.h are included.
3657         * trans-openmp.c: Do not include ggc.h and real.h.
3658         Explain why gimple.h is included.
3659         * trans-const.c: Do not include ggc.h.
3660         * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
3661         * trans.c: Do not include ggc.h and real.h.
3662         Explain why gimple.h is included.
3663         * trans-types.c: Do not include tm.h.  Explain why langhooks.h
3664         and dwarf2out.h are included.
3665         * trans-io.c: Do not include gimple.h and real.h.
3666         * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
3667         * trans-intrinsic.c: Do not include gimple.h.  Explain why tm.h
3668         is included.
3670 2010-05-20  Tobias Burnus  <burnus@net-b.de>
3672         * options.c (gfc_init_options,gfc_post_options): Enable
3673         flag_associative_math by default.
3675 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3677         PR fortran/43851
3678         * trans-stmt.c (gfc_trans_stop): Add generation of call to
3679         gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
3680         blank STOP, handling a null expression. (gfc_trans_pause): Use
3681         pause_string for blank PAUSE.
3682         * trans.h: Add external function declaration for error_stop_numeric.
3683         * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
3684         the declaration for the library call. Adjust whitespaces.
3685         * match.c (gfc_match_stopcode): Remove use of the actual stop code to
3686         signal no stop code. Match the expression following the stop and pass
3687         that to the translators. Remove the old use of digit matching.  Add
3688         checks that the stop_code expression is INTEGER or CHARACTER, constant,
3689         and if CHARACTER, default character KIND.
3691 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3693         PR fortran/44055
3694         * lang.opt (Wconversion-extra): New option.
3695         * gfortran.h (gfc_option_t): Add warn_conversion_extra.
3696         * options.c (gfc_init_options): Disable -Wconversion-extra by default.
3697         (set_Wall): Enable -Wconversion.
3698         (gfc_handle_option): Set warn_conversion_extra.
3699         * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
3700         introduced for -Wconversion if -Wconversion-extra is present.
3701         * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
3702         -Wconversion; document -Wconversion-extra.
3704 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3706         PR fortran/42360
3707         * gfortran.h (gfc_has_default_initializer): New.
3708         * expr.c (gfc_has_default_initializer): New.
3709         * resolve.c (has_default_initializer): Removed, use
3710         gfc_has_default_initializer() instead. Updated all callers.
3711         * trans-array.c (has_default_initializer): Removed, use
3712         gfc_has_default_initializer() instead. Updated all callers.
3713         * trans-decl.c (generate_local_decl): Do not check the
3714         first component only to check for initializers, but use
3715         gfc_has_default_initializer() instead.
3717 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3719         PR fortran/38404
3720         * primary.c (match_string_constant): Move start_locus just inside 
3721         the string.
3722         * data.c (create_character_intializer): Clarified truncation warning.
3724 2010-05-19  Daniel Franke  <franke.daniel@gmail.com>
3726         PR fortran/34505
3727         * intrinsic.h (gfc_check_float): New prototype.
3728         (gfc_check_sngl): New prototype.
3729         * check.c (gfc_check_float): New.
3730         (gfc_check_sngl): New.
3731         * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
3732         to be a specific for REAL. Added check routines for FLOAT, DFLOAT
3733         and SNGL.
3734         * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
3735         added them to the list of specifics of REAL instead.
3737 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3739         PR fortran/43990
3740         * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
3741         This is now handled via 'gfc_class_null_initializer'.
3743 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3745         * class.c (gfc_add_component_ref,gfc_class_null_initializer,
3746         gfc_build_class_symbol,add_proc_component,add_proc_comps, 
3747         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3748         add_procs_to_declared_vtab,add_generic_specifics, 
3749         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3750         find_typebound_proc_uop,gfc_find_typebound_proc,
3751         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op, 
3752         gfc_get_tbp_symtree): Moved here from other places.
3753         * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
3754         class.c.
3755         * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
3756         gfc_find_typebound_proc,gfc_find_typebound_user_op,
3757         gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
3758         gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
3759         * Make-lang.in: Add class.o.
3760         * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
3761         add_procs_to_declared_vtab1,copy_vtab_proc_comps,
3762         add_procs_to_declared_vtab,add_generic_specifics,
3763         add_generics_to_declared_vtab,gfc_find_derived_vtab,
3764         find_typebound_proc_uop,gfc_find_typebound_proc,
3765         gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
3766         gfc_get_tbp_symtree): Move to class.c.
3768 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3770         * trans-types.c (gfc_init_types): Use build_function_type_list.
3771         (gfc_get_ppc_type): Likewise.
3772         * trans-decl.c (gfc_generate_constructors): Likewise.
3773         * f95-lang.c (build_builtin_fntypes): Likewise.
3774         (gfc_init_builtin_functions): Likewise.
3775         (DEF_FUNCTION_TYPE_0): Likewise.
3776         (DEF_FUNCTION_TYPE_1): Likewise.
3777         (DEF_FUNCTION_TYPE_2): Likewise.
3778         (DEF_FUNCTION_TYPE_3): Likewise.
3779         (DEF_FUNCTION_TYPE_4): Likewise.
3780         (DEF_FUNCTION_TYPE_5): Likewise.
3781         (DEF_FUNCTION_TYPE_6): Likewise.
3782         (DEF_FUNCTION_TYPE_7): Likewise.  Use ARG7.
3783         (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
3785 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3787         * trans-array.c (gfc_trans_array_constructor_value): Use
3788         build_constructor instead of build_constructor_from_list.
3789         (gfc_build_constant_array_constructor): Likewise.
3790         * trans-decl.c (create_main_function): Likewise.
3791         * trans-stmt.c (gfc_trans_character_select): Likewise.
3793 2010-05-17  Janus Weil  <janus@gcc.gnu.org>
3795         PR fortran/44044
3796         * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
3797         (resolve_fl_variable_derived): ... this place.
3798         (resolve_symbol): Make sure function symbols (and their result
3799         variables) are not resolved twice.
3801 2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
3803         PR fortran/35779
3804         * array.c (match_array_list): Revert change from 2010-05-13.
3806 2010-05-16  Richard Guenther  <rguenther@suse.de>
3808         * trans-decl.c (module_htab_decls_hash): Revert last change.
3810 2010-05-16  Richard Guenther  <rguenther@suse.de>
3812         * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
3814 2010-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3816         * options.c (set_Wall): Remove special logic for Wuninitialized
3817         without -O.
3819 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3821         PR fortran/44154
3822         PR fortran/42647
3823         * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
3824         if branches.
3826 2010-05-15  Janus Weil  <janus@gcc.gnu.org>
3828         PR fortran/43207
3829         PR fortran/43969
3830         * gfortran.h (gfc_class_null_initializer): New prototype.
3831         * expr.c (gfc_class_null_initializer): New function to build a NULL
3832         initializer for CLASS pointers.
3833         * symbol.c (gfc_build_class_symbol): Modify internal naming of class
3834         containers. Remove default NULL initialization of $data component.
3835         * trans.c (gfc_allocate_array_with_status): Fix wording of an error 
3836         message.
3837         * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
3838         Use new function 'gfc_class_null_initializer'.
3839         * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
3840         class variables.
3842 2010-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3844         PR fortran/44135
3845         * fortran/interface.c (get_sym_storage_size): Use signed instead of
3846         unsigned mpz_get_?i routines.
3848 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
3850         * trans.c (trans_code): Set backend locus early.
3851         * trans-decl.c (gfc_get_fake_result_decl): Use source location
3852         of the function instead of current input_location.
3854 2010-05-13  Daniel Franke  <franke.daniel@gmail.com>
3856         PR fortran/35779
3857         * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
3858         Updated all usages.
3859         * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
3860         * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
3861         iterators.
3863 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
3865         PR fortran/44036
3866         * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
3867         variable lists.
3868         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
3869         by reference dummy procedures or non-dummy procedure pointers.
3870         (gfc_omp_predetermined_sharing): Return
3871         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
3873 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3875         PR fortran/43711
3876         * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
3877         after OMP statement.
3878         (gfc_match_omp_critical): Likewise.
3879         (gfc_match_omp_flush): Likewise.
3880         (gfc_match_omp_workshare): Likewise.
3881         (gfc_match_omp_master): Likewise.
3882         (gfc_match_omp_ordered): Likewise.
3883         (gfc_match_omp_atomic): Likewise.
3884         (gfc_match_omp_barrier): Likewise.
3885         (gfc_match_omp_end_nowait): Likewise.
3887 2010-05-11  Daniel Franke  <franke.daniel@gmail.com>
3889         PR fortran/31820
3890         * resolve.c (validate_case_label_expr): Removed FIXME.
3891         (resolve_select): Raise default warning on case labels out of range
3892         of the case expression.
3894 2010-05-10  Daniel Franke  <franke.daniel@gmail.com>
3896         PR fortran/27866
3897         PR fortran/35003
3898         PR fortran/42809
3899         * intrinsic.c (gfc_convert_type_warn): Be more discriminative
3900         about conversion warnings.
3902 2010-05-10  Janus Weil  <janus@gcc.gnu.org>
3904         PR fortran/44044
3905         * match.c (gfc_match_select_type): Move error message to
3906         resolve_select_type.
3907         * resolve.c (resolve_select_type): Error message moved here from
3908         gfc_match_select_type. Correctly set type of temporary.
3910 2010-05-10  Richard Guenther  <rguenther@suse.de>
3912         * trans-decl.c (gfc_build_library_function_decl): Split out
3913         worker to ...
3914         (build_library_function_decl_1): ... this new function.
3915         Set a fnspec attribute if a specification was provided.
3916         (gfc_build_library_function_decl_with_spec): New function.
3917         (gfc_build_intrinsic_function_decls): Annotate internal_pack
3918         and internal_unpack.
3920 2010-05-07  Daniel Franke  <franke.daniel@gmail.com>
3922         PR fortran/40728
3923         * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
3924         as external.
3926 2010-05-07  Jason Merrill  <jason@redhat.com>
3928         * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
3929         to avoid -Wc++-compat warning.
3931 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3933         PR 40989
3934         * options.c (gfc_handle_option): Add argument kind.
3935         * gfortran.h (gfc_handle_option): Update declaration.
3937 2010-05-06  Tobias Burnus  <burnus@net-b.de>
3939         PR fortran/43985
3940         * trans-types.c (gfc_sym_type): Mark Cray pointees as
3941         GFC_POINTER_TYPE_P.
3943 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3945         PR fortran/32331
3946         * resolve.c (traverse_data_list): Rephrase error message for
3947         non-constant bounds in data-implied-do.
3949 2010-05-05  Daniel Franke  <franke.daniel@gmail.com>
3951         PR fortran/24978
3952         * gfortran.h: Removed repeat count from constructor, removed
3953         all usages.
3954         * data.h (gfc_assign_data_value_range): Changed return value from
3955         void to gfc_try.
3956         * data.c (gfc_assign_data_value): Add location to constructor element.
3957         (gfc_assign_data_value_range): Call gfc_assign_data_value()
3958         for each element in range. Return early if an error was generated.
3959         * resolve.c (check_data_variable): Stop early if range assignment
3960         generated an error.
3962 2010-05-05  Janus Weil  <janus@gcc.gnu.org>
3964         PR fortran/43696
3965         * resolve.c (resolve_fl_derived): Some fixes for class variables.
3966         * symbol.c (gfc_build_class_symbol): Add separate class container for
3967         class pointers.
3969 2010-05-03  Steven G. Kargl  <kargl@gcc.gnu.org>
3971         PR fortran/43592
3972         * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
3974 2010-05-02  Tobias Burnus  <burnus@net-b.de>
3976         PR fortran/18918
3977         * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
3978         for lcobound, ucobound, image_index and this_image.
3979         * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
3980         gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
3981         * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
3982         gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
3983         functions.
3984         (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
3986 2010-04-30  Tobias Burnus  <burnus@net-b.de>
3988         PR fortran/18918
3989         PR fortran/43931
3990         *  trans-types.c (gfc_get_array_descriptor_base): Fix index
3991         calculation for array descriptor types.
3993 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
3995         PR fortran/43896
3996         * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
3997         initializers for PPC members of the vtabs.
3999 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
4001         PR fortran/42274
4002         * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
4003         attribute for all PPC members of the vtypes.
4004         (copy_vtab_proc_comps): Copy the correct interface.
4005         * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
4006         * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
4007         a dummy argument and make sure all PPC members of the vtab are
4008         initialized correctly.
4009         (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
4010         in call to gfc_trans_assign_vtab_procs.
4011         * trans-stmt.c (gfc_trans_allocate): Ditto.
4013 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
4015         PR fortran/43326
4016         * resolve.c (resolve_typebound_function): Renamed
4017         resolve_class_compcall.Do all the detection of class references
4018         here.
4019         (resolve_typebound_subroutine): resolve_class_typebound_call
4020         renamed. Otherwise same as resolve_typebound_function.
4021         (gfc_resolve_expr): Call resolve_typebound_function.
4022         (resolve_code): Call resolve_typebound_subroutine.
4024 2010-04-29  Janus Weil  <janus@gcc.gnu.org>
4026         PR fortran/43492
4027         * resolve.c (resolve_typebound_generic_call): For CLASS methods
4028         pass back the specific symtree name, rather than the target
4029         name.
4031 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
4033         PR fortran/42353
4034         * resolve.c (resolve_structure_cons): Make the initializer of
4035         the vtab component 'extends' the same type as the component.
4037 2010-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4039         PR fortran/42680
4040         * interface.c (check_interface1): Pass symbol name rather than NULL to
4041         gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
4042         trap MULL. (gfc_compare_derived_types): Revert previous change
4043         incorporated incorrectly during merge from trunk, r155778.
4044         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
4045         than NULL to gfc_compare_interfaces.
4046         * symbol.c (add_generic_specifics): Likewise.
4048 2010-02-29  Janus Weil  <janus@gcc.gnu.org>
4050         PR fortran/42353
4051         * interface.c (gfc_compare_derived_types): Add condition for vtype.
4052         * symbol.c (gfc_find_derived_vtab): Sey access to private.
4053         (gfc_find_derived_vtab): Likewise.
4054         * module.c (ab_attribute): Add enumerator AB_VTAB.
4055         (mio_symbol_attribute): Use new attribute, AB_VTAB.
4056         (check_for_ambiguous): Likewise.
4058 2010-04-29  Paul Thomas  <pault@gcc.gnu.org>
4059             Janus Weil  <janus@gcc.gnu.org>
4061         PR fortran/41829
4062         * trans-expr.c (select_class_proc): Remove function.
4063         (conv_function_val): Delete reference to previous.
4064         (gfc_conv_derived_to_class): Add second argument to the call to
4065         gfc_find_derived_vtab.
4066         (gfc_conv_structure): Exclude proc_pointer components when
4067         accessing $data field of class objects.
4068         (gfc_trans_assign_vtab_procs): New function.
4069         (gfc_trans_class_assign): Add second argument to the call to
4070         gfc_find_derived_vtab.
4071         * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
4072         implement holding off searching for the vptr derived type.
4073         (add_proc_component): New function.
4074         (add_proc_comps): New function.
4075         (add_procs_to_declared_vtab1): New function.
4076         (copy_vtab_proc_comps): New function.
4077         (add_procs_to_declared_vtab): New function.
4078         (void add_generic_specifics): New function.
4079         (add_generics_to_declared_vtab): New function.
4080         (gfc_find_derived_vtab): Add second argument to the call to
4081         gfc_find_derived_vtab. Add the calls to
4082         add_procs_to_declared_vtab and add_generics_to_declared_vtab.
4083         * decl.c (build_sym, build_struct): Use new arg in calls to
4084         gfc_build_class_symbol.
4085         * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
4086         definition of struct gfc_class_esym_list. Modify prototypes
4087         of gfc_build_class_symbol and gfc_find_derived_vtab.
4088         * trans-stmt.c (gfc_trans_allocate): Add second argument to the
4089         call to gfc_find_derived_vtab.
4090         * module.c : Add the vtype attribute.
4091         * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
4092         * resolve.c (resolve_typebound_generic_call): Add second arg
4093         to pass along the generic name for class methods.
4094         (resolve_typebound_call): The same.
4095         (resolve_compcall): Use the second arg to carry the generic
4096         name from the above. Remove the reference to class_esym.
4097         (check_members, check_class_members, resolve_class_esym,
4098         hash_value_expr): Remove functions.
4099         (resolve_class_compcall, resolve_class_typebound_call): Modify
4100         to use vtable rather than member by member calls.
4101         (gfc_resolve_expr): Modify second arg in call to
4102         resolve_compcall.
4103         (resolve_select_type): Add second arg in call to
4104         gfc_find_derived_vtab.
4105         (resolve_code): Add second arg in call resolve_typebound_call.
4106         (resolve_fl_derived): Exclude vtypes from check for late
4107         procedure definitions. Likewise for checking of explicit
4108         interface and checking of pass arg.
4109         * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
4110         calls to gfc_find_derived_vtab.
4111         * match.c (select_type_set_tmp): Use new arg in call to
4112         gfc_build_class_symbol.
4113         * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
4114         necessary.
4115         * parse.c (endType): Finish incomplete classes.
4117 2010-04-28  Tobias Burnus  <burnus@net-b.de>
4119         PR fortran/18918
4120         PR fortran/43919
4121         * simplify.c (simplify_cobound): Handle scalar coarrays.
4123 2010-04-27  Tobias Burnus  <burnus@net-b.de>
4125         * gfc-internals.texi: Update copyright year.
4126         * gfortran.texi: Ditto.
4127         * invoke.texi: Ditto.
4129 2010-04-27  Tobias Burnus  <burnus@net-b.de>
4131         PR fortran/18918
4132         * resolve.c (resolve_allocate_expr): Allow array coarrays.
4133         * trans-types.h (gfc_get_array_type_bounds): Update prototype.
4134         * trans-types.c (gfc_get_array_type_bounds,
4135         gfc_get_array_descriptor_base): Add corank argument.
4136         * trans-array.c (gfc_array_init_size): Handle corank.
4137         (gfc_trans_create_temp_array, gfc_array_allocate,
4138         gfc_conv_expr_descriptor): Add corank argument to call.
4139         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
4141 2010-04-24  Steven G. Kargl  <kargl@gcc.gnu.org>
4143         PR fortran/30073
4144         PR fortran/43793
4145         * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
4146         of mucking with a tree directly.
4148 2010-04-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4150         PR fortran/43832
4151         * io.c (gfc_match_open): Remove branch to syntax error. Add call to
4152         gfc_error with new error message.
4154 2010-04-24  Paul Thomas  <pault@gcc.gnu.org>
4156         PR fortran/43841
4157         PR fortran/43843
4158         * trans-expr.c (gfc_conv_expr): Supply an address expression for
4159         GFC_SS_REFERENCE.
4160         (gfc_conv_expr_reference): Call gfc_conv_expr and return for
4161         GFC_SS_REFERENCE.
4162         * trans-array.c (gfc_add_loop_ss_code): Store the value rather
4163         than the address of a GFC_SS_REFERENCE.
4164         * trans.h : Change comment on GFC_SS_REFERENCE. 
4166 2010-04-22  Richard Guenther  <rguenther@suse.de>
4168         PR fortran/43829
4169         * resolve.c (gfc_resolve_index): Wrap around ...
4170         (gfc_resolve_index_1): ... this.  Add parameter to allow
4171         any integer kind index type.
4172         (resolve_array_ref): Allow any integer kind for the start
4173         index of an array ref.
4175 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4177         PR fortran/43836
4178         * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
4179         the decl.
4181 2010-04-20  Harald Anlauf  <anlauf@gmx.de>
4183         * intrinsic.c (sort_actual): Remove 'is' in error message.
4185 2010-04-20  Paul Thomas  <pault@gcc.gnu.org>
4187         PR fortran/43227
4188         * resolve.c (resolve_fl_derived): If a component character
4189         length has not been resolved, do so now.
4190         (resolve_symbol): The same as above for a symbol character
4191         length.
4192         * trans-decl.c (gfc_create_module_variable): A 'length' decl is
4193         not needed for a character valued, procedure pointer.
4195         PR fortran/43266
4196         * resolve.c (ensure_not_abstract_walker): If 'overriding' is
4197         not found, return FAILURE rather than ICEing.
4199 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4201         PR fortran/43339
4202         * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
4203         sequential loops private in the innermost containing task region.
4205 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4207         * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
4208         to build_common_tree_nodes.
4210 2010-04-17  Steven G. Kargl  <kargl@gcc.gnu.org>
4212         PR fortran/31538
4213         * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
4214         gfc_msg_bounds by using 'Array bound mismatch' directly.
4215         (gfc_trans_dummy_array_bias):  Remove the use of gfc_msg_bounds.  Reword
4216         error message to include the mismatch in the extent of array bound.
4217         * fortran/trans.c: Remove gfc_msg_bounds.  It is only used in one place.
4218         * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
4220 2010-04-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4222         * gfortran.texi: Update information on temporary file locations.
4224 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4226         * trans-decl.c (gfc_build_qualified_array): Ensure
4227         ubound.N and lbound.N artificial variable names don't appear
4228         in debug info.
4230 2010-04-15  Steven G. Kargl  <kargl@gcc.gnu.org>
4232         PR fortran/30073
4233         * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
4234         block of code.  Set name to the variable associated with the descriptor.
4236 2010-04-15  Jakub Jelinek  <jakub@redhat.com>
4238         * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
4239         on VAR_DECL LBOUND and/or UBOUND, even for -O1.
4241 2010-04-14  Steven G. Kargl  <kargl@gcc.gnu.org>
4243         * intrinsic.texi: Add the missing specific name of intrinsic
4244         procedure where the specific name is identical to the generic name.
4245         Fix inconsistent or mismatch in the argument names in intrinsic
4246         procedure descriptions.  Add the SCALAR allocatable description to
4247         ALLOCATED.
4249 2010-04-14  Tobias Burnus  <burnus@net-b.de>
4251         PR fortran/18918
4252         * array.c (gfc_find_array_ref): Handle codimensions.
4253         (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
4254         * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
4255         gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
4256         New functions.
4257         * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
4258         GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
4259         GFC_ISYM_UCOBOUND.
4260         * intrinsic.h (add_functions): Add this_image, image_index,
4261         lcobound and ucobound intrinsics.
4262         * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
4263         gfc_check_image_index, gfc_check_this_image,
4264         gfc_simplify_image_index, gfc_simplify_lcobound,
4265         gfc_simplify_this_image, gfc_simplify_ucobound):
4266         New function prototypes.
4267         * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
4268         IMAGE_INDEX): Document new intrinsic functions.
4269         * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
4270         error fatal.
4271         * simplify.c (simplify_bound_dim): Handle coarrays.
4272         (simplify_bound): Update simplify_bound_dim call.
4273         (gfc_simplify_num_images): Add -fcoarray=none check.
4274         (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
4275         gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
4277 2010-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4279         PR fortran/43747
4280         * constructor.c: Fix typo in comment.
4281         * expr.c (find_array_section): Add check for max array limit.
4283 2010-04-13  Iain Sandoe  <iains@gcc.gnu.org>
4285         PR bootstrap/31400
4286         * gfortranspec.c (lookup_option): Check for -static and return
4287         OPTION_static.
4288         (lang_specific_driver): Break when OPTION_static is discovered.
4290 2010-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4292         * array.c (extract_element): Restore function from trunk.
4293         (gfc_get_array_element): Restore function from trunk.
4294         (gfc_expand_constructor): Restore check against
4295         flag_max_array_constructor.
4296         * constructor.c (node_copy_and_append): Delete unused.
4297         * gfortran.h: Delete comment and extra include.
4298         * constructor.h: Bump copyright and clean up TODO comments.
4299         * resolve.c: Whitespace.
4301 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4303         * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
4304         with direct access access to elements. Adjusted prototype, fixed all
4305         callers.
4306         (gfc_simplify_dot_product): Removed duplicate check for zero-sized
4307         array.
4308         (gfc_simplify_matmul): Removed usage of ADVANCE macro.
4309         (gfc_simplify_spread): Removed workaround, directly insert elements
4310         at a given array position.
4311         (gfc_simplify_transpose): Likewise.
4312         (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
4313         function calls.
4314         (gfc_simplify_unpack): Likewise.
4316 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4318         * simplify.c (only_convert_cmplx_boz): Renamed to ...
4319         (convert_boz): ... this and moved to start of file.
4320         (gfc_simplify_abs): Whitespace fix.
4321         (gfc_simplify_acos): Whitespace fix.
4322         (gfc_simplify_acosh): Whitespace fix.
4323         (gfc_simplify_aint): Whitespace fix.
4324         (gfc_simplify_dint): Whitespace fix.
4325         (gfc_simplify_anint): Whitespace fix.
4326         (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
4327         (gfc_simplify_dnint): Whitespace fix.
4328         (gfc_simplify_asin): Whitespace fix.
4329         (gfc_simplify_asinh): Moved creation of result-expr out of switch.
4330         (gfc_simplify_atan): Likewise.
4331         (gfc_simplify_atanh): Whitespace fix.
4332         (gfc_simplify_atan2): Whitespace fix.
4333         (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
4334         (gfc_simplify_bessel_j1): Likewise.
4335         (gfc_simplify_bessel_jn): Likewise.
4336         (gfc_simplify_bessel_y0): Likewise.
4337         (gfc_simplify_bessel_y1): Likewise.
4338         (gfc_simplify_bessel_yn): Likewise.
4339         (gfc_simplify_ceiling): Reorderd statements.
4340         (simplify_cmplx): Use convert_boz(), check for constant arguments.
4341         Whitespace fix.
4342         (gfc_simplify_cmplx): Use correct default kind. Removed check for
4343         constant arguments.
4344         (gfc_simplify_complex): Replaced if-gate. Removed check for
4345         constant arguments.
4346         (gfc_simplify_conjg): Whitespace fix.
4347         (gfc_simplify_cos): Whitespace fix.
4348         (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
4349         (gfc_simplify_dcmplx): Removed check for constant arguments.
4350         (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
4351         (gfc_simplify_digits): Whitespace fix.
4352         (gfc_simplify_dim): Whitespace fix.
4353         (gfc_simplify_dprod): Reordered statements.
4354         (gfc_simplify_erf): Whitespace fix.
4355         (gfc_simplify_erfc): Whitespace fix.
4356         (gfc_simplify_epsilon): Whitespace fix.
4357         (gfc_simplify_exp): Whitespace fix.
4358         (gfc_simplify_exponent): Use convert_boz().
4359         (gfc_simplify_floor): Reorderd statements.
4360         (gfc_simplify_gamma): Whitespace fix.
4361         (gfc_simplify_huge): Whitespace fix.
4362         (gfc_simplify_iand): Whitespace fix.
4363         (gfc_simplify_ieor): Whitespace fix.
4364         (simplify_intconv): Use gfc_convert_constant().
4365         (gfc_simplify_int): Use simplify_intconv().
4366         (gfc_simplify_int2): Reorderd statements.
4367         (gfc_simplify_idint): Reorderd statements.
4368         (gfc_simplify_ior): Whitespace fix.
4369         (gfc_simplify_ishftc): Removed duplicate type check.
4370         (gfc_simplify_len): Use range_check() instead of manual range check.
4371         (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
4372         (gfc_simplify_log): Whitespace fix.
4373         (gfc_simplify_log10): Whitespace fix.
4374         (gfc_simplify_minval): Whitespace fix.
4375         (gfc_simplify_maxval): Whitespace fix.
4376         (gfc_simplify_mod): Whitespace fix.
4377         (gfc_simplify_modulo): Whitespace fix.
4378         (simplify_nint): Reorderd statements.
4379         (gfc_simplify_not): Whitespace fix.
4380         (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
4381         (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
4382         (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
4383         (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
4384         (gfc_simplify_realpart): Whitespace fix.
4385         (gfc_simplify_selected_char_kind): Removed unused result-variable.
4386         (gfc_simplify_selected_int_kind): Removed unused result-variable.
4387         (gfc_simplify_selected_real_kind): Removed unused result-variable.
4388         (gfc_simplify_sign): Whitespace fix.
4389         (gfc_simplify_sin): Whitespace fix.
4390         (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
4391         (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
4392         (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
4393         (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
4394         (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
4396 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4398         * gfortran.h (gfc_start_constructor): Removed.
4399         (gfc_get_array_element): Removed.
4400         * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr 
4401         instead. Fixed all callers.
4402         (extract_element): Removed.
4403         (gfc_expand_constructor): Temporarily removed check for
4404         max-array-constructor. Will be re-introduced later if still required.
4405         (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
4406         instead. Fixed all callers.
4407         * expr.c (find_array_section): Replaced manual lookup of elements
4408         by gfc_constructor_lookup.
4410 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4412         * gfortran.h (gfc_get_null_expr): New prototype.
4413         (gfc_get_operator_expr): New prototype.
4414         (gfc_get_character_expr): New prototype.
4415         (gfc_get_iokind_expr): New prototype.
4416         * expr.c (gfc_get_null_expr): New.
4417         (gfc_get_character_expr): New.
4418         (gfc_get_iokind_expr): New.
4419         (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
4420         * matchexp.c (build_node): Renamed and moved to
4421         expr.c (gfc_get_operator_expr). Reordered arguments to match 
4422         other functions. Fixed all callers.
4423         (gfc_get_parentheses): Use specific function to build expr.
4424         * array.c (gfc_match_array_constructor): Likewise.
4425         * arith.c (eval_intrinsic): Likewise.
4426         (gfc_hollerith2int): Likewise.
4427         (gfc_hollerith2real): Likewise.
4428         (gfc_hollerith2complex): Likewise.
4429         (gfc_hollerith2logical): Likewise.
4430         * data.c (create_character_intializer): Likewise.
4431         * decl.c (gfc_match_null): Likewise.
4432         (enum_initializer): Likewise.
4433         * io.c (gfc_match_format): Likewise.
4434         (match_io): Likewise.
4435         * match.c (gfc_match_nullify): Likewise.
4436         * primary.c (match_string_constant): Likewise.
4437         (match_logical_constant): Likewise.
4438         (build_actual_constructor): Likewise.
4439         * resolve.c (build_default_init_expr): Likewise.
4440         * symbol.c (generate_isocbinding_symbol): Likewise.
4441         (gfc_build_class_symbol): Likewise.
4442         (gfc_find_derived_vtab): Likewise.
4443         * simplify.c (simplify_achar_char): Likewise.
4444         (gfc_simplify_adjustl): Likewise.
4445         (gfc_simplify_adjustr): Likewise.
4446         (gfc_simplify_and): Likewise.
4447         (gfc_simplify_bit_size): Likewise.
4448         (gfc_simplify_is_iostat_end): Likewise.
4449         (gfc_simplify_is_iostat_eor): Likewise.
4450         (gfc_simplify_isnan): Likewise.
4451         (simplify_bound): Likewise.
4452         (gfc_simplify_leadz): Likewise.
4453         (gfc_simplify_len_trim): Likewise.
4454         (gfc_simplify_logical): Likewise.
4455         (gfc_simplify_maxexponent): Likewise.
4456         (gfc_simplify_minexponent): Likewise.
4457         (gfc_simplify_new_line): Likewise.
4458         (gfc_simplify_null): Likewise.
4459         (gfc_simplify_or): Likewise.
4460         (gfc_simplify_precision): Likewise.
4461         (gfc_simplify_repeat): Likewise.
4462         (gfc_simplify_scan): Likewise.
4463         (gfc_simplify_size): Likewise.
4464         (gfc_simplify_trailz): Likewise.
4465         (gfc_simplify_trim): Likewise.
4466         (gfc_simplify_verify): Likewise.
4467         (gfc_simplify_xor): Likewise.
4468         * trans-io.c (build_dt): Likewise.
4469         (gfc_new_nml_name_expr): Removed.
4471 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4473         * arith.h (gfc_constant_result): Removed prototype.
4474         * constructor.h (gfc_build_array_expr): Removed prototype.
4475         (gfc_build_structure_constructor_expr): Removed prototype.
4476         * gfortran.h (gfc_int_expr): Removed prototype.
4477         (gfc_logical_expr): Removed prototype.
4478         (gfc_get_array_expr): New prototype.
4479         (gfc_get_structure_constructor_expr): New prototype.
4480         (gfc_get_constant_expr): New prototype.
4481         (gfc_get_int_expr): New prototype.
4482         (gfc_get_logical_expr): New prototype.
4483         * arith.c (gfc_constant_result): Moved and renamed to
4484         expr.c (gfc_get_constant_expr). Fixed all callers.
4485         * constructor.c (gfc_build_array_expr): Moved and renamed to
4486         expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
4487         and kind. Fixed all callers.
4488         (gfc_build_structure_constructor_expr): Moved and renamed to
4489         expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
4490         to type and kind. Fixed all callers.
4491         * expr.c (gfc_logical_expr): Renamed to ...
4492         (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
4493         (gfc_int_expr): Renamed to ...
4494         (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
4495         callers.
4496         (gfc_get_constant_expr): New.
4497         (gfc_get_array_expr): New.
4498         (gfc_get_structure_constructor_expr): New.
4499         * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
4500         instead.
4502 2010-04-12  Daniel Franke  <franke.daniel@gmail.com>
4504         * constructor.h: New.
4505         * constructor.c: New.
4506         * Make-lang.in: Add new files to F95_PARSER_OBJS.
4507         * arith.c (reducy_unary): Use constructor API.
4508         (reduce_binary_ac): Likewise.
4509         (reduce_binary_ca): Likewise.
4510         (reduce_binary_aa): Likewise.
4511         * check.c (gfc_check_pack): Likewise.
4512         (gfc_check_reshape): Likewise.
4513         (gfc_check_unpack): Likewise.
4514         * decl.c (add_init_expr_to_sym): Likewise.
4515         (build_struct): Likewise.
4516         * dependency.c (gfc_check_dependency): Likewise.
4517         (contains_forall_index_p): Likewise.
4518         * dump-parse-tree.c (show_constructor): Likewise.
4519         * expr.c (free_expr0): Likewise.
4520         (gfc_copy_expr): Likewise.
4521         (gfc_is_constant_expr): Likewise.
4522         (simplify_constructor): Likewise.
4523         (find_array_element): Likewise.
4524         (find_component_ref): Likewise.
4525         (find_array_section): Likewise.
4526         (find_substring_ref): Likewise.
4527         (simplify_const_ref): Likewise.
4528         (scalarize_intrinsic_call): Likewise.
4529         (check_alloc_comp_init): Likewise.
4530         (gfc_default_initializer): Likewise.
4531         (gfc_traverse_expr): Likewise.
4532         * iresolve.c (check_charlen_present): Likewise.
4533         (gfc_resolve_reshape): Likewise.
4534         (gfc_resolve_transfer): Likewise.
4535         * module.c (mio_constructor): Likewise.
4536         * primary.c (build_actual_constructor): Likewise.
4537         (gfc_match_structure_constructor): Likewise.
4538         * resolve.c (resolve_structure_cons): Likewise.
4539         * simplify.c (is_constant_array_expr): Likewise.
4540         (init_result_expr): Likewise.
4541         (transformational_result): Likewise.
4542         (simplify_transformation_to_scalar): Likewise.
4543         (simplify_transformation_to_array): Likewise.
4544         (gfc_simplify_dot_product): Likewise.
4545         (simplify_bound): Likewise.
4546         (simplify_matmul): Likewise.
4547         (simplify_minval_maxval): Likewise.
4548         (gfc_simplify_pack): Likewise.
4549         (gfc_simplify_reshape): Likewise.
4550         (gfc_simplify_shape): Likewise.
4551         (gfc_simplify_spread): Likewise.
4552         (gfc_simplify_transpose): Likewise.
4553         (gfc_simplify_unpack): Likewise.q
4554         (gfc_convert_constant): Likewise.
4555         (gfc_convert_char_constant): Likewise.
4556         * target-memory.c (size_array): Likewise.
4557         (encode_array): Likewise.
4558         (encode_derived): Likewise.
4559         (interpret_array): Likewise.
4560         (gfc_interpret_derived): Likewise.
4561         (expr_to_char): Likewise.
4562         (gfc_merge_initializers): Likewise.
4563         * trans-array.c (gfc_get_array_constructor_size): Likewise.
4564         (gfc_trans_array_constructor_value): Likewise.
4565         (get_array_ctor_strlen): Likewise.
4566         (gfc_constant_array_constructor_p): Likewise.
4567         (gfc_build_constant_array_constructor): Likewise.
4568         (gfc_trans_array_constructor): Likewise.
4569         (gfc_conv_array_initializer): Likewise.
4570         * trans-decl.c (check_constant_initializer): Likewise.
4571         * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
4572         (gfc_apply_interface_mapping_to_cons): Likewise.
4573         (gfc_trans_structure_assign): Likewise.
4574         (gfc_conv_structure): Likewise.
4575         * array.c (check_duplicate_iterator): Likewise.
4576         (match_array_list): Likewise.
4577         (match_array_cons_element): Likewise.
4578         (gfc_match_array_constructor): Likewise.
4579         (check_constructor_type): Likewise.
4580         (check_constructor): Likewise.
4581         (expand): Likewise.
4582         (expand_constructor): Likewise.
4583         (extract_element): Likewise.
4584         (gfc_expanded_ac): Likewise.
4585         (resolve_array_list): Likewise.
4586         (gfc_resolve_character_array_constructor): Likewise.
4587         (copy_iterator): Renamed to ...
4588         (gfc_copy_iterator): ... this.
4589         (gfc_append_constructor): Removed.
4590         (gfc_insert_constructor): Removed unused function.
4591         (gfc_get_constructor): Removed.
4592         (gfc_free_constructor): Removed.
4593         (qgfc_copy_constructor): Removed.
4594         * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
4595         Removed all references. Replaced constructor list by splay-tree.
4596         (struct gfc_constructor): Removed member 'next', moved 'offset' from
4597         the inner struct, added member 'base'.
4598         (gfc_append_constructor): Removed prototype.
4599         (gfc_insert_constructor): Removed prototype.
4600         (gfc_get_constructor): Removed prototype.
4601         (gfc_free_constructor): Removed prototype.
4602         (qgfc_copy_constructor): Removed prototype.
4603         (gfc_copy_iterator): New prototype.
4604         * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
4606 2010-04-10  Tobias Burnus  <burnus@net-b.de>
4608         PR fortran/43591
4609         * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
4610         proc-pointers and type-bound procedures.
4611         (gfc_specification_expr): Check proc-pointers for pureness.
4613 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
4615         PR bootstrap/43684
4616         * gfortranspec.c (lang_specific_driver): Do not expose vars 
4617         only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
4618         for such.
4620 2010-04-09  Tobias Burnus  <burnus@net-b.de>
4622         PR fortran/18918
4623         * decl.c (variable_decl, match_attr_spec): Fix setting the array
4624         spec.
4625         * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
4626         * data.c (gfc_assign_data_value): Ditto.
4627         * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
4628         (gfc_traverse_expr): Traverse also through codimension expressions.
4629         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
4630         gfc_has_ultimate_pointer): New functions.
4631         * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
4632         (gfc_array_ref): Add codimen.
4633         (gfc_array_ref): Add in_allocate.
4634         (gfc_is_coindexed, gfc_has_ultimate_allocatable,
4635         gfc_has_ultimate_pointer): Add prototypes.
4636         * interface.c (compare_parameter, compare_actual_formal,
4637         check_intents): Add coarray constraints.
4638         * match.c (gfc_match_iterator): Add coarray constraint.
4639         * match.h (gfc_match_array_ref): Update interface.
4640         * primary.c (gfc_match_varspec): Handle codimensions.
4641         * resolve.c (coarray_alloc, inquiry_argument): New static variables.
4642         (check_class_members): Return gfc_try instead for error recovery.
4643         (resolve_typebound_function,resolve_typebound_subroutine,
4644         check_members): Handle return value of check_class_members.
4645         (resolve_structure_cons, resolve_actual_arglist, resolve_function,
4646         check_dimension, compare_spec_to_ref, resolve_array_ref,
4647         resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
4648         resolve_allocate_expr, resolve_ordinary_assign): Add coarray
4649         support.
4650         * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
4651         Skip over coarray refs.
4652         (gfc_array_allocate) Add support for references containing coindexes.
4653         * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
4654         (gfc_map_intrinsic_function): Ignore codimensions.
4656 2010-04-08  Bud Davis  <bdavis9659@sbcglobal.net>
4658         PR fortran/28039
4659         * io.c (check_format_string):  Added check for additional non 
4660         blank characters after the format string was successfully 
4661         parsed.
4662         * io.c (check_format): Changed the error messages for positive
4663         int required and period required to drop through the error logic
4664         and report with gfc_error instead of gfc_error_now.  Corrected
4665         format postion for hollerith strings.
4667 2010-04-08  Tobias Burnus  <burnus@net-b.de>
4669         * module.c (use_iso_fortran_env_module): Fix standard check.
4671 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
4673         * parse.c (parse_derived, parse_enum): Avoid set but not used
4674         warning.
4676 2010-04-07  Janne Blomqvist  <jb@gcc.gnu.org>
4678         PR fortran/40539
4679         * gfortran.texi: Add section about representation of
4680         LOGICAL variables.
4682 2010-04-07  Simon Baldwin  <simonb@google.com>
4684         * cpp.c (cb_cpp_error): Add warning reason argument, set a value
4685         for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
4687 2010-04-07  Richard Guenther  <rguenther@suse.de>
4689         * options.c (gfc_init_options): Do not set.
4691 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4693         PR fortran/18918
4694         * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
4695         * match.c (gfc_match_critical, sync_statement): Ditto.
4696         * gfortran.h (gfc_fcoarray): New enum.
4697         (gfc_option_t): Use it.
4698         * lang.opt (fcoarray): Add new flag.
4699         * invoke.texi (fcoarray): Document it.
4700         * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
4701         (gfc_handle_coarray_option): New function.
4703 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4705         PR fortran/18918
4706         * gfortran.h (gfc_array_spec): Add cotype.
4707         * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
4708         and defer error diagnostic.
4709         * resolve.c (resolve_fl_derived): Add missing check.
4710         (resolve_symbol): Add cotype/type check.
4711         * parse.c (parse_derived): Fix setting of coarray_comp.
4713 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4715         PR fortran/18918
4716         * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
4717         match_array_element_spec,gfc_copy_array_spec,
4718         gfc_compare_array_spec): Include corank.
4719         (match_array_element_spec,gfc_set_array_spec): Support codimension.
4720         * decl.c (build_sym,build_struct,variable_decl,
4721         match_attr_spec,attr_decl1,cray_pointer_decl,
4722         gfc_match_volatile): Add codimension.
4723         (gfc_match_codimension): New function.
4724         * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
4725         * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
4726         (gfc_add_codimension): New function prototype.
4727         * match.h (gfc_match_codimension): New function prototype.
4728         (gfc_match_array_spec): Update prototype
4729         * match.c (gfc_match_common): Update gfc_match_array_spec call.
4730         * module.c (MOD_VERSION): Bump.
4731         (mio_symbol_attribute): Support coarray attributes.
4732         (mio_array_spec): Add corank support.
4733         * parse.c (decode_specification_statement,decode_statement,
4734         parse_derived): Add coarray support.
4735         * resolve.c (resolve_formal_arglist, was_declared,
4736         is_non_constant_shape_array, resolve_fl_variable,
4737         resolve_fl_derived, resolve_symbol): Add coarray support.
4738         * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
4739         gfc_build_class_symbol): Add coarray support.
4740         (gfc_add_codimension): New function.
4742 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4744         PR fortran/18918
4745         * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
4746         atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
4747         stat_locked_other_image, stat_stopped_image and stat_unlocked of
4748         Fortran 2008.
4749         * intrinsic.texi (iso_fortran_env): Ditto.
4750         * libgfortran.h (libgfortran_stat_codes): New enum.
4751         * module.c (use_iso_fortran_env_module): Honour -std= when loading
4752         constants from the intrinsic module.
4754 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4756         PR fortran/39997
4757         * intrinsic.c (add_functions): Add num_images.
4758         * decl.c (gfc_match_end): Handle END CRITICAL.
4759         * intrinsic.h (gfc_simplify_num_images): Add prototype.
4760         * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
4761         and SYNC.
4762         * gfortran.h (gfc_statement): Add enum items for those.
4763         (gfc_exec_op) Ditto.
4764         (gfc_isym_id): Add num_images.
4765         * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
4766         (gfc_trans_sync,gfc_trans_critical): New functions.
4767         * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
4768         gfc_trans_critical): Add/update prototypes.
4769         * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
4770         and SYNC statements.
4771         * trans.h (gfor_fndecl_error_stop_string) Add variable.
4772         * resolve.c (resolve_sync): Add function.
4773         (gfc_resolve_blocks): Handle CRITICAL.
4774         (resolve_code): Handle CRITICAL, ERROR STOP,
4775         (resolve_branch): Add CRITICAL constraint check.
4776         and SYNC statements.
4777         * st.c (gfc_free_statement): Add new statements.
4778         * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
4779         (gfc_build_builtin_function_decls): Initialize it.
4780         * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
4781         (gfc_match_critical, gfc_match_error_stop, sync_statement,
4782         gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
4783         New functions.
4784         (match_exit_cycle): Handle CRITICAL constraint.
4785         (gfc_match_stopcode): Handle ERROR STOP.
4786         * match.h (gfc_match_critical, gfc_match_error_stop,
4787         gfc_match_sync_all, gfc_match_sync_images,
4788         gfc_match_sync_memory): Add prototype.
4789         * parse.c (decode_statement, gfc_ascii_statement,
4790         parse_executable): Handle new statements.
4791         (parse_critical_block): New function.
4792         * parse.h (gfc_compile_state): Add COMP_CRITICAL.
4793         * intrinsic.texi (num_images): Document new function.
4794         * simplify.c (gfc_simplify_num_images): Add function.
4796 2010-04-06  Tobias Burnus  <burnus@net-b.de>
4798         PR fortran/43178
4799         * trans-array.c (gfc_conv_expr_descriptor): Update
4800         gfc_trans_scalar_assign call.
4801         (has_default_initializer): New function.
4802         (gfc_trans_deferred_array): Nullify less often.
4803         * trans-expr.c (gfc_conv_subref_array_arg,
4804         gfc_trans_subcomponent_assign): Update call to
4805         gfc_trans_scalar_assign.
4806         (gfc_trans_scalar_assign): Add parameter and pass it on.
4807         (gfc_trans_assignment_1): Optionally, do not dealloc before
4808         assignment.
4809         * trans-openmp.c (gfc_trans_omp_array_reduction): Update
4810         call to gfc_trans_scalar_assign.
4811         * trans-decl.c (gfc_get_symbol_decl): Do not always apply
4812         initializer to static variables.
4813         (gfc_init_default_dt): Add dealloc parameter and pass it on.
4814         * trans-stmt.c (forall_make_variable_temp,
4815         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
4816         gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
4817         gfc_trans_allocate): Update gfc_trans_assignment call.
4818         * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
4819         gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
4820         parameter to prototype.
4822 2010-03-31  Paul Thomas  <pault@gcc.gnu.org>
4824         * ioparm.def : Update copyright.
4825         * lang.opt : ditto
4826         * trans-array.c : ditto
4827         * trans-array.h : ditto
4828         * expr.c: ditto
4829         * trans-types.c: ditto
4830         * dependency.c : ditto
4831         * gfortran.h : ditto
4832         * options.c : ditto
4833         * trans-io.c : ditto
4834         * trans-intrinsic.c : ditto
4835         * libgfortran.h : ditto
4836         * invoke.texi : ditto
4837         * intrinsic.texi : ditto
4838         * trans.c : ditto
4839         * trans.h : ditto
4840         * intrinsic.c : ditto
4841         * interface.c : ditto
4842         * iresolve.c : ditto
4843         * trans-stmt.c : ditto
4844         * trans-stmt.h : ditto
4845         * parse,c : ditto
4846         * match.h : ditto
4847         * error.c : ditto
4849 2010-03-20  Paul Thomas  <pault@gcc.gnu.org>
4851         PR fortran/43450
4852         * trans-decl.c (gfc_create_module_variable): With -fwhole-file
4853         do not assert the context of derived types.
4855 2010-03-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4857         PR fortran/43409
4858         * ioparm.def: Change inquire size variable to type pointer to
4859         GFC_IO_INT type.
4861 2010-03-18  Paul Thomas  <pault@gcc.gnu.org>
4863         PR fortran/43039
4864         * trans-expr.c (conv_parent_component_references): Ensure that
4865         'dt' has a backend_decl.
4867         PR fortran/43043
4868         * trans-expr.c (gfc_conv_structure): Ensure that the derived
4869         type has a backend_decl.
4871         PR fortran/43044
4872         * resolve.c (resolve_global_procedure): Check that the 'cl'
4873         structure is not NULL.
4875 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
4877         * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
4878         redundant tab.
4880 2010-03-17  Tobias Burnus  <burnus@net-b.de>
4882         PR fortran/43331
4883         * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
4884         gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
4885         check.
4886         * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
4887         pointees as having explizit size.
4888         * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
4889         check.
4890         * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
4891         (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
4892         * resolve.c (resolve_symbol): Handle cp_was_assumed.
4893         * trans-decl.c (gfc_trans_deferred_vars): Ditto.
4894         (gfc_finish_var_decl): Don't mark Cray pointees as restricted
4895         pointers.
4897 2010-03-14  Tobias Burnus  <burnus@net-b.de>
4899         PR fortran/43362
4900         * resolve.c (resolve_structure_cons): Add missing PURE constraint.
4901         (resolve_ordinary_assign): Add check to avoid segfault.
4903 2010-03-12  Paul Thomas  <pault@gcc.gnu.org>
4905         PR fortran/43291
4906         PR fortran/43326
4907         * resolve.c (resolve_compcall): Add new boolean dummy argument
4908         'class_members'. Only resolve expression at end if false.
4909         Remove redundant, static variable 'class_object'.
4910         (check_class_members): Add extra argument to call of
4911         resolve_compcall.
4912         (resolve_typebound_function): Renamed resolve_class_compcall.
4913         Do all the detection of class references here. Correct calls to
4914         resolve_compcall for extra argument.
4915         (resolve_typebound_subroutine): resolve_class_typebound_call
4916         renamed. Otherwise same as resolve_typebound_function.
4917         (gfc_resolve_expr): Call resolve_typebound_function.
4918         (resolve_code): Call resolve_typebound_subroutine.
4920 2010-03-10  Tobias Burnus  <burnus@net-b.de
4922         PR fortran/43303
4923         * symbol.c (get_iso_c_sym): Set sym->result.
4925 2010-03-08  Janus Weil  <janus@gcc.gnu.org>
4927         PR fortran/43256
4928         * resolve.c (resolve_compcall): Don't set 'value.function.name' here
4929         for TBPs, otherwise they will not be resolved properly.
4930         (resolve_function): Use 'value.function.esym' instead of
4931         'value.function.name' to check if we're dealing with a TBP.
4932         (check_class_members): Set correct type of passed object for all TBPs,
4933         not only generic ones, except if the type is abstract.
4935 2010-03-04  Janus Weil  <janus@gcc.gnu.org>
4937         PR fortran/43244
4938         * decl.c (gfc_match_final_decl): Make sure variable names starting with
4939         'final...' are not misinterpreted as FINAL statements.
4941 2010-03-03  Paul Thomas  <pault@gcc.gnu.org>
4943         PR fortran/43243
4944         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
4945         allocatable ultimate components do not need temporaries, whilst
4946         ultimate pointer components do.
4948 2010-03-03  Janus Weil  <janus@gcc.gnu.org>
4950         PR fortran/43169
4951         * resolve.c (resolve_code): Correctly set gfc_current_ns for
4952         EXEC_SELECT_TYPE.
4953         (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
4954         (gfc_pure): Ditto.
4956 2010-03-02  Paul Thomas  <pault@gcc.gnu.org>
4958         PR fortran/43180
4959         * trans-array.c (gfc_conv_array_parameter): A full array of
4960         derived type need not be restricted to a symbol without an
4961         array spec to use the call to gfc_conv_expr_descriptor.
4963         PR fortran/43173
4964         * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
4965         allocatable arrays do not need temporaries.
4967 2010-03-01  Tobias Burnus  <burnus@net-b.de>
4969         PR fortran/43199
4970         * resolve.c (find_array_spec): Handle REF_COMPONENT with
4971         CLASS components.
4973 2010-02-28  Tobias Burnus  <burnus@net-b.de>
4975         PR fortran/43205
4976         * trans-expr.c (is_zero_initializer_p): Move up in the file.
4977         (gfc_conv_initializer): Handle zero initializer as special case.
4979 2010-02-27  Tobias Burnus  <burnus@net-b.de>
4981         PR fortran/43185
4982         * resolve.c (resolve_fl_variable_derived): Imply SAVE
4983         for module variables for Fortran 2008.
4985 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
4987         PR debug/43166
4988         * trans-common.c (build_common_decl): Also update DECL_MODE,
4989         and DECL_SIZE when encountering a larger common block and call
4990         layout_decl.
4992 2010-02-24  Tobias Burnus  <burnus@net-b.de>
4994         PR fortran/43042
4995         * trans-expr.c (gfc_conv_initializer): Call directly
4996         gfc_conv_constant for C_NULL_(FUN)PTR.
4998 2010-02-22  Paul Thomas  <pault@gcc.gnu.org>
5000         PR fortran/43072
5001         * dependency.c (gfc_full_array_ref_p): Check for contiguous by
5002         checking the rest of the dimensions for elements.
5004 2010-02-21  Tobias Burnus  <burnus@net-b.de>
5006         PR fortran/35259
5007         * gfortran.h (gfc_option_t): New flag -fprotect-parens.
5008         * lang.opt: Ditto.
5009         * option.c (gfc_init_options,gfc_handle_option): Ditto.
5010         * trans-expr.c (gfc_conv_expr_op): Use the flag.
5011         * invoke.texi: Document new -fno-protect-parens flag.
5013 2010-02-20  Paul Thomas  <pault@gcc.gnu.org>
5015         PR fortran/36932
5016         PR fortran/36933
5017         PR fortran/43072
5018         PR fortran/43111
5019         * dependency.c (gfc_check_argument_var_dependency): Use enum
5020         value instead of arithmetic vaue for 'elemental'.
5021         (check_data_pointer_types): New function.
5022         (gfc_check_dependency): Call check_data_pointer_types.
5023         * trans-array.h : Change fourth argument of
5024         gfc_conv_array_parameter to boolean.
5025         * trans-array.c (gfc_conv_array_parameter): A contiguous array
5026         can be a dummy but it must not be assumed shape or deferred.
5027         Change fourth argument to boolean. Array constructor exprs will
5028         always be contiguous and do not need packing and unpacking.
5029         * trans-expr.c (gfc_conv_procedure_call): Clean up some white
5030         space and change fourth argument of gfc_conv_array_parameter
5031         to boolean.
5032         (gfc_trans_arrayfunc_assign): Change fourth argument of
5033         gfc_conv_array_parameter to boolean.
5034         * trans-io.c (gfc_convert_array_to_string): The same.
5035         * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
5037 2010-02-20  Tobias Burnus  <burnus@net-b.de>
5039         PR fortran/42958
5040         * libgfortran.h: Add GFC_RTCHECK_MEM.
5041         * invoke.texi (-fcheck=): Document -fcheck=mem.
5042         * tranc.c (gfc_call_malloc): Remove negative-size run-time error
5043         and enable malloc-success check only with -fcheck=mem.
5044         * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
5046 2010-02-16  Tobias Burnus  <burnus@net-b.de>
5048         PR fortran/43040
5049         * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
5050         * intrinsic.c (add_functions): Ditto.
5051         * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
5052         * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
5054 2010-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
5056         PR fortran/32382
5057         * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
5058         gfc_trans_do prototype.
5059         * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
5060         a loop exit condition.  If exit condition is given, build the loop exit
5061         code, checking IO results of implied do loops in READ and WRITE.
5062         (gfc_trans_do): Likewise.
5063         * trans.c (trans_code): New static work function, previously
5064         gfc_trans_code. Passes exit condition to gfc_trans_do.
5065         (gfc_trans_code): Calls trans_code with NULL_TREE condition.
5066         (gfc_trans_code_cond): Calls trans_code with loop exit condition.
5067         * trans-io.c (build_dt): Build an exit condition to allow checking IO
5068         result status bits in the dtparm structure. Use this condition in call
5069         to gfc_trans_code_cond.
5071 2010-02-13  Paul Thomas  <pault@gcc.gnu.org>
5073         PR fortran/41113
5074         PR fortran/41117
5075         * trans-array.c (gfc_conv_array_parameter): Use
5076         gfc_full_array_ref_p to detect full and contiguous variable
5077         arrays. Full array components and contiguous arrays do not need
5078         internal_pack and internal_unpack.
5080 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
5082         PR fortran/43030
5083         * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
5085         PR fortran/43029
5086         * decl.c (enumerator_decl): Don't call gfc_free_enum_history
5087         here.
5088         (gfc_match_enumerator_def): But here whenever enumerator_decl returns
5089         MATCH_ERROR.
5091 2010-02-10  Joost VandeVondele <jv244@cam.ac.uk>
5092             Tobias Burnus <burnus@net-b.de>
5094         PR fortran/40823
5095         * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
5097 2010-02-10  Tobias Burnus  <burnus@net-b.de>
5099         PR fortran/43015
5100         * trans-decl.c (gfc_generate_function_code): Only check
5101         actual-vs.-dummy character bounds if not bind(C).
5103 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
5105         PR fortran/42309
5106         * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
5107         info->dimen after info has been freed.
5109 2010-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
5111         PR fortran/42999
5112         * array.c (gfc_constant_ac): Do not prevent expansion of constructors
5113         with iterators.
5115 2010-02-09  Jakub Jelinek  <jakub@redhat.com>
5117         * module.c (fix_mio_expr): Declare sym.
5119 2010-02-09  Paul Thomas  <pault@gcc.gnu.org>
5121         PR fortran/41869
5122         * module.c (fix_mio_expr): Fix for private generic procedures.
5124 2010-02-09  Daniel Kraft  <d@domob.eu>
5126         PR fortran/39171
5127         * resolve.c (resolve_charlen): Change warning about negative CHARACTER
5128         length to be correct and issue only with -Wsurprising.
5129         * invoke.texi (Wsurprising): Mention this new warning that is
5130         turned on by -Wsurprising.
5132 2010-02-09  Daniel Kraft  <d@domob.eu>
5134         PR fortran/41507
5135         * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
5136         can be CHARACTER type.
5137         (MINVAL), (MAXLOC), (MINLOC): Ditto.
5139 2010-02-05  Paul Thomas  <pault@gcc.gnu.org>
5141         PR fortran/42309
5142         * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
5143         'formal_ptr'. If this is true, give returned descriptor unity
5144         lbounds, in all dimensions, and the appropriate offset.
5145         (gfc_conv_procedure_call); If formal is a pointer, set the last
5146         argument of gfc_conv_subref_array_arg to true.
5147         * trans.h : Add last argument for gfc_conv_subref_array_arg.
5148         * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
5149         new arg of gfc_conv_subref_array_arg to false.
5150         * trans-stmt.c (forall_make_variable_temp): The same.
5152 2010-02-03  Tobias Burnus  <burnus@net-b.de>
5154         PR fortran/42936
5155         * interface.c (compare_parameter): Disable rank-checking
5156         for NULL().
5158 2010-02-02  Tobias Burnus  <burnus@net-b.de>
5160         PR fortran/42650
5161         * parse.c (decode_specification_statement): Use sym->result not sym.
5163 2010-02-01  Tobias Burnus  <burnus@net-b.de>
5165         PR fortran/42922
5166         * decl.c (variable_decl): Allow default initializer in
5167         TYPE declarations in PURE functions.
5169 2010-01-31  Janus Weil  <janus@gcc.gnu.org>
5171         PR fortran/42888
5172         * resolve.c (resolve_allocate_expr): Move default initialization code
5173         here from gfc_trans_allocate.
5174         * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
5175         EXEC_INIT_ASSIGN.
5176         * trans-expr.c (gfc_trans_class_assign): Handle default initialization
5177         of CLASS variables via memcpy.
5178         * trans-stmt.c (gfc_trans_allocate): Move default initialization code
5179         to resolve_allocate_expr.
5181 2010-01-31  Paul Thomas  <pault@gcc.gnu.org>
5183         PR fortran/38324
5184         * expr.c (gfc_get_full_arrayspec_from_expr): New function.
5185         * gfortran.h : Add prototype for above.
5186         * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
5187         (gfc_trans_subcomponent_assign): Call new function to replace
5188         the code to deal with allocatable components.
5189         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
5190         gfc_get_full_arrayspec_from_expr to replace existing code.
5192 2010-01-25  Tobias Burnus  <burnus@net-b.de>
5194         PR fortran/42858
5195         * array.c (gfc_array_dimen_size): Fix intrinsic procedure
5196         check.
5198 2010-01-24  Paul Thomas  <pault@gcc.gnu.org>
5200         PR fortran/41044
5201         PR fortran/41167
5202         * expr.c (remove_subobject_ref): If the constructor is NULL use
5203         the expression as the source.
5204         (simplify_const_ref): Change the type of expression if
5205         there are component references.  Allow for substring to be at
5206         the end of an arbitrarily long chain of references.  If an
5207         element is found that is not in an EXPR_ARRAY, assume that this
5208         is scalar initialization of array. Call remove_subobject_ref in
5209         this case with NULL second argument.
5211 2010-01-24  Tobias Burnus  <burnus@net-b.de>
5213         PR fortran/39304
5214         * array.c (gfc_array_dimen_size): Use correct specific
5215         function in the check.
5217 2010-01-21  Paul Thomas  <pault@gcc.gnu.org>
5219         PR fortran/42736
5220         * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
5221         is required, turn any trailing array elements after a range
5222         into ranges so that offsets can be calculated.
5224 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
5226         * module.c (mio_f2k_derived): Use enumerator as initializer of
5227         enum variable.
5229         PR bootstrap/42812
5230         * gfortran.h  (struct gfc_namespace) <resolved>: Change to signed
5231         bitfield of width 2.
5233 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
5235         PR fortran/42804
5236         * resolve.c (extract_compcall_passed_object): Set locus for
5237         passed-object argument.
5238         (extract_ppc_passed_object): Set locus and correctly remove PPC
5239         reference.
5241 2010-01-19  Paul Thomas  <pault@gcc.gnu.org>
5243         PR fortran/42783
5244         * trans-decl.c (add_argument_checking): Do not use the backend
5245         decl directly to test for the presence of an optional dummy
5246         argument.  Use gfc_conv_expr_present, remembering to set the
5247         symbol referenced.
5249         PR fortran/42772
5250         * trans-decl.c (gfc_generate_function_code): Small white space
5251         changes. If 'recurcheckvar' is NULL do not try to reset it.
5253 2010-01-19  Janus Weil  <janus@gcc.gnu.org>
5255         PR fortran/42545
5256         * resolve.c (resolve_fl_derived): Set the accessibility of the parent
5257         component for extended types.
5258         * symbol.c (gfc_find_component): Remove a wrongly-worded error message
5259         and take care of parent component accessibility.
5261 2010-01-17  Janus Weil  <janus@gcc.gnu.org>
5263         PR fortran/42677
5264         * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
5265         * interface.c (check_interface1): Move a warning message here from
5266         resolve_fl_procedure.
5267         (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
5268         * module.c (read_module): Remove call to gfc_check_interfaces, since
5269         this comes too early here.
5270         * resolve.c (resolve_fl_procedure): Move warning message to
5271         check_interface1.
5273 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
5275         PR fortran/42684
5276         * interface.c (check_interface1): Pass symbol name rather than NULL to
5277         gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
5278         trap MULL.
5279         * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
5280         than NULL to gfc_compare_interfaces.
5282 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
5284         PR fortran/41478
5285         * trans-array.c (duplicate_allocatable):  Static version of
5286         gfc_duplicate_allocatable with provision to handle scalar
5287         components. New boolean argument to switch off call to malloc
5288         if true.
5289         (gfc_duplicate_allocatable): New function to call above with
5290         new argument false.
5291         (gfc_copy_allocatable_data): New function to call above with
5292         new argument true.
5293         (structure_alloc_comps): Do not apply indirect reference to
5294         scalar pointers. Add new section to copy allocatable components
5295         of arrays. Extend copying of allocatable components to include
5296         scalars.
5297         (gfc_copy_only_alloc_comp): New function to copy allocatable
5298         component derived types, without allocating the base structure.
5299         * trans-array.h : Add primitive for gfc_copy_allocatable_data.
5300         Add primitive for gfc_copy_only_alloc_comp.
5301         * trans-expr.c (gfc_conv_procedure_call): After calls to
5302         transformational functions with results that are derived types
5303         with allocatable components, copy the components in the result.
5304         (gfc_trans_arrayfunc_assign): Deallocate allocatable components
5305         of lhs derived types before allocation.
5306         
5307 2010-01-14  Paul Thomas  <pault@gcc.gnu.org>
5309         PR fortran/42481
5310         * module.c (load_generic_interfaces): If a procedure that is
5311         use associated but not generic is given an interface that
5312         includes itself, then make it generic.
5314 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
5315             Shujing Zhao  <pearly.zhao@oracle.com>
5317         PR translation/42469
5318         * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
5319         finit-logical=, finit-real=, fmax-array-constructor=): Use tab
5320         character between option name and help text.
5322 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
5324         PR fortran/20923
5325         PR fortran/32489
5326         * trans-array.c (gfc_conv_array_initializer): Change call to
5327         gfc_error_now to call to gfc_fatal_error.
5328         * array.c (count_elements): Whitespace. (extract_element): Whitespace.
5329         (is_constant_element): Changed name from constant_element.
5330         (gfc_constant_ac): Only use expand_construuctor for expression
5331         types of EXPR_ARRAY.  If expression type is EXPR_CONSTANT, no need to
5332         call gfc_is_constant_expr.
5333         * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
5334         message.
5335         * resolve.c (gfc_is_expandable_expr): New function that determiners if
5336         array expressions should have their constructors expanded.
5337         (gfc_resolve_expr): Use new function to determine whether or not to call
5338         gfc_expand_constructor.
5340 2010-01-09  Tobias Burnus  <burnus@net-b.de>
5342         PR fortran/41298
5343         * trans-expr.c (gfc_trans_structure_assign): Handle
5344         c_null_(fun)ptr.
5345         * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
5346         to the constructor for c_null_(fun)ptr.
5347         * resolve.c (resolve_structure_cons): Add special case
5348         for c_null_(fun)ptr.
5350 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
5352         * gfortranspec.c (lang_specific_driver): Update copyright notice
5353         dates.
5355 2010-01-08  Tobias Burnus  <burnus@net-b.de>
5357         PR/fortran 25829
5358         * symbol.c (check_conflict, gfc_copy_attr): Add
5359         ASYNCHRONOUS support.
5360         (gfc_add_asynchronous): New function.
5361         * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
5362         (gfc_match_asynchronous): New function.
5363         * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
5364         * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
5365         (gfc_add_asynchronous): New Prototype.
5366         * module.c (ab_attribute, mio_symbol_attribute): Add
5367         ASYNCHRONOUS support.
5368         * resolve.c (was_declared): Ditto.
5369         * match.h (gfc_match_asynchronous): New prototype.
5370         * parse.c (decode_specification_statement,decode_statement):
5371         Add ASYNCHRONOUS support.
5373 2010-01-07  Tobias Burnus  <burnus@net-b.de>
5375         PR fortran/42597
5376         * trans-decl.c (get_proc_pointer_decl): Fix call to
5377         gfc_conv_initializer for array-valued proc-pointer funcs.
5379 2010-01-07  Tobias Burnus  <burnus@net-b.de>
5381         PR fortran/41872
5382         * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
5383         allocatable scalars with SAVE attribute.
5385 2010-01-05  Tobias Burnus  <burnus@net-b.de>
5387         PR fortran/42517
5388         * options.c (gfc_post_options): Set -frecursion
5389         when -fopenmp is used.
5391 2010-01-05  Tobias Burnus  <burnus@net-b.de>
5393         PR fortran/41872
5394         * trans-expr.c (gfc_conv_procedure_call): Nullify
5395         return value for allocatable-scalar character functions.
5397 2010-01-04  Tobias Burnus  <burnus@net-b.de>
5399         PR fortran/36161
5400         * error.c (error_printf, gfc_warning, gfc_notify_std,
5401         gfc_warning_now, gfc_error, gfc_error_now,
5402         gfc_fatal_error): Change argument name from nocmsgid to
5403         gmsgid to enable (x)gettext's % checking.
5405 2010-01-04  Tobias Burnus  <burnus@net-b.de>
5406         
5407         * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
5409 2010-01-04  Tobias Burnus  <burnus@net-b.de>
5411         PR fortran/41872
5412         * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
5413         for functions returning allocatable scalars.
5414         * trans-stmt.c (gfc_trans_allocate): Emmit error when
5415         reallocating an allocatable scalar.
5416         * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
5417         in comment.
5418         * trans-decl.c (gfc_trans_deferred_vars): Nullify local
5419         allocatable scalars.
5420         (gfc_generate_function_code): Nullify result variable for
5421         allocatable scalars.
5422         
5423         PR fortran/40849
5424         * module.c (gfc_use_module): Fix warning string to allow
5425         for translation.
5427         PR fortran/42517
5428         * invoke.texi (-fcheck=recursion): Mention that the checking
5429         is also disabled for -frecursive.
5430         * trans-decl.c (gfc_generate_function_code): Disable
5431         -fcheck=recursion when -frecursive is used.
5433         * intrinsic.texi (iso_c_binding): Improve wording.
5436 Copyright (C) 2010 Free Software Foundation, Inc.
5438 Copying and distribution of this file, with or without modification,
5439 are permitted in any medium without royalty provided the copyright
5440 notice and this notice are preserved.