OSDN Git Service

903f25d389804381781d80cd72804890a4074e57
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2009-09-11  Janus Weil  <janus@gcc.gnu.org>
2
3         PR fortran/41242
4         * resolve.c (resolve_ordinary_assign): Don't call resolve_code,
5         to avoid that subsequent codes are resolved more than once.
6         (resolve_code): Make sure that type-bound assignment operators are
7         resolved correctly.
8
9
10 2009-09-10  Steven G. Kargl  <kargl@gcc.gnu.org>
11
12         PR fortran/31292
13         * fortran/decl.c(gfc_match_modproc): Check that module procedures
14         from a module can USEd in module procedure statements in other
15         program units.  Update locus for better error message display.
16         Detect intrinsic procedures in module procedure statements.
17
18 2009-09-09  Richard Guenther  <rguenther@suse.de>
19
20         PR fortran/41297
21         * trans-expr.c (gfc_trans_scalar_assign): Correct typo that
22         left 'tmp' unused in derived type assignment.
23
24 2009-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
25
26         PR fortran/41197
27         * resolve_c (resolve_allocate_deallocate):  Complain
28         if stat or errmsg varaible is an array.
29
30 2009-09-05  Paul Thomas  <pault@gcc.gnu.org>
31
32         PR fortran/41258
33         * primary.c (gfc_match_varspec): Do not look for typebound
34         procedures unless the derived type has a f2k_derived namespace.
35
36 2009-09-03  Diego Novillo  <dnovillo@google.com>
37
38         * f95-lang.c (lang_hooks): Remove const qualifier.
39
40 2009-09-01  Richard Guenther  <rguenther@suse.de>
41
42         * f95-lang.c (gfc_mark_addressable): Remove.
43         (LANG_HOOKS_MARK_ADDRESSABLE): Likewise.
44
45 2009-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
46
47         PR fortran/39229
48         * scanner.c (next_char): Fix typo in comment.
49         (gfc_get_char_literal): Warn if truncate flag is set for both fixed and
50         free form source, adjusting error locus as needed.
51         * parse.c (next_fixed): Clear the truncate flag.
52         (next_statement): Remove truncate warning.
53
54 2009-08-31  Janus Weil  <janus@gcc.gnu.org>
55             Paul Thomas  <pault@gcc.gnu.org>
56
57         PR fortran/40940
58         * array.c (gfc_match_array_constructor): Rename gfc_match_type_spec.
59         * decl.c (gfc_match_type_spec): Rename to gfc_match_decl_type_spec,
60         and reject CLASS with -std=f95.
61         (gfc_match_implicit, gfc_match_data_decl,gfc_match_prefix,
62         match_procedure_interface): Rename gfc_match_type_spec.
63         * gfortran.h (gfc_type_compatible): Add prototype.
64         * match.h (gfc_match_type_spec): Rename to gfc_match_decl_type_spec.
65         * match.c (match_intrinsic_typespec): Rename to match_type_spec, and
66         add handling of derived types.
67         (gfc_match_allocate): Rename match_intrinsic_typespec and check
68         type compatibility of derived types.
69         * symbol.c (gfc_type_compatible): New function to check if two types
70         are compatible.
71
72 2009-08-31  Janus Weil  <janus@gcc.gnu.org>
73
74         PR fortran/40996
75         * check.c (gfc_check_allocated): Implement allocatable scalars.
76         * resolve.c (resolve_allocate_expr,resolve_fl_var_and_proc): Ditto.
77         * trans-intrinsic.c (gfc_conv_allocated): Ditto.
78
79 2009-08-30  Daniel Kraft  <d@domob.eu>
80
81         PR fortran/37425
82         * dump-parse-tree.c (show_typebound_proc): Renamed from `show_typebound'
83         and accept gfc_typebound_proc and name instead of the symtree, needed
84         for intrinsic operator output.
85         (show_typebound_symtree): New method calling `show_typebound_proc'.
86         (show_f2k_derived): Output type-bound operators also.
87         (show_symbol): Moved output of `Procedure bindings:' label to
88         `show_f2k_derived'.
89         * gfortran.texi (Fortran 2003 status): Mention support of
90         array-constructors with explicit type specification, type-bound
91         procedures/operators, type extension, ABSTRACT types and DEFERRED.
92         Link to Fortran 2003 wiki page.
93         (Fortran 2008 status): Fix typo.  Link to Fortran 2008 wiki page.
94         * gfc-internals.texi (Type-bound Procedures): Document the new
95         members/attributes of gfc_expr.value.compcall used for type-bound
96         operators.
97         (Type-bound Operators): New section documenting their internals.
98
99 2009-08-27  Janus Weil  <janus@gcc.gnu.org>
100
101         PR fortran/40869
102         * expr.c (gfc_check_pointer_assign): Enable interface check for
103         pointer assignments involving procedure pointer components.
104         * gfortran.h (gfc_compare_interfaces): Modified prototype.
105         * interface.c (gfc_compare_interfaces): Add argument 'name2', to be
106         used instead of s2->name. Don't rely on the proc_pointer attribute,
107         but instead on the flags handed to this function.
108         (check_interface1,compare_parameter): Add argument for
109         gfc_compare_interfaces.
110         * resolve.c (check_generic_tbp_ambiguity): Ditto.
111
112 2009-08-27  Daniel Kraft  <d@domob.eu>
113
114         PR fortran/37425
115         * gfortran.h (gfc_expr): Optionally store base-object in compcall value
116         and add a new flag to distinguish assign-calls generated.
117         (gfc_find_typebound_proc): Add locus argument.
118         (gfc_find_typebound_user_op), (gfc_find_typebound_intrinsic_op): Ditto.
119         (gfc_extend_expr): Return if failure was by a real error.
120         * interface.c (matching_typebound_op): New routine.
121         (build_compcall_for_operator): New routine.
122         (gfc_extend_expr): Handle type-bound operators, some clean-up and
123         return if failure was by a real error or just by not finding an
124         appropriate operator definition.
125         (gfc_extend_assign): Handle type-bound assignments.
126         * module.c (MOD_VERSION): Incremented.
127         (mio_intrinsic_op): New routine.
128         (mio_full_typebound_tree): New routine to make typebound-procedures IO
129         code reusable for type-bound user operators.
130         (mio_f2k_derived): IO of type-bound operators.
131         * primary.c (gfc_match_varspec): Initialize new fields in gfc_expr and
132         pass locus to gfc_find_typebound_proc.
133         * resolve.c (resolve_operator): Only output error about no matching
134         interface if gfc_extend_expr did not already fail with an error.
135         (extract_compcall_passed_object): Use specified base-object if present.
136         (update_compcall_arglist): Handle ignore_pass field.
137         (resolve_ordinary_assign): Update to handle extended code for
138         type-bound assignments, too.
139         (resolve_code): Handle EXEC_ASSIGN_CALL statement code.
140         (resolve_tb_generic_targets): Pass locus to gfc_find_typebound_proc.
141         (resolve_typebound_generic), (resolve_typebound_procedure): Ditto.
142         (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): Ditto.
143         (ensure_not_abstract_walker), (resolve_fl_derived): Ditto.
144         (resolve_typebound_procedures): Remove not-implemented error.
145         (resolve_typebound_call): Handle assign-call flag.
146         * symbol.c (find_typebound_proc_uop): New argument to pass locus for
147         error message about PRIVATE, verify that a found procedure is not marked
148         as erraneous.
149         (gfc_find_typebound_intrinsic_op): Ditto.
150         (gfc_find_typebound_proc), (gfc_find_typebound_user_op): New locus arg.
151
152 2009-08-22  Bud Davis <bdavis9659@sbcglobal.net>
153
154         PR fortran/28093
155         * io.c: reverted previous patch.
156
157 2009-08-25  Janne Blomqvist  <jb@gcc.gnu.org>
158
159         * gfortran.texi: Fix ENCODE example.
160
161 2009-08-25  Janus Weil  <janus@gcc.gnu.org>
162
163         PR fortran/41139
164         * primary.c (gfc_match_varspec): Make sure EXPR_PPC is only used for
165         calls to procedure pointer components, other references to procedure
166         pointer components are EXPR_VARIABLE.
167         * resolve.c (resolve_actual_arglist): Bugfix (there can be calls without
168         actual arglist).
169         * trans-expr.c (gfc_get_proc_ptr_comp): Renamed to 'get_proc_ptr_comp',
170         removed argument 'se' and made static. Avoid inserting a temporary
171         variable for calling the PPC.
172         (conv_function_val): Renamed gfc_get_proc_ptr_comp.
173         (gfc_conv_procedure_call): Distinguish functions returning a procedure
174         pointer from calls to a procedure pointer. Distinguish calls to
175         procedure pointer components from procedure pointer components as
176         actual arguments.
177         * trans-stmt.h (gfc_get_proc_ptr_comp): Make it static.
178
179 2009-08-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
180
181         PR fortran/41162
182         * io.c (check_format): Fix to not error on slash after P. Fix some
183         error loci.
184         
185 2009-08-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
186
187         PR fortran/41154
188         * io.c (check_format): Fix to not error on right paren after P.
189
190 2009-08-24  Aldy Hernandez  <aldyh@redhat.com>
191
192         PR fortran/40660
193         * trans-io.c (build_dt): Pass UNKNOWN_LOCATION to build_call_expr_loc.
194         (transfer_array_desc): Same.
195
196 2009-08-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
197
198         PR fortran/35754
199         * io.c (check_format): Add checks for comma and the allowed
200         format specifiers after the 'P' specifier. Fix typo in error message
201         and adjust locus.
202
203 2009-08-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
204
205         PR fortran/37446
206         * io.c (enum format_token): Change FMT_EXT to FMT_EN and FMT_ES.
207         (format_lex): Likewise.
208         (token_to_string): New function.
209         (check_format): Use the new tokens and the new function. Add
210         check for positive width.
211
212 2009-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
213
214         * fortran/decl.c: Disallow procedure pointers with -std=f95.
215
216 2009-08-22 Steven K. kargl  <kargl@gcc.gnu.org>
217            Paul Thomas  <pault@gcc.gnu.org>
218
219         * fortran/decl.c (match_char_spec): Rename to gfc_match_char_spec,
220         and remove static.
221         * fortran/gfortran.h: Add *expr3 entity to gfc_code.  Add prototype
222         for gfc_match_char_spec.
223         * fortran/trans-stmt.c (gfc_trans_allocate): Translate the SOURCE=
224         tag.
225         * fortran/match.c (match_intrinsic_typespec): New function to match
226         F2003 intrinsic-type-spec.
227         (conformable_arrays): New function. Check SOURCE= and
228         allocation-object are conformable.
229         (gfc_match_allocate): Use new functions.  Match SOURCE= tag.
230
231 2009-08-22  Bud Davis <bdavis9659@sbcglobal.net>
232
233         PR fortran/28093
234         * io.c : added variable to store original len of fmt
235         * io.c (check_format): Consume H items using next_char
236         in both modes to handle consecutive single quotes.
237         Test for extra characters in fmt, issue warning.
238
239 2009-08-21  Janus Weil  <janus@gcc.gnu.org>
240
241         PR fortran/41106
242         * primary.c (gfc_variable_attr): Make it work also on EXPR_FUNCTION.
243         (gfc_expr_attr): Use gfc_variable_attr for procedure pointer components.
244         * resolve.c (resolve_fl_derived): Handle CHARACTER-valued procedure
245         pointer components.
246         * trans-expr.c (gfc_conv_component_ref): Ditto.
247         (gfc_conv_variable): Ditto.
248         (gfc_conv_procedure_call): Ditto.
249         (gfc_trans_pointer_assignment): Ditto.
250         * trans-types.c (gfc_get_derived_type): Ditto.
251
252 2009-08-20  Tobias Schlüter  <tobi@gcc.gnu.org>
253
254         * trans-stmt.c (gfc_trans_do): Add a few missing folds.
255
256 2009-08-20  Michael Matz  <matz@suse.de>
257
258         PR fortran/41126
259         * trans-expr.c (gfc_conv_string_tmp): Check type compatibility
260         instead of equality.
261
262 2009-08-20  Janus Weil  <janus@gcc.gnu.org>
263
264         PR fortran/41121
265         * resolve.c (resolve_symbol): Don't resolve formal_ns of intrinsic
266         procedures.
267
268 2009-08-18  Michael Matz  <matz@suse.de>
269
270         * trans-expr.c (gfc_conv_substring): Don't evaluate casted decl early,
271         change order of length calculation to (end - start) + 1.
272         (gfc_get_interface_mapping_array): Adjust call to
273         gfc_get_nodesc_array_type.
274         * trans-array.c (gfc_trans_create_temp_array,
275         gfc_build_constant_array_constructor, gfc_conv_expr_descriptor): Ditto.
276         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
277         * trans.c (gfc_add_modify): Assignment between base type and nontarget
278         type are equal enough.
279         (gfc_call_malloc): Use prvoid_type_node for return value of
280         __builtin_malloc.
281         (gfc_allocate_with_status): Ditto.
282         * trans-types.c (gfc_array_descriptor_base): Double size of this array.
283         (gfc_init_types): Build prvoid_type_node.
284         (gfc_build_array_type): New bool parameter "restricted".
285         (gfc_get_nodesc_array_type): Ditto, build restrict qualified pointers,
286         if it's true.
287         (gfc_get_array_descriptor_base): Ditto.
288         (gfc_get_array_type_bounds): Ditto.
289         (gfc_sym_type): Use symbol attributes to feed calls to above functions.
290         (gfc_get_derived_type): Ditto.
291         * trans.h (struct lang_type): Add nontarget_type member.
292         * trans-types.h (prvoid_type_node): Declare.
293         (gfc_get_array_type_bounds, gfc_get_nodesc_array_type): Declare new
294         parameter.
295         * trans-decl.c (gfc_finish_var_decl): Give scalars that can't be
296         aliased a type with a different alias set than the base type.
297         (gfc_build_dummy_array_decl): Adjust call to gfc_get_nodesc_array_type.
298
299 2009-08-18  Janus Weil  <janus@gcc.gnu.org>
300             Paul Thomas  <pault@gcc.gnu.org>
301
302         PR fortran/40870
303         * trans-types.c (gfc_get_ppc_type): Include formal args in backend_decl
304         using the interface symbol. Character types are returned by reference.
305         (gfc_get_derived_type): Prevent infinite recursion loop
306         if a PPC has a derived-type formal arg.
307
308 2008-08-17  Paul Thomas  <pault@gcc.gnu.org>
309
310         PR fortran/41062
311         * trans-decl.c (gfc_trans_use_stmts):  Keep going through use
312         list if symbol is not use associated.
313
314 2009-08-17  Daniel Kraft  <d@domob.eu>
315
316         PR fortran/37425
317         * resolve.c (get_checked_tb_operator_target): New routine to do checks
318         on type-bound operators in common between intrinsic and user operators.
319         (resolve_typebound_intrinsic_op): Call it.
320         (resolve_typebound_user_op): Ditto.
321
322 2009-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
323
324         PR fortran/41075
325         * scanner.c (gfc_next_char_literal): Add comment to improve 
326         readability.
327         * io.c (enum format_token): Add FMT_STAR. (format_lex): Add case
328         for '*'. (check_format): Check for left paren after '*'.  Change
329         format checks to use %L to improve format string error locus.
330
331 2009-08-17  Janus Weil  <janus@gcc.gnu.org>
332
333         PR fortran/40877
334         * array.c (gfc_resolve_character_array_constructor): Add NULL argument
335         to gfc_new_charlen.
336         * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec,
337         gfc_match_implicit): Ditto.
338         * expr.c (simplify_const_ref): Fix memory leak.
339         (gfc_simplify_expr): Add NULL argument to gfc_new_charlen.
340         * gfortran.h (gfc_new_charlen): Modified prototype.
341         * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Add NULL
342         argument to gfc_new_charlen.
343         * module.c (mio_charlen): Ditto.
344         * resolve.c (gfc_resolve_substring_charlen,
345         gfc_resolve_character_operator,fixup_charlen): Ditto.
346         (resolve_fl_derived,resolve_symbol): Add argument to gfc_charlen.
347         * symbol.c (gfc_new_charlen): Add argument 'old_cl' (to make a copy of
348         an existing charlen).
349         (gfc_set_default_type,generate_isocbinding_symbol): Fix memory leak.
350         (gfc_copy_formal_args_intr): Add NULL argument to gfc_new_charlen.
351         * trans-decl.c (create_function_arglist): Fix memory leak.
352
353 2009-08-17  Richard Guenther  <rguenther@suse.de>
354
355         * trans-expr.c (gfc_trans_scalar_assign): Replace hack with
356         more proper hack.
357
358 2009-08-15  Tobias Burnus  <burnus@net-b.de>
359
360         PR fortran/41080
361         * gfortranspec.c (lookup_option): Remove gfortran-specific
362         version of -dumpversion.
363
364 2009-08-14  Janus Weil  <janus@gcc.gnu.org>
365
366         PR fortran/41070
367         * resolve.c (resolve_structure_cons): Make sure that ts.u.derived is
368         only used if type is BT_DERIVED.
369
370 2009-08-13  Janus Weil  <janus@gcc.gnu.org>
371
372         PR fortran/40941
373         * gfortran.h (gfc_typespec): Put 'derived' and 'cl' into union.
374         * decl.c (build_struct): Make sure 'cl' is only used
375         if type is BT_CHARACTER.
376         * symbol.c (gfc_set_default_type): Ditto.
377         * resolve.c (resolve_symbol, resolve_fl_derived): Ditto.
378         (resolve_equivalence,resolve_equivalence_derived): Make sure 'derived'
379         is only used if type is BT_DERIVED.
380         * trans-io.c (transfer_expr): Make sure 'derived' is only used if type
381         is BT_DERIVED or BT_INTEGER (special case: C_PTR/C_FUNPTR).
382         * array.c: Mechanical replacements to accomodate union in gfc_typespec.
383         * check.c: Ditto.
384         * data.c: Ditto.
385         * decl.c: Ditto.
386         * dump-parse-tree.c: Ditto.
387         * expr.c: Ditto.
388         * interface.c: Ditto.
389         * iresolve.c: Ditto.
390         * match.c: Ditto.
391         * misc.c: Ditto.
392         * module.c: Ditto.
393         * openmp.c: Ditto.
394         * parse.c: Ditto.
395         * primary.c: Ditto.
396         * resolve.c: Ditto.
397         * simplify.c: Ditto.
398         * symbol.c: Ditto.
399         * target-memory.c: Ditto.
400         * trans-array.c: Ditto.
401         * trans-common.c: Ditto.
402         * trans-const.c: Ditto.
403         * trans-decl.c: Ditto.
404         * trans-expr.c: Ditto.
405         * trans-intrinsic.c: Ditto.
406         * trans-io.c: Ditto.
407         * trans-stmt.c: Ditto.
408         * trans-types.c: Ditto.
409
410 2009-08-13  Janus Weil  <janus@gcc.gnu.org>
411
412         PR fortran/40995
413         * resolve.c (resolve_symbol): Move some checking code to
414         resolve_intrinsic, and call this from here.
415         (resolve_intrinsic): Some checking code moved here from resolve_symbol.
416         Make sure each intrinsic is only resolved once.
417
418 2009-08-12  Tobias Burnus  <burnus@net-b.de>
419
420         PR fortran/41034
421         * symbol.c (gfc_copy_attr): Merge bits instead of replace
422         bits in gfc_copy_attr.
423         * gfc_check_pointer_assign (gfc_check_pointer_assign):
424         Initialize ext_attr bits by zero.
425
426 2009-08-11  Richard Guenther  <rguenther@suse.de>
427
428         * trans-types.c (gfc_get_derived_type): Do not clear TYPE_CANONICAL.
429
430 2009-08-11  Janus Weil  <janus@gcc.gnu.org>
431
432         PR fortran/41022
433         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
434         components as actual arguments.
435
436 2009-08-10  Daniel Kraft  <d@domob.eu>
437
438         PR fortran/37425
439         * gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op.
440         (gfc_find_typebound_user_op): New routine.
441         (gfc_find_typebound_intrinsic_op): Ditto.
442         (gfc_check_operator_interface): Now public routine.
443         * decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=).
444         * interface.c (check_operator_interface): Made public, renamed to
445         `gfc_check_operator_interface' accordingly and hand in the interface
446         as gfc_symbol rather than gfc_interface so it is useful for type-bound
447         operators, too.  Return boolean result.
448         (gfc_check_interfaces): Adapt call to `check_operator_interface'.
449         * symbol.c (gfc_get_namespace): Initialize new field `tb_op'.
450         (gfc_free_namespace): Free `tb_uop_root'-based tree.
451         (find_typebound_proc_uop): New helper function.
452         (gfc_find_typebound_proc): Use it.
453         (gfc_find_typebound_user_op): New method.
454         (gfc_find_typebound_intrinsic_op): Ditto.
455         * resolve.c (resolve_tb_generic_targets): New helper function.
456         (resolve_typebound_generic): Use it.
457         (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New.
458         (resolve_typebound_procedures): Resolve operators, too.
459         (check_uop_procedure): New, code from gfc_resolve_uops.
460         (gfc_resolve_uops): Moved main code to new `check_uop_procedure'.
461
462 2009-08-10  Janus Weil  <janus@gcc.gnu.org>
463
464         PR fortran/40940
465         * decl.c (gfc_match_type_spec): Match CLASS statement and warn about
466         missing polymorphism.
467         * gfortran.h (gfc_typespec): Add field 'is_class'.
468         * misc.c (gfc_clear_ts): Initialize 'is_class' to zero.
469         * resolve.c (type_is_extensible): New function to check if a derived
470         type is extensible.
471         (resolve_fl_variable_derived): Add error checks for CLASS variables.
472         (resolve_typebound_procedure): Disallow non-polymorphic passed-object
473         dummy arguments, turning warning into error.
474         (resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic
475         passed-object dummy arguments for procedure pointer components,
476         turning warning into error. Add error check for CLASS components.
477
478 2009-08-05  Tobias Burnus  <burnus@net-b.de>
479
480         PR fortran/40955
481         * gfortran.h (ext_attr_id_t): Add typedef for this enum.
482         (gfc_add_ext_attribute): Use it.
483         * decl.c (gfc_match_gcc_attributes): Ditto.
484         * expr.c (gfc_check_pointer_assign): Ditto.
485         * symbol.c (gfc_add_ext_attribute): Ditto.
486         (gfc_copy_attr): Copy also ext_attr.
487         * resolve.c (resolve_fl_derived,resolve_symbol): Ditto.
488         * module.c (mio_symbol_attribute): Save ext_attr in the mod file.
489
490 2009-08-05  Tobias Burnus  <burnus@net-b.de>
491
492         PR fortran/40969
493         Revert:
494         2009-08-04  Tobias Burnus  <burnus@net-b.de>
495
496         PR fortran/40949
497         * trans-types.c (gfc_get_function_type): Fix typelist of
498         functions without argument.
499
500 2009-08-05  Paul Thomas  <pault@gcc.gnu.org>
501
502         PR fortran/40847
503         * iresolve.c (gfc_resolve_transfer): Correct error in 'mold'
504         character length for case where length expresson is NULL.
505
506 2009-08-04  Tobias Burnus  <burnus@net-b.de>
507
508         PR fortran/40949
509         * trans-types.c (gfc_get_function_type): Fix typelist of
510         functions without argument.
511
512 2009-08-04  Paul Thomas  <pault@gcc.gnu.org>
513
514         PR fortran/40875
515         * decl.c (add_init_expr_to_sym): Character symbols can only be
516         initialized with character expressions.
517
518 2009-08-02  Janus Weil  <janus@gcc.gnu.org>
519
520         PR fortran/40881
521         * decl.c (match_char_length): Warn about old-style character length
522         declarations.
523         * match.c (match_arithmetic_if,gfc_match_if): Modify warning message
524         for arithmetic if.
525         (gfc_match_goto): Warn about computed gotos.
526         (gfc_match_return): Warn about alternate return.
527         (gfc_match_st_function): Warn about statement functions.
528         * resolve.c (resolve_fl_procedure): Modify warning message for
529         assumed-length character functions.
530
531 2009-08-01  Paul Thomas  <pault@gcc.gnu.org>
532
533         PR fortran/40011
534         * error.c : Add static flag 'warnings_not_errors'.
535         (gfc_error): If 'warnings_not_errors' is set, branch to code
536         from gfc_warning.
537         (gfc_clear_error): Reset 'warnings_not_errors'.
538         (gfc_errors_to_warnings): New function.
539         * options.c (gfc_post_options): If pedantic and flag_whole_file
540         change the latter to a value of 2.
541         * parse.c (parse_module): Add module namespace to gsymbol.
542         (resolve_all_program_units): New function.
543         (clean_up_modules): New function.
544         (translate_all_program_units): New function.
545         (gfc_parse_file): If whole_file, do not clean up module right
546         away and add derived types to namespace derived types. In
547         addition, call the three new functions above.
548         * resolve.c (not_in_recursive): New function.
549         (not_entry_self_reference): New function.
550         (resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN,
551         procedure must not be in the course of being resolved and
552         must return false for the two new functions. Pack away the
553         current derived type list before calling gfc_resolve for the
554         gsymbol namespace.  It is unconditionally an error if the ranks
555         of the reference and ther procedure do not match. Convert
556         errors to warnings during call to gfc_procedure_use if not
557         pedantic or legacy.
558         (gfc_resolve): Set namespace resolved flag to -1 during
559         resolution and store current cs_base.
560         * trans-decl.c (gfc_get_symbol_decl): If whole_file compilation
561         substitute a use associated variable, if it is available in a
562         gsymbolnamespace.
563         (gfc_get_extern_function_decl): If the procedure is use assoc,
564         do not attempt to find it in a gsymbol because it could be an
565         interface. If the symbol exists in a module namespace, return
566         its backend_decl.
567         * trans-expr.c (gfc_trans_scalar_assign): If a derived type
568         assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs.
569         * trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a
570         boolean argument. Copy component backend_decls directly if the
571         components are derived types and from_gsym is true.
572         (gfc_get_derived_type): If whole_file copy the derived type from
573         the module if it is use associated, otherwise, if can be found
574         in another gsymbol namespace, use the existing derived type as
575         the TYPE_CANONICAL and build normally.
576         * gfortran.h : Add derived_types and resolved fields to
577         gfc_namespace. Include prototype for gfc_errors_to_warnings.
578
579 2009-07-29  Tobias Burnus  <burnus@net-b.de>
580
581         PR fortran/40898
582         * trans-types.c (gfc_get_function_type): Do not add hidden
583         string-length argument for BIND(C) procedures.
584         * trans-decl.c (create_function_arglist): Skip over nonexisting
585         string-length arguments for BIND(C) procedures.
586
587 2009-07-28  Jakub Jelinek  <jakub@redhat.com>
588
589         PR fortran/40878
590         * openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of
591         gfc_error to diagnose invalid COLLAPSE arguments.
592
593 2009-07-28  Janus Weil  <janus@gcc.gnu.org>
594
595         PR fortran/40882
596         * trans-types.c (gfc_get_ppc_type): For derived types, directly use the
597         backend_decl, instead of calling gfc_typenode_for_spec, to avoid
598         infinte loop.
599         (gfc_get_derived_type): Correctly handle PPCs returning derived types,
600         avoiding infinite recursion.
601
602 2009-07-27  Janus Weil  <janus@gcc.gnu.org>
603
604         PR fortran/40848
605         * interface.c (gfc_compare_interfaces): Call 'count_types_test' before
606         'generic_correspondence', and only if checking a generic interface.
607
608 2009-07-27  Tobias Burnus  <burnus@net-b.de>
609
610         PR fortran/40851
611         * resolve.c (resolve_symbol): Do not initialize pointer derived-types.
612         * trans-decl.c (init_intent_out_dt): Ditto.
613         (generate_local_decl): No need to set attr.referenced for DT pointers.
614
615 2009-07-26  Tobias Burnus  <burnus@net-b.de>
616
617         PR fortran/33197
618         * intrinsic.c (make_generic): Remove assert as "atan" can be
619         both ISYM_ATAN and ISYM_ATAN2.
620         (add_functions): Add two-argument variant of ATAN.
621         * intrinsic.h (gfc_check_atan_2): Add check for it.
622         * intrinsic.texi (ATAN2): Correct and enhance description.
623         (ATAN): Describe two-argument variant of ATAN.
624
625 2009-07-25  Tobias Burnus  <burnus@net-b.de>
626             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
627
628         PR fortran/33197
629         * intrinsic.c (add_functions): Support complex arguments for
630         acos,acosh,asin,asinh,atan,atanh.
631         * invoke.texi (ACOS,ACOSH,ASIN,ASINH,ATAN,ATANH): Support
632         complex arguments.
633         * simplify.c (gfc_simplify_acos,gfc_simplify_acosh,
634         gfc_simplify_asin,gfc_simplify_asinh,gfc_simplify_atan,
635         gfc_simplify_atanh,gfc_simplify_atan,gfc_simplify_asinh,
636         gfc_simplify_acosh,gfc_simplify_atanh): Support
637         complex arguments.
638
639 2009-07-25  Richard Guenther  <rguenther@suse.de>
640
641         PR fortran/40005
642         * trans-types.c (gfc_get_array_type_bounds): Use
643         build_distinct_type_copy with a proper TYPE_CANONICAL and
644         re-use the type-decl of the original type.
645         * trans-decl.c (build_entry_thunks): Signal cgraph we may not
646         garbage collect.
647         (create_main_function): Likewise.
648         (gfc_generate_function_code): Likewise.
649         * trans-expr.c (gfc_trans_subcomponent_assign): Do not use
650         fold_convert on record types.
651
652 2009-07-25  Janus Weil  <janus@gcc.gnu.org>
653
654         PR fortran/39630
655         * decl.c (match_ppc_decl): Implement the PASS attribute for procedure
656         pointer components.
657         (match_binding_attributes): Ditto.
658         * gfortran.h (gfc_component): Add member 'tb'.
659         (gfc_typebound_proc): Add member 'ppc' and make 'pass_arg' const.
660         * module.c (MOD_VERSION): Bump module version.
661         (binding_ppc): New string constants.
662         (mio_component): Only use formal args if component is a procedure
663         pointer and add 'tb' member.
664         (mio_typebound_proc): Include pass_arg and take care of procedure
665         pointer components.
666         * resolve.c (update_arglist_pass): Add argument 'name' and take care of
667         optional arguments.
668         (extract_ppc_passed_object): New function, analogous to
669         extract_compcall_passed_object, but for procedure pointer components.
670         (update_ppc_arglist): New function, analogous to
671         update_compcall_arglist, but for procedure pointer components.
672         (resolve_typebound_generic_call): Added argument to update_arglist_pass.
673         (resolve_ppc_call, resolve_expr_ppc): Take care of PASS attribute.
674         (resolve_fl_derived): Check the PASS argument for procedure pointer
675         components.
676         * symbol.c (verify_bind_c_derived_type): Reject procedure pointer
677         components in BIND(C) types.
678
679 2009-07-24  Janus Weil  <janus@gcc.gnu.org>
680
681         PR fortran/40822
682         * array.c (gfc_resolve_character_array_constructor): Use new function
683         gfc_new_charlen.
684         * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec,
685         gfc_match_implicit): Ditto.
686         * expr.c (gfc_simplify_expr): Ditto.
687         * gfortran.h (gfc_new_charlen): New prototype.
688         * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Use new
689         function gfc_new_charlen.
690         * module.c (mio_charlen): Ditto.
691         * resolve.c (gfc_resolve_substring_charlen,
692         gfc_resolve_character_operator,fixup_charlen,resolve_fl_derived,
693         resolve_symbol): Ditto.
694         * symbol.c (gfc_new_charlen): New function to create a new gfc_charlen
695         structure and add it to a namespace.
696         (gfc_copy_formal_args_intr): Make sure ts.cl is present
697         for CHARACTER variables.
698
699 2009-07-24  Jakub Jelinek  <jakub@redhat.com>
700
701         PR fortran/40643
702         PR fortran/31067
703         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
704         gfc_conv_intrinsic_minmaxval): Handle Infinities and NaNs properly,
705         optimize.
706         * trans-array.c (gfc_trans_scalarized_loop_end): No longer static.
707         * trans-array.h (gfc_trans_scalarized_loop_end): New prototype.
708
709 2009-07-23  Jakub Jelinek  <jakub@redhat.com>
710
711         PR fortran/40839
712         * io.c (gfc_resolve_dt): Add LOC argument.  Fail if
713         dt->io_unit is NULL.  Return FAILURE after issuing error about
714         negative UNIT number.
715         (match_io_element): Don't segfault if current_dt->io_unit is NULL.
716         * gfortran.h (gfc_resolve_dt): Adjust prototype.
717         * resolve.c (resolve_code): Adjust caller.
718
719 2009-07-22  Paul Thomas  <pault@gcc.gnu.org>
720
721         PR fortran/40796
722         * trans-decl.c (generate_local_decl): Unreferenced result
723         variables with allocatable components should be treated like
724         INTENT_OUT dummy variables.
725
726 2009-07-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
727
728         * trans.h (gfc_set_decl_assembler_name): New prototype.
729         * trans-decl.c (gfc_set_decl_assembler_name): New function.
730         (gfc_get_symbol_decl, gfc_get_extern_function_decl,
731         build_function_decl): Use gfc_set_decl_assembler_name instead of
732         SET_DECL_ASSEMBLER_NAME.
733         * trans-common.c (build_common_decl): Use
734         gfc_set_decl_assembler_name instead of SET_DECL_ASSEMBLER_NAME.
735
736 2009-07-21  Richard Guenther  <rguenther@suse.de>
737
738         PR fortran/40726
739         * trans-decl.c (gfc_get_extern_function_decl): Do not set
740         DECL_IS_MALLOC for pointer valued functions.
741         (build_function_decl): The same.
742
743 2009-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
744
745         PR fortran/40727
746         * fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that
747         the optional second argument isn't of COMPLEX type.
748
749 2009-07-17  Richard Guenther  <rguenther@suse.de>
750
751         PR c/40401
752         * f95-lang.c (gfc_be_parse_file): Do not finalize the CU here.
753         * trans-decl.c (gfc_gimplify_function): Remove.
754         (build_entry_thunks): Do not gimplify here.
755         (create_main_function): Likewise.
756         (gfc_generate_function_code): Likewise.
757
758 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
759             Manuel López-Ibáñez  <manu@gcc.gnu.org>
760
761         PR 40435 
762         * trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c,
763         trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location
764         argument to fold_{unary,binary,ternary}, fold_build[123],
765         build_call_expr, build_size_arg, build_fold_addr_expr,
766         build_call_array, non_lvalue, size_diffop,
767         fold_build1_initializer, fold_build2_initializer,
768         fold_build3_initializer, fold_build_call_array,
769         fold_build_call_array_initializer, fold_single_bit_test,
770         omit_one_operand, omit_two_operands, invert_truthvalue,
771         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
772         combine_comparisons, fold_builtin_*, fold_call_expr,
773         build_range_check, maybe_fold_offset_to_address, round_up,
774         round_down.
775
776 2009-07-15  Janus Weil  <janus@gcc.gnu.org>
777
778         PR fortran/40743
779         * resolve.c (resolve_symbol): Don't resolve the formal namespace of a
780         contained procedure.
781
782 2009-07-14  Taras Glek  <tglek@mozilla.com>
783             Rafael Espindola  <espindola@google.com>
784
785         * Make-lang.in (fortran.install-plugin): New target for
786         installing plugin headers.
787
788 2009-07-13  H.J. Lu  <hongjiu.lu@intel.com>
789
790         * module.c (mio_symbol): Remove the unused variable, formal.
791
792 2009-07-13  Janus Weil  <janus@gcc.gnu.org>
793
794         PR fortran/40646
795         * module.c (mio_symbol): If the symbol has formal arguments,
796         the formal namespace will be present.
797         * resolve.c (resolve_actual_arglist): Correctly handle 'called'
798         procedure pointer components as actual arguments.
799         (resolve_fl_derived,resolve_symbol): Make sure the formal namespace
800         is present.
801         * trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal
802         arguments of procedure pointer components.
803
804 2009-07-12  Tobias Burnus  <burnus@net-b.de>
805             Philippe Marguinaud <philippe.marguinaud@meteo.fr>
806
807         PR fortran/40588
808         * primary.c (match_charkind_name): Fix condition for $ matching.
809
810         PR libfortran/22423
811         * libgfortran.h: Typedef the GFC_DTYPE_* enum.
812
813 2009-07-11  Tobias Burnus  <burnus@net-b.de>
814
815         PR fortran/33197
816         * check.c (gfc_check_fn_rc2008): New function.
817         * intrinsic.h (gfc_check_fn_rc2008): New prototype.
818         * intrinsic.c (add_functions): Add complex tan, cosh, sinh,
819         and tanh.
820
821 2009-07-10  Paul Thomas  <pault@gcc.gnu.org>
822
823         PR fortran/39334
824         * primary.c (match_kind_param): Return MATCH_NO if the symbol
825         has no value.
826
827 2008-07-09  Paul Thomas  <pault@gcc.gnu.org>
828
829         PR fortran/40629
830         * resolve.c (check_host_association):  Use the existing
831         accessible symtree and treat function expressions with
832         symbols that have procedure flavor.
833
834 2009-07-09  Janus Weil  <janus@gcc.gnu.org>
835
836         PR fortran/40646
837         * dump-parse-tree.c (show_expr): Renamed 'is_proc_ptr_comp'.
838         * expr.c (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
839         (gfc_check_pointer_assign): Renamed 'is_proc_ptr_comp'.
840         (replace_comp,gfc_expr_replace_comp): New functions, analogous
841         to 'replace_symbol' and 'gfc_expr_replace_symbol', just with components
842         instead of symbols.
843         * gfortran.h (gfc_expr_replace_comp): New prototype.
844         (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
845         * interface.c (compare_actual_formal): Renamed 'is_proc_ptr_comp'.
846         * match.c (gfc_match_pointer_assignment): Ditto.
847         * primary.c (gfc_match_varspec): Handle array-valued procedure pointers
848         and procedure pointer components. Renamed 'is_proc_ptr_comp'.
849         * resolve.c (resolve_fl_derived): Correctly handle interfaces with
850         RESULT statement, and handle array-valued procedure pointer components.
851         (resolve_actual_arglist,resolve_ppc_call,resolve_expr_ppc): Renamed
852         'is_proc_ptr_comp'.
853         * trans-array.c (gfc_walk_function_expr): Ditto.
854         * trans-decl.c (gfc_get_symbol_decl): Security check for presence of
855         ns->proc_name.
856         * trans-expr.c (gfc_conv_procedure_call): Handle array-valued procedure
857         pointer components. Renamed 'is_proc_ptr_comp'.
858         (conv_function_val,gfc_trans_arrayfunc_assign): Renamed
859         'is_proc_ptr_comp'.
860         (gfc_get_proc_ptr_comp): Do not modify the argument 'e', but instead
861         make a copy of it.
862         * trans-io.c (gfc_trans_transfer): Handle array-valued procedure
863         pointer components.
864
865 2009-07-09  Tobias Burnus  <burnus@net-b.de>
866
867         PR fortran/40604
868         * intrinsic.c (gfc_convert_type_warn): Set sym->result.
869         * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
870         for optional arguments.
871
872 2009-07-08  Tobias Burnus  <burnus@net-b.de>
873
874         PR fortran/40675
875         * simplify.c (gfc_simplify_sign): Handle signed zero correctly.
876         * trans-intrinsic.c (gfc_conv_intrinsic_sign): Support
877         -fno-sign-zero.
878         * invoke.texi (-fno-sign-zero): Add text regarding SIGN intrinsic.
879
880 2008-07-08  Paul Thomas  <pault@gcc.gnu.org>
881
882         PR fortran/40591
883         * decl.c (match_procedure_interface):  Correct the association
884         or creation of the interface procedure's symbol.
885
886 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
887
888         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer
889         maxloc initialize limit to -huge-1 rather than just -huge.
890
891 2009-07-04  Janus Weil  <janus@gcc.gnu.org>
892
893         PR fortran/40593
894         * interface.c (compare_actual_formal): Take care of proc-pointer-valued
895         functions as actual arguments.
896         * trans-expr.c (gfc_conv_procedure_call): Ditto.
897         * resolve.c (resolve_specific_f0): Use the correct ts.
898
899 2009-07-02  Michael Matz  <matz@suse.de>
900
901         PR fortran/32131
902         * trans-array.c (gfc_conv_descriptor_stride_get): Return
903         constant one for strides in the first dimension of ALLOCATABLE
904         arrays.
905
906 2009-06-30  Janus Weil  <janus@gcc.gnu.org>
907
908         PR fortran/40594
909         * trans-types.c (gfc_get_derived_type): Bugfix, reverting one hunk from
910         r147206.
911
912 2009-06-29  Tobias Burnus  <burnus@net-b.de>
913
914         PR fortran/40580
915         * trans-expr.c  (gfc_conv_procedure_call): Add -fcheck=pointer check.
916         * libgfortran.h: Add GFC_RTCHECK_POINTER.
917         * invoke.texi (-fcheck): Document new pointer option.
918         * options.c (gfc_handle_runtime_check_option): Handle pointer option.
919
920         * gfortran.texi (C Binding): Improve wording.
921         * iso-c-binding.def: Remove obsolete comment.
922
923 2009-06-29  Paul Thomas  <pault@gcc.gnu.org>
924
925         PR fortran/40551
926         * dependency.h : Add second bool* argument to prototype of
927         gfc_full_array_ref_p.
928         * dependency.c (gfc_full_array_ref_p): If second argument is
929         present, return true if last dimension of reference is an
930         element or has unity stride.
931         * trans-array.c : Add NULL second argument to references to
932         gfc_full_array_ref_p.
933         * trans-expr.c : The same, except for;
934         (gfc_trans_arrayfunc_assign): Return fail if lhs reference
935         is not a full array or a contiguous section.
936
937 2009-06-28  Tobias Burnus  <burnus@net-b.de>
938             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
939
940         PR fortran/34112
941         * symbol.c (gfc_add_ext_attribute): New function.
942         (gfc_get_sym_tree): New argument allow_subroutine.
943         (gfc_get_symbol,gfc_get_ha_sym_tree,gen_cptr_param,gen_fptr_param
944         gen_shape_param,generate_isocbinding_symbol): Use it.
945         * decl.c (find_special): New argument allow_subroutine.
946         (add_init_expr_to_sym,add_hidden_procptr_result,attr_decl1,
947         match_procedure_in_type,gfc_match_final_decl): Use it.
948         (gfc_match_gcc_attributes): New function.
949         * gfortran.texi (Mixed-Language Programming): New section
950         "GNU Fortran Compiler Directives".
951         * gfortran.h (ext_attr_t): New struct.
952         (symbol_attributes): Use it.
953         (gfc_add_ext_attribute): New prototype.
954         (gfc_get_sym_tree): Update pototype.
955         * expr.c (gfc_check_pointer_assign): Check whether call
956         convention is the same.
957         * module.c (import_iso_c_binding_module, create_int_parameter,
958         use_iso_fortran_env_module): Update gfc_get_sym_tree call.
959         * scanner.c (skip_gcc_attribute): New function.
960         (skip_free_comments,skip_fixed_comments): Use it.
961         (gfc_next_char_literal): Support !GCC$ lines.
962         * resolve.c (check_host_association): Update
963         gfc_get_sym_tree call.
964         * match.c (gfc_match_sym_tree,gfc_match_call): Update
965         gfc_get_sym_tree call.
966         * trans-decl.c (add_attributes_to_decl): New function.
967         (gfc_get_symbol_decl,get_proc_pointer_decl,
968         gfc_get_extern_function_decl,build_function_decl: Use it.
969         * match.h (gfc_match_gcc_attributes): Add prototype.
970         * parse.c (decode_gcc_attribute): New function.
971         (next_free,next_fixed): Support !GCC$ lines.
972         * primary.c (match_actual_arg,check_for_implicit_index,
973         gfc_match_rvalue,gfc_match_rvalue): Update
974         gfc_get_sym_tree call.
975
976 2009-06-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
977
978         * gfortran.h: Define HAVE_mpc_pow.
979         * arith.c (complex_reciprocal, complex_pow): If HAVE_mpc_pow,
980         don't define these functions.
981         (arith_power): If HAVE_mpc_pow, use mpc_pow.
982
983 2009-06-26  Janus Weil  <janus@gcc.gnu.org>
984
985         PR fortran/39997
986         PR fortran/40541
987         * decl.c (add_hidden_procptr_result): Copy the typespec to the hidden
988         result.
989         * expr.c (gfc_check_pointer_assign): Enable interface check for
990         procedure pointer assignments where the rhs is a function returning a
991         procedure pointer.
992         * resolve.c (resolve_symbol): If an external procedure with unspecified
993         return type can not be implicitly typed, it must be a subroutine.
994
995 2009-06-24  Janus Weil  <janus@gcc.gnu.org>
996
997         PR fortran/40427
998         * gfortran.h (gfc_component): New member 'formal_ns'.
999         (gfc_copy_formal_args_ppc,void gfc_ppc_use): New.
1000         * interface.c (gfc_ppc_use): New function, analogous to
1001         gfc_procedure_use, but for procedure pointer components.
1002         * module.c (MOD_VERSION): Bump module version.
1003         (mio_component): Treat formal arguments.
1004         (mio_formal_arglist): Changed argument from gfc_symbol to
1005         gfc_formal_arglist.
1006         (mio_symbol): Changed argument of mio_formal_arglist.
1007         * resolve.c (resolve_ppc_call,resolve_expr_ppc): Call gfc_ppc_use,
1008         to check actual arguments and treat formal args correctly.
1009         (resolve_fl_derived): Copy formal args of procedure pointer components
1010         from their interface.
1011         * symbol.c (gfc_copy_formal_args_ppc): New function, analogous to
1012         gfc_copy_formal_args, but for procedure pointer components.
1013
1014 2009-06-22  Janus Weil  <janus@gcc.gnu.org>
1015
1016         PR fortran/37254
1017         PR fortran/39850
1018         * interface.c (compare_parameter): Set implicit type for function
1019         actual arguments with BT_UNKNOWN.
1020
1021 2009-06-22  Tobias Burnus  <burnus@net-b.de>
1022
1023         PR fortran/40472
1024         PR fortran/50520
1025         * simplify.c (gfc_simplify_spread): Fix the case that source=
1026         is a scalar.
1027
1028 2009-06-22  Paul Thomas  <pault@gcc.gnu.org>
1029
1030         PR fortran/40443
1031         * interface.c (gfc_search_interface): Hold back a match to an
1032         elementary procedure until all other possibilities are
1033         exhausted.
1034
1035 2009-06-22  Paul Thomas  <pault@gcc.gnu.org>
1036
1037         PR fortran/40472
1038         * simplify.c (gfc_simplify_spread): Restrict the result size to
1039         the limit for an array constructor.
1040
1041 2009-06-21  Janus Weil  <janus@gcc.gnu.org>
1042
1043         PR fortran/39850
1044         * interface.c (gfc_compare_interfaces): Take care of implicit typing
1045         when checking the function attribute. Plus another bugfix.
1046         (compare_parameter): Set attr.function and attr.subroutine according
1047         to the usage of a procedure as actual argument.
1048
1049 2009-06-20  Tobias Burnus  <burnus@net-b.de>
1050
1051         PR fortran/40452
1052         * trans-decl.c (add_argument_checking): Disable bounds check
1053         for allowed argument storage association.
1054
1055 2009-06-19  Paul Thomas  <pault@gcc.gnu.org>
1056
1057         PR fortran/40440
1058         * trans-expr.c (gfc_conv_procedure_call): Do not deallocate
1059         allocatable components if the argument is a pointer.
1060
1061 2009-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1062
1063         * gfortran.h (gfc_expr): Use mpc_t to represent complex numbers.
1064
1065         * arith.c, dump-parse-tree.c, expr.c, module.c, resolve.c,
1066         simplify.c, target-memory.c, target-memory.h, trans-const.c,
1067         trans-expr.c: Convert to mpc_t throughout.
1068
1069 2009-06-19  Ian Lance Taylor  <iant@google.com>
1070
1071         * cpp.c (struct gfc_cpp_option_data): Give this struct, used for
1072         the global variable gfc_cpp_option, a name.
1073
1074 2009-06-19  Janus Weil  <janus@gcc.gnu.org>
1075
1076         PR fortran/40450
1077         * trans-expr.c (gfc_conv_procedure_call): Only add an extra addr_expr
1078         to a procedure pointer actual argument, if it is not itself a
1079         dummy arg.
1080
1081 2009-06-18  Janus Weil  <janus@gcc.gnu.org>
1082
1083         PR fortran/40451
1084         * resolve.c (resolve_contained_fntype): Prevent implicit typing for
1085         procedures with explicit interface.
1086         * symbol.c (gfc_check_function_type): Ditto.
1087
1088 2009-06-16  Ian Lance Taylor  <iant@google.com>
1089
1090         * decl.c (build_struct): Rewrite loop over constructor elements.
1091
1092 2009-06-16  Janus Weil  <janus@gcc.gnu.org>
1093
1094         PR fortran/36947
1095         PR fortran/40039
1096         * expr.c (gfc_check_pointer_assign): Call 'gfc_compare_interfaces' with
1097         error message.
1098         * gfortran.h (gfc_compare_interfaces): Additional argument.
1099         * interface.c (operator_correspondence): Removed.
1100         (gfc_compare_interfaces): Additional argument to return error message.
1101         Directly use the code from 'operator_correspondence' instead of calling
1102         the function. Check for OPTIONAL. Some rearrangements.
1103         (check_interface1): Call 'gfc_compare_interfaces' without error message.
1104         (compare_parameter): Call 'gfc_compare_interfaces' with error message.
1105         * resolve.c (check_generic_tbp_ambiguity): Call 'gfc_compare_interfaces'
1106         without error message.
1107
1108 2009-06-16  Tobias Burnus  <burnus@net-b.de>
1109
1110         PR fortran/40383
1111         * trans-decl.c (create_function_arglist): Copy formal charlist to
1112         have a proper passed_length for -fcheck=bounds.
1113
1114 2009-06-12  Steven G. Kargl  <kargls@comcast.net>
1115
1116         * arith.c (gfc_enum_initializer): Move function ...
1117         * decl.c: ... here.  Remove gfc_ prefix and make static.
1118         (enumerator_decl): Update function call.
1119         * gfortran.h:  Remove gfc_enum_initializer prototype.
1120
1121 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1122
1123         * trans-array.c (gfc_trans_allocate_array_storage): Pass
1124         location on down.
1125         (gfc_trans_array_constructor_value): Same.
1126         (gfc_trans_scalarized_loop_end): Same.
1127         (gfc_conv_ss_startstride): Same.
1128         (gfc_trans_g77_array): Same.
1129         (gfc_trans_dummy_array_bias): Same.
1130         (gfc_conv_array_parameter): Same.
1131         (structure_alloc_comps): Same.
1132         * trans-expr.c (gfc_conv_function_call): Same.
1133         (fill_with_spaces): Same.
1134         (gfc_trans_string_copy): Same.
1135         (gfc_trans_scalar_assign): Same.
1136         * trans-stmt.c (gfc_trans_goto): Same.
1137         (gfc_trans_if_1): Same.
1138         (gfc_trans_simple_do): Same.
1139         (gfc_trans_do): Same.
1140         (gfc_trans_do_while): Same.
1141         (gfc_trans_logical_select): Same.
1142         (gfc_trans_select): Same.
1143         (gfc_trans_forall_loop): Same.
1144         (gfc_trans_nested_forall_loop): Same.
1145         (generate_loop_for_temp_to_lhs): Same.
1146         (generate_loop_for_rhs_to_temp): Same.
1147         (gfc_trans_forall_1): Same.
1148         (gfc_trans_where_assign): Same.
1149         (gfc_trans_where_3): Same.
1150         (gfc_trans_allocate): Same.
1151         * trans.c (gfc_finish_block): Same.
1152         (gfc_trans_runtime_check): Same.
1153         (gfc_call_malloc): Same.
1154         (gfc_allocate_with_status): Same.
1155         (gfc_call_free): Same.
1156         (gfc_deallocate_with_status): Same.
1157         (gfc_call_realloc): Same.
1158         (gfc_trans_code): Same.
1159         * trans-decl.c (gfc_init_default_dt): Same.
1160         (gfc_generate_constructors): Same.
1161         * trans-io.c (gfc_trans_io_runtime_check): Same.
1162         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same.
1163         (gfc_conv_intrinsic_fdate): Same.
1164         (gfc_conv_intrinsic_ttynam): Same.
1165         (gfc_conv_intrinsic_minmax): Same.
1166         (gfc_conv_intrinsic_minmax_char): Same.
1167         (gfc_conv_intrinsic_anyall): Same.
1168         (gfc_conv_intrinsic_count): Same.
1169         (gfc_conv_intrinsic_arith): Same.
1170         (gfc_conv_intrinsic_minmaxloc): Same.
1171         (gfc_conv_intrinsic_minmaxval): Same.
1172         (gfc_conv_intrinsic_rrspacing): Same.
1173         (gfc_conv_intrinsic_array_transfer): Same.
1174         (gfc_conv_intrinsic_trim): Same.
1175         (gfc_conv_intrinsic_repeat): Same.
1176         
1177 2009-06-12  Janus Weil  <janus@gcc.gnu.org>
1178
1179         PR fortran/40176
1180         * resolve.c (resolve_symbol): Additional error check, preventing an
1181         infinite loop.
1182
1183 2009-06-11  Paul Thomas  <pault@gcc.gnu.org>
1184
1185         PR fortran/40402
1186         * resolve.c (next_data_value): It is an error if the value is
1187         not constant.
1188
1189 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1190
1191         PR fortran/38718
1192         * intrinsic.c (add_functions): Add simplifiers for ISNAN,
1193         IS_IOSTAT_END and IS_IOSTAT_EOR.
1194         * intrinsic.h (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
1195         gfc_simplify_isnan): New prototypes.
1196         * intrinsic.c (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
1197         gfc_simplify_isnan): New functions.
1198
1199 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
1200
1201         * interface.c (fold_unary): Rename to...
1202         (fold_unary_intrinsic): ... this.
1203         (gfc_extend_expr): Adjust caller.
1204         (gfc_match_generic_spec): Likewise.  Initialize *op to INTRINSIC_NONE
1205         to avoid warnings.
1206         * expr.c (gfc_simplify_expr): Initialize start and end before calling
1207         gfc_extract_int.
1208
1209 2009-06-10  Dave Korn  <dave.korn.cygwin@gmail.com>
1210
1211         * trans-decl.c (create_main_function):  Don't build main decl twice.
1212
1213 2009-06-09  Tobias Burnus  <burnus@net-b.de>
1214
1215         * trans-decl.c (gfc_generate_function_code): Use gfc_option.rtcheck
1216         instead of flag_bounds_check.
1217         * intrinsic.texi (ISO_FORTRAN_ENV): Document INT{8,16,32,64} and
1218         REAL{32,64,128}.
1219
1220 2009-06-08  Paul Thomas  <pault@gcc.gnu.org>
1221
1222         * trans-array.h : Replace prototypes for
1223         gfc_conv_descriptor_offset, gfc_conv_descriptor_stride,
1224         gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound with new
1225         prototypes of the same names with _get or _set appended.
1226         * trans-array.c : Make the originals of the above static and
1227         new functions for the _get and _set functions. Update all the
1228         references to these descriptor access functions.
1229         * trans-expr.c : Update references to the above descriptor
1230         access functions.
1231         * trans-intrinsic.c : The same.
1232         * trans-openmp.c : The same.
1233         * trans-stmt.c : The same.
1234
1235 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
1236
1237         * options.c (gfc_post_options): Disable dump_parse_tree
1238         during -fcompare-debug-second.
1239
1240 2009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1241
1242         PR fortran/40008
1243         * gfortran.h (gfc_open): Add newunit expression to structure.
1244         * io.c (io_tag): Add new unit tag and fix whitespace.
1245         (match_open_element): Add matching for newunit.
1246         (gfc_free_open): Free the newunit expression.
1247         (gfc_resolve_open): Add newunit to resolution and check constraints.
1248         (gfc_resolve_close): Add check for non-negative unit.
1249         (gfc_resolve_filepos): Likewise.
1250         (gfc_resolve_dt): Likewise.
1251         * trans-io.c (set_parameter_value): Build runtime checks for unit
1252         numbers within range of kind=4 integer. (gfc_trans_open) Set the
1253         newunit parameter.
1254         * ioparm.def (IOPARM): Define the newunit parameter as a pointer
1255         to GFC_INTEGER_4, pint4.
1256
1257 2009-06-07  Daniel Franke  <franke.daniel@gmail.com>
1258
1259         PR fortran/25104
1260         PR fortran/29962
1261         * array.c (gfc_append_constructor): Added NULL-check.
1262         * check.c (gfc_check_spread): Check DIM.
1263         (gfc_check_unpack): Check that the ARRAY arguments provides enough
1264         values for MASK.
1265         * intrinsic.h (gfc_simplify_spread): New prototype.
1266         (gfc_simplify_unpack): Likewise.
1267         * intrinsic.c (add_functions): Added new simplifier callbacks.
1268         * simplify.c (gfc_simplify_spread): New.
1269         (gfc_simplify_unpack): New.
1270         * expr.c (check_transformational): Allow additional transformational
1271         intrinsics in initialization expression.
1272
1273 2009-06-07  Daniel Franke  <franke.daniel@gmail.com>
1274
1275         PR fortran/25104
1276         PR fortran/29962
1277         * check.c (gfc_check_all_any): Check rank of DIM.
1278         (gfc_check_count): Likewise.
1279         * intrinsic.h (gfc_simplify_all): New prototype.
1280         (gfc_simplify_any): Likewise.
1281         (gfc_simplify_count): Likewise.
1282         (gfc_simplify_sum): Likewise.
1283         (gfc_simplify_product): Likewise.
1284         * intrinsic.c (add_functions): Added new simplifier callbacks.
1285         * simplify.c (transformational_result): New.
1286         (simplify_transformation_to_scalar): New.
1287         (simplify_transformation_to_array): New.
1288         (gfc_count): New.
1289         (gfc_simplify_all): New.
1290         (gfc_simplify_any): New.
1291         (gfc_simplify_count): New.
1292         (gfc_simplify_sum): New.
1293         (gfc_simplify_product): New.
1294         * expr.c (check_transformational): Allow additional transformational
1295         intrinsics in initialization expression.
1296
1297 2009-06-07  Daniel Franke  <franke.daniel@gmail.com>
1298
1299         * check.c (dim_rank_check): Return SUCCESS if DIM=NULL.
1300         (gfc_check_lbound): Removed (now) redundant check for DIM=NULL.
1301         (gfc_check_minloc_maxloc): Likewise.
1302         (check_reduction): Likewise.
1303         (gfc_check_size): Likewise.
1304         (gfc_check_ubound): Likewise.
1305         (gfc_check_cshift): Added missing shape-conformance checks.
1306         (gfc_check_eoshift): Likewise.
1307         * gfortran.h (gfc_check_conformance): Modified prototype to printf-style.
1308         * expr.c (gfc_check_conformance): Accept error-message chunks in 
1309         printf-style. Changed all callers.
1310
1311
1312 2009-06-07  Daniel Franke  <franke.daniel@gmail.com>
1313
1314         PR fortran/25104
1315         PR fortran/29962
1316         * intrinsic.h (gfc_simplify_dot_product): New prototype.
1317         (gfc_simplify_matmul): Likewise.
1318         (gfc_simplify_transpose): Likewise.
1319         * intrinsic.c (add_functions): Added new simplifier callbacks.
1320         * simplify.c (init_result_expr): New.
1321         (compute_dot_product): New.
1322         (gfc_simplify_dot_product): New.
1323         (gfc_simplify_matmul): New.
1324         (gfc_simplify_transpose): New.
1325         * expr.c (check_transformational): Allow transformational intrinsics
1326         with simplifier in initialization expression.
1327
1328 2009-06-06  Daniel Franke  <franke.daniel@gmail.com>
1329
1330         PR fortran/37203
1331         * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty arrays
1332         without padding.
1333
1334 2009-06-06  Daniel Franke  <franke.daniel@gmail.com>
1335
1336         PR fortran/32890
1337         * intrinsic.h (gfc_simplify_pack): New prototype.
1338         * intrinsic.c (add_functions): Added
1339         simplifier-callback to PACK.
1340         * simplify.c (is_constant_array_expr): Moved
1341         to beginning of file.
1342         (gfc_simplify_pack): New.
1343         * check.c (gfc_check_pack): Check that VECTOR has enough elements.
1344         Added safeguards for empty arrays.
1345
1346 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1347
1348         * simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref
1349         instead of MPC_RE/MPC_IM.
1350
1351 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1352
1353         * trans-decl.c (gfc_build_qualified_array): Don't skip generation
1354         of range types.
1355         * trans.h (struct lang_type): Add base_decls.
1356         (GFC_TYPE_ARRAY_BASE_DECL): New.
1357         * trans-types.c (gfc_get_array_type_bounds): Initialize base decls
1358         proactively and excessively.
1359         (gfc_get_array_descr_info): Use existing base decls if available.
1360
1361 2009-06-04  Daniel Franke  <franke.daniel@gmail.com>
1362
1363         PR fortran/37203
1364         * check.c (gfc_check_reshape): Additional checks for the
1365         SHAPE and ORDER arguments.
1366         * simplify.c (gfc_simplify_reshape): Converted argument checks
1367         to asserts.
1368
1369 2009-06-03  Tobias Burnus  <burnus@net-b.de>
1370
1371         * gfortran.texi: Add mixed-language programming, mention
1372         varying string lengths, some clean up of introduction parts.
1373         * intrinsic.texi (instrinsic modules): Create @menu for subsections.
1374         (ISO_C_BINDING): Support ISOCBINDING_INT_FAST128_T.
1375         * libgfortran.h: Comment to rember to keep gfortran.texi in sync.
1376         * iso-c-binding.def: Support ISOCBINDING_INT_FAST128_T.
1377
1378 2009-06-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1379             Tobias Burnus  <burnus@net-b.de>
1380
1381         * iso-c-binding.def: Use INTMAX_TYPE instead of intmax_type_node.
1382         * trans-types.c (init_c_interop_kinds): Remove intmax_type_node.
1383
1384 2009-06-03  Alexandre Oliva  <aoliva@redhat.com>
1385
1386         * module.c (mio_f2k_derived): Initialize cur.
1387
1388 2009-06-01  Tobias Burnus  <burnus@net-b.de>
1389
1390         PR fortran/40309
1391         * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main".
1392         (create_main_function): Set main_identifier_node.
1393
1394 2009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1395
1396         PR fortran/40019
1397         * trans-types.c (gfc_build_uint_type): Make nonstatic.
1398         * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New prototypes.
1399         * trans-types.h (gfc_build_uint_type): Add prototype.
1400         * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1401         gfor_fndecl_clz128 and gfor_fndecl_ctz128.
1402         * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
1403         gfc_conv_intrinsic_trailz): Call the right builtins or library
1404         functions, and cast arguments to unsigned types first.
1405         * simplify.c (gfc_simplify_leadz): Deal with negative arguments.
1406
1407 2009-05-27  Ian Lance Taylor  <iant@google.com>
1408
1409         * Make-lang.in (gfortran$(exeext)): Change $(COMPILER) to
1410         $(LINKER).
1411         (f951$(exeext)): Likewise.
1412
1413 2009-05-27  Tobias Burnus  <burnus@net-b.de>
1414
1415         PR fortran/40270
1416         * trans-decl.c (create_main_function): Mark MAIN__ and
1417         argc/argv as TREE_USED and push/pop function_decl context
1418         if needed.
1419
1420 2009-05-26  Tobias Burnus  <burnus@net-b.de>
1421
1422         PR fortran/39178
1423         * gfortranspec.c (lang_specific_driver): Stop linking
1424         libgfortranbegin.
1425         * trans-decl.c (gfc_build_builtin_function_decls): Stop
1426         making MAIN__ publicly visible.
1427         (gfc_build_builtin_function_decls): Add
1428         gfor_fndecl_set_args.
1429         (create_main_function) New function.
1430         (gfc_generate_function_code): Use it.
1431
1432 2009-05-26  Tobias Burnus  <burnus@net-b.de>
1433
1434         PR fortran/40246
1435         * match.c (gfc_match_nullify): NULLify freed pointer.
1436
1437 2009-05-26  Ian Lance Taylor  <iant@google.com>
1438
1439         * Make-lang.in (gfortranspec.o): Use $(COMPILER).
1440         (gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise.
1441
1442 2009-05-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1443
1444         * gfortran.h (GFC_MPC_RND_MODE): New.
1445         * simplify.c (call_mpc_func): New helper function.
1446         (gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log,
1447         gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support.
1448
1449 2009-05-25  Janus Weil  <janus@gcc.gnu.org>
1450
1451         PR fortran/40176
1452         * primary.c (gfc_match_varspec): Handle procedure pointer components
1453         with array return value.
1454         * resolve.c (resolve_expr_ppc): Ditto.
1455         (resolve_symbol): Make sure the interface of a procedure pointer has
1456         been resolved.
1457         * trans-array.c (gfc_walk_function_expr): Handle procedure pointer
1458         components with array return value.
1459         * trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call,
1460         gfc_trans_arrayfunc_assign): Ditto.
1461         (gfc_trans_pointer_assignment): Handle procedure pointer assignments,
1462         where the rhs is a dummy argument.
1463         * trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle
1464         procedure pointer components with array return value.
1465
1466 2009-05-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1467             Dominique Dhumieres
1468
1469         PR fortran/35732
1470         PR fortran/39872
1471         * trans-array.c (gfc_conv_ss_startstride): Add one to index.
1472
1473 2009-05-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1474
1475         PR fortran/40195
1476         * module.c (read_md5_from_module_file): Close file before returning.
1477
1478 2009-05-18  Janus Weil  <janus@gcc.gnu.org>
1479
1480         PR fortran/40164
1481         * primary.c (gfc_match_rvalue): Handle procedure pointer components in
1482         arrays.
1483         * resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and
1484         array references.
1485         (resolve_fl_derived): Procedure pointer components are not required to
1486         have constant array bounds in their return value.
1487
1488 2009-05-18  Janus Weil  <janus@gcc.gnu.org>
1489
1490         * intrinsic.c (add_sym): Fix my last commit (r147655),
1491         which broke bootstrap.
1492
1493 2009-05-18  Richard Guenther  <rguenther@suse.de>
1494
1495         PR fortran/40168
1496         * trans-expr.c (gfc_trans_zero_assign): For local array
1497         destinations use an assignment from an empty constructor.
1498
1499 2009-05-18  Janus Weil  <janus@gcc.gnu.org>
1500
1501         PR fortran/36947
1502         PR fortran/40039
1503         * expr.c (gfc_check_pointer_assign): Check intents when comparing
1504         interfaces.
1505         * gfortran.h (typedef struct gfc_intrinsic_arg): Add 'intent' member.
1506         (gfc_compare_interfaces): Additional argument.
1507         * interface.c (operator_correspondence): Add check for equality of
1508         intents, and new argument 'intent_check'.
1509         (gfc_compare_interfaces): New argument 'intent_check', which is passed
1510         on to operator_correspondence.
1511         (check_interface1): Don't check intents when comparing interfaces.
1512         (compare_parameter): Do check intents when comparing interfaces.
1513         * intrinsic.c (add_sym): Add intents for arguments of intrinsic
1514         procedures.
1515         (add_sym_1,add_sym_1s,add_sym_1m,add_sym_2,add_sym_2s,add_sym_3,
1516         add_sym_3ml,add_sym_3red,add_sym_3s,add_sym_4): Use INTENT_IN by
1517         default.
1518         (add_sym_1_intent,add_sym_1s_intent,add_sym_2s_intent,add_sym_3s_intent)
1519         : New functions to add intrinsic symbols, specifying custom intents.
1520         (add_sym_4s,add_sym_5s): Add new arguments to specify intents.
1521         (add_functions,add_subroutines): Add intents for various intrinsics.
1522         * resolve.c (check_generic_tbp_ambiguity): Don't check intents when
1523         comparing interfaces.
1524         * symbol.c (gfc_copy_formal_args_intr): Copy intent.
1525
1526 2009-05-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1527
1528         * iso-fortran-env.def: Define INT8, INT16, INT32, INT64, REAL32,
1529         REAL64 and REAL128.
1530         * gfortran.h (gfc_get_int_kind_from_width_isofortranenv,
1531         gfc_get_real_kind_from_width_isofortranenv): New prototypes.
1532         * iso-c-binding.def: Update definitions for the INT*_T,
1533         INT_LEAST*_T and INT_FAST*_T named parameters.
1534         * trans-types.c (get_typenode_from_name, get_int_kind_from_name,
1535         gfc_get_real_kind_from_width_isofortranenv): New functions.
1536
1537 2009-05-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1538
1539         PR fortran/36260
1540         * intrinsic.c (add_functions, add_subroutines): Fix argument
1541         names and wrap long lines.
1542         * intrinsic.texi: Fix documentation and argument names of
1543         LOG_GAMMA, DATAN2, DBESJN, DTIME, ETIME, FSTAT, STAT, LSTAT,
1544         GET_COMMAND, IDATE, LTIME, MOVE_ALLOC, NINT, OR, PRODUCT,
1545         SUM, RAND, RANDOM_SEED, REAL, SELECTED_INT_KIND,
1546         SELECTED_REAL_KIND and XOR.
1547
1548 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1549
1550         PR fortran/33197
1551         * intrinsic.c (add_functions): Use ERFC_SCALED simplification.
1552         * intrinsic.h (gfc_simplify_erfc_scaled): New prototype.
1553         * simplify.c (fullprec_erfc_scaled, asympt_erfc_scaled,
1554         gfc_simplify_erfc_scaled): New functions.
1555
1556 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1557
1558         PR fortran/31243
1559         * resolve.c (resolve_substring): Don't allow too large substring
1560         indexes.
1561         (gfc_resolve_substring_charlen): Fix typo.
1562         (gfc_resolve_character_operator): Fix typo.
1563         (resolve_charlen): Catch unreasonably large string lengths.
1564         * simplify.c (gfc_simplify_len): Don't error out on LEN
1565         range checks.
1566
1567 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1568
1569         PR fortran/36031
1570         * decl.c (set_enum_kind): Use global short-enums flag.
1571         * gfortran.h (gfc_option_t): Remove short_enums flag.
1572         * lang.opt (-fshort-enums): Refer to C documentation.
1573         * options.c (gfc_init_options, gfc_handle_option): Use global
1574         short-enums flag.
1575
1576 2009-05-15  Tobias Burnus  <burnus@net-b.de>
1577
1578         PR fortran/39352
1579         * f95-lang.c: Add gfc_maybe_initialize_eh.
1580         * gfortran.h: Add gfc_maybe_initialize_eh prototype.
1581         * Make-lang.in: Add new .h dendencies for f95-lang.c
1582         * openmp.c (resolve_omp_do): Call gfc_maybe_initialize_eh.
1583         * misc.c (gfc_free): Avoid #define trickery for free.
1584
1585 2009-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1586
1587         * dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping
1588         of allocate and deallocate statements.
1589
1590 2009-05-14  Ian Lance Taylor  <iant@google.com>
1591
1592         * decl.c (match_attr_spec): Change d to unsigned int.
1593         * dump-parse-tree.c (show_namespace): Change op to int.  Add cast.
1594         * interface.c (gfc_check_interfaces): Change i to int.  Add casts.
1595         * module.c (read_module): Change i to int.  Add cast.
1596         (write_module): Change i to int.
1597         * symbol.c (gfc_get_namespace): Change in to int.
1598         (gfc_free_namespace): Change i to int.
1599         * trans-io.c (gfc_build_io_library_fndecls): Change ptype to
1600         unsigned int.  Add cast.
1601         * trans-types.c (gfc_init_kinds): Change mode to unsigned int.
1602         Add casts.
1603
1604 2009-05-14  Daniel Kraft  <d@domob.eu>
1605
1606         PR fortran/40045
1607         * dump-parse-tree.c (show_typebound): Fix missing adaption to new
1608         type-bound procedure storage structure.
1609
1610 2009-05-14  Janus Weil  <janus@gcc.gnu.org>
1611
1612         PR fortran/39996
1613         * decl.c (gfc_match_function_decl): Use gfc_add_type.
1614         * symbol.c (gfc_add_type): Better checking for duplicate types in
1615         function declarations. And: Always give an error for duplicte types,
1616         not just a warning with -std=gnu.
1617
1618 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
1619
1620         PR fortran/39865
1621         * io.c (resolve_tag_format): CHARACTER array in FMT= argument
1622         isn't an extension.  Reject non-CHARACTER array element of
1623         assumed shape or pointer or assumed size array.
1624         * trans-array.c (array_parameter_size): New function.
1625         (gfc_conv_array_parameter): Add size argument.  Call
1626         array_parameter_size if it is non-NULL.
1627         * trans-array.h (gfc_conv_array_parameter): Adjust prototype.
1628         * trans-expr.c (gfc_conv_function_call, gfc_trans_arrayfunc_assign):
1629         Adjust callers.
1630         * trans-intrinsic.c (gfc_conv_intrinsic_loc): Likewise.
1631         * trans-io.c (gfc_convert_array_to_string): Rewritten.
1632
1633 2009-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1634
1635         * gfortran.h (gfc_code): Rename struct member expr to expr1.
1636         * openmp.c (resolve_omp_atomic): Update expr to expr1.
1637         * interface.c (gfc_extend_assign): Ditto.
1638         * trans-expr.c (gfc_conv_expr_reference, gfc_trans_assignment,
1639         gfc_trans_init_assign): Ditto.
1640         * dump-parse-tree.c (show_code_node): Ditto.
1641         * trans-openmp.c (gfc_trans_omp_atomic): Ditto.
1642         * trans-stmt.c ( gfc_trans_label_assign, gfc_trans_goto, gfc_trans_call,
1643         gfc_trans_return, gfc_trans_pause, gfc_trans_stop, gfc_trans_if_1,
1644         gfc_trans_arithmetic_if, gfc_trans_do_while, gfc_trans_integer_select,
1645         gfc_trans_logical_select, gfc_trans_character_select
1646         forall_make_variable_temp, check_forall_dependencies
1647         gfc_trans_forall_1, gfc_trans_where_2, gfc_trans_where_3
1648         gfc_trans_where, gfc_trans_allocate, gfc_trans_deallocate): Ditto.
1649         * io.c (match_io_element, gfc_match_inquire): Ditto.
1650         * resolve.c (resolve_typebound_call, resolve_ppc_call,
1651         resolve_allocate_expr, resolve_allocate_deallocate, resolve_select,
1652         resolve_transfer, resolve_where, gfc_resolve_assign_in_forall,
1653         gfc_resolve_blocks, resolve_code, build_init_assign): Ditto.
1654         * st.c (gfc_free_statement): Ditto.
1655         * match.c (gfc_match_assignment, gfc_match_pointer_assignment,
1656         match_arithmetic_if, gfc_match_if, gfc_match_elseif
1657         gfc_match_stopcode, gfc_match_assign, gfc_match_goto,
1658         gfc_match_nullify, match_typebound_call, gfc_match_call
1659         gfc_match_select, match_simple_where, gfc_match_where
1660         gfc_match_elsewhere, match_simple_forall, gfc_match_forall): Ditto.
1661         * trans-io.c (gfc_trans_transfer): Ditto.
1662         * parse.c (parse_where_block, parse_if_block): Ditto.
1663
1664 2009-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
1665
1666         * gfortran.h (gfc_code): Rename struct member label to label1.
1667         * dump-parse-tree.c (show_code_node): Update symbol.
1668         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
1669         gfc_trans_arithmetic_if): Ditto.
1670         * resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
1671         * match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
1672         gfc_match_assign, gfc_match_goto): Ditto.
1673         * parse.c (parse_do_block): Ditto.
1674
1675 2009-05-13  Tobias Burnus  <burnus@net-b.de>
1676
1677         PR fortran/34153
1678         * gfortran.h (gfc_exec_op): Add EXEC_END_PROCEDURE.
1679         * dump-parse-tree.c (show_code_node): Use EXEC_END_PROCEDURE.
1680         * trans.c (gfc_trans_code): Ditto.
1681         * resolve.c (resolve_code): Ditto.
1682         * st.c (gfc_free_statement): Ditto.
1683         * parse.c (accept_statement): Ditto.
1684
1685 2009-05-12  Tobias Burnus  <burnus@net-b.de>
1686
1687         PR fortran/40110
1688         * decl.c (gfc_match_kind_spec): Turn C kind error into a warning.
1689
1690 2009-05-11  Steve Ellcey  <sje@cup.hp.com>
1691
1692         * resolve.c (check_host_association): Initialize tail.
1693
1694 2009-05-11  Janus Weil  <janus@gcc.gnu.org>
1695
1696         PR fortran/40089
1697         * resolve.c (resolve_fl_derived): Only return FAILURE if
1698         gfc_notify_std fails.
1699
1700 2009-05-10  Ian Lance Taylor  <iant@google.com>
1701
1702         * gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of
1703         gfc_omp_clauses.
1704         (enum gfc_omp_default_sharing): Likewise.
1705         * module.c (enum gfc_rsym_state): New enum, broken out of
1706         pointer_info.
1707         (enum gfc_wsym_state): Likewise.
1708         * parse.c (enum state_order): New enum, broken out of st_state.
1709
1710 2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
1711
1712         PR fortran/40018
1713         * trans-array.c (gfc_trans_array_constructor_value): Fold
1714         convert numeric constants.
1715         (gfc_build_constant_array_constructor): The same.
1716
1717 2009-05-10  Paul Thomas  <pault@gcc.gnu.org>
1718
1719         PR fortran/38863
1720         * trans-expr.c (gfc_conv_operator_assign): Remove function.
1721         * trans.h : Remove prototype for gfc_conv_operator_assign.
1722         * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize
1723         derivde types with intent(out).
1724         (gfc_trans_call): Add mask, count1 and invert arguments. Add
1725         code to use mask for WHERE assignments.
1726         (gfc_trans_forall_1): Use new arguments for gfc_trans_call.
1727         (gfc_trans_where_assign): The gfc_symbol argument is replaced
1728         by the corresponding code. If this has a resolved_sym, then
1729         gfc_trans_call is called. The call to gfc_conv_operator_assign
1730         is removed.
1731         (gfc_trans_where_2): Change the last argument in the call to
1732         gfc_trans_where_assign.
1733         * trans-stmt.h : Modify prototype for gfc_trans_call.
1734         * trans.c (gfc_trans_code): Use new args for gfc_trans_call.
1735
1736 2009-05-08  Janus Weil  <janus@gcc.gnu.org>
1737
1738         PR fortran/39876
1739         * intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if
1740         the symbol is a module procedure.
1741
1742 2009-05-08  Tobias Burnus  <burnus@net-b.de>
1743
1744         * invoke.texi: Add do/recursion to the -fcheck= summary.
1745
1746 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1747
1748         PR fortran/38830
1749         * gfortran.texi: Document that we don't support variable FORMAT
1750         expressions.
1751
1752 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1753
1754         PR fortran/39576
1755         * error.c (error_print): Add missing break statement.
1756
1757 2009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1758
1759         PR fortran/36382
1760         * invoke.texi: Document that -fdollar-ok does not allow $ to be
1761         used in IMPLICIT statement.
1762
1763 2009-05-06  Janus Weil  <janus@gcc.gnu.org>
1764             Paul Thomas  <pault@gcc.gnu.org>
1765
1766         PR fortran/39630
1767         * decl.c (match_procedure_interface): New function to match the
1768         interface for a PROCEDURE statement.
1769         (match_procedure_decl): Call match_procedure_interface.
1770         (match_ppc_decl): New function to match the declaration of a
1771         procedure pointer component.
1772         (gfc_match_procedure):  Call match_ppc_decl.
1773         (match_binding_attributes): Add new argument 'ppc' and handle the
1774         POINTER attribute for procedure pointer components.
1775         (match_procedure_in_type,gfc_match_generic): Added new argument to
1776         match_binding_attributes.
1777         * dump-parse-tree.c (show_expr,show_components,show_code_node): Handle
1778         procedure pointer components.
1779         * expr.c (free_expr0,gfc_copy_expr,gfc_simplify_expr): Handle EXPR_PPC.
1780         (gfc_check_pointer_assign): Handle procedure pointer components, but no
1781         full checking yet.
1782         (is_proc_ptr_comp): New function to determine if an expression is a
1783         procedure pointer component.
1784         * gfortran.h (expr_t): Add EXPR_PPC.
1785         (symbol_attribute): Add new member 'proc_pointer_comp'.
1786         (gfc_component): Add new member 'formal'.
1787         (gfc_exec_op): Add EXEC_CALL_PPC.
1788         (gfc_get_default_type): Changed first argument.
1789         (is_proc_ptr_comp): Add prototype.
1790         (gfc_match_varspec): Add new argument.
1791         * interface.c (compare_actual_formal): Handle procedure pointer
1792         components.
1793         * match.c (gfc_match_pointer_assignment,match_typebound_call): Handle
1794         procedure pointer components.
1795         * module.c (mio_expr): Handle EXPR_PPC.
1796         * parse.c (parse_derived): Handle procedure pointer components.
1797         * primary.c (gfc_match_varspec): Add new argument 'ppc_arg' and handle
1798         procedure pointer components.
1799         (gfc_variable_attr): Handle procedure pointer components.
1800         (gfc_match_rvalue): Added new argument to gfc_match_varspec and changed
1801         first argument of gfc_get_default_type.
1802         (match_variable): Added new argument to gfc_match_varspec.
1803         * resolve.c (resolve_entries,set_type,resolve_fl_parameter): Changed
1804         first argument of gfc_get_default_type.
1805         (resolve_structure_cons,resolve_actual_arglist): Handle procedure
1806         pointer components.
1807         (resolve_ppc_call): New function to resolve a call to a procedure
1808         pointer component (subroutine).
1809         (resolve_expr_ppc): New function to resolve a call to a procedure
1810         pointer component (function).
1811         (gfc_resolve_expr): Handle EXPR_PPC.
1812         (resolve_code): Handle EXEC_CALL_PPC.
1813         (resolve_fl_derived): Copy the interface for a procedure pointer
1814         component.
1815         (resolve_symbol): Fix overlong line.
1816         * st.c (gfc_free_statement): Handle EXEC_CALL_PPC.
1817         * symbol.c (gfc_get_default_type): Changed first argument.
1818         (gfc_set_default_type): Changed first argument of gfc_get_default_type.
1819         (gfc_add_component): Initialize ts.type to BT_UNKNOWN.
1820         * trans.h (gfc_conv_function_call): Renamed.
1821         * trans.c (gfc_trans_code): Handle EXEC_CALL_PPC.
1822         * trans-expr.c (gfc_conv_component_ref): Ditto.
1823         (gfc_conv_function_val): Rename to 'conv_function_val', add new
1824         argument 'expr' and handle procedure pointer components.
1825         (gfc_conv_operator_assign): Renamed gfc_conv_function_val.
1826         (gfc_apply_interface_mapping_to_expr): Handle EXPR_PPC.
1827         (gfc_conv_function_call): Rename to 'gfc_conv_procedure_call', add new
1828         argument 'expr' and handle procedure pointer components.
1829         (gfc_get_proc_ptr_comp): New function to get the backend decl for a
1830         procedure pointer component.
1831         (gfc_conv_function_expr): Renamed gfc_conv_function_call.
1832         (gfc_conv_structure): Handle procedure pointer components.
1833         * trans-intrinsic.c (gfc_conv_intrinsic_funcall,
1834         conv_generic_with_optional_char_arg): Renamed gfc_conv_function_call.
1835         * trans-stmt.h (gfc_get_proc_ptr_comp): Add prototype.
1836         * trans-stmt.c (gfc_trans_call): Renamed gfc_conv_function_call.
1837         * trans-types.h (gfc_get_ppc_type): Add prototype.
1838         * trans-types.c (gfc_get_ppc_type): New function to build a tree node
1839         for a procedure pointer component.
1840         (gfc_get_derived_type): Handle procedure pointer components.
1841
1842 2009-05-06  Tobias Burnus  <burnus@net-b.de>
1843
1844         PR fortran/40041
1845         * resolve.c (resolve_symbol): Print no warning for implicitly
1846         typed intrinsic functions.
1847
1848 2009-05-05  Janus Weil  <janus@gcc.gnu.org>
1849
1850         PR fortran/39998
1851         * expr.c (gfc_check_pointer_assign): Check for statement functions and
1852         internal procedures in procedure pointer assignments.
1853
1854 2009-04-28  Janus Weil  <janus@gcc.gnu.org>
1855
1856         PR fortran/39946
1857         * resolve.c (resolve_symbol): Correctly copy the interface of a
1858         PROCEDURE statement if the interface involves a RESULT variable.
1859
1860 2009-04-28  Janus Weil  <janus@gcc.gnu.org>
1861
1862         PR fortran/39930
1863         PR fortran/39931
1864         * expr.c (gfc_check_pointer_assign): Correctly detect if the left hand
1865         side is a pointer.
1866         * parse.c (gfc_fixup_sibling_symbols): Don't check for ambiguity.
1867
1868 2009-04-28  Paul Thomas  <pault@gcc.gnu.org>
1869
1870         PR fortran/39879
1871         * trans_expr.c (gfc_conv_procedure_call): Deep copy a derived
1872         type parentheses argument if it is a variable with allocatable
1873         components.
1874
1875 2009-04-27  Ian Lance Taylor  <iant@google.com>
1876
1877         * trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum
1878         type.
1879         * trans-io.c (st_parameter_field): Add casts to enum type.
1880
1881 2009-04-26  Steven G. Kargl  <kargl@gcc.gnu.org>
1882
1883         PR fortran/39893
1884         fortran/data.c (gfc_assign_data_value): If the lvalue is an 
1885         assumed character length entity in a data statement, then 
1886         return FAILURE to prevent segmentation fault.
1887
1888 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1889
1890         * trans-decl.c: Include pointer-set.h.
1891         (nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
1892         (gfc_nonlocal_dummy_array_decl): New function.
1893         (gfc_get_symbol_decl): Call it for non-local dummy args with saved
1894         descriptor.
1895         (gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
1896         (gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
1897         chain it to outermost block's vars, destroy it afterwards.
1898         * Make-lang.in (trans-decl.o): Depend on pointer-set.h.
1899
1900 2009-04-25  Janus Weil  <janus@gcc.gnu.org>
1901
1902         PR fortran/39688
1903         * decl.c (gfc_match_import): Use 'sym->name' instead of 'name'.
1904         They differ if the symbol has been use-renamed.
1905
1906 2009-04-24  Ian Lance Taylor  <iant@google.com>
1907
1908         * gfortran.h (enum gfc_symbol_type): New named enum type, broken
1909         out of struct gfc_symbol.
1910         (struct gfc_symbol): Use enum gfc_symbol_type.
1911         (enum gfc_array_ref_dimen_type): New named enum type, broken out
1912         of struct gfc_array_ref).
1913         (struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
1914         (mod_pointee_as): Update declaration.
1915         * decl.c (add_global_entry): Change type to enum gfc_symbol_type.
1916         (gfc_mod_pointee_as): Change return type to "match".
1917         * module.c (mio_array_ref): Add cast to enum type.
1918         (mio_symbol): Likewise.
1919         * resolve.c (resolve_global_procedure): Change type to enum
1920         gfc_symbol_type.
1921         * trans-io.c (gfc_build_st_parameter): Change type to unsigned
1922         int.
1923
1924 2009-04-24  Daniel Kraft  <d@domob.eu>
1925
1926         * gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
1927         (struct gfc_symtree): Moved "typebound" member inside union.
1928         (struct gfc_namespace): Add "tb_sym_root" as new symtree to sort out
1929         type-bound procedures there.
1930         (gfc_get_tbp_symtree): New procedure.
1931         * symbol.c (tentative_tbp_list): New global.
1932         (gfc_get_namespace): NULL new "tb_sym_root" member.
1933         (gfc_new_symtree): Removed initialization of "typebound" member.
1934         (gfc_undo_symbols): Process list of tentative tbp's.
1935         (gfc_commit_symbols): Ditto.
1936         (free_tb_tree): New method.
1937         (gfc_free_namespace): Call it.
1938         (gfc_get_typebound_proc): New method.
1939         (gfc_get_tbp_symtree): New method.
1940         (gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree
1941         and gfc_namespace with regards to tbp's.
1942         * dump-parse-tree.c (show_typebound): Ditto.
1943         * primary.c (gfc_match_varspec): Ditto.  Don't reference tbp-symbol
1944         as it isn't a symbol any longer.
1945         * module.c (mio_typebound_symtree): Adapt to changes.
1946         (mio_typebound_proc): Ditto, create symtrees using "gfc_get_tbp_symtree"
1947         rather than "gfc_get_sym_tree".
1948         (mio_f2k_derived): Ditto.
1949         * decl.c (match_procedure_in_type): Ditto.
1950         (gfc_match_generic): Ditto.  Don't reference tbp-symbol.
1951         * resolve.c (check_typebound_override): Adapt to changes.
1952         (resolve_typebound_generic): Ditto.
1953         (resolve_typebound_procedures): Ditto.
1954         (ensure_not_abstract_walker): Ditto.
1955         (ensure_not_abstract): Ditto.
1956         (resolve_typebound_procedure): Ditto, ignore erraneous symbols (for
1957         instance, through removed tentative ones).
1958         * gfc-internals.texi (Type-bound procedures): Document changes.
1959
1960 2009-04-24  Janus Weil  <janus@gcc.gnu.org>
1961
1962         PR fortran/39861
1963         PR fortran/39864
1964         * symbol.c (gfc_copy_formal_args_intr): Set attr.flavor and attr.dummy
1965         for the formal arguments.
1966
1967 2009-04-21  Taras Glek <tglek@mozilla.com>
1968
1969         * f95-lang.c: Update GTY annotations to new syntax.
1970         * trans-intrinsic.c: Likewise.
1971         * trans-io.c: Likewise.
1972         * trans.h: Likewise.
1973
1974 2009-04-22  Janus Weil  <janus@gcc.gnu.org>
1975
1976         PR fortran/39735
1977         * decl.c (add_hidden_procptr_result): Bugfix for procptr results.
1978         (match_procedure_decl): Set if_source.
1979         * expr.c (gfc_check_pointer_assign): Bugfix: Return after error.
1980         And: Check interface also for IFSRC_UNKNOWN (return type may be known).
1981         * gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE,
1982         add documentation. Rename copy_formal_args and copy_formal_args_intr.
1983         * interface.c (gfc_compare_interfaces): Check for return types,
1984         handle IFSRC_UNKNOWN.
1985         (compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed.
1986         (gfc_procedure_use): Modified handling of intrinsics.
1987         * intrinsic.c (add_functions): Bugfix for "dim".
1988         * resolve.c (resolve_intrinsic): New function to resolve intrinsics,
1989         which copies the interface from isym to sym.
1990         (resolve_procedure_expression,resolve_function): Use new function
1991         'resolve_intrinsic'.
1992         (resolve_symbol): Add function attribute for externals with return type
1993         and use new function 'resolve_intrinsic'.
1994         * symbol.c (ifsrc_types): Remove string for IFSRC_USAGE.
1995         (copy_formal_args): Renamed to gfc_copy_formal_args.
1996         (copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr.
1997         * trans-const.c (gfc_conv_const_charlen): Handle cl==NULL.
1998
1999 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2000
2001         * ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
2002         ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
2003         ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
2004         copyright and license notices.
2005         * ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
2006         ChangeLog-2008: Correct dates.
2007
2008 2009-04-20  Tobias Burnus  <burnus@net-b.de>
2009
2010         PR fortran/39811
2011         * scanner.c (load_line): Fix bogus "&" compile-time diagnostic.
2012
2013 2009-04-20  Paul Thomas  <pault@gcc.gnu.org>
2014
2015         PR fortran/39800
2016         * resolve.c (is_sym_host_assoc): New function.
2017         (resolve_fl_derived): Call it when checking PRIVATE components
2018         of PUBLIC derived types.  Change gfc_error to a gfc_notify_std
2019         with std=f2003.
2020         (resolve_fl_namelist): Call it twice to check for host
2021         association.
2022
2023 2009-04-20  Ian Lance Taylor  <iant@google.com>
2024
2025         * module.c (import_iso_c_binding_module): Add casts to enum type.
2026         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
2027         tree_code.
2028         (gfc_conv_intrinsic_anyall): Likewise.
2029         (gfc_conv_intrinsic_arith): Likewise.
2030         (gfc_conv_intrinsic_minmaxloc): Likewise.
2031         (gfc_conv_intrinsic_minmaxval): Likewise.
2032         (gfc_conv_intrinsic_bitop): Likewise.
2033         (gfc_conv_intrinsic_singlebitop): Likewise.
2034         (gfc_conv_intrinsic_strcmp): Likewise.
2035
2036 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
2037             Jakub Jelinek  <jakub@redhat.com>
2038
2039         PR fortran/35423
2040         * trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
2041         OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
2042         (ompws_flags): New extern decl.
2043         * trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
2044         for the outer dimension if ompws_flags allow it.
2045         * trans.c (gfc_generate_code): Clear ompws_flags.
2046         * trans-expr.c (gfc_trans_assignment_1): Allow worksharing
2047         array assignments inside of !$omp workshare.
2048         * trans-stmt.c (gfc_trans_where_3): Similarly for where statements
2049         and constructs.
2050         * trans-openmp.c (ompws_flags): New variable.
2051         (gfc_trans_omp_workshare): Rewritten.
2052
2053 2009-04-11  Daniel Kraft  <d@domob.eu>
2054
2055         PR fortran/37746
2056         * gfortran.h (struct gfc_charlen): New field "passed_length" to store
2057         the actual passed string length for dummy arguments.
2058         * trans-decl.c (gfc_create_string_length): Formatting fixes and added
2059         assertion, moved a local variable into the innermost block it is needed.
2060         (create_function_arglist): Removed TODO about the check being
2061         implemented and initialize cl->passed_length here.
2062         (add_argument_checking): New method.
2063         (gfc_generate_function_code): Call the argument checking method.
2064
2065 2009-04-11  Janus Weil  <janus@gcc.gnu.org>
2066
2067         PR fortran/39692
2068         * symbol.c (check_conflict): Reject procedure pointers for -std=f95.
2069
2070 2009-04-11  Daniel Franke  <franke.daniel@gmail.com>
2071
2072         * resolve.c (resolve_global_procedure): Enable whole-file checking for
2073         procedures that are declared later in the file.
2074         
2075 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
2076
2077         PR middle-end/39701
2078         * trans.c (gfc_allocate_with_status): Fix type mismatches
2079         on "pstat == 0".
2080
2081 2009-04-10  Daniel Franke  <franke.daniel@gmail.com>
2082
2083         PR fortran/38709
2084         * expr.c (find_array_section): Leave early on zero-sized arrays.
2085
2086 2009-04-09  Janus Weil  <janus@gcc.gnu.org>
2087
2088         PR fortran/36704
2089         * decl.c (add_hidden_procptr_result): New function for handling
2090         procedure pointer return values by adding a hidden result variable.
2091         (variable_decl,match_procedure_decl,gfc_match_function_decl,
2092         gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
2093         return values.
2094         * parse.c (parse_interface): Add EXTERNAL attribute only after
2095         FUNCTION/SUBROUTINE declaration is complete.
2096         * primary.c (replace_hidden_procptr_result): New function for replacing
2097         function symbol by hidden result variable.
2098         (gfc_match_rvalue,match_variable): Replace symbol by hidden result
2099         variable.
2100         * resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
2101         resolve_symbol): Allow for procedure pointer function results.
2102         (resolve_fl_procedure): Conflict detection moved here from
2103         'check_conflict'.
2104         * symbol.c (gfc_check_function_type): Allow for procedure pointer
2105         function results.
2106         (check_conflict): Move some conflict detection to resolution stage.
2107         * trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
2108         result variables.
2109
2110 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2111
2112         * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
2113         contain TYPE_STRING_FLAG types.
2114
2115 2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
2116
2117         PR fortran/39670
2118         * invoke.texi (fdollar-ok): Fix typo.
2119         
2120 2009-04-08  Daniel Franke  <franke.daniel@gmail.com>
2121
2122         PR fortran/39670
2123         * invoke.texi (fdollar-ok): Clarify limitations.
2124
2125 2009-04-08  Paul Thomas  <pault@gcc.gnu.org>
2126
2127         PR fortran/38863
2128         * trans-array.c (gfc_trans_deferred_array): Return if this
2129         is a result variable.
2130
2131 2009-04-07  Janus Weil  <janus@gcc.gnu.org>
2132
2133         PR fortran/38152
2134         * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
2135         procedure pointer decls.
2136
2137 2009-04-07  Janus Weil  <janus@gcc.gnu.org>
2138
2139         PR fortran/38290
2140         * expr.c (gfc_check_pointer_assign): Enable interface check for
2141         procedure pointers.
2142         * gfortran.h: Add copy_formal_args_intr.
2143         * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
2144         if second argument is an intrinsic.
2145         (compare_intr_interfaces): Correctly set attr.function, attr.subroutine
2146         and ts.
2147         (compare_parameter): Call gfc_compare_interfaces also for intrinsics.
2148         * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
2149         intrinsic interfaces here. Must happen earlier.
2150         (resolve_symbol): Resolution of intrinsic interfaces moved here from
2151         resolve_specific_..., and formal args are now copied from intrinsic
2152         interfaces.
2153         * symbol.c (copy_formal_args_intr): New function to copy the formal
2154         arguments from an intinsic procedure.
2155
2156 2009-04-06  Paul Thomas  <pault@gcc.gnu.org>
2157
2158         PR fortran/38863
2159         * dependency.c (ref_same_as_full_array): New function.
2160         (gfc_dep_resolver): Call it.
2161
2162 2009-04-06  Janus Weil  <janus@gcc.gnu.org>
2163
2164         PR fortran/39414
2165         * decl.c (match_procedure_decl): Fix double declaration problems with
2166         PROCEDURE statements.
2167         * symbol.c (gfc_add_type): Ditto.
2168
2169 2009-04-06  Paul Thomas  <pault@gcc.gnu.org>
2170
2171         PR fortran/36091
2172         * trans-array.c (gfc_conv_array_ref): If the symbol has the
2173         temporary attribute use the array_spec for the bounds.
2174         * gfortran.h : Add the temporary field to the structure
2175         'symbol_attribute'.
2176         * trans-stmt.c (forall_make_variable_temp): Set the symbol's
2177         temporary attribute.
2178
2179 2009-04-05  Daniel Franke  <franke.daniel@gmail.com>
2180
2181         PR fortran/29458
2182         * trans-array.c (gfc_trans_array_constructor_value): Shadow
2183         implied do-loop variable to avoid spurious middle-end warnings.
2184
2185 2009-04-04  Tobias Burnus  <burnus@net-b.de>
2186
2187         PR fortran/39577
2188         * trans-decl.c (gfc_generate_function_code): Move recursive
2189         check to the right position.
2190
2191 2009-04-04  Paul Thomas  <pault@gcc.gnu.org>
2192
2193         PR fortran/37614
2194         * trans-common.c (translate_common): Do not offset the whole
2195         coomon block.
2196
2197 2009-04-03  Tobias Burnus  <burnus@net-b.de>
2198
2199         PR fortran/39594
2200         * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
2201         if it is not a procedure pointer.
2202         * primary.c (match_actual_arg): Ditto.
2203
2204 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2205
2206         PR preprocessor/15638
2207         * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
2208
2209 2009-03-30  Steven G. Kargl  <kargls@comcast.net>
2210
2211         PR fortran/38389
2212         * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
2213         (gfc_trans_deallocate): Add translation of ERRMSG.  Remove stale
2214         comments.  Minor whitespace cleanup.
2215         * resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
2216         (resolve_deallocate_expr (gfc_expr *e): Update error message.
2217         (resolve_allocate_expr):  Remove dead code.  Update error message.
2218         Move error checking to ...
2219         (resolve_allocate_deallocate): ... here.  Add additional error
2220         checking for STAT, ERRMSG, and allocate-objects.
2221         * match.c(gfc_match_allocate,gfc_match_deallocate):  Parse ERRMSG.
2222         Check for redundant uses of STAT and ERRMSG.  Reword error message
2223         and add checking for pointer, allocatable, and proc_pointer attributes.
2224
2225 2009-03-30  Paul Thomas  <pault@gcc.gnu.org>
2226
2227         PR fortran/22571
2228         PR fortran/26227
2229         PR fortran/24886
2230         * symbol.c : Add gfc_global_ns_list.
2231         * decl.c (add_global_entry): Set the namespace ('ns') field.
2232         * gfortran.h : Add the resolved field to gfc_namespace. Add the
2233         namespace ('ns') field to gfc_gsymbol.  Add flag_whole_file to
2234         gfc_option_t.  Add the prototype for gfc_free_dt_list.
2235         * lang.opt : Add the whole-file option.
2236         * invoke.texi : Document the whole-file option.
2237         * resolve.c (resolve_global_procedure): If the fwhole-file
2238         option is set, reorder gsymbols to ensure that translation is
2239         in the right order.  Resolve the gsymbol's namespace if that
2240         has not occurred and then check interfaces.
2241         (resolve_function): Move call to resolve_global_procedure.
2242         (resolve_call): The same.
2243         (resolve_codes): Store the current labels_obstack.
2244         (gfc_resolve) : Return if the namespace is already resolved.
2245         trans-decl.c (gfc_get_extern_function_decl): If the whole_file
2246         option is selected, use the backend_decl of a gsymbol, if it is
2247         available.
2248         parse.c (add_global_procedure, add_global_program): If the flag
2249         whole-file is set, add the namespace to the gsymbol.
2250         (gfc_parse_file): On -fwhole-file, put procedure namespaces on
2251         the global namespace list.  Rearrange to do resolution of all
2252         the procedures in a file, followed by their translation.
2253         * options.c (gfc_init_options): Add -fwhole-file.
2254         (gfc_handle_option): The same.
2255
2256 2009-03-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2257
2258         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
2259         family of intrinsics instead of BUILT_IN_INF family.
2260         * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
2261         BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
2262
2263 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
2264
2265         * trans-types.c (gfc_sym_type, gfc_return_by_reference): For
2266         sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
2267
2268 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2269
2270         PR rtl-optimization/323
2271         * options.c (gfc_post_options): Set
2272         flag_excess_precision_cmdline.  Give an error for
2273         -fexcess-precision=standard for processors where the option is
2274         significant.
2275
2276 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2277
2278         PR preprocessor/34695
2279         * cpp.c (cb_cpp_error): New.
2280         (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
2281         Don't check cpp_errors (cpp_in).
2282         (gfc_cpp_init_0): Set cb->error.
2283
2284 2009-03-29  Steven G. Kargl  <kargl@gcc.gnu.org>
2285
2286         PR fortran/38823
2287         * gfortran.h: Add ARITH_PROHIBIT to arith enum.
2288         expr.c (gfc_match_init_expr): Add global variable init_flag to
2289         flag matching an initialization expression.
2290         (check_intrinsic_op): Move no longer reachable error message to ...
2291         * arith.c (arith_power): ... here.  Remove gfc_ prefix in
2292         gfc_arith_power.  Use init_flag.  Allow constant folding of x**y
2293         when y is REAL or COMPLEX.
2294         (eval_intrinsic): Remove restriction that y in x**y must be INTEGER
2295         for constant folding.
2296         * gfc_power: Update gfc_arith_power to arith_power
2297
2298 2009-03-29  Daniel Kraft  <d@domob.eu>
2299
2300         PR fortran/37423
2301         * gfortran.h (struct gfc_typebound_proc): Added new flag "deferred" and
2302         added a comment explaining DEFERRED binding handling.
2303         * decl.c (match_binding_attributes): Really match DEFERRED attribute.
2304         (match_procedure_in_type): Really match PROCEDURE(interface) syntax
2305         and do some validity checks for DEFERRED and this construct.
2306         * module.c (binding_overriding): New string constant for DEFERRED.
2307         (mio_typebound_proc): Module-IO DEFERRED flag.
2308         * resolve.c (check_typebound_override): Ensure that a non-DEFERRED
2309         binding is not overridden by a DEFERRED one.
2310         (resolve_typebound_procedure): Allow abstract interfaces as targets
2311         for DEFERRED bindings.
2312         (ensure_not_abstract_walker), (ensure_not_abstract): New methods.
2313         (resolve_fl_derived): Use new "ensure_not_abstract" method for
2314         non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
2315         binding is overridden.
2316         (check_typebound_baseobject): New method.
2317         (resolve_compcall), (resolve_typebound_call): Check base-object of
2318         the type-bound procedure call.
2319         * gfc-internals.texi (Type-bound procedures): Document a little bit
2320         about internal handling of DEFERRED bindings.
2321
2322 2009-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
2323
2324         PR fortran/38507
2325         * gfortran.h (gfc_st_label): Fix comment.
2326         (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block.
2327         * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and
2328         END SELECT with labels.
2329         (check_do_closure): Fix formatting.
2330         (parse_do_block): Fix typo in error message.
2331         * resolve.c (code_stack): Remove tail member.  Update comment to
2332         new use of reachable_labels.
2333         (reachable_labels): Rename to ...
2334         (find_reachable_labels): ... this.  Overhaul.  Update preceding
2335         comment.
2336         (resolve_branch): Fix comment preceding function.  Rewrite.
2337         (resolve_code): Update call to find_reachable_labels.  Add code to
2338         deal with EXEC_END_BLOCK.
2339         * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK.
2340         Add 2009 to copyright years.
2341         * trans.c (gfc_trans_code): Likewise on both counts.
2342
2343 2009-03-31  Paul Thomas  <pault@gcc.gnu.org>
2344
2345         PR fortran/38917
2346         * expr.c (gfc_check_assign): Allow pointer components when
2347         checking for NULL.
2348
2349         PR fortran/38918
2350         * resolve.c (check_data_variable): Treat pointer arrays with
2351         scalars.
2352
2353 2009-03-31  Paul Thomas  <pault@gcc.gnu.org>
2354
2355         PR fortran/38915
2356         * trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
2357         have a string_length.
2358
2359 2009-03-28  Tobias Burnus  <burnus@net-b.de>
2360
2361         PR fortran/34656
2362         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do):
2363         Add GFC_RTCHECK_DO support.
2364         * option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO.
2365         * invoke.texi (-fcheck): Document "do" option.
2366
2367 2009-03-28  Paul Thomas  <pault@gcc.gnu.org>
2368
2369         PR fortran/38538
2370         * trans-array.c (get_elemental_fcn_charlen): Remove.
2371         (get_array_charlen): New function to replace previous.
2372
2373 2009-03-28  Paul Thomas  <pault@gcc.gnu.org>
2374
2375         PR fortran/38765
2376         * parse.c (parse_derived): Do not break on finding pointer,
2377         allocatable or private components.
2378
2379 2009-03-28  Tobias Burnus  <burnus@net-b.de>
2380
2381         PR fortran/32626
2382         * option.c (gfc_handle_runtime_check_option): Enable recursion check.
2383         * trans-decl.c (gfc_generate_function_code): Add recursion check.
2384         * invoke.texi (-fcheck): Add recursive option.
2385
2386 2009-03-28  Tobias Burnus  <burnus@net-b.de>
2387
2388         PR fortran/38432
2389         * resolve.c (gfc_resolve_iterator): Add zero-loop warning.
2390
2391 2009-03-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2392             Paul Thomas  <pault@gcc.gnu.org>
2393             Tobias Burnus  <burnus@net-b.de>
2394
2395         * gfortran.h (gfc_option_t): Add rtcheck.
2396         * lang.opt: New option -fcheck.
2397         * libgfortran.h: Add GFC_RTCHECK_* constants.
2398         * invoke.texi: Document -fcheck.
2399         * options.c (gfc_handle_runtime_check_option): New function.
2400         (gfc_init_options,gfc_post_options,gfc_handle_option):
2401         Add -fcheck option.
2402
2403 2009-03-27  Richard Guenther  <rguenther@suse.de>
2404
2405         * trans-array.c (gfc_conv_descriptor_data_addr): Use
2406         gfc_build_addr_expr instead of build_fold_addr_expr.
2407         (gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
2408         gfc_trans_constant_array_constructor, gfc_conv_array_data,
2409         gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
2410         * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
2411         gfc_conv_function_val, gfc_conv_operator_assign,
2412         gfc_conv_subref_array_arg, gfc_conv_function_call,
2413         gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
2414         * trans-intrinsic.c (gfc_conv_intrinsic_exponent,
2415         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
2416         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
2417         gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
2418         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
2419         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
2420         gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
2421         * trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
2422         gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
2423         build_filepos, gfc_trans_inquire, gfc_trans_wait,
2424         nml_get_addr_expr, transfer_namelist_element, build_dt,
2425         gfc_trans_dt_end, transfer_array_component, transfer_expr,
2426         transfer_array_desc, gfc_trans_transfer): Likewise.
2427         * trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
2428         * trans.c (gfc_build_addr_expr): Mark the base of the address
2429         TREE_ADDRESSABLE.
2430
2431 2009-03-27  Tobias Burnus  <burnus@net-b.de>
2432
2433         * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
2434         (gfc_expr): Add is_snan.
2435         * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN.
2436         (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree.
2437         * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype.
2438         * resolve.c (build_default_init_expr): Update call.
2439         * target-memory.c (encode_float): Ditto.
2440         * trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod,
2441
2442 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2443
2444         * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp,
2445         and -fpreprocessed.
2446
2447 2009-03-06  Alexandre Oliva <aoliva@redhat.com>
2448
2449         * simplify.c (gfc_simplify_transfer): Zero-initialize the
2450         buffer.
2451
2452 2009-02-27  Tobias Burnus  <burnus@net-b.de>
2453
2454         PR fortran/39309
2455         * module.c (read_md5_from_module_file): Add missing quote.
2456
2457 2009-02-27  Tobias Burnus  <burnus@net-b.de>
2458
2459         PR fortran/39309
2460         * module.c (read_md5_from_module_file): Include mod version
2461         in had-changed test.
2462
2463 2009-02-26  Paul Thomas  <pault@gcc.gnu.org>
2464
2465         PR fortran/39295
2466         * interface.c (compare_type_rank_if): Return 1 if the symbols
2467         are the same and deal with external procedures where one is
2468         identified to be a function or subroutine by usage but the
2469         other is not.
2470
2471 2009-02-26  Paul Thomas  <pault@gcc.gnu.org>
2472
2473         PR fortran/39292
2474         * trans-array.c (gfc_conv_array_initializer): Convert all
2475         expressions rather than ICEing.
2476
2477 2009-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
2478
2479         PR fortran/38914
2480         * array.c (ref_dimen_size):  Rename to gfc_ref_dimen_size,
2481         make global.  Change function name in error messages.
2482         (ref_size):  Change ref_dimen_size to gfc_ref_dimen_size.
2483         (gfc_array_ref_shape):  Likewise.
2484         * gfortran.h:  Add prototype for gfc_ref_dimen_size.
2485         * simplify.c (simplify_bound_dim):  Add ref argument.
2486         If the reference isn't a full array, return one for
2487         the lower bound and the extent for the upper bound.
2488         (simplify_bound):  For array sections, take as from the
2489         argument.  Add reference to all to simplify_bound_dim.
2490
2491 2009-02-19  Daniel Franke  <franke.daniel@gmail.com>
2492
2493         * scanner.c (load_line): At end of line, skip '\r' without setting
2494         the truncation flag.
2495
2496 2009-02-18  Daniel Kraft  <d@domob.eu>
2497
2498         * gfortran.texi: New chapter about compiler characteristics.
2499         (Compiler Characteristics): Document KIND type parameters here.
2500
2501 2009-02-18  Tobias Burnus  <burnus@net-b.de>
2502
2503         * intrinsic.texi (MALLOC): Make example more portable.
2504
2505 2009-02-13  Mikael Morin  <mikael.morin@tele2.fr>
2506
2507         PR fortran/38259
2508         * module.c (gfc_dump_module,gfc_use_module): Add module
2509         version number.
2510
2511 2009-02-13  Paul Thomas  <pault@gcc.gnu.org>
2512
2513         PR fortran/36703
2514         PR fortran/36528
2515         * trans-expr.c (gfc_conv_function_val): Stabilize Cray-pointer
2516         function references to ensure that a valid expression is used.
2517         (gfc_conv_function_call): Pass Cray pointers to procedures.
2518
2519 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
2520
2521         * gfortranspec.c (lang_specific_driver): Update copyright notice
2522         dates.
2523
2524 2009-01-28  Paul Thomas  <pault@gcc.gnu.org>
2525
2526         PR fortran/38852
2527         PR fortran/39006
2528         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array
2529         descriptor ubound for UBOUND, when the array lbound == 1.
2530
2531 2009-01-27  Daniel Kraft  <d@domob.eu>
2532
2533         PR fortran/38883
2534         * trans-stmt.c (gfc_conv_elemental_dependencies):  Create temporary
2535         for the real type needed to make it work for subcomponent-references.
2536
2537 2009-01-21  Daniel Kraft  <d@domob.eu>
2538
2539         * trans-stmt.c (gfc_conv_elemental_dependencies):  Cleaned up comment.
2540
2541 2009-01-20  Paul Thomas  <pault@gcc.gnu.org>
2542
2543         PR fortran/38907
2544         * resolve.c (check_host_association): Remove the matching to
2545         correct an incorrect host association and use manipulation of
2546         the expression instead.
2547
2548 2009-01-20  Tobias Burnus  <burnus@net-b.de>
2549
2550         * invoke.texi (RANGE): RANGE also takes INTEGER arguments.
2551
2552 2009-01-19  Mikael Morin  <mikael.morin@tele2.fr>
2553
2554         PR fortran/38859
2555         * simplify.c (simplify_bound): Don't use array specification
2556         if variable or component has subsequent references.
2557
2558 2009-01-17  Paul Thomas  <pault@gcc.gnu.org>
2559
2560         PR fortran/38657
2561         * module.c (write_common_0): Add argument 'this_module' and
2562         check that non-use associated common blocks are written first.
2563         (write_common): Call write_common_0 twice, once with true and
2564         then with false.
2565
2566 2009-01-17  Paul Thomas  <pault@gcc.gnu.org>
2567
2568         PR fortran/34955
2569         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has
2570         been absorbed into gfc_conv_intrinsic_transfer. All
2571         references to it in trans-intrinsic.c have been changed
2572         accordingly.  PR fixed by using a temporary for scalar
2573         character transfer, when the source is shorter than the
2574         destination.
2575
2576 2009-01-17  Paul Thomas  <pault@gcc.gnu.org>
2577
2578         PR fortran/38657
2579         * module.c (write_common_0): Revert patch of 2009-01-05.
2580
2581 2009-01-16  Janus Weil  <janus@gcc.gnu.org>
2582
2583         PR fortran/38152
2584         * expr.c (gfc_check_pointer_assign): Allow use-associated procedure
2585         pointers as lvalue.
2586         * trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable):
2587         Enable procedure pointers as module variables.
2588
2589 2009-01-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2590
2591         * ChangeLog-2007: Clean out svn merge droppings.
2592
2593 2009-01-10  Paul Thomas  <pault@gcc.gnu.org>
2594
2595         PR fortran/38763
2596         * target-memory.c (encode_derived): Encode NULL.
2597
2598 2009-01-10  Paul Thomas  <pault@gcc.gnu.org>
2599
2600         PR fortran/38765
2601         * resolve.c (check_host_association): Use the symtree name to
2602         search for a potential contained procedure, since this is the
2603         name by which it would be referenced.
2604
2605 2009-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
2606
2607         PR fortran/38220
2608         * interface.c (gfc_procedure_use):  Don't warn about functions
2609         from ISO_C_BINDING.
2610         * symbol.c (generate_isocbinding_symbol):  Mark c_loc and
2611         c_funloc as pure.
2612
2613 2009-01-05  Paul Thomas  <pault@gcc.gnu.org>
2614
2615         PR fortran/38657
2616         * module.c (write_common_0): Use the name of the symtree rather
2617         than the common block, to determine if the common has been
2618         written.
2619
2620 2009-01-05  Daniel Franke  <franke.daniel@gmail.com>
2621
2622         PR fortran/37159
2623         * check.c (gfc_check_random_seed): Added size check for GET
2624         dummy argument, reworded error messages to follow common pattern.
2625
2626 2009-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2627
2628         PR fortran/38672
2629         * trans-types.c (gfc_get_derived_type):  Check for the
2630         presence of derived->ns->proc_name before
2631         accessing derived->ns->proc_name->attr.flavor .
2632         * resolve.c (resolve_symbol):  Likewise.
2633
2634 2009-01-05  Paul Thomas  <pault@gcc.gnu.org>
2635
2636         PR fortran/38665
2637         * gfortran.h : Add bit to gfc_expr 'user_operator'
2638         * interface.c (gfc_extend_expr): Set the above if the operator
2639         is substituted by a function. 
2640         * resolve.c (check_host_association): Return if above is set.
2641
2642 2009-01-04  Mikael Morin  <mikael.morin@tele2.fr>
2643
2644         PR fortran/35681
2645         * ChangeLog-2008: Fix function name.
2646
2647         PR fortran/38487
2648         * dependency.c (gfc_check_argument_var_dependency):
2649         Move the check for pointerness inside the if block
2650         so that it doesn't affect the return value.
2651
2652         PR fortran/38669
2653         * trans-stmt.c (gfc_trans_call):
2654         Add the dependency code after the loop bounds calculation one.
2655
2656 2009-01-04  Daniel Franke  <franke.daniel@gmail.com>
2657
2658         * intrinsic.c (do_simplify): Removed already implemented TODO.
2659
2660 2009-01-04  Daniel Franke  <franke.daniel@gmail.com>
2661
2662         PR fortran/38718
2663         * simplify.c (gfc_simplify_merge): New.
2664         * intrinsic.h (gfc_simplify_merge): New prototype.
2665         * intrinsic.c (add_functions): Added simplification for MERGE.
2666
2667 2009-01-04  Mikael Morin  <mikael.morin@tele2.fr>
2668
2669         PR fortran/38536
2670         * gfortran.h (gfc_is_data_pointer): Added prototype
2671         * resolve.c (gfc_iso_c_func_interface):
2672         Use gfc_is_data_pointer to test for pointer attribute.
2673         * dependency.c (gfc_is_data_pointer):
2674         Support pointer-returning functions.
2675
2676 2009-01-03  Daniel Franke  <franke.daniel@gmail.com>
2677
2678         * symbol.c (save_symbol): Don't SAVE function results.
2679
2680 2009-01-03  Paul Thomas  <pault@gcc.gnu.org>
2681
2682         PR fortran/38594
2683         * resolve.c (resolve_call): When searching for proper host
2684         association, use symtree rather than symbol.  For everything
2685         except generic subroutines, substitute the symtree in the call
2686         rather than the symbol.
2687
2688 \f
2689 Copyright (C) 2009 Free Software Foundation, Inc.
2690
2691 Copying and distribution of this file, with or without modification,
2692 are permitted in any medium without royalty provided the copyright
2693 notice and this notice are preserved.