OSDN Git Service

2008-08-14 Janus Weil <janus@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2008-08-14  Janus Weil  <janus@gcc.gnu.org>
2
3         PR fortran/36705
4         * symbol.c (check_conflict): Move conflict checks for (procedure,save)
5         and (procedure,intent) to resolve_fl_procedure.
6         * resolve.c (resolve_fl_procedure): Ditto.
7
8 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9
10         PR 36901
11         * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
12         'pedwarn0'.
13
14 2008-08-09  Paul Thomas  <pault@gcc.gnu.org>
15
16         PR fortran/37011
17         * symbol.c (gfc_add_extension): New function.
18         * decl.c (gfc_get_type_attr_spec): Call it.
19         (gfc_match_derived_decl): Set symbol extension attribute from
20         attr.extension.
21         * gfortran.h : Add prototype for gfc_add_extension.
22
23 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24
25         PR 28875
26         * options.c (set_Wall): Replace set_Wunused by warn_unused.
27
28 2008-08-08  Daniel Kraft  <d@domob.eu>
29
30         * gfortran.h (gfc_finalizer):  Replaced member `procedure' by two
31         new members `proc_sym' and `proc_tree' to store the symtree after
32         resolution.
33         (gfc_find_sym_in_symtree):  Made public.
34         * decl.c (gfc_match_final_decl):  Adapted for new member name.
35         * interface.c (gfc_find_sym_in_symtree):  Made public.
36         (gfc_extend_expr), (gfc_extend_assign):  Changed call accordingly.
37         * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
38         New methods for module-file IO of f2k_derived.
39         (mio_symbol):  Do IO of f2k_derived namespace.
40         * resolve.c (gfc_resolve_finalizers):  Adapted for new member name and
41         finding the symtree for the symbol here.
42         * symbol.c (gfc_free_finalizer):  Adapted for new members.
43
44 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
45
46         * gfc-internals.texi: Update to GFDL 1.2.  Do not list GPL as
47         Invariant Section.
48         * gfortran.texi: Likewise.
49         * intrinsic.texi: Do not list GPL as Invariant Section.
50         * invoke.texi: Likewise.  Update copyright years.
51
52 2008-07-29  Paul Thomas  <pault@gcc.gnu.org>
53
54         * trans-expr.c (conv_parent_component_references): New function
55         to build missing parent references.
56         (gfc_conv_variable): Call it
57         * symbol.c (gfc_add_component): Check that component name in a
58         derived type extension does not appear in parent.
59         (gfc_find_component): For a derived type extension, check if
60         the component appears in the parent derived type by calling
61         self. Separate errors for private components and private types.
62         * decl.c (match_data_constant): Add extra arg to call to
63         gfc_match_structure_constructor.
64         (check_extended_derived_type): New function to check that a
65         parent derived type exists and that it is OK for exension.
66         (gfc_get_type_attr_spec): Add extra argument 'name' and return
67         it if extends is specified.
68         (gfc_match_derived_decl): Match derived type extension and
69         build a first component of the parent derived type if OK. Add
70         the f2k namespace if not present.
71         * gfortran.h : Add the extension attribute.
72         * module.c : Handle attribute 'extension'.
73         * match.h : Modify prototypes for gfc_get_type_attr_spec and
74         gfc_match_structure_constructor.
75         * primary.c (build_actual_constructor): New function extracted
76         from gfc_match_structure_constructor and modified to call self
77         iteratively to build derived type extensions, when f2k named
78         components are used.
79         (gfc_match_structure_constructor): Do not throw error for too
80         many components if a parent type is being handled. Use
81         gfc_find_component to generate errors for non-existent or
82         private components.  Iteratively call self for derived type
83         extensions so that parent constructor is built.  If extension
84         and components left over, throw error.
85         (gfc_match_rvalue): Add extra arg to call to
86         gfc_match_structure_constructor.
87
88         * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
89         are the same symbol, aliassing does not matter.
90
91 2008-07-29  Jan Hubicka  <jh@suse.cz>
92
93         * options.c (gfc_post_options): Do not set flag_no_inline.
94
95 2008-07-29  Daniel Kraft  <d@domob.eu>
96
97         PR fortran/36403
98         * trans-intrinsic.c (conv_generic_with_optional_char_arg):  New method
99         to append a string-length even if the string argument is missing, e.g.
100         for EOSHIFT.
101         (gfc_conv_intrinsic_function):  Call the new method for EOSHIFT, PACK
102         and RESHAPE.
103
104 2008-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
105
106         * gfortran.h (try): Remove macro.  Replace try with gfc_try
107         throughout.
108         * array.c: Likewise.
109         * check.c: Likewise.
110         * cpp.c: Likewise.
111         * cpp.h: Likewise.
112         * data.c: Likewise.
113         * data.h: Likewise.
114         * decl.c: Likewise.
115         * error.c: Likewise.
116         * expr.c: Likewise.
117         * interface.c: Likewise.
118         * intrinsic.c: Likewise.
119         * intrinsic.h: Likewise.
120         * io.c: Likewise.
121         * match.h: Likewise.
122         * parse.c: Likewise.
123         * parse.h: Likewise.
124         * resolve.c: Likewise.
125         * scanner.c: Likewise.
126         * simplify.c: Likewise.
127         * symbol.c: Likewise.
128         * trans-openmp.c: Likewise.
129         * trans-types.c: Likewise.
130
131 2008-07-28  Tobias Burnus  <burnus@net-b.de>
132
133         * Make-lang.in: Remove -Wno-* from fortran-warn.
134
135 2008-07-28  Richard Guenther  <rguenther@suse.de>
136
137         Merge from gimple-tuples-branch.
138
139         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
140
141         * trans-expr.c: Include gimple.h instead of tree-gimple.h.
142         * trans-array.c: Same.
143         * trans-openmp.c: Same.
144         * trans-stmt.c: Same.
145         * f95-lang.c: Same.
146         * trans-io.c: Same.
147         * trans-decl.c: Same.
148         * trans-intrinsic.c: Same.
149         * trans.c: Same.  Include tree-iterator.h.
150         * Make-lang.in (trans.o): Depend on tree-iterator.h
151
152         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
153
154         * trans-array.h (gfc_conv_descriptor_data_set_internal):
155         Rename to gfc_conv_descriptor_data_set.
156         (gfc_conv_descriptor_data_set_tuples): Remove.
157         * trans-array.c (gfc_conv_descriptor_data_get): Rename
158         from gfc_conv_descriptor_data_set_internal.
159         Remove last argument to gfc_add_modify.
160         (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
161         gfc_add_modify.
162         (gfc_trans_create_temp_array): Same.
163         (gfc_conv_array_transpose): Same.
164         (gfc_grow_array): Same.
165         (gfc_put_offset_into_var): Same.
166         (gfc_trans_array_ctor_element): Same.
167         (gfc_trans_array_constructor_subarray): Same.
168         (gfc_trans_array_constructor_value): Same.
169         (gfc_trans_scalarized_loop_end): Same.
170         (gfc_array_init_size): Same.
171         (gfc_array_allocate): Same.
172         (gfc_trans_array_bounds): Same.
173         (gfc_trans_auto_array_allocation): Same.
174         (gfc_trans_g77_array): Same.
175         (gfc_trans_dummy_array_bias): Same.
176         (gfc_conv_expr_descriptor): Same.
177         (structure_alloc_comps): Same.
178         * trans-expr.c: Same.
179         * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
180         Rename gfc_conv_descriptor_data_set_tuples to
181         gfc_conv_descriptor_data_set.
182         (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
183         build2_v.
184         (gfc_omp_clause_assign_op): Same.
185         (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
186         gfc_add_modify.
187         (gfc_trans_omp_atomic): Same.
188         (gfc_trans_omp_do): Same.  Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
189         Rename gfc_add_modify_stmt to gfc_add_modify.
190         * trans-stmt.c: Rename gfc_add_modify_expr to
191         gfc_add_modify.
192         * trans.c: Rename gfc_add_modify_expr to
193         gfc_add_modify.
194         (gfc_add_modify): Remove last argument.
195         Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
196         * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
197         Add prototype for gfc_add_modify.
198         * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
199         * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
200         * trans-io.c: Same.
201         * trans-intrinsic.c: Same.
202
203         2008-02-25  Aldy Hernandez  <aldyh@redhat.com>
204
205         * Make-lang.in (fortran-warn): Add -Wno-format.
206
207         2008-02-19  Diego Novillo  <dnovillo@google.com>
208
209         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
210
211         * fortran/Make-lang.in (fortran-warn): Remove.
212
213         2007-11-22  Aldy Hernandez  <aldyh@redhat.com>
214
215         * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
216         memset.
217
218         2007-11-10  Aldy Hernandez  <aldyh@redhat.com>
219
220         * Make-lang.in (fortran-warn): Set to -Wno-format.
221         * trans.c (gfc_trans_code): Update comment to say GENERIC.
222         Call tree_annotate_all_with_locus instead of annotate_all_with_locus.
223
224 2008-07-27  Tobias Burnus  <burnus@net-b.de>
225
226         PR fortran/36132
227         PR fortran/29952
228         PR fortran/36909
229         * trans.c (gfc_trans_runtime_check): Allow run-time warning besides
230         run-time error.
231         * trans.h (gfc_trans_runtime_check): Update declaration.
232         * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
233         gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
234         Updated gfc_trans_runtime_check calls.
235         (gfc_conv_array_parameter): Implement flag_check_array_temporaries,
236         fix packing/unpacking for nonpresent optional actuals to optional
237         formals.
238         * trans-array.h (gfc_conv_array_parameter): Update declaration.
239         * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
240         gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
241         (gfc_conv_function_call): Update gfc_conv_array_parameter calls.
242         * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
243         calls.
244         * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
245         (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
246         gfc_conv_array_parameter.
247         * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
248         * trans-decl.c (gfc_build_builtin_function_decls): Add
249         gfor_fndecl_runtime_warning_at.
250         * lang.opt: New option fcheck-array-temporaries.
251         * gfortran.h (gfc_options): New flag_check_array_temporaries.
252         * options.c (gfc_init_options, gfc_handle_option): Handle flag.
253         * invoke.texi: New option fcheck-array-temporaries.
254
255 2008-07-24  Jan Hubicka  <jh@suse.cz>
256
257         * fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
258
259 2008-07-24  Daniel Kraft  <d@domob.eu>
260
261         PR fortran/33141
262         * lang.opt (Wnonstd-intrinsics):  Removed option.
263         (Wintrinsics-std), (Wintrinsic-shadow):  New options.
264         * invoke.texi (Option Summary):  Removed -Wnonstd-intrinsics
265         from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
266         (Error and Warning Options):  Documented the new options and removed
267         the documentation for -Wnonstd-intrinsics.
268         * gfortran.h (gfc_option_t):  New members warn_intrinsic_shadow and
269         warn_intrinsics_std, removed warn_nonstd_intrinsics.
270         (gfc_is_intrinsic):  Renamed from gfc_intrinsic_name.
271         (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard):  New.
272         * decl.c (match_procedure_decl):  Replaced gfc_intrinsic_name by
273         the new name gfc_is_intrinsic.
274         (warn_intrinsic_shadow):  New helper method.
275         (gfc_match_function_decl), (gfc_match_subroutine):  Call the new method
276         warn_intrinsic_shadow to check the just-parsed procedure.
277         * expr.c (check_init_expr):  Call new gfc_is_intrinsic to check whether
278         the function called is really an intrinsic in the selected standard.
279         * intrinsic.c (gfc_is_intrinsic):  Renamed from gfc_intrinsic_name and
280         extended to take into account the selected standard settings when trying
281         to find out whether a symbol is an intrinsic or not.
282         (gfc_check_intrinsic_standard):  Made public and extended.
283         (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface):  Removed
284         the calls to check_intrinsic_standard, this check now happens inside
285         gfc_is_intrinsic.
286         (gfc_warn_intrinsic_shadow):  New method defined.
287         * options.c (gfc_init_options):  Initialize new warning flags to false
288         and removed intialization of Wnonstd-intrinsics flag.
289         (gfc_post_options):  Removed logic for Wnonstd-intrinsics flag.
290         (set_Wall):  Set new warning flags and removed Wnonstd-intrinsics flag.
291         (gfc_handle_option):  Handle the new flags and removed handling of the
292         old Wnonstd-intrinsics flag.
293         * primary.c (gfc_match_rvalue):  Replaced call to gfc_intrinsic_name by
294         the new name gfc_is_intrinsic.
295         * resolve.c (resolve_actual_arglist):  Ditto.
296         (resolve_generic_f), (resolve_unknown_f):  Ditto.
297         (is_external_proc):  Ditto.
298         (resolve_generic_s), (resolve_unknown_s):  Ditto.
299         (resolve_symbol):  Ditto and ensure for symbols declared INTRINSIC that
300         they are really available in the selected standard setting.
301
302 2008-07-24  Daniel Kraft  <d@domob.eu>
303
304         * match.c (gfc_match):  Add assertion to catch wrong calls trying to
305         match upper-case characters.
306
307 2008-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
308
309         PR fortran/29952
310         * gfortran.h:  Add "warn_array_temp" to gfc_option_t.
311         * lang.opt:  Add -Warray-temporaries.
312         * invoke.texi:  Document -Warray-temporaries
313         * trans-array.h (gfc_trans_create_temp_array):  Add argument of
314         type *locus.
315         (gfc_conv_loop_setup):  Likewise.
316         * trans-array.c (gfc_trans_create_temp_array):  If
317         -Warray-temporaries is given and locus is present, warn about
318         creation of array temporaries.
319         (gfc_trans_array_constructor_subarray):  Add locus to call
320         of gfc_conv_loop_setup.
321         (gfc_trans_array_constructor):  Add where argument.  Pass where
322         argument to call of gfc_trans_create_temp_array.
323         (gfc_add_loop_ss_code):  Add where argument.  Pass where argument
324         to recursive call of gfc_add_loop_ss_code and to call of
325         gfc_trans_array_constructor.
326         (gfc_conv_loop_setup):  Add where argument.  Pass where argument
327         to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
328         (gfc_conv_expr_descriptor):  Pass location to call of
329         gfc_conv_loop_setup.
330         (gfc_conv_array_parameter):  If -Warray-temporaries is given,
331         warn about creation of temporary arrays.
332         * trans-expr.c (gfc_conv_subref_array_arg):  Add where argument
333         to call to gfc_conv_loop_setup.
334         (gfc_conv_function_call):  Add where argument to call to
335         gfc_trans_creat_temp_array.
336         (gfc_trans_subarray_assign):  Likewise.
337         (gfc_trans_assignment_1):  Add where argument to call to
338         gfc_conv_loop_setup.
339         * trans-stmt.c (gfc_conv_elemental_dependencies):  Add where
340         argument to call to gfc_trans_create_temp_array.
341         (gfc_trans_call):  Add where argument to call to gfc_conv_loop_setup.
342         (generate_loop_for_temp_to_lhs):  Likewise.
343         (generate_loop_for_rhs_to_temp):  Likewise.
344         (compute_inner_temp_size):  Likewise.
345         (gfc_trans-pointer_assign_need_temp):  Likewise.
346         (gfc_evaluate_where_mask):  Likewise.
347         (gfc_trans_where_assign):  Likewise.
348         (gfc_trans_where_3):  Likewise.
349         * trans-io.c (transfer_srray_component):  Add where argument
350         to function. Add where argument to call to gfc_conv_loop_setup.
351         (transfer_expr):  Add where argument to call to
352         transfer_array_component.
353         (gfc_trans_transfer):  Add where expression to call to
354         gfc_conv_loop_setup.
355         * trans-intrinsic.c (gfc_conv_intrinsic_anyall):  Add
356         where argument to call to gfc_conv_loop_setup.
357         (gfc_conv_intrinsic_count):  Likewise.
358         (gfc_conv_intrinsic_arith):  Likewise.
359         (gfc_conv_intrinsic_dot_product):  Likewise.
360         (gfc_conv_intrinsic_minmaxloc):  Likewise.
361         (gfc_conv_intrinsic_minmaxval):  Likewise.
362         (gfc_conv_intrinsic_array_transfer):  Warn about
363         creation of temporary array.
364         Add where argument to call to gfc_trans_create_temp_array.
365         * options.c (gfc_init_options):  Initialize gfc_option.warn_array_temp.
366         (gfc_handle_option):  Set gfc_option.warn_array_temp.
367
368 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
369
370         PR 35058
371         * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
372
373 2008-07-22  Daniel Kraft  <d@domob.eu>
374
375         PR fortran/29835
376         * io.c (error_element), (format_locus):  New static globals.
377         (unexpected_element):  Spelled out this message fully.
378         (next_char):  Keep track of locus when not MODE_STRING.
379         (next_char_not_space):  Remember last parsed element in error_element.
380         (format_lex):  Fix two indentation errors.
381         (check_format):  Use format_locus and possibly error_element for a
382         slightly better error message on invalid format.
383         (check_format_string):  Set format_locus to start of the string
384         expression used as format.
385
386 2008-07-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
387
388         * expr.c (gfc_check_pointer_assign): Fix typo in string.
389         * io.c (check_format): Fix typo in string.  Fix comment typos.
390         * parse.c (gfc_global_used): Likewise.
391         * resolve.c (resolve_allocate_expr): Likewise.
392         * symbol.c (gfc_set_default_type): Likewise.
393         * arith.c: Fix typos in comments.
394         * array.c: Likewise.
395         * data.c: Likewise.
396         * decl.c: Likewise.
397         * dependency.c: Likewise.
398         * f95-lang.c: Likewise.
399         * gfortran.h: Likewise.
400         * matchexp.c: Likewise.
401         * module.c: Likewise.
402         * primary.c: Likewise.
403         * scanner.c: Likewise.
404         * trans-array.c: Likewise.
405         * trans-common.c: Likewise.
406         * trans-decl.c: Likewise.
407         * trans-expr.c: Likewise.
408         * trans-intrinsic.c: Likewise.
409         * trans-types.c: Likewise.
410         * trans.c: Likewise.
411         * trans.h: Likewise.
412
413 2008-07-19  Tobias Burnus  <burnus@net-b.de>
414
415         PR fortran/36795
416         * matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
417         which caused the generation of wrong code.
418
419 2008-07-19  Tobias Burnus  <burnus@net-b.de>
420
421         PR fortran/36342
422         * scanner.c (load_file): Add argument to destinguish between
423         true filename and displayed filename.
424         (include_line,gfc_new_file): Adapt accordingly.
425
426 2008-07-19  Tobias Burnus  <burnus@net-b.de>
427
428         * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
429         checks for cshift's shift and eoshift's shift and boundary args.
430         (gfc_check_unpack): Add rank and shape tests for unpack.
431
432 2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
433
434         * gfortran.h (new): Remove macro.
435         * array.c (gfc_append_constructor, match_array_list,
436         gfc_match_array_constructor): Likewise.
437         * bbt.c (insert, gfc_insert_bbt): Likewise.
438         * decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
439         get_proc_name): Likewise.
440         * expr.c (gfc_copy_actual_arglist): Likewise.
441         * interface.c (compare_actual_formal, check_new_interface,
442         gfc_add_interface): Likewise.
443         * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
444         Likewise.
445         * io.c (match_io_iterator, match_io_list): Likewise.
446         * match.c (match_forall_header): Likewise.
447         * matchexp.c (build_node): Likewise.
448         * module.c (gfc_match_use): Likewise.
449         * scanner.c (load_file): Likewise.
450         * st.c (gfc_append_code): Likewise.
451         * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
452         gfc_commit_symbols): Likewise.
453         * trans-common.c (build_field): Likewise.
454         * trans-decl.c (gfc_finish_var_decl): Likewise.
455         * trans-expr.c (gfc_free_interface_mapping,
456         gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
457         gfc_finish_interface_mapping,
458         gfc_apply_interface_mapping_to_expr): Likewise.
459         * trans.h (gfc_interface_sym_mapping): Likewise.
460
461 2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
462
463         * gfortran.h (operator): Remove macro.
464         (gfc_namespace, gfc_expr): Avoid C++ keywords.
465         * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
466         Likewise.
467         * decl.c (access_attr_decl): Likewise.
468         * dependency.c (gfc_dep_compare_expr): Likewise.
469         * dump-parse-tree.c (show_expr, show_uop, show_namespace):
470         Likewise.
471         * expr.c (gfc_copy_expr, gfc_type_convert_binary,
472         simplify_intrinsic_op, check_intrinsic_op): Likewise.
473         * interface.c (fold_unary, gfc_match_generic_spec,
474         gfc_match_interface, gfc_match_end_interface,
475         check_operator_interface, check_uop_interfaces,
476         gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
477         gfc_add_interface, gfc_current_interface_head,
478         gfc_set_current_interface_head): Likewise.
479         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
480         Likewise.
481         * matchexp.c (gfc_get_parentheses, build_node): Likewise.
482         * module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
483         number_use_names, mio_expr, load_operator_interfaces, read_module,
484         write_operator, write_module): Likewise.
485         * openmp.c (resolve_omp_atomic): Likewise.
486         * resolve.c (resolve_operator, gfc_resolve_character_operator,
487         gfc_resolve_uops): Likewise.
488         * symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
489         * trans-expr.c (gfc_conv_expr_op): Likewise.
490         * trans-openmp.c (gfc_trans_omp_atomic): Likewise.
491
492 2008-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
493
494         * gfortran.h (protected): Remove macro.
495         * dump-parse-tree.c (show_attr): Avoid C++ keywords.
496         * expr.c (gfc_check_pointer_assign): Likewise.
497         * interface.c (compare_parameter_protected): Likewise.
498         * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
499         add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
500         add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
501         add_sym_5s): Likewise.
502         * match.c (gfc_match_assignment, gfc_match_pointer_assignment):
503         Likewise.
504         * module.c (mio_symbol_attribute): Likewise.
505         * primary.c (match_variable): Likewise.
506         * resolve.c (resolve_equivalence): Likewise.
507         * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
508         Likewise.
509         * trans-types.c (gfc_get_array_type_bounds): Likewise.
510
511 2008-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
512
513         * arith.c (eval_type_intrinsic0): Avoid C++ keywords.
514         * gfortran.h (try, protected, operator, new): Likewise.
515
516 2008-07-17  Tobias Burnus  <burnus@net-b.de>
517
518         PR fortran/36825
519         PR fortran/36824
520         * array.c (gfc_match_array_spec): Fix array-rank check.
521         * resolve.c (resolve_fl_derived): Fix constentness check
522         for the array dimensions.
523
524 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
525
526         * Make-lang.in (gfortranspec.o): Fix dependencies.
527
528 2008-07-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
529
530         PR fortran/36725
531         * io.c: Add error check for g0 edit descriptor followed by '.'.
532
533 2008-07-12  Daniel Kraft  <d@domob.eu>
534
535         * resolve.c (resolve_fl_derived):  Allow pointer components to empty
536         derived types fixing a missing part of PR fortran/33221.
537
538 2008-07-10  Daniel Kraft  <d@domob.eu>
539
540         * gfc-internals.texi (section gfc_expr):  Created documentation about
541         the gfc_expr internal data structure.
542
543 2008-07-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
544
545         PR fortran/36670
546         * iresolve.c (gfc_resolve_product):  Set shape of return
547         value from array.
548         (gfc_resolve_sum):  Likewise.
549
550 2008-07-07  Jakub Jelinek  <jakub@redhat.com>
551
552         PR middle-end/36726
553         * f95-lang.c (poplevel): Don't ever add subblocks to
554         global_binding_level.
555
556 2008-07-02  Janus Weil  <janus@gcc.gnu.org>
557             Tobias Burnus  <burnus@net-b.de>
558             Paul Thomas  <pault@gcc.gnu.org>
559
560         PR fortran/32580
561         * gfortran.h (struct gfc_symbol): New member "proc_pointer".
562         * check.c (gfc_check_associated,gfc_check_null): Implement
563         procedure pointers.
564         * decl.c (match_procedure_decl): Ditto.
565         * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
566         * interface.c (compare_actual_formal): Ditto.
567         * match.h: Ditto.
568         * match.c (gfc_match_pointer_assignment): Ditto.
569         * parse.c (parse_interface): Ditto.
570         * primary.c (gfc_match_rvalue,match_variable): Ditto.
571         * resolve.c (resolve_fl_procedure): Ditto.
572         * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
573         gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
574         * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
575         create_function_arglist): Ditto.
576         * trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
577         gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.
578
579 2008-07-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
580
581         PR fortran/36590
582         PR fortran/36681
583         * iresolve.c (resolve_mask_arg):  Don't convert mask to
584         kind=1 logical if it is of that type already.
585
586 2008-06-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
587
588         PR fortran/36341
589         * iresolve.c (gfc_resolve_matmul): Copy shapes
590         from arguments.
591
592 2008-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
593
594         * invoke.texi: Add documentation for runtime behavior of
595         -fno-range-check.
596
597 2008-06-28  Daniel Kraft  <d@domob.eu>
598
599         * gfc-internals.texi (section gfc_code):  Extended documentation about
600         gfc_code in the internal datastructures chapter including details about
601         how IF, DO and SELECT blocks look like and an example for how the
602         block-chaining works.
603
604 2008-06-25  Paul Thomas  <pault@gcc.gnu.org>
605
606         PR fortran/36526
607         * interface.c (check_intents):  Correct error where the actual
608         arg was checked for a pointer argument, rather than the formal.
609
610 2008-06-24  Paul Thomas  <pault@gcc.gnu.org>
611
612         PR fortran/34371
613         * expr.c (gfc_check_assign):  Change message and locus for
614         error when conform == 0.
615
616 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
617
618         PR fortran/36597
619         * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
620
621 2008-06-20  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
622             Tobias Burnus  <burnus@net-b.de>
623
624         PR fortran/34908
625         PR fortran/36276
626         * scanner.c (preprocessor_line): do not call gfc_free for
627         current_file->filename if it differs from filename.
628
629 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
630
631         * arith.c (hollerith2representation): Fix for -Wc++-compat.
632         * array.c (gfc_get_constructor): Likewise.
633         * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
634         create_enum_history, gfc_match_final_decl): Likewise.
635         * error.c (error_char): Likewise.
636         * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
637         * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
638         gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
639         gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
640         gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
641         gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
642         gfc_get_alloc, gfc_get_wide_string): Likewise.
643         * interface.c (count_types_test): Likewise.
644         * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
645         Likewise.
646         * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
647         gfc_match_inquire, gfc_match_wait): Likewise.
648         * match.c (gfc_match, match_forall_iterator): Likewise.
649         * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
650         add_true_name, parse_string, write_atom, quote_string,
651         mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
652         * options.c (gfc_post_options): Likewise.
653         * primary.c (match_integer_constant, match_hollerith_constant,
654         match_boz_constant, match_real_constant,
655         gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
656         * scanner.c (gfc_widechar_to_char, add_path_to_list,
657         add_file_change, load_line, get_file, preprocessor_line,
658         load_file, unescape_filename, gfc_read_orig_filename): Likewise.
659         * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
660         gfc_simplify_ishftc): Likewise.
661         * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
662         gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
663         Likewise.
664         * target-memory.c (gfc_target_interpret_expr): Likewise.
665         * trans-const.c (gfc_build_wide_string_const): Likewise.
666         * trans-expr.c (gfc_add_interface_mapping): Likewise.
667         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
668         gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
669         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
670         gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
671         gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
672         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
673         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
674         * trans.c (gfc_get_backend_locus): Likewise.
675         * trans.h (gfc_get_ss): Likewise.
676
677 2008-06-18  Daniel Kraft  <d@domob.eu>
678
679         PR fortran/36517, fortran/36492
680         * array.c (gfc_resolve_character_array_constructor):  Call
681         gfc_set_constant_character_len with changed length-chec argument.
682         * decl.c (gfc_set_constant_character_len):  Changed array argument to
683         be a generic length-checking argument that can be used for correct
684         checking with typespec and in special cases where the should-be length
685         is different from the target length.
686         (build_struct):  Call gfc_set_constant_character_len with changed length
687         checking argument and introduced additional checks for exceptional
688         conditions on invalid code.
689         (add_init_expr_to_sym), (do_parm):  Call gfc_set_constant_character_len
690         with changed argument.
691         * match.h (gfc_set_constant_character_len):  Changed third argument to
692         int for the should-be length rather than bool.
693
694 2008-06-17  Daniel Kraft  <d@domob.eu>
695
696         PR fortran/36112
697         * array.c (gfc_resolve_character_array_constructor):  Check that all
698         elements with constant character length have the same one rather than
699         fixing it if no typespec is given, emit an error if they don't.  Changed
700         return type to "try" and return FAILURE for the case above.
701         (gfc_resolve_array_constructor):  Removed unneeded call to
702         gfc_resolve_character_array_constructor in this function.
703         * gfortran.h (gfc_resolve_character_array_constructor):  Returns try.
704         * trans-array.c (get_array_ctor_strlen):  Return length of first element
705         rather than last element.
706         * resolve.c (gfc_resolve_expr):  Handle FAILURE return from
707         gfc_resolve_character_array_constructor.
708
709 2008-06-17  Paul Thomas  <pault@gcc.gnu.org>
710
711         PR fortran/34396
712         * resolve.c (add_dt_to_dt_list):  New function.
713         (resolve_fl_derived): Call new function for pointer components
714         and when derived type resolved.
715
716 2008-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
717
718         PR fortran/36515
719         * trans-decl.c (gfc_generate_function_code): Add range_check to options
720         array.
721
722 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
723
724         * gfc-internals.texi: Expand TABs, drop indentation outside examples.
725         * gfortran.texi: Likewise.
726         * intrinsic.texi: Likewise.
727         * invoke.texi: Likewise.
728
729 2008-06-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
730
731         PR fortran/35863
732         * trans-io.c (gfc_build_io_library_fndecls): Build declaration for
733         transfer_character_wide which includes passing in the character kind to
734         support wide character IO. (transfer_expr): If the kind == 4, create the
735         argument and build the call.
736         * gfortran.texi: Fix typo.
737
738 2008-06-13  Tobias Burnus  <burnus@net-b.de>
739
740         PR fortran/36476
741         * decl.c (do_parm): Handle init expression for len=*.
742
743 2008-06-12  Tobias Burnus  <burnus@net-b.de>
744
745         PR fortran/36462
746         * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
747         Fix passing of the BACK= argument.
748
749 2008-06-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
750
751         * cpp.c: Add copyright notice.
752         * cpp.h: Add copyright notice.
753
754 2008-06-08  Janus Weil  <janus@gcc.gnu.org>
755
756         PR fortran/36459
757         * decl.c (match_procedure_decl): Correctly recognize if the interface
758         is an intrinsic procedure.
759
760 2008-06-08  Tobias Burnus  <burnus@net-b.de>
761
762         PR fortran/35830
763         * resolve.c (resolve_symbol): Copy more attributes for
764         PROCEDUREs with interfaces.
765
766 2008-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
767
768         PR fortran/36420
769         PR fortran/36422
770         * io.c (check_format): Add new error message for zero width.
771         Use new error message for FMT_A and with READ, FMT_G.  Allow
772         FMT_G with WRITE except when -std=F95 and -std=F2003.
773
774 2008-06-07  Tobias Burnus  <burnus@net-b.de>
775
776         PR fortran/36437
777         * intrinsic.c (add_functions): Implement c_sizeof.
778         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
779         create unneeded variable in the scalar case.
780         * intrinsic.texi: Add C_SIZEOF documentation.
781
782 2008-06-06  Tobias Burnus  <burnus@net-b.de>
783
784         * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
785
786 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
787
788         * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
789         * parse.c (next_free): Allow tab after !$omp.
790         (decode_omp_directive): Handle !$omp task, !$omp taskwait
791         and !$omp end task.
792         (case_executable): Add ST_OMP_TASKWAIT.
793         (case_exec_markers): Add ST_OMP_TASK.
794         (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
795         ST_OMP_TASKWAIT.
796         (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
797         * gfortran.h (gfc_find_sym_in_expr): New prototype.
798         (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
799         (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
800         OMP_DEFAULT_FIRSTPRIVATE to default_sharing.  Add collapse and
801         untied fields.
802         (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
803         * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
804         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
805         LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
806         * trans.h (gfc_omp_clause_default_ctor): Add another argument.
807         (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
808         gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
809         * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
810         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
811         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
812         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
813         BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
814         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
815         (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
816         than boolean_type_node.
817         * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
818         EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
819         untied and collapse clauses.
820         (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
821         * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
822         EXEC_OMP_TASKWAIT.
823         * st.c (gfc_free_statement): Likewise.
824         * resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
825         (find_sym_in_expr): Rename to...
826         (gfc_find_sym_in_expr): ... this.  No longer static.
827         (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
828         * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
829         prototypes.
830         * openmp.c (resolve_omp_clauses): Allow allocatable arrays in
831         firstprivate, lastprivate, reduction, copyprivate and copyin
832         clauses.
833         (omp_current_do_code): Made static.
834         (omp_current_do_collapse): New variable.
835         (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
836         clear omp_current_do_code and omp_current_do_collapse on return.
837         (gfc_resolve_do_iterator): Handle collapsed do loops.
838         (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
839         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
840         (gfc_match_omp_clauses): Handle default (firstprivate),
841         schedule (auto), untied and collapse (n) clauses.
842         (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
843         (OMP_TASK_CLAUSES): Define.
844         (gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
845         * trans-openmp.c (gfc_omp_private_outer_ref): New function.
846         (gfc_omp_clause_default_ctor): Add outer argument.  For allocatable
847         arrays allocate them with the bounds of the outer var if outer
848         var is allocated.
849         (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
850         gfc_omp_clause_dtor): New functions.
851         (gfc_trans_omp_array_reduction): If decl is allocatable array,
852         allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
853         and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
854         (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
855         for assumed-size arrays.
856         (gfc_trans_omp_do): Add par_clauses argument.  If dovar is
857         present in lastprivate clause and do loop isn't simple,
858         set OMP_CLAUSE_LASTPRIVATE_STMT.  If dovar is present in
859         parallel's lastprivate clause, change it to shared and add
860         lastprivate clause to OMP_FOR_CLAUSES.  Handle collapsed do loops.
861         (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
862         (gfc_trans_omp_parallel_do): Likewise.  Move collapse clause to
863         OMP_FOR from OMP_PARALLEL.
864         (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
865         OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
866         (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
867         (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
868         EXEC_OMP_TASKWAIT.
869
870 2008-06-04  Janus Weil  <janus@gcc.gnu.org>
871
872         PR fortran/36322
873         PR fortran/36275
874         * resolve.c (resolve_symbol): Correctly copy the interface for a
875         PROCEDURE declaration.
876
877 2008-06-02  Janus Weil  <janus@gcc.gnu.org>
878
879         PR fortran/36361
880         * symbol.c (gfc_add_allocatable,gfc_add_dimension,
881         gfc_add_explicit_interface): Added checks.
882         * decl.c (attr_decl1): Added missing "var_locus".
883         * parse.c (parse_interface): Checking for errors.
884
885 2008-06-02  Daniel Kraft  <d@domob.eu>
886
887         * gfortran.h:  New statement-type ST_FINAL for FINAL declarations.
888         (struct gfc_symbol):  New member f2k_derived.
889         (struct gfc_namespace):  New member finalizers, for use in the above
890         mentioned f2k_derived namespace.
891         (struct gfc_finalizer):  New type defined for finalizers linked list.
892         * match.h (gfc_match_final_decl):  New function header.
893         * decl.c (gfc_match_derived_decl):  Create f2k_derived namespace on
894         constructed symbol node.
895         (gfc_match_final_decl):  New function to match a FINAL declaration line.
896         * parse.c (decode_statement):  match-call for keyword FINAL.
897         (parse_derived):  Parse CONTAINS section and accept FINAL statements.
898         * resolve.c (gfc_resolve_finalizers):  New function to resolve (that is
899         in this case, check) a list of finalizer procedures.
900         (resolve_fl_derived):  Call gfc_resolve_finalizers here.
901         * symbol.c (gfc_get_namespace):  Initialize new finalizers to NULL.
902         (gfc_free_namespace):  Free finalizers list.
903         (gfc_new_symbol):  Initialize new f2k_derived to NULL.
904         (gfc_free_symbol):  Free f2k_derived namespace.
905         (gfc_free_finalizer):  New function to free a single gfc_finalizer node.
906         (gfc_free_finalizer_list):  New function to free a linked list of
907         gfc_finalizer nodes.
908
909 2008-06-02  Daniel Franke  <franke.daniel@gmail.com>
910
911         PR fortran/36375
912         PR fortran/36377
913         * cpp.c (gfc_cpp_init): Do not initialize builtins if
914         processing already preprocessed input.
915         (gfc_cpp_preprocess): Finalize output with newline.
916
917 2008-05-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
918
919         * intrinsic.texi: Revert wrong commit.
920
921 2008-05-31  Steven G. Kargl  <kargls@comcast.net>
922
923         * arith.c (gfc_arith_init_1): Remove now unused r and c variables.
924         Cleanup numerical inquiry function initialization.
925         (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
926         a single mpfr_clears().
927         (gfc_check_real_range): Re-arrange logic to eliminate multiple
928         unnecessary branching and assignments.
929         (gfc_arith_times): Use mpfr_clears() in preference to multiple
930         mpfr_clear().
931         (gfc_arith_divide): Ditto.
932         (complex_reciprocal): Eliminate now unused variables a, re, im.
933         Cleanup the mpfr abuse.  Use mpfr_clears() in preference to
934         multiple mpfr_clear().
935         (complex_pow): Fix comment whitespace.  Use mpfr_clears() in
936         preference to multiple mpfr_clear().
937         * simplify.c (gfc_simplify_and): Remove blank line.
938         (gfc_simplify_atan2): Move error checking earlier to eliminate
939         a now unnecessay gfc_free_expr().
940         (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
941         (gfc_simplify_bessel_j1): Ditto.
942         (gfc_simplify_bessel_jn): Ditto.
943         (gfc_simplify_bessel_y0): Ditto.
944         (gfc_simplify_bessel_y1): Ditto.
945         (gfc_simplify_bessel_yn): Ditto. 
946         (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
947         combine nested if statement rational expressions.
948         (gfc_simplify_cos): Use mpfr_clears() in preference to multiple
949         mpfr_clear().
950         (gfc_simplify_exp): Ditto.
951         (gfc_simplify_fraction): Move gfc_set_model_kind() to after the
952         special case of 0.  Use mpfr_clears() in preference to multiple
953         mpfr_clear().
954         (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
955         (gfc_simplify_lgamma): Ditto.
956         (gfc_simplify_log10): Ditto.
957         (gfc_simplify_log): Move gfc_set_model_kind () inside switch
958         statement. Use mpfr_clears() in preference to multiple mpfr_clear().
959         (gfc_simplify_mod):  Eliminate now unused variables quot, iquot,
960         and term.  Simplify the mpfr magic.
961         (gfc_simplify_modulo): Ditto.
962         (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
963         (gfc_simplify_scale): Use mpfr_clears() in preference to multiple
964         mpfr_clear().
965         (gfc_simplify_sin): Ditto
966         (gfc_simplify_sqrt): Ditto
967         (gfc_simplify_set_exponent):  Move gfc_set_model_kind() to after the
968         special case of 0.  Use mpfr_clears() in preference to multiple
969         mpfr_clear().
970
971 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
972
973         PR target/36348
974         * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.
975
976 2008-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
977
978         * scanner.c (load_line): Add first_char argument. Don't call ungetc.
979         (gfc_read_orig_filename): Adjust call to load_line. Don't call
980         ungetc.
981         (load_file): Adjust call to load_line.
982
983 2008-05-28  Janus Weil  <janus@gcc.gnu.org>
984
985         PR fortran/36325
986         PR fortran/35830
987         * interface.c (gfc_procedure_use): Enable argument checking for
988         external procedures with explicit interface.
989         * symbol.c (check_conflict): Fix conflict checking for externals.
990         (copy_formal_args): Fix handling of arrays.
991         * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
992         of intrinsics.
993         * parse.c (parse_interface): Non-abstract INTERFACE statement implies
994         EXTERNAL attribute.
995
996 2008-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
997
998         PR fortran/36319
999         * intrinsic.c (gfc_convert_chartype): Don't mark conversion
1000         function as pure.
1001         * trans-array.c (gfc_trans_array_ctor_element): Divide element
1002         size by the size of one character to obtain length.
1003         * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
1004         appropriate.
1005         (gfc_resolve_eoshift): Likewise.
1006         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
1007         (gfc_conv_intrinsic_fdate): Minor beautification.
1008         (gfc_conv_intrinsic_ttynam): Minor beautification.
1009         (gfc_conv_intrinsic_minmax_char): Allow all character kinds.
1010         (size_of_string_in_bytes): New function.
1011         (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
1012         character expressions.
1013         (gfc_conv_intrinsic_sizeof): Likewise.
1014         (gfc_conv_intrinsic_array_transfer): Likewise.
1015         (gfc_conv_intrinsic_trim): Allow all character kinds. Minor
1016         beautification.
1017         (gfc_conv_intrinsic_repeat): Fix comment typo.
1018         * simplify.c (gfc_convert_char_constant): Take care of conversion
1019         of array constructors.
1020
1021 2008-05-27  Tobias Burnus  <burnus@net-b.de>
1022
1023         PR fortran/36316
1024         * trans-array.c (gfc_set_loop_bounds_from_array_spec):
1025         Add missing fold_convert.
1026
1027 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1028
1029         * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
1030         added FIXME instead.
1031
1032 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1033
1034         PR fortran/18428
1035         * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
1036         imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
1037         o, undef, v): New options.
1038         * options.c (gfc_init_options): Also initialize preprocessor
1039         options.
1040         (gfc_post_options): Also handle post-initialization of preprocessor
1041         options.
1042         (gfc_handle_option): Check if option is a preprocessor option.
1043         If yes, let gfc_cpp_handle_option() handle the option.
1044         * lang-specs.h: Reorganized to handle new options.
1045         * scanner.c (gfc_new_file): Read temporary file instead of
1046         input source if preprocessing is enabled.
1047         * f95-lang.c (gfc_init): Initialize preprocessor.
1048         (gfc_finish): Clean up preprocessor.
1049         * cpp.c: New.
1050         * cpp.h: New.
1051         * Make-lang.in: Added new objects and dependencies.
1052         * gfortran.texi: Updated section "Preprocessing and
1053         conditional compilation".
1054         * invoke.texi: Added new section "Preprocessing Options",
1055         listed and documented the preprocessing options handled
1056         by gfortran.
1057
1058 2008-05-25  Tobias Burnus  <burnus@net-b.de>
1059
1060         PR fortran/32600
1061         * trans-expr.c (gfc_conv_function_call): Remove library
1062         call for c_f_pointer with scalar Fortran pointers and for
1063         c_f_procpointer.
1064
1065 2008-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1066
1067         PR fortran/36257
1068         * iresolve.c (check_charlen_present): Don't force the rank to 1.
1069
1070 2008-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1071
1072         PR fortran/36265
1073         * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
1074         the temporary variable.
1075
1076 2008-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1077
1078         * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
1079         result variable to avoid warnings.
1080
1081 2008-05-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1082
1083         * intrinsic.c (char_conversions, ncharconv): New static variables.
1084         (find_char_conv): New function.
1085         (add_functions): Add simplification functions for ADJUSTL and
1086         ADJUSTR. Don't check the kind of their argument. Add checking for
1087         LGE, LLE, LGT and LLT.
1088         (add_subroutines): Fix argument type for SLEEP. Fix argument name
1089         for SYSTEM.
1090         (add_char_conversions): New function.
1091         (gfc_intrinsic_init_1): Call add_char_conversions.
1092         (gfc_intrinsic_done_1): Free char_conversions.
1093         (check_arglist): Use kind == 0 as a signal that we don't want
1094         the kind value to be checked.
1095         (do_simplify): Also simplify character functions.
1096         (gfc_convert_chartype): New function
1097         * trans-array.c (gfc_trans_array_ctor_element): Don't force the
1098         use of default character type.
1099         (gfc_trans_array_constructor_value): Likewise.
1100         (get_array_ctor_var_strlen): Use integer kind to build an integer
1101         instead of a character kind!
1102         (gfc_build_constant_array_constructor): Don't force the use of
1103         default character type.
1104         (gfc_conv_loop_setup): Likewise.
1105         * trans-expr.c (gfc_conv_string_tmp): Don't force the use of
1106         default character type. Allocate enough memory for wide strings.
1107         (gfc_conv_concat_op): Make sure operand kind are the same.
1108         (string_to_single_character): Remove gfc_ prefix. Reindent.
1109         Don't force the use of default character type.
1110         (gfc_conv_scalar_char_value): Likewise.
1111         (gfc_build_compare_string): Call string_to_single_character.
1112         (fill_with_spaces): New function
1113         (gfc_trans_string_copy): Add kind arguments. Use them to deal
1114         with wide character kinds.
1115         (gfc_conv_statement_function): Whitespace fix. Call
1116         gfc_trans_string_copy with new kind arguments.
1117         (gfc_conv_substring_expr): Call gfc_build_wide_string_const
1118         instead of using gfc_widechar_to_char.
1119         (gfc_conv_string_parameter): Don't force the use of default
1120         character type.
1121         (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
1122         * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
1123         gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
1124         * decl.c (gfc_set_constant_character_len): Don't assert the
1125         existence of a single character kind.
1126         * trans-array.h (gfc_trans_string_copy): New prototype.
1127         * gfortran.h (gfc_check_character_range, gfc_convert_chartype):
1128         New prototypes.
1129         * error.c (print_wide_char_into_buffer): New function lifting
1130         code from gfc_print_wide_char. Fix order to output '\x??' instead
1131         of 'x\??'.
1132         (gfc_print_wide_char): Call print_wide_char_into_buffer.
1133         (show_locus): Call print_wide_char_into_buffer with buffer local
1134         to this function.
1135         * trans-const.c (gfc_build_wide_string_const): New function.
1136         (gfc_conv_string_init): Deal with wide characters strings
1137         constructors.
1138         (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
1139         * trans-stmt.c (gfc_trans_label_assign): Likewise.
1140         (gfc_trans_character_select): Deal with wide strings.
1141         * expr.c (gfc_check_assign): Allow conversion between character
1142         kinds on assignment.
1143         * trans-const.h (gfc_build_wide_string_const): New prototype.
1144         * trans-types.c (gfc_get_character_type_len_for_eltype,
1145         gfc_get_character_type_len): Create too variants of the old
1146         gfc_get_character_type_len, one getting kind argument and the
1147         other one directly taking a type tree.
1148         * trans.h (gfor_fndecl_select_string_char4,
1149         gfor_fndecl_convert_char1_to_char4,
1150         gfor_fndecl_convert_char4_to_char1): New prototypes.
1151         * trans-types.h (gfc_get_character_type_len_for_eltype): New
1152         prototype.
1153         * resolve.c (resolve_operator): Exit early when kind mismatches
1154         are detected, because that makes us issue an error message later.
1155         (validate_case_label_expr): Fix wording of error message.
1156         * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
1157         functions.
1158         (gfc_resolve_pack): Call _char4 variants of library function
1159         when dealing with wide characters.
1160         (gfc_resolve_reshape): Likewise.
1161         (gfc_resolve_spread): Likewise.
1162         (gfc_resolve_transpose): Likewise.
1163         (gfc_resolve_unpack): Likewise.
1164         * target-memory.c (size_character): Take character kind bit size
1165         correctly into account (not that it changes anything for now, but
1166         it's more generic).
1167         (gfc_encode_character): Added gfc_ prefix. Encoding each
1168         character of a string by calling native_encode_expr for the
1169         corresponding unsigned integer.
1170         (gfc_target_encode_expr): Add gfc_ prefix to encode_character.
1171         * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1172         gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
1173         and gfor_fndecl_convert_char4_to_char1.
1174         * target-memory.h (gfc_encode_character): New prototype.
1175         * arith.c (gfc_check_character_range): New function.
1176         (eval_intrinsic): Allow non-default character kinds.
1177         * check.c (gfc_check_access_func): Only allow default
1178         character kind arguments.
1179         (gfc_check_chdir): Likewise.
1180         (gfc_check_chdir_sub): Likewise.
1181         (gfc_check_chmod): Likewise.
1182         (gfc_check_chmod_sub): Likewise.
1183         (gfc_check_lge_lgt_lle_llt): New function.
1184         (gfc_check_link): Likewise.
1185         (gfc_check_link_sub): Likewise.
1186         (gfc_check_symlnk): Likewise.
1187         (gfc_check_symlnk_sub): Likewise.
1188         (gfc_check_rename): Likewise.
1189         (gfc_check_rename_sub): Likewise.
1190         (gfc_check_fgetputc_sub): Likewise.
1191         (gfc_check_fgetput_sub): Likewise.
1192         (gfc_check_stat): Likewise.
1193         (gfc_check_stat_sub): Likewise.
1194         (gfc_check_date_and_time): Likewise.
1195         (gfc_check_ctime_sub): Likewise.
1196         (gfc_check_fdate_sub): Likewise.
1197         (gfc_check_gerror): Likewise.
1198         (gfc_check_getcwd_sub): Likewise.
1199         (gfc_check_getarg): Likewise.
1200         (gfc_check_getlog): Likewise.
1201         (gfc_check_hostnm): Likewise.
1202         (gfc_check_hostnm_sub): Likewise.
1203         (gfc_check_ttynam_sub): Likewise.
1204         (gfc_check_perror): Likewise.
1205         (gfc_check_unlink): Likewise.
1206         (gfc_check_unlink_sub): Likewise.
1207         (gfc_check_system_sub): Likewise.
1208         * primary.c (got_delim): Perform correct character range checking
1209         for all kinds.
1210         * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
1211         calls to library functions convert_char4_to_char1 and
1212         convert_char1_to_char4 for character conversions.
1213         (gfc_conv_intrinsic_char): Allow all character kings.
1214         (gfc_conv_intrinsic_strcmp): Fix whitespace.
1215         (gfc_conv_intrinsic_repeat): Take care of all character kinds.
1216         * intrinsic.texi: For all GNU intrinsics accepting character
1217         arguments, mention that they're restricted to the default kind.
1218         * simplify.c (simplify_achar_char): New function.
1219         (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
1220         gfc_simplify_ichar): Don't error out for wide characters.
1221         (gfc_convert_char_constant): New function.
1222
1223 2008-05-18  Steven G. Kargl  <kargls@comcast.net>
1224
1225         PR fortran/36251
1226         * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
1227         and BIND(C).
1228         * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.
1229
1230 2008-05-17  Tobias Burnus  <burnus@net-b.de>
1231
1232         * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
1233         and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
1234         GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
1235         Move LOG_GAMMA after LOG10.
1236
1237 2008-05-17  Tobias Burnus  <burnus@net-b.de>
1238
1239         * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
1240         * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
1241         ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
1242         CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.
1243
1244 2008-05-16  Paul Thomas  <pault@gcc.gnu.org>
1245
1246         PR fortran/35756
1247         PR fortran/35759
1248         * trans-stmt.c (gfc_trans_where): Tighten up the dependency
1249         check for calling gfc_trans_where_3.
1250
1251         PR fortran/35743
1252         * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
1253         if it is calculated to be negative.
1254
1255         PR fortran/35745
1256         * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
1257         ss->where for scalar right hand sides.
1258         * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
1259         not evaluate scalars outside the loop.  Clean up whitespace.
1260         * trans.h : Add a bitfield 'where' to gfc_ss.
1261
1262 2008-05-16  Tobias Burnus  <burnus@net-b.de>
1263
1264         * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
1265         * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.
1266
1267 2008-04-16  Daniel Kraft  <d@domob.eu>
1268
1269         PR fortran/27997
1270         * gfortran.h:  Added field "length_from_typespec" to gfc_charlength.
1271         * aray.c (gfc_match_array_constructor):  Added code to parse typespec.
1272         (check_element_type, check_constructor_type, gfc_check_constructor_type):
1273         Extended to support explicit typespec on constructor.
1274         (gfc_resolve_character_array_constructor):  Pad strings correctly for
1275         explicit, constant character length.
1276         * trans-array.c:  New static global variable "typespec_chararray_ctor"
1277         (gfc_trans_array_constructor):  New code to support explicit but dynamic
1278         character lengths.
1279
1280 2008-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1281
1282         PR fortran/34325
1283         * decl.c (match_attr_spec): Check for matching pairs of parenthesis.
1284         * expr.c (gfc_specification_expr): Supplement the error message with the
1285         type that was found.
1286         * resolve.c (gfc_resolve_index): Likewise.
1287         * match.c (gfc_match_parens): Clarify error message with "at or before".
1288         (gfc_match_do): Check for matching pairs of parenthesis.
1289
1290 2008-05-16  Tobias Burnus  <burnus@net-b.de
1291
1292         * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
1293         add missing KIND argument to ACHAR and NINT; and state that
1294         the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
1295         ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.
1296
1297 2008-05-16  Daniel Kraft  <d@domob.eu>
1298
1299         * primary.c:  New private structure "gfc_structure_ctor_component".
1300         (gfc_free_structure_ctor_component):  New helper function.
1301         (gfc_match_structure_constructor):  Extended largely to support named
1302         arguments and default initialization for structure constructors.
1303
1304 2008-05-15  Steven G. Kargl  <kargls@comcast.net>
1305
1306         * simplify.c (gfc_simplify_dble, gfc_simplify_float,
1307         simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
1308         possible memory leaks.
1309         (gfc_simplify_reshape): Plug possible memory leaks and dereferencing
1310         of NULL pointers.
1311
1312 2008-05-15  Steven G. Kargl  <kargls@comcast.net>
1313
1314         PR fortran/36239
1315         * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
1316         rolled integer conversion with gfc_int2int, gfc_real2int, and
1317         gfc_complex2int.
1318         (gfc_simplify_intconv): Renamed to simplify_intconv.
1319         
1320 2008-05-15  Steven G. Kargl,   <kargl@comcast.net>
1321         * gfortran.dg/and_or_xor.f90: New test
1322
1323         * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
1324         gfc_simplify_xor): Don't range check logical results.
1325
1326 2008-05-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1327
1328         * trans-expr.c (gfc_conv_concat_op): Take care of nondefault
1329         character kinds.
1330         (gfc_build_compare_string): Add kind argument and use it.
1331         (gfc_conv_statement_function): Fix indentation.
1332         * gfortran.h (gfc_character_info): New structure.
1333         (gfc_character_kinds): New array.
1334         * trans-types.c (gfc_character_kinds, gfc_character_types,
1335         gfc_pcharacter_types): New array.
1336         (gfc_init_kinds): Fill character kinds array.
1337         (validate_character): Take care of nondefault character kinds.
1338         (gfc_build_uint_type): New function.
1339         (gfc_init_types): Take care of nondefault character kinds.
1340         (gfc_get_char_type, gfc_get_pchar_type): New functions.
1341         (gfc_get_character_type_len): Use gfc_get_char_type.
1342         * trans.h (gfc_build_compare_string): Adjust prototype.
1343         (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
1344         gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1345         gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1346         gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1347         gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
1348         prototypes.
1349         * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
1350         prototypes.
1351         * trans-decl.c (gfor_fndecl_compare_string_char4,
1352         gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1353         gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1354         gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1355         gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
1356         gfor_fndecl_concat_string_char4): New function decls.
1357         (gfc_build_intrinsic_function_decls): Define new *_char4 function
1358         decls.
1359         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
1360         gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
1361         gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
1362         gfc_conv_intrinsic_function): Deal with nondefault character kinds.
1363
1364 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1365
1366         * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
1367         All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
1368         c_int128_t, c_int_least128_t and c_int_fast128_t are added as
1369         GNU extensions.
1370         * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
1371         to macro NAMED_INTCST.
1372         * symbol.c (std_for_isocbinding_symbol): New helper function to 
1373         return the standard that supports this isocbinding symbol.
1374         (generate_isocbinding_symbol): Do not generate GNU extension symbols
1375         if std=f2003. Add new parameter to NAMED_INTCST.
1376         * module.c (use_iso_fortran_env_module): Add new parameter to
1377         NAMED_INTCST and new field standard to struct intmod_sym.
1378         * gfortran.h: Add new parameter to NAMED_INTCST.
1379         * trans-types.c (init_c_interop_kinds): Add new parameter to 
1380         NAMED_INTCST.
1381         * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
1382         and C_INT_FAST128_T.
1383
1384 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1385
1386         PR fortran/36059
1387         * trans-decl.c (gfc_build_dummy_array_decl): Don't repack
1388         arrays that have the TARGET attribute.
1389
1390 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1391
1392         PR fortran/36186
1393         * simplify.c (only_convert_cmplx_boz): New function.
1394         (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
1395         Call only_convert_cmplx_boz.
1396
1397 2008-05-14  Paul Thomas  <pault@gcc.gnu.org>
1398
1399         PR fortran/36233
1400         * interface.c (compare_actual_formal): Do not check sizes if the
1401         actual is BT_PROCEDURE.
1402
1403 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1404
1405         PR fortran/35682
1406         * trans-array.c (gfc_conv_ss_startstride): Any negative size is
1407         the same as zero size.
1408         (gfc_conv_loop_setup): Fix size calculation.
1409
1410 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1411
1412         PR fortran/35685
1413         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
1414         handle zero-size sections.
1415
1416 2008-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1417
1418         PR fortran/36215
1419         * scanner.c (preprocessor_line): Allocate enough memory for a
1420         wide string.
1421
1422 2008-05-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1423
1424         PR fortran/36176
1425         * target-memory.c (gfc_target_expr_size): Correctly treat
1426         substrings.
1427         (gfc_target_encode_expr): Likewise.
1428         (gfc_interpret_complex): Whitespace change.
1429
1430 2008-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>
1431
1432         PR fortran/35719
1433         * trans.c (gfc_call_malloc): If size equals zero, allocate one
1434         byte; don't return a null pointer.
1435
1436 2008-05-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1437
1438         PR fortran/36197
1439         * module.c (quote_string): Fix sprintf format.
1440
1441 2008-05-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1442
1443         PR fortran/36162
1444         * module.c (quote_string, unquote_string,
1445         mio_allocated_wide_string): New functions.
1446         (mio_expr): Call mio_allocated_wide_string where needed.
1447
1448 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1449
1450          * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
1451          Rename DECL_IS_PURE to DECL_PURE_P.
1452
1453 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1454
1455         * arith.c: (gfc_arith_concat, gfc_compare_string,
1456         gfc_compare_with_Cstring, hollerith2representation,
1457         gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
1458         gfc_hollerith2character, gfc_hollerith2logical): Use wide
1459         characters for character constants.
1460         * data.c (create_character_intializer): Likewise.
1461         * decl.c (gfc_set_constant_character_len): Likewise.
1462         * dump-parse-tree.c (show_char_const): Correctly dump wide
1463         character strings.
1464         error.c (print_wide_char): Rename into gfc_print_wide_char.
1465         (show_locus): Adapt to new prototype of gfc_print_wide_char.
1466         expr.c (free_expr0): Representation is now disjunct from
1467         character string value, so we always free it.
1468         (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
1469         to wide character strings.
1470         * gfortran.h (gfc_expr): Make value.character.string a wide string.
1471         (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
1472         gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
1473         (gfc_get_wide_string): New macro.
1474         (gfc_print_wide_char): New prototype.
1475         * io.c (format_string): Make a wide string.
1476         (next_char, gfc_match_format, compare_to_allowed_values, 
1477         gfc_match_open): Deal with wide strings.
1478         * module.c (mio_expr): Convert between wide strings and ASCII ones.
1479         * primary.c (match_hollerith_constant, match_charkind_name): 
1480         Handle wide strings.
1481         * resolve.c (build_default_init_expr): Likewise.
1482         * scanner.c (gfc_wide_toupper, gfc_wide_memset,
1483         gfc_char_to_widechar): New functions.
1484         (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
1485         Changes in prototypes.
1486         (gfc_define_undef_line, load_line, preprocessor_line,
1487         include_line, load_file, gfc_read_orig_filename): Handle wide
1488         strings.
1489         * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
1490         gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
1491         gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
1492         gfc_simplify_repeat): Handle wide strings.
1493         (wide_strspn, wide_strcspn): New helper functions.
1494         (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
1495         Handle wide strings.
1496         * symbol.c (generate_isocbinding_symbol): Likewise.
1497         * target-memory.c (size_character, gfc_target_expr_size,
1498         encode_character, gfc_target_encode_expr, gfc_interpret_character,
1499         gfc_target_interpret_expr): Handle wide strings.
1500         * trans-const.c (gfc_conv_string_init): Lower wide strings to
1501         narrow ones.
1502         (gfc_conv_constant_to_tree): Likewise.
1503         * trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
1504         * trans-io.c (gfc_new_nml_name_expr): Likewise.
1505         * trans-stmt.c (gfc_trans_label_assign): Likewise.
1506
1507 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1508
1509         * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
1510         gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
1511         gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
1512         with ATTRIBUTE_UNUSED.
1513
1514 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1515
1516         * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
1517         * simplify.c (gfc_simplify_lgamma): Likewise.
1518
1519 2008-05-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1520
1521         * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
1522         gfc_peek_ascii_char.
1523         * decl.c (gfc_match_kind_spec, gfc_match_type_spec,
1524         gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
1525         match_string_p, match_attr_spec, gfc_match_suffix,
1526         match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
1527         Likewise.
1528         * gfortran.h (gfc_char_t): New type.
1529         (gfc_linebuf): Make line member a gfc_char_t.
1530         (locus): Make nextc member a gfc_char_t.
1531         (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
1532         gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
1533         gfc_peek_ascii_char, gfc_check_digit): New prototypes.
1534         * error.c (print_wide_char): New function.
1535         (show_locus): Use print_wide_char and gfc_wide_strlen.
1536         * io.c (next_char): Use gfc_char_t type.
1537         (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
1538         * match.c (gfc_match_parens, gfc_match_eos,
1539         gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
1540         gfc_match_intrinsic_op, gfc_match_char,  gfc_match_return,
1541         gfc_match_common): Likewise.
1542         * match.h (gfc_match_special_char): Change prototype.
1543         * parse.c (decode_specification_statement, decode_statement,
1544         decode_omp_directive, next_free, next_fixed): Use
1545         gfc_peek_ascii_char and gfc_next_ascii_char.
1546         * primary.c (gfc_check_digit): Change name.
1547         (match_digits, match_hollerith_constant, match_boz_constant,
1548         match_real_constant, next_string_char, match_charkind_name,
1549         match_string_constant, match_logical_constant_string,
1550         match_complex_constant, match_actual_arg, match_varspec,
1551         gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
1552         gfc_next_ascii_char.
1553         * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
1554         gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
1555         gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
1556         wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
1557         gfc_next_ascii_char, gfc_peek_ascii_char):
1558         New functions.
1559         (next_char, gfc_define_undef_line, skip_free_comments,
1560         gfc_next_char_literal, gfc_next_char, gfc_peek_char,
1561         gfc_error_recovery, load_line, preprocessor_line, include_line,
1562         load_file, gfc_read_orig_filename): Use gfc_char_t for source
1563         characters and the {gfc_,}wide_* functions to manipulate wide
1564         strings.
1565
1566 2008-05-06  Tobias Burnus  <burnus@net-b.de>
1567
1568         PR fortran/36117
1569         * intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
1570         * intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
1571         * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
1572         gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
1573         gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.
1574
1575 2008-05-03  Janus Weil  <jaydub66@gmail.com>
1576
1577         * misc.c (gfc_clear_ts): Set interface to NULL.
1578
1579 2008-05-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1580
1581         PR fortran/33268
1582         * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
1583         gfc_expr value union. Add io_kind enum to here from io.c.
1584         * io.c (gfc_free_dt): Free extra_comma.
1585         (gfc_resolve_dt): If an extra comma was encountered and io_unit is type
1586         BT_CHARACTER, resolve to format_expr and set default unit.  Error if
1587         io_kind is M_WRITE. (match_io):  Match the extra comma and set new
1588         pointer, extra_comma.
1589
1590 2008-05-01  Bud Davis  <bdavis9659@sbcglobal.net>
1591
1592         PR35940/Fortran
1593         * simplify.c (gfc_simplify_index): Check for direction argument 
1594         being a constant.
1595
1596 2008-05-01  Janus Weil  <jaydub66@gmail.com>
1597
1598         * gfortran.h (struct gfc_symbol): Moving "interface" member to
1599         gfc_typespec (plus fixing a small docu error).
1600         * interface.c (gfc_procedure_use): Ditto.
1601         * decl.c (match_procedure_decl): Ditto.
1602         * resolve.c (resolve_specific_f0,
1603         resolve_specific_f0, resolve_symbol): Ditto.
1604
1605 2008-04-30  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1606
1607         * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
1608         * intrinsic.h (gfc_check_selected_char_kind,
1609         gfc_simplify_selected_char_kind): New prototypes.
1610         * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
1611         * trans.h (gfor_fndecl_sc_kind): New function decl.
1612         * trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
1613         * arith.c (gfc_compare_with_Cstring): New function.
1614         * arith.h (gfc_compare_with_Cstring): New prototype.
1615         * check.c (gfc_check_selected_char_kind): New function.
1616         * primary.c (match_string_constant, match_kind_param): Mark
1617         symbols used as literal constant kind param as referenced.
1618         * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
1619         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
1620         * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
1621         * simplify.c (gfc_simplify_selected_char_kind): New function.
1622
1623 2008-04-28  Paul Thomas  <pault@gcc.gnu.org>
1624
1625         PR fortran/35997
1626         * module.c (find_symbol): Do not return a result for a symbol
1627         that has been renamed in another module.
1628
1629 2008-04-26  George Helffrich <george@gcc.gnu.org>
1630
1631         PR fortran/35892
1632         PR fortran/35154
1633         * trans-common.c (create_common):  Add decl to function
1634         chain (if inside one) to preserve identifier scope in debug output.
1635
1636 2008-04-25  Jan Hubicka  <jh@suse.cz>
1637
1638         * trans-decl.c (trans_function_start): Update.
1639
1640 2008-04-25  Tobias Burnus  <burnus@net-b.de>
1641             Daniel Franke <franke.daniel@gmail.com>
1642
1643         PR fortran/35156
1644         * gfortranspec.c (lang_specific_driver): Deprecate
1645         -M option; fix ICE when "-M" is last argument and
1646         make "-M<dir>" work.
1647         * options.c (gfc_handle_module_path_options): 
1648         Use -J instead of -M in error messages.
1649         * invoke.texi: Mark -M as depecated.
1650
1651 2008-04-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1652             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1653
1654         PR fortran/35994
1655         * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
1656         loop counter offset.
1657
1658 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
1659
1660         * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
1661         * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
1662         (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
1663         (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
1664         (gfc_conv_array_initializer): Don't set TREE_INVARIANT.
1665         * trans-common.c (get_init_field): Don't set TREE_INVARIANT.
1666         (create_common): Don't set TREE_INVARIANT.
1667         * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
1668         * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
1669
1670 2008-04-21  Steve Ellcey  <sje@cup.hp.com>
1671
1672         * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
1673
1674 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
1675
1676         PR fortran/35019
1677         * gfortranspec.c (lookup_option): Properly handle separated arguments
1678         in -J option, print missing argument message when necessary.
1679
1680 2008-04-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1681
1682         PR fortran/35882
1683         * scanner.c (skip_fixed_comments): Update continue_line when comment is
1684         detected. (gfc_next_char_literal): Likewise.
1685
1686 2008-04-19  Paul Thomas  <pault@gcc.gnu.org>
1687
1688         PR fortran/35944
1689         PR fortran/35946
1690         PR fortran/35947
1691         * trans_array.c (gfc_trans_array_constructor): Temporarily
1692         realign loop, if loop->from is not zero, before creating
1693         the temporary array and provide an offset.
1694
1695         PR fortran/35959
1696         * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
1697         and allow for NULL body.  Change all references from
1698         init_default_dt to gfc_init_default_dt.
1699         * trans.h : Add prototype for gfc_init_default_dt.
1700         * trans-array.c (gfc_trans_deferred_vars): After nullification
1701         call gfc_init_default_dt for derived types with allocatable
1702         components.
1703
1704 2008-04-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1705
1706         PR fortran/35892
1707         * trans-common.c (create_common): Revert patch causing regression.
1708
1709 2008-04-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1710
1711         PR fortran/35724
1712         * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
1713         optional argument attribute.
1714         
1715 2008-04-16  Paul Thomas  <pault@gcc.gnu.org>
1716
1717         PR fortran/35932
1718         * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
1719         is not used, the argument must be converted.
1720
1721 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
1722
1723         PR target/35662
1724         * f95-lang.c (gfc_init_builtin_functions): Make sure
1725         BUILT_IN_SINCOS{,F,L} types aren't varargs.
1726
1727 2008-04-15  Paul Thomas  <pault@gcc.gnu.org>
1728
1729         PR fortran/35864
1730         * expr.c (scalarize_intrinsic_call): Reorder identification of
1731         array argument so that if one is not found a segfault does not
1732         occur.  Return FAILURE if all scalar arguments.
1733
1734 2008-04-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1735             Tobias Burnus  <burnus@net-b.de>
1736
1737         PR fortran/35882
1738         * options.c (gfc_init_options): Set the default maximum continuation
1739         lines to 255 for both free and fixed form source for warnings.
1740         (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
1741         the -std=f95 free form max continuations to 39 for warnings.
1742         * scanner.c (gfc_next_char_literal): Adjust the current_line number only
1743         if it is less than the current locus.
1744
1745 2008-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1746
1747         PR fortran/25829 28655
1748         * io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
1749         round, sign, and id. (match_open_element): Match new tags.
1750         (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
1751         for DEFAULT only. Update error messages. (match_dt_element): Fix match
1752         tag for asynchronous. Update error messages. (gfc_free_inquire): Free
1753         new expressions. (match_inquire_element): Match new tags.
1754         (gfc_match_inquire): Add constraint for ID and PENDING.
1755         (gfc_resolve_inquire): Resolve new tags.
1756         * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
1757         mask for ID parameter.
1758         * ioparm.def: Fix order of parameters for pending, round, and sign.
1759         NOTE: These must line up with the definitions in libgfortran/io/io.h. or
1760         things don't work.
1761
1762 2008-04-06  Paul Thomas  <pault@gcc.gnu.org>
1763
1764         PR fortran/35780
1765         * expr.c (scalarize_intrinsic_call): Identify which argument is
1766         an array and use that as the template.
1767         (check_init_expr): Remove tests that first argument is an array
1768         in the call to scalarize_intrinsic_call.
1769
1770 2008-04-06  Tobias Schlüter  <tobi@gcc.gnu.org>
1771
1772         PR fortran/35832
1773         * io.c (io_tag): Add field 'value'.  Split 'spec' field in
1774         existing io_tags.
1775         (match_etag, match_vtag, match_ltag): Split parsing in two steps
1776         to give better error messages.
1777
1778 2008-04-06  Tobias Burnus  <burnus@net-b.de>
1779
1780         * io.c (check_io_constraints): Add constrains. ID= requires
1781         asynchronous= and asynchronous= must be init expression.
1782
1783 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1784
1785         * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
1786
1787 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1788
1789         * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
1790         gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
1791         functions and make them static. Add new gfc_dump_parse_tree
1792         function.
1793         * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
1794         (gfc_status, gfc_status_char): Delete prototypes.
1795         * error.c (gfc_status, gfc_status_char): Remove functions.
1796         * scanner.c (gfc_new_file): Use printf instead of gfc_status.
1797         * options.c (gfc_init_options): Rename verbose into dump_parse_tree.
1798         (gfc_handle_module_path_options): Use gfc_fatal_error instead of
1799         gfc_status and exit.
1800         (gfc_handle_option): Rename verbose into dump_parse_tree.
1801         * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
1802
1803 2008-04-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1804             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1805
1806         PR fortran/25829 28655
1807         * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
1808         * gfortran.h (gfc_statement): Add ST_WAIT enumerator.
1809         (gfc_open): Add pointers for decimal, encoding, round, sign,
1810         asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
1811         encoding, pending, round, sign, size, id.
1812         (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
1813         asynchronous, blank, decimal, delim, pad, round, sign.
1814         (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
1815         wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
1816         * trans-stmt.h (gfc_trans_wait): New function prototype.
1817         * trans.c (gfc_trans_code): Add case for EXEC_WAIT.
1818         * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
1819         ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
1820         (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
1821         tags. (gfc_resolve_open): Remove comment around check for allowed
1822         values and ASYNCHRONOUS, update it.  Likewise for DECIMAL, ENCODING,
1823         ROUND, and SIGN. (match_dt_element): Add matching for new tags.
1824         (gfc_free_wait): New function. (gfc_resolve_wait): New function.
1825         (match_wait_element): New function. (gfc_match_wait): New function.
1826         * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
1827         (resolve_code): Add case for EXEC_WAIT. 
1828         * st.c (gfc_free_statement): Add case for EXEC_WAIT.
1829         * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
1830         Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
1831         (gfc_build_io_library_fndecls): Add function declaration for st_wait.
1832         (gfc_trans_open): Add mask bits for new I/O tags.
1833         (gfc_trans_inquire): Add mask bits for new I/O tags.
1834         (gfc_trans_wait): New translation function.
1835         (build_dt): Add mask bits for new I/O tags.
1836         * match.c (gfc_match_if) Add matcher for "wait".
1837         * match.h (gfc_match_wait): Prototype for new function.
1838         * ioparm.def: Add new I/O parameter definitions.
1839         * parse.c (decode_statement): Add match for "wait" statement.
1840         (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
1841
1842 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
1843
1844         PR fortran/35786
1845         * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
1846         isn't a variable.
1847
1848 2008-04-03  Tom Tromey  <tromey@redhat.com>
1849
1850         * Make-lang.in (fortran_OBJS): New variable.
1851
1852 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
1853
1854         * f95-lang.c (insert_block): Kill.
1855
1856 2008-04-01  George Helffrich <george@gcc.gnu.org>
1857
1858         PR fortran/35154, fortran/23057
1859         * trans-common.c (create_common):  Add decl to function
1860         chain to preserve identifier scope in debug output.
1861
1862 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
1863
1864         * gfortran.texi: Include gpl_v3.texi instead of gpl.texi
1865         * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
1866         gpl.texi.
1867
1868 2008-03-30  Paul Thomas  <pault@gcc.gnu.org>
1869
1870         PR fortran/35740
1871         * resolve.c (resolve_function, resolve_call): If the procedure
1872         is elemental do not look for noncopying intrinsics.
1873
1874 2008-03-29  Paul Thomas  <pault@gcc.gnu.org>
1875
1876         PR fortran/35698
1877         * trans-array.c (gfc_array_init_size): Set 'size' zero if
1878         negative in one dimension.
1879
1880         PR fortran/35702
1881         * trans-expr.c (gfc_trans_string_copy): Only assign a char
1882         directly if the lhs and rhs types are the same.
1883
1884 2008-03-28  Daniel Franke  <franke.daniel@gmail.com>
1885             Paul Richard Thomas <paul.richard.thomas@gmail.com>
1886
1887         PR fortran/34714
1888         * primary.c (match_variable): Improved matching of function 
1889         result variables.
1890         * resolve.c (resolve_allocate_deallocate): Removed checks if
1891         the actual argument for STAT is a variable.
1892
1893 2008-03-28  Tobias Burnus  <burnus@net-b.de>
1894
1895         * symbol.c (gfc_get_default_type): Fix error message; option
1896         -fallow_leading_underscore should be -fallow-leading-underscore
1897
1898 2008-03-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1899
1900         PR fortran/35724
1901         * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
1902         optional argument attribute.
1903
1904 2008-03-27  Tom Tromey  <tromey@redhat.com>
1905
1906         * Make-lang.in: Revert automatic dependency patch.
1907
1908 2008-03-25  Tom Tromey  <tromey@redhat.com>
1909
1910         * Make-lang.in: Remove .o targets.
1911         (fortran_OBJS): New variable.
1912         (fortran/gfortranspec.o): Move to fortran/.  Reduce to variable
1913         setting.
1914         (GFORTRAN_D_OBJS): Update.
1915         (GFORTRAN_TRANS_DEPS): Remove.
1916
1917 2008-03-24  Paul Thomas  <pault@gcc.gnu.org>
1918
1919         PR fortran/34813
1920         * resolve.c (resolve_structure_cons): It is an error to assign
1921         NULL to anything other than a pointer or allocatable component.
1922
1923         PR fortran/33295
1924         * resolve.c (resolve_symbol): If the symbol is a derived type,
1925         resolve the derived type.  If the symbol is a derived type
1926         function, ensure that the derived type is visible in the same
1927         namespace as the function.
1928
1929 2008-03-23  Tobias Schlüter  <tobi@gcc.gnu.org>
1930
1931         * trans.h: Use fold_build in build1_v, build2_v and build3_v
1932         macros.
1933         * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
1934         Don't use build2_v macro.
1935
1936 2008-03-19  Daniel Franke  <franke.daniel@gmail.com>
1937
1938         PR fortran/35152
1939         * interface.c (gfc_procedure_use): Check for keyworded arguments in
1940         procedures without explicit interfaces.
1941
1942 2008-03-16  Paul Thomas  <pault@gcc.gnu.org>
1943
1944         PR fortran/35470
1945         * resolve.c (check_assumed_size_reference):  Only visit the
1946         first reference and look directly at the highest dimension.
1947
1948 2008-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1949
1950         PR fortran/35184
1951         * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
1952         assert.
1953
1954 2008-03-15  Daniel Franke  <franke.daniel@gmail.com>
1955
1956         PR fortran/35584
1957         * resolve.c (resolve_branch): Less strict and pessimistic warning
1958         message.
1959
1960 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
1961
1962         * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
1963         (gfc_be_parse_file): Call clear_binding_stack from here.
1964         (gfc_clear_binding_stack): Rename to clear_binding_stack.
1965                 
1966 2008-03-09  Paul Thomas  <pault@gcc.gnu.org>
1967
1968         PR fortran/35474
1969         * module.c (mio_symtree_ref): After providing a symbol for a
1970         missing equivalence member, resolve and NULL the fixups.
1971
1972 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1973
1974         * invoke.texi (Error and Warning Options): Document
1975         -Wline-truncation.
1976
1977 2008-03-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1978
1979         PR fortran/34956
1980         * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
1981         checking bounds of absent optional arguments.
1982
1983 2008-03-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1984
1985         PR fortran/33197
1986         * intrinsic.c (add_functions): Add simplification routines for
1987         ERF, DERF, ERFC and DERFC.
1988         * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
1989         extensions into Fortran 2008 features.
1990         * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
1991         prototypes.
1992         * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.
1993
1994 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1995
1996         PR fortran/33197
1997         * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
1998         ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
1999         ERFC_SCALED, LOG_GAMMA and HYPOT.
2000         * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
2001         gfc_resolve_hypot): New prototypes.
2002         * mathbuiltins.def: Add HYPOT builtin. Make complex versions of
2003         ACOSH, ASINH and ATANH available.
2004         * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
2005         * lang.opt: Add -std=f2008 option.
2006         * libgfortran.h: Define GFC_STD_F2008.
2007         * lang-specs.h: Add .f08 and .F08 file suffixes.
2008         * iresolve.c (gfc_resolve_hypot): New function.
2009         * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
2010         * check.c (gfc_check_hypot): New function.
2011         * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
2012         * options.c (set_default_std_flags): Allow Fortran 2008 by default.
2013         (form_from_filename): Add .f08 suffix.
2014         (gfc_handle_option): Handle -std=f2008 option.
2015         * simplify.c (gfc_simplify_hypot): New function.
2016         * gfortran.texi: Document Fortran 2008 status and file extensions.
2017         * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
2018         as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
2019         ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
2020         * invoke.texi: Document the new -std=f2008 option.
2021
2022 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
2023
2024         * gfortranspec.c (lang_specific_driver): Update copyright notice
2025         dates.
2026
2027 2008-02-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2028
2029         PR fortran/35059
2030         * expr.c (find_array_element): Modify traversing the constructor to
2031         avoid trying to access NULL memory pointed to by next for the
2032         last element. (find_array_section): Exit while loop if cons->next is
2033         NULL.
2034         * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
2035         (gfc_conv_function_call): Same.
2036         * decl.c (gfc_match_implicit): Same.
2037         * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.
2038
2039 2008-02-28  Daniel Franke  <franke.daniel@gmail.com>
2040
2041         PR fortran/31463
2042         PR fortran/33950
2043         PR fortran/34296
2044         * lang.opt: Added -Wreturn-type.
2045         * options.c (gfc_handle_option): Recognize -Wreturn-type.
2046         * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
2047         where the result value is not set.
2048         (gfc_generate_function_code): Likewise.
2049         (generate_local_decl): Emit warnings for funtions whose RESULT
2050         variable is not set.
2051
2052 2008-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2053
2054         PR fortran/34868
2055         * trans-expr.c (gfc_conv_variable): Don't build indirect
2056         references when explicit interface is mandated.
2057         * resolve.c (resolve_formal_arglist): Set attr.always_explicit
2058         on the result symbol as well as the procedure symbol.
2059
2060 2008-02-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2061
2062         PR fortran/33387
2063         * trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
2064         gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2065         gfor_fndecl_math_exponent16.
2066         * f95-lang.c (build_builtin_fntypes): Add new function types.
2067         (gfc_init_builtin_functions): Add new builtins for nextafter,
2068         frexp, ldexp, fabs, scalbn and inf.
2069         * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
2070         (gfc_resolve_scale): Don't convert type of second argument.
2071         (gfc_resolve_set_exponent): Likewise.
2072         (gfc_resolve_size): Don't add hidden arguments.
2073         * trans-decl.c: Remove gfor_fndecl_math_exponent4,
2074         gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2075         gfor_fndecl_math_exponent16.
2076         * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
2077         for scalbn, fraction, nearest, rrspacing, set_exponent and
2078         spacing.
2079         (gfc_conv_intrinsic_exponent): Directly call frexp.
2080         (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
2081         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2082         gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
2083         functions.
2084         (gfc_conv_intrinsic_function): Use the new functions above.
2085
2086 2008-02-26  Tobias Burnus  <burnus@net-b.de>
2087
2088         PR fortran/35033
2089         * interface.c (check_operator_interface): Show better line for error
2090         messages; fix constrains for user-defined assignment operators.
2091         (gfc_extend_assign): Fix constrains for user-defined assignment
2092         operators.
2093
2094 2008-02-26  Tom Tromey  <tromey@redhat.com>
2095
2096         * trans-io.c (set_error_locus): Remove old location code.
2097         * trans-decl.c (gfc_set_decl_location): Remove old location code.
2098         * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
2099         * scanner.c (gfc_gobble_whitespace): Remove old location code.
2100         (get_file): Likewise.
2101         (preprocessor_line): Likewise.
2102         (load_file): Likewise.
2103         (gfc_new_file): Likewise.
2104         * trans.c (gfc_trans_runtime_check): Remove old location code.
2105         (gfc_get_backend_locus): Likewise.
2106         (gfc_set_backend_locus): Likewise.
2107         * data.c (gfc_assign_data_value): Remove old location code.
2108         * error.c (show_locus): Remove old location code.
2109         * gfortran.h (gfc_linebuf): Remove old location code.
2110         (gfc_linebuf_linenum): Remove old-location variant.
2111
2112 2008-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2113
2114         PR fortran/34729
2115         * trans-const.c (gfc_build_string_const): Don't call gettext.
2116         (gfc_build_localized_string_const): New function.
2117         * trans-const.h (gfc_build_localized_string_const): New prototype.
2118         * trans.c (gfc_trans_runtime_check): Use
2119         gfc_build_localized_string_const instead of gfc_build_string_const.
2120         (gfc_call_malloc): Likewise.
2121         (gfc_allocate_with_status): Likewise.
2122         (gfc_allocate_array_with_status): Likewise.
2123         (gfc_deallocate_with_status): Likewise.
2124         (gfc_call_realloc): Likewise.
2125         * trans-io.c (gfc_trans_io_runtime_check): Likewise.
2126
2127 2008-02-24  Tobias Schlüter  <tobi@gcc.gnu.org>
2128
2129         * arith.c: Update copyright years.
2130         * arith.h: Likewise.
2131         * array.c: Likewise.
2132         * bbt.c: Likewise.
2133         * check.c: Likewise.
2134         * data.c: Likewise.
2135         * data.h: Likewise.
2136         * decl.c: Likewise.
2137         * dependency.c: Likewise.
2138         * dependency.h: Likewise.
2139         * dump-parse-tree.c: Likewise.
2140         * error.c: Likewise.
2141         * expr.c: Likewise.
2142         * gfc-internals.texi: Likewise.
2143         * gfortran.h: Likewise.
2144         * gfortran.texi: Likewise.
2145         * gfortranspec.c: Likewise.
2146         * interface.c: Likewise.
2147         * intrinsic.c: Likewise.
2148         * intrinsic.h: Likewise.
2149         * intrinsic.texi: Likewise.
2150         * invoke.texi: Likewise.
2151         * io.c: Likewise.
2152         * iresolve.c: Likewise.
2153         * iso-c-binding.def: Likewise.
2154         * iso-fortran-env.def: Likewise.
2155         * lang-specs.h: Likewise.
2156         * lang.opt: Likewise.
2157         * libgfortran.h: Likewise.
2158         * match.c: Likewise.
2159         * match.h: Likewise.
2160         * matchexp.c: Likewise.
2161         * misc.c: Likewise.
2162         * module.c: Likewise.
2163         * openmp.c: Likewise.
2164         * options.c: Likewise.
2165         * parse.c: Likewise.
2166         * parse.h: Likewise.
2167         * primary.c: Likewise.
2168         * resolve.c: Likewise.
2169         * scanner.c: Likewise.
2170         * simplify.c: Likewise.
2171         * st.c: Likewise.
2172         * symbol.c: Likewise.
2173         * target-memory.c: Likewise.
2174         * target-memory.h: Likewise.
2175         * trans-array.h: Likewise.
2176         * trans-const.h: Likewise.
2177         * trans-stmt.h: Likewise.
2178         * trans-types.c: Likewise.
2179         * trans-types.h: Likewise.
2180         * types.def: Likewise.
2181
2182 2008-02-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2183
2184         PR fortran/35223
2185         * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
2186         (gfc_simplify_ibset): Remove call to range_check.
2187         (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
2188         (gfc_simplify_real): Add call gfc_clear_ts to initialize the
2189         temporary gfc_typspec variable.
2190
2191 2008-02-24  Tobias Schlüter  <tobi@gcc.gnu.org>
2192
2193         * trans-array.c (gfc_conv_descriptor_data_get,
2194         gfc_conv_descriptor_data_set_internal,
2195         gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
2196         gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
2197         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
2198         gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
2199         gfc_conv_array_transpose, gfc_grow_array,
2200         gfc_trans_array_constructor_subarray,
2201         gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
2202         gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
2203         gfc_conv_array_initializer, gfc_trans_array_bounds,
2204         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2205         gfc_get_dataptr_offset, gfc_conv_array_parameter,
2206         gfc_trans_dealloc_allocated, get_full_array_size,
2207         gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
2208         instead of buildN.
2209         * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
2210         gfc_conv_component_ref, gfc_conv_cst_int_power,
2211         gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
2212         * trans-common.c (create_common): Likewise.
2213         * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
2214         Likewise.
2215         * trans-const.c (gfc_conv_constant_to_tree): Likewise.
2216         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
2217         gfc_trans_integer_select, gfc_trans_character_select,
2218         gfc_trans_forall_loop, compute_overall_iter_number,
2219         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
2220         gfc_trans_deallocate): Likewise.
2221         * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
2222         gfc_allocate_with_status, gfc_allocate_array_with_status,
2223         gfc_deallocate_with_status): Likewise.
2224         * f95-lang.c (gfc_truthvalue_conversion): Likewise.
2225         * trans-io.c (set_parameter_const, set_parameter_value,
2226         set_parameter_ref, set_string, set_internal_unit, io_result,
2227         set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
2228         * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
2229         gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
2230         gfc_generate_function_code): Likewise.
2231         * convert.c (convert): Likewise.
2232         * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
2233         build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
2234         gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
2235         gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
2236         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2237         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
2238         gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
2239         gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
2240         gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
2241         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
2242         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2243         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
2244         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2245         gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
2246         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
2247         gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
2248         gfc_conv_intrinsic_repeat): Likewise.
2249
2250 2008-02-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2251
2252         PR target/25477
2253         * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
2254         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
2255         * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
2256         gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
2257         * trans-decl.c: Likewise.
2258
2259 2008-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2260
2261         PR fortran/35059
2262         * expr.c (find_array_element): Modify traversing the constructor to
2263         avoid trying to access NULL memory pointed to by next for the
2264         last element. (find_array_section): Exit while loop if cons->next is
2265         NULL.
2266
2267 2008-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2268
2269         PR fortran/34907
2270         * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
2271         structure.
2272         (gfc_resolve_aint): Likewise.
2273         (gfc_resolve_anint): Likewise.
2274         (gfc_resolve_besn): Likewise.
2275         (gfc_resolve_cshift): Likewise.
2276         (gfc_resolve_ctime): Likewise.
2277         (gfc_resolve_eoshift): Likewise.
2278         (gfc_resolve_index_func): Likewise.
2279         (gfc_resolve_isatty): Likewise.
2280         (gfc_resolve_malloc): Likewise.
2281         (gfc_resolve_rrspacing): Likewise.
2282         (gfc_resolve_scale): Likewise.
2283         (gfc_resolve_set_exponent): Likewise.
2284         (gfc_resolve_spacing): Likewise.
2285         (gfc_resolve_spacing): Likewise.
2286         (gfc_resolve_fgetc): Likewise.
2287         (gfc_resolve_fputc): Likewise.
2288         (gfc_resolve_ftell): Likewise.
2289         (gfc_resolve_ttynam): Likewise.
2290         (gfc_resolve_alarm_sub): Likewise.
2291         (gfc_resolve_mvbits): Likewise.
2292         (gfc_resolve_getarg): Likewise.
2293         (gfc_resolve_signal_sub): Likewise.
2294         (gfc_resolve_exit): Likewise.
2295         (gfc_resolve_flush): Likewise.
2296         (gfc_resolve_free): Likewise.
2297         (gfc_resolve_ctime_sub): Likewise.
2298         (gfc_resolve_fgetc_sub): Likewise.
2299         (gfc_resolve_fputc_sub): Likewise.
2300         (gfc_resolve_fseek_sub): Likewise.
2301         (gfc_resolve_ftell_sub): Likewise.
2302         (gfc_resolve_ttynam_sub): Likewise.
2303
2304 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2305
2306         * gfc-internals.texi: Fix typos and markup nits.
2307         * gfortran.texi: Likewise.
2308         * intrinsic.texi: Likewise.
2309
2310 2008-02-21  Richard Guenther  <rguenther@suse.de>
2311
2312         * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
2313         as unary PAREN_EXPR for real and complex typed expressions.
2314         (gfc_conv_unary_op): Fold the built tree.
2315
2316 2008-02-20  Tobias Burnus  <burnus@net-b.de>
2317
2318         PR fortran/34997
2319         * match.c (gfc_match_name): Improve error message for '$'.
2320
2321 2008-02-19  Daniel Franke  <franke.daniel@gmail.com>
2322
2323         PR fortran/35030
2324         * expr.c (gfc_check_pointer_assign): Add type and kind information
2325         to type-mismatch message.
2326         (gfc_check_assign): Unify error messages.
2327
2328 2008-02-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2329
2330         PR fortran/34952
2331         * gfortran.texi: Create new section for unimplemented extensions.
2332         Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
2333         Remove "smaller projects" list. Fix a few typos.
2334
2335 2008-02-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2336
2337         * intrinsic.texi: Rename INDEX node to avoid clashing with
2338         index.html on case-insensitive systems.
2339
2340 2008-02-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2341
2342         PR fortran/35150
2343         * trans-expr.c (gfc_conv_function_call): Force evaluation of
2344         se->expr.
2345
2346 2008-02-10  Daniel Franke  <franke.daniel@gmail.com>
2347
2348         PR fortran/35019
2349         * lang.opt: Allow '-J<dir>' next to '-J <dir>', 
2350         likewise '-I <dir>' and '-I<dir>'.
2351
2352 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2353
2354         PR other/35107
2355         * Make-lang.in (f951): Add $(GMPLIBS).
2356
2357 2008-02-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2358
2359         PR fortran/35037
2360         * trans-common.c (build_field): Mark fields as volatile when needed.
2361
2362 2008-02-05  Tobias Burnus  <burnus@net-b.de>
2363
2364         PR fortran/35093
2365         * data.c (gfc_assign_data_value): Only free "size" if
2366         it has not already been freed.
2367
2368 2008-02-05  Paul Thomas  <pault@gcc.gnu.org>
2369
2370         PR fortran/34945
2371         * array.c (match_array_element_spec): Remove check for negative
2372         array size.
2373         (gfc_resolve_array_spec): Add check for negative size.
2374
2375 2008-02-05  Paul Thomas  <pault@gcc.gnu.org>
2376
2377         PR fortran/32315
2378         * data.c (gfc_assign_data_value): Add bounds check for array
2379         references.
2380
2381 2008-02-04  Daniel Franke  <franke.daniel@gmail.com>
2382
2383         * resolve.c (resolve_where): Fix typo.
2384         (gfc_resolve_where_code_in_forall): Likewise.
2385
2386 2008-02-03  Paul Thomas  <pault@gcc.gnu.org>
2387
2388         PR fortran/32760
2389         * resolve.c (resolve_allocate_deallocate): New function.
2390         (resolve_code): Call it for allocate and deallocate.
2391         * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
2392         the checking of the STAT tag and put in above new function.
2393         * primary,c (match_variable): Do not fix flavor of host
2394         associated symbols yet if the type is not known.
2395
2396 2008-01-31  Paul Thomas  <pault@gcc.gnu.org>
2397
2398         PR fortran/34910
2399         * expr.c (gfc_check_assign): It is an error to assign
2400         to a sibling procedure.
2401
2402 2008-01-30  Paul Thomas  <pault@gcc.gnu.org>
2403
2404         PR fortran/34975
2405         * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
2406         delete_symtree to gfc_delete_symtree.
2407         * gfortran.h : Add prototype for gfc_delete_symtree.
2408         * module.c (load_generic_interfaces): Transfer symbol to a
2409         unique symtree and delete old symtree, instead of renaming.
2410         (read_module): The rsym and the found symbol are the same, so
2411         the found symtree can be deleted.
2412
2413         PR fortran/34429
2414         * decl.c (match_char_spec): Remove the constraint on deferred
2415         matching of functions and free the length expression.
2416         delete_symtree to gfc_delete_symtree.
2417         (gfc_match_type_spec): Whitespace.
2418         (gfc_match_function_decl): Defer characteristic association for
2419         all types except BT_UNKNOWN.
2420         * parse.c (decode_specification_statement): Only derived type
2421         function matching is delayed to the end of specification.
2422
2423 2008-01-28  Tobias Burnus  <burnus@net-b.de>
2424
2425         PR libfortran/34980
2426         * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
2427
2428 2008-01-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2429
2430         PR fortran/34990
2431         * array.c (gfc_check_constructor_type): Revert clearing the expression.
2432
2433 2008-01-26  Tobias Burnus  <burnus@net-b.de>
2434
2435         PR fortran/34848
2436         * trans-expr.c (gfc_conv_function_call): Don't call
2437         gfc_add_interface_mapping if the expression is NULL.
2438
2439 2008-01-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2440
2441         PR fortran/31610
2442         * trans-array.c (gfc_trans_create_temp_array): Remove call to
2443         gcc_assert (integer_zerop (loop->from[n])).
2444
2445 2008-01-25  Daniel Franke  <franke.daniel@gmail.com>
2446
2447         PR fortran/34661
2448         * resolve.c (resolve_where): Added check if user-defined assignment 
2449         operator is an elemental subroutine.
2450         (gfc_resolve_where_code_in_forall): Likewise.
2451
2452 2008-01-24  Daniel Franke  <franke.daniel@gmail.com>
2453
2454         PR fortran/33375
2455         PR fortran/34858
2456         * gfortran.h: Revert changes from 2008-01-17.
2457         * match.c: Likewise.
2458         * symbol.c: Likewise.
2459         (gfc_undo_symbols): Undo namespace changes related to common blocks.
2460
2461 2008-01-24  Daniel Franke  <franke.daniel@gmail.com>
2462
2463         PR fortran/34202
2464         * data.c (formalize_structure_cons): Skip formalization on
2465         empty structures.
2466
2467 2008-01-24  Daniel Franke  <franke.daniel@gmail.com>
2468
2469         * gfortran.texi (OpenMP): Extended existing documentation.
2470         (contributors): Added major contributors of 2008 that were
2471         not listed yet.
2472         (proposed extensions): Removed implemented items.
2473
2474 2008-01-24  Paul Thomas  <pault@gcc.gnu.org>
2475
2476         PR fortran/34872
2477         * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS  is
2478         seen, check for a statement label and, if present, delete it
2479         and set the locus to the start of the statement.
2480
2481 2008-01-22  Paul Thomas  <pault@gcc.gnu.org>
2482
2483         PR fortran/34875
2484         * trans-io.c (gfc_trans_transfer): If the array reference in a
2485         read has a vector subscript, use gfc_conv_subref_array_arg to
2486         copy back the temporary.
2487
2488 2008-01-22  Tobias Burnus  <burnus@net-b.de>
2489
2490         PR fortran/34848
2491         * interface.c (compare_actual_formal): Fix adding type
2492         to missing_arg_type for absent optional arguments.
2493
2494 2008-01-22  Tobias Burnus  <burnus@net-b.de>
2495
2496         PR fortran/34907
2497         * parse.c (parse_spec): Change = into ==.
2498
2499 2008-01-22  Daniel Franke  <franke.daniel@gmail.com>
2500
2501         PR fortran/34915
2502         * expr.c (check_elemental): Fix check for valid data types.
2503
2504 2008-01-22  Tobias Burnus  <burnus@net-b.de>
2505
2506         PR fortran/34899
2507         * scanner.c (load_line): Support <tab><digit> continuation lines.
2508         * invoke.texi (-Wtabs): Document this.
2509
2510 2008-01-22  Paul Thomas  <pault@gcc.gnu.org>
2511
2512         PR fortran/34896
2513         * module.c (read_module): Set use_rename attribute.
2514
2515 2007-01-21  Tobias Burnus  <burnus@net-b.de>
2516
2517         PR fortran/34901
2518         * interface.c (compare_parameter): Improved error message
2519         for arguments of same type and mismatched kinds.
2520
2521 2008-01-20  Paul Thomas  <pault@gcc.gnu.org>
2522
2523         PR fortran/34861
2524         * resolve.c (resolve_entries): Do not do an array bounds check
2525         if the result symbols are the same.
2526
2527         PR fortran/34854
2528         * module.c (read_module) : Hide the symtree of the previous
2529         version of the symbol if this symbol is renamed.
2530
2531 2008-01-20  Paul Thomas  <pault@gcc.gnu.org>
2532
2533         PR fortran/34784
2534         * array.c (gfc_check_constructor_type): Clear the expression ts
2535         so that the checking starts from the deepest level of array
2536         constructor.
2537         * primary.c (match_varspec): If an unknown type is changed to
2538         default character and the attempt to match a substring fails,
2539         change it back to unknown.
2540
2541         PR fortran/34785
2542         * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
2543         NULL for an array constructor, use the cl.length expression to
2544         build it.
2545         (gfc_conv_array_parameter): Change call to gfc_evaluate_now to
2546         a tree assignment.
2547
2548 2008-01-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
2549
2550         PR fortran/34817
2551         PR fortran/34838
2552         * iresolve.c (gfc_resolve_all):  Remove conversion of mask
2553         argument to kind=1 by removing call to resolve_mask_arg().
2554         (gfc_resolve_any):  Likewise.
2555
2556 2008-01-19  Tobias Burnus  <burnus@net-b.de>
2557
2558         PR fortran/34760
2559         * primary.c (match_variable): Handle FL_UNKNOWN without
2560         uneducated guessing.
2561         (match_variable): Improve error message.
2562
2563 2008-01-18  Tobias Burnus  <burnus@net-b.de>
2564
2565         PR fortran/32616
2566         * interface.c (get_expr_storage_size): Return storage size
2567         for array element designators.
2568         (compare_actual_formal): Reject unequal string sizes for
2569         assumed-shape dummy arguments. And fix error message for
2570         array-sections with vector subscripts.
2571
2572 2008-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2573
2574         PR fortran/34556
2575         * simplify.c (is_constant_array_expr): New static function that returns
2576         true if the given expression is an array and is constant.
2577         (gfc_simplify_reshape): Use new function.
2578
2579 2008-01-17  H.J. Lu  <hongjiu.lu@intel.com>
2580
2581         PR fortran/33375
2582         * symbol.c (free_common_tree): Renamed to ...
2583         (gfc_free_common_tree): This.  Remove static.
2584         (gfc_free_namespace): Updated.
2585
2586         * gfortran.h (gfc_free_common_tree): New.
2587
2588         * match.c (gfc_match_common): Call gfc_free_common_tree () with
2589         gfc_current_ns->common_root and set gfc_current_ns->common_root
2590         to NULL on syntax error.
2591
2592 2008-01-18  Richard Sandiford  <rsandifo@nildram.co.uk>
2593
2594         PR fortran/34686
2595         * trans-expr.c (gfc_conv_function_call): Use proper
2596         type for returned character pointers.
2597
2598 2008-01-17  Paul Thomas  <pault@gcc.gnu.org>
2599
2600         PR fortran/34429
2601         PR fortran/34431
2602         PR fortran/34471
2603         * decl.c : Remove gfc_function_kind_locus and
2604         gfc_function_type_locus. Add gfc_matching_function.
2605         (match_char_length): If matching a function and the length
2606         does not match, return MATCH_YES and try again later.
2607         (gfc_match_kind_spec): The same.
2608         (match_char_kind): The same.
2609         (gfc_match_type_spec): The same for numeric and derived types.
2610         (match_prefix): Rename as gfc_match_prefix.
2611         (gfc_match_function_decl): Except for function valued character
2612         lengths, defer applying kind, type and charlen info until the
2613         end of specification block.
2614         gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
2615         parse.c (decode_specification_statement): New function.
2616         (decode_statement): Call it when a function has kind = -1. Set
2617         and reset gfc_matching function, as function statement is being
2618         matched.
2619         (match_deferred_characteristics): Simplify with a single call
2620         to gfc_match_prefix. Do appropriate error handling. In any
2621         case, make sure that kind = -1 is reset or corrected.
2622         (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
2623         Throw an error if kind = -1 after last specification statement.
2624         parse.h : Prototype for gfc_match_prefix.
2625
2626 2008-01-16  Tobias Burnus  <burnus@net-b.de>
2627
2628         PR fortran/34796
2629         * interface.c (compare_parameter): Allow AS_DEFERRED array
2630         elements and reject attr.pointer array elemenents.
2631         (get_expr_storage_size): Return storage size of elements of
2632         assumed-shape and pointer arrays.
2633
2634 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
2635
2636         * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
2637         for flag_tree_parallelize_loops.
2638
2639 2008-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
2640
2641         PR libfortran/34671
2642         * iresolve.c (gfc_resolve_all):  Call resolve_mask_arg.
2643         (gfc_resolve_any):  Likewise.
2644         (gfc_resolve_count):  Likewise.  Don't append kind of
2645         argument to function name.
2646
2647 2008-01-13  Tobias Burnus  <burnus@net-b.de>
2648
2649         PR fortran/34665
2650         * resolve.c (resolve_actual_arglist): For expressions,
2651         also check for assume-sized arrays.
2652         * interface.c (compare_parameter): Move F2003 character checks
2653         here, print error messages here, reject elements of
2654         assumed-shape array as argument to dummy arrays.
2655         (compare_actual_formal): Update for the changes above.
2656
2657 2008-01-13  Tobias Burnus  <burnus@net-b.de>
2658
2659         PR fortran/34763
2660         * decl.c (contained_procedure): Only check directly preceeding state.
2661
2662 2008-01-13  Tobias Burnus  <burnus@net-b.de>
2663
2664         PR fortran/34759
2665         * check.c (gfc_check_shape): Accept array ranges of
2666         assumed-size arrays.
2667
2668 2008-01-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2669
2670         PR fortran/34432
2671         * match.c (gfc_match_name): Don't error if leading character is a '(',
2672         just return MATCH_NO.
2673
2674 2008-01-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2675
2676         PR fortran/34722
2677         * trans-io.c (create_dummy_iostat): Commit the symbol.
2678
2679 2008-01-11  Paul Thomas  <pault@gcc.gnu.org>
2680
2681         PR fortran/34537
2682         * simplify.c (gfc_simplify_transfer): Return NULL if the size
2683         of the element is unavailable and only assign character length
2684         to the result, if 'mold' is constant.
2685
2686 2008-01-10  Paul Thomas  <pault@gcc.gnu.org>
2687
2688         PR fortran/34396
2689         * trans-array.c (gfc_trans_array_ctor_element):  Use gfc_trans_string_copy
2690         to assign strings and perform bounds checks on the string length.
2691         (get_array_ctor_strlen): Remove bounds checking.
2692         (gfc_trans_array_constructor): Initialize string length checking.
2693         * trans-array.h : Add prototype for gfc_trans_string_copy.
2694
2695 2008-01-08  Richard Guenther  <rguenther@suse.de>
2696
2697         PR fortran/34706
2698         PR tree-optimization/34683
2699         * trans-types.c (gfc_get_array_type_bounds): Use an array type
2700         with known size for accesses if that is known.
2701
2702 2008-01-08  Paul Thomas  <pault@gcc.gnu.org>
2703
2704         PR fortran/34476
2705         * expr.c (find_array_element): Check that the array bounds are
2706         constant before using them.  Use lower, as well as upper bound.
2707         (check_restricted): Allow implied index variable.
2708
2709 2008-01-08  Paul Thomas  <pault@gcc.gnu.org>
2710
2711         PR fortran/34681
2712         * trans_array.c (gfc_trans_deferred_array): Do not null the
2713         data pointer on entering scope, nor deallocate it on leaving
2714         scope, if the symbol has the 'save' attribute.
2715
2716         PR fortran/34704
2717         * trans_decl.c (gfc_finish_var_decl): Derived types with
2718         allocatable components and an initializer must be TREE_STATIC.
2719
2720 2008-01-07  Paul Thomas  <pault@gcc.gnu.org>
2721
2722         PR fortran/34672
2723         * module.c (write_generic): Rewrite completely.
2724         (write_module): Change call to write_generic.
2725
2726 2008-01-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2727
2728         PR fortran/34659
2729         * scanner.c (load_line): Do not count ' ' as printable when checking for
2730         continuations.
2731
2732 2008-01-06  Paul Thomas  <pault@gcc.gnu.org>
2733
2734         PR fortran/34545
2735         * module.c (load_needed): If the namespace has no proc_name
2736         give it the module symbol.
2737
2738 2008-01-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2739
2740         PR fortran/34387
2741         * trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert
2742         the dummy variable expression, test for NULL, and pass the variable
2743         address to the called function.
2744
2745 2007-01-06  Tobias Burnus  <burnus@net-b.de>
2746
2747         PR fortran/34658
2748         * match.c (gfc_match_common): Remove blank common in
2749         DATA BLOCK warning.
2750         * resolve.c (resolve_common_vars): New function.
2751         (resolve_common_blocks): Move checks to resolve_common_vars
2752         and invoke that function.
2753         (resolve_types): Call resolve_common_vars for blank commons.
2754
2755 2008-01-06  Tobias Burnus  <burnus@net-b.de>
2756
2757         PR fortran/34655
2758         * resolve.c (resolve_equivalence_derived): Reject derived types with
2759         default initialization if equivalenced with COMMON variable.
2760
2761 2008-01-06  Tobias Burnus  <burnus@net-b.de>
2762
2763         PR fortran/34654
2764         * io.c (check_io_constraints): Disallow unformatted I/O for
2765         internal units.
2766
2767 2008-01-06  Tobias Burnus  <burnus@net-b.de>
2768
2769         PR fortran/34660
2770         * resolve.c (resolve_formal_arglist): Reject dummy procedure in
2771         ELEMENTAL functions.
2772
2773 2008-01-06  Tobias Burnus  <burnus@net-b.de>
2774
2775         PR fortran/34662
2776         * interface.c (compare_actual_formal): Reject parameter
2777         actual to intent(out) dummy.
2778
2779 2008-01-04  Tobias Burnus  <burnus@net-b.de>
2780
2781         PR fortran/34557
2782         * primary.c (match_varspec): Gobble whitespace before
2783         checking for '('.