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