12012-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
62012-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
122012-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
222012-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
312012-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
392012-12-21  Richard Biener  <rguenther@suse.de>
40
41	PR bootstrap/54659
42	* gfortran.h: Do not include gmp.h here.
43
442012-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
542012-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
612012-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
672012-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
1862012-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
1922012-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
2052012-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
2112012-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
2162012-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
2222012-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
2272012-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
2342012-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
2412012-12-05  Tobias Burnus  <burnus@net-b.de>
242
243	* resolve.c (generate_component_assignments): Fix memleak.
244
2452012-12-03  Janus Weil  <janus@gcc.gnu.org>
246
247	PR fortran/55548
248	* intrinsic.texi (SYSTEM_CLOCK): Update documentation of SYSTEM_CLOCK.
249
2502012-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
2662012-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
2742012-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
2812012-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
2872012-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
3332012-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
3392012-11-28  Tobias Burnus  <burnus@net-b.de>
340
341	PR fortran/52161
342	* trans-stmt.c (gfc_trans_sync): Fix bound checking.
343
3442012-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
3502012-11-26  Eric Botcazou  <ebotcazou@adacore.com>
351
352	* trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P.
353
3542012-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
3642012-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
3742012-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
3862012-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
3932012-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
3992012-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
4052012-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
4202012-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
4282012-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
4352012-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
4412012-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
4472012-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
4592012-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
4642012-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
4722012-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
4782012-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
4862012-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
4922012-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
5102012-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
511
512	* trans.c (gfc_allocate_allocatable):  Revert accidental
513	commit.
514
5152012-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
5212012-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
5282012-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
5382012-10-19  Janus Weil  <janus@gcc.gnu.org>
539
540	PR fortran/54224
541	* trans-expr.c (conv_function_val): Set TREE_USED.
542
5432012-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
5542012-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
5672012-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
5732012-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
5792012-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
5852012-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
5932012-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
6122012-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
6172012-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
6242012-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
6312012-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
6362012-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
6542012-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
6602012-09-20  Tobias Burnus  <burnus@net-b.de>
661
662	PR fortran/54599
663	* cpp.c (print_line): Properly handle extern C.
664
6652012-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
6712012-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
6772012-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
6852012-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
6912012-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
7002012-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
7062012-09-16  Janus Weil  <janus@gcc.gnu.org>
707
708	PR fortran/54594
709	* interface.c (compare_type_rank): Handle CLASS arrays.
710
7112012-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
7172012-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
7242012-09-16  Mikael Morin  <mikael@gcc.gnu.org>
725
726	* symbol.c (gfc_undo_symbols): Correctly undo namelists.
727
7282012-09-15  Tobias Burnus  <burnus@net-b.de>
729
730	* trans-io.c (gfc_trans_transfer): Add an assert.
731
7322012-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
7472012-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
7622012-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
7702012-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
7772012-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
7832012-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
7892012-09-05  Tobias Burnus  <burnus@net-b.de>
790
791	PR fortran/54462
792	* symbol.c (gfc_undo_symbols): Avoid NULL pointer dereference.
793
7942012-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
8012012-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
8072012-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
8122012-09-03  Tobias Burnus  <burnus@net-b.de>
813
814	* class.c (finalize_component): Fixes to the comment.
815
8162012-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
8402012-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
8462012-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
8532012-08-28  Tobias Burnus  <burnus@net-b.de>
854
855	PR fortran/54382
856	* error.c (show_locus): Avoid out of bound access.
857
8582012-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
8672012-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
8722012-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
8792012-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
8872012-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
8932012-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
9102012-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
9162012-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
9222012-08-24  Simon Baldwin  <simonb@google.com>
923
924	* lang.opt (-cpp=): Mark flag NoDWARFRecord.
925
9262012-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
9582012-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
9642012-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
9702012-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
9752012-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
9812012-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
9932012-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
10052012-08-17  Jakub Jelinek  <jakub@redhat.com>
1006
1007	* array.c (gfc_match_array_ref): Fix up memset arguments.
1008
10092012-08-16   Diego Novillo  <dnovillo@google.com>
1010
1011	Revert
1012
1013	PR bootstrap/54281
1014	* gfortran.h: Do not include gmp.h.
1015
10162012-08-16   Diego Novillo  <dnovillo@google.com>
1017
1018	PR bootstrap/54281
1019	* gfortran.h: Do not include gmp.h.
1020
10212012-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
10292012-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
10352012-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
10402012-08-14  Mikael Morin  <mikael@gcc.gnu.org>
1041
1042	* trans-expr.c (gfc_trans_scalar_assign): Rename argument,
1043	extend comment.
1044
10452012-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
10692012-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
10832012-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
10902012-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
10962012-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
11022012-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
11092012-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
11202012-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
11252012-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
11322012-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
11372012-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
11422012-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
11512012-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
11582012-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
11662012-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
11742012-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
11812012-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
11962012-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
12012012-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
12102012-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
12222012-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
12292012-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
12382012-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
12442012-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
12602012-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
12652012-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
12752012-07-21  Tobias Burnus  <burnus@net-b.de>
1276
1277	* resolve.c (resolve_formal_arglist): Put variable
1278	declaration before the first assignment.
1279
12802012-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
12852012-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
12902012-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
13492012-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
13562012-07-19  Tobias Burnus  <burnus@net-b.de>
1357
1358	* interface.c (compare_parameter, compare_actual_formal): Fix
1359	handling of polymorphic arguments.
1360
13612012-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
14112012-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
14172012-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
14242012-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
14312012-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
14372012-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
14422012-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
14542012-07-12  Tobias Burnus  <burnus@net-b.de>
1455
1456	* trans-expr.c (conv_isocbinding_procedure): Generate c_f_pointer code
1457	inline.
1458
14592012-07-11  Steven Bosscher  <steven@gcc.gnu.org>
1460
1461	* trans.c: Do not include defaults.h.
1462	* trans-intrinsic.c: Likewise.
1463
14642012-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
14982012-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
15042012-07-05  Uros Bizjak  <ubizjak@gmail.com>
1505
1506	PR fortran/53449
1507	* parse.c (gfc_parse_file): Initialize errors_before.
1508
15092012-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
15202012-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
15352012-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
15412012-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
15492012-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
15572012-06-18  Tobias Burnus  <burnus@net-b.de>
1558
1559	PR fortran/53526
1560	* trans-intrinsic.c (conv_intrinsic_move_alloc): Handle coarrays.
1561
15622012-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
15682012-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
15752012-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
15842012-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
15912012-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
15972012-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
16042012-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
16112012-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
16182012-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
16242012-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
16382012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
1639
1640	* trans-common.c: Do not include output.h.
1641	* trans-decl.c: Likewise.
1642
16432012-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
16492012-05-30  Tobias Burnus  <burnus@net-b.de>
1650
1651	PR c/53502
1652	* decl.c (match_attr_spec): Remove "typedef".
1653
16542012-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
16662012-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
16752012-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
16812012-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
16872012-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
16962012-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
17082012-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
17132012-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
17292012-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
17362012-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
17492012-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
17572012-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
17622012-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
17682012-05-06  Tobias Burnus  <burnus@net-b.de>
1769
1770	PR fortran/41587
1771	* decl.c (build_struct): Don't ignore FAILED status.
1772
17732012-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
18052012-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
18172012-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
18222012-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
18312012-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
18372012-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
18442012-04-30  Jan Hubicka  <jh@suse.cz>
1845
1846	* f95-lang.c (gfc_finish): Update comments.
1847
18482012-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
18542012-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
18672012-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
18752012-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
18812012-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
18872012-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
18932012-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
19032012-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
19082012-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
19172012-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
19232012-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
19292012-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
19382012-03-23  Janne Blomqvist  <jb@gcc.gnu.org>
1939
1940	* gfortran.h (GFC_MAX_LINE): Remove unused macro.
1941
19422012-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
19502012-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
19562012-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
19612012-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
19702012-03-12  Richard Guenther  <rguenther@suse.de>
1971
1972	* f95-lang.c (builtin_type_for_size): Use gfc_type_for_size.
1973
19742012-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
19802012-03-10  Steven Bosscher  <steven@gcc.gnu.org>
1981
1982	* convert.c (convert): Fold BOOLEAN_TYPE types to the proper variant.
1983
19842012-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
19962012-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
20022012-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
20252012-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
20332012-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
20392012-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
20482012-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
20562012-03-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2057
2058	* module.c (gfc_use_module): Improve error message some more.
2059
20602012-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2061
2062	PR fortran/52313
2063	* module.c (gfc_use_module): Improve error messages.
2064
20652012-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
20712012-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
20812012-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
20992012-03-02  Tobias Burnus  <burnus@net-b.de>
2100
2101	PR fortran/52325
2102	* primary.c (gfc_match_varspec): Add missing ;.
2103
21042012-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
21102012-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
21182012-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
21242012-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
21302012-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
21352012-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
21412012-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
21472012-02-17  Tobias Burnus  <burnus@net-b.de>
2148
2149	* gfortran.texi (Q exponent-letter): Fix grammar.
2150
21512012-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
21572012-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
21722012-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
21782012-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
21872012-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
21932012-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
21982012-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
22042012-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
22112012-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
22222012-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
22342012-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
22402012-02-02  Tobias Burnus  <burnus@net-b.de>
2241
2242	PR fortran/52093
2243	* simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES.
2244
22452012-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
22512012-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
22582012-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
22642012-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
22732012-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
22782012-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
22842012-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
22902012-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
23022012-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
23082012-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
23142012-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
23282012-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
23802012-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
23862012-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
23922012-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
23982012-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
24052012-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
24202012-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
24262012-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
24322012-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
24592012-01-25  Tobias Burnus  <burnus@net-b.de>
2460
2461	* resolve.c (symbol_as): Check also for attr.class_ok.
2462
24632012-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
24692012-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
24752012-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
24812012-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
24872012-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
24942012-01-21  Tobias Burnus  <burnus@net-b.de>
2495
2496	PR fortran/51913
2497	* interface.c (compare_parameter): Fix CLASS comparison.
2498
24992012-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
25062012-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
25112012-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
25172012-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
25252012-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
25322012-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
25432012-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
25632012-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
25732012-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
25792011-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
25872012-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
25962012-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
26032012-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
26092012-01-10  Gerald Pfeifer  <gerald@pfeifer.com>
2610
2611	* gfortran.texi (Fortran 2003 Status): Fix grammar.
2612
26132012-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
26192012-01-10  Tobias Burnus  <burnus@net-b.de>
2620
2621	* resolve.c (resolve_ordinary_assign): Improve error wording.
2622
26232012-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
26372012-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
26432012-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
26492012-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
26772012-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
27082012-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
27152012-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
27262012-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
27352012-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
27402012-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
27472012-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
27522012-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
27822012-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
27892012-01-01  Jakub Jelinek  <jakub@redhat.com>
2790
2791	* gfortranspec.c (lang_specific_driver): Update copyright notice
2792	dates.
2793
2794Copyright (C) 2012 Free Software Foundation, Inc.
2795
2796Copying and distribution of this file, with or without modification,
2797are permitted in any medium without royalty provided the copyright
2798notice and this notice are preserved.
2799