comparison gcc/fortran/ChangeLog-2012 @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
1 2012-12-28 Janus Weil <janus@gcc.gnu.org>
2
3 PR fortran/55692
4 * check.c (gfc_check_associated): Remove a "gcc_assert (0)".
5
6 2012-12-28 Tobias Burnus <burnus@net-b.de>
7
8 PR fortran/55763
9 * check.c (gfc_check_move_alloc): Handle unlimited polymorphic.
10 * trans-intrinsic.c (conv_intrinsic_move_alloc): Ditto.
11
12 2012-12-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
13
14 PR fortran/48976
15 * gfortran.h (gfc_inquire struct): Add pointer for inquire stream.
16 * io.c (io_tag): Add tag for inquire stream. (match_inquire_element):
17 Add matcher for new tag. (gfc_resolve_inquire): Resolve new tag.
18 * ioparm.def: Add new parameter for inquire stream.
19 * trans-io.c (gfc_trans_inquire): Add tranlste code for inquire
20 stream.
21
22 2012-12-23 Tobias Burnus <burnus@net-b.de>
23
24 PR fortran/54884
25 * module.c (write_symbol1_recursion): Set attr.public_use.
26 * interface.c (check_sym_interfaces, check_uop_interfaces,
27 gfc_check_interfaces): Remove attr.public_use code.
28 * resolve.c (resolve_function, resolve_variable,
29 resolve_typebound_procedure): Ditto.
30
31 2012-12-22 Tobias Burnus <burnus@net-b.de>
32
33 PR fortran/55763
34 * module.c (mio_component): Don't skip _hash's initializer.
35 * resolve.c (resolve_select_type): Add an assert.
36 * trans-expr.c (gfc_conv_procedure_call): Handle
37 INTENT(OUT) for UNLIMIT_POLY.
38
39 2012-12-21 Richard Biener <rguenther@suse.de>
40
41 PR bootstrap/54659
42 * gfortran.h: Do not include gmp.h here.
43
44 2012-12-21 Paul Thomas <pault@gcc.gnu.org>
45
46 PR fortran/55763
47 * match.c (select_type_set_tmp): Return is a derived type or
48 class typespec has no derived type.
49 * resolve.c (resolve_fl_var_and_proc): Exclude select type
50 temporaries from 'pointer'.
51 (resolve_symbol): Exclude select type temporaries from tests
52 for assumed size and assumed rank.
53
54 2012-12-20 Janus Weil <janus@gcc.gnu.org>
55
56 PR fortran/36044
57 * gfortran.h (gfc_isym_id): Add GFC_ISYM_BACKTRACE.
58 * intrinsic.c (add_subroutines): Add "backtrace".
59 * intrinsic.texi (BACKTRACE): Document BACKTRACE intrinsic.
60
61 2012-12-20 Tobias Burnus <burnus@net-b.de>
62
63 PR fortran/54818
64 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ensure that
65 the string length is of type gfc_charlen_type_node.
66
67 2012-12-19 Paul Thomas <pault@gcc.gnu.org>
68
69 * array.c (resolve_array_list): Apply C4106.
70 * check.c (gfc_check_same_type_as): Exclude polymorphic
71 entities from check for extensible types. Improved error
72 for disallowed argument types to name the offending type.
73 * class.c : Update copyright date.
74 (gfc_class_null_initializer): Add argument for initialization
75 expression and deal with unlimited polymorphic typespecs.
76 (get_unique_type_string): Give unlimited polymorphic
77 entities a type string.
78 (gfc_intrinsic_hash_value): New function.
79 (gfc_build_class_symbol): Incorporate unlimited polymorphic
80 entities.
81 (gfc_find_derived_vtab): Deal with unlimited polymorphic
82 entities.
83 (gfc_find_intrinsic_vtab): New function.
84 * decl.c (gfc_match_decl_type_spec): Match typespec for
85 unlimited polymorphic type.
86 (gfc_match_data_decl): Skip to 'ok' if unlimited polymorphic.
87 expr.c (gfc_check_pointer_assign): Apply C717. If unlimited
88 polymorphic lvalue, find rvalue vtable for all typespecs,
89 except unlimited polymorphic expressions.
90 (gfc_check_vardef_context): Handle unlimited polymorphic
91 entities.
92 * gfortran.h : Add unlimited polymorphic attribute. Add
93 second arg to gfc_class_null_initializer primitive and
94 primitive for gfc_find_intrinsic_vtab. Add UNLIMITED_POLY
95 to detect unlimited polymorphic expressions.
96 * interface.c (gfc_compare_types): If expr1 is unlimited
97 polymorphic, always return 1. If expr2 is unlimited polymorphic
98 enforce C717.
99 (gfc_compare_interfaces): Skip past conditions that do not
100 apply for unlimited polymorphic entities.
101 (compare_parameter): Make sure that an unlimited polymorphic,
102 allocatable or pointer, formal argument is matched by an
103 unlimited polymorphic actual argument.
104 (compare_actual_formal): Ensure that an intrinsic vtable exists
105 to match an unlimited polymorphic formal argument.
106 * match.c (gfc_match_allocate): Type kind parameter does not
107 need to match an unlimited polymorphic allocate-object.
108 (alloc_opt_list): An unlimited polymorphic allocate-object
109 requires a typespec or a SOURCE tag.
110 (select_intrinsic_set_tmp): New function.
111 (select_type_set_tmp): Call new function. If it returns NULL,
112 build a derived type or class temporary instead.
113 (gfc_match_type_is): Remove restriction to derived types only.
114 Bind(C) or sequence derived types not permitted.
115 * misc (gfc_typename): Printed CLASS(*) for unlimited
116 polymorphism.
117 * module.c : Add AB_UNLIMITED_POLY to pass unlimited
118 polymorphic attribute to and from modules.
119 * resolve.c (resolve_common_vars): Unlimited polymorphic
120 entities cannot appear in common blocks.
121 (resolve_deallocate_expr): Deallocate unlimited polymorphic
122 enities.
123 (resolve_allocate_expr): Likewise for allocation. Make sure
124 vtable exists.
125 (gfc_type_is_extensible): Unlimited polymorphic entities are
126 not extensible.
127 (resolve_select_type): Handle unlimited polymorphic selectors.
128 Ensure that length type parameters are assumed and that names
129 for intrinsic types are generated.
130 (resolve_fl_var_and_proc): Exclude select type temporaries
131 from test of extensibility of type.
132 (resolve_fl_variable): Likewise for test that assumed character
133 length must be a dummy or a parameter.
134 (resolve_fl_derived0): Return SUCCESS unconditionally for
135 unlimited polymorphic entities. Also, allow unlimited
136 polymorphic components.
137 (resolve_fl_derived): Return SUCCESS unconditionally for
138 unlimited polymorphic entities.
139 (resolve_symbol): Return early with unlimited polymorphic
140 entities.
141 * simplifiy.c : Update copyright year.
142 (gfc_simplify_extends_type_of): No simplification possible
143 for unlimited polymorphic arguments.
144 * symbol.c (gfc_use_derived): Nothing to do for unlimited
145 polymorphic "derived type".
146 (gfc_type_compatible): Return unity if ts1 is unlimited
147 polymorphic.
148 * trans-decl.c (create_function_arglist) Formal arguments
149 without a character length should be treated in the same way
150 as passed lengths.
151 (gfc_trans_deferred_vars): Nullify the vptr of unlimited
152 polymorphic pointers. Avoid unlimited polymorphic entities
153 triggering gcc_unreachable.
154 * trans-expr.c (gfc_conv_intrinsic_to_class): New function.
155 (gfc_trans_class_init_assign): Make indirect reference of
156 src.expr.
157 (gfc_trans_class_assign): Expression NULL of unknown type
158 should set NULL vptr on lhs. Treat C717 cases where lhs is
159 a derived type and the rhs is unlimited polymorphic.
160 (gfc_conv_procedure_call): Handle the conversion of a non-class
161 actual argument to match an unlimited polymorphic formal
162 argument. Suppress the passing of a character string length
163 in this case. Make sure that calls to the character __copy
164 function have two character string length arguments.
165 (gfc_conv_initializer): Pass the initialization expression to
166 gfc_class_null_initializer.
167 (gfc_trans_subcomponent_assign): Ditto.
168 (gfc_conv_structure): Move handling of _size component.
169 trans-intrinsic.c: (gfc_conv_same_type_as): Handle conditions
170 where unlimited polymorphic arguments have null vptr.
171 * trans-stmt.c (trans_associate_var): Correctly treat array
172 temporaries associated with unlimited polymorphic selectors.
173 Recover the overwritten dtype for the descriptor. Use the _size
174 field of the vptr for character string lengths.
175 (gfc_trans_allocate): Cope with unlimited polymorphic allocate
176 objects; especially with character source tags.
177 (reset_vptr): New function.
178 (gfc_trans_deallocate): Call it.
179 * trans-types.c (gfc_get_derived_type): Detect unlimited
180 polymorphic types and deal with cases where the derived type of
181 components is null.
182 * trans.c : Update copyright year.
183 (trans_code): Call gfc_trans_class_assign for C717 cases where
184 the lhs is not unlimited polymorphic.
185
186 2012-12-19 Tobias Burnus <burnus@net-b.de>
187
188 PR fortran/55733
189 * trans-decl.c (gfc_create_string_length): Avoid setting
190 TREE_STATIC for automatic variables with -fno-automatic.
191
192 2012-12-19 Tobias Burnus <burnus@net-b.de>
193 Jakub Jelinek <jakub@redhat.com>
194 Janus Weil <janus@gcc.gnu.org>
195
196 PR fortran/55636
197 PR fortran/55733
198 * gfortran.h (GFC_PREFIX): Define.
199 * trans-decl.c (gfc_create_string_length): For VAR_DECLs that
200 will be TREE_STATIC, use GFC_PREFIX to mangle the names. Handle
201 -fno-automatic
202 (gfc_trans_deferred_vars): Don't free variables SAVEd via
203 -fno-automatic.
204
205 2012-12-16 Tobias Burnus <burnus@net-b.de>
206
207 PR fortran/55197
208 * module.c (gfc_use_module): Free rename list only for
209 internally generated intrinsic modules.
210
211 2012-12-16 Tobias Burnus <burnus@net-b.de>
212
213 * trans-intrinsic.c (conv_intrinsic_move_alloc): Set dynamic
214 type of the FROM variable to the declared type.
215
216 2012-12-16 Tobias Burnus <burnus@net-b.de>
217
218 PR fortran/55638
219 * resolve.c (resolve_formal_arglist): Allow VALUE without
220 INTENT for ELEMENTAL procedures.
221
222 2012-12-10 Janus Weil <janus@gcc.gnu.org>
223
224 PR fortran/52909
225 * trans-decl.c (get_proc_pointer_decl): Apply name mangling.
226
227 2012-12-09 Tobias Burnus <burnus@net-b.de>
228
229 * trans-array.c (structure_alloc_comps): Use NULL_TREE in the
230 call to gfc_deallocate_scalar_with_status.
231 * trans-decl.c (gfc_trans_deferred_vars): Pass symbol.
232 * trans-stmt.c (gfc_trans_deallocate): Pass polymorphic variable.
233
234 2012-12-09 Thomas Koenig <tkoenig@gcc.gnu.org>
235
236 PR fortran/55593
237 * frontend-passes.c (doloop_code): Use resolved_sym
238 instead of n.sym->formal for formal argument list
239 to get the correct version for all generic subroutines.
240
241 2012-12-05 Tobias Burnus <burnus@net-b.de>
242
243 * resolve.c (generate_component_assignments): Fix memleak.
244
245 2012-12-03 Janus Weil <janus@gcc.gnu.org>
246
247 PR fortran/55548
248 * intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK.
249
250 2012-12-03 Tobias Burnus <burnus@net-b.de>
251 Janus Weil <janus@gcc.gnu.org>
252
253 PR fortran/37336
254 * class.c (gfc_is_finalizable): New function.
255 * gfortran.h (gfc_is_finalizable): Its prototype.
256 * module.c (mio_component): Read initializer for vtype's _final.
257 * resolve.c (resolve_fl_derived0): Call gfc_is_finalizable.
258 * trans-expr.c (gfc_vtable_final_get): New function.
259 (conv_parent_component_references): Fix comment.
260 (gfc_conv_variable): Fix for scalar coarray components.
261 * trans-intrinsic.c (conv_intrinsic_move_alloc): For BT_CLASS,
262 pass the BT_CLASS type and not the declared type to
263 gfc_deallocate_scalar_with_status.
264 * trans.h (gfc_vtable_final_get): New prototype.
265
266 2012-12-03 Tobias Burnus <burnus@net-b.de>
267
268 PR fortran/55475
269 * scanner.c (gfc_next_char_literal): Fix setting locus
270 to free_line_length for the error message.
271 * error.c (show_locus): Fix potential out-of-bounds
272 read.
273
274 2012-12-03 Tobias Burnus <burnus@net-b.de>
275
276 PR fortran/37336
277 * class.c (finalizer_insert_packed_call): New static function.
278 (finalize_component, generate_finalization_wrapper):
279 Fix coarray handling and packing.
280
281 2012-12-02 Paul Thomas <pault@gcc.gnu.org>
282
283 * resolve.c (resolve_allocate_deallocate,
284 resolve_typebound_intrinsic_op): Recover revisions 193568 and
285 193778, which were accidentally reverted by the previous patch.
286
287 2012-12-01 Alessandro Fanfarillo <alessandro.fanfarillo@gmail.com>
288 Paul Thomas <pault@gcc.gnu.org>
289
290 PR fortran/46897
291 * gfortran.h : Add bit field 'defined_assign_comp' to
292 symbol_attribute structure.
293 Add primitive for gfc_add_full_array_ref.
294 * expr.c (gfc_add_full_array_ref): New function.
295 (gfc_lval_expr_from_sym): Call new function.
296 * resolve.c (add_comp_ref): New function.
297 (build_assignment): New function.
298 (get_temp_from_expr): New function
299 (add_code_to_chain): New function
300 (generate_component_assignments): New function that calls all
301 the above new functions.
302 (resolve_code): Call generate_component_assignments.
303 (check_defined_assignments): New function.
304 (resolve_fl_derived0): Call check_defined_assignments.
305 (gfc_resolve): Reset component_assignment_level in case it is
306 left in a bad state by errors.
307
308
309 * resolve.c (is_sym_host_assoc, resolve_procedure_interface,
310 resolve_contained_fntype, resolve_procedure_expression,
311 resolve_elemental_actual, resolve_global_procedure,
312 is_scalar_expr_ptr, gfc_iso_c_func_interface, resolve_function,
313 set_name_and_label, gfc_iso_c_sub_interface,
314 resolve_specific_s0, resolve_operator, compare_bound_mpz_t,
315 gfc_resolve_character_operator, resolve_typebound_function,
316 gfc_resolve_expr, forall_index, remove_last_array_ref,
317 conformable_arrays, resolve_allocate_expr,
318 resolve_allocate_deallocate, resolve_select_type,
319 resolve_transfer, resolve_where,
320 gfc_resolve_where_code_in_forall, gfc_resolve_forall_body,
321 gfc_count_forall_iterators, resolve_values,
322 resolve_bind_c_comms, resolve_bind_c_derived_types,
323 gfc_verify_binding_labels, apply_default_init,
324 build_default_init_expr, apply_default_init_local,
325 resolve_fl_var_and_proc, resolve_fl_procedure,
326 gfc_resolve_finalizers, check_generic_tbp_ambiguity,
327 resolve_typebound_intrinsic_op, resolve_typebound_procedure,
328 resolve_typebound_procedures, ensure_not_abstract,
329 resolve_fl_derived0, resolve_fl_parameter, resolve_symbol,
330 resolve_equivalence_derived): Remove trailing white space.
331 * gfortran.h : Remove trailing white space.
332
333 2012-11-28 Tobias Burnus <burnus@net-b.de>
334
335 PR fortran/52161
336 * trans-stmt.c (gfc_trans_sync): Fix bound checking
337 for -fcoarray=lib.
338
339 2012-11-28 Tobias Burnus <burnus@net-b.de>
340
341 PR fortran/52161
342 * trans-stmt.c (gfc_trans_sync): Fix bound checking.
343
344 2012-11-27 Tobias Burnus <burnus@net-b.de>
345
346 PR fortran/55476
347 * expr.c (gfc_check_pointer_assign): Fix check
348 pointer-might-outlive-target check for host_assoc.
349
350 2012-11-26 Eric Botcazou <ebotcazou@adacore.com>
351
352 * trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P.
353
354 2012-11-26 Janus Weil <janus@gcc.gnu.org>
355
356 PR fortran/54997
357 * decl.c (match_procedure_decl): Don't set 'referenced' attribute
358 for PROCEDURE declarations.
359 * parse.c (gfc_fixup_sibling_symbols,parse_contained): Don't set
360 'referenced' attribute for all contained procedures.
361 * trans-decl.c (gfc_get_symbol_decl): Allow for unreferenced procedures.
362 (build_function_decl): Set TREE_USED for referenced procedures.
363
364 2012-11-26 Janus Weil <janus@gcc.gnu.org>
365
366 PR fortran/54881
367 * match.c (select_derived_set_tmp,select_class_set_tmp): Removed and
368 unified into ...
369 (select_type_set_tmp): ... this one. Set POINTER argument according to
370 selector.
371 * trans-intrinsic.c (gfc_conv_associated): Use 'gfc_class_data_get'
372 instead of 'gfc_add_data_component'.
373
374 2012-11-25 Thomas Koenig <tkoenig@gcc.gnu.org>
375
376 PR fortran/30146
377 * frontend-passes.c (doloop_warn): New function.
378 (doloop_list): New static variable.
379 (doloop_size): New static variable.
380 (doloop_level): New static variable.
381 (gfc_run_passes): Call doloop_warn.
382 (doloop_code): New function.
383 (doloop_function): New function.
384 (gfc_code_walker): Keep track of DO level.
385
386 2012-11-24 Thomas Koenig <tkoenig@gcc.gnu.org>
387
388 PR fortran/55314
389 * resolve.c (resolve_allocate_deallocate): Compare all
390 subscripts when deciding if to reject a (de)allocate
391 statement.
392
393 2012-11-21 Janus Weil <janus@gcc.gnu.org>
394
395 PR fortran/55352
396 * trans-decl.c (generate_local_decl): Don't warn for explicitly imported
397 but unused module variables which are in a namelist or common block.
398
399 2012-11-20 Diego Novillo <dnovillo@google.com>
400 Jakub Jelinek <jakub@redhat.com>
401
402 * trans-openmp.c: Replace all vec<T, A>() initializers
403 with vNULL.
404
405 2012-11-17 Diego Novillo <dnovillo@google.com>
406
407 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
408
409 * frontend-passes.c: Use new vec API in vec.h.
410 * trans-array.c: Likewise.
411 * trans-common.c: Likewise.
412 * trans-decl.c: Likewise.
413 * trans-expr.c: Likewise.
414 * trans-intrinsic.c: Likewise.
415 * trans-openmp.c: Likewise.
416 * trans-stmt.c: Likewise.
417 * trans-types.c: Likewise.
418 * trans.h: Likewise.
419
420 2012-11-17 Jakub Jelinek <jakub@redhat.com>
421
422 PR fortran/55341
423 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Convert last
424 argument to memcpy to size_type_node type.
425 * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
426 * trasn-array.c (duplicate_allocatable): Likewise.
427
428 2012-11-16 Janus Weil <janus@gcc.gnu.org>
429
430 PR fortran/55297
431 * resolve.c (resolve_typebound_intrinsic_op): Only add typebound
432 operators to the operator list in the namespace of the derived type.
433
434
435 2012-11-12 Jan Hubicka <jh@suse.cz>
436
437 * f95-lang.c (ATTR_NOTHROW_LEAF_MALLOC_LIST): New macro.
438 (gfc_define_builtin): Use set_call_expr_flags.
439 (gfc_init_builtin_functions): Update.
440
441 2012-11-12 Tobias Burnus <burnus@net-b.de>
442
443 PR fortran/55272
444 * module.c (mio_array_spec): Correctly handle coarray
445 scalars.
446
447 2012-11-07 Tobias Schlüter <tobi@gcc.gnu.org>
448
449 PR fortran/51727
450 * module.c (sorted_pointer_info): New.
451 (gfc_get_sorted_pointer_info): New.
452 (free_sorted_pointer_info_tree): New.
453 (compare_sorted_pointer_info): New.
454 (find_symbols_to_write): New.
455 (write_symbol1_recursion): New.
456 (write_symbol1): Collect symbols that need writing, output in order.
457 (write_generic): Traverse tree in order.
458
459 2012-11-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
460
461 PR c/53063
462 * options.c (set_Wall): Do not set warn_switch here.
463
464 2012-11-06 Janus Weil <janus@gcc.gnu.org>
465
466 PR fortran/54917
467 * target-memory.c (gfc_target_expr_size,gfc_target_interpret_expr):
468 Handle BT_CLASS.
469 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Add support for
470 polymorphic arguments.
471
472 2012-11-04 Janus Weil <janus@gcc.gnu.org>
473
474 PR fortran/55199
475 * primary.c (gfc_match_varspec): Clear typespec if it cannot be
476 determined at this point.
477
478 2012-10-31 Janus Weil <janus@gcc.gnu.org>
479
480 PR fortran/53718
481 * trans.h (GFC_DECL_PUSH_TOPLEVEL): Removed.
482 * trans-decl.c (gfc_get_symbol_decl,gfc_generate_function_code): Remove
483 GFC_DECL_PUSH_TOPLEVEL.
484 (build_function_decl): Do not push __copy procedure to toplevel.
485
486 2012-10-31 Tobias Burnus <burnus@net-b.de>
487
488 PR fortran/55134
489 * trans-array.c (gfc_conv_array_parameter): Regard AS_DEFERRED as
490 array with descriptor.
491
492 2012-10-28 Tobias Burnus <burnus@net-b.de>
493
494 PR fortran/54958
495 * gfortran.h (gfc_resolve_iterator_expr,
496 gfc_check_vardef_context): Update prototype.
497 * expr.c (gfc_check_vardef_context): Add own_scope
498 argument and honour it.
499 * resolve.c (gfc_resolve_iterator_expr): Add own_scope
500 argument and honour it.
501 (resolve_deallocate_expr, resolve_allocate_expr,
502 resolve_data_variables, resolve_transfer
503 resolve_lock_unlock, resolve_code): Update calls.
504 * array.c (resolve_array_list): Ditto.
505 * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
506 * interface.c (compare_actual_formal): Ditto.
507 * intrinsic.c (check_arglist): Ditto.
508 * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
509
510 2012-10-27 Thomas Koenig <tkoenig@gcc.gnu.org>
511
512 * trans.c (gfc_allocate_allocatable): Revert accidental
513 commit.
514
515 2012-10-24 Janus Weil <janus@gcc.gnu.org>
516
517 PR fortran/55037
518 * trans-expr.c (gfc_conv_procedure_call): Move a piece of code and
519 remove an assert.
520
521 2012-10-21 Tobias Burnus <burnus@net-b.de>
522
523 PR fortran/54725
524 * Make-lang.in (CFLAGS-cpp.o): Use TARGET_SYSTEM_ROOT_DEFINE.
525 * cpp.o (gfc_cpp_init_options): Use it for
526 setting gfc_cpp_option.sysroot.
527
528 2012-10-21 Thomas König <tkoenig@gcc.gnu.org>
529
530 PR fortran/54465
531 * lang.opt (Wextra): Add.
532 * invoke.texi: Document that -Wc-binding-type, -Wconversion
533 and -Wline-truncation are implied by -Wall. Document that
534 -Wcompare-reals is implied by -Wextra. Document -Wextra.
535 * options.c (set_Wextra): New function.
536 (gfc_handle_option): Handle -Wextra.
537
538 2012-10-19 Janus Weil <janus@gcc.gnu.org>
539
540 PR fortran/54224
541 * trans-expr.c (conv_function_val): Set TREE_USED.
542
543 2012-10-18 Tobias Burnus <burnus@net-b.de>
544
545 PR fortran/54884
546 * resolve.c (specification_expr): Change to bool.
547 (resolve_formal_arglist, resolve_symbol): Set
548 specification_expr to true before resolving the array spec.
549 (resolve_variable, resolve_charlen, resolve_fl_variable):
550 Properly reset specification_expr.
551 (resolve_function): Set public_use when used in
552 a specification expr.
553
554 2012-10-16 Tobias Burnus <burnus@net-b.de>
555
556 PR fortran/50981
557 PR fortran/54618
558 * trans.h (gfc_conv_derived_to_class, gfc_conv_class_to_class):
559 Update prototype.
560 * trans-stmt.c (trans_associate_var,gfc_trans_allocate): Update
561 calls to those functions.
562 * trans-expr.c (gfc_conv_derived_to_class, gfc_conv_class_to_class,
563 gfc_conv_expr_present): Handle absent polymorphic arguments.
564 (class_scalar_coarray_to_class): New function.
565 (gfc_conv_procedure_call): Update calls.
566
567 2012-10-12 Janus Weil <janus@gcc.gnu.org>
568
569 PR fortran/40453
570 * interface.c (check_dummy_characteristics): Recursively check dummy
571 procedures.
572
573 2012-10-11 Janus Weil <janus@gcc.gnu.org>
574
575 PR fortran/54784
576 * trans-stmt.c (gfc_trans_allocate): Correctly determine the reference
577 to the _data component for polymorphic allocation with SOURCE.
578
579 2012-10-06 Janus Weil <janus@gcc.gnu.org>
580
581 PR fortran/54832
582 * resolve.c (resolve_fl_derived0): Correctly copy the 'class_ok'
583 attribute for proc-ptr components with RESULT variable.
584
585 2012-10-06 Janus Weil <janus@gcc.gnu.org>
586
587 PR fortran/45521
588 * interface.c (generic_correspondence): Implement additional
589 distinguishability criteria of F08.
590 (compare_actual_formal): Reject data object as actual argument for
591 procedure formal argument.
592
593 2012-10-04 Tobias Burnus <burnus@net-b.de>
594
595 * expr.c (scalarize_intrinsic_call): Plug memory leak.
596 * frontend-passes.c (gcc_assert): Extend assert.
597 * interface.c (gfc_compare_derived_types): Fix comparison.
598 (gfc_check_operator_interface): Move up to make this error
599 message reachable.
600 (get_sym_storage_size): Remove always-true checks.
601 * io.c (format_lex): Add comment.
602 (gfc_free_wait): Free memory.
603 * match.c (gfc_match_select_type): Ditto.
604 * matchexpr.c (match_level_3): Ditto.
605 * primary.c (match_string_constant): Ditto.
606 (match_actual_arg): Check return value.
607 * resolve.c (gfc_resolve_substring_charlen,
608 resolve_typebound_generic_call, resolve_typebound_function,
609 resolve_typebound_subroutine): Free memory.
610 * trans-types.c (gfc_get_derived_type): Remove always-true check.
611
612 2012-10-02 Janus Weil <janus@gcc.gnu.org>
613
614 PR fortran/54778
615 * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
616
617 2012-09-30 Janus Weil <janus@gcc.gnu.org>
618
619 PR fortran/54667
620 * intrinsic.texi (C_F_POINTER): Fix description.
621 * resolve.c (gfc_iso_c_sub_interface): Add a check for FPTR argument
622 of C_F_POINTER. Modify two error messages. Cleanup.
623
624 2012-09-24 Tobias Burnus <burnus@net-b.de>
625
626 PR fortran/54618
627 PR fortran/54690
628 * trans-expr.c (gfc_conv_procedure_call): Fix INTENT(OUT)
629 handling for allocatable BT_CLASS.
630
631 2012-09-24 Lawrence Crowl <crowl@google.com>
632
633 * trans-expr.c (gfc_conv_cst_int_power): Change to new double_int API.
634 * target-memory.c (gfc_interpret_logical): Likewise.
635
636 2012-09-23 Tobias Burnus <burnus@net-b.de>
637
638 * parse.c (parse_derived): Don't set attr.alloc_comp
639 for pointer components with allocatable subcomps.
640
641 PR fortran/54599
642 * resolve.c (resolve_fl_namelist): Remove superfluous
643 NULL check.
644 * simplify.c (simplify_min_max): Remove unreachable code.
645 * trans-array.c (gfc_trans_create_temp_array): Change
646 a condition into an assert.
647
648 PR fortran/54618
649 * trans-expr.c (gfc_trans_class_init_assign): Guard
650 re-setting of the _data by gfc_conv_expr_present.
651 (gfc_conv_procedure_call): Fix INTENT(OUT) handling
652 for allocatable BT_CLASS.
653
654 2012-09-22 Thomas König <tkoenig@gcc.gnu.org>
655
656 PR fortran/54599
657 * dependency.c (gfc_dep_compare_expr): Clarify logic,
658 remove dead code.
659
660 2012-09-20 Tobias Burnus <burnus@net-b.de>
661
662 PR fortran/54599
663 * cpp.c (print_line): Properly handle extern C.
664
665 2012-09-20 Martin Jambor <mjambor@suse.cz>
666
667 * trans-decl.c (gfc_get_extern_function_decl): Push NULL cfun. Do not
668 set and restore current_function_decl.
669 (gfc_init_coarray_decl): Do not set and restore current_function_decl.
670
671 2012-09-17 Tobias Burnus <burnus@net-b.de>
672
673 PR fortran/54608
674 * simplify.c (gfc_simplify_scan, gfc_simplify_verify):
675 Fix handling of BACK=variable.
676
677 2012-09-17 Janus Weil <janus@gcc.gnu.org>
678
679 PR fortran/54285
680 * expr.c (gfc_check_pointer_assign): Correctly handle procedure pointers
681 as function results.
682 * primary.c (gfc_match_varspec): Allow to call a PPC with proc-ptr
683 result.
684
685 2012-09-17 Tobias Burnus <burnus@net-b.de>
686
687 PR fortran/54603
688 * trans-expr.c (gfc_trans_subcomponent_assign): Handle
689 proc-pointer components.
690
691 2012-09-17 Tobias Burnus <burnus@net-b.de>
692
693 PR fortran/54599
694 * error.c (error_print): Move increment out of the assert.
695 * interface.c (gfc_compare_derived_types): Add assert.
696 (get_expr_storage_size): Remove always-true logical condition.
697 * resolve.c (resolve_allocate_expr): Fix looping logic.
698 * target-memory.c (gfc_target_expr_size): Add assert.
699
700 2012-09-16 Janus Weil <janus@gcc.gnu.org>
701
702 PR fortran/54594
703 * resolve.c (get_checked_tb_operator_target): Add a reference to the
704 relevant quote from the F08 standard.
705
706 2012-09-16 Janus Weil <janus@gcc.gnu.org>
707
708 PR fortran/54594
709 * interface.c (compare_type_rank): Handle CLASS arrays.
710
711 2012-09-16 Janus Weil <janus@gcc.gnu.org>
712
713 PR fortran/54387
714 * expr.c (gfc_check_pointer_assign): Check for result of embracing
715 function.
716
717 2012-09-16 Tobias Burnus <burnus@net-b.de>
718
719 * trans-decl.c (gfc_generate_function_code): Fix
720 gfc_option.coarray check.
721 * trans-stmt.c (compute_inner_temp_size): Fix handling
722 of gfc_option.rtcheck.
723
724 2012-09-16 Mikael Morin <mikael@gcc.gnu.org>
725
726 * symbol.c (gfc_undo_symbols): Correctly undo namelists.
727
728 2012-09-15 Tobias Burnus <burnus@net-b.de>
729
730 * trans-io.c (gfc_trans_transfer): Add an assert.
731
732 2012-09-15 Tobias Burnus <burnus@net-b.de>
733
734 * arith.c (arith_power): Call gfc_free_expr in case of error.
735 * array.c (gfc_match_array_constructor): Initialize variable.
736 (gfc_resolve_character_array_constructor): Remove superfluous check.
737 (gfc_array_dimen_size): Add assert.
738 * check.c (numeric_check): Fix implicit typing.
739 * class.c (gfc_build_class_symbol): Add assert.
740 (finalize_component): Free memory.
741 * dump-parse-tree.c (show_namespace): Add assert.
742 * trans-io.c (transfer_namelist_element, transfer_expr): Avoid
743 memory leakage.
744 (gfc_trans_transfer): Add assert.
745 * trans.c (gfc_trans_runtime_check): Call va_end
746
747 2012-09-15 Tobias Burnus <burnus@net-b.de>
748
749 * match.c (lock_unlock_statement, sync_statement): Fix potential
750 double freeing.
751 (sync_statement): Remove unreachable code.
752 * simplify.c (gfc_simplify_bessel_n2): Avoid double freeing.
753 (gfc_simplify_repeat): Remove bogus code.
754 * target-memory.h (gfc_target_encode_expr): Update prototype.
755 * target-memory.c (gfc_target_encode_expr, encode_array,
756 encode_derived): Return unsigned HOST_WIDE_INT.
757 (gfc_target_interpret_expr): Add assert.
758 (gfc_merge_initializers): Fix "== 0" check for mpz_t.
759 * symbol.c (gfc_get_typebound_proc): Add assert.
760 (gfc_merge_initializers): Remove unreachable check.
761
762 2012-09-13 Tobias Burnus <burnus@net-b.de>
763
764 PR fortran/54556
765 * resolve.c (resolve_formal_arglist): Allow VALUE arguments
766 with implicit_pure.
767 (gfc_impure_variable): Don't check gfc_pure such that the
768 function also works for gfc_implicit_pure procedures.
769
770 2012-09-12 Tobias Burnus <burnus@net-b.de>
771
772 PR fortran/54225
773 PR fortran/53306
774 * array.c (match_subscript, gfc_match_array_ref): Fix
775 diagnostic of coarray's '*'.
776
777 2012-09-07 Mikael Morin <mikael@gcc.gnu.org>
778
779 PR fortran/54208
780 * simplify.c (simplify_bound_dim): Resolve array spec before
781 proceeding with simplification.
782
783 2012-09-06 Tobias Burnus <burnus@net-b.de>
784
785 PR fortran/54463
786 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Fix matmul
787 call to BLAS if the default-kind has been promoted.
788
789 2012-09-05 Tobias Burnus <burnus@net-b.de>
790
791 PR fortran/54462
792 * symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
793
794 2012-09-04 Janus Weil <janus@gcc.gnu.org>
795
796 PR fortran/54435
797 PR fortran/54443
798 * match.c (gfc_match_select_type): Make sure to only access CLASS_DATA
799 for BT_CLASS.
800
801 2012-09-03 Tobias Burnus <burnus@net-b.de>
802
803 PR fortran/54467
804 * class.c (gfc_find_derived_vtab): Fix disabling of _final
805 by continuing to generate normal type-bound procedures.
806
807 2012-09-03 Tobias Burnus <burnus@net-b.de>
808
809 * class.c (gfc_find_derived_vtab): Disable ABI-breaking
810 generation of the "_final" subroutine for now.
811
812 2012-09-03 Tobias Burnus <burnus@net-b.de>
813
814 * class.c (finalize_component): Fixes to the comment.
815
816 2012-09-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
817 Tobias Burnus <burnus@net-b.de>
818
819 PR fortran/37336
820 * gfortran.h (symbol_attribute): Add artificial.
821 * module.c (mio_symbol_attribute): Handle attr.artificial
822 * class.c (gfc_build_class_symbol): Defer creation of the vtab
823 if the DT has finalizers, mark generated symbols as
824 attr.artificial.
825 (has_finalizer_component, finalize_component,
826 finalization_scalarizer, generate_finalization_wrapper):
827 New static functions.
828 (gfc_find_derived_vtab): Add _final component and call
829 generate_finalization_wrapper.
830 * dump-parse-tree.c (show_f2k_derived): Use resolved
831 proc_tree->n.sym rather than unresolved proc_sym.
832 (show_attr): Handle attr.artificial.
833 * resolve.c (gfc_resolve_finalizers): Ensure that the vtab exists.
834 (resolve_fl_derived): Resolve finalizers before
835 generating the vtab.
836 (resolve_symbol): Also allow assumed-rank arrays with CONTIGUOUS;
837 skip artificial symbols.
838 (resolve_fl_derived0): Skip artificial symbols.
839
840 2012-09-02 Tobias Burnus <burnus@net-b.de>
841
842 PR fortran/54426
843 * symbol.c (find_common_symtree): New function.
844 (gfc_undo_symbols): Use it; free common_head if needed.
845
846 2012-08-28 Tobias Burnus <burnus@net-b.de>
847
848 PR fortran/54389
849 * trans-decl.c (gfc_get_extern_function_decl,
850 build_function_decl): Don't mark impure elemental
851 functions as DECL_PURE_P and honour implicit_pure.
852
853 2012-08-28 Tobias Burnus <burnus@net-b.de>
854
855 PR fortran/54382
856 * error.c (show_locus): Avoid out of bound access.
857
858 2012-08-28 Tobias Burnus <burnus@net-b.de>
859
860 PR fortran/54384
861 * decl.c (match_data_constant): Add missing gfc_free_expr.
862 (top_val_list): Remove always-true condition.
863 * data.c (get_array_index, create_character_initializer):
864 Free temporary expressions.
865 (gfc_assign_data_value): Free expression when aborting.
866
867 2012-08-28 Tobias Burnus <burnus@net-b.de>
868
869 PR fortran/54384
870 * symbol.c (gfc_copy_formal_args): Set also sym->formal_ns.
871
872 2012-08-27 Tobias Burnus <burnus@net-b.de>
873
874 PR fortran/54384
875 * resolve.c (gfc_resolve_character_operator): Free temporary
876 variables.
877 * trans-expr.c (gfc_conv_statement_function): Ditto.
878
879 2012-08-27 Tobias Burnus <burnus@net-b.de>
880
881 PR fortran/54384
882 * dependency.c (check_section_vs_section): Use gfc_free_expr
883 instead of free.
884 * trans-intrinsic.c (conv_generic_with_optional_char_arg): Use
885 gfc_free_symbol instead of free.
886
887 2012-08-27 Tobias Burnus <burnus@net-b.de>
888
889 PR fortran/54384
890 * trans-expr.c (gfc_trans_arrayfunc_assign): Free se.ss
891 and loop.
892
893 2012-08-27 Tobias Burnus <burnus@net-b.de>
894
895 PR fortran/41093
896 * gfortran.h (gfc_common_head): Add "int refs".
897 * match.c (gfc_match_common): Increment refs.
898 * resolve.c (resolve_symbol): Only increment formal_ns->refs
899 if formal_ns is not sym->ns.
900 * symbol.c (gfc_free_symbol): Only free formal_ns if
901 if formal_ns is not sym->ns. Free common_block if refs is one.
902 (gfc_release_symbol): Release formal_ns only if the
903 symbol is not ENTRY of a module.
904 * decl.c (get_proc_name): Don't increment gfc_current_ns->refs.
905 * parse.c (parse_interface): Incement proc_unit->refs++ for
906 proc-pointer result variables.
907 * module.c (mio_symbol): Don't increase sym->refs for its
908 use in sym->formal_ns->proc_name.
909
910 2012-08-27 Tobias Burnus <burnus@net-b.de>
911
912 PR fortran/54370
913 * trans-stmt.c (gfc_trans_do_while): Don't change the logical
914 kind for negation of the condition.
915
916 2012-08-27 Tobias Burnus <burnus@net-b.de>
917
918 * options.c (set_Wall): Don't set for -Wcompare-reals.
919 * invoke.texi (-Wall, -Wcompare-reals): -Wall no longer
920 implies -Wcompare-reals.
921
922 2012-08-24 Simon Baldwin <simonb@google.com>
923
924 * lang.opt (-cpp=): Mark flag NoDWARFRecord.
925
926 2012-08-23 Tobias Burnus <burnus@net-b.de>
927
928 PR fortran/54350
929 * trans-array.c (free_ss_info): Free data.array.subscript.
930 (gfc_free_ss): No longer free data.array.subscript.
931 (walk_coarray): New function, moved from trans-intrinsic.c
932 (gfc_conv_expr_descriptor): Walk array descriptor instead
933 of taking passed "ss".
934 (get_array_ctor_all_strlen, gfc_add_loop_ss_code,
935 gfc_conv_array_parameter): Update call and cleanup ss handling.
936 * trans-array.h (gfc_conv_expr_descriptor,
937 gfc_conv_array_parameter): Update prototype.
938 * trans-expr.c (gfc_conv_derived_to_class,
939 conv_isocbinding_procedure, gfc_conv_procedure_call,
940 gfc_trans_alloc_subarray_assign, gfc_trans_subcomponent_assign,
941 gfc_trans_pointer_assignment, gfc_trans_arrayfunc_assign): Update
942 call to gfc_conv_expr_descriptor and gfc_conv_array_parameter, and
943 clean up.
944 * trans-intrinsic.c (walk_coarray): Moved to trans-array.c
945 (trans_this_image, trans_image_index, gfc_conv_intrinsic_rank
946 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_cobound,
947 gfc_conv_intrinsic_len, gfc_conv_intrinsic_size,
948 gfc_conv_intrinsic_sizeof, gfc_conv_intrinsic_storage_size,
949 gfc_conv_intrinsic_transfer, gfc_conv_allocated,
950 gfc_conv_associated, gfc_conv_intrinsic_loc,
951 conv_intrinsic_move_alloc): Update calls.
952 * trans-io.c (gfc_convert_array_to_string, set_internal_unit,
953 gfc_trans_transfer): Ditto.
954 * trans-stmt.c (gfc_conv_elemental_dependencies,
955 gfc_trans_sync, trans_associate_var,
956 gfc_trans_pointer_assign_need_temp): Ditto.
957
958 2012-08-23 Jakub Jelinek <jakub@redhat.com>
959
960 * trans-decl.c (trans_function_start, generate_coarray_init,
961 create_main_function, gfc_generate_constructors): Call
962 allocate_struct_function instead of init_function_start.
963
964 2012-08-22 Tobias Burnus <burnus@net-b.de>
965
966 * trans-expr.c (gfc_copy_class_to_class,
967 gfc_trans_arrayfunc_assign): Free loop and ss data.
968 * trans-intrinsic.c (gfc_trans_arrayfunc_assign): Free ss data.
969
970 2012-08-21 Tobias Burnus <burnus@net-b.de>
971
972 * parse.c (parse_contained): Include EXEC_END_PROCEDURE
973 in ns->code to make sure the gfc_code is freed.
974
975 2012-08-20 Tobias Burnus <burnus@net-b.de>
976
977 PR fortran/54301
978 * expr.c (gfc_check_pointer_assign): Warn when a pointer,
979 which is a function result, might outlive its target.
980
981 2012-08-20 Tobias Burnus <burnus@net-b.de>
982
983 PR fortran/54301
984 * expr.c (gfc_check_pointer_assign): Warn when the pointer
985 might outlive its target.
986 * gfortran.h (struct gfc_option_t): Add warn_target_lifetime.
987 * options.c (gfc_init_options, set_wall, gfc_handle_option):
988 handle it.
989 * invoke.texi (-Wtarget-lifetime): Document it.
990 (-Wall): Implied it.
991 * lang.opt (-Wtarget-lifetime): New flag.
992
993 2012-08-19 Thomas König <tkoenig@gcc.gnu.org>
994
995 PR fortran/54298
996 * gfortran.h (struct gfc_option_t): Add warn_compare_reals.
997 * lang.opt: Add Wcompare-reals.
998 * invoke.texi: Document -Wcompare-reals.
999 * resolve.c (resolve_operator): If -Wcompare-reals is in effect,
1000 warn about equality/inequality comparisions for REAL and COMPLEX.
1001 * options.c (gfc_init_options): Set warn_compare_reals.
1002 (set_Wall): Include warn_compare_reals in Wall.
1003 (gfc_handle_option): Handle Wcompare_reals.
1004
1005 2012-08-17 Jakub Jelinek <jakub@redhat.com>
1006
1007 * array.c (gfc_match_array_ref): Fix up memset arguments.
1008
1009 2012-08-16 Diego Novillo <dnovillo@google.com>
1010
1011 Revert
1012
1013 PR bootstrap/54281
1014 * gfortran.h: Do not include gmp.h.
1015
1016 2012-08-16 Diego Novillo <dnovillo@google.com>
1017
1018 PR bootstrap/54281
1019 * gfortran.h: Do not include gmp.h.
1020
1021 2012-08-15 Janus Weil <janus@gcc.gnu.org>
1022
1023 PR fortran/54243
1024 PR fortran/54244
1025 * resolve.c (check_typebound_baseobject): Check for class_ok attribute.
1026 (resolve_procedure_interface,resolve_fl_derived0): Copy class_ok
1027 attribute.
1028
1029 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
1030
1031 PR fortran/47586
1032 * trans-expr.c (expr_is_variable): Handle regular, procedure pointer,
1033 and typebound functions returning a data pointer.
1034
1035 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
1036
1037 * decl.c (match_ppc_decl): Copy the procedure interface's symbol
1038 as procedure interface's result.
1039
1040 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
1041
1042 * trans-expr.c (gfc_trans_scalar_assign): Rename argument,
1043 extend comment.
1044
1045 2012-08-14 Mikael Morin <mikael@gcc.gnu.org>
1046
1047 * gfortran.h (gfc_get_proc_ptr_comp): New prototype.
1048 (gfc_is_proc_ptr_comp): Update prototype.
1049 * expr.c (gfc_get_proc_ptr_comp): New function based on the old
1050 gfc_is_proc_ptr_comp.
1051 (gfc_is_proc_ptr_comp): Call gfc_get_proc_ptr_comp.
1052 (gfc_specification_expr, gfc_check_pointer_assign): Use
1053 gfc_get_proc_ptr_comp.
1054 * trans-array.c (gfc_walk_function_expr): Likewise.
1055 * resolve.c (resolve_structure_cons, update_ppc_arglist,
1056 resolve_ppc_call, resolve_expr_ppc): Likewise.
1057 (resolve_function): Update call to gfc_is_proc_ptr_comp.
1058 * dump-parse-tree.c (show_expr): Likewise.
1059 * interface.c (compare_actual_formal): Likewise.
1060 * match.c (gfc_match_pointer_assignment): Likewise.
1061 * primary.c (gfc_match_varspec): Likewise.
1062 * trans-io.c (gfc_trans_transfer): Likewise.
1063 * trans-expr.c (gfc_conv_variable, conv_function_val,
1064 conv_isocbinding_procedure, gfc_conv_procedure_call,
1065 gfc_trans_pointer_assignment): Likewise.
1066 (gfc_conv_procedure_call, gfc_trans_array_func_assign):
1067 Use gfc_get_proc_ptr_comp.
1068
1069 2012-08-14 Tobias Burnus <burnus@net-b.de>
1070
1071 PR fortran/40881
1072 * error.c (gfc_notify_std): Reset cur_error_buffer->flag flag
1073 when the error/warning has been printed.
1074 * gfortran.h (gfc_sl_type): Add ST_LABEL_DO_TARGET.
1075 * match.c (gfc_match_do): Use ST_LABEL_DO_TARGET.
1076 * parse.c (check_statement_label): Use ST_LABEL_DO_TARGET.
1077 (parse_executable): Add obsolescence check for DATA.
1078 * resolve.c (resolve_branch): Handle ST_LABEL_DO_TARGET.
1079 * symbol.c (gfc_define_st_label, gfc_reference_st_label):
1080 Add obsolescence diagnostics.
1081 * trans-stmt.c (gfc_trans_label_assign): Handle ST_LABEL_DO_TARGET.
1082
1083 2012-08-14 Tobias Burnus <burnus@net-b.de>
1084
1085 PR fortran/54234
1086 * check.c (gfc_check_cmplx): Add -Wconversion warning
1087 when converting higher-precision REAL to default-precision
1088 CMPLX without kind= parameter.
1089
1090 2012-08-12 Tobias Burnus <burnus@net-b.de>
1091
1092 PR fortran/54221
1093 * trans-decl.c (gfc_finish_var_decl, build_function_decl):
1094 Fix setting private module vars/procs as TREE_PUBLIC(...) = 0.
1095
1096 2012-08-09 Tobias Burnus <burnus@net-b.de>
1097
1098 PR fortran/54199
1099 * intrinsic.c (gfc_warn_intrinsic_shadow): Better warning
1100 for internal procedures.
1101
1102 2012-08-06 Janus Weil <janus@gcc.gnu.org>
1103
1104 PR fortran/35831
1105 * interface.c (check_result_characteristics): New function, which checks
1106 the characteristics of function results.
1107 (gfc_compare_interfaces,gfc_check_typebound_override): Call it.
1108
1109 2012-08-02 Thomas König <tkoenig@gcc.gnu.org>
1110
1111 PR fortran/54033
1112 * scanner.c (add_path_to_list): New argument warn. Don't
1113 warn if it is true.
1114 (gfc_add_include_path): Warn if directory is missing.
1115 (gfc_add_intrinsic_modules_path): Do not warn if directory
1116 is missing.
1117 * optinons.c (gfc_handle_option): Do not add directory
1118 for intrinsic modules to normal include path.
1119
1120 2012-08-03 Mikael Morin <mikael@gcc.gnu.org>
1121
1122 PR fortran/54166
1123 * trans-array.c (set_loop_bounds): Access specinfo using spec_dim.
1124
1125 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
1126
1127 PR fortran/48820
1128 * trans-array.c (gfc_conv_ss_startstride): Set the intrinsic
1129 result's lower and upper bounds according to the rank.
1130 (set_loop_bounds): Set the loop upper bound in the intrinsic case.
1131
1132 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
1133
1134 * trans-array.c (set_loop_bounds): Allow non-array-section to be
1135 chosen using the stride and lower bound criteria.
1136
1137 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
1138
1139 * trans-array.c (set_loop_bounds): Remove useless dimension check.
1140 Don't update loopspec if it would loose the wanted stride criterion.
1141
1142 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
1143
1144 * trans-array.h (gfc_conv_descriptor_rank): New prototype.
1145 * trans-array.c (gfc_conv_descriptor_rank): New function moved and
1146 renamed ...
1147 * trans-intrinsic.c (get_rank_from_desc): ... from this one.
1148 (gfc_conv_intrinsic_rank, gfc_conv_intrinsic_bound,
1149 gfc_conv_associated): Also rename function calls.
1150
1151 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
1152
1153 * iresolve.c (resolve_bound, gfc_resolve_shape):
1154 Don't set the shape for assumed rank arrays.
1155 * simplify.c (gfc_simplify_shape): Don't try to simplify if the
1156 argument is assumed rank.
1157
1158 2012-08-02 Mikael Morin <mikael@gcc.gnu.org>
1159
1160 * array.c (gfc_copy_array_ref): Don't copy the offset field.
1161 * expr.c (find_array_section): Ignore the offset field.
1162 * trans-expr.c (gfc_find_interface_mapping_to_ref): Don't apply
1163 any interface mapping to the offset field.
1164 * gfortran.h (struct gfc_array_ref): Remove the offset field.
1165
1166 2012-08-02 Janus Weil <janus@gcc.gnu.org>
1167
1168 PR fortran/54147
1169 * resolve.c (check_proc_interface): New routine for PROCEDURE interface
1170 checks.
1171 (resolve_procedure_interface,resolve_typebound_procedure,
1172 resolve_fl_derived0): Call it.
1173
1174 2012-08-01 Thomas König <tkoenig@gcc.gnu.org>
1175
1176 PR fortran/54033
1177 * scanner.c (add_path_to_list): Emit warning if an error occurs
1178 for an include path, if it is not present or if it is not a
1179 directory. Do not add the path in these cases.
1180
1181 2012-07-31 Janus Weil <janus@gcc.gnu.org>
1182
1183 PR fortran/42418
1184 * decl.c (match_procedure_interface): Move some checks to
1185 'resolve_procedure_interface'. Set flavor if appropriate.
1186 * expr.c (gfc_check_pointer_assign): Cleanup of 'gfc_is_intrinsic'.
1187 * intrinsic.c (gfc_is_intrinsic): Additional checks for attributes which
1188 identify a procedure as being non-intrinsic.
1189 * resolve.c (resolve_procedure_interface): Checks moved here from
1190 'match_procedure_interface'. Minor cleanup.
1191 (resolve_formal_arglist,resolve_symbol): Cleanup of
1192 'resolve_procedure_interface'
1193 (resolve_actual_arglist,is_external_proc): Cleanup of
1194 'gfc_is_intrinsic'.
1195
1196 2012-07-31 Janus Weil <janus@gcc.gnu.org>
1197
1198 PR fortran/54134
1199 * dependency.c (gfc_dep_compare_expr): Check if arguments are NULL.
1200
1201 2012-07-31 Tobias Burnus <burnus@net-b.de>
1202
1203 * interface.c (gfc_procedure_use): Return gfc_try instead of void.
1204 * gfortran.h (gfc_procedure_use): Update prototype.
1205 * resolve.c (gfc_iso_c_func_interface): Allow noninteroperable
1206 procedures for c_funloc for TS29113.
1207 * (gfc_iso_c_sub_interface): Ditto for c_f_procpointer. Add
1208 diagnostic for c_ptr vs. c_funptr for c_f_(proc)pointer.
1209
1210 2012-07-30 Janus Weil <janus@gcc.gnu.org>
1211
1212 PR fortran/51081
1213 * gfortran.h (gfc_resolve_intrinsic): Add prototype.
1214 * expr.c (gfc_check_pointer_assign): Set INTRINSIC attribute if needed.
1215 Check for invalid intrinsics.
1216 * primary.c (gfc_match_rvalue): Check for intrinsics came too early.
1217 Set procedure flavor if appropriate.
1218 * resolve.c (resolve_intrinsic): Renamed to gfc_resolve_intrinsic.
1219 (resolve_procedure_interface,resolve_procedure_expression,
1220 resolve_function,resolve_fl_derived0,resolve_symbol): Ditto.
1221
1222 2012-07-26 Mikael Morin <mikael@gcc.gnu.org>
1223
1224 PR fortran/44354
1225 * trans-array.c (gfc_trans_array_constructor_value):
1226 Evaluate the iteration bounds before the inner variable shadows
1227 the outer.
1228
1229 2012-07-26 Mikael Morin <mikael@gcc.gnu.org>
1230
1231 PR fortran/44354
1232 * array.c (sought_symbol): New variable.
1233 (expr_is_sought_symbol_ref, find_symbol_in_expr): New functions.
1234 (resolve_array_list): Check for references to the induction
1235 variable in the iteration bounds and issue a diagnostic if some
1236 are found.
1237
1238 2012-07-26 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1239 Tobias Burnus <burnus@net-b.de>
1240
1241 * module.c (mio_array_spec): Don't read as->lower for
1242 assumed-rank arrays.
1243
1244 2012-07-25 Tobias Burnus <burnus@net-b.de>
1245
1246 * trans-types.c (gfc_real16_is_float128): Fix spelling
1247 in a comment.
1248 * trans.h (struct gfc_array_info): Ditto.
1249 * gfortran.h (gfc_expr): Ditto.
1250 * simplify.c (gfc_count): Ditto.
1251 * trans-expr.c (gfc_copy_class_to_class,
1252 conv_parent_component_references,
1253 gfc_trans_pointer_assignment): Ditto.
1254 * expr.c (check_pointer_assign): Fix diagnostic spelling.
1255 * interface.c (compare_parameter): Ditto.
1256 * parse.c (use_modules, parse_associate): Ditto.
1257 * decl.c (match_char_length): Fix spelling of the
1258 an function argument.
1259
1260 2012-07-21 Tobias Burnus <burnus@net-b.de>
1261
1262 * iso-c-binding.def (C_PTRDIFF_T): New TS29113 parameter.
1263 * intrinsic.texi (ISO_C_BINDING): Document it.
1264
1265 2012-07-21 Tobias Burnus <burnus@net-b.de>
1266
1267 PR fortran/48820
1268 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Support
1269 lbound/ubound with dim= for assumed-rank arrays.
1270 * array.c (gfc_set_array_spec): Reject coarrays with
1271 assumed shape.
1272 * decl.c (merge_array_spec): Ditto. Return gfc_try.
1273 (match_attr_spec, match_attr_spec): Update call.
1274
1275 2012-07-21 Tobias Burnus <burnus@net-b.de>
1276
1277 * resolve.c (resolve_formal_arglist): Put variable
1278 declaration before the first assignment.
1279
1280 2012-07-21 Tobias Burnus <burnus@net-b.de>
1281
1282 * trans-expr.c (gfc_conv_derived_to_class): Fix argument passed
1283 to class_array_data_assign.
1284
1285 2012-07-20 Tobias Burnus <burnus@net-b.de>
1286
1287 * decl.c (gfc_verify_c_interop_param): Allow assumed-shape
1288 with -std=f2008ts.
1289
1290 2012-07-20 Tobias Burnus <burnus@net-b.de>
1291
1292 PR fortran/48820
1293 * array.c (match_array_element_spec, gfc_match_array_spec,
1294 spec_size, gfc_array_dimen_size): Add support for
1295 assumed-rank arrays.
1296 * check.c (dim_rank_check): Ditto.
1297 * class.c (gfc_add_component_ref): Ditto.
1298 (gfc_build_class_symbol): Regard assumed-rank arrays
1299 as having GFC_MAX_DIMENSIONS. And build extra class
1300 container for a scalar pointer class.
1301 * decl.c (merge_array_spec): Add assert.
1302 * dump-parse-tree.c (show_array_spec): Add support for
1303 assumed-rank arrays.
1304 * expr.c (gfc_is_simply_contiguous): Ditto.
1305 * gfortran.h (array_type): Ditto.
1306 (gfc_array_spec, gfc_expr): Add comment to "rank" field.
1307 * interface.c (compare_type_rank, argument_rank_mismatch,
1308 compare_parameter, gfc_procedure_use): Ditto.
1309 (compare_actual_formal): Fix NULL() to optional-dummy
1310 handling for polymorphic dummies.
1311 * module.c (mio_typespec): Add support for
1312 assumed-rank arrays.
1313 * resolve.c (resolve_formal_arglist, resolve_actual_arglist,
1314 resolve_elemental_actual, resolve_global_procedure,
1315 expression_shape, resolve_variable, update_ppc_arglist,
1316 check_typebound_baseobject, gfc_resolve_expr,
1317 resolve_fl_var_and_proc, gfc_resolve_finalizers,
1318 resolve_typebound_procedure, resolve_symbol): Ditto.
1319 (assumed_type_expr_allowed): Remove static variable.
1320 (actual_arg, first_actual_arg): New static variables.
1321 * simplify.c (simplify_bound, gfc_simplify_range): Add
1322 support for assumed-rank arrays.
1323 * trans-array.c (gfc_conv_array_parameter): Ditto.
1324 (gfc_get_descriptor_dimension): New function, which returns
1325 the descriptor.
1326 (gfc_conv_descriptor_dimension): Use it.
1327 (gfc_conv_descriptor_stride_get, gfc_conv_array_parameter):
1328 Handle GFC_ARRAY_ASSUMED_RANK_CONT and AS_ASSUMED_RANK.
1329 * trans-array.h (gfc_get_descriptor_dimension): New prototype.
1330 * trans-decl. (gfc_build_dummy_array_decl,
1331 gfc_trans_deferred_vars, add_argument_checking): Add
1332 support for assumed-rank arrays.
1333 * trans-expr.c (gfc_conv_expr_present, gfc_conv_variable,
1334 gfc_conv_procedure_call): Ditto.
1335 (get_scalar_to_descriptor_type, class_array_data_assign,
1336 conv_scalar_to_descriptor): New static functions.
1337 (gfc_conv_derived_to_class, gfc_conv_class_to_class): Use
1338 them.
1339 * trans-intrinsic.c (get_rank_from_desc): New function.
1340 (gfc_conv_intrinsic_rank, gfc_conv_associated): Use it.
1341 * trans-types.c (gfc_array_descriptor_base_caf,
1342 gfc_array_descriptor_base): Make space for scalar array.
1343 (gfc_is_nodesc_array, gfc_is_nodesc_array,
1344 gfc_build_array_type, gfc_get_array_descriptor_base): Add
1345 support for assumed-rank arrays.
1346 * trans.h (gfc_array_kind): Add GFC_ARRAY_ASSUMED_RANK and
1347 GFC_ARRAY_ASSUMED_RANK_CONT.
1348
1349 2012-07-19 Tobias Burnus <burnus@net-b.de>
1350
1351 * trans-expr.c (gfc_conv_procedure_call): Fix handling
1352 of polymorphic arguments.
1353 * resolve.c (resolve_formal_arglist): Ditto, mark polymorphic
1354 assumed-shape arrays as such.
1355
1356 2012-07-19 Tobias Burnus <burnus@net-b.de>
1357
1358 * interface.c (compare_parameter, compare_actual_formal): Fix
1359 handling of polymorphic arguments.
1360
1361 2012-07-17 Janus Weil <janus@gcc.gnu.org>
1362
1363 PR fortran/51081
1364 * error.c (gfc_notify_std): Automatically print the relevant Fortran
1365 standard version.
1366 * arith.c (arith_power): Remove explicit standard reference string.
1367 * array.c (gfc_match_array_spec, gfc_match_array_constructor): Ditto.
1368 * check.c (gfc_check_a_p, gfc_check_besn, gfc_check_count,
1369 gfc_check_float, gfc_check_fn_rc2008, gfc_check_iand,
1370 gfc_check_ichar_iachar, gfc_check_ieor, gfc_check_index, gfc_check_ior,
1371 gfc_check_lbound, gfc_check_len_lentrim, check_rest, gfc_check_min_max,
1372 gfc_check_null, gfc_check_scan, gfc_check_selected_real_kind,
1373 gfc_check_shape, gfc_check_size, gfc_check_sngl, gfc_check_ubound,
1374 gfc_check_verify): Ditto.
1375 * data.c (gfc_assign_data_value): Ditto.
1376 * decl.c (var_element, char_len_param_value, match_char_length,
1377 gfc_verify_c_interop_param, match_pointer_init, variable_decl,
1378 gfc_match_decl_type_spec, gfc_match_import, match_attr_spec,
1379 gfc_match_prefix, gfc_match_suffix, match_ppc_decl,
1380 match_procedure_in_interface, gfc_match_procedure,gfc_match_entry,
1381 gfc_match_subroutine, gfc_match_end, gfc_match_codimension,
1382 gfc_match_protected, gfc_match_value, gfc_match_volatile,
1383 gfc_match_asynchronous, gfc_match_modproc, gfc_get_type_attr_spec,
1384 gfc_match_enum, match_procedure_in_type): Ditto.
1385 * expr.c (check_elemental, gfc_check_assign, gfc_check_pointer_assign):
1386 Ditto.
1387 * interface.c (gfc_match_abstract_interface, check_interface0): Ditto.
1388 * intrinsic.c (gfc_intrinsic_func_interface): Ditto.
1389 * io.c (format_lex, resolve_tag_format, resolve_tag,
1390 compare_to_allowed_values, gfc_match_open, gfc_match_rewind,
1391 gfc_resolve_dt, gfc_match_wait): Ditto.
1392 * match.c (match_arithmetic_if, gfc_match_if, gfc_match_critical,
1393 gfc_match_do, match_exit_cycle, gfc_match_pause, gfc_match_stop,
1394 gfc_match_lock, sync_statement, gfc_match_assign, gfc_match_goto,
1395 gfc_match_allocate, gfc_match_return, gfc_match_st_function): Ditto.
1396 * module.c (gfc_match_use, gfc_use_module): Ditto.
1397 * parse.c (parse_derived_contains, parse_block_construct,
1398 parse_associate, parse_contained): Ditto.
1399 * primary.c (match_hollerith_constant, match_boz_constant,
1400 match_real_constant, match_sym_complex_part, match_arg_list_function,
1401 build_actual_constructor, gfc_convert_to_structure_constructor): Ditto.
1402 * resolve.c (resolve_formal_arglist, resolve_entries,
1403 resolve_common_blocks, resolve_actual_arglist, gfc_resolve_index_1,
1404 gfc_resolve_iterator_expr, resolve_ordinary_assign,
1405 resolve_fl_var_and_proc, resolve_fl_variable_derived,
1406 resolve_fl_procedure, resolve_fl_derived0, resolve_fl_derived,
1407 resolve_fl_namelist, resolve_symbol, resolve_fntype): Ditto.
1408 * symbol.c (check_conflict, conflict, gfc_add_is_bind_c,
1409 gfc_add_extension, gfc_check_symbol_typed): Ditto.
1410
1411 2012-07-17 Tobias Burnus <burnus@net-b.de>
1412
1413 PR fortran/53985
1414 * decl.c (gfc_verify_c_interop_param): Make warning conditional
1415 on -Wc-binding-type works and improve the wording.
1416
1417 2012-07-17 Tobias Burnus <burnus@net-b.de>
1418
1419 PR fortran/52101
1420 * decl.c (match_char_length): Extra argument, show obsolenscent
1421 warning only if *length is used after the typename.
1422 (variable_decl, gfc_match_char_spec): Update call
1423
1424 2012-07-17 Tobias Burnus <burnus@net-b.de>
1425 Steven G. Kargl <kargl@gcc.gnu.org>
1426
1427 PR fortran/49265
1428 * decl.c (match_procedure_in_interface): Support "::" for
1429 Fortran 2008 and later.
1430
1431 2012-07-16 Thomas König <tkoenig@gcc.gnu.org>
1432
1433 PR fortran/53824
1434 * resolve.c (resolve_allocate_deallocate): If both
1435 start indices are NULL, skip the test for equality.
1436
1437 2012-07-16 Steven Bosscher <steven@gcc.gnu.org>
1438
1439 * f95-lang.c: Include dumpfile.h instead of tree-dump.h.
1440 * Make-lang.in: Fix dependencies.
1441
1442 2012-07-16 Janus Weil <janus@gcc.gnu.org>
1443
1444 PR fortran/53956
1445 * gfortran.h (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Modified
1446 prototypes.
1447 * symbol.c (gfc_copy_formal_args): New argument 'if_src'. Copy if_source
1448 of dummy procedures.
1449 (gfc_copy_formal_args_ppc): Ditto.
1450 * resolve.c (resolve_procedure_interface): Pass IFSRC_DECL to
1451 gfc_copy_formal_args.
1452 (resolve_fl_derived0): Pass IFSRC_DECL to gfc_copy_formal_args_ppc.
1453
1454 2012-07-12 Tobias Burnus <burnus@net-b.de>
1455
1456 * trans-expr.c (conv_isocbinding_procedure): Generate c_f_pointer code
1457 inline.
1458
1459 2012-07-11 Steven Bosscher <steven@gcc.gnu.org>
1460
1461 * trans.c: Do not include defaults.h.
1462 * trans-intrinsic.c: Likewise.
1463
1464 2012-07-08 Steven Bosscher <steven@gcc.gnu.org>
1465
1466 * gfortran.h: Do not include coretypes.h here.
1467 Make it an error to include this before coretypes.h
1468 * openmp.c: Include coretypes.h.
1469 * interface.c: Likewise.
1470 * intrinsic.c: Likewise.
1471 * symbol.c: Likewise.
1472 * class.c: Likewise.
1473 * decl.c: Likewise.
1474 * matchexp.c: Likewise.
1475 * dump-parse-tree.c: Likewise.
1476 * array.c: Likewise.
1477 * constructor.c: Likewise.
1478 * error.c: Likewise.
1479 * data.c: Likewise.
1480 * expr.c: Likewise.
1481 * module.c: Likewise.
1482 * scanner.c: Likewise.
1483 * bbt.c: Likewise.
1484 * io.c: Likewise.
1485 * frontend-passes.c: Likewise.
1486 * resolve.c: Likewise.
1487 * st.c: Likewise.
1488 * target-memory.c: Likewise.
1489 * match.c: Likewise.
1490 * arith.c: Likewise.
1491 * parse.c: Likewise.
1492 * check.c: Likewise.
1493 * dependency.c: Likewise.
1494 * primary.c: Likewise.
1495 * misc.c: Likewise.
1496 * simplify.c: Likewise.
1497
1498 2012-07-05 Mikael Morin <mikael@gcc.gnu.org>
1499
1500 PR fortran/53732
1501 * trans-array.c (gfc_add_loop_ss_code): Disable self recursive calls
1502 handling nested loop(s) if the subscript flag is true.
1503
1504 2012-07-05 Uros Bizjak <ubizjak@gmail.com>
1505
1506 PR fortran/53449
1507 * parse.c (gfc_parse_file): Initialize errors_before.
1508
1509 2012-06-27 Janus Weil <janus@gcc.gnu.org>
1510
1511 PR fortran/41951
1512 PR fortran/49591
1513 * interface.c (check_new_interface): Rename, add 'loc' argument,
1514 make non-static.
1515 (gfc_add_interface): Rename 'check_new_interface'
1516 * gfortran.h (gfc_check_new_interface): Add prototype.
1517 * resolve.c (resolve_typebound_intrinsic_op): Add typebound operator
1518 targets to non-typebound operator list.
1519
1520 2012-06-22 Janus Weil <janus@gcc.gnu.org>
1521
1522 PR fortran/47710
1523 PR fortran/53328
1524 * interface.c (count_types_test, generic_correspondence,
1525 gfc_compare_interfaces): Ignore PASS arguments.
1526 (check_interface1, compare_parameter): Pass NULL arguments to
1527 gfc_compare_interfaces.
1528 * gfortran.h (gfc_compare_interfaces): Modified prototype.
1529 * expr.c (gfc_check_pointer_assign): Pass NULL arguments to
1530 gfc_compare_interfaces.
1531 * resolve.c (resolve_structure_cons): Ditto.
1532 (check_generic_tbp_ambiguity): Determine PASS arguments and pass them
1533 to gfc_compare_interfaces.
1534
1535 2012-06-21 Janne Blomqvist <jb@gcc.gnu.org>
1536
1537 PR fortran/39654
1538 * iresolve.c (gfc_resolve_ftell): Fix result kind and use new
1539 library function.
1540
1541 2012-06-18 Tobias Burnus <burnus@net-b.de>
1542
1543 * intrinsic.h (gfc_resolve_rank): New prototype.
1544 * intrinsic.c (add_functions): Use gfc_resolve_rank.
1545 * iresolve.c (add_functions): New function.
1546 * trans-intrinsic.c (gfc_conv_intrinsic_rank): New function.
1547 (gfc_conv_intrinsic_function): Call it.
1548
1549 2012-06-18 Tobias Burnus <burnus@net-b.de>
1550
1551 PR fortran/53692
1552 * trans-array.c (set_loop_bounds): Don't scalarize via absent
1553 optional arrays.
1554 * resolve.c (resolve_elemental_actual): Don't stop resolving after printing
1555 a warning.
1556
1557 2012-06-18 Tobias Burnus <burnus@net-b.de>
1558
1559 PR fortran/53526
1560 * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle coarrays.
1561
1562 2012-06-18 Tobias Burnus <burnus@net-b.de>
1563
1564 PR fortran/53526
1565 * check.c (gfc_check_move_alloc): Reject coindexed actual arguments
1566 and those with different corank.
1567
1568 2012-06-17 Tobias Burnus <burnus@net-b.de>
1569
1570 PR fortran/53691
1571 PR fortran/53685
1572 * check.c (gfc_calculate_transfer_sizes): Return if
1573 SIZE= is not constant or source-size cannot be determined.
1574
1575 2012-06-16 Tobias Burnus <burnus@net-b.de>
1576
1577 PR fortran/53642
1578 PR fortran/45170
1579 * frontend-passes.c (optimize_assignment): Don't remove RHS's
1580 trim when assigning to a deferred-length string.
1581 * trans-expr.c (gfc_trans_assignment_1): Ensure that the RHS string
1582 length is evaluated before the deferred-length LHS is reallocated.
1583
1584 2012-06-13 Tobias Burnus <burnus@net-b.de>
1585
1586 PR fortran/53643
1587 * trans-decl.c (init_intent_out_dt): Fix for polymorphic arrays.
1588 * trans-array.c (structure_alloc_comps): Don't loop for
1589 scalar coarrays.
1590
1591 2012-06-13 Tobias Burnus <burnus@net-b.de>
1592
1593 PR fortran/53597
1594 * decl.c (match_attr_spec): Only mark module variables
1595 as SAVE_IMPLICIT for Fortran 2008 and later.
1596
1597 2012-06-08 Janus Weil <janus@gcc.gnu.org>
1598
1599 PR fortran/52552
1600 * match.c (gfc_match_allocate): Modify order of checks. Change wording
1601 of error message. Remove FIXME note.
1602 * resolve.c (resolve_allocate_expr): Add a comment.
1603
1604 2012-06-07 Thomas König <tkoenig@gcc.gnu.org>
1605
1606 PR fortran/52861
1607 * frontend-passes.c (optimize_assignment): Don't set the
1608 length of an empty string for deferred-length character
1609 variables.
1610
1611 2012-06-07 Thomas König <tkoenig@gcc.gnu.org>
1612
1613 PR fortran/52861
1614 * frontend-passes.c (empty_string): Add prototype.
1615 (optimize_assignment): Set the length of an empty string
1616 constant to zero.
1617
1618 2012-06-04 Tobias Burnus <burnus@net-b.de>
1619
1620 PR fortran/50619
1621 * resolve.c (build_default_init_expr): Don't initialize
1622 ASSOCIATE names.
1623
1624 2012-06-03 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1625 Tobias Burnus <burnus@net-b.de>
1626
1627 PR fortran/48831
1628 * gfortran.h (gfc_check_init_expr): Add prototype declaration
1629 of function.
1630 * check.c (kind_check): Change if condition to use
1631 to gfc_check_init_expr.
1632 * expr.c (check_init_expr): Remove forward declaration
1633 and static keyword. Change name in gfc_check_init_expr.
1634 (scalarize_intrinsic_call, check_init_expr_arguments,
1635 check_inquiry, check_conversion, gfc_reduce_init_expr): Update
1636 call to gfc_check_init_expr.
1637
1638 2012-05-31 Steven Bosscher <steven@gcc.gnu.org>
1639
1640 * trans-common.c: Do not include output.h.
1641 * trans-decl.c: Likewise.
1642
1643 2012-05-31 Tobias Burnus <burnus@net-b.de>
1644
1645 PR fortran/53521
1646 * trans.c (gfc_deallocate_scalar_with_status): Properly
1647 handle the case size == 0.
1648
1649 2012-05-30 Tobias Burnus <burnus@net-b.de>
1650
1651 PR c/53502
1652 * decl.c (match_attr_spec): Remove "typedef".
1653
1654 2012-05-30 Tobias Burnus <burnus@net-b.de>
1655
1656 * decl.c: Fix comment typos.
1657 * expr.c: Ditto.
1658 * frontend-passes.c: Ditto.
1659 * match.c: Ditto.
1660 * resolve.c: Ditto.
1661 * trans-array.c: Ditto.
1662 * trans-common.c: Ditto.
1663 * trans-intrinsic.c: Ditto.
1664 * trans-types.c: Ditto.
1665
1666 2012-05-23 Tobias Burnus <burnus@net-b.de>
1667
1668 PR fortran/51055
1669 PR fortran/45170
1670 * match.c (gfc_match_allocate): Set length_from_typespec
1671 for characters.
1672 * resolve.c (resolve_charlen): If set, don't check whether
1673 the len is a specification expression.
1674
1675 2012-05-22 Tobias Burnus <burnus@net-b.de>
1676
1677 PR fortran/53389
1678 * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if
1679 ss->is_alloc_lhs is set.
1680
1681 2012-05-22 Dodji Seketeli <dodji@redhat.com>
1682
1683 PR c++/53322
1684 * f95-lang.c (gfc_init_builtin_functions): Remove the unused
1685 typedef builtin_type.
1686
1687 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org>
1688
1689 PR fortran/52428
1690 * gfortran.texi: Update _gfortran_set_options documentation.
1691 * invoke.texi: Remove runtime behavior description of
1692 -fno-range-check.
1693 * trans-decl.c (create_main_function): Don't pass the range-check
1694 setting to the library.
1695
1696 2012-05-14 Tobias Burnus <burnus@net-b.de>
1697
1698 PR fortran/49110
1699 PR fortran/51055
1700 PR fortran/53329
1701 * trans-expr.c (gfc_trans_assignment_1): Fix allocation
1702 handling for assignment of function results to allocatable
1703 deferred-length strings.
1704 * trans-decl.c (gfc_create_string_length): For deferred-length
1705 module variables, include module name in the assembler name.
1706 (gfc_get_symbol_decl): Don't override the assembler name.
1707
1708 2012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
1709
1710 PR 53063
1711 * options.c (gfc_handle_option): Call lang-specific generated function.
1712
1713 2012-05-13 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
1714 Tobias Burnus <burnus@net-b.de>
1715
1716 PR fortran/52158
1717 PR fortran/45170
1718 PR fortran/49430
1719 * resolve.c (resolve_fl_derived0): Deferred character length
1720 procedure components are supported.
1721 * trans-expr.c (gfc_conv_procedure_call): Handle TBP with
1722 deferred-length results.
1723 (gfc_string_to_single_character): Add a new check to prevent
1724 NULL read.
1725 (gfc_conv_procedure_call): Remove unuseful checks on
1726 symbol's attributes. Add new checks to prevent NULL read on
1727 string length.
1728
1729 2012-05-12 Tobias Burnus <burnus@net-b.de>
1730
1731 PR fortran/49110
1732 PR fortran/52843
1733 * resolve.c (resolve_fl_procedure): Don't regard
1734 character(len=:) as character(*) in the diagnostic.
1735
1736 2012-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
1737
1738 PR fortran/52537
1739 * frontend-passes.c (optimize_op): Change
1740 old-style comparison operators to new-style, simplify
1741 switch as a result.
1742 (empty_string): New function.
1743 (get_len_trim_call): New function.
1744 (optimize_comparison): If comparing to an empty string,
1745 use comparison of len_trim to zero.
1746 Use new-style comparison operators only.
1747 (optimize_trim): Use get_len_trim_call.
1748
1749 2012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
1750
1751 PR 53063
1752 * options.c: Include diagnostics.h instead of
1753 diagnostics-core.h.
1754 (set_Wall): Do not see warn_unused here.
1755 (gfc_handle_option): Set it here using handle_generated_option.
1756
1757 2012-05-08 Jan Hubicka <jh@suse.cz>
1758
1759 * trans-common.c (create_common): Do not fake TREE_ASM_WRITTEN.
1760 * trans-decl.c (gfc_finish_cray_pointee): Likewise.
1761
1762 2012-05-07 Tobias Burnus <burnus@net-b.de>
1763
1764 PR fortran/53255
1765 * resolve.c (resolve_typebound_static): Fix handling
1766 of overridden specific to generic operator.
1767
1768 2012-05-06 Tobias Burnus <burnus@net-b.de>
1769
1770 PR fortran/41587
1771 * decl.c (build_struct): Don't ignore FAILED status.
1772
1773 2012-05-05 Paul Thomas <pault@gcc.gnu.org>
1774
1775 PR fortran/41600
1776 * trans-array.c (build_array_ref): New static function.
1777 (gfc_conv_array_ref, gfc_get_dataptr_offset): Call it.
1778 * trans-expr.c (gfc_get_vptr_from_expr): New function.
1779 (gfc_conv_derived_to_class): Add a new argument for a caller
1780 supplied vptr and use it if it is not NULL.
1781 (gfc_conv_procedure_call): Add NULL to call to above.
1782 symbol.c (gfc_is_associate_pointer): Return true if symbol is
1783 a class object.
1784 * trans-stmt.c (trans_associate_var): Handle class associate-
1785 names.
1786 * expr.c (gfc_get_variable_expr): Supply the array-spec if
1787 possible.
1788 * trans-types.c (gfc_typenode_for_spec): Set GFC_CLASS_TYPE_P
1789 for class types.
1790 * trans.h : Add prototypes for gfc_get_vptr_from_expr and
1791 gfc_conv_derived_to_class. Define GFC_CLASS_TYPE_P.
1792 * resolve.c (resolve_variable): For class arrays, ensure that
1793 the target expression has all the necessary _data references.
1794 (resolve_assoc_var): Throw a "not yet implemented" error for
1795 class array selectors that need a temporary.
1796 * match.c (copy_ts_from_selector_to_associate,
1797 select_derived_set_tmp, select_class_set_tmp): New functions.
1798 (select_type_set_tmp): Call one of last two new functions.
1799 (gfc_match_select_type): Copy_ts_from_selector_to_associate is
1800 called if associate-name is typed.
1801
1802 PR fortran/53191
1803 * resolve.c (resolve_ref): C614 applied to class expressions.
1804
1805 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org>
1806
1807 PR fortran/49010
1808 PR fortran/24518
1809 * intrinsic.texi (MOD, MODULO): Mention sign and magnitude of result.
1810 * simplify.c (gfc_simplify_mod): Use mpfr_fmod.
1811 (gfc_simplify_modulo): Likewise, use copysign to fix the result if
1812 zero.
1813 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as
1814 builtin_fmod is always available. For modulo, call copysign to fix
1815 the result when signed zeros are enabled.
1816
1817 2012-05-05 Janne Blomqvist <jb@gcc.gnu.org>
1818
1819 * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain
1820 algorithm for choosing temp directory.
1821
1822 2012-05-04 Tobias Burnus <burnus@net-b.de>
1823
1824 PR fortran/53175
1825 * resolve.c (resolve_variable): Set public_used
1826 if a private module variable is used in a (public)
1827 specification expression.
1828 * trans-decl.c (gfc_finish_var_decl): Mark those
1829 TREE_PUBLIC.
1830
1831 2012-05-04 Tobias Burnus <burnus@net-b.de>
1832
1833 PR fortran/53111
1834 * resolve.c (resolve_fl_derived): Fix -std=f95
1835 diagnostic for generic vs. DT names.
1836
1837 2012-05-03 Tobias Burnus <burnus@net-b.de>
1838
1839 PR fortran/52864
1840 * interface.c (compare_parameter_intent): Remove.
1841 (check_intents): Remove call, handle CLASS pointer.
1842 (compare_actual_formal): Handle CLASS pointer.
1843
1844 2012-04-30 Jan Hubicka <jh@suse.cz>
1845
1846 * f95-lang.c (gfc_finish): Update comments.
1847
1848 2012-04-29 Thomas Koenig <tkoenig@gcc.gnu.org>
1849
1850 PR fortran/53148
1851 * frontend-passes.c (create_var): If the statement has a label,
1852 put the label around the block.
1853
1854 2012-04-25 Tobias Burnus <burnus@net-b.de>
1855
1856 PR fortran/52196
1857 * lang.opt (Wrealloc-lhs, Wrealloc-lhs-all): New flags.
1858 * gfortran.h (gfc_option_t): Add them.
1859 * options.c (gfc_init_options, gfc_post_options,
1860 gfc_handle_option): Handle them.
1861 * invoke.texi: Document them.
1862 * trans-expr.c (realloc_lhs_warning): New function.
1863 (gfc_trans_arrayfunc_assign,
1864 alloc_scalar_allocatable_for_assignment,
1865 gfc_trans_assignment_1): Use it.
1866
1867 2012-04-18 Steven Bosscher <steven@gcc.gnu.org>
1868
1869 * trans-decl.c (gfc_trans_entry_master_switch): Build SWITCH_EXPR
1870 with NULL_TREE type instead of void_type_node.
1871 * trans-io.c (io_result): Likewise.
1872 * trans-stmt.c (gfc_trans_integer_select,
1873 gfc_trans_character_select): Likewise.
1874
1875 2012-04-16 Tobias Burnus <burnus@net-b.de>
1876
1877 PR fortran/52864
1878 * expr.c (gfc_check_vardef_context): Fix assignment check for
1879 pointer components.
1880
1881 2012-04-16 Janus Weil <janus@gcc.gnu.org>
1882
1883 PR fortran/52968
1884 * class.c (gfc_build_class_symbol): Make sure the 'f2k_derived'
1885 namespace is present.
1886
1887 2012-04-15 Janus Weil <janus@gcc.gnu.org>
1888
1889 PR fortran/51082
1890 * trans-expr.c (gfc_conv_expr_reference): Check if the expression is a
1891 simple function call (or a more involved PPC reference).
1892
1893 2012-04-15 Tobias Burnus <burnus@net-b.de>
1894
1895 PR fortran/52916
1896 PR fortran/40973
1897 * gfortran.h (symbol_attribute): Add public_used.
1898 * interface.c (check_sym_interfaces, check_uop_interfaces,
1899 gfc_check_interfaces): Set it.
1900 * resolve.c (resolve_typebound_procedure): Ditto.
1901 * trans-decl.c (build_function_decl): Use it.
1902
1903 2012-04-11 Tobias Burnus <burnus@net-b.de>
1904
1905 PR fortran/52729
1906 * resolve.c (resolve_symbol): Fix searching for parent NS decl.
1907
1908 2012-04-08 Tobias Burnus <burnus@net-b.de>
1909
1910 PR fortran/52751
1911 * trans-decl.c (gfc_finish_var_decl): Don't set TREE_PUBLIC
1912 for PRIVATE module variables without C-binding label.
1913
1914 PR fortran/40973
1915 * trans-decl.c (build_function_decl): Ditto for procedures.
1916
1917 2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
1918
1919 PR fortran/52893
1920 * frontend-passes.c: Keep track of wether we are in an implicit
1921 DO loop; do not do function elimination if we are.
1922
1923 2012-04-06 Thomas Koenig <tkoenig@gcc.gnu.org>
1924
1925 PR fortran/52668
1926 * module.c: Only mark symbols as use_only if they have been
1927 imported via an only list.
1928
1929 2012-03-28 Paul Thomas <pault@gcc.gnu.org>
1930 Tobias Burnus <burnus@gcc.gnu.org>
1931
1932 PR fortran/52652
1933 * match.c (gfc_match_allocate, gfc_match_deallocate): Change
1934 "not.. or" to "neither.. nor".
1935 * parse.c (decode_specification_statement): Correct error in
1936 chpice of matching function for "allocatable".
1937
1938 2012-03-23 Janne Blomqvist <jb@gcc.gnu.org>
1939
1940 * gfortran.h (GFC_MAX_LINE): Remove unused macro.
1941
1942 2012-03-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1943
1944 PR fortran/52559
1945 * error.c (gfc_widechar_display_length): Consider tabs as
1946 one character wide, as they're displayed as spaces.
1947 (show_locus): Move tab handling to...
1948 (print_wide_char_into_buffer): ... here.
1949
1950 2012-03-17 Tobias Burnus <burnus@net-b.de>
1951
1952 PR fortran/52585
1953 * trans-intrinsic.c (gfc_conv_associated): Fix handling of
1954 procpointer dummy arguments.
1955
1956 2012-03-16 Janne Blomqvist <jb@gcc.gnu.org>
1957
1958 * trans-intrinsic.c (build_round_expr): Don't use BUILT_IN_IROUND
1959 for __float128.
1960
1961 2012-03-15 Janne Blomqvist <jb@gcc.gnu.org>
1962
1963 * f95-lang.c (gfc_init_builtin_functions): Initialize
1964 BUILT_IN_IROUND.
1965 * mathbuiltins.def: Add IROUND.
1966 * trans-intrinsic.c (build_round_expr): Use BUILT_IN_IROUND if
1967 type size matches.
1968 (gfc_build_intrinsic_lib_fndecls): Build iround functions.
1969
1970 2012-03-12 Richard Guenther <rguenther@suse.de>
1971
1972 * f95-lang.c (builtin_type_for_size): Use gfc_type_for_size.
1973
1974 2012-03-12 Tobias Burnus <burnus@net-b.de>
1975
1976 PR fortran/52542
1977 * decl.c (match_procedure_decl): If the interface
1978 is bind(C), the procedure is as well.
1979
1980 2012-03-10 Steven Bosscher <steven@gcc.gnu.org>
1981
1982 * convert.c (convert): Fold BOOLEAN_TYPE types to the proper variant.
1983
1984 2012-03-09 Steven Bosscher <steven@gcc.gnu.org>
1985
1986 * Make-lang.in (convert.o): Depend on convert.h.
1987 * convert.c: Header and comment cleanups.
1988 (gfc_thruthvalue_conversion): Rename static function
1989 to truthvalue_conversion. Do not use 'internal_error' from here,
1990 use 'gcc_unreachable' instead.
1991 (convert): Do not use 'error' for conversions to void, use
1992 'gcc_unreachable' instead. Likewise for conversions to non-scalar
1993 types. Do not hanlde ENUMERAL_TYPE, the front end never creates them.
1994 Clean up #if 0 code.
1995
1996 2012-03-08 Tobias Burnus <burnus@net-b.de>
1997
1998 PR fortran/52469
1999 * trans-types.c (gfc_get_function_type): Handle backend_decl
2000 of a procedure pointer.
2001
2002 2012-03-06 Steven Bosscher <steven@gcc.gnu.org>
2003
2004 * f95-lang.c (yyerror, yylex): Remove.
2005 (clear_binding_stack): Remove, fold into its only user.
2006 (LANG_HOOKS_PRINT_IDENTIFIER): Do not re-define.
2007 (ridpointers): Remove.
2008 (gfc_eh_initialized_p): Make static.
2009 (gfc_truthvalue_conversion): Move to convert.c.
2010 (gfc_be_parse_file): Clear binding level stack when done.
2011 (gfc_print_identifier): Remove.
2012 (pushlevel): Remove ignored 'ignore' argument. Update all callers.
2013 (poplevel): Remove unused 'reverse' argument. Update all callers.
2014 (ggc_p): Remove.
2015 (gfc_builtin_function): Make static. Do not attempt to make RTL for
2016 builtin functions.
2017 * convert.c (gfc_truthvalue_conversion): Moved here from f95-lang.c,
2018 and made static.
2019 * trans.h (pushlevel, poplevel): Adjust prototypes.
2020 (gfc_truthvalue_conversion, gfc_builtin_function): Remove prototypes.
2021 * trans-openmp.c: Update calls to pushlevel and poplevel.
2022 * trans.c: Likewise.
2023 * trans-decl.c: Likewise.
2024
2025 2012-03-04 Mikael Morin <mikael@gcc.gnu.org>
2026
2027 PR fortran/50981
2028 * gfortran.h (gfc_is_class_container_ref): New prototype.
2029 * class.c (gfc_is_class_container_ref): New function.
2030 * trans-expr.c (gfc_conv_procedure_call): Add a "_data" component
2031 reference to polymorphic actual arguments.
2032
2033 2012-03-04 Mikael Morin <mikael@gcc.gnu.org>
2034
2035 PR fortran/50981
2036 * trans-expr.c (gfc_conv_procedure_call): Save se->ss's value.
2037 Handle the case of unallocated arrays passed to elemental procedures.
2038
2039 2012-03-04 Mikael Morin <mikael@gcc.gnu.org>
2040
2041 * trans.h (struct gfc_ss_info): Move can_be_null_ref component from
2042 the data::scalar subcomponent to the toplevel.
2043 * trans-expr.c (gfc_conv_expr): Update component reference.
2044 * trans-array.c (gfc_add_loop_ss_code): Ditto.
2045 (gfc_walk_elemental_function_args): Ditto. Move the conditional setting
2046 the field out of the scalar-only block.
2047
2048 2012-03-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2049
2050 PR fortran/36160
2051 * error.c (gfc_widechar_display_length, gfc_wide_display_length):
2052 New functions.
2053 (print_wide_char_into_buffer): Return length written.
2054 (show_locus): Fix locus displayed when wide characters are present.
2055
2056 2012-03-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2057
2058 * module.c (gfc_use_module): Improve error message some more.
2059
2060 2012-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2061
2062 PR fortran/52313
2063 * module.c (gfc_use_module): Improve error messages.
2064
2065 2012-03-03 Tobias Burnus <burnus@net-b.de>
2066
2067 PR fortran/48820
2068 * resolve.c (resolve_actual_arglist): Properly reset
2069 assumed_type_expr_allowed.
2070
2071 2012-03-03 Tobias Burnus <burnus@net-b.de>
2072
2073 * lang.opt (Wc-binding-type): New flag.
2074 * options.c (gfc_init_options, gfc_handle_option): Handle it.
2075 * invoke.texi (Wc-binding-type): Document it.
2076 * gfortran.h (gfc_option_t): Add warn_c_binding_type.
2077 * decl.c (verify_bind_c_sym): Handle -Wc-binding-type.
2078 * symbol.c (gfc_set_default_type, verify_bind_c_derived_type):
2079 Ditto.
2080
2081 2012-03-03 Tobias Burnus <burnus@net-b.de>
2082
2083 PR fortran/48820
2084 * decl.c (gfc_match_decl_type_spec): Support type(*).
2085 (gfc_verify_c_interop): Allow type(*).
2086 * dump-parse-tree.c (show_typespec): Handle type(*).
2087 * expr.c (gfc_copy_expr): Ditto.
2088 * interface.c (compare_type_rank, compare_parameter,
2089 compare_actual_formal, gfc_procedure_use): Ditto.
2090 * libgfortran.h (bt): Add BT_ASSUMED.
2091 * misc.c (gfc_basic_typename, gfc_typename): Handle type(*).
2092 * module.c (bt_types): Ditto.
2093 * resolve.c (assumed_type_expr_allowed): New static variable.
2094 (resolve_actual_arglist, resolve_variable, resolve_symbol):
2095 Handle type(*).
2096 * trans-expr.c (gfc_conv_procedure_call): Ditto.
2097 * trans-types.c (gfc_typenode_for_spec, gfc_get_dtype): Ditto.
2098
2099 2012-03-02 Tobias Burnus <burnus@net-b.de>
2100
2101 PR fortran/52325
2102 * primary.c (gfc_match_varspec): Add missing ;.
2103
2104 2012-03-02 Tobias Burnus <burnus@net-b.de>
2105
2106 PR fortran/52325
2107 * primary.c (gfc_match_varspec): Add diagnostic for % with
2108 nonderived types.
2109
2110 2012-03-02 Tobias Burnus <burnus@net-b.de>
2111
2112 PR fortran/52270
2113 * expr.c (gfc_check_vardef_context): Fix check for
2114 intent-in polymorphic pointer .
2115 * interface.c (compare_parameter): Allow passing TYPE to
2116 intent-in polymorphic pointer.
2117
2118 2012-03-02 Tobias Burnus <burnus@net-b.de>
2119
2120 PR fortran/52452
2121 * resolve.c (resolve_intrinsic): Don't search for a
2122 function if we know that it is a subroutine.
2123
2124 2012-02-29 Paul Thomas <pault@gcc.gnu.org>
2125
2126 PR fortran/52386
2127 * trans-expr.c (fcncall_realloc_result): Dereference the
2128 descriptor if needed.
2129
2130 2012-02-22 Tobias Burnus <burnus@net-b.de>
2131
2132 PR fortran/52335
2133 * io.c (gfc_match_open): Remove bogus F2003 DELIM= check.
2134
2135 2012-02-18 Tobias Burnus <burnus@net-b.de>
2136
2137 PR fortran/52295
2138 * interface.c (check_interface0): Internal procs in
2139 generic interfaces are allowed in Fortran 2008.
2140
2141 2012-02-17 Tobias Burnus <burnus@net-b.de>
2142 Roland Stigge <stigge@antcom.de>
2143
2144 PR translation/52273
2145 * interface.c (compare_actual_formal): Fix typo "at at".
2146
2147 2012-02-17 Tobias Burnus <burnus@net-b.de>
2148
2149 * gfortran.texi (Q exponent-letter): Fix grammar.
2150
2151 2012-02-17 Tobias Burnus <burnus@net-b.de>
2152
2153 * gfortran.texi (Status): Fix typos.
2154 * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with
2155 a majuscule.
2156
2157 2012-02-17 Tobias Burnus <burnus@net-b.de>
2158 Roland Stigge <stigge@antcom.de>
2159
2160 PR translation/52232
2161 PR translation/52234
2162 PR translation/52245
2163 PR translation/52246
2164 PR translation/52262
2165 PR translation/52273
2166 * io.c (gfc_match_open): Fix typo.
2167 * interface.c (compare_actual_formal): Ditto.
2168 * lang.opt (freal-4-real-8, freal-4-real-16, freal-8-real-16): Ditto.
2169 * match.c (alloc_opt_list, gfc_match_nullify): Ditto.
2170 * check.c (gfc_check_associated, gfc_check_null): Ditto.
2171
2172 2012-02-12 Mikael Morin <mikael@gcc.gnu.org>
2173
2174 PR fortran/50981
2175 * trans-stmt.c (gfc_get_proc_ifc_for_call): New function.
2176 (gfc_trans_call): Use gfc_get_proc_ifc_for_call.
2177
2178 2012-02-12 Mikael Morin <mikael@gcc.gnu.org>
2179
2180 * trans-array.c (gfc_walk_elemental_function_args,
2181 gfc_walk_function_expr): Move call to gfc_get_proc_ifc_for_expr out
2182 of gfc_walk_elemental_function_args.
2183 * trans-stmt.c (gfc_trans_call): Ditto.
2184 * trans-array.h (gfc_get_proc_ifc_for_expr): New prototype.
2185 (gfc_walk_elemental_function_args): Update prototype.
2186
2187 2012-02-12 Mikael Morin <mikael@gcc.gnu.org>
2188
2189 * trans-array.c (gfc_get_proc_ifc_for_expr): New function.
2190 (gfc_walk_elemental_function_args): Move code to
2191 gfc_get_proc_ifc_for_expr and call it.
2192
2193 2012-02-08 Tobias Burnus <burnus@net-b.de>
2194
2195 PR fortran/52151
2196 * trans-expr.c (fcncall_realloc_result): Set also the stride.
2197
2198 2012-02-07 Tobias Burnus <burnus@net-b.de>
2199
2200 PR fortran/51514
2201 * trans-expr.c (gfc_conv_procedure_call): Add _data component
2202 for calls of scalar CLASS actuals to TYPE dummies.
2203
2204 2012-02-05 Thomas König <tkoenig@gcc.gnu.org>
2205
2206 PR fortran/48847
2207 * trans-decl.c: Warn about unused dummy procedure arguments
2208 if -Wunused-dummy-argument is specified. Suppress middle-end
2209 warnings about procedure arguments.
2210
2211 2012-02-05 Paul Thomas <pault@gcc.gnu.org>
2212
2213 * trans-array.c (gfc_array_allocate): Zero memory for all class
2214 array allocations.
2215 * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars.
2216
2217 PR fortran/52102
2218 * trans-stmt.c (gfc_trans_allocate): Before correcting a class
2219 array reference, ensure that 'dataref' points to the _data
2220 component that is followed by the array reference..
2221
2222 2012-02-02 Mikael Morin <mikael@gcc.gnu.org>
2223
2224 PR fortran/41587
2225 PR fortran/46356
2226 PR fortran/51754
2227 PR fortran/50981
2228 * class.c (insert_component_ref, class_data_ref_missing,
2229 gfc_fix_class_refs): New functions.
2230 * gfortran.h (gfc_fix_class_refs): New prototype.
2231 * trans-expr.c (gfc_conv_expr): Remove special case handling and call
2232 gfc_fix_class_refs instead.
2233
2234 2012-02-02 Paul Thomas <pault@gcc.gnu.org>
2235
2236 PR fortran/52012
2237 * trans-expr.c (fcncall_realloc_result): If variable shape is
2238 correct, retain the bounds, whatever they are.
2239
2240 2012-02-02 Tobias Burnus <burnus@net-b.de>
2241
2242 PR fortran/52093
2243 * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
2244
2245 2012-02-01 Thomas König <tkoenig@gcc.gnu.org>
2246
2247 PR fortran/51958
2248 * frontend-passes.c (convert_elseif): New function.
2249 (optimize_namespace): Call it.
2250
2251 2012-02-01 Tobias Burnus <burnus@net-b.de>
2252
2253 PR fortran/52024
2254 * module.c (MOD_VERSION): Bump.
2255 (mio_typebound_proc): Read/write is_operator from/to the
2256 .mod file.
2257
2258 2012-02-01 Tobias Burnus <burnus@net-b.de>
2259
2260 PR fortran/52059
2261 * trans-expr.c (gfc_conv_procedure_call): Add array ref
2262 only to variables.
2263
2264 2012-01-31 Tobias Burnus <burnus@net-b.de>
2265
2266 PR fortran/52024
2267 * gfortran.h (gfc_tbp_generic): Store whether the
2268 generic is an operator.
2269 * decl.c (gfc_match_generic): Set that flag.
2270 * resolve.c (check_generic_tbp_ambiguity): Use it in the
2271 gfc_compare_interfaces check.
2272
2273 2012-01-31 Tobias Burnus <burnus@net-b.de>
2274
2275 PR fortran/52029
2276 * class.c (gfc_find_derived_vtab): Mark _copy function as pure.
2277
2278 2012-01-31 Tobias Burnus <burnus@net-b.de>
2279
2280 PR fortran/52013
2281 * class.c (get_unique_hashed_string): Adapt trim length.
2282 (gfc_build_class_symbol) Encode also corank in the container name.
2283
2284 2012-01-31 Paul Thomas <pault@gcc.gnu.org>
2285
2286 PR fortran/52012
2287 * trans-expr.c (fcncall_realloc_result): Correct calculation of
2288 result offset.
2289
2290 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
2291
2292 * module.c (pointer_info): Make true_name and module pointers
2293 rather than arrays, order pointers before other fields.
2294 (free_pi_tree): free true_name and module as well.
2295 (mio_read_string): Rename to read_string.
2296 (mio_write_string): Remove.
2297 (load_commons): Use read_string.
2298 (read_module): Use read_string rather than mio_internal_string.
2299 (write_blank_common): Call write_atom directly.
2300 (write_symbol): Likewise.
2301
2302 2012-01-29 Tobias Burnus <burnus@net-b.de>
2303
2304 PR fortran/41600
2305 * expr.c (gfc_default_initializer): Convert the values if
2306 the type does not match.
2307
2308 2012-01-29 Tobias Burnus <burnus@net-b.de>
2309
2310 PR fortran/51972
2311 * trans-array.c (structure_alloc_comps): Fix assignment of
2312 polymorphic components (polymorphic deep copying).
2313
2314 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
2315
2316 PR fortran/51808
2317 * decl.c (set_binding_label): Make binding_label argument const.
2318 (curr_binding_label): Constify.
2319 * gfortran.h (gfc_symbol): Constify binding_label.
2320 (gfc_common_head): Likewise.
2321 (get_iso_c_sym): Likewise.
2322 * match.c (gfc_match_name_C): Constify buffer argument.
2323 * match.h (gfc_match_name_C): Likewise.
2324 * resolve.c (set_name_and_label): Constify binding_label argument.
2325 (gfc_iso_c_sub_interface): Constify binding_label variable.
2326 * symbol.c (get_iso_c_sym): Constify binding_label argument.
2327
2328 2012-01-29 Janne Blomqvist <jb@gcc.gnu.org>
2329
2330 PR fortran/51808
2331 * decl.c (set_binding_label): Move prototype from match.h to here.
2332 (curr_binding_label): Make a pointer rather than static array.
2333 (build_sym): Check sym->binding_label pointer rather than array,
2334 update set_binding_label call, handle curr_binding_label changes.
2335 (set_binding_label): Handle new curr_binding_label, dest_label
2336 double ptr, and sym->binding_label.
2337 (verify_bind_c_sym): Handle sym->binding_label being a pointer.
2338 (set_verify_bind_c_sym): Check sym->binding_label pointer rather
2339 than array, update set_binding_label call.
2340 (gfc_match_bind_c_stmt): Handle curr_binding_label change.
2341 (match_procedure_decl): Update set_binding_label call.
2342 (gfc_match_bind_c): Change binding_label to pointer, update
2343 gfc_match_name_C call.
2344 * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro.
2345 (gfc_symbol): Make binding_label a pointer.
2346 (gfc_common_head): Likewise.
2347 * match.c (gfc_match_name_C): Heap allocate bind(C) name.
2348 * match.h (gfc_match_name_C): Change prototype argument.
2349 (set_binding_label): Move prototype to decl.c.
2350 * module.c (struct pointer_info): Make binding_label a pointer.
2351 (free_pi_tree): Free unused binding_label.
2352 (mio_read_string): New function.
2353 (mio_write_string): New function.
2354 (load_commons): Redo reading of binding_label.
2355 (read_module): Likewise.
2356 (write_common_0): Change to write empty string instead of name if
2357 no binding_label.
2358 (write_blank_common): Write empty string for binding label.
2359 (write_symbol): Change to write empty string instead of name if no
2360 binding_label.
2361 * resolve.c (gfc_iso_c_func_interface): Don't set binding_label.
2362 (set_name_and_label): Make binding_label double pointer, use
2363 asprintf.
2364 (gfc_iso_c_sub_interface): Make binding_label a pointer.
2365 (resolve_bind_c_comms): Handle cases if
2366 gfc_common_head->binding_label is NULL.
2367 (gfc_verify_binding_labels): sym->binding_label is a pointer.
2368 * symbol.c (gfc_new_symbol): Rely on XCNEW zero init for
2369 binding_label.
2370 (gen_special_c_interop_ptr): Don't set binding label.
2371 (generate_isocbinding_symbol): Insert binding_label into symbol
2372 table.
2373 (get_iso_c_sym): Use pointer assignment instead of strcpy.
2374 * trans-common.c (gfc_sym_mangled_common_id): Handle
2375 com->binding_label being a pointer.
2376 * trans-decl.c (gfc_sym_mangled_identifier): Handle
2377 sym->binding_label being a pointer.
2378 (gfc_sym_mangled_function_id): Likewise.
2379
2380 2012-01-29 Tobias Burnus <burnus@net-b.de>
2381
2382 PR fortran/52038
2383 * resolve.c (symbol_as): Remove unused, accidentally
2384 added function.
2385
2386 2012-01-28 Tobias Burnus <burnus@net-b.de>
2387
2388 PR fortran/51972
2389 * trans-stmt.c (gfc_trans_allocate): Properly check whether
2390 we have a BT_CLASS which needs to be memset.
2391
2392 2012-01-27 Tobias Burnus <burnus@net-b.de>
2393
2394 PR fortran/52022
2395 * trans-expr.c (gfc_conv_procedure_call): Fix passing
2396 of functions, which return allocatables.
2397
2398 2012-01-27 Tobias Burnus <burnus@net-b.de>
2399
2400 PR fortran/52016
2401 * resolve.c (resolve_formal_arglist): Fix elemental
2402 constraint checks for polymorphic dummies also for
2403 pointers.
2404
2405 2012-01-27 Tobias Burnus <burnus@net-b.de>
2406
2407 PR fortran/51970
2408 PR fortran/51977
2409 * primary.c (gfc_match_varspec. gfc_match_rvalue): Set
2410 handle array spec for BT_CLASS.
2411 * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym)
2412 * frontend-passes.c (create_var): Ditto.
2413 * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto.
2414 * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer
2415 instead of attr.pointer.
2416 (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS.
2417 * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert.
2418 * trans-stmt.c (trans_associate_var): Ask for the descriptor.
2419
2420 2012-01-27 Tobias Burnus <burnus@net-b.de>
2421
2422 PR fortran/51953
2423 * match.c (gfc_match_allocate): Allow more than allocate
2424 object with SOURCE=.
2425
2426 2012-01-27 Tobias Burnus <burnus@net-b.de>
2427
2428 PR fortran/52016
2429 * resolve.c (resolve_formal_arglist): Fix elemental
2430 constraint checks for polymorphic dummies.
2431
2432 2012-01-27 Paul Thomas <pault@gcc.gnu.org>
2433 Tobias Burnus <burnus@gcc.gnu.org>
2434
2435 PR fortran/48705
2436 PR fortran/51870
2437 PR fortran/51943
2438 PR fortran/51946
2439 * trans-array.c (gfc_array_init_size): Add two extra arguments
2440 to convey the dynamic element size of a calls object and to
2441 return the number of elements that have been allocated.
2442 (gfc_array_allocate): Add the same arguments and use them to
2443 call gfc_array_init_size. Before the allocation dereference
2444 the data pointer, if necessary. Set the allocated array to zero
2445 if the class element size or expr3 are non-null.
2446 * trans-expr.c (gfc_conv_class_to_class): Give this function
2447 global scope.
2448 (get_class_array_ref): New function.
2449 (gfc_copy_class_to_class): New function.
2450 * trans-array.h : Update prototype for gfc_array_allocate.
2451 * trans-stmt.c (gfc_trans_allocate): For non-variable class
2452 STATUS expressions extract the class object and the dynamic
2453 element size. Use the latter to call gfc_array_allocate and
2454 the former for setting the vptr and, via
2455 gfc_copy_class_to_clasfc_cs, to copy to the allocated data.
2456 * trans.h : Prototypes for gfc_get_class_array_ref,
2457 gfc_copy_class_to_class and gfc_conv_class_to_class.
2458
2459 2012-01-25 Tobias Burnus <burnus@net-b.de>
2460
2461 * resolve.c (symbol_as): Check also for attr.class_ok.
2462
2463 2012-01-25 Tobias Burnus <burnus@net-b.de>
2464
2465 PR fortran/51995
2466 * class.c (gfc_build_class_symbol): Fix invalid freeing
2467 issue with fclass->f2k_derived.
2468
2469 2012-01-25 Tobias Burnus <burnus@net-b.de>
2470
2471 PR fortran/51995
2472 * class.c (gfc_build_class_symbol): Ensure that
2473 fclass->f2k_derived is set.
2474
2475 2012-01-25 Tobias Burnus <burnus@net-b.de>
2476
2477 PR fortran/51966
2478 * resolve.c (resolve_structure_cons): Only create an
2479 array constructors for nonscalars.
2480
2481 2012-01-23 Tobias Burnus <burnus@net-b.de>
2482
2483 PR fortran/51948
2484 * check.c (variable_check): Fix checking for
2485 variables and deeply nested BLOCKs.
2486
2487 2012-01-21 Tobias Burnus <burnus@net-b.de>
2488 Steven G. Kargl <kargl@gcc.gnu.org>
2489
2490 PR fortran/50556
2491 * symbol.c (check_conflict): namelist-group-name cannot have the SAVE
2492 attribute.
2493
2494 2012-01-21 Tobias Burnus <burnus@net-b.de>
2495
2496 PR fortran/51913
2497 * interface.c (compare_parameter): Fix CLASS comparison.
2498
2499 2012-01-20 Tobias Burnus <burnus@net-b.de>
2500 Janus Weil <janus@gcc.gnu.org>
2501
2502 PR fortran/51056
2503 * module.c (load_needed, read_module): Don't mark __vtab etc.
2504 as use_only.
2505
2506 2012-01-19 Tobias Burnus <burnus@net-b.de>
2507
2508 PR fortran/51904
2509 * expr.c (gfc_build_intrinsic_call): Also set the symtree.
2510
2511 2012-01-18 Paul Thomas <pault@gcc.gnu.org>
2512
2513 PR fortran/51634
2514 * trans-expr.c (gfc_conv_procedure_call): Deallocate allocatable
2515 components of temporary class arguments.
2516
2517 2012-01-17 Tobias Burnus <burnus@net-b.de>
2518 Janne Blomqvist <jb@gcc.gnu.org>
2519
2520 PR fortran/51869
2521 * trans-expr.c (alloc_scalar_allocatable_for_assignment): Nullify
2522 LHS after allocation, if it has allocatable components.
2523 * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_CALLOC.
2524
2525 2012-01-16 Mikael Morin <mikael@gcc.gnu.org>
2526 Tobias Burnus <burnus@net-b.de>
2527
2528 PR fortran/50981
2529 * trans-array.c (gfc_walk_elemental_function_args): Fix
2530 passing of deallocated allocatables/pointers as absent argument.
2531
2532 2012-01-16 Tobias Burnus <burnus@net-b.de>
2533
2534 PR fortran/51809
2535 * class.c (gfc_find_derived_vtab): Mark __vtab and
2536 __def_init as FL_VARIABLE not as FL_PARAMETER.
2537 * expr.c (gfc_simplify_expr): Remove special
2538 handling of __vtab.
2539 * resolve.c (resolve_values): Ditto.
2540 * trans-decl.c (gfc_get_symbol_decl): Mark __vtab
2541 and __def_init as TREE_READONLY.
2542
2543 2012-01-16 Zydrunas Gimbutas <gimbutas@cims.nyu.edu>
2544 Andreas Kloeckner <kloeckner@cims.nyu.edu>
2545 Steven G. Kargl <kargl@gcc.gnu.org>
2546
2547 PR fortran/48426
2548 * gfortran.h (gfc_option_t): Add members flag_*_kind to store kind.
2549 * lang.opt: Add options -freal-4-real-8, -freal-4-real-10,
2550 -freal-4-real-16, -freal-8-real-4, -freal-8-real-10, -freal-8-real-16
2551 and -finteger-4-integer-8. User-desired type conversion information.
2552 * decl.c (gfc_match_old_kind_spec,kind_expr): Type conversions
2553 in declaration parsing.
2554 * trans-types.c (gfc_init_kinds): User-specified type conversion
2555 checked for current backend.
2556 * primary.c (match_integer_constant,match_real_constant): Implement
2557 type conversion in constant parsing.
2558 * options.c (gfc_init_options,gfc_handle_option): Translate input
2559 options to flags in internal options data structure.
2560 * invoke.texi: Document new options. Re-order options in Options
2561 summary section.
2562
2563 2012-01-16 Paul Thomas <pault@gcc.gnu.org>
2564
2565 * trans-array.c (gfc_trans_create_temp_array): In the case of a
2566 class array temporary, detect a null 'eltype' on entry and use
2567 'initial' to provde the class reference and so, through the
2568 vtable, the element size for the dynamic type.
2569 * trans-stmt.c (gfc_conv_elemental_dependencies): For class
2570 expressions, set 'eltype' to null and pass the values via the
2571 'initial' expression.
2572
2573 2012-01-14 Tobias Burnus <burnus@net-b.de>
2574
2575 PR fortran/51800
2576 * resolve.c (build_default_init_expr): Also initialize
2577 nonconstant-length strings with -finit-character=<n>.
2578
2579 2011-01-14 Tobias Burnus <burnus@net-b.de>
2580
2581 PR fortran/51816
2582 * module.c (read_module): Don't make nonexisting
2583 intrinsic operators as found.
2584 (rename_list_remove_duplicate): New function.
2585 (gfc_use_modules): Use it.
2586
2587 2012-01-13 Paul Thomas <pault@gcc.gnu.org>
2588
2589 PR fortran/48351
2590 * trans-array.c (structure_alloc_comps): Suppress interative
2591 call to self, when current component is deallocated using
2592 gfc_trans_dealloc_allocated.
2593 * class.c (gfc_build_class_symbol): Copy the 'alloc_comp'
2594 attribute from the declared type to the class structure.
2595
2596 2012-01-13 Tobias Burnus <burnus@net-b.de>
2597
2598 PR fortran/51842
2599 * fortran/trans-types.c (gfc_init_kinds): Use PTRDIFF_TYPE
2600 instead of a signed int of size POINTER_SIZE for
2601 gfc_index_integer_kind.
2602
2603 2012-01-12 Tobias Burnus <burnus@net-b.de>
2604
2605 PR fortran/36755
2606 * intrinsic.texi (CHMOD): Extend a bit and remove statement
2607 that /bin/chmod is called.
2608
2609 2012-01-10 Gerald Pfeifer <gerald@pfeifer.com>
2610
2611 * gfortran.texi (Fortran 2003 Status): Fix grammar.
2612
2613 2012-01-10 Tobias Burnus <burnus@net-b.de>
2614
2615 PR fortran/51652
2616 * resolve.c (resolve_allocate_expr): For non-deferred char lengths,
2617 check whether type-spec matches declaration.
2618
2619 2012-01-10 Tobias Burnus <burnus@net-b.de>
2620
2621 * resolve.c (resolve_ordinary_assign): Improve error wording.
2622
2623 2012-01-09 Paul Thomas <pault@gcc.gnu.org>
2624
2625 PR fortran/51791
2626 * interface.c (matching_typebound_op): Drill down through
2627 possible parentheses to obtain base expression. Do not test for
2628 'class_ok' but, instead for the class structure components.
2629 * resolve.c (resolve_ordinary_assign): Extend error message for
2630 polymorphic assignment to advise checking for specific
2631 subroutine.
2632
2633 PR fortran/51792
2634 * resolve.c (resolve_typebound_function): Restore 'static' to
2635 declaration.
2636
2637 2012-01-09 Mikael Morin <mikael@gcc.gnu.org>
2638
2639 PR fortran/51758
2640 * trans-array.c (gfc_walk_elemental_function_args):
2641 Skip over NULL() actual arguments.
2642
2643 2012-01-09 Tobias Burnus <burnus@net-b.de>
2644
2645 * gfortran.texi: Bump copyright year.
2646 (Fortran 2003 Status): Update polymorphism item, add
2647 item for generic interface with DT name.
2648
2649 2012-01-09 Tobias Burnus <burnus@net-b.de>
2650
2651 PR fortran/51578
2652 * gfortran.h (gfc_use_list):
2653 * match.h (gfc_use_module): Rename to ...
2654 (gfc_use_modules): ... this.
2655 * module.c (use_locus, specified_nonint, specified_int): Remove
2656 global variable.
2657 (module_name): Change type to const char*, used with gfc_get_string.
2658 (module_list): New global variable.
2659 (free_rename): Free argument not global var.
2660 (gfc_match_use): Save match to module_list.
2661 (load_generic_interfaces, read_module): Don't free symtree.
2662 (write_dt_extensions, gfc_dump_module): Fix module-name I/O due to the
2663 type change of module_name.
2664 (write_symbol0, write_generic): Optimize due to the type change.
2665 (import_iso_c_binding_module, use_iso_fortran_env_module): Use
2666 locus of rename->where.
2667 (gfc_use_module): Take module_list as argument.
2668 (gfc_use_modules): New function.
2669 (gfc_module_init_2, gfc_module_done_2): Init module_list, rename_list.
2670 * parse.c (last_was_use_stmt): New global variable.
2671 (use_modules): New function.
2672 (decode_specification_statement, decode_statement): Move USE match up
2673 and call use_modules.
2674 (next_free, next_fixed): Call use_modules.
2675 (accept_statement): Don't call gfc_module_use.
2676
2677 2012-01-06 Tobias Burnus <burnus@net-b.de>
2678
2679 * trans-openmp.c (gfc_omp_clause_dtor, gfc_trans_omp_array_reduction):
2680 Update call to gfc_trans_dealloc_allocated.
2681 * trans.c (gfc_allocate_using_malloc): Fix spacing.
2682 (gfc_allocate_allocatable): For gfc_allocate_using_lib, jump to
2683 label_finish when an error occurs.
2684 (gfc_deallocate_with_status): Call caf_deregister for -fcoarray=lib.
2685 * trans.h (gfc_allocate_allocatable, gfc_deallocate_with_status):
2686 Update prototype.
2687 (gfor_fndecl_caf_deregister): New tree symbol.
2688 * trans-expr.c (gfc_conv_procedure_call): Update
2689 gfc_deallocate_with_status and gfc_trans_dealloc_allocated calls.
2690 * trans-array.c (gfc_array_allocate, gfc_trans_dealloc_allocated,
2691 structure_alloc_comps, gfc_trans_deferred_array): Ditto.
2692 (gfc_array_deallocate): Handle coarrays with -fcoarray=lib.
2693 * trans-array.h (gfc_array_deallocate, gfc_array_allocate,
2694 gfc_trans_dealloc_allocated): Update prototypes.
2695 * trans-stmt.c (gfc_trans_sync): Fix indentation.
2696 (gfc_trans_allocate): Fix errmsg padding and label handling.
2697 (gfc_trans_deallocate): Ditto and handle -fcoarray=lib.
2698 * expr.c (gfc_is_coarray): Fix algorithm for BT_CLASS.
2699 * libgfortran.h (GFC_STAT_STOPPED_IMAGE): Use large value
2700 to avoid other stats accidentally matching this one.
2701 * trans-decl.c (gfor_fndecl_caf_deregister): New global var.
2702 (gfc_build_builtin_function_decls): Fix prototype decl of caf_register
2703 and add decl for caf_deregister.
2704 (gfc_trans_deferred_vars): Handle CAF vars with -fcoarrays=lib.
2705 * trans-intrinsic.c (conv_intrinsic_move_alloc): Update call to
2706 gfc_deallocate_with_status.
2707
2708 2012-01-05 Paul Thomas <pault@gcc.gnu.org>
2709
2710 PR fortran/PR48946
2711 * resolve.c (resolve_typebound_static): If the typebound
2712 procedure is 'deferred' try to find the correct specific
2713 procedure in the derived type operator space itself.
2714
2715 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
2716
2717 PR fortran/50981
2718 * trans-array.h (gfc_walk_elemental_function_args): New argument.
2719 * trans-intrinsic.c (gfc_walk_intrinsic_function): Update call.
2720 * trans-stmt.c (gfc_trans_call): Ditto.
2721 * trans-array.c (gfc_walk_function_expr): Ditto.
2722 (gfc_walk_elemental_function_args): Get the dummy argument list
2723 if possible. Check that the dummy and the actual argument are both
2724 optional, and set can_be_null_ref accordingly.
2725
2726 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
2727
2728 PR fortran/50981
2729 * trans.h (struct gfc_ss_info): New field data::scalar::can_be_null_ref
2730 * trans-array.c: If the reference can be NULL, save the reference
2731 instead of the value.
2732 * trans-expr.c (gfc_conv_expr): If we have saved a reference,
2733 dereference it.
2734
2735 2012-01-04 Mikael Morin <mikael@gcc.gnu.org>
2736
2737 * trans-expr.c (gfc_conv_expr): Move address taking...
2738 (gfc_conv_expr_reference): ... here.
2739
2740 2012-01-04 Thomas Koenig <tkoenig@gcc.gnu.org>
2741
2742 PR fortran/49693
2743 * trans-common.c (create_common): Update copyright years. Mark
2744 variables as used to avoid warnings about unused variables in
2745 common blocks.
2746
2747 2012-01-03 Hans-Peter Nilsson <hp@axis.com>
2748
2749 * gfortran.h (struct gfc_expr): Add missing "struct"
2750 qualifier for member base_expr.
2751
2752 2012-01-02 Paul Thomas <pault@gcc.gnu.org>
2753
2754 PR fortran/51529
2755 * trans-array.c (gfc_array_allocate): Null allocated memory of
2756 newly allocted class arrays.
2757
2758 PR fortran/46262
2759 PR fortran/46328
2760 PR fortran/51052
2761 * interface.c(build_compcall_for_operator): Add a type to the
2762 expression.
2763 * trans-expr.c (conv_base_obj_fcn_val): New function.
2764 (gfc_conv_procedure_call): Use base_expr to detect non-variable
2765 base objects and, ensuring that there is a temporary variable,
2766 build up the typebound call using conv_base_obj_fcn_val.
2767 (gfc_trans_class_assign): Pick out class procedure pointer
2768 assignments and do the assignment with no further prcessing.
2769 (gfc_trans_class_array_init_assign, gfc_trans_class_init_assign
2770 gfc_trans_class_assign): Move to top of file.
2771 * gfortran.h : Add 'base_expr' field to gfc_expr.
2772 * resolve.c (get_declared_from_expr): Add 'types' argument to
2773 switch checking of derived types on or off.
2774 (resolve_typebound_generic_call): Set the new argument.
2775 (resolve_typebound_function, resolve_typebound_subroutine):
2776 Set 'types' argument for get_declared_from_expr appropriately.
2777 Identify base expression, if not a variable, in the argument
2778 list of class valued calls. Assign it to the 'base_expr' field
2779 of the final expression. Strip away all references after the
2780 last class reference.
2781
2782 2012-01-02 Tobias Burnus <burnus@net-b.de>
2783
2784 PR fortran/51682
2785 * trans-intrinsic.c (trans_this_image, trans_image_index,
2786 trans_num_images, conv_intrinsic_cobound): Fold_convert the
2787 caf_num_images/caf_this_images variables to the correct int kind.
2788
2789 2012-01-01 Jakub Jelinek <jakub@redhat.com>
2790
2791 * gfortranspec.c (lang_specific_driver): Update copyright notice
2792 dates.
2793
2794 Copyright (C) 2012 Free Software Foundation, Inc.
2795
2796 Copying and distribution of this file, with or without modification,
2797 are permitted in any medium without royalty provided the copyright
2798 notice and this notice are preserved.