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