12009-12-29  Janus Weil  <janus@gcc.gnu.org>
2
3	PR fortran/42517
4	* invoke.texi: Document the interference of
5	-fcheck=recursion and -fopenmp.
6	* trans-decl.c (gfc_generate_function_code): Disable -fcheck=recursion
7	when used with -fopenmp.
8
92009-12-28  Janus Weil  <janus@gcc.gnu.org>
10
11	PR fortran/42353
12	* symbol.c (gfc_find_derived_vtab): Make vtabs and vtypes private.
13
142009-12-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15	    Daniel Kraft  <d@domob.eu>
16
17	PR fortran/22552
18	* lang.opt (Wimplicit-procedure): New option.
19	* gfortran.h (struct gfc_option_t): New member `warn_implicit_procedure'
20	* options.c (gfc_handle_option): Handle -Wimplicit-procedure.
21	* interface.c (gfc_procedure_use): Warn about procedure never
22	explicitly declared if requested by the new flag.
23	* invoke.texi: Document new flag -Wimplicit-procedure.
24
252009-12-17  Janus Weil  <janus@gcc.gnu.org>
26
27	PR fortran/42144
28	* trans-expr.c (select_class_proc): Skip abstract base types.
29
302009-12-16  Kazu Hirata  <kazu@codesourcery.com>
31
32	* gfc-internals.texi, gfortran.texi, invoke.texi: Fix typos.
33	Follow spelling conventions.
34
352009-12-15  Tobias Burnus  <burnus@net-b.de>
36	    Daniel Franke  <franke.daniel@gmail.com>
37
38	PR fortran/41235
39	* resolve.c (resolve_global_procedure): Add check for
40	presence of an explicit interface for nonconstant,
41	nonassumed character-length functions.
42	(resolve_fl_procedure): Remove check for nonconstant
43	character-length functions.
44
452009-12-14  Daniel Franke  <franke.daniel@gmail.com>
46
47	PR fortran/42354
48	* expr.c (check_init_expr): Do not check for specification functions.
49
502009-12-11  Janus Weil  <janus@gcc.gnu.org>
51
52	PR fortran/42257
53	* module.c (write_dt_extensions): Check for accessibility.
54
552009-12-11  Daniel Franke  <franke.daniel@gmail.com>
56
57	PR fortran/40290
58	* expr.c (gfc_type_convert_binary): Added warn-on-conversion flag,
59	passed on to gfc_convert_type_warn() instead of gfc_convert_type();
60	enabled warnings on all callers but ...
61	* arith.c (eval_intrinsic): Disabled warnings on implicit type
62	conversion.
63	* gfortran.h gfc_type_convert_binary): Adjusted prototype.
64
652009-12-11  Janus Weil  <janus@gcc.gnu.org>
66
67	PR fortran/42335
68	* symbol.c (select_type_insert_tmp): Add an extra check for
69	error recovery.
70
712009-12-10  Daniel Franke  <franke.daniel@gmail.com>
72
73	PR fortran/40287
74	* iresolve.c (resolve_mask_arg): Disabled warning on conversion
75	to LOGICAL(1).
76
772009-12-10  Daniel Franke  <franke.daniel@gmail.com>
78
79	PR fortran/41369
80	* parse.c (match_deferred_characteristics): Removed check for empty
81	types in function return values.
82
832009-12-10  Daniel Franke  <franke.daniel@gmail.com>
84
85	PR fortran/34402
86	* expr.c (check_alloc_comp_init): New.
87	(check_init_expr): Verify that allocatable components
88	are not data-initalized.
89
902008-12-08  Daniel Kraft  <d@domob.eu>
91
92	PR fortran/41177
93	* gfortran.h (struct symbol_attribute): New flag `class_pointer'.
94	* symbol.c (gfc_build_class_symbol): Set the new flag.
95	* resolve.c (update_compcall_arglist): Remove wrong check for
96	non-scalar base-object.
97	(check_typebound_baseobject): Add the correct version here as well
98	as some 'not implemented' message check in the old case.
99	(resolve_typebound_procedure): Check that the passed-object dummy
100	argument is scalar, non-pointer and non-allocatable as it should be.
101
1022009-12-08  Tobias Burnus  <burnus@net-b.de>
103
104	PR fortran/40961
105	PR fortran/40377
106	* gfortran.texi (Non-Fortran Main Program): Add
107	_gfortran_set_fpe documentation.
108	(Interoperability with C): Mention array storage order.
109
1102009-12-07  Daniel Franke  <franke.daniel@gmail.com>
111
112	PR fortran/41940
113	* match.c (gfc_match_allocate): Improved error message for
114	allocatable scalars that are allocated with a shape.
115
1162009-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
117
118	PR other/40302
119	* arith.c: Remove HAVE_mpc* checks throughout.
120	* expr.c: Likewise.
121	* gfortran.h: Likewise.
122	* resolve.c: Likewise.
123	* simplify.c: Likewise.
124	* target-memory.c: Likewise.
125	* target-memory.h: Likewise.
126
1272009-12-06  Daniel Franke  <franke.daniel@gmail.com>
128
129	PR fortran/40904
130	* intrinsics.texi: Fixed description of COUNT.
131
1322009-12-01  Janne Blomqvist  <jb@gcc.gnu.org>
133
134	PR fortran/42131
135	* trans-stmt.c (gfc_trans_do): Sign test using ternary operator.
136
1372009-11-30  Janus Weil  <janus@gcc.gnu.org>
138
139	PR fortran/42053
140	* resolve.c (resolve_select_type): Check for duplicate CLASS IS blocks.
141
1422009-11-30  Janus Weil  <janus@gcc.gnu.org>
143
144	PR fortran/41631
145	* decl.c (gfc_match_derived_decl): Set extension level.
146	* gfortran.h (symbol_attribute): Expand 'extension' bit field to 8 bit.
147	* iresolve.c (gfc_resolve_extends_type_of): Return value of
148	'is_extension_of' has kind=4.
149	* match.c (select_type_set_tmp,gfc_match_class_is): Create temporary
150	for CLASS IS blocks.
151	* module.c (MOD_VERSION): Bump module version.
152	(ab_attribute,attr_bits): Remove AB_EXTENSION.
153	(mio_symbol_attribute): Handle expanded 'extension' field.
154	* resolve.c (resolve_select_type): Implement CLASS IS blocks.
155	(resolve_fl_variable_derived): Show correct type name.
156	* symbol.c (gfc_build_class_symbol): Set extension level.
157
1582009-11-30  Janus Weil  <janus@gcc.gnu.org>
159
160	* intrinsic.h (gfc_resolve_extends_type_of): Add prototype.
161	* intrinsic.c (add_functions): Use 'gfc_resolve_extends_type_of'.
162	* iresolve.c (gfc_resolve_extends_type_of): New function, which
163	replaces the call to EXTENDS_TYPE_OF by the library function
164	'is_extension_of' and modifies the arguments.
165	* trans-intrinsic.c (gfc_conv_extends_type_of): Removed.
166	(gfc_conv_intrinsic_function): FOR EXTENDS_TYPE_OF, don't call
167	gfc_conv_extends_type_of but gfc_conv_intrinsic_funcall.
168
1692009-11-30  Paul Thomas  <pault@gcc.gnu.org>
170	    Janus Weil  <janus@gcc.gnu.org>
171
172	* decl.c (encapsulate_class_symbol): Replaced by
173	'gfc_build_class_symbol'.
174	(build_sym,build_struct): Call 'gfc_build_class_symbol'.
175	(gfc_match_derived_decl): Replace vindex by hash_value.
176	* dump-parse-tree.c (show_symbol): Replace vindex by hash_value.
177	* gfortran.h (symbol_attribute): Add field 'vtab'.
178	(gfc_symbol): Replace vindex by hash_value.
179	(gfc_class_esym_list): Ditto.
180	(gfc_get_derived_type,gfc_build_class_symbol,gfc_find_derived_vtab):
181	New prototypes.
182	* module.c (mio_symbol): Replace vindex by hash_value.
183	* resolve.c (vindex_expr): Rename to 'hash_value_expr'.
184	(resolve_class_compcall,resolve_class_typebound_call): Renamed
185	'vindex_expr'.
186	(resolve_select_type): Replace $vindex by $vptr->$hash.
187	* symbol.c (gfc_add_save): Handle vtab symbols.
188	(gfc_type_compatible): Rewrite.
189	(gfc_build_class_symbol): New function which replaces
190	'encapsulate_class_symbol'.
191	(gfc_find_derived_vtab): New function to set up a vtab symbol for a
192	derived type.
193	* trans-decl.c (gfc_create_module_variable): Handle vtab symbols.
194	* trans-expr.c (select_class_proc): Replace vindex by hash_value.
195	(gfc_conv_derived_to_class): New function to construct a temporary
196	CLASS variable from a derived type expression.
197	(gfc_conv_procedure_call): Call 'gfc_conv_derived_to_class'.
198	(gfc_conv_structure): Initialize the $extends and $size fields of
199	vtab symbols.
200	(gfc_trans_class_assign): Replace $vindex by $vptr. Remove the $size
201	assignment.
202	* trans-intrinsic.c (gfc_conv_same_type_as): Replace $vindex by
203	$vptr->$hash, and replace vindex by hash_value.
204	* trans-stmt.c (gfc_trans_allocate): Insert $vptr references, replace
205	$vindex by $vptr. Remove the $size assignment.
206	* trans-types.c (gfc_get_derived_type): Make it non-static.
207
2082009-11-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
209
210	PR fortran/42131
211	* trans-stmt.c (gfc_trans_do):  Calculate loop count
212	without if statements.
213
2142009-11-28  Jakub Jelinek  <jakub@redhat.com>
215
216	* trans-common.c (create_common): Remove unused offset variable.
217	* io.c (gfc_match_wait): Remove unused loc variable.
218	* trans-openmp.c (gfc_trans_omp_clauses): Remove unused old_clauses
219	variable.
220	(gfc_trans_omp_do): Remove unused outermost variable.
221	* iresolve.c (gfc_resolve_alarm_sub, gfc_resolve_fseek_sub): Remove
222	unused status variable.
223	* module.c (number_use_names): Remove unused c variable.
224	(load_derived_extensions): Remove unused nuse variable.
225	* trans-expr.c (gfc_conv_substring): Remove unused var variable.
226	* trans-types.c (gfc_get_array_descr_info): Remove unused offset_off
227	variable.
228	* matchexp.c (match_primary): Remove unused where variable.
229	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Remove unused cond2
230	variable.
231	(gfc_conv_intrinsic_sizeof): Remove unused source variable.
232	(gfc_conv_intrinsic_transfer): Remove unused stride variable.
233	(gfc_conv_intrinsic_function): Remove unused isym variable.
234	* arith.c (gfc_hollerith2real, gfc_hollerith2complex,
235	gfc_hollerith2logical): Remove unused len variable.
236	* parse.c (parse_derived): Remove unused derived_sym variable.
237	* decl.c (variable_decl): Remove unused old_locus variable.
238	* resolve.c (check_class_members): Remove unused tbp_sym variable.
239	(resolve_ordinary_assign): Remove unused assign_proc variable.
240	(resolve_equivalence): Remove unused value_name variable.
241	* data.c (get_array_index): Remove unused re variable.
242	* trans-array.c (gfc_conv_array_transpose): Remove unused src_info
243	variable.
244	(gfc_conv_resolve_dependencies): Remove unused aref and temp_dim
245	variables.
246	(gfc_conv_loop_setup): Remove unused dim and len variables.
247	(gfc_walk_variable_expr): Remove unused head variable.
248	* match.c (match_typebound_call): Remove unused var variable.
249	* intrinsic.c (gfc_convert_chartype): Remove unused from_ts variable.
250
2512009-11-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
252
253	PR fortran/41807
254	* trans-const.c (gfc_conv_const): Set se->expr to a constant on error.
255
2562009-11-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
257
258	PR fortran/41278
259	* trans-array.c (gfc_conv_array_transpose): Delete unnecessary assert.
260
2612009-11-26  Janus Weil  <janus@gcc.gnu.org>
262
263	PR fortran/42048
264	PR fortran/42167
265	* gfortran.h (gfc_is_function_return_value): New prototype.
266	* match.c (gfc_match_call): Use new function
267	'gfc_is_function_return_value'.
268	* primary.c (gfc_is_function_return_value): New function to check if a
269	symbol is the return value of an encompassing function.
270	(match_actual_arg,gfc_match_rvalue,match_variable): Use new function
271	'gfc_is_function_return_value'.
272	* resolve.c (resolve_common_blocks,resolve_actual_arglist): Ditto.
273
2742009-11-25  Jakub Jelinek  <jakub@redhat.com>
275
276	PR fortran/42162
277	* trans-openmp.c (gfc_trans_omp_do): When dovar isn't a VAR_DECL,
278	don't use simple loop and handle clauses properly.
279
2802009-11-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
281
282	PR fortran/42008
283	* decl.c (variable_decl): Do not error on initialization within a
284	derived type specification of a pure procedure.
285
2862009-11-24  Janus Weil  <janus@gcc.gnu.org>
287
288	PR fortran/42045
289	* resolve.c (resolve_actual_arglist): Make sure procedure pointer
290	actual arguments are resolved correctly.
291	(resolve_function): An EXPR_FUNCTION which is a procedure pointer
292	component, has already been resolved.
293	(resolve_fl_derived): Procedure pointer components should not be
294	implicitly typed.
295
2962009-11-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
297
298	PR fortran/41807
299	* trans-const.c (gfc_conv_const): Fix typo in comment. Replace assert
300	with error message if not constant.
301	* resolve.c (next_data_value): Delete check for constant.
302
3032009-11-20  Janus Weil  <janus@gcc.gnu.org>
304
305	* intrinsic.texi (C_F_PROCPOINTER): Remove obsolete comment.
306
3072009-11-20  Paul Thomas  <pault@gcc.gnu.org>
308	    Janus Weil  <janus@gcc.gnu.org>
309
310	PR fortran/42104
311	* trans-expr.c (gfc_conv_procedure_call): If procedure pointer
312	component call, use the component's 'always_explicit' attr
313	for array arguments.
314
3152009-11-19  Janus Weil  <janus@gcc.gnu.org>
316
317	* trans-expr.c (conv_isocbinding_procedure): New function.
318	(gfc_conv_procedure_call): Move ISO_C_BINDING stuff to
319	separate function.
320
3212009-11-19  Tobias Burnus  <burnus@net-b.de>
322
323	* gfortran.texi (Interoperable Subroutines and Functions): Fix
324	example.
325
3262009-11-18  Janus Weil  <janus@gcc.gnu.org>
327
328	PR fortran/42072
329	* trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
330	dummies which are passed to C_F_PROCPOINTER.
331
3322009-11-18  Alexandre Oliva  <aoliva@redhat.com>
333
334	* module.c (mio_f2k_derived): Initialize op.
335
3362009-11-15  Janus Weil  <janus@gcc.gnu.org>
337
338	PR fortran/42048
339	* match.c (gfc_match_call): If we're inside a function with derived
340	type return value, allow calling a TBP of the result variable.
341
3422009-11-12  Tobias Burnus  <burnus@net-b.de>
343
344	* intrinsic.texi (XOR): Refer also to .NEQV.
345	(ISO_FORTRAN_ENV): State which parameters are F2008.
346
3472009-11-11  Janus Weil  <janus@gcc.gnu.org>
348
349	PR fortran/41978
350	* resolve.c (resolve_ref): Take care of procedure pointer component
351	references.
352
3532009-11-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
354
355	PR fortran/41909
356	* resolve.c (is_illegal_recursion): Return false if sym is program.
357
3582009-11-06  Steven G. Kargl  <kargl@gcc.gnu.org>
359
360	* resolve.c (check_typebound_override): Remove duplicate "in" in error
361	message.
362
3632009-11-05  Steven G. Kargl  <kargl@gcc.gnu.org>
364
365	PR fortran/41918
366	* fortran/trans-decl.c: Silence intent(out) warning for derived type
367	dummy arguments with default initialization.
368
3692009-11-05  Janus Weil  <janus@gcc.gnu.org>
370
371	PR fortran/41556
372	* interface.c (matching_typebound_op,gfc_extend_assign): Handle CLASS
373	variables.
374
3752009-11-05  Janus Weil  <janus@gcc.gnu.org>
376
377	PR fortran/41556
378	PR fortran/41873
379	* resolve.c (resolve_function,resolve_call): Prevent abstract interfaces
380	from being called, but allow deferred type-bound procedures with
381	abstract interface.
382
3832009-11-04  Tobias Burnus <burnus@gcc.gnu.org>
384	    Janus Weil  <janus@gcc.gnu.org>
385
386	PR fortran/41556
387	PR fortran/41937
388	* interface.c (gfc_check_operator_interface): Handle CLASS arguments.
389	* resolve.c (resolve_allocate_expr): Handle allocatable components of
390	CLASS variables.
391
3922009-11-04  Richard Guenther  <rguenther@suse.de>
393
394	* options.c (gfc_post_options): Rely on common code processing
395	LTO options.  Only enable -fwhole-file here.
396
3972009-11-03  Tobias Burnus  <burnus@net-b.de>
398
399	PR fortran/41907
400	* trans-expr.c (gfc_conv_procedure_call): Fix presence check
401	for optional arguments.
402
4032009-11-01  Tobias Burnus  <burnus@net-b.de>
404
405	PR fortran/41872
406	* trans-decl.c (gfc_trans_deferred_vars): Do not nullify
407	autodeallocated allocatable scalars at the end of scope.
408	(gfc_generate_function_code): Fix indention.
409	* trans-expr.c (gfc_conv_procedure_call): For allocatable
410	scalars, fix calling by reference and autodeallocating
411	of intent out variables.
412
4132009-11-01  Tobias Burnus  <burnus@net-b.de>
414
415	PR fortran/41850
416	* trans-expr.c (gfc_conv_procedure_call): Deallocate intent-out
417	variables only when present. Remove unneccessary present check.
418
4192009-10-29  Tobias Burnus  <burnus@net-b.de>
420
421	PR fortran/41777
422	* trans-expr.c (gfc_conv_procedure_call,gfc_conv_expr_reference):
423	Use for generic EXPR_FUNCTION the attributes of the specific
424	function.
425
4262009-10-29  Janne Blomqvist  <jb@gcc.gnu.org>
427
428	PR fortran/41860
429	* resolve.c (apply_default_init_local): Treat -fno-automatic as if
430	var was saved.
431
4322009-10-28  Rafael Avila de Espindola  <espindola@google.com>
433
434	* trans-common.c (create_common): Set TREE_PUBLIC to false on
435	fake variables.
436
4372009-10-26  Janus Weil  <janus@gcc.gnu.org>
438
439	PR fortran/41714
440	* trans.c (gfc_trans_code): Remove call to
441	'tree_annotate_all_with_location'. Location should already be set.
442	* trans-openmp.c (gfc_trans_omp_workshare): Ditto.
443	* trans-stmt.c (gfc_trans_allocate): Do correct data initialization for
444	CLASS variables with SOURCE tag, plus some cleanup.
445
4462009-10-24  Janus Weil  <janus@gcc.gnu.org>
447	    Paul Thomas  <pault@gcc.gnu.org>
448
449	PR fortran/41784
450	* module.c (load_derived_extensions): Skip symbols which are not being
451	loaded.
452
4532009-10-24  Paul Thomas  <pault@gcc.gnu.org>
454
455	PR fortran/41772
456	* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Stop'extent'
457	from going negative.
458
4592009-10-23  Janus Weil  <janus@gcc.gnu.org>
460
461	PR fortran/41800
462	* trans-expr.c (gfc_trans_scalar_assign): Handle CLASS variables.
463
4642009-10-23  Janus Weil  <janus@gcc.gnu.org>
465
466	PR fortran/41758
467	* match.c (conformable_arrays): Move to resolve.c.
468	(gfc_match_allocate): Don't resolve SOURCE expr yet, and move some
469	checks to resolve_allocate_expr.
470	* resolve.c (conformable_arrays): Moved here from match.c.
471	(resolve_allocate_expr): Moved some checks here from gfc_match_allocate.
472	(resolve_code): Resolve SOURCE tag for ALLOCATE expressions.
473
4742009-10-22  Janus Weil  <janus@gcc.gnu.org>
475
476	PR fortran/41781
477	* resolve.c (resolve_codes): Don't clear 'cs_base' for BLOCK constructs,
478	to make sure labels are treated correctly.
479	* symbol.c (gfc_get_st_label): Create labels in the right namespace.
480	For BLOCK constructs go into the parent namespace.
481
4822009-10-21  Janus Weil  <janus@gcc.gnu.org>
483
484	PR fortran/41706
485	PR fortran/41766
486	* match.c (select_type_set_tmp): Set flavor for temporary.
487	* resolve.c (resolve_class_typebound_call): Correctly resolve actual
488	arguments.
489
4902009-10-20  Paul Thomas  <pault@gcc.gnu.org>
491
492	PR fortran/41706
493	* resolve.c (resolve_arg_exprs): New function.
494	(resolve_class_compcall): Call the above.
495	(resolve_class_typebound_call): The same.
496
4972009-10-19  Janus Weil  <janus@gcc.gnu.org>
498
499	PR fortran/41586
500	* parse.c (parse_derived): Correctly set 'alloc_comp' and 'pointer_comp'
501	for CLASS variables.
502	* trans-array.c (structure_alloc_comps): Handle deallocation and
503	nullification of allocatable scalar components.
504	* trans-decl.c (gfc_get_symbol_decl): Remember allocatable scalars for
505	automatic deallocation.
506	(gfc_trans_deferred_vars): Automatically deallocate allocatable scalars.
507
5082009-10-19  Tobias Burnus  <burnus@net-b.de>
509	    Steven G. Kargl  <kargl@gcc.gnu.org>
510
511	PR fortran/41755
512	* symbol.c (gfc_undo_symbols): Add NULL check.
513	* match.c (gfc_match_equivalence): Add check for
514	missing comma.
515
5162009-10-19  Richard Guenther  <rguenther@suse.de>
517
518	PR fortran/41494
519	* trans-expr.c (gfc_trans_scalar_assign): Do not call
520	gfc_evaluate_now.
521
5222009-10-17  Janus Weil  <janus@gcc.gnu.org>
523	    Paul Thomas  <pault@gcc.gnu.org>
524
525	PR fortran/41608
526	* decl.c (gfc_match_data_decl): Add BT_CLASS for undefined type
527	and empty type errors.
528	* parse.c (gfc_build_block_ns): Only set recursive if parent ns
529	has a proc_name.
530
531	PR fortran/41629
532	PR fortran/41618
533	PR fortran/41587
534	* gfortran.h : Add class_ok bitfield to symbol_attr.
535	* decl.c (build_sym): Set attr.class_ok if dummy, pointer or
536	allocatable.
537	(build_struct): Use gfc_try 't' to carry errors past the call
538	to encapsulate_class_symbol.
539	(attr_decl1): For a CLASS object, apply the new attribute to
540	the data component.
541	* match.c (gfc_match_select_type): Set attr.class_ok for an
542	assigned selector.
543	* resolve.c (resolve_fl_variable_derived): Check a CLASS object
544	is dummy, pointer or allocatable by testing the class_ok and
545	the use_assoc attribute.
546
5472009-10-16  Janus Weil  <janus@gcc.gnu.org>
548
549	PR fortran/41719
550	* resolve.c (resolve_ordinary_assign): Reject intrinsic assignments
551	to polymorphic variables.
552
5532009-10-16  Paul Thomas  <pault@gcc.gnu.org>
554
555	PR fortran/41648
556	PR fortran/41656
557	* trans-expr.c (select_class_proc): Convert the expression for the
558	vindex, carried on the first member of the esym list.
559	* gfortran.h : Add the vindex field to the esym_list structure.
560	and eliminate the class_object field.
561	* resolve.c (check_class_members): Remove the setting of the
562	class_object field.
563	(vindex_expr): New function.
564	(get_class_from_expr): New function.
565	(resolve_class_compcall): Call the above to find the ultimate
566	class or derived component.  If derived, do not generate the
567	esym list.  Add and expression for the vindex to the esym list
568	by calling the above.
569	(resolve_class_typebound_call): The same.
570
5712009-10-15  Steven G. Kargl  <kargl@gcc.gnu.org>
572
573	PR fortran/41712
574	* intrinsic.texi: Explicitly state that ETIME and DTIME take
575	REAL(4) arguments.  Fix nearby typographically errors where
576	/leq was used instead of \leq.
577
5782009-10-13  Janus Weil  <janus@gcc.gnu.org>
579
580	PR fortran/41581
581	* decl.c (encapsulate_class_symbol): Add new component '$size'.
582	* resolve.c (resolve_allocate_expr): Move CLASS handling to
583	gfc_trans_allocate.
584	(resolve_class_assign): Replaced by gfc_trans_class_assign.
585	(resolve_code): Remove calls to resolve_class_assign.
586	* trans.c (gfc_trans_code): Use new function gfc_trans_class_assign.
587	* trans-expr.c (get_proc_ptr_comp): Fix a memory leak.
588	(gfc_conv_procedure_call): For CLASS dummies, set the
589	$size component.
590	(gfc_trans_class_assign): New function, replacing resolve_class_assign.
591	* trans-stmt.h (gfc_trans_class_assign): New prototype.
592	* trans-stmt.c (gfc_trans_allocate): Use correct size when allocating
593	CLASS variables. Do proper initialization. Move some code here from
594	resolve_allocate_expr.
595
5962009-10-11 Jerry DeLisle  <jvdelisle@gcc.gnu.org>
597
598	PR fortran/38439
599	* io.c (check_format): Fix locus for error messages and fix a comment.
600
6012009-10-11  Paul Thomas  <pault@gcc.gnu.org>
602
603	PR fortran/41583
604	* decl.c (hash_value): New function.
605	(gfc_match_derived_decl): Call it.
606
6072009-10-09  Janus Weil  <janus@gcc.gnu.org>
608
609	PR fortran/41585
610	* decl.c (build_struct): Bugfix for CLASS components.
611
6122009-10-09  Tobias Burnus  <burnus@net-b.de>
613
614	PR fortran/41582
615	* decl.c (encapsulate_class_symbol): Save attr.abstract.
616	* resolve.c (resolve_allocate_expr): Reject class allocate
617	without typespec or source=.
618	* trans-stmt.c (gfc_trans_allocate): Change gfc_warning
619	into gfc_error for "not yet implemented".
620
6212009-10-09  Janus Weil  <janus@gcc.gnu.org>
622
623	PR fortran/41579
624	* gfortran.h (gfc_select_type_stack): New struct, to be used as a stack
625	for SELECT TYPE statements.
626	(select_type_stack): New global variable.
627	(type_selector,select_type_tmp): Removed.
628	* match.c (type_selector,type_selector): Removed.
629	(select_type_stack): New variable, serving as a stack for
630	SELECT TYPE statements.
631	(select_type_push,select_type_set_tmp): New functions.
632	(gfc_match_select_type): Call select_type_push.
633	(gfc_match_type_is): Call select_type_set_tmp.
634	* parse.c (select_type_pop): New function.
635	(parse_select_type_block): Call select_type_pop.
636	* symbol.c (select_type_insert_tmp): New function.
637	(gfc_find_sym_tree): Call select_type_insert_tmp.
638
6392009-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
640
641	* arith.c (arith_power): Use mpc_pow_z.
642	* gfortran.h (HAVE_mpc_pow_z): Define.
643
6442009-10-07  Daniel Kraft  <d@domob.eu>
645
646	PR fortran/41615
647	* resolve.c (resolve_contained_fntype): Clarify error message for
648	invalid assumed-length character result on module procedures.
649
6502009-10-07  Janus Weil  <janus@gcc.gnu.org>
651
652	* expr.c (gfc_check_pointer_assign): Do the correct type checking when
653	CLASS variables are involved.
654	* match.c (gfc_match_select_type): Parse associate-name in SELECT TYPE
655	statements, and set up a local namespace for the SELECT TYPE block.
656	* parse.h (gfc_build_block_ns): New prototype.
657	* parse.c (parse_select_type_block): Return from local namespace to its
658	parent after SELECT TYPE block.
659	(gfc_build_block_ns): New function for setting up the local namespace
660	for a BLOCK construct.
661	(parse_block_construct): Use gfc_build_block_ns.
662	* resolve.c (resolve_select_type): Insert assignment for the selector
663	variable, in case an associate-name is given, and put the SELECT TYPE
664	statement inside a BLOCK.
665	(resolve_code): Call resolve_class_assign after checking the assignment.
666	* symbol.c (gfc_find_sym_tree): Moved some code here from
667	gfc_get_ha_sym_tree.
668	(gfc_get_ha_sym_tree): Moved some code to gfc_find_sym_tree.
669
6702009-10-07  Paul Thomas <pault@gcc.gnu.org>
671
672	PR fortran/41613
673	* resolve.c (check_class_members): Reset compcall.assign.
674
6752009-10-05  Paul Thomas  <pault@gcc.gnu.org>
676
677	* trans-expr.c (select_class_proc): New function.
678	(conv_function_val): Deal with class methods and call above.
679	* symbol.c (gfc_type_compatible): Treat case where both ts1 and
680	ts2 are BT_CLASS.
681	gfortran.h : Add structure gfc_class_esym_list and include in
682	the structure gfc_expr.
683	* module.c (load_derived_extensions): New function.
684	(read_module): Call above.
685	(write_dt_extensions): New function.
686	(write_derived_extensions): New function.
687	(write_module): Use the above.
688	* resolve.c (resolve_typebound_call): Add a function expression
689	for class methods.  This carries the chain of symbols for the
690	dynamic dispatch in select_class_proc.
691	(resolve_compcall): Add second, boolean argument to indicate if
692	a function is being handled.
693	(check_members): New function.
694	(check_class_members): New function.
695	(resolve_class_compcall): New function.
696	(resolve_class_typebound_call): New function.
697	(gfc_resolve_expr): Call above for component calls..
698
6992009-10-05  Daniel Kraft  <d@domob.eu>
700
701	PR fortran/41403
702	* trans-stmt.c (gfc_trans_goto): Ignore statement list on assigned goto
703	if it is present.
704
7052009-10-03  Richard Guenther  <rguenther@suse.de>
706
707	* options.c (gfc_post_options): Handle -flto and -fwhopr.
708
7092009-10-02  Tobias Burnus  <burnus@net-b.de>
710
711	PR fortran/41479
712	* trans-decl.c (gfc_init_default_dt): Check for presence of
713	the argument only if it is optional or in entry master.
714	(init_intent_out_dt): Ditto; call gfc_init_default_dt
715	for all derived types with initializers.
716
7172009-10-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
718
719	PR fortran/33197
720	* gfortran.h (HAVE_mpc_arc): Define.
721	* simplify.c (gfc_simplify_acos): Handle complex acos.
722	(gfc_simplify_acosh): Likewise for acosh.
723	(gfc_simplify_asin): Likewise for asin.
724	(gfc_simplify_asinh): Likewise for asinh.
725	(gfc_simplify_atan): Likewise for atan.
726	(gfc_simplify_atanh): Likewise for atanh.
727
7282009-10-01  Tobias Burnus  <burnus@net-b.de>
729
730	PR fortran/41515
731	* decl.c (do_parm): Call add_init_expr_to_sym.
732
7332009-09-30  Dennis Wassel  <dennis.wassel@gmail.com>
734
735	* gcc/fortran/trans-array.c (gfc_trans_array_bound_check): Improved
736	bounds checking error messages. (gfc_conv_array_ref): Likewise.
737	(gfc_conv_ss_startstride): Likewise.
738
7392009-09-30  Janus Weil  <janus@gcc.gnu.org>
740
741	* resolve.c (check_typebound_baseobject): Don't check for
742	abstract types for CLASS.
743	(resolve_class_assign): Adapt for RHS being a CLASS.
744	* trans-intrinsic.c (gfc_conv_associated): Add component ref
745	if expr is a CLASS.
746
7472009-09-30  Janus Weil  <janus@gcc.gnu.org>
748
749	* check.c (gfc_check_same_type_as): New function for checking
750	SAME_TYPE_AS and EXTENDS_TYPE_OF.
751	* decl.c (encapsulate_class_symbol): Set ABSTRACT attribute for class
752	container, if the contained type has it. Add an initializer for the
753	class container.
754	(add_init_expr_to_sym): Handle BT_CLASS.
755	(vindex_counter): New counter for setting vindices.
756	(gfc_match_derived_decl): Set vindex for all derived types, not only
757	those which are being extended.
758	* expr.c (gfc_check_assign_symbol): Handle NULL initialization of class
759	pointers.
760	* gfortran.h (gfc_isym_id): New values GFC_ISYM_SAME_TYPE_AS and
761	GFC_ISYM_EXTENDS_TYPE_OF.
762	(gfc_type_is_extensible): New prototype.
763	* intrinsic.h (gfc_check_same_type_as): New prototype.
764	* intrinsic.c (add_functions): Add SAME_TYPE_AS and EXTENDS_TYPE_OF.
765	* primary.c (gfc_expr_attr): Handle CLASS-valued functions.
766	* resolve.c (resolve_structure_cons): Handle BT_CLASS.
767	(type_is_extensible): Make non-static and rename to
768	'gfc_type_is_extensible.
769	(resolve_select_type): Renamed type_is_extensible.
770	(resolve_class_assign): Handle NULL pointers.
771	(resolve_fl_variable_derived): Renamed type_is_extensible.
772	(resolve_fl_derived): Ditto.
773	* trans-expr.c (gfc_trans_subcomponent_assign): Handle NULL
774	initialization of class pointer components.
775	(gfc_conv_structure): Handle BT_CLASS.
776	* trans-intrinsic.c (gfc_conv_same_type_as,gfc_conv_extends_type_of):
777	New functions.
778	(gfc_conv_intrinsic_function): Handle SAME_TYPE_AS and EXTENDS_TYPE_OF.
779
7802009-09-30  Janus Weil  <janus@gcc.gnu.org>
781
782	* gfortran.h (type_selector, select_type_tmp): New global variables.
783	* match.c (type_selector, select_type_tmp): New global variables,
784	used for SELECT TYPE statements.
785	(gfc_match_select_type): Better error handling. Remember selector.
786	(gfc_match_type_is): Create temporary variable.
787	* module.c (ab_attribute): New value 'AB_IS_CLASS'.
788	(attr_bits): New string.
789	(mio_symbol_attribute): Handle 'is_class'.
790	* resolve.c (resolve_select_type): Insert pointer assignment statement,
791	to assign temporary to selector.
792	* symbol.c (gfc_get_ha_sym_tree): Replace selector by a temporary
793	in SELECT TYPE statements.
794
7952009-09-30  Janus Weil  <janus@gcc.gnu.org>
796
797	* dump-parse-tree.c (show_code_node): Renamed 'alloc_list'.
798	* gfortran.h (gfc_code): Rename 'alloc_list'. Add member 'ts'.
799	(gfc_expr_to_initialize): New prototype.
800	* match.c (alloc_opt_list): Correctly check type compatibility.
801	Renamed 'alloc_list'.
802	(dealloc_opt_list): Renamed 'alloc_list'.
803	* resolve.c (expr_to_initialize): Rename to 'gfc_expr_to_initialize'
804	and make it non-static.
805	(resolve_allocate_expr): Set vindex for CLASS variables correctly.
806	Move initialization code to gfc_trans_allocate. Renamed 'alloc_list'.
807	(resolve_allocate_deallocate): Renamed 'alloc_list'.
808	(check_class_pointer_assign): Rename to 'resolve_class_assign'. Change
809	argument type. Adjust to work with ordinary assignments.
810	(resolve_code): Call 'resolve_class_assign' for ordinary assignments.
811	Renamed 'check_class_pointer_assign'.
812	* st.c (gfc_free_statement): Renamed 'alloc_list'.
813	* trans-stmt.c (gfc_trans_allocate): Renamed 'alloc_list'. Handle
814	size determination and initialization of CLASS variables. Bugfix for
815	ALLOCATE statements with default initialization and SOURCE block.
816	(gfc_trans_deallocate): Renamed 'alloc_list'.
817
8182009-09-30  Paul Thomas  <pault@gcc.gnu.org>
819
820	* trans-expr.c (gfc_conv_procedure_call): Convert a derived
821	type actual to a class object if the formal argument is a
822	class.
823
8242009-09-30  Janus Weil  <janus@gcc.gnu.org>
825
826	PR fortran/40996
827	* decl.c (build_struct): Handle allocatable scalar components.
828	* expr.c (gfc_add_component_ref): Correctly set typespec of expression,
829	after inserting component reference.
830	* match.c (gfc_match_type_is,gfc_match_class_is): Make sure that no
831	variables are being used uninitialized.
832	* primary.c (gfc_match_varspec): Handle CLASS array components.
833	* resolve.c (resolve_select_type): Transform EXEC_SELECT_TYPE to
834	EXEC_SELECT.
835	* trans-array.c (structure_alloc_comps,gfc_trans_deferred_array):
836	Handle allocatable scalar components.
837	* trans-expr.c (gfc_conv_component_ref): Ditto.
838	* trans-types.c (gfc_get_derived_type): Ditto.
839
8402009-09-30  Janus Weil  <janus@gcc.gnu.org>
841
842	* decl.c (encapsulate_class_symbol): Modify names of class container
843	components by prefixing with '$'.
844	(gfc_match_end): Handle COMP_SELECT_TYPE.
845	* expr.c (gfc_add_component_ref): Modify names of class container
846	components by prefixing with '$'.
847	* gfortran.h (gfc_statement): Add ST_SELECT_TYPE, ST_TYPE_IS and
848	ST_CLASS_IS.
849	(gfc_case): New field 'ts'.
850	(gfc_exec_op): Add EXEC_SELECT_TYPE.
851	(gfc_type_is_extension_of): New prototype.
852	* match.h (gfc_match_select_type,gfc_match_type_is,gfc_match_class_is):
853	New prototypes.
854	* match.c (match_derived_type_spec): New function.
855	(match_type_spec): Use 'match_derived_type_spec'.
856	(match_case_eos): Modify error message.
857	(gfc_match_select_type): New function.
858	(gfc_match_case): Modify error message.
859	(gfc_match_type_is): New function.
860	(gfc_match_class_is): Ditto.
861	* parse.h (gfc_compile_state): Add COMP_SELECT_TYPE.
862	* parse.c (decode_statement): Handle SELECT TYPE, TYPE IS and CLASS IS
863	statements.
864	(next_statement): Handle ST_SELECT_TYPE.
865	(gfc_ascii_statement): Handle ST_SELECT_TYPE, ST_TYPE_IS, ST_CLASS_IS.
866	(parse_select_type_block): New function.
867	(parse_executable): Handle ST_SELECT_TYPE.
868	* resolve.c (resolve_deallocate_expr): Handle BT_CLASS. Modify names of
869	class container components by prefixing with '$'.
870	(resolve_allocate_expr): Ditto.
871	(resolve_select_type): New function.
872	(gfc_resolve_blocks): Handle EXEC_SELECT_TYPE.
873	(check_class_pointer_assign): Modify names of class container
874	components by prefixing with '$'.
875	(resolve_code): Ditto.
876	* st.c (gfc_free_statement): Ditto.
877	* symbol.c (gfc_type_is_extension_of): New function.
878	(gfc_type_compatible): Use 'gfc_type_is_extension_of', plus a bugfix.
879	* trans.c (gfc_trans_code): Handel EXEC_SELECT_TYPE.
880
8812009-09-30  Janus Weil  <janus@gcc.gnu.org>
882	    Paul Thomas <pault@gcc.gnu.org>
883
884	* check.c (gfc_check_move_alloc): Arguments don't have to be arrays.
885	The second argument needs to be type-compatible with the first (not the
886	other way around, which makes a difference for CLASS entities).
887	* decl.c (encapsulate_class_symbol): New function.
888	(build_sym,build_struct): Handle BT_CLASS, call
889	'encapsulate_class_symbol'.
890	(gfc_match_decl_type_spec): Remove warning, use BT_CLASS.
891	(gfc_match_derived_decl): Set vindex;
892	* expr.c (gfc_add_component_ref): New function.
893	(gfc_copy_expr,gfc_check_pointer_assign,gfc_check_assign_symbol):
894	Handle BT_CLASS.
895	* dump-parse-tree.c (show_symbol): Print vindex.
896	* gfortran.h (bt): New basic type BT_CLASS.
897	(symbol_attribute): New field 'is_class'.
898	(gfc_typespec): Remove field 'is_class'.
899	(gfc_symbol): New field 'vindex'.
900	(gfc_get_ultimate_derived_super_type): New prototype.
901	(gfc_add_component_ref): Ditto.
902	* interface.c (gfc_compare_derived_types): Pointer equality check
903	moved here from gfc_compare_types.
904	(gfc_compare_types): Handle BT_CLASS and use
905	gfc_type_compatible.
906	* match.c (gfc_match_allocate,gfc_match_deallocate,gfc_match_call):
907	Handle BT_CLASS.
908	* misc.c (gfc_clear_ts): Removed is_class.
909	(gfc_basic_typename,gfc_typename): Handle BT_CLASS.
910	* module.c (bt_types,mio_typespec): Handle BT_CLASS.
911	(mio_symbol): Handle vindex.
912	* primary.c (gfc_match_varspec,gfc_variable_attr): Handle BT_CLASS.
913	* resolve.c (find_array_spec,check_typebound_baseobject):
914	Handle BT_CLASS.
915	(resolve_ppc_call,resolve_expr_ppc): Don't call 'gfc_is_proc_ptr_comp'
916	inside 'gcc_assert'.
917	(resolve_deallocate_expr,resolve_allocate_expr): Handle BT_CLASS.
918	(check_class_pointer_assign): New function.
919	(resolve_code): Handle BT_CLASS, call check_class_pointer_assign.
920	(resolve_fl_var_and_proc,type_is_extensible,resolve_fl_variable_derived,
921	resolve_fl_variable): Handle BT_CLASS.
922	(check_generic_tbp_ambiguity): Add special case.
923	(resolve_typebound_procedure,resolve_fl_derived): Handle BT_CLASS.
924	* symbol.c (gfc_get_ultimate_derived_super_type): New function.
925	(gfc_type_compatible): Handle BT_CLASS.
926	* trans-expr.c (conv_parent_component_references): Handle CLASS
927	containers.
928	(gfc_conv_initializer): Handle BT_CLASS.
929	* trans-types.c (gfc_typenode_for_spec,gfc_get_derived_type):
930	Handle BT_CLASS.
931
9322009-09-29  Daniel Kraft  <d@domob.eu>
933
934	PR fortran/39626
935	* gfortran.h (enum gfc_statement): Add ST_BLOCK and ST_END_BLOCK.
936	(struct gfc_namespace): Convert flags to bit-fields and add flag
937	`construct_entities' for use with BLOCK constructs.
938	(enum gfc_exec_code): Add EXEC_BLOCK.
939	(struct gfc_code): Add namespace field to union for EXEC_BLOCK.
940	* match.h (gfc_match_block): New prototype.
941	* parse.h (enum gfc_compile_state): Add COMP_BLOCK.
942	* trans.h (gfc_process_block_locals): New prototype.
943	(gfc_trans_deferred_vars): Made public, new prototype.
944	* trans-stmt.h (gfc_trans_block_construct): New prototype.
945	* decl.c (gfc_match_end): Handle END BLOCK correctly.
946	(gfc_match_intent): Error if inside of BLOCK.
947	(gfc_match_optional), (gfc_match_value): Ditto.
948	* match.c (gfc_match_block): New routine.
949	* parse.c (decode_statement): Handle BLOCK statement.
950	(case_exec_markers): Add ST_BLOCK.
951	(case_end): Add ST_END_BLOCK.
952	(gfc_ascii_statement): Handle ST_BLOCK and ST_END_BLOCK.
953	(parse_spec): Check for statements not allowed inside of BLOCK.
954	(parse_block_construct): New routine.
955	(parse_executable): Parse BLOCKs.
956	(parse_progunit): Disallow CONTAINS in BLOCK constructs.
957	* resolve.c (is_illegal_recursion): Find real container procedure and
958	don't get confused by BLOCK constructs.
959	(resolve_block_construct): New routine.
960	(gfc_resolve_blocks), (resolve_code): Handle EXEC_BLOCK.
961	* st.c (gfc_free_statement): Handle EXEC_BLOCK statements.
962	* trans-decl.c (saved_local_decls): New static variable.
963	(add_decl_as_local): New routine.
964	(gfc_finish_var_decl): Add variable as local if inside BLOCK.
965	(gfc_trans_deferred_vars): Make public.
966	(gfc_process_block_locals): New routine.
967	* trans-stmt.c (gfc_trans_block_construct): New routine.
968	* trans.c (gfc_trans_code): Handle EXEC_BLOCK statements.
969
9702009-09-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
971
972	PR fortran/35862
973	* io.c (format_token): Add enumerators for rounding format specifiers.
974	(format_lex): Tokenize the rounding format specifiers.
975	(gfc_match_open): Enable rounding modes in OPEN statement.
976
9772009-09-28  Richard Henderson  <rth@redhat.com>
978
979	* f95-lang.c (gfc_init_builtin_functions): Update call to
980	build_common_builtin_nodes.
981
9822009-09-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
983
984	* simplify.c (gfc_simplify_acos, gfc_simplify_acosh,
985	gfc_simplify_asin, gfc_simplify_asinh, gfc_simplify_atan,
986	gfc_simplify_atanh): Fix error message.
987
9882009-09-24  Steven G. Kargl  <kargl@gcc.gnu.org>
989
990	PR fortran/41459
991	* error.c(gfc_warning_now): Move warnings_are_errors test to
992	after actual emitting of the warning.
993	* parse.c (next_free): Improve error locus printing.
994	(next_fixed): Change gfc_warn to gfc_warning_now, and improve
995	locus reporting.
996
9972009-09-16  Michael Matz  <matz@suse.de>
998
999	PR fortran/41212
1000	* trans.h (struct lang_type): Remove nontarget_type member.
1001	* trans.c (gfc_add_modify): Don't access it.
1002	* trans-decl.c (gfc_finish_var_decl): Don't allocate and set it,
1003	instead set DECL_RESTRICTED_P on affected decls.
1004
10052009-09-14  Richard Henderson  <rth@redhat.com>
1006
1007	* f95-lang.c (gfc_init_builtin_functions): Update call to
1008	build_common_builtin_nodes.
1009	(gfc_maybe_initialize_eh): Don't call
1010	default_init_unwind_resume_libfunc.
1011
10122009-09-13  Richard Guenther  <rguenther@suse.de>
1013	Rafael Avila de Espindola  <espindola@google.com>
1014
1015	* f95-lang.c (gfc_maybe_initialize_eh): Do not init
1016	eh_personality_libfunc.
1017
10182009-09-11  Janus Weil  <janus@gcc.gnu.org>
1019
1020	PR fortran/41242
1021	* resolve.c (resolve_ordinary_assign): Don't call resolve_code,
1022	to avoid that subsequent codes are resolved more than once.
1023	(resolve_code): Make sure that type-bound assignment operators are
1024	resolved correctly.
1025
1026
10272009-09-10  Steven G. Kargl  <kargl@gcc.gnu.org>
1028
1029	PR fortran/31292
1030	* fortran/decl.c(gfc_match_modproc): Check that module procedures
1031	from a module can USEd in module procedure statements in other
1032	program units.  Update locus for better error message display.
1033	Detect intrinsic procedures in module procedure statements.
1034
10352009-09-09  Richard Guenther  <rguenther@suse.de>
1036
1037	PR fortran/41297
1038	* trans-expr.c (gfc_trans_scalar_assign): Correct typo that
1039	left 'tmp' unused in derived type assignment.
1040
10412009-09-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
1042
1043	PR fortran/41197
1044	* resolve_c (resolve_allocate_deallocate):  Complain
1045	if stat or errmsg varaible is an array.
1046
10472009-09-05  Paul Thomas  <pault@gcc.gnu.org>
1048
1049	PR fortran/41258
1050	* primary.c (gfc_match_varspec): Do not look for typebound
1051	procedures unless the derived type has a f2k_derived namespace.
1052
10532009-09-03  Diego Novillo  <dnovillo@google.com>
1054
1055	* f95-lang.c (lang_hooks): Remove const qualifier.
1056
10572009-09-01  Richard Guenther  <rguenther@suse.de>
1058
1059	* f95-lang.c (gfc_mark_addressable): Remove.
1060	(LANG_HOOKS_MARK_ADDRESSABLE): Likewise.
1061
10622009-08-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1063
1064	PR fortran/39229
1065	* scanner.c (next_char): Fix typo in comment.
1066	(gfc_get_char_literal): Warn if truncate flag is set for both fixed and
1067	free form source, adjusting error locus as needed.
1068	* parse.c (next_fixed): Clear the truncate flag.
1069	(next_statement): Remove truncate warning.
1070
10712009-08-31  Janus Weil  <janus@gcc.gnu.org>
1072	    Paul Thomas  <pault@gcc.gnu.org>
1073
1074	PR fortran/40940
1075	* array.c (gfc_match_array_constructor): Rename gfc_match_type_spec.
1076	* decl.c (gfc_match_type_spec): Rename to gfc_match_decl_type_spec,
1077	and reject CLASS with -std=f95.
1078	(gfc_match_implicit, gfc_match_data_decl,gfc_match_prefix,
1079	match_procedure_interface): Rename gfc_match_type_spec.
1080	* gfortran.h (gfc_type_compatible): Add prototype.
1081	* match.h (gfc_match_type_spec): Rename to gfc_match_decl_type_spec.
1082	* match.c (match_intrinsic_typespec): Rename to match_type_spec, and
1083	add handling of derived types.
1084	(gfc_match_allocate): Rename match_intrinsic_typespec and check
1085	type compatibility of derived types.
1086	* symbol.c (gfc_type_compatible): New function to check if two types
1087	are compatible.
1088
10892009-08-31  Janus Weil  <janus@gcc.gnu.org>
1090
1091	PR fortran/40996
1092	* check.c (gfc_check_allocated): Implement allocatable scalars.
1093	* resolve.c (resolve_allocate_expr,resolve_fl_var_and_proc): Ditto.
1094	* trans-intrinsic.c (gfc_conv_allocated): Ditto.
1095
10962009-08-30  Daniel Kraft  <d@domob.eu>
1097
1098	PR fortran/37425
1099	* dump-parse-tree.c (show_typebound_proc): Renamed from `show_typebound'
1100	and accept gfc_typebound_proc and name instead of the symtree, needed
1101	for intrinsic operator output.
1102	(show_typebound_symtree): New method calling `show_typebound_proc'.
1103	(show_f2k_derived): Output type-bound operators also.
1104	(show_symbol): Moved output of `Procedure bindings:' label to
1105	`show_f2k_derived'.
1106	* gfortran.texi (Fortran 2003 status): Mention support of
1107	array-constructors with explicit type specification, type-bound
1108	procedures/operators, type extension, ABSTRACT types and DEFERRED.
1109	Link to Fortran 2003 wiki page.
1110	(Fortran 2008 status): Fix typo.  Link to Fortran 2008 wiki page.
1111	* gfc-internals.texi (Type-bound Procedures): Document the new
1112	members/attributes of gfc_expr.value.compcall used for type-bound
1113	operators.
1114	(Type-bound Operators): New section documenting their internals.
1115
11162009-08-27  Janus Weil  <janus@gcc.gnu.org>
1117
1118	PR fortran/40869
1119	* expr.c (gfc_check_pointer_assign): Enable interface check for
1120	pointer assignments involving procedure pointer components.
1121	* gfortran.h (gfc_compare_interfaces): Modified prototype.
1122	* interface.c (gfc_compare_interfaces): Add argument 'name2', to be
1123	used instead of s2->name. Don't rely on the proc_pointer attribute,
1124	but instead on the flags handed to this function.
1125	(check_interface1,compare_parameter): Add argument for
1126	gfc_compare_interfaces.
1127	* resolve.c (check_generic_tbp_ambiguity): Ditto.
1128
11292009-08-27  Daniel Kraft  <d@domob.eu>
1130
1131	PR fortran/37425
1132	* gfortran.h (gfc_expr): Optionally store base-object in compcall value
1133	and add a new flag to distinguish assign-calls generated.
1134	(gfc_find_typebound_proc): Add locus argument.
1135	(gfc_find_typebound_user_op), (gfc_find_typebound_intrinsic_op): Ditto.
1136	(gfc_extend_expr): Return if failure was by a real error.
1137	* interface.c (matching_typebound_op): New routine.
1138	(build_compcall_for_operator): New routine.
1139	(gfc_extend_expr): Handle type-bound operators, some clean-up and
1140	return if failure was by a real error or just by not finding an
1141	appropriate operator definition.
1142	(gfc_extend_assign): Handle type-bound assignments.
1143	* module.c (MOD_VERSION): Incremented.
1144	(mio_intrinsic_op): New routine.
1145	(mio_full_typebound_tree): New routine to make typebound-procedures IO
1146	code reusable for type-bound user operators.
1147	(mio_f2k_derived): IO of type-bound operators.
1148	* primary.c (gfc_match_varspec): Initialize new fields in gfc_expr and
1149	pass locus to gfc_find_typebound_proc.
1150	* resolve.c (resolve_operator): Only output error about no matching
1151	interface if gfc_extend_expr did not already fail with an error.
1152	(extract_compcall_passed_object): Use specified base-object if present.
1153	(update_compcall_arglist): Handle ignore_pass field.
1154	(resolve_ordinary_assign): Update to handle extended code for
1155	type-bound assignments, too.
1156	(resolve_code): Handle EXEC_ASSIGN_CALL statement code.
1157	(resolve_tb_generic_targets): Pass locus to gfc_find_typebound_proc.
1158	(resolve_typebound_generic), (resolve_typebound_procedure): Ditto.
1159	(resolve_typebound_intrinsic_op), (resolve_typebound_user_op): Ditto.
1160	(ensure_not_abstract_walker), (resolve_fl_derived): Ditto.
1161	(resolve_typebound_procedures): Remove not-implemented error.
1162	(resolve_typebound_call): Handle assign-call flag.
1163	* symbol.c (find_typebound_proc_uop): New argument to pass locus for
1164	error message about PRIVATE, verify that a found procedure is not marked
1165	as erraneous.
1166	(gfc_find_typebound_intrinsic_op): Ditto.
1167	(gfc_find_typebound_proc), (gfc_find_typebound_user_op): New locus arg.
1168
11692009-08-22  Bud Davis <bdavis9659@sbcglobal.net>
1170
1171	PR fortran/28093
1172	* io.c: reverted previous patch.
1173
11742009-08-25  Janne Blomqvist  <jb@gcc.gnu.org>
1175
1176	* gfortran.texi: Fix ENCODE example.
1177
11782009-08-25  Janus Weil  <janus@gcc.gnu.org>
1179
1180	PR fortran/41139
1181	* primary.c (gfc_match_varspec): Make sure EXPR_PPC is only used for
1182	calls to procedure pointer components, other references to procedure
1183	pointer components are EXPR_VARIABLE.
1184	* resolve.c (resolve_actual_arglist): Bugfix (there can be calls without
1185	actual arglist).
1186	* trans-expr.c (gfc_get_proc_ptr_comp): Renamed to 'get_proc_ptr_comp',
1187	removed argument 'se' and made static. Avoid inserting a temporary
1188	variable for calling the PPC.
1189	(conv_function_val): Renamed gfc_get_proc_ptr_comp.
1190	(gfc_conv_procedure_call): Distinguish functions returning a procedure
1191	pointer from calls to a procedure pointer. Distinguish calls to
1192	procedure pointer components from procedure pointer components as
1193	actual arguments.
1194	* trans-stmt.h (gfc_get_proc_ptr_comp): Make it static.
1195
11962009-08-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1197
1198	PR fortran/41162
1199	* io.c (check_format): Fix to not error on slash after P. Fix some
1200	error loci.
1201
12022009-08-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1203
1204	PR fortran/41154
1205	* io.c (check_format): Fix to not error on right paren after P.
1206
12072009-08-24  Aldy Hernandez  <aldyh@redhat.com>
1208
1209	PR fortran/40660
1210	* trans-io.c (build_dt): Pass UNKNOWN_LOCATION to build_call_expr_loc.
1211	(transfer_array_desc): Same.
1212
12132009-08-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1214
1215	PR fortran/35754
1216	* io.c (check_format): Add checks for comma and the allowed
1217	format specifiers after the 'P' specifier. Fix typo in error message
1218	and adjust locus.
1219
12202009-08-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1221
1222	PR fortran/37446
1223	* io.c (enum format_token): Change FMT_EXT to FMT_EN and FMT_ES.
1224	(format_lex): Likewise.
1225	(token_to_string): New function.
1226	(check_format): Use the new tokens and the new function. Add
1227	check for positive width.
1228
12292009-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
1230
1231	* fortran/decl.c: Disallow procedure pointers with -std=f95.
1232
12332009-08-22 Steven K. kargl  <kargl@gcc.gnu.org>
1234	   Paul Thomas  <pault@gcc.gnu.org>
1235
1236	* fortran/decl.c (match_char_spec): Rename to gfc_match_char_spec,
1237	and remove static.
1238	* fortran/gfortran.h: Add *expr3 entity to gfc_code.  Add prototype
1239	for gfc_match_char_spec.
1240	* fortran/trans-stmt.c (gfc_trans_allocate): Translate the SOURCE=
1241	tag.
1242	* fortran/match.c (match_intrinsic_typespec): New function to match
1243	F2003 intrinsic-type-spec.
1244	(conformable_arrays): New function. Check SOURCE= and
1245	allocation-object are conformable.
1246	(gfc_match_allocate): Use new functions.  Match SOURCE= tag.
1247
12482009-08-22  Bud Davis <bdavis9659@sbcglobal.net>
1249
1250	PR fortran/28093
1251	* io.c : added variable to store original len of fmt
1252	* io.c (check_format): Consume H items using next_char
1253	in both modes to handle consecutive single quotes.
1254	Test for extra characters in fmt, issue warning.
1255
12562009-08-21  Janus Weil  <janus@gcc.gnu.org>
1257
1258	PR fortran/41106
1259	* primary.c (gfc_variable_attr): Make it work also on EXPR_FUNCTION.
1260	(gfc_expr_attr): Use gfc_variable_attr for procedure pointer components.
1261	* resolve.c (resolve_fl_derived): Handle CHARACTER-valued procedure
1262	pointer components.
1263	* trans-expr.c (gfc_conv_component_ref): Ditto.
1264	(gfc_conv_variable): Ditto.
1265	(gfc_conv_procedure_call): Ditto.
1266	(gfc_trans_pointer_assignment): Ditto.
1267	* trans-types.c (gfc_get_derived_type): Ditto.
1268
12692009-08-20  Tobias Schlüter  <tobi@gcc.gnu.org>
1270
1271	* trans-stmt.c (gfc_trans_do): Add a few missing folds.
1272
12732009-08-20  Michael Matz  <matz@suse.de>
1274
1275	PR fortran/41126
1276	* trans-expr.c (gfc_conv_string_tmp): Check type compatibility
1277	instead of equality.
1278
12792009-08-20  Janus Weil  <janus@gcc.gnu.org>
1280
1281	PR fortran/41121
1282	* resolve.c (resolve_symbol): Don't resolve formal_ns of intrinsic
1283	procedures.
1284
12852009-08-18  Michael Matz  <matz@suse.de>
1286
1287	* trans-expr.c (gfc_conv_substring): Don't evaluate casted decl early,
1288	change order of length calculation to (end - start) + 1.
1289	(gfc_get_interface_mapping_array): Adjust call to
1290	gfc_get_nodesc_array_type.
1291	* trans-array.c (gfc_trans_create_temp_array,
1292	gfc_build_constant_array_constructor, gfc_conv_expr_descriptor): Ditto.
1293	* trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
1294	* trans.c (gfc_add_modify): Assignment between base type and nontarget
1295	type are equal enough.
1296	(gfc_call_malloc): Use prvoid_type_node for return value of
1297	__builtin_malloc.
1298	(gfc_allocate_with_status): Ditto.
1299	* trans-types.c (gfc_array_descriptor_base): Double size of this array.
1300	(gfc_init_types): Build prvoid_type_node.
1301	(gfc_build_array_type): New bool parameter "restricted".
1302	(gfc_get_nodesc_array_type): Ditto, build restrict qualified pointers,
1303	if it's true.
1304	(gfc_get_array_descriptor_base): Ditto.
1305	(gfc_get_array_type_bounds): Ditto.
1306	(gfc_sym_type): Use symbol attributes to feed calls to above functions.
1307	(gfc_get_derived_type): Ditto.
1308	* trans.h (struct lang_type): Add nontarget_type member.
1309	* trans-types.h (prvoid_type_node): Declare.
1310	(gfc_get_array_type_bounds, gfc_get_nodesc_array_type): Declare new
1311	parameter.
1312	* trans-decl.c (gfc_finish_var_decl): Give scalars that can't be
1313	aliased a type with a different alias set than the base type.
1314	(gfc_build_dummy_array_decl): Adjust call to gfc_get_nodesc_array_type.
1315
13162009-08-18  Janus Weil  <janus@gcc.gnu.org>
1317	    Paul Thomas  <pault@gcc.gnu.org>
1318
1319	PR fortran/40870
1320	* trans-types.c (gfc_get_ppc_type): Include formal args in backend_decl
1321	using the interface symbol. Character types are returned by reference.
1322	(gfc_get_derived_type): Prevent infinite recursion loop
1323	if a PPC has a derived-type formal arg.
1324
13252008-08-17  Paul Thomas  <pault@gcc.gnu.org>
1326
1327	PR fortran/41062
1328	* trans-decl.c (gfc_trans_use_stmts):  Keep going through use
1329	list if symbol is not use associated.
1330
13312009-08-17  Daniel Kraft  <d@domob.eu>
1332
1333	PR fortran/37425
1334	* resolve.c (get_checked_tb_operator_target): New routine to do checks
1335	on type-bound operators in common between intrinsic and user operators.
1336	(resolve_typebound_intrinsic_op): Call it.
1337	(resolve_typebound_user_op): Ditto.
1338
13392009-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1340
1341	PR fortran/41075
1342	* scanner.c (gfc_next_char_literal): Add comment to improve
1343	readability.
1344	* io.c (enum format_token): Add FMT_STAR. (format_lex): Add case
1345	for '*'. (check_format): Check for left paren after '*'.  Change
1346	format checks to use %L to improve format string error locus.
1347
13482009-08-17  Janus Weil  <janus@gcc.gnu.org>
1349
1350	PR fortran/40877
1351	* array.c (gfc_resolve_character_array_constructor): Add NULL argument
1352	to gfc_new_charlen.
1353	* decl.c (add_init_expr_to_sym,variable_decl,match_char_spec,
1354	gfc_match_implicit): Ditto.
1355	* expr.c (simplify_const_ref): Fix memory leak.
1356	(gfc_simplify_expr): Add NULL argument to gfc_new_charlen.
1357	* gfortran.h (gfc_new_charlen): Modified prototype.
1358	* iresolve.c (check_charlen_present,gfc_resolve_char_achar): Add NULL
1359	argument to gfc_new_charlen.
1360	* module.c (mio_charlen): Ditto.
1361	* resolve.c (gfc_resolve_substring_charlen,
1362	gfc_resolve_character_operator,fixup_charlen): Ditto.
1363	(resolve_fl_derived,resolve_symbol): Add argument to gfc_charlen.
1364	* symbol.c (gfc_new_charlen): Add argument 'old_cl' (to make a copy of
1365	an existing charlen).
1366	(gfc_set_default_type,generate_isocbinding_symbol): Fix memory leak.
1367	(gfc_copy_formal_args_intr): Add NULL argument to gfc_new_charlen.
1368	* trans-decl.c (create_function_arglist): Fix memory leak.
1369
13702009-08-17  Richard Guenther  <rguenther@suse.de>
1371
1372	* trans-expr.c (gfc_trans_scalar_assign): Replace hack with
1373	more proper hack.
1374
13752009-08-15  Tobias Burnus  <burnus@net-b.de>
1376
1377	PR fortran/41080
1378	* gfortranspec.c (lookup_option): Remove gfortran-specific
1379	version of -dumpversion.
1380
13812009-08-14  Janus Weil  <janus@gcc.gnu.org>
1382
1383	PR fortran/41070
1384	* resolve.c (resolve_structure_cons): Make sure that ts.u.derived is
1385	only used if type is BT_DERIVED.
1386
13872009-08-13  Janus Weil  <janus@gcc.gnu.org>
1388
1389	PR fortran/40941
1390	* gfortran.h (gfc_typespec): Put 'derived' and 'cl' into union.
1391	* decl.c (build_struct): Make sure 'cl' is only used
1392	if type is BT_CHARACTER.
1393	* symbol.c (gfc_set_default_type): Ditto.
1394	* resolve.c (resolve_symbol, resolve_fl_derived): Ditto.
1395	(resolve_equivalence,resolve_equivalence_derived): Make sure 'derived'
1396	is only used if type is BT_DERIVED.
1397	* trans-io.c (transfer_expr): Make sure 'derived' is only used if type
1398	is BT_DERIVED or BT_INTEGER (special case: C_PTR/C_FUNPTR).
1399	* array.c: Mechanical replacements to accomodate union in gfc_typespec.
1400	* check.c: Ditto.
1401	* data.c: Ditto.
1402	* decl.c: Ditto.
1403	* dump-parse-tree.c: Ditto.
1404	* expr.c: Ditto.
1405	* interface.c: Ditto.
1406	* iresolve.c: Ditto.
1407	* match.c: Ditto.
1408	* misc.c: Ditto.
1409	* module.c: Ditto.
1410	* openmp.c: Ditto.
1411	* parse.c: Ditto.
1412	* primary.c: Ditto.
1413	* resolve.c: Ditto.
1414	* simplify.c: Ditto.
1415	* symbol.c: Ditto.
1416	* target-memory.c: Ditto.
1417	* trans-array.c: Ditto.
1418	* trans-common.c: Ditto.
1419	* trans-const.c: Ditto.
1420	* trans-decl.c: Ditto.
1421	* trans-expr.c: Ditto.
1422	* trans-intrinsic.c: Ditto.
1423	* trans-io.c: Ditto.
1424	* trans-stmt.c: Ditto.
1425	* trans-types.c: Ditto.
1426
14272009-08-13  Janus Weil  <janus@gcc.gnu.org>
1428
1429	PR fortran/40995
1430	* resolve.c (resolve_symbol): Move some checking code to
1431	resolve_intrinsic, and call this from here.
1432	(resolve_intrinsic): Some checking code moved here from resolve_symbol.
1433	Make sure each intrinsic is only resolved once.
1434
14352009-08-12  Tobias Burnus  <burnus@net-b.de>
1436
1437	PR fortran/41034
1438	* symbol.c (gfc_copy_attr): Merge bits instead of replace
1439	bits in gfc_copy_attr.
1440	* gfc_check_pointer_assign (gfc_check_pointer_assign):
1441	Initialize ext_attr bits by zero.
1442
14432009-08-11  Richard Guenther  <rguenther@suse.de>
1444
1445	* trans-types.c (gfc_get_derived_type): Do not clear TYPE_CANONICAL.
1446
14472009-08-11  Janus Weil  <janus@gcc.gnu.org>
1448
1449	PR fortran/41022
1450	* trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
1451	components as actual arguments.
1452
14532009-08-10  Daniel Kraft  <d@domob.eu>
1454
1455	PR fortran/37425
1456	* gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op.
1457	(gfc_find_typebound_user_op): New routine.
1458	(gfc_find_typebound_intrinsic_op): Ditto.
1459	(gfc_check_operator_interface): Now public routine.
1460	* decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=).
1461	* interface.c (check_operator_interface): Made public, renamed to
1462	`gfc_check_operator_interface' accordingly and hand in the interface
1463	as gfc_symbol rather than gfc_interface so it is useful for type-bound
1464	operators, too.  Return boolean result.
1465	(gfc_check_interfaces): Adapt call to `check_operator_interface'.
1466	* symbol.c (gfc_get_namespace): Initialize new field `tb_op'.
1467	(gfc_free_namespace): Free `tb_uop_root'-based tree.
1468	(find_typebound_proc_uop): New helper function.
1469	(gfc_find_typebound_proc): Use it.
1470	(gfc_find_typebound_user_op): New method.
1471	(gfc_find_typebound_intrinsic_op): Ditto.
1472	* resolve.c (resolve_tb_generic_targets): New helper function.
1473	(resolve_typebound_generic): Use it.
1474	(resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New.
1475	(resolve_typebound_procedures): Resolve operators, too.
1476	(check_uop_procedure): New, code from gfc_resolve_uops.
1477	(gfc_resolve_uops): Moved main code to new `check_uop_procedure'.
1478
14792009-08-10  Janus Weil  <janus@gcc.gnu.org>
1480
1481	PR fortran/40940
1482	* decl.c (gfc_match_type_spec): Match CLASS statement and warn about
1483	missing polymorphism.
1484	* gfortran.h (gfc_typespec): Add field 'is_class'.
1485	* misc.c (gfc_clear_ts): Initialize 'is_class' to zero.
1486	* resolve.c (type_is_extensible): New function to check if a derived
1487	type is extensible.
1488	(resolve_fl_variable_derived): Add error checks for CLASS variables.
1489	(resolve_typebound_procedure): Disallow non-polymorphic passed-object
1490	dummy arguments, turning warning into error.
1491	(resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic
1492	passed-object dummy arguments for procedure pointer components,
1493	turning warning into error. Add error check for CLASS components.
1494
14952009-08-05  Tobias Burnus  <burnus@net-b.de>
1496
1497	PR fortran/40955
1498	* gfortran.h (ext_attr_id_t): Add typedef for this enum.
1499	(gfc_add_ext_attribute): Use it.
1500	* decl.c (gfc_match_gcc_attributes): Ditto.
1501	* expr.c (gfc_check_pointer_assign): Ditto.
1502	* symbol.c (gfc_add_ext_attribute): Ditto.
1503	(gfc_copy_attr): Copy also ext_attr.
1504	* resolve.c (resolve_fl_derived,resolve_symbol): Ditto.
1505	* module.c (mio_symbol_attribute): Save ext_attr in the mod file.
1506
15072009-08-05  Tobias Burnus  <burnus@net-b.de>
1508
1509	PR fortran/40969
1510	Revert:
1511	2009-08-04  Tobias Burnus  <burnus@net-b.de>
1512
1513	PR fortran/40949
1514	* trans-types.c (gfc_get_function_type): Fix typelist of
1515	functions without argument.
1516
15172009-08-05  Paul Thomas  <pault@gcc.gnu.org>
1518
1519	PR fortran/40847
1520	* iresolve.c (gfc_resolve_transfer): Correct error in 'mold'
1521	character length for case where length expresson is NULL.
1522
15232009-08-04  Tobias Burnus  <burnus@net-b.de>
1524
1525	PR fortran/40949
1526	* trans-types.c (gfc_get_function_type): Fix typelist of
1527	functions without argument.
1528
15292009-08-04  Paul Thomas  <pault@gcc.gnu.org>
1530
1531	PR fortran/40875
1532	* decl.c (add_init_expr_to_sym): Character symbols can only be
1533	initialized with character expressions.
1534
15352009-08-02  Janus Weil  <janus@gcc.gnu.org>
1536
1537	PR fortran/40881
1538	* decl.c (match_char_length): Warn about old-style character length
1539	declarations.
1540	* match.c (match_arithmetic_if,gfc_match_if): Modify warning message
1541	for arithmetic if.
1542	(gfc_match_goto): Warn about computed gotos.
1543	(gfc_match_return): Warn about alternate return.
1544	(gfc_match_st_function): Warn about statement functions.
1545	* resolve.c (resolve_fl_procedure): Modify warning message for
1546	assumed-length character functions.
1547
15482009-08-01  Paul Thomas  <pault@gcc.gnu.org>
1549
1550	PR fortran/40011
1551	* error.c : Add static flag 'warnings_not_errors'.
1552	(gfc_error): If 'warnings_not_errors' is set, branch to code
1553	from gfc_warning.
1554	(gfc_clear_error): Reset 'warnings_not_errors'.
1555	(gfc_errors_to_warnings): New function.
1556	* options.c (gfc_post_options): If pedantic and flag_whole_file
1557	change the latter to a value of 2.
1558	* parse.c (parse_module): Add module namespace to gsymbol.
1559	(resolve_all_program_units): New function.
1560	(clean_up_modules): New function.
1561	(translate_all_program_units): New function.
1562	(gfc_parse_file): If whole_file, do not clean up module right
1563	away and add derived types to namespace derived types. In
1564	addition, call the three new functions above.
1565	* resolve.c (not_in_recursive): New function.
1566	(not_entry_self_reference): New function.
1567	(resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN,
1568	procedure must not be in the course of being resolved and
1569	must return false for the two new functions. Pack away the
1570	current derived type list before calling gfc_resolve for the
1571	gsymbol namespace.  It is unconditionally an error if the ranks
1572	of the reference and ther procedure do not match. Convert
1573	errors to warnings during call to gfc_procedure_use if not
1574	pedantic or legacy.
1575	(gfc_resolve): Set namespace resolved flag to -1 during
1576	resolution and store current cs_base.
1577	* trans-decl.c (gfc_get_symbol_decl): If whole_file compilation
1578	substitute a use associated variable, if it is available in a
1579	gsymbolnamespace.
1580	(gfc_get_extern_function_decl): If the procedure is use assoc,
1581	do not attempt to find it in a gsymbol because it could be an
1582	interface. If the symbol exists in a module namespace, return
1583	its backend_decl.
1584	* trans-expr.c (gfc_trans_scalar_assign): If a derived type
1585	assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs.
1586	* trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a
1587	boolean argument. Copy component backend_decls directly if the
1588	components are derived types and from_gsym is true.
1589	(gfc_get_derived_type): If whole_file copy the derived type from
1590	the module if it is use associated, otherwise, if can be found
1591	in another gsymbol namespace, use the existing derived type as
1592	the TYPE_CANONICAL and build normally.
1593	* gfortran.h : Add derived_types and resolved fields to
1594	gfc_namespace. Include prototype for gfc_errors_to_warnings.
1595
15962009-07-29  Tobias Burnus  <burnus@net-b.de>
1597
1598	PR fortran/40898
1599	* trans-types.c (gfc_get_function_type): Do not add hidden
1600	string-length argument for BIND(C) procedures.
1601	* trans-decl.c (create_function_arglist): Skip over nonexisting
1602	string-length arguments for BIND(C) procedures.
1603
16042009-07-28  Jakub Jelinek  <jakub@redhat.com>
1605
1606	PR fortran/40878
1607	* openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of
1608	gfc_error to diagnose invalid COLLAPSE arguments.
1609
16102009-07-28  Janus Weil  <janus@gcc.gnu.org>
1611
1612	PR fortran/40882
1613	* trans-types.c (gfc_get_ppc_type): For derived types, directly use the
1614	backend_decl, instead of calling gfc_typenode_for_spec, to avoid
1615	infinte loop.
1616	(gfc_get_derived_type): Correctly handle PPCs returning derived types,
1617	avoiding infinite recursion.
1618
16192009-07-27  Janus Weil  <janus@gcc.gnu.org>
1620
1621	PR fortran/40848
1622	* interface.c (gfc_compare_interfaces): Call 'count_types_test' before
1623	'generic_correspondence', and only if checking a generic interface.
1624
16252009-07-27  Tobias Burnus  <burnus@net-b.de>
1626
1627	PR fortran/40851
1628	* resolve.c (resolve_symbol): Do not initialize pointer derived-types.
1629	* trans-decl.c (init_intent_out_dt): Ditto.
1630	(generate_local_decl): No need to set attr.referenced for DT pointers.
1631
16322009-07-26  Tobias Burnus  <burnus@net-b.de>
1633
1634	PR fortran/33197
1635	* intrinsic.c (make_generic): Remove assert as "atan" can be
1636	both ISYM_ATAN and ISYM_ATAN2.
1637	(add_functions): Add two-argument variant of ATAN.
1638	* intrinsic.h (gfc_check_atan_2): Add check for it.
1639	* intrinsic.texi (ATAN2): Correct and enhance description.
1640	(ATAN): Describe two-argument variant of ATAN.
1641
16422009-07-25  Tobias Burnus  <burnus@net-b.de>
1643	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1644
1645	PR fortran/33197
1646	* intrinsic.c (add_functions): Support complex arguments for
1647	acos,acosh,asin,asinh,atan,atanh.
1648	* invoke.texi (ACOS,ACOSH,ASIN,ASINH,ATAN,ATANH): Support
1649	complex arguments.
1650	* simplify.c (gfc_simplify_acos,gfc_simplify_acosh,
1651	gfc_simplify_asin,gfc_simplify_asinh,gfc_simplify_atan,
1652	gfc_simplify_atanh,gfc_simplify_atan,gfc_simplify_asinh,
1653	gfc_simplify_acosh,gfc_simplify_atanh): Support
1654	complex arguments.
1655
16562009-07-25  Richard Guenther  <rguenther@suse.de>
1657
1658	PR fortran/40005
1659	* trans-types.c (gfc_get_array_type_bounds): Use
1660	build_distinct_type_copy with a proper TYPE_CANONICAL and
1661	re-use the type-decl of the original type.
1662	* trans-decl.c (build_entry_thunks): Signal cgraph we may not
1663	garbage collect.
1664	(create_main_function): Likewise.
1665	(gfc_generate_function_code): Likewise.
1666	* trans-expr.c (gfc_trans_subcomponent_assign): Do not use
1667	fold_convert on record types.
1668
16692009-07-25  Janus Weil  <janus@gcc.gnu.org>
1670
1671	PR fortran/39630
1672	* decl.c (match_ppc_decl): Implement the PASS attribute for procedure
1673	pointer components.
1674	(match_binding_attributes): Ditto.
1675	* gfortran.h (gfc_component): Add member 'tb'.
1676	(gfc_typebound_proc): Add member 'ppc' and make 'pass_arg' const.
1677	* module.c (MOD_VERSION): Bump module version.
1678	(binding_ppc): New string constants.
1679	(mio_component): Only use formal args if component is a procedure
1680	pointer and add 'tb' member.
1681	(mio_typebound_proc): Include pass_arg and take care of procedure
1682	pointer components.
1683	* resolve.c (update_arglist_pass): Add argument 'name' and take care of
1684	optional arguments.
1685	(extract_ppc_passed_object): New function, analogous to
1686	extract_compcall_passed_object, but for procedure pointer components.
1687	(update_ppc_arglist): New function, analogous to
1688	update_compcall_arglist, but for procedure pointer components.
1689	(resolve_typebound_generic_call): Added argument to update_arglist_pass.
1690	(resolve_ppc_call, resolve_expr_ppc): Take care of PASS attribute.
1691	(resolve_fl_derived): Check the PASS argument for procedure pointer
1692	components.
1693	* symbol.c (verify_bind_c_derived_type): Reject procedure pointer
1694	components in BIND(C) types.
1695
16962009-07-24  Janus Weil  <janus@gcc.gnu.org>
1697
1698	PR fortran/40822
1699	* array.c (gfc_resolve_character_array_constructor): Use new function
1700	gfc_new_charlen.
1701	* decl.c (add_init_expr_to_sym,variable_decl,match_char_spec,
1702	gfc_match_implicit): Ditto.
1703	* expr.c (gfc_simplify_expr): Ditto.
1704	* gfortran.h (gfc_new_charlen): New prototype.
1705	* iresolve.c (check_charlen_present,gfc_resolve_char_achar): Use new
1706	function gfc_new_charlen.
1707	* module.c (mio_charlen): Ditto.
1708	* resolve.c (gfc_resolve_substring_charlen,
1709	gfc_resolve_character_operator,fixup_charlen,resolve_fl_derived,
1710	resolve_symbol): Ditto.
1711	* symbol.c (gfc_new_charlen): New function to create a new gfc_charlen
1712	structure and add it to a namespace.
1713	(gfc_copy_formal_args_intr): Make sure ts.cl is present
1714	for CHARACTER variables.
1715
17162009-07-24  Jakub Jelinek  <jakub@redhat.com>
1717
1718	PR fortran/40643
1719	PR fortran/31067
1720	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
1721	gfc_conv_intrinsic_minmaxval): Handle Infinities and NaNs properly,
1722	optimize.
1723	* trans-array.c (gfc_trans_scalarized_loop_end): No longer static.
1724	* trans-array.h (gfc_trans_scalarized_loop_end): New prototype.
1725
17262009-07-23  Jakub Jelinek  <jakub@redhat.com>
1727
1728	PR fortran/40839
1729	* io.c (gfc_resolve_dt): Add LOC argument.  Fail if
1730	dt->io_unit is NULL.  Return FAILURE after issuing error about
1731	negative UNIT number.
1732	(match_io_element): Don't segfault if current_dt->io_unit is NULL.
1733	* gfortran.h (gfc_resolve_dt): Adjust prototype.
1734	* resolve.c (resolve_code): Adjust caller.
1735
17362009-07-22  Paul Thomas  <pault@gcc.gnu.org>
1737
1738	PR fortran/40796
1739	* trans-decl.c (generate_local_decl): Unreferenced result
1740	variables with allocatable components should be treated like
1741	INTENT_OUT dummy variables.
1742
17432009-07-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1744
1745	* trans.h (gfc_set_decl_assembler_name): New prototype.
1746	* trans-decl.c (gfc_set_decl_assembler_name): New function.
1747	(gfc_get_symbol_decl, gfc_get_extern_function_decl,
1748	build_function_decl): Use gfc_set_decl_assembler_name instead of
1749	SET_DECL_ASSEMBLER_NAME.
1750	* trans-common.c (build_common_decl): Use
1751	gfc_set_decl_assembler_name instead of SET_DECL_ASSEMBLER_NAME.
1752
17532009-07-21  Richard Guenther  <rguenther@suse.de>
1754
1755	PR fortran/40726
1756	* trans-decl.c (gfc_get_extern_function_decl): Do not set
1757	DECL_IS_MALLOC for pointer valued functions.
1758	(build_function_decl): The same.
1759
17602009-07-19  Steven G. Kargl  <kargl@gcc.gnu.org>
1761
1762	PR fortran/40727
1763	* fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that
1764	the optional second argument isn't of COMPLEX type.
1765
17662009-07-17  Richard Guenther  <rguenther@suse.de>
1767
1768	PR c/40401
1769	* f95-lang.c (gfc_be_parse_file): Do not finalize the CU here.
1770	* trans-decl.c (gfc_gimplify_function): Remove.
1771	(build_entry_thunks): Do not gimplify here.
1772	(create_main_function): Likewise.
1773	(gfc_generate_function_code): Likewise.
1774
17752009-07-17  Aldy Hernandez  <aldyh@redhat.com>
1776	    Manuel López-Ibáñez  <manu@gcc.gnu.org>
1777
1778	PR 40435
1779	* trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c,
1780	trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location
1781	argument to fold_{unary,binary,ternary}, fold_build[123],
1782	build_call_expr, build_size_arg, build_fold_addr_expr,
1783	build_call_array, non_lvalue, size_diffop,
1784	fold_build1_initializer, fold_build2_initializer,
1785	fold_build3_initializer, fold_build_call_array,
1786	fold_build_call_array_initializer, fold_single_bit_test,
1787	omit_one_operand, omit_two_operands, invert_truthvalue,
1788	fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
1789	combine_comparisons, fold_builtin_*, fold_call_expr,
1790	build_range_check, maybe_fold_offset_to_address, round_up,
1791	round_down.
1792
17932009-07-15  Janus Weil  <janus@gcc.gnu.org>
1794
1795	PR fortran/40743
1796	* resolve.c (resolve_symbol): Don't resolve the formal namespace of a
1797	contained procedure.
1798
17992009-07-14  Taras Glek  <tglek@mozilla.com>
1800	    Rafael Espindola  <espindola@google.com>
1801
1802	* Make-lang.in (fortran.install-plugin): New target for
1803	installing plugin headers.
1804
18052009-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1806
1807	* module.c (mio_symbol): Remove the unused variable, formal.
1808
18092009-07-13  Janus Weil  <janus@gcc.gnu.org>
1810
1811	PR fortran/40646
1812	* module.c (mio_symbol): If the symbol has formal arguments,
1813	the formal namespace will be present.
1814	* resolve.c (resolve_actual_arglist): Correctly handle 'called'
1815	procedure pointer components as actual arguments.
1816	(resolve_fl_derived,resolve_symbol): Make sure the formal namespace
1817	is present.
1818	* trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal
1819	arguments of procedure pointer components.
1820
18212009-07-12  Tobias Burnus  <burnus@net-b.de>
1822	    Philippe Marguinaud <philippe.marguinaud@meteo.fr>
1823
1824	PR fortran/40588
1825	* primary.c (match_charkind_name): Fix condition for $ matching.
1826
1827	PR libfortran/22423
1828	* libgfortran.h: Typedef the GFC_DTYPE_* enum.
1829
18302009-07-11  Tobias Burnus  <burnus@net-b.de>
1831
1832	PR fortran/33197
1833	* check.c (gfc_check_fn_rc2008): New function.
1834	* intrinsic.h (gfc_check_fn_rc2008): New prototype.
1835	* intrinsic.c (add_functions): Add complex tan, cosh, sinh,
1836	and tanh.
1837
18382009-07-10  Paul Thomas  <pault@gcc.gnu.org>
1839
1840	PR fortran/39334
1841	* primary.c (match_kind_param): Return MATCH_NO if the symbol
1842	has no value.
1843
18442008-07-09  Paul Thomas  <pault@gcc.gnu.org>
1845
1846	PR fortran/40629
1847	* resolve.c (check_host_association):  Use the existing
1848	accessible symtree and treat function expressions with
1849	symbols that have procedure flavor.
1850
18512009-07-09  Janus Weil  <janus@gcc.gnu.org>
1852
1853	PR fortran/40646
1854	* dump-parse-tree.c (show_expr): Renamed 'is_proc_ptr_comp'.
1855	* expr.c (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
1856	(gfc_check_pointer_assign): Renamed 'is_proc_ptr_comp'.
1857	(replace_comp,gfc_expr_replace_comp): New functions, analogous
1858	to 'replace_symbol' and 'gfc_expr_replace_symbol', just with components
1859	instead of symbols.
1860	* gfortran.h (gfc_expr_replace_comp): New prototype.
1861	(is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
1862	* interface.c (compare_actual_formal): Renamed 'is_proc_ptr_comp'.
1863	* match.c (gfc_match_pointer_assignment): Ditto.
1864	* primary.c (gfc_match_varspec): Handle array-valued procedure pointers
1865	and procedure pointer components. Renamed 'is_proc_ptr_comp'.
1866	* resolve.c (resolve_fl_derived): Correctly handle interfaces with
1867	RESULT statement, and handle array-valued procedure pointer components.
1868	(resolve_actual_arglist,resolve_ppc_call,resolve_expr_ppc): Renamed
1869	'is_proc_ptr_comp'.
1870	* trans-array.c (gfc_walk_function_expr): Ditto.
1871	* trans-decl.c (gfc_get_symbol_decl): Security check for presence of
1872	ns->proc_name.
1873	* trans-expr.c (gfc_conv_procedure_call): Handle array-valued procedure
1874	pointer components. Renamed 'is_proc_ptr_comp'.
1875	(conv_function_val,gfc_trans_arrayfunc_assign): Renamed
1876	'is_proc_ptr_comp'.
1877	(gfc_get_proc_ptr_comp): Do not modify the argument 'e', but instead
1878	make a copy of it.
1879	* trans-io.c (gfc_trans_transfer): Handle array-valued procedure
1880	pointer components.
1881
18822009-07-09  Tobias Burnus  <burnus@net-b.de>
1883
1884	PR fortran/40604
1885	* intrinsic.c (gfc_convert_type_warn): Set sym->result.
1886	* trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
1887	for optional arguments.
1888
18892009-07-08  Tobias Burnus  <burnus@net-b.de>
1890
1891	PR fortran/40675
1892	* simplify.c (gfc_simplify_sign): Handle signed zero correctly.
1893	* trans-intrinsic.c (gfc_conv_intrinsic_sign): Support
1894	-fno-sign-zero.
1895	* invoke.texi (-fno-sign-zero): Add text regarding SIGN intrinsic.
1896
18972008-07-08  Paul Thomas  <pault@gcc.gnu.org>
1898
1899	PR fortran/40591
1900	* decl.c (match_procedure_interface):  Correct the association
1901	or creation of the interface procedure's symbol.
1902
19032009-07-04  Jakub Jelinek  <jakub@redhat.com>
1904
1905	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer
1906	maxloc initialize limit to -huge-1 rather than just -huge.
1907
19082009-07-04  Janus Weil  <janus@gcc.gnu.org>
1909
1910	PR fortran/40593
1911	* interface.c (compare_actual_formal): Take care of proc-pointer-valued
1912	functions as actual arguments.
1913	* trans-expr.c (gfc_conv_procedure_call): Ditto.
1914	* resolve.c (resolve_specific_f0): Use the correct ts.
1915
19162009-07-02  Michael Matz  <matz@suse.de>
1917
1918	PR fortran/32131
1919	* trans-array.c (gfc_conv_descriptor_stride_get): Return
1920	constant one for strides in the first dimension of ALLOCATABLE
1921	arrays.
1922
19232009-06-30  Janus Weil  <janus@gcc.gnu.org>
1924
1925	PR fortran/40594
1926	* trans-types.c (gfc_get_derived_type): Bugfix, reverting one hunk from
1927	r147206.
1928
19292009-06-29  Tobias Burnus  <burnus@net-b.de>
1930
1931	PR fortran/40580
1932	* trans-expr.c  (gfc_conv_procedure_call): Add -fcheck=pointer check.
1933	* libgfortran.h: Add GFC_RTCHECK_POINTER.
1934	* invoke.texi (-fcheck): Document new pointer option.
1935	* options.c (gfc_handle_runtime_check_option): Handle pointer option.
1936
1937	* gfortran.texi (C Binding): Improve wording.
1938	* iso-c-binding.def: Remove obsolete comment.
1939
19402009-06-29  Paul Thomas  <pault@gcc.gnu.org>
1941
1942	PR fortran/40551
1943	* dependency.h : Add second bool* argument to prototype of
1944	gfc_full_array_ref_p.
1945	* dependency.c (gfc_full_array_ref_p): If second argument is
1946	present, return true if last dimension of reference is an
1947	element or has unity stride.
1948	* trans-array.c : Add NULL second argument to references to
1949	gfc_full_array_ref_p.
1950	* trans-expr.c : The same, except for;
1951	(gfc_trans_arrayfunc_assign): Return fail if lhs reference
1952	is not a full array or a contiguous section.
1953
19542009-06-28  Tobias Burnus  <burnus@net-b.de>
1955	    Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1956
1957	PR fortran/34112
1958	* symbol.c (gfc_add_ext_attribute): New function.
1959	(gfc_get_sym_tree): New argument allow_subroutine.
1960	(gfc_get_symbol,gfc_get_ha_sym_tree,gen_cptr_param,gen_fptr_param
1961	gen_shape_param,generate_isocbinding_symbol): Use it.
1962	* decl.c (find_special): New argument allow_subroutine.
1963	(add_init_expr_to_sym,add_hidden_procptr_result,attr_decl1,
1964	match_procedure_in_type,gfc_match_final_decl): Use it.
1965	(gfc_match_gcc_attributes): New function.
1966	* gfortran.texi (Mixed-Language Programming): New section
1967	"GNU Fortran Compiler Directives".
1968	* gfortran.h (ext_attr_t): New struct.
1969	(symbol_attributes): Use it.
1970	(gfc_add_ext_attribute): New prototype.
1971	(gfc_get_sym_tree): Update pototype.
1972	* expr.c (gfc_check_pointer_assign): Check whether call
1973	convention is the same.
1974	* module.c (import_iso_c_binding_module, create_int_parameter,
1975	use_iso_fortran_env_module): Update gfc_get_sym_tree call.
1976	* scanner.c (skip_gcc_attribute): New function.
1977	(skip_free_comments,skip_fixed_comments): Use it.
1978	(gfc_next_char_literal): Support !GCC$ lines.
1979	* resolve.c (check_host_association): Update
1980	gfc_get_sym_tree call.
1981	* match.c (gfc_match_sym_tree,gfc_match_call): Update
1982	gfc_get_sym_tree call.
1983	* trans-decl.c (add_attributes_to_decl): New function.
1984	(gfc_get_symbol_decl,get_proc_pointer_decl,
1985	gfc_get_extern_function_decl,build_function_decl: Use it.
1986	* match.h (gfc_match_gcc_attributes): Add prototype.
1987	* parse.c (decode_gcc_attribute): New function.
1988	(next_free,next_fixed): Support !GCC$ lines.
1989	* primary.c (match_actual_arg,check_for_implicit_index,
1990	gfc_match_rvalue,gfc_match_rvalue): Update
1991	gfc_get_sym_tree call.
1992
19932009-06-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1994
1995	* gfortran.h: Define HAVE_mpc_pow.
1996	* arith.c (complex_reciprocal, complex_pow): If HAVE_mpc_pow,
1997	don't define these functions.
1998	(arith_power): If HAVE_mpc_pow, use mpc_pow.
1999
20002009-06-26  Janus Weil  <janus@gcc.gnu.org>
2001
2002	PR fortran/39997
2003	PR fortran/40541
2004	* decl.c (add_hidden_procptr_result): Copy the typespec to the hidden
2005	result.
2006	* expr.c (gfc_check_pointer_assign): Enable interface check for
2007	procedure pointer assignments where the rhs is a function returning a
2008	procedure pointer.
2009	* resolve.c (resolve_symbol): If an external procedure with unspecified
2010	return type can not be implicitly typed, it must be a subroutine.
2011
20122009-06-24  Janus Weil  <janus@gcc.gnu.org>
2013
2014	PR fortran/40427
2015	* gfortran.h (gfc_component): New member 'formal_ns'.
2016	(gfc_copy_formal_args_ppc,void gfc_ppc_use): New.
2017	* interface.c (gfc_ppc_use): New function, analogous to
2018	gfc_procedure_use, but for procedure pointer components.
2019	* module.c (MOD_VERSION): Bump module version.
2020	(mio_component): Treat formal arguments.
2021	(mio_formal_arglist): Changed argument from gfc_symbol to
2022	gfc_formal_arglist.
2023	(mio_symbol): Changed argument of mio_formal_arglist.
2024	* resolve.c (resolve_ppc_call,resolve_expr_ppc): Call gfc_ppc_use,
2025	to check actual arguments and treat formal args correctly.
2026	(resolve_fl_derived): Copy formal args of procedure pointer components
2027	from their interface.
2028	* symbol.c (gfc_copy_formal_args_ppc): New function, analogous to
2029	gfc_copy_formal_args, but for procedure pointer components.
2030
20312009-06-22  Janus Weil  <janus@gcc.gnu.org>
2032
2033	PR fortran/37254
2034	PR fortran/39850
2035	* interface.c (compare_parameter): Set implicit type for function
2036	actual arguments with BT_UNKNOWN.
2037
20382009-06-22  Tobias Burnus  <burnus@net-b.de>
2039
2040	PR fortran/40472
2041	PR fortran/50520
2042	* simplify.c (gfc_simplify_spread): Fix the case that source=
2043	is a scalar.
2044
20452009-06-22  Paul Thomas  <pault@gcc.gnu.org>
2046
2047	PR fortran/40443
2048	* interface.c (gfc_search_interface): Hold back a match to an
2049	elementary procedure until all other possibilities are
2050	exhausted.
2051
20522009-06-22  Paul Thomas  <pault@gcc.gnu.org>
2053
2054	PR fortran/40472
2055	* simplify.c (gfc_simplify_spread): Restrict the result size to
2056	the limit for an array constructor.
2057
20582009-06-21  Janus Weil  <janus@gcc.gnu.org>
2059
2060	PR fortran/39850
2061	* interface.c (gfc_compare_interfaces): Take care of implicit typing
2062	when checking the function attribute. Plus another bugfix.
2063	(compare_parameter): Set attr.function and attr.subroutine according
2064	to the usage of a procedure as actual argument.
2065
20662009-06-20  Tobias Burnus  <burnus@net-b.de>
2067
2068	PR fortran/40452
2069	* trans-decl.c (add_argument_checking): Disable bounds check
2070	for allowed argument storage association.
2071
20722009-06-19  Paul Thomas  <pault@gcc.gnu.org>
2073
2074	PR fortran/40440
2075	* trans-expr.c (gfc_conv_procedure_call): Do not deallocate
2076	allocatable components if the argument is a pointer.
2077
20782009-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2079
2080	* gfortran.h (gfc_expr): Use mpc_t to represent complex numbers.
2081
2082	* arith.c, dump-parse-tree.c, expr.c, module.c, resolve.c,
2083	simplify.c, target-memory.c, target-memory.h, trans-const.c,
2084	trans-expr.c: Convert to mpc_t throughout.
2085
20862009-06-19  Ian Lance Taylor  <iant@google.com>
2087
2088	* cpp.c (struct gfc_cpp_option_data): Give this struct, used for
2089	the global variable gfc_cpp_option, a name.
2090
20912009-06-19  Janus Weil  <janus@gcc.gnu.org>
2092
2093	PR fortran/40450
2094	* trans-expr.c (gfc_conv_procedure_call): Only add an extra addr_expr
2095	to a procedure pointer actual argument, if it is not itself a
2096	dummy arg.
2097
20982009-06-18  Janus Weil  <janus@gcc.gnu.org>
2099
2100	PR fortran/40451
2101	* resolve.c (resolve_contained_fntype): Prevent implicit typing for
2102	procedures with explicit interface.
2103	* symbol.c (gfc_check_function_type): Ditto.
2104
21052009-06-16  Ian Lance Taylor  <iant@google.com>
2106
2107	* decl.c (build_struct): Rewrite loop over constructor elements.
2108
21092009-06-16  Janus Weil  <janus@gcc.gnu.org>
2110
2111	PR fortran/36947
2112	PR fortran/40039
2113	* expr.c (gfc_check_pointer_assign): Call 'gfc_compare_interfaces' with
2114	error message.
2115	* gfortran.h (gfc_compare_interfaces): Additional argument.
2116	* interface.c (operator_correspondence): Removed.
2117	(gfc_compare_interfaces): Additional argument to return error message.
2118	Directly use the code from 'operator_correspondence' instead of calling
2119	the function. Check for OPTIONAL. Some rearrangements.
2120	(check_interface1): Call 'gfc_compare_interfaces' without error message.
2121	(compare_parameter): Call 'gfc_compare_interfaces' with error message.
2122	* resolve.c (check_generic_tbp_ambiguity): Call 'gfc_compare_interfaces'
2123	without error message.
2124
21252009-06-16  Tobias Burnus  <burnus@net-b.de>
2126
2127	PR fortran/40383
2128	* trans-decl.c (create_function_arglist): Copy formal charlist to
2129	have a proper passed_length for -fcheck=bounds.
2130
21312009-06-12  Steven G. Kargl  <kargls@comcast.net>
2132
2133	* arith.c (gfc_enum_initializer): Move function ...
2134	* decl.c: ... here.  Remove gfc_ prefix and make static.
2135	(enumerator_decl): Update function call.
2136	* gfortran.h:  Remove gfc_enum_initializer prototype.
2137
21382009-06-12  Aldy Hernandez  <aldyh@redhat.com>
2139
2140	* trans-array.c (gfc_trans_allocate_array_storage): Pass
2141	location on down.
2142	(gfc_trans_array_constructor_value): Same.
2143	(gfc_trans_scalarized_loop_end): Same.
2144	(gfc_conv_ss_startstride): Same.
2145	(gfc_trans_g77_array): Same.
2146	(gfc_trans_dummy_array_bias): Same.
2147	(gfc_conv_array_parameter): Same.
2148	(structure_alloc_comps): Same.
2149	* trans-expr.c (gfc_conv_function_call): Same.
2150	(fill_with_spaces): Same.
2151	(gfc_trans_string_copy): Same.
2152	(gfc_trans_scalar_assign): Same.
2153	* trans-stmt.c (gfc_trans_goto): Same.
2154	(gfc_trans_if_1): Same.
2155	(gfc_trans_simple_do): Same.
2156	(gfc_trans_do): Same.
2157	(gfc_trans_do_while): Same.
2158	(gfc_trans_logical_select): Same.
2159	(gfc_trans_select): Same.
2160	(gfc_trans_forall_loop): Same.
2161	(gfc_trans_nested_forall_loop): Same.
2162	(generate_loop_for_temp_to_lhs): Same.
2163	(generate_loop_for_rhs_to_temp): Same.
2164	(gfc_trans_forall_1): Same.
2165	(gfc_trans_where_assign): Same.
2166	(gfc_trans_where_3): Same.
2167	(gfc_trans_allocate): Same.
2168	* trans.c (gfc_finish_block): Same.
2169	(gfc_trans_runtime_check): Same.
2170	(gfc_call_malloc): Same.
2171	(gfc_allocate_with_status): Same.
2172	(gfc_call_free): Same.
2173	(gfc_deallocate_with_status): Same.
2174	(gfc_call_realloc): Same.
2175	(gfc_trans_code): Same.
2176	* trans-decl.c (gfc_init_default_dt): Same.
2177	(gfc_generate_constructors): Same.
2178	* trans-io.c (gfc_trans_io_runtime_check): Same.
2179	* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same.
2180	(gfc_conv_intrinsic_fdate): Same.
2181	(gfc_conv_intrinsic_ttynam): Same.
2182	(gfc_conv_intrinsic_minmax): Same.
2183	(gfc_conv_intrinsic_minmax_char): Same.
2184	(gfc_conv_intrinsic_anyall): Same.
2185	(gfc_conv_intrinsic_count): Same.
2186	(gfc_conv_intrinsic_arith): Same.
2187	(gfc_conv_intrinsic_minmaxloc): Same.
2188	(gfc_conv_intrinsic_minmaxval): Same.
2189	(gfc_conv_intrinsic_rrspacing): Same.
2190	(gfc_conv_intrinsic_array_transfer): Same.
2191	(gfc_conv_intrinsic_trim): Same.
2192	(gfc_conv_intrinsic_repeat): Same.
2193
21942009-06-12  Janus Weil  <janus@gcc.gnu.org>
2195
2196	PR fortran/40176
2197	* resolve.c (resolve_symbol): Additional error check, preventing an
2198	infinite loop.
2199
22002009-06-11  Paul Thomas  <pault@gcc.gnu.org>
2201
2202	PR fortran/40402
2203	* resolve.c (next_data_value): It is an error if the value is
2204	not constant.
2205
22062009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2207
2208	PR fortran/38718
2209	* intrinsic.c (add_functions): Add simplifiers for ISNAN,
2210	IS_IOSTAT_END and IS_IOSTAT_EOR.
2211	* intrinsic.h (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
2212	gfc_simplify_isnan): New prototypes.
2213	* intrinsic.c (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
2214	gfc_simplify_isnan): New functions.
2215
22162009-06-11  Jakub Jelinek  <jakub@redhat.com>
2217
2218	* interface.c (fold_unary): Rename to...
2219	(fold_unary_intrinsic): ... this.
2220	(gfc_extend_expr): Adjust caller.
2221	(gfc_match_generic_spec): Likewise.  Initialize *op to INTRINSIC_NONE
2222	to avoid warnings.
2223	* expr.c (gfc_simplify_expr): Initialize start and end before calling
2224	gfc_extract_int.
2225
22262009-06-10  Dave Korn  <dave.korn.cygwin@gmail.com>
2227
2228	* trans-decl.c (create_main_function):  Don't build main decl twice.
2229
22302009-06-09  Tobias Burnus  <burnus@net-b.de>
2231
2232	* trans-decl.c (gfc_generate_function_code): Use gfc_option.rtcheck
2233	instead of flag_bounds_check.
2234	* intrinsic.texi (ISO_FORTRAN_ENV): Document INT{8,16,32,64} and
2235	REAL{32,64,128}.
2236
22372009-06-08  Paul Thomas  <pault@gcc.gnu.org>
2238
2239	* trans-array.h : Replace prototypes for
2240	gfc_conv_descriptor_offset, gfc_conv_descriptor_stride,
2241	gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound with new
2242	prototypes of the same names with _get or _set appended.
2243	* trans-array.c : Make the originals of the above static and
2244	new functions for the _get and _set functions. Update all the
2245	references to these descriptor access functions.
2246	* trans-expr.c : Update references to the above descriptor
2247	access functions.
2248	* trans-intrinsic.c : The same.
2249	* trans-openmp.c : The same.
2250	* trans-stmt.c : The same.
2251
22522009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2253
2254	* options.c (gfc_post_options): Disable dump_parse_tree
2255	during -fcompare-debug-second.
2256
22572009-06-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2258
2259	PR fortran/40008
2260	* gfortran.h (gfc_open): Add newunit expression to structure.
2261	* io.c (io_tag): Add new unit tag and fix whitespace.
2262	(match_open_element): Add matching for newunit.
2263	(gfc_free_open): Free the newunit expression.
2264	(gfc_resolve_open): Add newunit to resolution and check constraints.
2265	(gfc_resolve_close): Add check for non-negative unit.
2266	(gfc_resolve_filepos): Likewise.
2267	(gfc_resolve_dt): Likewise.
2268	* trans-io.c (set_parameter_value): Build runtime checks for unit
2269	numbers within range of kind=4 integer. (gfc_trans_open) Set the
2270	newunit parameter.
2271	* ioparm.def (IOPARM): Define the newunit parameter as a pointer
2272	to GFC_INTEGER_4, pint4.
2273
22742009-06-07  Daniel Franke  <franke.daniel@gmail.com>
2275
2276	PR fortran/25104
2277	PR fortran/29962
2278	* array.c (gfc_append_constructor): Added NULL-check.
2279	* check.c (gfc_check_spread): Check DIM.
2280	(gfc_check_unpack): Check that the ARRAY arguments provides enough
2281	values for MASK.
2282	* intrinsic.h (gfc_simplify_spread): New prototype.
2283	(gfc_simplify_unpack): Likewise.
2284	* intrinsic.c (add_functions): Added new simplifier callbacks.
2285	* simplify.c (gfc_simplify_spread): New.
2286	(gfc_simplify_unpack): New.
2287	* expr.c (check_transformational): Allow additional transformational
2288	intrinsics in initialization expression.
2289
22902009-06-07  Daniel Franke  <franke.daniel@gmail.com>
2291
2292	PR fortran/25104
2293	PR fortran/29962
2294	* check.c (gfc_check_all_any): Check rank of DIM.
2295	(gfc_check_count): Likewise.
2296	* intrinsic.h (gfc_simplify_all): New prototype.
2297	(gfc_simplify_any): Likewise.
2298	(gfc_simplify_count): Likewise.
2299	(gfc_simplify_sum): Likewise.
2300	(gfc_simplify_product): Likewise.
2301	* intrinsic.c (add_functions): Added new simplifier callbacks.
2302	* simplify.c (transformational_result): New.
2303	(simplify_transformation_to_scalar): New.
2304	(simplify_transformation_to_array): New.
2305	(gfc_count): New.
2306	(gfc_simplify_all): New.
2307	(gfc_simplify_any): New.
2308	(gfc_simplify_count): New.
2309	(gfc_simplify_sum): New.
2310	(gfc_simplify_product): New.
2311	* expr.c (check_transformational): Allow additional transformational
2312	intrinsics in initialization expression.
2313
23142009-06-07  Daniel Franke  <franke.daniel@gmail.com>
2315
2316	* check.c (dim_rank_check): Return SUCCESS if DIM=NULL.
2317	(gfc_check_lbound): Removed (now) redundant check for DIM=NULL.
2318	(gfc_check_minloc_maxloc): Likewise.
2319	(check_reduction): Likewise.
2320	(gfc_check_size): Likewise.
2321	(gfc_check_ubound): Likewise.
2322	(gfc_check_cshift): Added missing shape-conformance checks.
2323	(gfc_check_eoshift): Likewise.
2324	* gfortran.h (gfc_check_conformance): Modified prototype to printf-style.
2325	* expr.c (gfc_check_conformance): Accept error-message chunks in
2326	printf-style. Changed all callers.
2327
2328
23292009-06-07  Daniel Franke  <franke.daniel@gmail.com>
2330
2331	PR fortran/25104
2332	PR fortran/29962
2333	* intrinsic.h (gfc_simplify_dot_product): New prototype.
2334	(gfc_simplify_matmul): Likewise.
2335	(gfc_simplify_transpose): Likewise.
2336	* intrinsic.c (add_functions): Added new simplifier callbacks.
2337	* simplify.c (init_result_expr): New.
2338	(compute_dot_product): New.
2339	(gfc_simplify_dot_product): New.
2340	(gfc_simplify_matmul): New.
2341	(gfc_simplify_transpose): New.
2342	* expr.c (check_transformational): Allow transformational intrinsics
2343	with simplifier in initialization expression.
2344
23452009-06-06  Daniel Franke  <franke.daniel@gmail.com>
2346
2347	PR fortran/37203
2348	* simplify.c (gfc_simplify_reshape): Fixed reshaping of empty arrays
2349	without padding.
2350
23512009-06-06  Daniel Franke  <franke.daniel@gmail.com>
2352
2353	PR fortran/32890
2354	* intrinsic.h (gfc_simplify_pack): New prototype.
2355	* intrinsic.c (add_functions): Added
2356	simplifier-callback to PACK.
2357	* simplify.c (is_constant_array_expr): Moved
2358	to beginning of file.
2359	(gfc_simplify_pack): New.
2360	* check.c (gfc_check_pack): Check that VECTOR has enough elements.
2361	Added safeguards for empty arrays.
2362
23632009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2364
2365	* simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref
2366	instead of MPC_RE/MPC_IM.
2367
23682009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2369
2370	* trans-decl.c (gfc_build_qualified_array): Don't skip generation
2371	of range types.
2372	* trans.h (struct lang_type): Add base_decls.
2373	(GFC_TYPE_ARRAY_BASE_DECL): New.
2374	* trans-types.c (gfc_get_array_type_bounds): Initialize base decls
2375	proactively and excessively.
2376	(gfc_get_array_descr_info): Use existing base decls if available.
2377
23782009-06-04  Daniel Franke  <franke.daniel@gmail.com>
2379
2380	PR fortran/37203
2381	* check.c (gfc_check_reshape): Additional checks for the
2382	SHAPE and ORDER arguments.
2383	* simplify.c (gfc_simplify_reshape): Converted argument checks
2384	to asserts.
2385
23862009-06-03  Tobias Burnus  <burnus@net-b.de>
2387
2388	* gfortran.texi: Add mixed-language programming, mention
2389	varying string lengths, some clean up of introduction parts.
2390	* intrinsic.texi (instrinsic modules): Create @menu for subsections.
2391	(ISO_C_BINDING): Support ISOCBINDING_INT_FAST128_T.
2392	* libgfortran.h: Comment to rember to keep gfortran.texi in sync.
2393	* iso-c-binding.def: Support ISOCBINDING_INT_FAST128_T.
2394
23952009-06-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2396	    Tobias Burnus  <burnus@net-b.de>
2397
2398	* iso-c-binding.def: Use INTMAX_TYPE instead of intmax_type_node.
2399	* trans-types.c (init_c_interop_kinds): Remove intmax_type_node.
2400
24012009-06-03  Alexandre Oliva  <aoliva@redhat.com>
2402
2403	* module.c (mio_f2k_derived): Initialize cur.
2404
24052009-06-01  Tobias Burnus  <burnus@net-b.de>
2406
2407	PR fortran/40309
2408	* trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main".
2409	(create_main_function): Set main_identifier_node.
2410
24112009-05-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2412
2413	PR fortran/40019
2414	* trans-types.c (gfc_build_uint_type): Make nonstatic.
2415	* trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New prototypes.
2416	* trans-types.h (gfc_build_uint_type): Add prototype.
2417	* trans-decl.c (gfc_build_intrinsic_function_decls): Build
2418	gfor_fndecl_clz128 and gfor_fndecl_ctz128.
2419	* trans-intrinsic.c (gfc_conv_intrinsic_leadz,
2420	gfc_conv_intrinsic_trailz): Call the right builtins or library
2421	functions, and cast arguments to unsigned types first.
2422	* simplify.c (gfc_simplify_leadz): Deal with negative arguments.
2423
24242009-05-27  Ian Lance Taylor  <iant@google.com>
2425
2426	* Make-lang.in (gfortran$(exeext)): Change $(COMPILER) to
2427	$(LINKER).
2428	(f951$(exeext)): Likewise.
2429
24302009-05-27  Tobias Burnus  <burnus@net-b.de>
2431
2432	PR fortran/40270
2433	* trans-decl.c (create_main_function): Mark MAIN__ and
2434	argc/argv as TREE_USED and push/pop function_decl context
2435	if needed.
2436
24372009-05-26  Tobias Burnus  <burnus@net-b.de>
2438
2439	PR fortran/39178
2440	* gfortranspec.c (lang_specific_driver): Stop linking
2441	libgfortranbegin.
2442	* trans-decl.c (gfc_build_builtin_function_decls): Stop
2443	making MAIN__ publicly visible.
2444	(gfc_build_builtin_function_decls): Add
2445	gfor_fndecl_set_args.
2446	(create_main_function) New function.
2447	(gfc_generate_function_code): Use it.
2448
24492009-05-26  Tobias Burnus  <burnus@net-b.de>
2450
2451	PR fortran/40246
2452	* match.c (gfc_match_nullify): NULLify freed pointer.
2453
24542009-05-26  Ian Lance Taylor  <iant@google.com>
2455
2456	* Make-lang.in (gfortranspec.o): Use $(COMPILER).
2457	(gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise.
2458
24592009-05-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2460
2461	* gfortran.h (GFC_MPC_RND_MODE): New.
2462	* simplify.c (call_mpc_func): New helper function.
2463	(gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log,
2464	gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support.
2465
24662009-05-25  Janus Weil  <janus@gcc.gnu.org>
2467
2468	PR fortran/40176
2469	* primary.c (gfc_match_varspec): Handle procedure pointer components
2470	with array return value.
2471	* resolve.c (resolve_expr_ppc): Ditto.
2472	(resolve_symbol): Make sure the interface of a procedure pointer has
2473	been resolved.
2474	* trans-array.c (gfc_walk_function_expr): Handle procedure pointer
2475	components with array return value.
2476	* trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call,
2477	gfc_trans_arrayfunc_assign): Ditto.
2478	(gfc_trans_pointer_assignment): Handle procedure pointer assignments,
2479	where the rhs is a dummy argument.
2480	* trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle
2481	procedure pointer components with array return value.
2482
24832009-05-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2484	    Dominique Dhumieres
2485
2486	PR fortran/35732
2487	PR fortran/39872
2488	* trans-array.c (gfc_conv_ss_startstride): Add one to index.
2489
24902009-05-22  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2491
2492	PR fortran/40195
2493	* module.c (read_md5_from_module_file): Close file before returning.
2494
24952009-05-18  Janus Weil  <janus@gcc.gnu.org>
2496
2497	PR fortran/40164
2498	* primary.c (gfc_match_rvalue): Handle procedure pointer components in
2499	arrays.
2500	* resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and
2501	array references.
2502	(resolve_fl_derived): Procedure pointer components are not required to
2503	have constant array bounds in their return value.
2504
25052009-05-18  Janus Weil  <janus@gcc.gnu.org>
2506
2507	* intrinsic.c (add_sym): Fix my last commit (r147655),
2508	which broke bootstrap.
2509
25102009-05-18  Richard Guenther  <rguenther@suse.de>
2511
2512	PR fortran/40168
2513	* trans-expr.c (gfc_trans_zero_assign): For local array
2514	destinations use an assignment from an empty constructor.
2515
25162009-05-18  Janus Weil  <janus@gcc.gnu.org>
2517
2518	PR fortran/36947
2519	PR fortran/40039
2520	* expr.c (gfc_check_pointer_assign): Check intents when comparing
2521	interfaces.
2522	* gfortran.h (typedef struct gfc_intrinsic_arg): Add 'intent' member.
2523	(gfc_compare_interfaces): Additional argument.
2524	* interface.c (operator_correspondence): Add check for equality of
2525	intents, and new argument 'intent_check'.
2526	(gfc_compare_interfaces): New argument 'intent_check', which is passed
2527	on to operator_correspondence.
2528	(check_interface1): Don't check intents when comparing interfaces.
2529	(compare_parameter): Do check intents when comparing interfaces.
2530	* intrinsic.c (add_sym): Add intents for arguments of intrinsic
2531	procedures.
2532	(add_sym_1,add_sym_1s,add_sym_1m,add_sym_2,add_sym_2s,add_sym_3,
2533	add_sym_3ml,add_sym_3red,add_sym_3s,add_sym_4): Use INTENT_IN by
2534	default.
2535	(add_sym_1_intent,add_sym_1s_intent,add_sym_2s_intent,add_sym_3s_intent)
2536	: New functions to add intrinsic symbols, specifying custom intents.
2537	(add_sym_4s,add_sym_5s): Add new arguments to specify intents.
2538	(add_functions,add_subroutines): Add intents for various intrinsics.
2539	* resolve.c (check_generic_tbp_ambiguity): Don't check intents when
2540	comparing interfaces.
2541	* symbol.c (gfc_copy_formal_args_intr): Copy intent.
2542
25432009-05-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2544
2545	* iso-fortran-env.def: Define INT8, INT16, INT32, INT64, REAL32,
2546	REAL64 and REAL128.
2547	* gfortran.h (gfc_get_int_kind_from_width_isofortranenv,
2548	gfc_get_real_kind_from_width_isofortranenv): New prototypes.
2549	* iso-c-binding.def: Update definitions for the INT*_T,
2550	INT_LEAST*_T and INT_FAST*_T named parameters.
2551	* trans-types.c (get_typenode_from_name, get_int_kind_from_name,
2552	gfc_get_real_kind_from_width_isofortranenv): New functions.
2553
25542009-05-17  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2555
2556	PR fortran/36260
2557	* intrinsic.c (add_functions, add_subroutines): Fix argument
2558	names and wrap long lines.
2559	* intrinsic.texi: Fix documentation and argument names of
2560	LOG_GAMMA, DATAN2, DBESJN, DTIME, ETIME, FSTAT, STAT, LSTAT,
2561	GET_COMMAND, IDATE, LTIME, MOVE_ALLOC, NINT, OR, PRODUCT,
2562	SUM, RAND, RANDOM_SEED, REAL, SELECTED_INT_KIND,
2563	SELECTED_REAL_KIND and XOR.
2564
25652009-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2566
2567	PR fortran/33197
2568	* intrinsic.c (add_functions): Use ERFC_SCALED simplification.
2569	* intrinsic.h (gfc_simplify_erfc_scaled): New prototype.
2570	* simplify.c (fullprec_erfc_scaled, asympt_erfc_scaled,
2571	gfc_simplify_erfc_scaled): New functions.
2572
25732009-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2574
2575	PR fortran/31243
2576	* resolve.c (resolve_substring): Don't allow too large substring
2577	indexes.
2578	(gfc_resolve_substring_charlen): Fix typo.
2579	(gfc_resolve_character_operator): Fix typo.
2580	(resolve_charlen): Catch unreasonably large string lengths.
2581	* simplify.c (gfc_simplify_len): Don't error out on LEN
2582	range checks.
2583
25842009-05-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2585
2586	PR fortran/36031
2587	* decl.c (set_enum_kind): Use global short-enums flag.
2588	* gfortran.h (gfc_option_t): Remove short_enums flag.
2589	* lang.opt (-fshort-enums): Refer to C documentation.
2590	* options.c (gfc_init_options, gfc_handle_option): Use global
2591	short-enums flag.
2592
25932009-05-15  Tobias Burnus  <burnus@net-b.de>
2594
2595	PR fortran/39352
2596	* f95-lang.c: Add gfc_maybe_initialize_eh.
2597	* gfortran.h: Add gfc_maybe_initialize_eh prototype.
2598	* Make-lang.in: Add new .h dendencies for f95-lang.c
2599	* openmp.c (resolve_omp_do): Call gfc_maybe_initialize_eh.
2600	* misc.c (gfc_free): Avoid #define trickery for free.
2601
26022009-05-14  Steven G. Kargl  <kargl@gcc.gnu.org>
2603
2604	* dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping
2605	of allocate and deallocate statements.
2606
26072009-05-14  Ian Lance Taylor  <iant@google.com>
2608
2609	* decl.c (match_attr_spec): Change d to unsigned int.
2610	* dump-parse-tree.c (show_namespace): Change op to int.  Add cast.
2611	* interface.c (gfc_check_interfaces): Change i to int.  Add casts.
2612	* module.c (read_module): Change i to int.  Add cast.
2613	(write_module): Change i to int.
2614	* symbol.c (gfc_get_namespace): Change in to int.
2615	(gfc_free_namespace): Change i to int.
2616	* trans-io.c (gfc_build_io_library_fndecls): Change ptype to
2617	unsigned int.  Add cast.
2618	* trans-types.c (gfc_init_kinds): Change mode to unsigned int.
2619	Add casts.
2620
26212009-05-14  Daniel Kraft  <d@domob.eu>
2622
2623	PR fortran/40045
2624	* dump-parse-tree.c (show_typebound): Fix missing adaption to new
2625	type-bound procedure storage structure.
2626
26272009-05-14  Janus Weil  <janus@gcc.gnu.org>
2628
2629	PR fortran/39996
2630	* decl.c (gfc_match_function_decl): Use gfc_add_type.
2631	* symbol.c (gfc_add_type): Better checking for duplicate types in
2632	function declarations. And: Always give an error for duplicte types,
2633	not just a warning with -std=gnu.
2634
26352009-05-14  Jakub Jelinek  <jakub@redhat.com>
2636
2637	PR fortran/39865
2638	* io.c (resolve_tag_format): CHARACTER array in FMT= argument
2639	isn't an extension.  Reject non-CHARACTER array element of
2640	assumed shape or pointer or assumed size array.
2641	* trans-array.c (array_parameter_size): New function.
2642	(gfc_conv_array_parameter): Add size argument.  Call
2643	array_parameter_size if it is non-NULL.
2644	* trans-array.h (gfc_conv_array_parameter): Adjust prototype.
2645	* trans-expr.c (gfc_conv_function_call, gfc_trans_arrayfunc_assign):
2646	Adjust callers.
2647	* trans-intrinsic.c (gfc_conv_intrinsic_loc): Likewise.
2648	* trans-io.c (gfc_convert_array_to_string): Rewritten.
2649
26502009-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
2651
2652	* gfortran.h (gfc_code): Rename struct member expr to expr1.
2653	* openmp.c (resolve_omp_atomic): Update expr to expr1.
2654	* interface.c (gfc_extend_assign): Ditto.
2655	* trans-expr.c (gfc_conv_expr_reference, gfc_trans_assignment,
2656	gfc_trans_init_assign): Ditto.
2657	* dump-parse-tree.c (show_code_node): Ditto.
2658	* trans-openmp.c (gfc_trans_omp_atomic): Ditto.
2659	* trans-stmt.c ( gfc_trans_label_assign, gfc_trans_goto, gfc_trans_call,
2660	gfc_trans_return, gfc_trans_pause, gfc_trans_stop, gfc_trans_if_1,
2661	gfc_trans_arithmetic_if, gfc_trans_do_while, gfc_trans_integer_select,
2662	gfc_trans_logical_select, gfc_trans_character_select
2663	forall_make_variable_temp, check_forall_dependencies
2664	gfc_trans_forall_1, gfc_trans_where_2, gfc_trans_where_3
2665	gfc_trans_where, gfc_trans_allocate, gfc_trans_deallocate): Ditto.
2666	* io.c (match_io_element, gfc_match_inquire): Ditto.
2667	* resolve.c (resolve_typebound_call, resolve_ppc_call,
2668	resolve_allocate_expr, resolve_allocate_deallocate, resolve_select,
2669	resolve_transfer, resolve_where, gfc_resolve_assign_in_forall,
2670	gfc_resolve_blocks, resolve_code, build_init_assign): Ditto.
2671	* st.c (gfc_free_statement): Ditto.
2672	* match.c (gfc_match_assignment, gfc_match_pointer_assignment,
2673	match_arithmetic_if, gfc_match_if, gfc_match_elseif
2674	gfc_match_stopcode, gfc_match_assign, gfc_match_goto,
2675	gfc_match_nullify, match_typebound_call, gfc_match_call
2676	gfc_match_select, match_simple_where, gfc_match_where
2677	gfc_match_elsewhere, match_simple_forall, gfc_match_forall): Ditto.
2678	* trans-io.c (gfc_trans_transfer): Ditto.
2679	* parse.c (parse_where_block, parse_if_block): Ditto.
2680
26812009-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>
2682
2683	* gfortran.h (gfc_code): Rename struct member label to label1.
2684	* dump-parse-tree.c (show_code_node): Update symbol.
2685	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
2686	gfc_trans_arithmetic_if): Ditto.
2687	* resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
2688	* match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
2689	gfc_match_assign, gfc_match_goto): Ditto.
2690	* parse.c (parse_do_block): Ditto.
2691
26922009-05-13  Tobias Burnus  <burnus@net-b.de>
2693
2694	PR fortran/34153
2695	* gfortran.h (gfc_exec_op): Add EXEC_END_PROCEDURE.
2696	* dump-parse-tree.c (show_code_node): Use EXEC_END_PROCEDURE.
2697	* trans.c (gfc_trans_code): Ditto.
2698	* resolve.c (resolve_code): Ditto.
2699	* st.c (gfc_free_statement): Ditto.
2700	* parse.c (accept_statement): Ditto.
2701
27022009-05-12  Tobias Burnus  <burnus@net-b.de>
2703
2704	PR fortran/40110
2705	* decl.c (gfc_match_kind_spec): Turn C kind error into a warning.
2706
27072009-05-11  Steve Ellcey  <sje@cup.hp.com>
2708
2709	* resolve.c (check_host_association): Initialize tail.
2710
27112009-05-11  Janus Weil  <janus@gcc.gnu.org>
2712
2713	PR fortran/40089
2714	* resolve.c (resolve_fl_derived): Only return FAILURE if
2715	gfc_notify_std fails.
2716
27172009-05-10  Ian Lance Taylor  <iant@google.com>
2718
2719	* gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of
2720	gfc_omp_clauses.
2721	(enum gfc_omp_default_sharing): Likewise.
2722	* module.c (enum gfc_rsym_state): New enum, broken out of
2723	pointer_info.
2724	(enum gfc_wsym_state): Likewise.
2725	* parse.c (enum state_order): New enum, broken out of st_state.
2726
27272009-05-10  Paul Thomas  <pault@gcc.gnu.org>
2728
2729	PR fortran/40018
2730	* trans-array.c (gfc_trans_array_constructor_value): Fold
2731	convert numeric constants.
2732	(gfc_build_constant_array_constructor): The same.
2733
27342009-05-10  Paul Thomas  <pault@gcc.gnu.org>
2735
2736	PR fortran/38863
2737	* trans-expr.c (gfc_conv_operator_assign): Remove function.
2738	* trans.h : Remove prototype for gfc_conv_operator_assign.
2739	* trans-stmt.c (gfc_conv_elemental_dependencies): Initialize
2740	derivde types with intent(out).
2741	(gfc_trans_call): Add mask, count1 and invert arguments. Add
2742	code to use mask for WHERE assignments.
2743	(gfc_trans_forall_1): Use new arguments for gfc_trans_call.
2744	(gfc_trans_where_assign): The gfc_symbol argument is replaced
2745	by the corresponding code. If this has a resolved_sym, then
2746	gfc_trans_call is called. The call to gfc_conv_operator_assign
2747	is removed.
2748	(gfc_trans_where_2): Change the last argument in the call to
2749	gfc_trans_where_assign.
2750	* trans-stmt.h : Modify prototype for gfc_trans_call.
2751	* trans.c (gfc_trans_code): Use new args for gfc_trans_call.
2752
27532009-05-08  Janus Weil  <janus@gcc.gnu.org>
2754
2755	PR fortran/39876
2756	* intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if
2757	the symbol is a module procedure.
2758
27592009-05-08  Tobias Burnus  <burnus@net-b.de>
2760
2761	* invoke.texi: Add do/recursion to the -fcheck= summary.
2762
27632009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2764
2765	PR fortran/38830
2766	* gfortran.texi: Document that we don't support variable FORMAT
2767	expressions.
2768
27692009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2770
2771	PR fortran/39576
2772	* error.c (error_print): Add missing break statement.
2773
27742009-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2775
2776	PR fortran/36382
2777	* invoke.texi: Document that -fdollar-ok does not allow $ to be
2778	used in IMPLICIT statement.
2779
27802009-05-06  Janus Weil  <janus@gcc.gnu.org>
2781	    Paul Thomas  <pault@gcc.gnu.org>
2782
2783	PR fortran/39630
2784	* decl.c (match_procedure_interface): New function to match the
2785	interface for a PROCEDURE statement.
2786	(match_procedure_decl): Call match_procedure_interface.
2787	(match_ppc_decl): New function to match the declaration of a
2788	procedure pointer component.
2789	(gfc_match_procedure):  Call match_ppc_decl.
2790	(match_binding_attributes): Add new argument 'ppc' and handle the
2791	POINTER attribute for procedure pointer components.
2792	(match_procedure_in_type,gfc_match_generic): Added new argument to
2793	match_binding_attributes.
2794	* dump-parse-tree.c (show_expr,show_components,show_code_node): Handle
2795	procedure pointer components.
2796	* expr.c (free_expr0,gfc_copy_expr,gfc_simplify_expr): Handle EXPR_PPC.
2797	(gfc_check_pointer_assign): Handle procedure pointer components, but no
2798	full checking yet.
2799	(is_proc_ptr_comp): New function to determine if an expression is a
2800	procedure pointer component.
2801	* gfortran.h (expr_t): Add EXPR_PPC.
2802	(symbol_attribute): Add new member 'proc_pointer_comp'.
2803	(gfc_component): Add new member 'formal'.
2804	(gfc_exec_op): Add EXEC_CALL_PPC.
2805	(gfc_get_default_type): Changed first argument.
2806	(is_proc_ptr_comp): Add prototype.
2807	(gfc_match_varspec): Add new argument.
2808	* interface.c (compare_actual_formal): Handle procedure pointer
2809	components.
2810	* match.c (gfc_match_pointer_assignment,match_typebound_call): Handle
2811	procedure pointer components.
2812	* module.c (mio_expr): Handle EXPR_PPC.
2813	* parse.c (parse_derived): Handle procedure pointer components.
2814	* primary.c (gfc_match_varspec): Add new argument 'ppc_arg' and handle
2815	procedure pointer components.
2816	(gfc_variable_attr): Handle procedure pointer components.
2817	(gfc_match_rvalue): Added new argument to gfc_match_varspec and changed
2818	first argument of gfc_get_default_type.
2819	(match_variable): Added new argument to gfc_match_varspec.
2820	* resolve.c (resolve_entries,set_type,resolve_fl_parameter): Changed
2821	first argument of gfc_get_default_type.
2822	(resolve_structure_cons,resolve_actual_arglist): Handle procedure
2823	pointer components.
2824	(resolve_ppc_call): New function to resolve a call to a procedure
2825	pointer component (subroutine).
2826	(resolve_expr_ppc): New function to resolve a call to a procedure
2827	pointer component (function).
2828	(gfc_resolve_expr): Handle EXPR_PPC.
2829	(resolve_code): Handle EXEC_CALL_PPC.
2830	(resolve_fl_derived): Copy the interface for a procedure pointer
2831	component.
2832	(resolve_symbol): Fix overlong line.
2833	* st.c (gfc_free_statement): Handle EXEC_CALL_PPC.
2834	* symbol.c (gfc_get_default_type): Changed first argument.
2835	(gfc_set_default_type): Changed first argument of gfc_get_default_type.
2836	(gfc_add_component): Initialize ts.type to BT_UNKNOWN.
2837	* trans.h (gfc_conv_function_call): Renamed.
2838	* trans.c (gfc_trans_code): Handle EXEC_CALL_PPC.
2839	* trans-expr.c (gfc_conv_component_ref): Ditto.
2840	(gfc_conv_function_val): Rename to 'conv_function_val', add new
2841	argument 'expr' and handle procedure pointer components.
2842	(gfc_conv_operator_assign): Renamed gfc_conv_function_val.
2843	(gfc_apply_interface_mapping_to_expr): Handle EXPR_PPC.
2844	(gfc_conv_function_call): Rename to 'gfc_conv_procedure_call', add new
2845	argument 'expr' and handle procedure pointer components.
2846	(gfc_get_proc_ptr_comp): New function to get the backend decl for a
2847	procedure pointer component.
2848	(gfc_conv_function_expr): Renamed gfc_conv_function_call.
2849	(gfc_conv_structure): Handle procedure pointer components.
2850	* trans-intrinsic.c (gfc_conv_intrinsic_funcall,
2851	conv_generic_with_optional_char_arg): Renamed gfc_conv_function_call.
2852	* trans-stmt.h (gfc_get_proc_ptr_comp): Add prototype.
2853	* trans-stmt.c (gfc_trans_call): Renamed gfc_conv_function_call.
2854	* trans-types.h (gfc_get_ppc_type): Add prototype.
2855	* trans-types.c (gfc_get_ppc_type): New function to build a tree node
2856	for a procedure pointer component.
2857	(gfc_get_derived_type): Handle procedure pointer components.
2858
28592009-05-06  Tobias Burnus  <burnus@net-b.de>
2860
2861	PR fortran/40041
2862	* resolve.c (resolve_symbol): Print no warning for implicitly
2863	typed intrinsic functions.
2864
28652009-05-05  Janus Weil  <janus@gcc.gnu.org>
2866
2867	PR fortran/39998
2868	* expr.c (gfc_check_pointer_assign): Check for statement functions and
2869	internal procedures in procedure pointer assignments.
2870
28712009-04-28  Janus Weil  <janus@gcc.gnu.org>
2872
2873	PR fortran/39946
2874	* resolve.c (resolve_symbol): Correctly copy the interface of a
2875	PROCEDURE statement if the interface involves a RESULT variable.
2876
28772009-04-28  Janus Weil  <janus@gcc.gnu.org>
2878
2879	PR fortran/39930
2880	PR fortran/39931
2881	* expr.c (gfc_check_pointer_assign): Correctly detect if the left hand
2882	side is a pointer.
2883	* parse.c (gfc_fixup_sibling_symbols): Don't check for ambiguity.
2884
28852009-04-28  Paul Thomas  <pault@gcc.gnu.org>
2886
2887	PR fortran/39879
2888	* trans_expr.c (gfc_conv_procedure_call): Deep copy a derived
2889	type parentheses argument if it is a variable with allocatable
2890	components.
2891
28922009-04-27  Ian Lance Taylor  <iant@google.com>
2893
2894	* trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum
2895	type.
2896	* trans-io.c (st_parameter_field): Add casts to enum type.
2897
28982009-04-26  Steven G. Kargl  <kargl@gcc.gnu.org>
2899
2900	PR fortran/39893
2901	fortran/data.c (gfc_assign_data_value): If the lvalue is an
2902	assumed character length entity in a data statement, then
2903	return FAILURE to prevent segmentation fault.
2904
29052009-04-26  Jakub Jelinek  <jakub@redhat.com>
2906
2907	* trans-decl.c: Include pointer-set.h.
2908	(nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
2909	(gfc_nonlocal_dummy_array_decl): New function.
2910	(gfc_get_symbol_decl): Call it for non-local dummy args with saved
2911	descriptor.
2912	(gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
2913	(gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
2914	chain it to outermost block's vars, destroy it afterwards.
2915	* Make-lang.in (trans-decl.o): Depend on pointer-set.h.
2916
29172009-04-25  Janus Weil  <janus@gcc.gnu.org>
2918
2919	PR fortran/39688
2920	* decl.c (gfc_match_import): Use 'sym->name' instead of 'name'.
2921	They differ if the symbol has been use-renamed.
2922
29232009-04-24  Ian Lance Taylor  <iant@google.com>
2924
2925	* gfortran.h (enum gfc_symbol_type): New named enum type, broken
2926	out of struct gfc_symbol.
2927	(struct gfc_symbol): Use enum gfc_symbol_type.
2928	(enum gfc_array_ref_dimen_type): New named enum type, broken out
2929	of struct gfc_array_ref).
2930	(struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
2931	(mod_pointee_as): Update declaration.
2932	* decl.c (add_global_entry): Change type to enum gfc_symbol_type.
2933	(gfc_mod_pointee_as): Change return type to "match".
2934	* module.c (mio_array_ref): Add cast to enum type.
2935	(mio_symbol): Likewise.
2936	* resolve.c (resolve_global_procedure): Change type to enum
2937	gfc_symbol_type.
2938	* trans-io.c (gfc_build_st_parameter): Change type to unsigned
2939	int.
2940
29412009-04-24  Daniel Kraft  <d@domob.eu>
2942
2943	* gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
2944	(struct gfc_symtree): Moved "typebound" member inside union.
2945	(struct gfc_namespace): Add "tb_sym_root" as new symtree to sort out
2946	type-bound procedures there.
2947	(gfc_get_tbp_symtree): New procedure.
2948	* symbol.c (tentative_tbp_list): New global.
2949	(gfc_get_namespace): NULL new "tb_sym_root" member.
2950	(gfc_new_symtree): Removed initialization of "typebound" member.
2951	(gfc_undo_symbols): Process list of tentative tbp's.
2952	(gfc_commit_symbols): Ditto.
2953	(free_tb_tree): New method.
2954	(gfc_free_namespace): Call it.
2955	(gfc_get_typebound_proc): New method.
2956	(gfc_get_tbp_symtree): New method.
2957	(gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree
2958	and gfc_namespace with regards to tbp's.
2959	* dump-parse-tree.c (show_typebound): Ditto.
2960	* primary.c (gfc_match_varspec): Ditto.  Don't reference tbp-symbol
2961	as it isn't a symbol any longer.
2962	* module.c (mio_typebound_symtree): Adapt to changes.
2963	(mio_typebound_proc): Ditto, create symtrees using "gfc_get_tbp_symtree"
2964	rather than "gfc_get_sym_tree".
2965	(mio_f2k_derived): Ditto.
2966	* decl.c (match_procedure_in_type): Ditto.
2967	(gfc_match_generic): Ditto.  Don't reference tbp-symbol.
2968	* resolve.c (check_typebound_override): Adapt to changes.
2969	(resolve_typebound_generic): Ditto.
2970	(resolve_typebound_procedures): Ditto.
2971	(ensure_not_abstract_walker): Ditto.
2972	(ensure_not_abstract): Ditto.
2973	(resolve_typebound_procedure): Ditto, ignore erraneous symbols (for
2974	instance, through removed tentative ones).
2975	* gfc-internals.texi (Type-bound procedures): Document changes.
2976
29772009-04-24  Janus Weil  <janus@gcc.gnu.org>
2978
2979	PR fortran/39861
2980	PR fortran/39864
2981	* symbol.c (gfc_copy_formal_args_intr): Set attr.flavor and attr.dummy
2982	for the formal arguments.
2983
29842009-04-21  Taras Glek <tglek@mozilla.com>
2985
2986	* f95-lang.c: Update GTY annotations to new syntax.
2987	* trans-intrinsic.c: Likewise.
2988	* trans-io.c: Likewise.
2989	* trans.h: Likewise.
2990
29912009-04-22  Janus Weil  <janus@gcc.gnu.org>
2992
2993	PR fortran/39735
2994	* decl.c (add_hidden_procptr_result): Bugfix for procptr results.
2995	(match_procedure_decl): Set if_source.
2996	* expr.c (gfc_check_pointer_assign): Bugfix: Return after error.
2997	And: Check interface also for IFSRC_UNKNOWN (return type may be known).
2998	* gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE,
2999	add documentation. Rename copy_formal_args and copy_formal_args_intr.
3000	* interface.c (gfc_compare_interfaces): Check for return types,
3001	handle IFSRC_UNKNOWN.
3002	(compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed.
3003	(gfc_procedure_use): Modified handling of intrinsics.
3004	* intrinsic.c (add_functions): Bugfix for "dim".
3005	* resolve.c (resolve_intrinsic): New function to resolve intrinsics,
3006	which copies the interface from isym to sym.
3007	(resolve_procedure_expression,resolve_function): Use new function
3008	'resolve_intrinsic'.
3009	(resolve_symbol): Add function attribute for externals with return type
3010	and use new function 'resolve_intrinsic'.
3011	* symbol.c (ifsrc_types): Remove string for IFSRC_USAGE.
3012	(copy_formal_args): Renamed to gfc_copy_formal_args.
3013	(copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr.
3014	* trans-const.c (gfc_conv_const_charlen): Handle cl==NULL.
3015
30162009-04-21  Joseph Myers  <joseph@codesourcery.com>
3017
3018	* ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
3019	ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
3020	ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
3021	copyright and license notices.
3022	* ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
3023	ChangeLog-2008: Correct dates.
3024
30252009-04-20  Tobias Burnus  <burnus@net-b.de>
3026
3027	PR fortran/39811
3028	* scanner.c (load_line): Fix bogus "&" compile-time diagnostic.
3029
30302009-04-20  Paul Thomas  <pault@gcc.gnu.org>
3031
3032	PR fortran/39800
3033	* resolve.c (is_sym_host_assoc): New function.
3034	(resolve_fl_derived): Call it when checking PRIVATE components
3035	of PUBLIC derived types.  Change gfc_error to a gfc_notify_std
3036	with std=f2003.
3037	(resolve_fl_namelist): Call it twice to check for host
3038	association.
3039
30402009-04-20  Ian Lance Taylor  <iant@google.com>
3041
3042	* module.c (import_iso_c_binding_module): Add casts to enum type.
3043	* trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
3044	tree_code.
3045	(gfc_conv_intrinsic_anyall): Likewise.
3046	(gfc_conv_intrinsic_arith): Likewise.
3047	(gfc_conv_intrinsic_minmaxloc): Likewise.
3048	(gfc_conv_intrinsic_minmaxval): Likewise.
3049	(gfc_conv_intrinsic_bitop): Likewise.
3050	(gfc_conv_intrinsic_singlebitop): Likewise.
3051	(gfc_conv_intrinsic_strcmp): Likewise.
3052
30532009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
3054	    Jakub Jelinek  <jakub@redhat.com>
3055
3056	PR fortran/35423
3057	* trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
3058	OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
3059	(ompws_flags): New extern decl.
3060	* trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
3061	for the outer dimension if ompws_flags allow it.
3062	* trans.c (gfc_generate_code): Clear ompws_flags.
3063	* trans-expr.c (gfc_trans_assignment_1): Allow worksharing
3064	array assignments inside of !$omp workshare.
3065	* trans-stmt.c (gfc_trans_where_3): Similarly for where statements
3066	and constructs.
3067	* trans-openmp.c (ompws_flags): New variable.
3068	(gfc_trans_omp_workshare): Rewritten.
3069
30702009-04-11  Daniel Kraft  <d@domob.eu>
3071
3072	PR fortran/37746
3073	* gfortran.h (struct gfc_charlen): New field "passed_length" to store
3074	the actual passed string length for dummy arguments.
3075	* trans-decl.c (gfc_create_string_length): Formatting fixes and added
3076	assertion, moved a local variable into the innermost block it is needed.
3077	(create_function_arglist): Removed TODO about the check being
3078	implemented and initialize cl->passed_length here.
3079	(add_argument_checking): New method.
3080	(gfc_generate_function_code): Call the argument checking method.
3081
30822009-04-11  Janus Weil  <janus@gcc.gnu.org>
3083
3084	PR fortran/39692
3085	* symbol.c (check_conflict): Reject procedure pointers for -std=f95.
3086
30872009-04-11  Daniel Franke  <franke.daniel@gmail.com>
3088
3089	* resolve.c (resolve_global_procedure): Enable whole-file checking for
3090	procedures that are declared later in the file.
3091
30922009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3093
3094	PR middle-end/39701
3095	* trans.c (gfc_allocate_with_status): Fix type mismatches
3096	on "pstat == 0".
3097
30982009-04-10  Daniel Franke  <franke.daniel@gmail.com>
3099
3100	PR fortran/38709
3101	* expr.c (find_array_section): Leave early on zero-sized arrays.
3102
31032009-04-09  Janus Weil  <janus@gcc.gnu.org>
3104
3105	PR fortran/36704
3106	* decl.c (add_hidden_procptr_result): New function for handling
3107	procedure pointer return values by adding a hidden result variable.
3108	(variable_decl,match_procedure_decl,gfc_match_function_decl,
3109	gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
3110	return values.
3111	* parse.c (parse_interface): Add EXTERNAL attribute only after
3112	FUNCTION/SUBROUTINE declaration is complete.
3113	* primary.c (replace_hidden_procptr_result): New function for replacing
3114	function symbol by hidden result variable.
3115	(gfc_match_rvalue,match_variable): Replace symbol by hidden result
3116	variable.
3117	* resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
3118	resolve_symbol): Allow for procedure pointer function results.
3119	(resolve_fl_procedure): Conflict detection moved here from
3120	'check_conflict'.
3121	* symbol.c (gfc_check_function_type): Allow for procedure pointer
3122	function results.
3123	(check_conflict): Move some conflict detection to resolution stage.
3124	* trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
3125	result variables.
3126
31272009-04-08  Jakub Jelinek  <jakub@redhat.com>
3128
3129	* trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
3130	contain TYPE_STRING_FLAG types.
3131
31322009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
3133
3134	PR fortran/39670
3135	* invoke.texi (fdollar-ok): Fix typo.
3136
31372009-04-08  Daniel Franke  <franke.daniel@gmail.com>
3138
3139	PR fortran/39670
3140	* invoke.texi (fdollar-ok): Clarify limitations.
3141
31422009-04-08  Paul Thomas  <pault@gcc.gnu.org>
3143
3144	PR fortran/38863
3145	* trans-array.c (gfc_trans_deferred_array): Return if this
3146	is a result variable.
3147
31482009-04-07  Janus Weil  <janus@gcc.gnu.org>
3149
3150	PR fortran/38152
3151	* trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
3152	procedure pointer decls.
3153
31542009-04-07  Janus Weil  <janus@gcc.gnu.org>
3155
3156	PR fortran/38290
3157	* expr.c (gfc_check_pointer_assign): Enable interface check for
3158	procedure pointers.
3159	* gfortran.h: Add copy_formal_args_intr.
3160	* interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
3161	if second argument is an intrinsic.
3162	(compare_intr_interfaces): Correctly set attr.function, attr.subroutine
3163	and ts.
3164	(compare_parameter): Call gfc_compare_interfaces also for intrinsics.
3165	* resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
3166	intrinsic interfaces here. Must happen earlier.
3167	(resolve_symbol): Resolution of intrinsic interfaces moved here from
3168	resolve_specific_..., and formal args are now copied from intrinsic
3169	interfaces.
3170	* symbol.c (copy_formal_args_intr): New function to copy the formal
3171	arguments from an intinsic procedure.
3172
31732009-04-06  Paul Thomas  <pault@gcc.gnu.org>
3174
3175	PR fortran/38863
3176	* dependency.c (ref_same_as_full_array): New function.
3177	(gfc_dep_resolver): Call it.
3178
31792009-04-06  Janus Weil  <janus@gcc.gnu.org>
3180
3181	PR fortran/39414
3182	* decl.c (match_procedure_decl): Fix double declaration problems with
3183	PROCEDURE statements.
3184	* symbol.c (gfc_add_type): Ditto.
3185
31862009-04-06  Paul Thomas  <pault@gcc.gnu.org>
3187
3188	PR fortran/36091
3189	* trans-array.c (gfc_conv_array_ref): If the symbol has the
3190	temporary attribute use the array_spec for the bounds.
3191	* gfortran.h : Add the temporary field to the structure
3192	'symbol_attribute'.
3193	* trans-stmt.c (forall_make_variable_temp): Set the symbol's
3194	temporary attribute.
3195
31962009-04-05  Daniel Franke  <franke.daniel@gmail.com>
3197
3198	PR fortran/29458
3199	* trans-array.c (gfc_trans_array_constructor_value): Shadow
3200	implied do-loop variable to avoid spurious middle-end warnings.
3201
32022009-04-04  Tobias Burnus  <burnus@net-b.de>
3203
3204	PR fortran/39577
3205	* trans-decl.c (gfc_generate_function_code): Move recursive
3206	check to the right position.
3207
32082009-04-04  Paul Thomas  <pault@gcc.gnu.org>
3209
3210	PR fortran/37614
3211	* trans-common.c (translate_common): Do not offset the whole
3212	coomon block.
3213
32142009-04-03  Tobias Burnus  <burnus@net-b.de>
3215
3216	PR fortran/39594
3217	* resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
3218	if it is not a procedure pointer.
3219	* primary.c (match_actual_arg): Ditto.
3220
32212009-03-31  Joseph Myers  <joseph@codesourcery.com>
3222
3223	PR preprocessor/15638
3224	* cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
3225
32262009-03-30  Steven G. Kargl  <kargls@comcast.net>
3227
3228	PR fortran/38389
3229	* trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
3230	(gfc_trans_deallocate): Add translation of ERRMSG.  Remove stale
3231	comments.  Minor whitespace cleanup.
3232	* resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
3233	(resolve_deallocate_expr (gfc_expr *e): Update error message.
3234	(resolve_allocate_expr):  Remove dead code.  Update error message.
3235	Move error checking to ...
3236	(resolve_allocate_deallocate): ... here.  Add additional error
3237	checking for STAT, ERRMSG, and allocate-objects.
3238	* match.c(gfc_match_allocate,gfc_match_deallocate):  Parse ERRMSG.
3239	Check for redundant uses of STAT and ERRMSG.  Reword error message
3240	and add checking for pointer, allocatable, and proc_pointer attributes.
3241
32422009-03-30  Paul Thomas  <pault@gcc.gnu.org>
3243
3244	PR fortran/22571
3245	PR fortran/26227
3246	PR fortran/24886
3247	* symbol.c : Add gfc_global_ns_list.
3248	* decl.c (add_global_entry): Set the namespace ('ns') field.
3249	* gfortran.h : Add the resolved field to gfc_namespace. Add the
3250	namespace ('ns') field to gfc_gsymbol.  Add flag_whole_file to
3251	gfc_option_t.  Add the prototype for gfc_free_dt_list.
3252	* lang.opt : Add the whole-file option.
3253	* invoke.texi : Document the whole-file option.
3254	* resolve.c (resolve_global_procedure): If the fwhole-file
3255	option is set, reorder gsymbols to ensure that translation is
3256	in the right order.  Resolve the gsymbol's namespace if that
3257	has not occurred and then check interfaces.
3258	(resolve_function): Move call to resolve_global_procedure.
3259	(resolve_call): The same.
3260	(resolve_codes): Store the current labels_obstack.
3261	(gfc_resolve) : Return if the namespace is already resolved.
3262	trans-decl.c (gfc_get_extern_function_decl): If the whole_file
3263	option is selected, use the backend_decl of a gsymbol, if it is
3264	available.
3265	parse.c (add_global_procedure, add_global_program): If the flag
3266	whole-file is set, add the namespace to the gsymbol.
3267	(gfc_parse_file): On -fwhole-file, put procedure namespaces on
3268	the global namespace list.  Rearrange to do resolution of all
3269	the procedures in a file, followed by their translation.
3270	* options.c (gfc_init_options): Add -fwhole-file.
3271	(gfc_handle_option): The same.
3272
32732009-03-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3274
3275	* f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
3276	family of intrinsics instead of BUILT_IN_INF family.
3277	* trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
3278	BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
3279
32802009-03-30  Jakub Jelinek  <jakub@redhat.com>
3281
3282	* trans-types.c (gfc_sym_type, gfc_return_by_reference): For
3283	sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
3284
32852009-03-30  Joseph Myers  <joseph@codesourcery.com>
3286
3287	PR rtl-optimization/323
3288	* options.c (gfc_post_options): Set
3289	flag_excess_precision_cmdline.  Give an error for
3290	-fexcess-precision=standard for processors where the option is
3291	significant.
3292
32932009-03-29  Joseph Myers  <joseph@codesourcery.com>
3294
3295	PR preprocessor/34695
3296	* cpp.c (cb_cpp_error): New.
3297	(gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
3298	Don't check cpp_errors (cpp_in).
3299	(gfc_cpp_init_0): Set cb->error.
3300
33012009-03-29  Steven G. Kargl  <kargl@gcc.gnu.org>
3302
3303	PR fortran/38823
3304	* gfortran.h: Add ARITH_PROHIBIT to arith enum.
3305	expr.c (gfc_match_init_expr): Add global variable init_flag to
3306	flag matching an initialization expression.
3307	(check_intrinsic_op): Move no longer reachable error message to ...
3308	* arith.c (arith_power): ... here.  Remove gfc_ prefix in
3309	gfc_arith_power.  Use init_flag.  Allow constant folding of x**y
3310	when y is REAL or COMPLEX.
3311	(eval_intrinsic): Remove restriction that y in x**y must be INTEGER
3312	for constant folding.
3313	* gfc_power: Update gfc_arith_power to arith_power
3314
33152009-03-29  Daniel Kraft  <d@domob.eu>
3316
3317	PR fortran/37423
3318	* gfortran.h (struct gfc_typebound_proc): Added new flag "deferred" and
3319	added a comment explaining DEFERRED binding handling.
3320	* decl.c (match_binding_attributes): Really match DEFERRED attribute.
3321	(match_procedure_in_type): Really match PROCEDURE(interface) syntax
3322	and do some validity checks for DEFERRED and this construct.
3323	* module.c (binding_overriding): New string constant for DEFERRED.
3324	(mio_typebound_proc): Module-IO DEFERRED flag.
3325	* resolve.c (check_typebound_override): Ensure that a non-DEFERRED
3326	binding is not overridden by a DEFERRED one.
3327	(resolve_typebound_procedure): Allow abstract interfaces as targets
3328	for DEFERRED bindings.
3329	(ensure_not_abstract_walker), (ensure_not_abstract): New methods.
3330	(resolve_fl_derived): Use new "ensure_not_abstract" method for
3331	non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
3332	binding is overridden.
3333	(check_typebound_baseobject): New method.
3334	(resolve_compcall), (resolve_typebound_call): Check base-object of
3335	the type-bound procedure call.
3336	* gfc-internals.texi (Type-bound procedures): Document a little bit
3337	about internal handling of DEFERRED bindings.
3338
33392009-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
3340
3341	PR fortran/38507
3342	* gfortran.h (gfc_st_label): Fix comment.
3343	(gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block.
3344	* parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and
3345	END SELECT with labels.
3346	(check_do_closure): Fix formatting.
3347	(parse_do_block): Fix typo in error message.
3348	* resolve.c (code_stack): Remove tail member.  Update comment to
3349	new use of reachable_labels.
3350	(reachable_labels): Rename to ...
3351	(find_reachable_labels): ... this.  Overhaul.  Update preceding
3352	comment.
3353	(resolve_branch): Fix comment preceding function.  Rewrite.
3354	(resolve_code): Update call to find_reachable_labels.  Add code to
3355	deal with EXEC_END_BLOCK.
3356	* st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK.
3357	Add 2009 to copyright years.
3358	* trans.c (gfc_trans_code): Likewise on both counts.
3359
33602009-03-31  Paul Thomas  <pault@gcc.gnu.org>
3361
3362	PR fortran/38917
3363	* expr.c (gfc_check_assign): Allow pointer components when
3364	checking for NULL.
3365
3366	PR fortran/38918
3367	* resolve.c (check_data_variable): Treat pointer arrays with
3368	scalars.
3369
33702009-03-31  Paul Thomas  <pault@gcc.gnu.org>
3371
3372	PR fortran/38915
3373	* trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
3374	have a string_length.
3375
33762009-03-28  Tobias Burnus  <burnus@net-b.de>
3377
3378	PR fortran/34656
3379	* trans-stmt.c (gfc_trans_simple_do, gfc_trans_do):
3380	Add GFC_RTCHECK_DO support.
3381	* option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO.
3382	* invoke.texi (-fcheck): Document "do" option.
3383
33842009-03-28  Paul Thomas  <pault@gcc.gnu.org>
3385
3386	PR fortran/38538
3387	* trans-array.c (get_elemental_fcn_charlen): Remove.
3388	(get_array_charlen): New function to replace previous.
3389
33902009-03-28  Paul Thomas  <pault@gcc.gnu.org>
3391
3392	PR fortran/38765
3393	* parse.c (parse_derived): Do not break on finding pointer,
3394	allocatable or private components.
3395
33962009-03-28  Tobias Burnus  <burnus@net-b.de>
3397
3398	PR fortran/32626
3399	* option.c (gfc_handle_runtime_check_option): Enable recursion check.
3400	* trans-decl.c (gfc_generate_function_code): Add recursion check.
3401	* invoke.texi (-fcheck): Add recursive option.
3402
34032009-03-28  Tobias Burnus  <burnus@net-b.de>
3404
3405	PR fortran/38432
3406	* resolve.c (gfc_resolve_iterator): Add zero-loop warning.
3407
34082009-03-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3409	    Paul Thomas  <pault@gcc.gnu.org>
3410	    Tobias Burnus  <burnus@net-b.de>
3411
3412	* gfortran.h (gfc_option_t): Add rtcheck.
3413	* lang.opt: New option -fcheck.
3414	* libgfortran.h: Add GFC_RTCHECK_* constants.
3415	* invoke.texi: Document -fcheck.
3416	* options.c (gfc_handle_runtime_check_option): New function.
3417	(gfc_init_options,gfc_post_options,gfc_handle_option):
3418	Add -fcheck option.
3419
34202009-03-27  Richard Guenther  <rguenther@suse.de>
3421
3422	* trans-array.c (gfc_conv_descriptor_data_addr): Use
3423	gfc_build_addr_expr instead of build_fold_addr_expr.
3424	(gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
3425	gfc_trans_constant_array_constructor, gfc_conv_array_data,
3426	gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
3427	* trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
3428	gfc_conv_function_val, gfc_conv_operator_assign,
3429	gfc_conv_subref_array_arg, gfc_conv_function_call,
3430	gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
3431	* trans-intrinsic.c (gfc_conv_intrinsic_exponent,
3432	gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
3433	gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
3434	gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
3435	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
3436	gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
3437	gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
3438	* trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
3439	gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
3440	build_filepos, gfc_trans_inquire, gfc_trans_wait,
3441	nml_get_addr_expr, transfer_namelist_element, build_dt,
3442	gfc_trans_dt_end, transfer_array_component, transfer_expr,
3443	transfer_array_desc, gfc_trans_transfer): Likewise.
3444	* trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
3445	* trans.c (gfc_build_addr_expr): Mark the base of the address
3446	TREE_ADDRESSABLE.
3447
34482009-03-27  Tobias Burnus  <burnus@net-b.de>
3449
3450	* gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
3451	(gfc_expr): Add is_snan.
3452	* trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN.
3453	(gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree.
3454	* trans-const.h (gfc_conv_mpfr_to_tree): Update prototype.
3455	* resolve.c (build_default_init_expr): Update call.
3456	* target-memory.c (encode_float): Ditto.
3457	* trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod,
3458
34592009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3460
3461	* lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp,
3462	and -fpreprocessed.
3463
34642009-03-06  Alexandre Oliva <aoliva@redhat.com>
3465
3466	* simplify.c (gfc_simplify_transfer): Zero-initialize the
3467	buffer.
3468
34692009-02-27  Tobias Burnus  <burnus@net-b.de>
3470
3471	PR fortran/39309
3472	* module.c (read_md5_from_module_file): Add missing quote.
3473
34742009-02-27  Tobias Burnus  <burnus@net-b.de>
3475
3476	PR fortran/39309
3477	* module.c (read_md5_from_module_file): Include mod version
3478	in had-changed test.
3479
34802009-02-26  Paul Thomas  <pault@gcc.gnu.org>
3481
3482	PR fortran/39295
3483	* interface.c (compare_type_rank_if): Return 1 if the symbols
3484	are the same and deal with external procedures where one is
3485	identified to be a function or subroutine by usage but the
3486	other is not.
3487
34882009-02-26  Paul Thomas  <pault@gcc.gnu.org>
3489
3490	PR fortran/39292
3491	* trans-array.c (gfc_conv_array_initializer): Convert all
3492	expressions rather than ICEing.
3493
34942009-02-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
3495
3496	PR fortran/38914
3497	* array.c (ref_dimen_size):  Rename to gfc_ref_dimen_size,
3498	make global.  Change function name in error messages.
3499	(ref_size):  Change ref_dimen_size to gfc_ref_dimen_size.
3500	(gfc_array_ref_shape):  Likewise.
3501	* gfortran.h:  Add prototype for gfc_ref_dimen_size.
3502	* simplify.c (simplify_bound_dim):  Add ref argument.
3503	If the reference isn't a full array, return one for
3504	the lower bound and the extent for the upper bound.
3505	(simplify_bound):  For array sections, take as from the
3506	argument.  Add reference to all to simplify_bound_dim.
3507
35082009-02-19  Daniel Franke  <franke.daniel@gmail.com>
3509
3510	* scanner.c (load_line): At end of line, skip '\r' without setting
3511	the truncation flag.
3512
35132009-02-18  Daniel Kraft  <d@domob.eu>
3514
3515	* gfortran.texi: New chapter about compiler characteristics.
3516	(Compiler Characteristics): Document KIND type parameters here.
3517
35182009-02-18  Tobias Burnus  <burnus@net-b.de>
3519
3520	* intrinsic.texi (MALLOC): Make example more portable.
3521
35222009-02-13  Mikael Morin  <mikael@gcc.gnu.org>
3523
3524	PR fortran/38259
3525	* module.c (gfc_dump_module,gfc_use_module): Add module
3526	version number.
3527
35282009-02-13  Paul Thomas  <pault@gcc.gnu.org>
3529
3530	PR fortran/36703
3531	PR fortran/36528
3532	* trans-expr.c (gfc_conv_function_val): Stabilize Cray-pointer
3533	function references to ensure that a valid expression is used.
3534	(gfc_conv_function_call): Pass Cray pointers to procedures.
3535
35362009-02-03  Jakub Jelinek  <jakub@redhat.com>
3537
3538	* gfortranspec.c (lang_specific_driver): Update copyright notice
3539	dates.
3540
35412009-01-28  Paul Thomas  <pault@gcc.gnu.org>
3542
3543	PR fortran/38852
3544	PR fortran/39006
3545	* trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array
3546	descriptor ubound for UBOUND, when the array lbound == 1.
3547
35482009-01-27  Daniel Kraft  <d@domob.eu>
3549
3550	PR fortran/38883
3551	* trans-stmt.c (gfc_conv_elemental_dependencies):  Create temporary
3552	for the real type needed to make it work for subcomponent-references.
3553
35542009-01-21  Daniel Kraft  <d@domob.eu>
3555
3556	* trans-stmt.c (gfc_conv_elemental_dependencies):  Cleaned up comment.
3557
35582009-01-20  Paul Thomas  <pault@gcc.gnu.org>
3559
3560	PR fortran/38907
3561	* resolve.c (check_host_association): Remove the matching to
3562	correct an incorrect host association and use manipulation of
3563	the expression instead.
3564
35652009-01-20  Tobias Burnus  <burnus@net-b.de>
3566
3567	* invoke.texi (RANGE): RANGE also takes INTEGER arguments.
3568
35692009-01-19  Mikael Morin  <mikael@gcc.gnu.org>
3570
3571	PR fortran/38859
3572	* simplify.c (simplify_bound): Don't use array specification
3573	if variable or component has subsequent references.
3574
35752009-01-17  Paul Thomas  <pault@gcc.gnu.org>
3576
3577	PR fortran/38657
3578	* module.c (write_common_0): Add argument 'this_module' and
3579	check that non-use associated common blocks are written first.
3580	(write_common): Call write_common_0 twice, once with true and
3581	then with false.
3582
35832009-01-17  Paul Thomas  <pault@gcc.gnu.org>
3584
3585	PR fortran/34955
3586	* trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has
3587	been absorbed into gfc_conv_intrinsic_transfer. All
3588	references to it in trans-intrinsic.c have been changed
3589	accordingly.  PR fixed by using a temporary for scalar
3590	character transfer, when the source is shorter than the
3591	destination.
3592
35932009-01-17  Paul Thomas  <pault@gcc.gnu.org>
3594
3595	PR fortran/38657
3596	* module.c (write_common_0): Revert patch of 2009-01-05.
3597
35982009-01-16  Janus Weil  <janus@gcc.gnu.org>
3599
3600	PR fortran/38152
3601	* expr.c (gfc_check_pointer_assign): Allow use-associated procedure
3602	pointers as lvalue.
3603	* trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable):
3604	Enable procedure pointers as module variables.
3605
36062009-01-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3607
3608	* ChangeLog-2007: Clean out svn merge droppings.
3609
36102009-01-10  Paul Thomas  <pault@gcc.gnu.org>
3611
3612	PR fortran/38763
3613	* target-memory.c (encode_derived): Encode NULL.
3614
36152009-01-10  Paul Thomas  <pault@gcc.gnu.org>
3616
3617	PR fortran/38765
3618	* resolve.c (check_host_association): Use the symtree name to
3619	search for a potential contained procedure, since this is the
3620	name by which it would be referenced.
3621
36222009-01-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
3623
3624	PR fortran/38220
3625	* interface.c (gfc_procedure_use):  Don't warn about functions
3626	from ISO_C_BINDING.
3627	* symbol.c (generate_isocbinding_symbol):  Mark c_loc and
3628	c_funloc as pure.
3629
36302009-01-05  Paul Thomas  <pault@gcc.gnu.org>
3631
3632	PR fortran/38657
3633	* module.c (write_common_0): Use the name of the symtree rather
3634	than the common block, to determine if the common has been
3635	written.
3636
36372009-01-05  Daniel Franke  <franke.daniel@gmail.com>
3638
3639	PR fortran/37159
3640	* check.c (gfc_check_random_seed): Added size check for GET
3641	dummy argument, reworded error messages to follow common pattern.
3642
36432009-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
3644
3645	PR fortran/38672
3646	* trans-types.c (gfc_get_derived_type):  Check for the
3647	presence of derived->ns->proc_name before
3648	accessing derived->ns->proc_name->attr.flavor .
3649	* resolve.c (resolve_symbol):  Likewise.
3650
36512009-01-05  Paul Thomas  <pault@gcc.gnu.org>
3652
3653	PR fortran/38665
3654	* gfortran.h : Add bit to gfc_expr 'user_operator'
3655	* interface.c (gfc_extend_expr): Set the above if the operator
3656	is substituted by a function.
3657	* resolve.c (check_host_association): Return if above is set.
3658
36592009-01-04  Mikael Morin  <mikael@gcc.gnu.org>
3660
3661	PR fortran/35681
3662	* ChangeLog-2008: Fix function name.
3663
3664	PR fortran/38487
3665	* dependency.c (gfc_check_argument_var_dependency):
3666	Move the check for pointerness inside the if block
3667	so that it doesn't affect the return value.
3668
3669	PR fortran/38669
3670	* trans-stmt.c (gfc_trans_call):
3671	Add the dependency code after the loop bounds calculation one.
3672
36732009-01-04  Daniel Franke  <franke.daniel@gmail.com>
3674
3675	* intrinsic.c (do_simplify): Removed already implemented TODO.
3676
36772009-01-04  Daniel Franke  <franke.daniel@gmail.com>
3678
3679	PR fortran/38718
3680	* simplify.c (gfc_simplify_merge): New.
3681	* intrinsic.h (gfc_simplify_merge): New prototype.
3682	* intrinsic.c (add_functions): Added simplification for MERGE.
3683
36842009-01-04  Mikael Morin  <mikael@gcc.gnu.org>
3685
3686	PR fortran/38536
3687	* gfortran.h (gfc_is_data_pointer): Added prototype
3688	* resolve.c (gfc_iso_c_func_interface):
3689	Use gfc_is_data_pointer to test for pointer attribute.
3690	* dependency.c (gfc_is_data_pointer):
3691	Support pointer-returning functions.
3692
36932009-01-03  Daniel Franke  <franke.daniel@gmail.com>
3694
3695	* symbol.c (save_symbol): Don't SAVE function results.
3696
36972009-01-03  Paul Thomas  <pault@gcc.gnu.org>
3698
3699	PR fortran/38594
3700	* resolve.c (resolve_call): When searching for proper host
3701	association, use symtree rather than symbol.  For everything
3702	except generic subroutines, substitute the symtree in the call
3703	rather than the symbol.
3704
3705
3706Copyright (C) 2009 Free Software Foundation, Inc.
3707
3708Copying and distribution of this file, with or without modification,
3709are permitted in any medium without royalty provided the copyright
3710notice and this notice are preserved.
3711