OSDN Git Service

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