OSDN Git Service

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