re PR fortran/41022 ([F03] procedure pointer components as actual arguments)
[gcc.git] / gcc / fortran / ChangeLog
1 2009-08-11 Janus Weil <janus@gcc.gnu.org>
2
3 PR fortran/41022
4 * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
5 components as actual arguments.
6
7 2009-08-10 Daniel Kraft <d@domob.eu>
8
9 PR fortran/37425
10 * gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op.
11 (gfc_find_typebound_user_op): New routine.
12 (gfc_find_typebound_intrinsic_op): Ditto.
13 (gfc_check_operator_interface): Now public routine.
14 * decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=).
15 * interface.c (check_operator_interface): Made public, renamed to
16 `gfc_check_operator_interface' accordingly and hand in the interface
17 as gfc_symbol rather than gfc_interface so it is useful for type-bound
18 operators, too. Return boolean result.
19 (gfc_check_interfaces): Adapt call to `check_operator_interface'.
20 * symbol.c (gfc_get_namespace): Initialize new field `tb_op'.
21 (gfc_free_namespace): Free `tb_uop_root'-based tree.
22 (find_typebound_proc_uop): New helper function.
23 (gfc_find_typebound_proc): Use it.
24 (gfc_find_typebound_user_op): New method.
25 (gfc_find_typebound_intrinsic_op): Ditto.
26 * resolve.c (resolve_tb_generic_targets): New helper function.
27 (resolve_typebound_generic): Use it.
28 (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New.
29 (resolve_typebound_procedures): Resolve operators, too.
30 (check_uop_procedure): New, code from gfc_resolve_uops.
31 (gfc_resolve_uops): Moved main code to new `check_uop_procedure'.
32
33 2009-08-10 Janus Weil <janus@gcc.gnu.org>
34
35 PR fortran/40940
36 * decl.c (gfc_match_type_spec): Match CLASS statement and warn about
37 missing polymorphism.
38 * gfortran.h (gfc_typespec): Add field 'is_class'.
39 * misc.c (gfc_clear_ts): Initialize 'is_class' to zero.
40 * resolve.c (type_is_extensible): New function to check if a derived
41 type is extensible.
42 (resolve_fl_variable_derived): Add error checks for CLASS variables.
43 (resolve_typebound_procedure): Disallow non-polymorphic passed-object
44 dummy arguments, turning warning into error.
45 (resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic
46 passed-object dummy arguments for procedure pointer components,
47 turning warning into error. Add error check for CLASS components.
48
49 2009-08-05 Tobias Burnus <burnus@net-b.de>
50
51 PR fortran/40955
52 * gfortran.h (ext_attr_id_t): Add typedef for this enum.
53 (gfc_add_ext_attribute): Use it.
54 * decl.c (gfc_match_gcc_attributes): Ditto.
55 * expr.c (gfc_check_pointer_assign): Ditto.
56 * symbol.c (gfc_add_ext_attribute): Ditto.
57 (gfc_copy_attr): Copy also ext_attr.
58 * resolve.c (resolve_fl_derived,resolve_symbol): Ditto.
59 * module.c (mio_symbol_attribute): Save ext_attr in the mod file.
60
61 2009-08-05 Tobias Burnus <burnus@net-b.de>
62
63 PR fortran/40969
64 Revert:
65 2009-08-04 Tobias Burnus <burnus@net-b.de>
66
67 PR fortran/40949
68 * trans-types.c (gfc_get_function_type): Fix typelist of
69 functions without argument.
70
71 2009-08-05 Paul Thomas <pault@gcc.gnu.org>
72
73 PR fortran/40847
74 * iresolve.c (gfc_resolve_transfer): Correct error in 'mold'
75 character length for case where length expresson is NULL.
76
77 2009-08-04 Tobias Burnus <burnus@net-b.de>
78
79 PR fortran/40949
80 * trans-types.c (gfc_get_function_type): Fix typelist of
81 functions without argument.
82
83 2009-08-04 Paul Thomas <pault@gcc.gnu.org>
84
85 PR fortran/40875
86 * decl.c (add_init_expr_to_sym): Character symbols can only be
87 initialized with character expressions.
88
89 2009-08-02 Janus Weil <janus@gcc.gnu.org>
90
91 PR fortran/40881
92 * decl.c (match_char_length): Warn about old-style character length
93 declarations.
94 * match.c (match_arithmetic_if,gfc_match_if): Modify warning message
95 for arithmetic if.
96 (gfc_match_goto): Warn about computed gotos.
97 (gfc_match_return): Warn about alternate return.
98 (gfc_match_st_function): Warn about statement functions.
99 * resolve.c (resolve_fl_procedure): Modify warning message for
100 assumed-length character functions.
101
102 2009-08-01 Paul Thomas <pault@gcc.gnu.org>
103
104 PR fortran/40011
105 * error.c : Add static flag 'warnings_not_errors'.
106 (gfc_error): If 'warnings_not_errors' is set, branch to code
107 from gfc_warning.
108 (gfc_clear_error): Reset 'warnings_not_errors'.
109 (gfc_errors_to_warnings): New function.
110 * options.c (gfc_post_options): If pedantic and flag_whole_file
111 change the latter to a value of 2.
112 * parse.c (parse_module): Add module namespace to gsymbol.
113 (resolve_all_program_units): New function.
114 (clean_up_modules): New function.
115 (translate_all_program_units): New function.
116 (gfc_parse_file): If whole_file, do not clean up module right
117 away and add derived types to namespace derived types. In
118 addition, call the three new functions above.
119 * resolve.c (not_in_recursive): New function.
120 (not_entry_self_reference): New function.
121 (resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN,
122 procedure must not be in the course of being resolved and
123 must return false for the two new functions. Pack away the
124 current derived type list before calling gfc_resolve for the
125 gsymbol namespace. It is unconditionally an error if the ranks
126 of the reference and ther procedure do not match. Convert
127 errors to warnings during call to gfc_procedure_use if not
128 pedantic or legacy.
129 (gfc_resolve): Set namespace resolved flag to -1 during
130 resolution and store current cs_base.
131 * trans-decl.c (gfc_get_symbol_decl): If whole_file compilation
132 substitute a use associated variable, if it is available in a
133 gsymbolnamespace.
134 (gfc_get_extern_function_decl): If the procedure is use assoc,
135 do not attempt to find it in a gsymbol because it could be an
136 interface. If the symbol exists in a module namespace, return
137 its backend_decl.
138 * trans-expr.c (gfc_trans_scalar_assign): If a derived type
139 assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs.
140 * trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a
141 boolean argument. Copy component backend_decls directly if the
142 components are derived types and from_gsym is true.
143 (gfc_get_derived_type): If whole_file copy the derived type from
144 the module if it is use associated, otherwise, if can be found
145 in another gsymbol namespace, use the existing derived type as
146 the TYPE_CANONICAL and build normally.
147 * gfortran.h : Add derived_types and resolved fields to
148 gfc_namespace. Include prototype for gfc_errors_to_warnings.
149
150 2009-07-29 Tobias Burnus <burnus@net-b.de>
151
152 PR fortran/40898
153 * trans-types.c (gfc_get_function_type): Do not add hidden
154 string-length argument for BIND(C) procedures.
155 * trans-decl.c (create_function_arglist): Skip over nonexisting
156 string-length arguments for BIND(C) procedures.
157
158 2009-07-28 Jakub Jelinek <jakub@redhat.com>
159
160 PR fortran/40878
161 * openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of
162 gfc_error to diagnose invalid COLLAPSE arguments.
163
164 2009-07-28 Janus Weil <janus@gcc.gnu.org>
165
166 PR fortran/40882
167 * trans-types.c (gfc_get_ppc_type): For derived types, directly use the
168 backend_decl, instead of calling gfc_typenode_for_spec, to avoid
169 infinte loop.
170 (gfc_get_derived_type): Correctly handle PPCs returning derived types,
171 avoiding infinite recursion.
172
173 2009-07-27 Janus Weil <janus@gcc.gnu.org>
174
175 PR fortran/40848
176 * interface.c (gfc_compare_interfaces): Call 'count_types_test' before
177 'generic_correspondence', and only if checking a generic interface.
178
179 2009-07-27 Tobias Burnus <burnus@net-b.de>
180
181 PR fortran/40851
182 * resolve.c (resolve_symbol): Do not initialize pointer derived-types.
183 * trans-decl.c (init_intent_out_dt): Ditto.
184 (generate_local_decl): No need to set attr.referenced for DT pointers.
185
186 2009-07-26 Tobias Burnus <burnus@net-b.de>
187
188 PR fortran/33197
189 * intrinsic.c (make_generic): Remove assert as "atan" can be
190 both ISYM_ATAN and ISYM_ATAN2.
191 (add_functions): Add two-argument variant of ATAN.
192 * intrinsic.h (gfc_check_atan_2): Add check for it.
193 * intrinsic.texi (ATAN2): Correct and enhance description.
194 (ATAN): Describe two-argument variant of ATAN.
195
196 2009-07-25 Tobias Burnus <burnus@net-b.de>
197 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
198
199 PR fortran/33197
200 * intrinsic.c (add_functions): Support complex arguments for
201 acos,acosh,asin,asinh,atan,atanh.
202 * invoke.texi (ACOS,ACOSH,ASIN,ASINH,ATAN,ATANH): Support
203 complex arguments.
204 * simplify.c (gfc_simplify_acos,gfc_simplify_acosh,
205 gfc_simplify_asin,gfc_simplify_asinh,gfc_simplify_atan,
206 gfc_simplify_atanh,gfc_simplify_atan,gfc_simplify_asinh,
207 gfc_simplify_acosh,gfc_simplify_atanh): Support
208 complex arguments.
209
210 2009-07-25 Richard Guenther <rguenther@suse.de>
211
212 PR fortran/40005
213 * trans-types.c (gfc_get_array_type_bounds): Use
214 build_distinct_type_copy with a proper TYPE_CANONICAL and
215 re-use the type-decl of the original type.
216 * trans-decl.c (build_entry_thunks): Signal cgraph we may not
217 garbage collect.
218 (create_main_function): Likewise.
219 (gfc_generate_function_code): Likewise.
220 * trans-expr.c (gfc_trans_subcomponent_assign): Do not use
221 fold_convert on record types.
222
223 2009-07-25 Janus Weil <janus@gcc.gnu.org>
224
225 PR fortran/39630
226 * decl.c (match_ppc_decl): Implement the PASS attribute for procedure
227 pointer components.
228 (match_binding_attributes): Ditto.
229 * gfortran.h (gfc_component): Add member 'tb'.
230 (gfc_typebound_proc): Add member 'ppc' and make 'pass_arg' const.
231 * module.c (MOD_VERSION): Bump module version.
232 (binding_ppc): New string constants.
233 (mio_component): Only use formal args if component is a procedure
234 pointer and add 'tb' member.
235 (mio_typebound_proc): Include pass_arg and take care of procedure
236 pointer components.
237 * resolve.c (update_arglist_pass): Add argument 'name' and take care of
238 optional arguments.
239 (extract_ppc_passed_object): New function, analogous to
240 extract_compcall_passed_object, but for procedure pointer components.
241 (update_ppc_arglist): New function, analogous to
242 update_compcall_arglist, but for procedure pointer components.
243 (resolve_typebound_generic_call): Added argument to update_arglist_pass.
244 (resolve_ppc_call, resolve_expr_ppc): Take care of PASS attribute.
245 (resolve_fl_derived): Check the PASS argument for procedure pointer
246 components.
247 * symbol.c (verify_bind_c_derived_type): Reject procedure pointer
248 components in BIND(C) types.
249
250 2009-07-24 Janus Weil <janus@gcc.gnu.org>
251
252 PR fortran/40822
253 * array.c (gfc_resolve_character_array_constructor): Use new function
254 gfc_new_charlen.
255 * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec,
256 gfc_match_implicit): Ditto.
257 * expr.c (gfc_simplify_expr): Ditto.
258 * gfortran.h (gfc_new_charlen): New prototype.
259 * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Use new
260 function gfc_new_charlen.
261 * module.c (mio_charlen): Ditto.
262 * resolve.c (gfc_resolve_substring_charlen,
263 gfc_resolve_character_operator,fixup_charlen,resolve_fl_derived,
264 resolve_symbol): Ditto.
265 * symbol.c (gfc_new_charlen): New function to create a new gfc_charlen
266 structure and add it to a namespace.
267 (gfc_copy_formal_args_intr): Make sure ts.cl is present
268 for CHARACTER variables.
269
270 2009-07-24 Jakub Jelinek <jakub@redhat.com>
271
272 PR fortran/40643
273 PR fortran/31067
274 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
275 gfc_conv_intrinsic_minmaxval): Handle Infinities and NaNs properly,
276 optimize.
277 * trans-array.c (gfc_trans_scalarized_loop_end): No longer static.
278 * trans-array.h (gfc_trans_scalarized_loop_end): New prototype.
279
280 2009-07-23 Jakub Jelinek <jakub@redhat.com>
281
282 PR fortran/40839
283 * io.c (gfc_resolve_dt): Add LOC argument. Fail if
284 dt->io_unit is NULL. Return FAILURE after issuing error about
285 negative UNIT number.
286 (match_io_element): Don't segfault if current_dt->io_unit is NULL.
287 * gfortran.h (gfc_resolve_dt): Adjust prototype.
288 * resolve.c (resolve_code): Adjust caller.
289
290 2009-07-22 Paul Thomas <pault@gcc.gnu.org>
291
292 PR fortran/40796
293 * trans-decl.c (generate_local_decl): Unreferenced result
294 variables with allocatable components should be treated like
295 INTENT_OUT dummy variables.
296
297 2009-07-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
298
299 * trans.h (gfc_set_decl_assembler_name): New prototype.
300 * trans-decl.c (gfc_set_decl_assembler_name): New function.
301 (gfc_get_symbol_decl, gfc_get_extern_function_decl,
302 build_function_decl): Use gfc_set_decl_assembler_name instead of
303 SET_DECL_ASSEMBLER_NAME.
304 * trans-common.c (build_common_decl): Use
305 gfc_set_decl_assembler_name instead of SET_DECL_ASSEMBLER_NAME.
306
307 2009-07-21 Richard Guenther <rguenther@suse.de>
308
309 PR fortran/40726
310 * trans-decl.c (gfc_get_extern_function_decl): Do not set
311 DECL_IS_MALLOC for pointer valued functions.
312 (build_function_decl): The same.
313
314 2009-07-19 Steven G. Kargl <kargl@gcc.gnu.org>
315
316 PR fortran/40727
317 * fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that
318 the optional second argument isn't of COMPLEX type.
319
320 2009-07-17 Richard Guenther <rguenther@suse.de>
321
322 PR c/40401
323 * f95-lang.c (gfc_be_parse_file): Do not finalize the CU here.
324 * trans-decl.c (gfc_gimplify_function): Remove.
325 (build_entry_thunks): Do not gimplify here.
326 (create_main_function): Likewise.
327 (gfc_generate_function_code): Likewise.
328
329 2009-07-17 Aldy Hernandez <aldyh@redhat.com>
330 Manuel López-Ibáñez <manu@gcc.gnu.org>
331
332 PR 40435
333 * trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c,
334 trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location
335 argument to fold_{unary,binary,ternary}, fold_build[123],
336 build_call_expr, build_size_arg, build_fold_addr_expr,
337 build_call_array, non_lvalue, size_diffop,
338 fold_build1_initializer, fold_build2_initializer,
339 fold_build3_initializer, fold_build_call_array,
340 fold_build_call_array_initializer, fold_single_bit_test,
341 omit_one_operand, omit_two_operands, invert_truthvalue,
342 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
343 combine_comparisons, fold_builtin_*, fold_call_expr,
344 build_range_check, maybe_fold_offset_to_address, round_up,
345 round_down.
346
347 2009-07-15 Janus Weil <janus@gcc.gnu.org>
348
349 PR fortran/40743
350 * resolve.c (resolve_symbol): Don't resolve the formal namespace of a
351 contained procedure.
352
353 2009-07-14 Taras Glek <tglek@mozilla.com>
354 Rafael Espindola <espindola@google.com>
355
356 * Make-lang.in (fortran.install-plugin): New target for
357 installing plugin headers.
358
359 2009-07-13 H.J. Lu <hongjiu.lu@intel.com>
360
361 * module.c (mio_symbol): Remove the unused variable, formal.
362
363 2009-07-13 Janus Weil <janus@gcc.gnu.org>
364
365 PR fortran/40646
366 * module.c (mio_symbol): If the symbol has formal arguments,
367 the formal namespace will be present.
368 * resolve.c (resolve_actual_arglist): Correctly handle 'called'
369 procedure pointer components as actual arguments.
370 (resolve_fl_derived,resolve_symbol): Make sure the formal namespace
371 is present.
372 * trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal
373 arguments of procedure pointer components.
374
375 2009-07-12 Tobias Burnus <burnus@net-b.de>
376 Philippe Marguinaud <philippe.marguinaud@meteo.fr>
377
378 PR fortran/40588
379 * primary.c (match_charkind_name): Fix condition for $ matching.
380
381 PR libfortran/22423
382 * libgfortran.h: Typedef the GFC_DTYPE_* enum.
383
384 2009-07-11 Tobias Burnus <burnus@net-b.de>
385
386 PR fortran/33197
387 * check.c (gfc_check_fn_rc2008): New function.
388 * intrinsic.h (gfc_check_fn_rc2008): New prototype.
389 * intrinsic.c (add_functions): Add complex tan, cosh, sinh,
390 and tanh.
391
392 2009-07-10 Paul Thomas <pault@gcc.gnu.org>
393
394 PR fortran/39334
395 * primary.c (match_kind_param): Return MATCH_NO if the symbol
396 has no value.
397
398 2008-07-09 Paul Thomas <pault@gcc.gnu.org>
399
400 PR fortran/40629
401 * resolve.c (check_host_association): Use the existing
402 accessible symtree and treat function expressions with
403 symbols that have procedure flavor.
404
405 2009-07-09 Janus Weil <janus@gcc.gnu.org>
406
407 PR fortran/40646
408 * dump-parse-tree.c (show_expr): Renamed 'is_proc_ptr_comp'.
409 * expr.c (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
410 (gfc_check_pointer_assign): Renamed 'is_proc_ptr_comp'.
411 (replace_comp,gfc_expr_replace_comp): New functions, analogous
412 to 'replace_symbol' and 'gfc_expr_replace_symbol', just with components
413 instead of symbols.
414 * gfortran.h (gfc_expr_replace_comp): New prototype.
415 (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
416 * interface.c (compare_actual_formal): Renamed 'is_proc_ptr_comp'.
417 * match.c (gfc_match_pointer_assignment): Ditto.
418 * primary.c (gfc_match_varspec): Handle array-valued procedure pointers
419 and procedure pointer components. Renamed 'is_proc_ptr_comp'.
420 * resolve.c (resolve_fl_derived): Correctly handle interfaces with
421 RESULT statement, and handle array-valued procedure pointer components.
422 (resolve_actual_arglist,resolve_ppc_call,resolve_expr_ppc): Renamed
423 'is_proc_ptr_comp'.
424 * trans-array.c (gfc_walk_function_expr): Ditto.
425 * trans-decl.c (gfc_get_symbol_decl): Security check for presence of
426 ns->proc_name.
427 * trans-expr.c (gfc_conv_procedure_call): Handle array-valued procedure
428 pointer components. Renamed 'is_proc_ptr_comp'.
429 (conv_function_val,gfc_trans_arrayfunc_assign): Renamed
430 'is_proc_ptr_comp'.
431 (gfc_get_proc_ptr_comp): Do not modify the argument 'e', but instead
432 make a copy of it.
433 * trans-io.c (gfc_trans_transfer): Handle array-valued procedure
434 pointer components.
435
436 2009-07-09 Tobias Burnus <burnus@net-b.de>
437
438 PR fortran/40604
439 * intrinsic.c (gfc_convert_type_warn): Set sym->result.
440 * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
441 for optional arguments.
442
443 2009-07-08 Tobias Burnus <burnus@net-b.de>
444
445 PR fortran/40675
446 * simplify.c (gfc_simplify_sign): Handle signed zero correctly.
447 * trans-intrinsic.c (gfc_conv_intrinsic_sign): Support
448 -fno-sign-zero.
449 * invoke.texi (-fno-sign-zero): Add text regarding SIGN intrinsic.
450
451 2008-07-08 Paul Thomas <pault@gcc.gnu.org>
452
453 PR fortran/40591
454 * decl.c (match_procedure_interface): Correct the association
455 or creation of the interface procedure's symbol.
456
457 2009-07-04 Jakub Jelinek <jakub@redhat.com>
458
459 * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer
460 maxloc initialize limit to -huge-1 rather than just -huge.
461
462 2009-07-04 Janus Weil <janus@gcc.gnu.org>
463
464 PR fortran/40593
465 * interface.c (compare_actual_formal): Take care of proc-pointer-valued
466 functions as actual arguments.
467 * trans-expr.c (gfc_conv_procedure_call): Ditto.
468 * resolve.c (resolve_specific_f0): Use the correct ts.
469
470 2009-07-02 Michael Matz <matz@suse.de>
471
472 PR fortran/32131
473 * trans-array.c (gfc_conv_descriptor_stride_get): Return
474 constant one for strides in the first dimension of ALLOCATABLE
475 arrays.
476
477 2009-06-30 Janus Weil <janus@gcc.gnu.org>
478
479 PR fortran/40594
480 * trans-types.c (gfc_get_derived_type): Bugfix, reverting one hunk from
481 r147206.
482
483 2009-06-29 Tobias Burnus <burnus@net-b.de>
484
485 PR fortran/40580
486 * trans-expr.c (gfc_conv_procedure_call): Add -fcheck=pointer check.
487 * libgfortran.h: Add GFC_RTCHECK_POINTER.
488 * invoke.texi (-fcheck): Document new pointer option.
489 * options.c (gfc_handle_runtime_check_option): Handle pointer option.
490
491 * gfortran.texi (C Binding): Improve wording.
492 * iso-c-binding.def: Remove obsolete comment.
493
494 2009-06-29 Paul Thomas <pault@gcc.gnu.org>
495
496 PR fortran/40551
497 * dependency.h : Add second bool* argument to prototype of
498 gfc_full_array_ref_p.
499 * dependency.c (gfc_full_array_ref_p): If second argument is
500 present, return true if last dimension of reference is an
501 element or has unity stride.
502 * trans-array.c : Add NULL second argument to references to
503 gfc_full_array_ref_p.
504 * trans-expr.c : The same, except for;
505 (gfc_trans_arrayfunc_assign): Return fail if lhs reference
506 is not a full array or a contiguous section.
507
508 2009-06-28 Tobias Burnus <burnus@net-b.de>
509 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
510
511 PR fortran/34112
512 * symbol.c (gfc_add_ext_attribute): New function.
513 (gfc_get_sym_tree): New argument allow_subroutine.
514 (gfc_get_symbol,gfc_get_ha_sym_tree,gen_cptr_param,gen_fptr_param
515 gen_shape_param,generate_isocbinding_symbol): Use it.
516 * decl.c (find_special): New argument allow_subroutine.
517 (add_init_expr_to_sym,add_hidden_procptr_result,attr_decl1,
518 match_procedure_in_type,gfc_match_final_decl): Use it.
519 (gfc_match_gcc_attributes): New function.
520 * gfortran.texi (Mixed-Language Programming): New section
521 "GNU Fortran Compiler Directives".
522 * gfortran.h (ext_attr_t): New struct.
523 (symbol_attributes): Use it.
524 (gfc_add_ext_attribute): New prototype.
525 (gfc_get_sym_tree): Update pototype.
526 * expr.c (gfc_check_pointer_assign): Check whether call
527 convention is the same.
528 * module.c (import_iso_c_binding_module, create_int_parameter,
529 use_iso_fortran_env_module): Update gfc_get_sym_tree call.
530 * scanner.c (skip_gcc_attribute): New function.
531 (skip_free_comments,skip_fixed_comments): Use it.
532 (gfc_next_char_literal): Support !GCC$ lines.
533 * resolve.c (check_host_association): Update
534 gfc_get_sym_tree call.
535 * match.c (gfc_match_sym_tree,gfc_match_call): Update
536 gfc_get_sym_tree call.
537 * trans-decl.c (add_attributes_to_decl): New function.
538 (gfc_get_symbol_decl,get_proc_pointer_decl,
539 gfc_get_extern_function_decl,build_function_decl: Use it.
540 * match.h (gfc_match_gcc_attributes): Add prototype.
541 * parse.c (decode_gcc_attribute): New function.
542 (next_free,next_fixed): Support !GCC$ lines.
543 * primary.c (match_actual_arg,check_for_implicit_index,
544 gfc_match_rvalue,gfc_match_rvalue): Update
545 gfc_get_sym_tree call.
546
547 2009-06-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
548
549 * gfortran.h: Define HAVE_mpc_pow.
550 * arith.c (complex_reciprocal, complex_pow): If HAVE_mpc_pow,
551 don't define these functions.
552 (arith_power): If HAVE_mpc_pow, use mpc_pow.
553
554 2009-06-26 Janus Weil <janus@gcc.gnu.org>
555
556 PR fortran/39997
557 PR fortran/40541
558 * decl.c (add_hidden_procptr_result): Copy the typespec to the hidden
559 result.
560 * expr.c (gfc_check_pointer_assign): Enable interface check for
561 procedure pointer assignments where the rhs is a function returning a
562 procedure pointer.
563 * resolve.c (resolve_symbol): If an external procedure with unspecified
564 return type can not be implicitly typed, it must be a subroutine.
565
566 2009-06-24 Janus Weil <janus@gcc.gnu.org>
567
568 PR fortran/40427
569 * gfortran.h (gfc_component): New member 'formal_ns'.
570 (gfc_copy_formal_args_ppc,void gfc_ppc_use): New.
571 * interface.c (gfc_ppc_use): New function, analogous to
572 gfc_procedure_use, but for procedure pointer components.
573 * module.c (MOD_VERSION): Bump module version.
574 (mio_component): Treat formal arguments.
575 (mio_formal_arglist): Changed argument from gfc_symbol to
576 gfc_formal_arglist.
577 (mio_symbol): Changed argument of mio_formal_arglist.
578 * resolve.c (resolve_ppc_call,resolve_expr_ppc): Call gfc_ppc_use,
579 to check actual arguments and treat formal args correctly.
580 (resolve_fl_derived): Copy formal args of procedure pointer components
581 from their interface.
582 * symbol.c (gfc_copy_formal_args_ppc): New function, analogous to
583 gfc_copy_formal_args, but for procedure pointer components.
584
585 2009-06-22 Janus Weil <janus@gcc.gnu.org>
586
587 PR fortran/37254
588 PR fortran/39850
589 * interface.c (compare_parameter): Set implicit type for function
590 actual arguments with BT_UNKNOWN.
591
592 2009-06-22 Tobias Burnus <burnus@net-b.de>
593
594 PR fortran/40472
595 PR fortran/50520
596 * simplify.c (gfc_simplify_spread): Fix the case that source=
597 is a scalar.
598
599 2009-06-22 Paul Thomas <pault@gcc.gnu.org>
600
601 PR fortran/40443
602 * interface.c (gfc_search_interface): Hold back a match to an
603 elementary procedure until all other possibilities are
604 exhausted.
605
606 2009-06-22 Paul Thomas <pault@gcc.gnu.org>
607
608 PR fortran/40472
609 * simplify.c (gfc_simplify_spread): Restrict the result size to
610 the limit for an array constructor.
611
612 2009-06-21 Janus Weil <janus@gcc.gnu.org>
613
614 PR fortran/39850
615 * interface.c (gfc_compare_interfaces): Take care of implicit typing
616 when checking the function attribute. Plus another bugfix.
617 (compare_parameter): Set attr.function and attr.subroutine according
618 to the usage of a procedure as actual argument.
619
620 2009-06-20 Tobias Burnus <burnus@net-b.de>
621
622 PR fortran/40452
623 * trans-decl.c (add_argument_checking): Disable bounds check
624 for allowed argument storage association.
625
626 2009-06-19 Paul Thomas <pault@gcc.gnu.org>
627
628 PR fortran/40440
629 * trans-expr.c (gfc_conv_procedure_call): Do not deallocate
630 allocatable components if the argument is a pointer.
631
632 2009-06-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
633
634 * gfortran.h (gfc_expr): Use mpc_t to represent complex numbers.
635
636 * arith.c, dump-parse-tree.c, expr.c, module.c, resolve.c,
637 simplify.c, target-memory.c, target-memory.h, trans-const.c,
638 trans-expr.c: Convert to mpc_t throughout.
639
640 2009-06-19 Ian Lance Taylor <iant@google.com>
641
642 * cpp.c (struct gfc_cpp_option_data): Give this struct, used for
643 the global variable gfc_cpp_option, a name.
644
645 2009-06-19 Janus Weil <janus@gcc.gnu.org>
646
647 PR fortran/40450
648 * trans-expr.c (gfc_conv_procedure_call): Only add an extra addr_expr
649 to a procedure pointer actual argument, if it is not itself a
650 dummy arg.
651
652 2009-06-18 Janus Weil <janus@gcc.gnu.org>
653
654 PR fortran/40451
655 * resolve.c (resolve_contained_fntype): Prevent implicit typing for
656 procedures with explicit interface.
657 * symbol.c (gfc_check_function_type): Ditto.
658
659 2009-06-16 Ian Lance Taylor <iant@google.com>
660
661 * decl.c (build_struct): Rewrite loop over constructor elements.
662
663 2009-06-16 Janus Weil <janus@gcc.gnu.org>
664
665 PR fortran/36947
666 PR fortran/40039
667 * expr.c (gfc_check_pointer_assign): Call 'gfc_compare_interfaces' with
668 error message.
669 * gfortran.h (gfc_compare_interfaces): Additional argument.
670 * interface.c (operator_correspondence): Removed.
671 (gfc_compare_interfaces): Additional argument to return error message.
672 Directly use the code from 'operator_correspondence' instead of calling
673 the function. Check for OPTIONAL. Some rearrangements.
674 (check_interface1): Call 'gfc_compare_interfaces' without error message.
675 (compare_parameter): Call 'gfc_compare_interfaces' with error message.
676 * resolve.c (check_generic_tbp_ambiguity): Call 'gfc_compare_interfaces'
677 without error message.
678
679 2009-06-16 Tobias Burnus <burnus@net-b.de>
680
681 PR fortran/40383
682 * trans-decl.c (create_function_arglist): Copy formal charlist to
683 have a proper passed_length for -fcheck=bounds.
684
685 2009-06-12 Steven G. Kargl <kargls@comcast.net>
686
687 * arith.c (gfc_enum_initializer): Move function ...
688 * decl.c: ... here. Remove gfc_ prefix and make static.
689 (enumerator_decl): Update function call.
690 * gfortran.h: Remove gfc_enum_initializer prototype.
691
692 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
693
694 * trans-array.c (gfc_trans_allocate_array_storage): Pass
695 location on down.
696 (gfc_trans_array_constructor_value): Same.
697 (gfc_trans_scalarized_loop_end): Same.
698 (gfc_conv_ss_startstride): Same.
699 (gfc_trans_g77_array): Same.
700 (gfc_trans_dummy_array_bias): Same.
701 (gfc_conv_array_parameter): Same.
702 (structure_alloc_comps): Same.
703 * trans-expr.c (gfc_conv_function_call): Same.
704 (fill_with_spaces): Same.
705 (gfc_trans_string_copy): Same.
706 (gfc_trans_scalar_assign): Same.
707 * trans-stmt.c (gfc_trans_goto): Same.
708 (gfc_trans_if_1): Same.
709 (gfc_trans_simple_do): Same.
710 (gfc_trans_do): Same.
711 (gfc_trans_do_while): Same.
712 (gfc_trans_logical_select): Same.
713 (gfc_trans_select): Same.
714 (gfc_trans_forall_loop): Same.
715 (gfc_trans_nested_forall_loop): Same.
716 (generate_loop_for_temp_to_lhs): Same.
717 (generate_loop_for_rhs_to_temp): Same.
718 (gfc_trans_forall_1): Same.
719 (gfc_trans_where_assign): Same.
720 (gfc_trans_where_3): Same.
721 (gfc_trans_allocate): Same.
722 * trans.c (gfc_finish_block): Same.
723 (gfc_trans_runtime_check): Same.
724 (gfc_call_malloc): Same.
725 (gfc_allocate_with_status): Same.
726 (gfc_call_free): Same.
727 (gfc_deallocate_with_status): Same.
728 (gfc_call_realloc): Same.
729 (gfc_trans_code): Same.
730 * trans-decl.c (gfc_init_default_dt): Same.
731 (gfc_generate_constructors): Same.
732 * trans-io.c (gfc_trans_io_runtime_check): Same.
733 * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same.
734 (gfc_conv_intrinsic_fdate): Same.
735 (gfc_conv_intrinsic_ttynam): Same.
736 (gfc_conv_intrinsic_minmax): Same.
737 (gfc_conv_intrinsic_minmax_char): Same.
738 (gfc_conv_intrinsic_anyall): Same.
739 (gfc_conv_intrinsic_count): Same.
740 (gfc_conv_intrinsic_arith): Same.
741 (gfc_conv_intrinsic_minmaxloc): Same.
742 (gfc_conv_intrinsic_minmaxval): Same.
743 (gfc_conv_intrinsic_rrspacing): Same.
744 (gfc_conv_intrinsic_array_transfer): Same.
745 (gfc_conv_intrinsic_trim): Same.
746 (gfc_conv_intrinsic_repeat): Same.
747
748 2009-06-12 Janus Weil <janus@gcc.gnu.org>
749
750 PR fortran/40176
751 * resolve.c (resolve_symbol): Additional error check, preventing an
752 infinite loop.
753
754 2009-06-11 Paul Thomas <pault@gcc.gnu.org>
755
756 PR fortran/40402
757 * resolve.c (next_data_value): It is an error if the value is
758 not constant.
759
760 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
761
762 PR fortran/38718
763 * intrinsic.c (add_functions): Add simplifiers for ISNAN,
764 IS_IOSTAT_END and IS_IOSTAT_EOR.
765 * intrinsic.h (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
766 gfc_simplify_isnan): New prototypes.
767 * intrinsic.c (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
768 gfc_simplify_isnan): New functions.
769
770 2009-06-11 Jakub Jelinek <jakub@redhat.com>
771
772 * interface.c (fold_unary): Rename to...
773 (fold_unary_intrinsic): ... this.
774 (gfc_extend_expr): Adjust caller.
775 (gfc_match_generic_spec): Likewise. Initialize *op to INTRINSIC_NONE
776 to avoid warnings.
777 * expr.c (gfc_simplify_expr): Initialize start and end before calling
778 gfc_extract_int.
779
780 2009-06-10 Dave Korn <dave.korn.cygwin@gmail.com>
781
782 * trans-decl.c (create_main_function): Don't build main decl twice.
783
784 2009-06-09 Tobias Burnus <burnus@net-b.de>
785
786 * trans-decl.c (gfc_generate_function_code): Use gfc_option.rtcheck
787 instead of flag_bounds_check.
788 * intrinsic.texi (ISO_FORTRAN_ENV): Document INT{8,16,32,64} and
789 REAL{32,64,128}.
790
791 2009-06-08 Paul Thomas <pault@gcc.gnu.org>
792
793 * trans-array.h : Replace prototypes for
794 gfc_conv_descriptor_offset, gfc_conv_descriptor_stride,
795 gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound with new
796 prototypes of the same names with _get or _set appended.
797 * trans-array.c : Make the originals of the above static and
798 new functions for the _get and _set functions. Update all the
799 references to these descriptor access functions.
800 * trans-expr.c : Update references to the above descriptor
801 access functions.
802 * trans-intrinsic.c : The same.
803 * trans-openmp.c : The same.
804 * trans-stmt.c : The same.
805
806 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
807
808 * options.c (gfc_post_options): Disable dump_parse_tree
809 during -fcompare-debug-second.
810
811 2009-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
812
813 PR fortran/40008
814 * gfortran.h (gfc_open): Add newunit expression to structure.
815 * io.c (io_tag): Add new unit tag and fix whitespace.
816 (match_open_element): Add matching for newunit.
817 (gfc_free_open): Free the newunit expression.
818 (gfc_resolve_open): Add newunit to resolution and check constraints.
819 (gfc_resolve_close): Add check for non-negative unit.
820 (gfc_resolve_filepos): Likewise.
821 (gfc_resolve_dt): Likewise.
822 * trans-io.c (set_parameter_value): Build runtime checks for unit
823 numbers within range of kind=4 integer. (gfc_trans_open) Set the
824 newunit parameter.
825 * ioparm.def (IOPARM): Define the newunit parameter as a pointer
826 to GFC_INTEGER_4, pint4.
827
828 2009-06-07 Daniel Franke <franke.daniel@gmail.com>
829
830 PR fortran/25104
831 PR fortran/29962
832 * array.c (gfc_append_constructor): Added NULL-check.
833 * check.c (gfc_check_spread): Check DIM.
834 (gfc_check_unpack): Check that the ARRAY arguments provides enough
835 values for MASK.
836 * intrinsic.h (gfc_simplify_spread): New prototype.
837 (gfc_simplify_unpack): Likewise.
838 * intrinsic.c (add_functions): Added new simplifier callbacks.
839 * simplify.c (gfc_simplify_spread): New.
840 (gfc_simplify_unpack): New.
841 * expr.c (check_transformational): Allow additional transformational
842 intrinsics in initialization expression.
843
844 2009-06-07 Daniel Franke <franke.daniel@gmail.com>
845
846 PR fortran/25104
847 PR fortran/29962
848 * check.c (gfc_check_all_any): Check rank of DIM.
849 (gfc_check_count): Likewise.
850 * intrinsic.h (gfc_simplify_all): New prototype.
851 (gfc_simplify_any): Likewise.
852 (gfc_simplify_count): Likewise.
853 (gfc_simplify_sum): Likewise.
854 (gfc_simplify_product): Likewise.
855 * intrinsic.c (add_functions): Added new simplifier callbacks.
856 * simplify.c (transformational_result): New.
857 (simplify_transformation_to_scalar): New.
858 (simplify_transformation_to_array): New.
859 (gfc_count): New.
860 (gfc_simplify_all): New.
861 (gfc_simplify_any): New.
862 (gfc_simplify_count): New.
863 (gfc_simplify_sum): New.
864 (gfc_simplify_product): New.
865 * expr.c (check_transformational): Allow additional transformational
866 intrinsics in initialization expression.
867
868 2009-06-07 Daniel Franke <franke.daniel@gmail.com>
869
870 * check.c (dim_rank_check): Return SUCCESS if DIM=NULL.
871 (gfc_check_lbound): Removed (now) redundant check for DIM=NULL.
872 (gfc_check_minloc_maxloc): Likewise.
873 (check_reduction): Likewise.
874 (gfc_check_size): Likewise.
875 (gfc_check_ubound): Likewise.
876 (gfc_check_cshift): Added missing shape-conformance checks.
877 (gfc_check_eoshift): Likewise.
878 * gfortran.h (gfc_check_conformance): Modified prototype to printf-style.
879 * expr.c (gfc_check_conformance): Accept error-message chunks in
880 printf-style. Changed all callers.
881
882
883 2009-06-07 Daniel Franke <franke.daniel@gmail.com>
884
885 PR fortran/25104
886 PR fortran/29962
887 * intrinsic.h (gfc_simplify_dot_product): New prototype.
888 (gfc_simplify_matmul): Likewise.
889 (gfc_simplify_transpose): Likewise.
890 * intrinsic.c (add_functions): Added new simplifier callbacks.
891 * simplify.c (init_result_expr): New.
892 (compute_dot_product): New.
893 (gfc_simplify_dot_product): New.
894 (gfc_simplify_matmul): New.
895 (gfc_simplify_transpose): New.
896 * expr.c (check_transformational): Allow transformational intrinsics
897 with simplifier in initialization expression.
898
899 2009-06-06 Daniel Franke <franke.daniel@gmail.com>
900
901 PR fortran/37203
902 * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty arrays
903 without padding.
904
905 2009-06-06 Daniel Franke <franke.daniel@gmail.com>
906
907 PR fortran/32890
908 * intrinsic.h (gfc_simplify_pack): New prototype.
909 * intrinsic.c (add_functions): Added
910 simplifier-callback to PACK.
911 * simplify.c (is_constant_array_expr): Moved
912 to beginning of file.
913 (gfc_simplify_pack): New.
914 * check.c (gfc_check_pack): Check that VECTOR has enough elements.
915 Added safeguards for empty arrays.
916
917 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
918
919 * simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref
920 instead of MPC_RE/MPC_IM.
921
922 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
923
924 * trans-decl.c (gfc_build_qualified_array): Don't skip generation
925 of range types.
926 * trans.h (struct lang_type): Add base_decls.
927 (GFC_TYPE_ARRAY_BASE_DECL): New.
928 * trans-types.c (gfc_get_array_type_bounds): Initialize base decls
929 proactively and excessively.
930 (gfc_get_array_descr_info): Use existing base decls if available.
931
932 2009-06-04 Daniel Franke <franke.daniel@gmail.com>
933
934 PR fortran/37203
935 * check.c (gfc_check_reshape): Additional checks for the
936 SHAPE and ORDER arguments.
937 * simplify.c (gfc_simplify_reshape): Converted argument checks
938 to asserts.
939
940 2009-06-03 Tobias Burnus <burnus@net-b.de>
941
942 * gfortran.texi: Add mixed-language programming, mention
943 varying string lengths, some clean up of introduction parts.
944 * intrinsic.texi (instrinsic modules): Create @menu for subsections.
945 (ISO_C_BINDING): Support ISOCBINDING_INT_FAST128_T.
946 * libgfortran.h: Comment to rember to keep gfortran.texi in sync.
947 * iso-c-binding.def: Support ISOCBINDING_INT_FAST128_T.
948
949 2009-06-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
950 Tobias Burnus <burnus@net-b.de>
951
952 * iso-c-binding.def: Use INTMAX_TYPE instead of intmax_type_node.
953 * trans-types.c (init_c_interop_kinds): Remove intmax_type_node.
954
955 2009-06-03 Alexandre Oliva <aoliva@redhat.com>
956
957 * module.c (mio_f2k_derived): Initialize cur.
958
959 2009-06-01 Tobias Burnus <burnus@net-b.de>
960
961 PR fortran/40309
962 * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main".
963 (create_main_function): Set main_identifier_node.
964
965 2009-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
966
967 PR fortran/40019
968 * trans-types.c (gfc_build_uint_type): Make nonstatic.
969 * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New prototypes.
970 * trans-types.h (gfc_build_uint_type): Add prototype.
971 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
972 gfor_fndecl_clz128 and gfor_fndecl_ctz128.
973 * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
974 gfc_conv_intrinsic_trailz): Call the right builtins or library
975 functions, and cast arguments to unsigned types first.
976 * simplify.c (gfc_simplify_leadz): Deal with negative arguments.
977
978 2009-05-27 Ian Lance Taylor <iant@google.com>
979
980 * Make-lang.in (gfortran$(exeext)): Change $(COMPILER) to
981 $(LINKER).
982 (f951$(exeext)): Likewise.
983
984 2009-05-27 Tobias Burnus <burnus@net-b.de>
985
986 PR fortran/40270
987 * trans-decl.c (create_main_function): Mark MAIN__ and
988 argc/argv as TREE_USED and push/pop function_decl context
989 if needed.
990
991 2009-05-26 Tobias Burnus <burnus@net-b.de>
992
993 PR fortran/39178
994 * gfortranspec.c (lang_specific_driver): Stop linking
995 libgfortranbegin.
996 * trans-decl.c (gfc_build_builtin_function_decls): Stop
997 making MAIN__ publicly visible.
998 (gfc_build_builtin_function_decls): Add
999 gfor_fndecl_set_args.
1000 (create_main_function) New function.
1001 (gfc_generate_function_code): Use it.
1002
1003 2009-05-26 Tobias Burnus <burnus@net-b.de>
1004
1005 PR fortran/40246
1006 * match.c (gfc_match_nullify): NULLify freed pointer.
1007
1008 2009-05-26 Ian Lance Taylor <iant@google.com>
1009
1010 * Make-lang.in (gfortranspec.o): Use $(COMPILER).
1011 (gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise.
1012
1013 2009-05-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1014
1015 * gfortran.h (GFC_MPC_RND_MODE): New.
1016 * simplify.c (call_mpc_func): New helper function.
1017 (gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log,
1018 gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support.
1019
1020 2009-05-25 Janus Weil <janus@gcc.gnu.org>
1021
1022 PR fortran/40176
1023 * primary.c (gfc_match_varspec): Handle procedure pointer components
1024 with array return value.
1025 * resolve.c (resolve_expr_ppc): Ditto.
1026 (resolve_symbol): Make sure the interface of a procedure pointer has
1027 been resolved.
1028 * trans-array.c (gfc_walk_function_expr): Handle procedure pointer
1029 components with array return value.
1030 * trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call,
1031 gfc_trans_arrayfunc_assign): Ditto.
1032 (gfc_trans_pointer_assignment): Handle procedure pointer assignments,
1033 where the rhs is a dummy argument.
1034 * trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle
1035 procedure pointer components with array return value.
1036
1037 2009-05-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1038 Dominique Dhumieres
1039
1040 PR fortran/35732
1041 PR fortran/39872
1042 * trans-array.c (gfc_conv_ss_startstride): Add one to index.
1043
1044 2009-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1045
1046 PR fortran/40195
1047 * module.c (read_md5_from_module_file): Close file before returning.
1048
1049 2009-05-18 Janus Weil <janus@gcc.gnu.org>
1050
1051 PR fortran/40164
1052 * primary.c (gfc_match_rvalue): Handle procedure pointer components in
1053 arrays.
1054 * resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and
1055 array references.
1056 (resolve_fl_derived): Procedure pointer components are not required to
1057 have constant array bounds in their return value.
1058
1059 2009-05-18 Janus Weil <janus@gcc.gnu.org>
1060
1061 * intrinsic.c (add_sym): Fix my last commit (r147655),
1062 which broke bootstrap.
1063
1064 2009-05-18 Richard Guenther <rguenther@suse.de>
1065
1066 PR fortran/40168
1067 * trans-expr.c (gfc_trans_zero_assign): For local array
1068 destinations use an assignment from an empty constructor.
1069
1070 2009-05-18 Janus Weil <janus@gcc.gnu.org>
1071
1072 PR fortran/36947
1073 PR fortran/40039
1074 * expr.c (gfc_check_pointer_assign): Check intents when comparing
1075 interfaces.
1076 * gfortran.h (typedef struct gfc_intrinsic_arg): Add 'intent' member.
1077 (gfc_compare_interfaces): Additional argument.
1078 * interface.c (operator_correspondence): Add check for equality of
1079 intents, and new argument 'intent_check'.
1080 (gfc_compare_interfaces): New argument 'intent_check', which is passed
1081 on to operator_correspondence.
1082 (check_interface1): Don't check intents when comparing interfaces.
1083 (compare_parameter): Do check intents when comparing interfaces.
1084 * intrinsic.c (add_sym): Add intents for arguments of intrinsic
1085 procedures.
1086 (add_sym_1,add_sym_1s,add_sym_1m,add_sym_2,add_sym_2s,add_sym_3,
1087 add_sym_3ml,add_sym_3red,add_sym_3s,add_sym_4): Use INTENT_IN by
1088 default.
1089 (add_sym_1_intent,add_sym_1s_intent,add_sym_2s_intent,add_sym_3s_intent)
1090 : New functions to add intrinsic symbols, specifying custom intents.
1091 (add_sym_4s,add_sym_5s): Add new arguments to specify intents.
1092 (add_functions,add_subroutines): Add intents for various intrinsics.
1093 * resolve.c (check_generic_tbp_ambiguity): Don't check intents when
1094 comparing interfaces.
1095 * symbol.c (gfc_copy_formal_args_intr): Copy intent.
1096
1097 2009-05-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1098
1099 * iso-fortran-env.def: Define INT8, INT16, INT32, INT64, REAL32,
1100 REAL64 and REAL128.
1101 * gfortran.h (gfc_get_int_kind_from_width_isofortranenv,
1102 gfc_get_real_kind_from_width_isofortranenv): New prototypes.
1103 * iso-c-binding.def: Update definitions for the INT*_T,
1104 INT_LEAST*_T and INT_FAST*_T named parameters.
1105 * trans-types.c (get_typenode_from_name, get_int_kind_from_name,
1106 gfc_get_real_kind_from_width_isofortranenv): New functions.
1107
1108 2009-05-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1109
1110 PR fortran/36260
1111 * intrinsic.c (add_functions, add_subroutines): Fix argument
1112 names and wrap long lines.
1113 * intrinsic.texi: Fix documentation and argument names of
1114 LOG_GAMMA, DATAN2, DBESJN, DTIME, ETIME, FSTAT, STAT, LSTAT,
1115 GET_COMMAND, IDATE, LTIME, MOVE_ALLOC, NINT, OR, PRODUCT,
1116 SUM, RAND, RANDOM_SEED, REAL, SELECTED_INT_KIND,
1117 SELECTED_REAL_KIND and XOR.
1118
1119 2009-05-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1120
1121 PR fortran/33197
1122 * intrinsic.c (add_functions): Use ERFC_SCALED simplification.
1123 * intrinsic.h (gfc_simplify_erfc_scaled): New prototype.
1124 * simplify.c (fullprec_erfc_scaled, asympt_erfc_scaled,
1125 gfc_simplify_erfc_scaled): New functions.
1126
1127 2009-05-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1128
1129 PR fortran/31243
1130 * resolve.c (resolve_substring): Don't allow too large substring
1131 indexes.
1132 (gfc_resolve_substring_charlen): Fix typo.
1133 (gfc_resolve_character_operator): Fix typo.
1134 (resolve_charlen): Catch unreasonably large string lengths.
1135 * simplify.c (gfc_simplify_len): Don't error out on LEN
1136 range checks.
1137
1138 2009-05-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1139
1140 PR fortran/36031
1141 * decl.c (set_enum_kind): Use global short-enums flag.
1142 * gfortran.h (gfc_option_t): Remove short_enums flag.
1143 * lang.opt (-fshort-enums): Refer to C documentation.
1144 * options.c (gfc_init_options, gfc_handle_option): Use global
1145 short-enums flag.
1146
1147 2009-05-15 Tobias Burnus <burnus@net-b.de>
1148
1149 PR fortran/39352
1150 * f95-lang.c: Add gfc_maybe_initialize_eh.
1151 * gfortran.h: Add gfc_maybe_initialize_eh prototype.
1152 * Make-lang.in: Add new .h dendencies for f95-lang.c
1153 * openmp.c (resolve_omp_do): Call gfc_maybe_initialize_eh.
1154 * misc.c (gfc_free): Avoid #define trickery for free.
1155
1156 2009-05-14 Steven G. Kargl <kargl@gcc.gnu.org>
1157
1158 * dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping
1159 of allocate and deallocate statements.
1160
1161 2009-05-14 Ian Lance Taylor <iant@google.com>
1162
1163 * decl.c (match_attr_spec): Change d to unsigned int.
1164 * dump-parse-tree.c (show_namespace): Change op to int. Add cast.
1165 * interface.c (gfc_check_interfaces): Change i to int. Add casts.
1166 * module.c (read_module): Change i to int. Add cast.
1167 (write_module): Change i to int.
1168 * symbol.c (gfc_get_namespace): Change in to int.
1169 (gfc_free_namespace): Change i to int.
1170 * trans-io.c (gfc_build_io_library_fndecls): Change ptype to
1171 unsigned int. Add cast.
1172 * trans-types.c (gfc_init_kinds): Change mode to unsigned int.
1173 Add casts.
1174
1175 2009-05-14 Daniel Kraft <d@domob.eu>
1176
1177 PR fortran/40045
1178 * dump-parse-tree.c (show_typebound): Fix missing adaption to new
1179 type-bound procedure storage structure.
1180
1181 2009-05-14 Janus Weil <janus@gcc.gnu.org>
1182
1183 PR fortran/39996
1184 * decl.c (gfc_match_function_decl): Use gfc_add_type.
1185 * symbol.c (gfc_add_type): Better checking for duplicate types in
1186 function declarations. And: Always give an error for duplicte types,
1187 not just a warning with -std=gnu.
1188
1189 2009-05-14 Jakub Jelinek <jakub@redhat.com>
1190
1191 PR fortran/39865
1192 * io.c (resolve_tag_format): CHARACTER array in FMT= argument
1193 isn't an extension. Reject non-CHARACTER array element of
1194 assumed shape or pointer or assumed size array.
1195 * trans-array.c (array_parameter_size): New function.
1196 (gfc_conv_array_parameter): Add size argument. Call
1197 array_parameter_size if it is non-NULL.
1198 * trans-array.h (gfc_conv_array_parameter): Adjust prototype.
1199 * trans-expr.c (gfc_conv_function_call, gfc_trans_arrayfunc_assign):
1200 Adjust callers.
1201 * trans-intrinsic.c (gfc_conv_intrinsic_loc): Likewise.
1202 * trans-io.c (gfc_convert_array_to_string): Rewritten.
1203
1204 2009-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
1205
1206 * gfortran.h (gfc_code): Rename struct member expr to expr1.
1207 * openmp.c (resolve_omp_atomic): Update expr to expr1.
1208 * interface.c (gfc_extend_assign): Ditto.
1209 * trans-expr.c (gfc_conv_expr_reference, gfc_trans_assignment,
1210 gfc_trans_init_assign): Ditto.
1211 * dump-parse-tree.c (show_code_node): Ditto.
1212 * trans-openmp.c (gfc_trans_omp_atomic): Ditto.
1213 * trans-stmt.c ( gfc_trans_label_assign, gfc_trans_goto, gfc_trans_call,
1214 gfc_trans_return, gfc_trans_pause, gfc_trans_stop, gfc_trans_if_1,
1215 gfc_trans_arithmetic_if, gfc_trans_do_while, gfc_trans_integer_select,
1216 gfc_trans_logical_select, gfc_trans_character_select
1217 forall_make_variable_temp, check_forall_dependencies
1218 gfc_trans_forall_1, gfc_trans_where_2, gfc_trans_where_3
1219 gfc_trans_where, gfc_trans_allocate, gfc_trans_deallocate): Ditto.
1220 * io.c (match_io_element, gfc_match_inquire): Ditto.
1221 * resolve.c (resolve_typebound_call, resolve_ppc_call,
1222 resolve_allocate_expr, resolve_allocate_deallocate, resolve_select,
1223 resolve_transfer, resolve_where, gfc_resolve_assign_in_forall,
1224 gfc_resolve_blocks, resolve_code, build_init_assign): Ditto.
1225 * st.c (gfc_free_statement): Ditto.
1226 * match.c (gfc_match_assignment, gfc_match_pointer_assignment,
1227 match_arithmetic_if, gfc_match_if, gfc_match_elseif
1228 gfc_match_stopcode, gfc_match_assign, gfc_match_goto,
1229 gfc_match_nullify, match_typebound_call, gfc_match_call
1230 gfc_match_select, match_simple_where, gfc_match_where
1231 gfc_match_elsewhere, match_simple_forall, gfc_match_forall): Ditto.
1232 * trans-io.c (gfc_trans_transfer): Ditto.
1233 * parse.c (parse_where_block, parse_if_block): Ditto.
1234
1235 2009-05-13 Steven G. Kargl <kargl@gcc.gnu.org>
1236
1237 * gfortran.h (gfc_code): Rename struct member label to label1.
1238 * dump-parse-tree.c (show_code_node): Update symbol.
1239 * trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
1240 gfc_trans_arithmetic_if): Ditto.
1241 * resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
1242 * match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
1243 gfc_match_assign, gfc_match_goto): Ditto.
1244 * parse.c (parse_do_block): Ditto.
1245
1246 2009-05-13 Tobias Burnus <burnus@net-b.de>
1247
1248 PR fortran/34153
1249 * gfortran.h (gfc_exec_op): Add EXEC_END_PROCEDURE.
1250 * dump-parse-tree.c (show_code_node): Use EXEC_END_PROCEDURE.
1251 * trans.c (gfc_trans_code): Ditto.
1252 * resolve.c (resolve_code): Ditto.
1253 * st.c (gfc_free_statement): Ditto.
1254 * parse.c (accept_statement): Ditto.
1255
1256 2009-05-12 Tobias Burnus <burnus@net-b.de>
1257
1258 PR fortran/40110
1259 * decl.c (gfc_match_kind_spec): Turn C kind error into a warning.
1260
1261 2009-05-11 Steve Ellcey <sje@cup.hp.com>
1262
1263 * resolve.c (check_host_association): Initialize tail.
1264
1265 2009-05-11 Janus Weil <janus@gcc.gnu.org>
1266
1267 PR fortran/40089
1268 * resolve.c (resolve_fl_derived): Only return FAILURE if
1269 gfc_notify_std fails.
1270
1271 2009-05-10 Ian Lance Taylor <iant@google.com>
1272
1273 * gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of
1274 gfc_omp_clauses.
1275 (enum gfc_omp_default_sharing): Likewise.
1276 * module.c (enum gfc_rsym_state): New enum, broken out of
1277 pointer_info.
1278 (enum gfc_wsym_state): Likewise.
1279 * parse.c (enum state_order): New enum, broken out of st_state.
1280
1281 2009-05-10 Paul Thomas <pault@gcc.gnu.org>
1282
1283 PR fortran/40018
1284 * trans-array.c (gfc_trans_array_constructor_value): Fold
1285 convert numeric constants.
1286 (gfc_build_constant_array_constructor): The same.
1287
1288 2009-05-10 Paul Thomas <pault@gcc.gnu.org>
1289
1290 PR fortran/38863
1291 * trans-expr.c (gfc_conv_operator_assign): Remove function.
1292 * trans.h : Remove prototype for gfc_conv_operator_assign.
1293 * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize
1294 derivde types with intent(out).
1295 (gfc_trans_call): Add mask, count1 and invert arguments. Add
1296 code to use mask for WHERE assignments.
1297 (gfc_trans_forall_1): Use new arguments for gfc_trans_call.
1298 (gfc_trans_where_assign): The gfc_symbol argument is replaced
1299 by the corresponding code. If this has a resolved_sym, then
1300 gfc_trans_call is called. The call to gfc_conv_operator_assign
1301 is removed.
1302 (gfc_trans_where_2): Change the last argument in the call to
1303 gfc_trans_where_assign.
1304 * trans-stmt.h : Modify prototype for gfc_trans_call.
1305 * trans.c (gfc_trans_code): Use new args for gfc_trans_call.
1306
1307 2009-05-08 Janus Weil <janus@gcc.gnu.org>
1308
1309 PR fortran/39876
1310 * intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if
1311 the symbol is a module procedure.
1312
1313 2009-05-08 Tobias Burnus <burnus@net-b.de>
1314
1315 * invoke.texi: Add do/recursion to the -fcheck= summary.
1316
1317 2009-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1318
1319 PR fortran/38830
1320 * gfortran.texi: Document that we don't support variable FORMAT
1321 expressions.
1322
1323 2009-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1324
1325 PR fortran/39576
1326 * error.c (error_print): Add missing break statement.
1327
1328 2009-05-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1329
1330 PR fortran/36382
1331 * invoke.texi: Document that -fdollar-ok does not allow $ to be
1332 used in IMPLICIT statement.
1333
1334 2009-05-06 Janus Weil <janus@gcc.gnu.org>
1335 Paul Thomas <pault@gcc.gnu.org>
1336
1337 PR fortran/39630
1338 * decl.c (match_procedure_interface): New function to match the
1339 interface for a PROCEDURE statement.
1340 (match_procedure_decl): Call match_procedure_interface.
1341 (match_ppc_decl): New function to match the declaration of a
1342 procedure pointer component.
1343 (gfc_match_procedure): Call match_ppc_decl.
1344 (match_binding_attributes): Add new argument 'ppc' and handle the
1345 POINTER attribute for procedure pointer components.
1346 (match_procedure_in_type,gfc_match_generic): Added new argument to
1347 match_binding_attributes.
1348 * dump-parse-tree.c (show_expr,show_components,show_code_node): Handle
1349 procedure pointer components.
1350 * expr.c (free_expr0,gfc_copy_expr,gfc_simplify_expr): Handle EXPR_PPC.
1351 (gfc_check_pointer_assign): Handle procedure pointer components, but no
1352 full checking yet.
1353 (is_proc_ptr_comp): New function to determine if an expression is a
1354 procedure pointer component.
1355 * gfortran.h (expr_t): Add EXPR_PPC.
1356 (symbol_attribute): Add new member 'proc_pointer_comp'.
1357 (gfc_component): Add new member 'formal'.
1358 (gfc_exec_op): Add EXEC_CALL_PPC.
1359 (gfc_get_default_type): Changed first argument.
1360 (is_proc_ptr_comp): Add prototype.
1361 (gfc_match_varspec): Add new argument.
1362 * interface.c (compare_actual_formal): Handle procedure pointer
1363 components.
1364 * match.c (gfc_match_pointer_assignment,match_typebound_call): Handle
1365 procedure pointer components.
1366 * module.c (mio_expr): Handle EXPR_PPC.
1367 * parse.c (parse_derived): Handle procedure pointer components.
1368 * primary.c (gfc_match_varspec): Add new argument 'ppc_arg' and handle
1369 procedure pointer components.
1370 (gfc_variable_attr): Handle procedure pointer components.
1371 (gfc_match_rvalue): Added new argument to gfc_match_varspec and changed
1372 first argument of gfc_get_default_type.
1373 (match_variable): Added new argument to gfc_match_varspec.
1374 * resolve.c (resolve_entries,set_type,resolve_fl_parameter): Changed
1375 first argument of gfc_get_default_type.
1376 (resolve_structure_cons,resolve_actual_arglist): Handle procedure
1377 pointer components.
1378 (resolve_ppc_call): New function to resolve a call to a procedure
1379 pointer component (subroutine).
1380 (resolve_expr_ppc): New function to resolve a call to a procedure
1381 pointer component (function).
1382 (gfc_resolve_expr): Handle EXPR_PPC.
1383 (resolve_code): Handle EXEC_CALL_PPC.
1384 (resolve_fl_derived): Copy the interface for a procedure pointer
1385 component.
1386 (resolve_symbol): Fix overlong line.
1387 * st.c (gfc_free_statement): Handle EXEC_CALL_PPC.
1388 * symbol.c (gfc_get_default_type): Changed first argument.
1389 (gfc_set_default_type): Changed first argument of gfc_get_default_type.
1390 (gfc_add_component): Initialize ts.type to BT_UNKNOWN.
1391 * trans.h (gfc_conv_function_call): Renamed.
1392 * trans.c (gfc_trans_code): Handle EXEC_CALL_PPC.
1393 * trans-expr.c (gfc_conv_component_ref): Ditto.
1394 (gfc_conv_function_val): Rename to 'conv_function_val', add new
1395 argument 'expr' and handle procedure pointer components.
1396 (gfc_conv_operator_assign): Renamed gfc_conv_function_val.
1397 (gfc_apply_interface_mapping_to_expr): Handle EXPR_PPC.
1398 (gfc_conv_function_call): Rename to 'gfc_conv_procedure_call', add new
1399 argument 'expr' and handle procedure pointer components.
1400 (gfc_get_proc_ptr_comp): New function to get the backend decl for a
1401 procedure pointer component.
1402 (gfc_conv_function_expr): Renamed gfc_conv_function_call.
1403 (gfc_conv_structure): Handle procedure pointer components.
1404 * trans-intrinsic.c (gfc_conv_intrinsic_funcall,
1405 conv_generic_with_optional_char_arg): Renamed gfc_conv_function_call.
1406 * trans-stmt.h (gfc_get_proc_ptr_comp): Add prototype.
1407 * trans-stmt.c (gfc_trans_call): Renamed gfc_conv_function_call.
1408 * trans-types.h (gfc_get_ppc_type): Add prototype.
1409 * trans-types.c (gfc_get_ppc_type): New function to build a tree node
1410 for a procedure pointer component.
1411 (gfc_get_derived_type): Handle procedure pointer components.
1412
1413 2009-05-06 Tobias Burnus <burnus@net-b.de>
1414
1415 PR fortran/40041
1416 * resolve.c (resolve_symbol): Print no warning for implicitly
1417 typed intrinsic functions.
1418
1419 2009-05-05 Janus Weil <janus@gcc.gnu.org>
1420
1421 PR fortran/39998
1422 * expr.c (gfc_check_pointer_assign): Check for statement functions and
1423 internal procedures in procedure pointer assignments.
1424
1425 2009-04-28 Janus Weil <janus@gcc.gnu.org>
1426
1427 PR fortran/39946
1428 * resolve.c (resolve_symbol): Correctly copy the interface of a
1429 PROCEDURE statement if the interface involves a RESULT variable.
1430
1431 2009-04-28 Janus Weil <janus@gcc.gnu.org>
1432
1433 PR fortran/39930
1434 PR fortran/39931
1435 * expr.c (gfc_check_pointer_assign): Correctly detect if the left hand
1436 side is a pointer.
1437 * parse.c (gfc_fixup_sibling_symbols): Don't check for ambiguity.
1438
1439 2009-04-28 Paul Thomas <pault@gcc.gnu.org>
1440
1441 PR fortran/39879
1442 * trans_expr.c (gfc_conv_procedure_call): Deep copy a derived
1443 type parentheses argument if it is a variable with allocatable
1444 components.
1445
1446 2009-04-27 Ian Lance Taylor <iant@google.com>
1447
1448 * trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum
1449 type.
1450 * trans-io.c (st_parameter_field): Add casts to enum type.
1451
1452 2009-04-26 Steven G. Kargl <kargl@gcc.gnu.org>
1453
1454 PR fortran/39893
1455 fortran/data.c (gfc_assign_data_value): If the lvalue is an
1456 assumed character length entity in a data statement, then
1457 return FAILURE to prevent segmentation fault.
1458
1459 2009-04-26 Jakub Jelinek <jakub@redhat.com>
1460
1461 * trans-decl.c: Include pointer-set.h.
1462 (nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
1463 (gfc_nonlocal_dummy_array_decl): New function.
1464 (gfc_get_symbol_decl): Call it for non-local dummy args with saved
1465 descriptor.
1466 (gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
1467 (gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
1468 chain it to outermost block's vars, destroy it afterwards.
1469 * Make-lang.in (trans-decl.o): Depend on pointer-set.h.
1470
1471 2009-04-25 Janus Weil <janus@gcc.gnu.org>
1472
1473 PR fortran/39688
1474 * decl.c (gfc_match_import): Use 'sym->name' instead of 'name'.
1475 They differ if the symbol has been use-renamed.
1476
1477 2009-04-24 Ian Lance Taylor <iant@google.com>
1478
1479 * gfortran.h (enum gfc_symbol_type): New named enum type, broken
1480 out of struct gfc_symbol.
1481 (struct gfc_symbol): Use enum gfc_symbol_type.
1482 (enum gfc_array_ref_dimen_type): New named enum type, broken out
1483 of struct gfc_array_ref).
1484 (struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
1485 (mod_pointee_as): Update declaration.
1486 * decl.c (add_global_entry): Change type to enum gfc_symbol_type.
1487 (gfc_mod_pointee_as): Change return type to "match".
1488 * module.c (mio_array_ref): Add cast to enum type.
1489 (mio_symbol): Likewise.
1490 * resolve.c (resolve_global_procedure): Change type to enum
1491 gfc_symbol_type.
1492 * trans-io.c (gfc_build_st_parameter): Change type to unsigned
1493 int.
1494
1495 2009-04-24 Daniel Kraft <d@domob.eu>
1496
1497 * gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
1498 (struct gfc_symtree): Moved "typebound" member inside union.
1499 (struct gfc_namespace): Add "tb_sym_root" as new symtree to sort out
1500 type-bound procedures there.
1501 (gfc_get_tbp_symtree): New procedure.
1502 * symbol.c (tentative_tbp_list): New global.
1503 (gfc_get_namespace): NULL new "tb_sym_root" member.
1504 (gfc_new_symtree): Removed initialization of "typebound" member.
1505 (gfc_undo_symbols): Process list of tentative tbp's.
1506 (gfc_commit_symbols): Ditto.
1507 (free_tb_tree): New method.
1508 (gfc_free_namespace): Call it.
1509 (gfc_get_typebound_proc): New method.
1510 (gfc_get_tbp_symtree): New method.
1511 (gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree
1512 and gfc_namespace with regards to tbp's.
1513 * dump-parse-tree.c (show_typebound): Ditto.
1514 * primary.c (gfc_match_varspec): Ditto. Don't reference tbp-symbol
1515 as it isn't a symbol any longer.
1516 * module.c (mio_typebound_symtree): Adapt to changes.
1517 (mio_typebound_proc): Ditto, create symtrees using "gfc_get_tbp_symtree"
1518 rather than "gfc_get_sym_tree".
1519 (mio_f2k_derived): Ditto.
1520 * decl.c (match_procedure_in_type): Ditto.
1521 (gfc_match_generic): Ditto. Don't reference tbp-symbol.
1522 * resolve.c (check_typebound_override): Adapt to changes.
1523 (resolve_typebound_generic): Ditto.
1524 (resolve_typebound_procedures): Ditto.
1525 (ensure_not_abstract_walker): Ditto.
1526 (ensure_not_abstract): Ditto.
1527 (resolve_typebound_procedure): Ditto, ignore erraneous symbols (for
1528 instance, through removed tentative ones).
1529 * gfc-internals.texi (Type-bound procedures): Document changes.
1530
1531 2009-04-24 Janus Weil <janus@gcc.gnu.org>
1532
1533 PR fortran/39861
1534 PR fortran/39864
1535 * symbol.c (gfc_copy_formal_args_intr): Set attr.flavor and attr.dummy
1536 for the formal arguments.
1537
1538 2009-04-21 Taras Glek <tglek@mozilla.com>
1539
1540 * f95-lang.c: Update GTY annotations to new syntax.
1541 * trans-intrinsic.c: Likewise.
1542 * trans-io.c: Likewise.
1543 * trans.h: Likewise.
1544
1545 2009-04-22 Janus Weil <janus@gcc.gnu.org>
1546
1547 PR fortran/39735
1548 * decl.c (add_hidden_procptr_result): Bugfix for procptr results.
1549 (match_procedure_decl): Set if_source.
1550 * expr.c (gfc_check_pointer_assign): Bugfix: Return after error.
1551 And: Check interface also for IFSRC_UNKNOWN (return type may be known).
1552 * gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE,
1553 add documentation. Rename copy_formal_args and copy_formal_args_intr.
1554 * interface.c (gfc_compare_interfaces): Check for return types,
1555 handle IFSRC_UNKNOWN.
1556 (compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed.
1557 (gfc_procedure_use): Modified handling of intrinsics.
1558 * intrinsic.c (add_functions): Bugfix for "dim".
1559 * resolve.c (resolve_intrinsic): New function to resolve intrinsics,
1560 which copies the interface from isym to sym.
1561 (resolve_procedure_expression,resolve_function): Use new function
1562 'resolve_intrinsic'.
1563 (resolve_symbol): Add function attribute for externals with return type
1564 and use new function 'resolve_intrinsic'.
1565 * symbol.c (ifsrc_types): Remove string for IFSRC_USAGE.
1566 (copy_formal_args): Renamed to gfc_copy_formal_args.
1567 (copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr.
1568 * trans-const.c (gfc_conv_const_charlen): Handle cl==NULL.
1569
1570 2009-04-21 Joseph Myers <joseph@codesourcery.com>
1571
1572 * ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
1573 ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
1574 ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
1575 copyright and license notices.
1576 * ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
1577 ChangeLog-2008: Correct dates.
1578
1579 2009-04-20 Tobias Burnus <burnus@net-b.de>
1580
1581 PR fortran/39811
1582 * scanner.c (load_line): Fix bogus "&" compile-time diagnostic.
1583
1584 2009-04-20 Paul Thomas <pault@gcc.gnu.org>
1585
1586 PR fortran/39800
1587 * resolve.c (is_sym_host_assoc): New function.
1588 (resolve_fl_derived): Call it when checking PRIVATE components
1589 of PUBLIC derived types. Change gfc_error to a gfc_notify_std
1590 with std=f2003.
1591 (resolve_fl_namelist): Call it twice to check for host
1592 association.
1593
1594 2009-04-20 Ian Lance Taylor <iant@google.com>
1595
1596 * module.c (import_iso_c_binding_module): Add casts to enum type.
1597 * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
1598 tree_code.
1599 (gfc_conv_intrinsic_anyall): Likewise.
1600 (gfc_conv_intrinsic_arith): Likewise.
1601 (gfc_conv_intrinsic_minmaxloc): Likewise.
1602 (gfc_conv_intrinsic_minmaxval): Likewise.
1603 (gfc_conv_intrinsic_bitop): Likewise.
1604 (gfc_conv_intrinsic_singlebitop): Likewise.
1605 (gfc_conv_intrinsic_strcmp): Likewise.
1606
1607 2009-04-20 Vasilis Liaskovitis <vliaskov@gmail.com>
1608 Jakub Jelinek <jakub@redhat.com>
1609
1610 PR fortran/35423
1611 * trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
1612 OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
1613 (ompws_flags): New extern decl.
1614 * trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
1615 for the outer dimension if ompws_flags allow it.
1616 * trans.c (gfc_generate_code): Clear ompws_flags.
1617 * trans-expr.c (gfc_trans_assignment_1): Allow worksharing
1618 array assignments inside of !$omp workshare.
1619 * trans-stmt.c (gfc_trans_where_3): Similarly for where statements
1620 and constructs.
1621 * trans-openmp.c (ompws_flags): New variable.
1622 (gfc_trans_omp_workshare): Rewritten.
1623
1624 2009-04-11 Daniel Kraft <d@domob.eu>
1625
1626 PR fortran/37746
1627 * gfortran.h (struct gfc_charlen): New field "passed_length" to store
1628 the actual passed string length for dummy arguments.
1629 * trans-decl.c (gfc_create_string_length): Formatting fixes and added
1630 assertion, moved a local variable into the innermost block it is needed.
1631 (create_function_arglist): Removed TODO about the check being
1632 implemented and initialize cl->passed_length here.
1633 (add_argument_checking): New method.
1634 (gfc_generate_function_code): Call the argument checking method.
1635
1636 2009-04-11 Janus Weil <janus@gcc.gnu.org>
1637
1638 PR fortran/39692
1639 * symbol.c (check_conflict): Reject procedure pointers for -std=f95.
1640
1641 2009-04-11 Daniel Franke <franke.daniel@gmail.com>
1642
1643 * resolve.c (resolve_global_procedure): Enable whole-file checking for
1644 procedures that are declared later in the file.
1645
1646 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
1647
1648 PR middle-end/39701
1649 * trans.c (gfc_allocate_with_status): Fix type mismatches
1650 on "pstat == 0".
1651
1652 2009-04-10 Daniel Franke <franke.daniel@gmail.com>
1653
1654 PR fortran/38709
1655 * expr.c (find_array_section): Leave early on zero-sized arrays.
1656
1657 2009-04-09 Janus Weil <janus@gcc.gnu.org>
1658
1659 PR fortran/36704
1660 * decl.c (add_hidden_procptr_result): New function for handling
1661 procedure pointer return values by adding a hidden result variable.
1662 (variable_decl,match_procedure_decl,gfc_match_function_decl,
1663 gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
1664 return values.
1665 * parse.c (parse_interface): Add EXTERNAL attribute only after
1666 FUNCTION/SUBROUTINE declaration is complete.
1667 * primary.c (replace_hidden_procptr_result): New function for replacing
1668 function symbol by hidden result variable.
1669 (gfc_match_rvalue,match_variable): Replace symbol by hidden result
1670 variable.
1671 * resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
1672 resolve_symbol): Allow for procedure pointer function results.
1673 (resolve_fl_procedure): Conflict detection moved here from
1674 'check_conflict'.
1675 * symbol.c (gfc_check_function_type): Allow for procedure pointer
1676 function results.
1677 (check_conflict): Move some conflict detection to resolution stage.
1678 * trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
1679 result variables.
1680
1681 2009-04-08 Jakub Jelinek <jakub@redhat.com>
1682
1683 * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
1684 contain TYPE_STRING_FLAG types.
1685
1686 2009-04-08 Janne Blomqvist <jb@gcc.gnu.org>
1687
1688 PR fortran/39670
1689 * invoke.texi (fdollar-ok): Fix typo.
1690
1691 2009-04-08 Daniel Franke <franke.daniel@gmail.com>
1692
1693 PR fortran/39670
1694 * invoke.texi (fdollar-ok): Clarify limitations.
1695
1696 2009-04-08 Paul Thomas <pault@gcc.gnu.org>
1697
1698 PR fortran/38863
1699 * trans-array.c (gfc_trans_deferred_array): Return if this
1700 is a result variable.
1701
1702 2009-04-07 Janus Weil <janus@gcc.gnu.org>
1703
1704 PR fortran/38152
1705 * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
1706 procedure pointer decls.
1707
1708 2009-04-07 Janus Weil <janus@gcc.gnu.org>
1709
1710 PR fortran/38290
1711 * expr.c (gfc_check_pointer_assign): Enable interface check for
1712 procedure pointers.
1713 * gfortran.h: Add copy_formal_args_intr.
1714 * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
1715 if second argument is an intrinsic.
1716 (compare_intr_interfaces): Correctly set attr.function, attr.subroutine
1717 and ts.
1718 (compare_parameter): Call gfc_compare_interfaces also for intrinsics.
1719 * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
1720 intrinsic interfaces here. Must happen earlier.
1721 (resolve_symbol): Resolution of intrinsic interfaces moved here from
1722 resolve_specific_..., and formal args are now copied from intrinsic
1723 interfaces.
1724 * symbol.c (copy_formal_args_intr): New function to copy the formal
1725 arguments from an intinsic procedure.
1726
1727 2009-04-06 Paul Thomas <pault@gcc.gnu.org>
1728
1729 PR fortran/38863
1730 * dependency.c (ref_same_as_full_array): New function.
1731 (gfc_dep_resolver): Call it.
1732
1733 2009-04-06 Janus Weil <janus@gcc.gnu.org>
1734
1735 PR fortran/39414
1736 * decl.c (match_procedure_decl): Fix double declaration problems with
1737 PROCEDURE statements.
1738 * symbol.c (gfc_add_type): Ditto.
1739
1740 2009-04-06 Paul Thomas <pault@gcc.gnu.org>
1741
1742 PR fortran/36091
1743 * trans-array.c (gfc_conv_array_ref): If the symbol has the
1744 temporary attribute use the array_spec for the bounds.
1745 * gfortran.h : Add the temporary field to the structure
1746 'symbol_attribute'.
1747 * trans-stmt.c (forall_make_variable_temp): Set the symbol's
1748 temporary attribute.
1749
1750 2009-04-05 Daniel Franke <franke.daniel@gmail.com>
1751
1752 PR fortran/29458
1753 * trans-array.c (gfc_trans_array_constructor_value): Shadow
1754 implied do-loop variable to avoid spurious middle-end warnings.
1755
1756 2009-04-04 Tobias Burnus <burnus@net-b.de>
1757
1758 PR fortran/39577
1759 * trans-decl.c (gfc_generate_function_code): Move recursive
1760 check to the right position.
1761
1762 2009-04-04 Paul Thomas <pault@gcc.gnu.org>
1763
1764 PR fortran/37614
1765 * trans-common.c (translate_common): Do not offset the whole
1766 coomon block.
1767
1768 2009-04-03 Tobias Burnus <burnus@net-b.de>
1769
1770 PR fortran/39594
1771 * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
1772 if it is not a procedure pointer.
1773 * primary.c (match_actual_arg): Ditto.
1774
1775 2009-03-31 Joseph Myers <joseph@codesourcery.com>
1776
1777 PR preprocessor/15638
1778 * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
1779
1780 2009-03-30 Steven G. Kargl <kargls@comcast.net>
1781
1782 PR fortran/38389
1783 * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
1784 (gfc_trans_deallocate): Add translation of ERRMSG. Remove stale
1785 comments. Minor whitespace cleanup.
1786 * resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
1787 (resolve_deallocate_expr (gfc_expr *e): Update error message.
1788 (resolve_allocate_expr): Remove dead code. Update error message.
1789 Move error checking to ...
1790 (resolve_allocate_deallocate): ... here. Add additional error
1791 checking for STAT, ERRMSG, and allocate-objects.
1792 * match.c(gfc_match_allocate,gfc_match_deallocate): Parse ERRMSG.
1793 Check for redundant uses of STAT and ERRMSG. Reword error message
1794 and add checking for pointer, allocatable, and proc_pointer attributes.
1795
1796 2009-03-30 Paul Thomas <pault@gcc.gnu.org>
1797
1798 PR fortran/22571
1799 PR fortran/26227
1800 PR fortran/24886
1801 * symbol.c : Add gfc_global_ns_list.
1802 * decl.c (add_global_entry): Set the namespace ('ns') field.
1803 * gfortran.h : Add the resolved field to gfc_namespace. Add the
1804 namespace ('ns') field to gfc_gsymbol. Add flag_whole_file to
1805 gfc_option_t. Add the prototype for gfc_free_dt_list.
1806 * lang.opt : Add the whole-file option.
1807 * invoke.texi : Document the whole-file option.
1808 * resolve.c (resolve_global_procedure): If the fwhole-file
1809 option is set, reorder gsymbols to ensure that translation is
1810 in the right order. Resolve the gsymbol's namespace if that
1811 has not occurred and then check interfaces.
1812 (resolve_function): Move call to resolve_global_procedure.
1813 (resolve_call): The same.
1814 (resolve_codes): Store the current labels_obstack.
1815 (gfc_resolve) : Return if the namespace is already resolved.
1816 trans-decl.c (gfc_get_extern_function_decl): If the whole_file
1817 option is selected, use the backend_decl of a gsymbol, if it is
1818 available.
1819 parse.c (add_global_procedure, add_global_program): If the flag
1820 whole-file is set, add the namespace to the gsymbol.
1821 (gfc_parse_file): On -fwhole-file, put procedure namespaces on
1822 the global namespace list. Rearrange to do resolution of all
1823 the procedures in a file, followed by their translation.
1824 * options.c (gfc_init_options): Add -fwhole-file.
1825 (gfc_handle_option): The same.
1826
1827 2009-03-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1828
1829 * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
1830 family of intrinsics instead of BUILT_IN_INF family.
1831 * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
1832 BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
1833
1834 2009-03-30 Jakub Jelinek <jakub@redhat.com>
1835
1836 * trans-types.c (gfc_sym_type, gfc_return_by_reference): For
1837 sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
1838
1839 2009-03-30 Joseph Myers <joseph@codesourcery.com>
1840
1841 PR rtl-optimization/323
1842 * options.c (gfc_post_options): Set
1843 flag_excess_precision_cmdline. Give an error for
1844 -fexcess-precision=standard for processors where the option is
1845 significant.
1846
1847 2009-03-29 Joseph Myers <joseph@codesourcery.com>
1848
1849 PR preprocessor/34695
1850 * cpp.c (cb_cpp_error): New.
1851 (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
1852 Don't check cpp_errors (cpp_in).
1853 (gfc_cpp_init_0): Set cb->error.
1854
1855 2009-03-29 Steven G. Kargl <kargl@gcc.gnu.org>
1856
1857 PR fortran/38823
1858 * gfortran.h: Add ARITH_PROHIBIT to arith enum.
1859 expr.c (gfc_match_init_expr): Add global variable init_flag to
1860 flag matching an initialization expression.
1861 (check_intrinsic_op): Move no longer reachable error message to ...
1862 * arith.c (arith_power): ... here. Remove gfc_ prefix in
1863 gfc_arith_power. Use init_flag. Allow constant folding of x**y
1864 when y is REAL or COMPLEX.
1865 (eval_intrinsic): Remove restriction that y in x**y must be INTEGER
1866 for constant folding.
1867 * gfc_power: Update gfc_arith_power to arith_power
1868
1869 2009-03-29 Daniel Kraft <d@domob.eu>
1870
1871 PR fortran/37423
1872 * gfortran.h (struct gfc_typebound_proc): Added new flag "deferred" and
1873 added a comment explaining DEFERRED binding handling.
1874 * decl.c (match_binding_attributes): Really match DEFERRED attribute.
1875 (match_procedure_in_type): Really match PROCEDURE(interface) syntax
1876 and do some validity checks for DEFERRED and this construct.
1877 * module.c (binding_overriding): New string constant for DEFERRED.
1878 (mio_typebound_proc): Module-IO DEFERRED flag.
1879 * resolve.c (check_typebound_override): Ensure that a non-DEFERRED
1880 binding is not overridden by a DEFERRED one.
1881 (resolve_typebound_procedure): Allow abstract interfaces as targets
1882 for DEFERRED bindings.
1883 (ensure_not_abstract_walker), (ensure_not_abstract): New methods.
1884 (resolve_fl_derived): Use new "ensure_not_abstract" method for
1885 non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
1886 binding is overridden.
1887 (check_typebound_baseobject): New method.
1888 (resolve_compcall), (resolve_typebound_call): Check base-object of
1889 the type-bound procedure call.
1890 * gfc-internals.texi (Type-bound procedures): Document a little bit
1891 about internal handling of DEFERRED bindings.
1892
1893 2009-03-29 Tobias Schlueter <tobi@gcc.gnu.org>
1894
1895 PR fortran/38507
1896 * gfortran.h (gfc_st_label): Fix comment.
1897 (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block.
1898 * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and
1899 END SELECT with labels.
1900 (check_do_closure): Fix formatting.
1901 (parse_do_block): Fix typo in error message.
1902 * resolve.c (code_stack): Remove tail member. Update comment to
1903 new use of reachable_labels.
1904 (reachable_labels): Rename to ...
1905 (find_reachable_labels): ... this. Overhaul. Update preceding
1906 comment.
1907 (resolve_branch): Fix comment preceding function. Rewrite.
1908 (resolve_code): Update call to find_reachable_labels. Add code to
1909 deal with EXEC_END_BLOCK.
1910 * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK.
1911 Add 2009 to copyright years.
1912 * trans.c (gfc_trans_code): Likewise on both counts.
1913
1914 2009-03-31 Paul Thomas <pault@gcc.gnu.org>
1915
1916 PR fortran/38917
1917 * expr.c (gfc_check_assign): Allow pointer components when
1918 checking for NULL.
1919
1920 PR fortran/38918
1921 * resolve.c (check_data_variable): Treat pointer arrays with
1922 scalars.
1923
1924 2009-03-31 Paul Thomas <pault@gcc.gnu.org>
1925
1926 PR fortran/38915
1927 * trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
1928 have a string_length.
1929
1930 2009-03-28 Tobias Burnus <burnus@net-b.de>
1931
1932 PR fortran/34656
1933 * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do):
1934 Add GFC_RTCHECK_DO support.
1935 * option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO.
1936 * invoke.texi (-fcheck): Document "do" option.
1937
1938 2009-03-28 Paul Thomas <pault@gcc.gnu.org>
1939
1940 PR fortran/38538
1941 * trans-array.c (get_elemental_fcn_charlen): Remove.
1942 (get_array_charlen): New function to replace previous.
1943
1944 2009-03-28 Paul Thomas <pault@gcc.gnu.org>
1945
1946 PR fortran/38765
1947 * parse.c (parse_derived): Do not break on finding pointer,
1948 allocatable or private components.
1949
1950 2009-03-28 Tobias Burnus <burnus@net-b.de>
1951
1952 PR fortran/32626
1953 * option.c (gfc_handle_runtime_check_option): Enable recursion check.
1954 * trans-decl.c (gfc_generate_function_code): Add recursion check.
1955 * invoke.texi (-fcheck): Add recursive option.
1956
1957 2009-03-28 Tobias Burnus <burnus@net-b.de>
1958
1959 PR fortran/38432
1960 * resolve.c (gfc_resolve_iterator): Add zero-loop warning.
1961
1962 2009-03-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1963 Paul Thomas <pault@gcc.gnu.org>
1964 Tobias Burnus <burnus@net-b.de>
1965
1966 * gfortran.h (gfc_option_t): Add rtcheck.
1967 * lang.opt: New option -fcheck.
1968 * libgfortran.h: Add GFC_RTCHECK_* constants.
1969 * invoke.texi: Document -fcheck.
1970 * options.c (gfc_handle_runtime_check_option): New function.
1971 (gfc_init_options,gfc_post_options,gfc_handle_option):
1972 Add -fcheck option.
1973
1974 2009-03-27 Richard Guenther <rguenther@suse.de>
1975
1976 * trans-array.c (gfc_conv_descriptor_data_addr): Use
1977 gfc_build_addr_expr instead of build_fold_addr_expr.
1978 (gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
1979 gfc_trans_constant_array_constructor, gfc_conv_array_data,
1980 gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
1981 * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
1982 gfc_conv_function_val, gfc_conv_operator_assign,
1983 gfc_conv_subref_array_arg, gfc_conv_function_call,
1984 gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
1985 * trans-intrinsic.c (gfc_conv_intrinsic_exponent,
1986 gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
1987 gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
1988 gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
1989 gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
1990 gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
1991 gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
1992 * trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
1993 gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
1994 build_filepos, gfc_trans_inquire, gfc_trans_wait,
1995 nml_get_addr_expr, transfer_namelist_element, build_dt,
1996 gfc_trans_dt_end, transfer_array_component, transfer_expr,
1997 transfer_array_desc, gfc_trans_transfer): Likewise.
1998 * trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
1999 * trans.c (gfc_build_addr_expr): Mark the base of the address
2000 TREE_ADDRESSABLE.
2001
2002 2009-03-27 Tobias Burnus <burnus@net-b.de>
2003
2004 * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
2005 (gfc_expr): Add is_snan.
2006 * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN.
2007 (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree.
2008 * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype.
2009 * resolve.c (build_default_init_expr): Update call.
2010 * target-memory.c (encode_float): Ditto.
2011 * trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod,
2012
2013 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2014
2015 * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp,
2016 and -fpreprocessed.
2017
2018 2009-03-06 Alexandre Oliva <aoliva@redhat.com>
2019
2020 * simplify.c (gfc_simplify_transfer): Zero-initialize the
2021 buffer.
2022
2023 2009-02-27 Tobias Burnus <burnus@net-b.de>
2024
2025 PR fortran/39309
2026 * module.c (read_md5_from_module_file): Add missing quote.
2027
2028 2009-02-27 Tobias Burnus <burnus@net-b.de>
2029
2030 PR fortran/39309
2031 * module.c (read_md5_from_module_file): Include mod version
2032 in had-changed test.
2033
2034 2009-02-26 Paul Thomas <pault@gcc.gnu.org>
2035
2036 PR fortran/39295
2037 * interface.c (compare_type_rank_if): Return 1 if the symbols
2038 are the same and deal with external procedures where one is
2039 identified to be a function or subroutine by usage but the
2040 other is not.
2041
2042 2009-02-26 Paul Thomas <pault@gcc.gnu.org>
2043
2044 PR fortran/39292
2045 * trans-array.c (gfc_conv_array_initializer): Convert all
2046 expressions rather than ICEing.
2047
2048 2009-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
2049
2050 PR fortran/38914
2051 * array.c (ref_dimen_size): Rename to gfc_ref_dimen_size,
2052 make global. Change function name in error messages.
2053 (ref_size): Change ref_dimen_size to gfc_ref_dimen_size.
2054 (gfc_array_ref_shape): Likewise.
2055 * gfortran.h: Add prototype for gfc_ref_dimen_size.
2056 * simplify.c (simplify_bound_dim): Add ref argument.
2057 If the reference isn't a full array, return one for
2058 the lower bound and the extent for the upper bound.
2059 (simplify_bound): For array sections, take as from the
2060 argument. Add reference to all to simplify_bound_dim.
2061
2062 2009-02-19 Daniel Franke <franke.daniel@gmail.com>
2063
2064 * scanner.c (load_line): At end of line, skip '\r' without setting
2065 the truncation flag.
2066
2067 2009-02-18 Daniel Kraft <d@domob.eu>
2068
2069 * gfortran.texi: New chapter about compiler characteristics.
2070 (Compiler Characteristics): Document KIND type parameters here.
2071
2072 2009-02-18 Tobias Burnus <burnus@net-b.de>
2073
2074 * intrinsic.texi (MALLOC): Make example more portable.
2075
2076 2009-02-13 Mikael Morin <mikael.morin@tele2.fr>
2077
2078 PR fortran/38259
2079 * module.c (gfc_dump_module,gfc_use_module): Add module
2080 version number.
2081
2082 2009-02-13 Paul Thomas <pault@gcc.gnu.org>
2083
2084 PR fortran/36703
2085 PR fortran/36528
2086 * trans-expr.c (gfc_conv_function_val): Stabilize Cray-pointer
2087 function references to ensure that a valid expression is used.
2088 (gfc_conv_function_call): Pass Cray pointers to procedures.
2089
2090 2009-02-03 Jakub Jelinek <jakub@redhat.com>
2091
2092 * gfortranspec.c (lang_specific_driver): Update copyright notice
2093 dates.
2094
2095 2009-01-28 Paul Thomas <pault@gcc.gnu.org>
2096
2097 PR fortran/38852
2098 PR fortran/39006
2099 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array
2100 descriptor ubound for UBOUND, when the array lbound == 1.
2101
2102 2009-01-27 Daniel Kraft <d@domob.eu>
2103
2104 PR fortran/38883
2105 * trans-stmt.c (gfc_conv_elemental_dependencies): Create temporary
2106 for the real type needed to make it work for subcomponent-references.
2107
2108 2009-01-21 Daniel Kraft <d@domob.eu>
2109
2110 * trans-stmt.c (gfc_conv_elemental_dependencies): Cleaned up comment.
2111
2112 2009-01-20 Paul Thomas <pault@gcc.gnu.org>
2113
2114 PR fortran/38907
2115 * resolve.c (check_host_association): Remove the matching to
2116 correct an incorrect host association and use manipulation of
2117 the expression instead.
2118
2119 2009-01-20 Tobias Burnus <burnus@net-b.de>
2120
2121 * invoke.texi (RANGE): RANGE also takes INTEGER arguments.
2122
2123 2009-01-19 Mikael Morin <mikael.morin@tele2.fr>
2124
2125 PR fortran/38859
2126 * simplify.c (simplify_bound): Don't use array specification
2127 if variable or component has subsequent references.
2128
2129 2009-01-17 Paul Thomas <pault@gcc.gnu.org>
2130
2131 PR fortran/38657
2132 * module.c (write_common_0): Add argument 'this_module' and
2133 check that non-use associated common blocks are written first.
2134 (write_common): Call write_common_0 twice, once with true and
2135 then with false.
2136
2137 2009-01-17 Paul Thomas <pault@gcc.gnu.org>
2138
2139 PR fortran/34955
2140 * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has
2141 been absorbed into gfc_conv_intrinsic_transfer. All
2142 references to it in trans-intrinsic.c have been changed
2143 accordingly. PR fixed by using a temporary for scalar
2144 character transfer, when the source is shorter than the
2145 destination.
2146
2147 2009-01-17 Paul Thomas <pault@gcc.gnu.org>
2148
2149 PR fortran/38657
2150 * module.c (write_common_0): Revert patch of 2009-01-05.
2151
2152 2009-01-16 Janus Weil <janus@gcc.gnu.org>
2153
2154 PR fortran/38152
2155 * expr.c (gfc_check_pointer_assign): Allow use-associated procedure
2156 pointers as lvalue.
2157 * trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable):
2158 Enable procedure pointers as module variables.
2159
2160 2009-01-14 Steven G. Kargl <kargl@gcc.gnu.org>
2161
2162 * ChangeLog-2007: Clean out svn merge droppings.
2163
2164 2009-01-10 Paul Thomas <pault@gcc.gnu.org>
2165
2166 PR fortran/38763
2167 * target-memory.c (encode_derived): Encode NULL.
2168
2169 2009-01-10 Paul Thomas <pault@gcc.gnu.org>
2170
2171 PR fortran/38765
2172 * resolve.c (check_host_association): Use the symtree name to
2173 search for a potential contained procedure, since this is the
2174 name by which it would be referenced.
2175
2176 2009-01-06 Thomas Koenig <tkoenig@gcc.gnu.org>
2177
2178 PR fortran/38220
2179 * interface.c (gfc_procedure_use): Don't warn about functions
2180 from ISO_C_BINDING.
2181 * symbol.c (generate_isocbinding_symbol): Mark c_loc and
2182 c_funloc as pure.
2183
2184 2009-01-05 Paul Thomas <pault@gcc.gnu.org>
2185
2186 PR fortran/38657
2187 * module.c (write_common_0): Use the name of the symtree rather
2188 than the common block, to determine if the common has been
2189 written.
2190
2191 2009-01-05 Daniel Franke <franke.daniel@gmail.com>
2192
2193 PR fortran/37159
2194 * check.c (gfc_check_random_seed): Added size check for GET
2195 dummy argument, reworded error messages to follow common pattern.
2196
2197 2009-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
2198
2199 PR fortran/38672
2200 * trans-types.c (gfc_get_derived_type): Check for the
2201 presence of derived->ns->proc_name before
2202 accessing derived->ns->proc_name->attr.flavor .
2203 * resolve.c (resolve_symbol): Likewise.
2204
2205 2009-01-05 Paul Thomas <pault@gcc.gnu.org>
2206
2207 PR fortran/38665
2208 * gfortran.h : Add bit to gfc_expr 'user_operator'
2209 * interface.c (gfc_extend_expr): Set the above if the operator
2210 is substituted by a function.
2211 * resolve.c (check_host_association): Return if above is set.
2212
2213 2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
2214
2215 PR fortran/35681
2216 * ChangeLog-2008: Fix function name.
2217
2218 PR fortran/38487
2219 * dependency.c (gfc_check_argument_var_dependency):
2220 Move the check for pointerness inside the if block
2221 so that it doesn't affect the return value.
2222
2223 PR fortran/38669
2224 * trans-stmt.c (gfc_trans_call):
2225 Add the dependency code after the loop bounds calculation one.
2226
2227 2009-01-04 Daniel Franke <franke.daniel@gmail.com>
2228
2229 * intrinsic.c (do_simplify): Removed already implemented TODO.
2230
2231 2009-01-04 Daniel Franke <franke.daniel@gmail.com>
2232
2233 PR fortran/38718
2234 * simplify.c (gfc_simplify_merge): New.
2235 * intrinsic.h (gfc_simplify_merge): New prototype.
2236 * intrinsic.c (add_functions): Added simplification for MERGE.
2237
2238 2009-01-04 Mikael Morin <mikael.morin@tele2.fr>
2239
2240 PR fortran/38536
2241 * gfortran.h (gfc_is_data_pointer): Added prototype
2242 * resolve.c (gfc_iso_c_func_interface):
2243 Use gfc_is_data_pointer to test for pointer attribute.
2244 * dependency.c (gfc_is_data_pointer):
2245 Support pointer-returning functions.
2246
2247 2009-01-03 Daniel Franke <franke.daniel@gmail.com>
2248
2249 * symbol.c (save_symbol): Don't SAVE function results.
2250
2251 2009-01-03 Paul Thomas <pault@gcc.gnu.org>
2252
2253 PR fortran/38594
2254 * resolve.c (resolve_call): When searching for proper host
2255 association, use symtree rather than symbol. For everything
2256 except generic subroutines, substitute the symtree in the call
2257 rather than the symbol.
2258
2259 \f
2260 Copyright (C) 2009 Free Software Foundation, Inc.
2261
2262 Copying and distribution of this file, with or without modification,
2263 are permitted in any medium without royalty provided the copyright
2264 notice and this notice are preserved.