OSDN Git Service

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