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