OSDN Git Service

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