]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/fortran/ChangeLog
contrib/
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
CommitLineData
36eba48c 12008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2
3 * Make-lang.in (gfortranspec.o): Fix dependencies.
4
9864e200 52008-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
e5977c6a 102008-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
f397ca89 152008-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
04ccfa1a 202008-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
1d461789 272008-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
cad0ddcf 332008-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
3fc94dcd 562008-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
844d8493 632008-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
5e1555d4 692008-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
70
71 * invoke.texi: Add documentation for runtime behavior of
72 -fno-range-check.
73
15bb490a 742008-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
471b69d0 812008-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
b84a6ed9 872008-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
6a19fffb 932008-06-23 Jakub Jelinek <jakub@redhat.com>
94
95 PR fortran/36597
96 * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
97
296b5ce9 982008-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
48d8ad5a 1062008-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
d1a39099 1542008-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
f689ee2a 1712008-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
00be3612 1862008-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
bd9c6afe 1932008-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
c24c5fac 1992008-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
dc01006d 2062008-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
f97d54ed 2152008-06-13 Tobias Burnus <burnus@net-b.de>
216
217 PR fortran/36476
218 * decl.c (do_parm): Handle init expression for len=*.
219
24f1d2c4 2202008-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
e5f28034 2262008-06-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
227
228 * cpp.c: Add copyright notice.
229 * cpp.h: Add copyright notice.
230
7dff348f 2312008-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
82fb15c1 2372008-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
ef05b5a5 2432008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
244
58c59e77 245 PR fortran/36420
246 PR fortran/36422
ef05b5a5 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
189ffda5 2512008-06-07 Tobias Burnus <burnus@net-b.de>
252
995e6dad 253 PR fortran/36437
189ffda5 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
2c8e4834 2592008-06-06 Tobias Burnus <burnus@net-b.de>
260
261 * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
262
fd6481cf 2632008-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
da08da69 3472008-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
63986dfb 3542008-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
223f0f57 3622008-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
909b992f 3862008-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
c843de3c 3942008-05-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
395
396 * intrinsic.texi: Revert wrong commit.
397
463f9a16 3982008-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
32006f36 4482008-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
1adbbb09 4532008-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
203dfc57 4602008-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
329f13ad 4732008-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
9472fc77 4982008-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
e1dbb139 5042008-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
2ecc6bc5 5092008-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
2cbaf336 5352008-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
7459ffb0 5422008-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
51bd6479 5472008-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
2d0b3314 5532008-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
b44437b9 5582008-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
d1743da1 7002008-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
7072008-05-17 Tobias Burnus <burnus@net-b.de>
cf37b737 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
d1743da1 7142008-05-17 Tobias Burnus <burnus@net-b.de>
e06f8026 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
35415f9d 7212008-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
a35bedd5 7392008-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
ee7aee2a 7442008-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
7e221851 7572008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
758
ee7aee2a 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.
7e221851 766
f40b44c0 7672008-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
34ea34c7 7742008-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
a48103f3 7812008-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
7892008-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
7972008-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
40b806de 8032008-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
e6fba9d7 8412008-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
3d235846 8612008-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
9003d15c 8672008-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
538eb341 8742008-05-14 Paul Thomas <pault@gcc.gnu.org>
875
9003d15c 876 PR fortran/36233
877 * interface.c (compare_actual_formal): Do not check sizes if the
878 actual is BT_PROCEDURE.
538eb341 879
356056cf 8802008-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
03910013 8872008-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
8ce49018 8932008-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
4ab0baa2 8992008-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
b4330711 9072008-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
a65f65bc 9132008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
914
915 PR fortran/36197
916 * module.c (quote_string): Fix sprintf format.
917
3d65dd3f 9182008-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
9c2a0c05 9252008-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
c32f863c 9302008-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
bcf5de7a 9842008-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
42f2ba28 9912008-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
9962008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
e0be6f02 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
36fb1705 10432008-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
c5c4ac6d 10522008-05-03 Janus Weil <jaydub66@gmail.com>
1053
1054 * misc.c (gfc_clear_ts): Set interface to NULL.
1055
f5098fb5 10562008-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
37030e5a 10672008-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
2cd2bb5c 10732008-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
59e2a584 10822008-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
9ec0fbe1 11002008-04-28 Paul Thomas <pault@gcc.gnu.org>
1101
59e2a584 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.
9ec0fbe1 1105
2f1b79be 11062008-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
18d50ae6 11132008-04-25 Jan Hubicka <jh@suse.cz>
1114
1115 * trans-decl.c (trans_function_start): Update.
1116
db96818c 11172008-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
4b8fe540 11282008-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
c7d4e749 11352008-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
d3bc173d 11472008-04-21 Steve Ellcey <sje@cup.hp.com>
1148
1149 * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
1150
798b415d 11512008-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
c2c16ba2 11572008-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
89e89e42 11632008-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
fab96bae 11812008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1182
b2d026d9 1183 PR fortran/35892
fab96bae 1184 * trans-common.c (create_common): Revert patch causing regression.
1185
2231e638 11862008-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
6bd88715 11922008-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
a1865efc 11982008-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
05db9fcb 12042008-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
766398ac 12112008-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
15618afa 12222008-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
87f1fed5 12392008-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
296b5ce9 12472008-04-06 Tobias Schlüter <tobi@gcc.gnu.org>
e16e8243 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
a2a5c67f 12552008-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
00c6e780 12602008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1261
1262 * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
1263
6c4b9654 12642008-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.
577c9781 1278 * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
6c4b9654 1279
ff6af856 12802008-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
23632bd1 13192008-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
6fb2153a 13252008-04-03 Tom Tromey <tromey@redhat.com>
1326
1327 * Make-lang.in (fortran_OBJS): New variable.
1328
32020b10 13292008-04-03 Paolo Bonzini <bonzini@gnu.org>
1330
6c4b9654 1331 * f95-lang.c (insert_block): Kill.
32020b10 1332
a12691f0 13332008-04-01 George Helffrich <george@gcc.gnu.org>
1334
ae093573 1335 PR fortran/35154, fortran/23057
a12691f0 1336 * trans-common.c (create_common): Add decl to function
1337 chain to preserve identifier scope in debug output.
1338
eae7da65 13392008-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
77759c92 13452008-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
680e3123 13512008-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
67fcbf2b 13612008-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
735112d5 13702008-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
40da7075 13752008-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
21886706 13812008-03-27 Tom Tromey <tromey@redhat.com>
1382
1383 * Make-lang.in: Revert automatic dependency patch.
1384
277b05bb 13852008-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
9277c291 13942008-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
296b5ce9 14062008-03-23 Tobias Schlüter <tobi@gcc.gnu.org>
0bf2cc60 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
a569a60f 14132008-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
c3e2d7e5 14192008-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
f176ef42 14252008-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
05035f4d 14312008-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
c616456b 14372008-03-11 Paolo Bonzini <bonzini@gnu.org>
1438
05035f4d 1439 * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
1440 (gfc_be_parse_file): Call clear_binding_stack from here.
c616456b 1441 (gfc_clear_binding_stack): Rename to clear_binding_stack.
1442
f714d904 14432008-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
2c3b9819 14492008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1450
1451 * invoke.texi (Error and Warning Options): Document
1452 -Wline-truncation.
1453
0f8b1742 14542008-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
2dcae6c7 14602008-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
ff4425cf 14712008-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
e46a4556 14992008-03-02 Jakub Jelinek <jakub@redhat.com>
1500
1501 * gfortranspec.c (lang_specific_driver): Update copyright notice
1502 dates.
1503
52179f31 15042008-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
fa7b6574 15162008-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
36efa756 15292008-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
34e106da 15372008-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
187a3ad6 15632008-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
9c85a98a 15712008-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
8fb9e3cd 15892008-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
296b5ce9 16042008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
f3db21c0 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
59ef97a3 16592008-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
296b5ce9 16682008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
1f15b56d 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
42f2ba28 17272008-02-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6aee6ac8 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
59ef97a3 17362008-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
17442008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
a4871ae0 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
2dd2bcbd 17812008-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
751ff693 17872008-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
46c5f6e7 17932008-02-20 Tobias Burnus <burnus@net-b.de>
1794
1795 PR fortran/34997
1796 * match.c (gfc_match_name): Improve error message for '$'.
1797
a046ed2b 17982008-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
3494c8d0 18052008-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
70dabb1d 18122008-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
6b956f99 18172008-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
8790974d 18232008-02-10 Daniel Franke <franke.daniel@gmail.com>
1824
a046ed2b 1825 PR fortran/35019
8790974d 1826 * lang.opt: Allow '-J<dir>' next to '-J <dir>',
1827 likewise '-I <dir>' and '-I<dir>'.
1828
6ca01c3b 18292008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1830
1831 PR other/35107
1832 * Make-lang.in (f951): Add $(GMPLIBS).
1833
9bb29b55 18342008-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
8b13bffd 18392008-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
5b83554b 18452008-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
f106ab4b 18522008-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
847fe274 18582008-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
a9e7fd6a 18632008-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
969664a9 18732008-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
8d39570e 18792008-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
27f029aa 19002008-01-28 Tobias Burnus <burnus@net-b.de>
1901
1902 PR libfortran/34980
1903 * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
1904
dcd80807 19052008-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
079d3acc 19102008-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
cbac92d6 19162008-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
5a82d68e 19222008-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
8342527a 19292008-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
2b119350 19382008-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
7f04a1ee 19442008-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
19512008-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
25d7376a 19582008-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
624547f6 19652008-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
ad137586 19712008-01-22 Tobias Burnus <burnus@net-b.de>
1972
1973 PR fortran/34907
1974 * parse.c (parse_spec): Change = into ==.
1975
769e92a1 19762008-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
9357a094 19812008-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
cc24761c 19872008-01-22 Paul Thomas <pault@gcc.gnu.org>
1988
1989 PR fortran/34896
1990 * module.c (read_module): Set use_rename attribute.
1991
e1361bdf 19922007-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
82190250 19982008-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
f1ce7f3e 20082008-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
d48e2d18 20252008-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
f503118e 20332008-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
1706059b 20402008-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
e2dccf8a 20492008-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
922715fd 20562008-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
eeaa887f 20692008-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
077932f9 20752008-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
d9c7bfaa 21032008-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
159a8dc3 21112008-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
76b9f891 21162008-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
67170043 21242008-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
1c343287 21342008-01-13 Tobias Burnus <burnus@net-b.de>
2135
2136 PR fortran/34763
2137 * decl.c (contained_procedure): Only check directly preceeding state.
2138
19efd701 21392008-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
268a9d68 21452008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2146
4ba276ac 2147 PR fortran/34432
268a9d68 2148 * match.c (gfc_match_name): Don't error if leading character is a '(',
2149 just return MATCH_NO.
2150
094e2912 21512008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2152
2153 PR fortran/34722
2154 * trans-io.c (create_dummy_iostat): Commit the symbol.
2155
0a0a6750 21562008-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
88137677 21632008-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
0b1c894b 21722008-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
43b3b93d 21792008-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
1172203c 21862008-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
f763d89a 21972008-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
836f52f7 22032008-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
7215ebb3 22092008-01-06 Paul Thomas <pault@gcc.gnu.org>
02c8c8d3 2210
7215ebb3 2211 PR fortran/34545
2212 * module.c (load_needed): If the namespace has no proc_name
2213 give it the module symbol.
02c8c8d3 2214
52c2abc3 22152008-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
1f2d591b 22222007-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
b4bcbcd7 22322008-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
2a7aa2f9 22382008-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
1d0109d5 22442008-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
6da3802f 22502008-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
d0f16f3c 22562008-01-04 Tobias Burnus <burnus@net-b.de>
2257
2258 PR fortran/34557
2259 * primary.c (match_varspec): Gobble whitespace before
2260 checking for '('.