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