OSDN Git Service

* builtin-types.def (BT_FN_PTR_PTR_SIZE): New type.
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2
3         * trans-array.c (gfc_grow_array): Use gfc_call_realloc.
4         (gfc_array_allocate): Use gfc_allocate_with_status and
5         gfc_allocate_array_with_status.
6         (gfc_array_deallocate): Use gfc_deallocate_with_status.
7         (gfc_trans_dealloc_allocated): Use gfc_deallocate_with_status.
8         * trans-stmt.c (gfc_trans_allocate): Use gfc_allocate_with_status.
9         (gfc_trans_deallocate): Use gfc_deallocate_with_status.
10         * trans.c (gfc_allocate_with_status, gfc_allocate_array_with_status,
11         gfc_deallocate_with_status, gfc_call_realloc): New functions.
12         * trans.h (gfc_allocate_with_status, gfc_allocate_array_with_status,
13         gfc_deallocate_with_status, gfc_call_realloc): New prototypes.
14         (gfor_fndecl_internal_realloc, gfor_fndecl_allocate,
15         gfor_fndecl_allocate_array, gfor_fndecl_deallocate): Remove.
16         * f95-lang.c (gfc_init_builtin_functions): Create decl for
17         BUILT_IN_REALLOC.
18         * trans-decl.c (gfor_fndecl_internal_realloc,
19         gfor_fndecl_allocate, gfor_fndecl_allocate_array,
20         gfor_fndecl_deallocate): Remove function decls.
21         (gfc_build_builtin_function_decls): Likewise.
22
23 2007-08-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
24
25         PR fortran/33055
26         Revert previous patch.
27
28 2007-08-28  Jakub Jelinek  <jakub@redhat.com>
29
30         PR fortran/22244
31         * Make-lang.in (fortran/trans-types.o): Depend on $(FLAGS_H).
32         * trans-types.c: Include flags.h.
33         (gfc_get_nodesc_array_type): Add TYPE_DECL TYPE_NAME with
34         correct bounds and dimensions for packed arrays.
35
36 2007-08-27  Tobias Burnus  <burnus@net-b.de>
37
38         * simplify.c (gfc_simplify_lgamma): Fix mpfr_lgamma call.
39
40 2007-08-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
41
42         PR fortran/33055
43         * trans-io.c (create_dummy_iostat): New function to create a unique
44         dummy variable expression to use with IOSTAT.
45         (gfc_trans_inquire): Use the new function to pass unit number error info
46         to run-time library if a regular IOSTAT variable was not given.
47
48 2007-08-26  H.J. Lu  <hongjiu.lu@intel.com>
49
50         * gfortran.h (gfc_isym_id): Add GFC_ISYM_GAMMA and
51         GFC_ISYM_LGAMMA.
52
53 2007-08-26  Asher Langton  <langton2@llnl.gov>
54             Tobias Burnus  <burnus@net-b.de>
55
56         * gfortran.h (gfc_option_t): Add flag_recursive.
57         * lang.opt: Add -frecursive option and update -fopenmp.
58         * invoke.texi (-frecursive): Document new option.
59         (-fopenmp,-fno-automatic,-fmax-stack-var-size): Update.
60         * options.c (gfc_init_options, gfc_post_options,
61         gfc_handle_option): Add -frecursive and modify -fopenmp.
62         (gfc_post_options): Add warning for conflicting flags.
63
64 2007-08-26  Tobias Burnus  <burnus@net-b.de>
65
66         PR fortran/31298
67         * module.c (mio_symbol_ref,mio_interface_rest):  Return pointer_info.
68         (load_operator_interfaces): Support multible loading of an operator.
69
70 2007-08-26  Tobias Burnus  <burnus@net-b.de>
71
72         PR fortran/32985
73         * match.c (gfc_match_common): Remove SEQUENCE diagnostics.
74         * resolve.c (resolve_common_blocks): Add SEQUENCE diagnostics;
75         fix walking through the tree.
76
77 2007-08-26  Tobias Burnus  <burnus@net-b.de>
78
79         PR fortran/32980
80         * intrinsic.h (gfc_simplify_gamma,gfc_simplify_lgamma,
81         gfc_resolve_gamma,gfc_resolve_lgamma): New function declations.
82         * mathbuiltins.def: Define GAMMA and LGAMMA.
83         * intrinsic.c (add_functions): Add GAMMA, DGAMMA, LGAMMA, ALGAMA
84         and DLGAMA.
85         * simplify.c (gfc_simplify_gamma,gfc_simplify_lgamma): New functions.
86         * iresolve.c (gfc_resolve_gamma,gfc_resolve_lgamma): New functions.
87         * intrinsic.texi: Add documentation for GAMMA and LGAMMA.
88
89 2007-08-26  Tobias Burnus  <burnus@net-b.de>
90
91         PR fortran/33188
92         * parse.c (parse_derived): Support empty derived type
93         definitions for Fortran 2003.
94
95 2007-08-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
96
97         * trans-openmp.c (gfc_omp_privatize_by_reference): Constify.
98         * trans.h (gfc_omp_privatize_by_reference): Likewise.
99
100 2007-08-24  Tobias Burnus  <burnus@net-b.de>
101
102         PR fortran/33178
103         * intrinsic.c (gfc_intrinsic_func_interface): Fix initialization
104         expression check.
105
106 2007-08-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
107
108         PR fortran/32972
109         * iresolve.c:  Don't convert array masks.
110
111 2007-08-24  Tobias Burnus  <burnus@net-b.de>
112
113         PR fortran/33139
114         * trans-array.c (gfc_conv_expr_descriptor): Copy bounds for
115         whole-array pointer assignments.
116
117 2007-08-23  Jakub Jelinek  <jakub@redhat.com>
118
119         * decl.c (variable_decl): Don't share charlen structs if
120         length == NULL.
121         * trans-decl.c (create_function_arglist): Assert
122         f->sym->ts.cl->backend_decl is NULL instead of unsharing
123         charlen struct here.
124
125 2007-08-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
126
127         PR fortran/33095
128         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Remove
129         runtime error checking.
130
131 2007-08-22  Roger Sayle  <roger@eyesopen.com>
132             Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
133
134         * match.c (intrinsic_operators): Delete.
135         (gfc_match_intrinsic_op): Rewrite matcher to avoid calling
136         gfc_match_strings.
137
138 2007-08-22  Christopher D. Rickett  <crickett@lanl.gov>
139
140         PR fortran/33020
141         * resolve.c (gfc_iso_c_sub_interface): Remove setting of type and
142         kind for optional SHAPE parameter of C_F_POINTER.
143
144 2007-08-22  Janus Weil  <jaydub66@gmail.com>
145
146         * decl.c (match_attr_spec): Pass on errors from gfc_match_bind_c.
147         (gfc_match_bind_c): Bugfix in check for NAME= with abstract interfaces.
148         (gfc_match_mopdproc): Bugfix to reject module procedures in
149         abstract interfaces.
150
151 2007-08-22  Kai Tietz  <kai.tietz@onevision.com>
152
153         * f95-lang.c: (gfc_init_decl_processing): Choose sizetype by using
154         Pmode.
155
156 2007-08-21  Paul Brook  <paul@codesourcery.com>
157             Nathan Sidwell  <nathan@codesourcery.com>
158             Mark Mitchell  <mark@codesourcery.com>
159             Joseph Myers  <joseph@codesourcery.com>
160
161         * gfortranspec.c (lang_specific_driver): Use pkgversion_string.
162         * Make-lang.in (gfortran.pod): Define BUGURL.
163         * invoke.texi: Use BUGURL for bug-reporting instructions.
164
165 2007-08-19  Roger Sayle  <roger@eyesopen.com>
166
167         * match.c (intrinsic_operators): Make static.
168         (gfc_op2string): New function for converting a gfc_intrinsic_op to
169         to a "const char*", replacing the macro of the same name.
170         * gfortran.h (intrinsic_operators): Delete prototype.
171         (gfc_op2string): Replace macro with function prototype.
172
173 2007-08-18  Tobias Burnus  <burnus@net-b.de>
174
175         * gfortran.h (gfc_is_intrinsic_typename): Add declaration.
176         * symbol.c (gfc_is_intrinsic_typename): New function.
177         * parse.c (decode_statement): Check for space in ABSTRACT INTERFACE.
178         (parse_interface): Use gfc_is_intrinsic_typename.
179         * decl.c (gfc_match_derived_decl): Ditto.
180         * module.c (gfc_match_use): Use gcc_unreachable() for
181         INTERFACE_ABSTRACT in switch().
182
183 2007-08-18  Roger Sayle  <roger@eyesopen.com>
184
185         * primary.c (match_logical_constant_string): New function to match
186         a ".true." or a ".false.".
187         (match_logical_constant): Use it instead of gfc_match_strings.
188
189 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
190             Janus Weil  <jaydub66@gmail.com>
191
192         * interface.c (gfc_match_interface,gfc_match_abstract_interface,
193         gfc_match_end_interface,gfc_add_interface): Add abstract interface.
194         * dump-parse-tree.c (gfc_show_attr): Ditto.
195         * gfortran.h (interface_type,symbol_attribute): Ditto.
196         * module.c (gfc_match_use,ab_attribute,attr_bits,
197         mio_symbol_attribute): Ditto.
198         * resolve.c (resolve_function): Ditto.
199         * match.h: Ditto.
200         * parse.c (decode_statement): Ditto.
201         (parse_interface): Ditto, check for C1203 (name of abstract interface
202         cannot be the same as an intrinsic type).
203         * decl.c (gfc_match_bind_c): Check for NAME= with abstract interfaces.
204         (access_attr_decl): Handle Abstract interfaces.
205
206 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
207
208         PR fortran/32881
209         * expr.c (gfc_check_pointer_assign): If the rhs is the
210         initialization expression for the rhs, there is no error.
211
212 2007-08-18  Paul Thomas  <pault@gcc.gnu.org>
213
214         PR fortran/32875
215         * trans-array.c (get_array_ctor_strlen): Set the character
216         length of a zero length array to zero.
217
218 2007-08-16  Tobias Burnus  <burnus@net-b.de>
219
220         PR fortran/33072
221         * module.c (gfc_match_use): Mark user operators as such.
222         (find_use_name_n): Distinguish between operators and other symbols.
223         (find_use_name,number_use_names,mio_namelist,
224          load_operator_interfaces,load_generic_interfaces,read_module,
225          write_generic): Update find_use_name_n calls.
226
227 2007-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
228
229         PR fortran/29459
230         * trans.c (gfc_create_var_np): Do not emit warnings for
231         anonymous variables.
232
233 2007-08-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
234
235         PR fortran/33066
236         * decl.c (gfc_get_type_attr_spec): Fix whitespace.
237         (gfc_match_derived_decl): Fix logic.
238
239 2007-08-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
240
241         PR fortran/33073
242         * trans-intrinsic.c (build_fixbound_expr): Convert to result type
243         in all cases.
244
245 2007-08-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
246
247         PR fortran/32594
248         * trans-expr.c (gfc_conv_substring_expr): Only call
249         gfc_conv_substring if expr->ref is not NULL.
250         * expr.c (gfc_is_constant_expr): If e->ref is NULL, the substring
251         expression might be a constant.
252         (gfc_simplify_expr): Handle missing start and end, as well as
253         missing ref.
254
255 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
256
257         PR fortran/32926
258         * match.c (gfc_match_call): Do not create a new symtree in the
259         case where the existing symbol is external and not referenced.
260
261 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
262
263         PR fortran/32827
264         * decl.c (variable_decl): Check for an imported symbol
265         by looking for its symtree and testing for the imported
266         attribute.
267         (gfc_match_import): Remove change of symbol's namespace
268         and set the attribute imported instead.
269         * symbol.c (gfc_get_sym_tree): It is not an error if a
270         symbol is imported.
271         * gfortran.h : Add the 'imported' to symbol_attribute.
272
273 2007-08-13  Paul Thomas  <pault@gcc.gnu.org>
274
275         PR fortran/32962
276         * trans-array.c (gfc_conv_array_transpose): Set the offset
277         of the destination to zero if the loop is zero based.
278
279 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
280
281         PR fortran/29600
282         * intrinsic.c (add_functions): Add optional KIND argument to ACHAR.
283         * iresolve.c (gfc_resolve_achar): Handle the KIND argument.
284         * check.c (gfc_check_achar): Check for the optional KIND argument.
285         * simplify.c (gfc_simplify_achar): Use KIND argument.
286         * intrinsic.h (gfc_check_achar, gfc_simplify_achar,
287         gfc_resolve_achar): Adjust prototypes.
288
289 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
290
291         PR fortran/30964
292         PR fortran/33054
293         * trans-expr.c (gfc_conv_function_call): When no formal argument
294         list is available, we still substitute missing optional arguments.
295         * check.c (gfc_check_random_seed): Correct the check on the
296         number of arguments to RANDOM_SEED.
297         * intrinsic.c (add_subroutines): Add a resolution function to
298         RANDOM_SEED.
299         * iresolve.c (gfc_resolve_random_seed): New function.
300         * intrinsic.h (gfc_resolve_random_seed): New prototype.
301
302 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
303
304         PR fortran/32860
305         * error.c (error_uinteger): New function.
306         (error_integer): Call error_uinteger.
307         (error_print): Handle %u, %lu, %li and %ld format specifiers.
308         * interface.c (compare_actual_formal): Use the new %lu specifier.
309
310 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
311
312         PR fortran/31629
313         * lang.opt (-fmodule-private): New option.
314         * gfortran.h (gfc_option_t): Add flag_module_private member.
315         * invoke.texi (-fmodule-private): Document the new option.
316         * module.c (gfc_check_access): Allow the -fmodule-private option
317         to modify the default behaviour.
318         * options.c (gfc_init_options): Initialize flag_module_private.
319         (gfc_handle_option): Handle -fmodule-private.
320
321 2007-08-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
322
323         PR fortran/29600
324         * intrinsic.c (add_functions): Add KIND arguments to COUNT,
325         IACHAR, ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND
326         and VERIFY.
327         * iresolve.c (gfc_resolve_count): Add kind argument.
328         (gfc_resolve_iachar): New function.
329         (gfc_resolve_ichar): Add kind argument.
330         (gfc_resolve_index_func): Likewise.
331         (gfc_resolve_lbound): Likewise.
332         (gfc_resolve_len): Likewise.
333         (gfc_resolve_len_trim): Likewise.
334         (gfc_resolve_scan): Likewise.
335         (gfc_resolve_size): New function.
336         (gfc_resolve_ubound): Add kind argument.
337         (gfc_resolve_verify): Likewise.
338         * trans-decl.c (gfc_get_extern_function_decl): Allow specific
339         intrinsics to have 4 arguments.
340         * check.c (gfc_check_count): Add kind argument.
341         (gfc_check_ichar_iachar): Likewise.
342         (gfc_check_index): Likewise.
343         (gfc_check_lbound): Likewise.
344         (gfc_check_len_lentrim): New function.
345         (gfc_check_scan): Add kind argument.
346         (gfc_check_size): Likewise.
347         (gfc_check_ubound): Likewise.
348         (gfc_check_verify): Likewise.
349         * intrinsic.texi: Update documentation for COUNT, IACHAR, ICHAR,
350         INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND and VERIFY.
351         * simplify.c (get_kind): Whitespace fix.
352         (int_expr_with_kind): New function.
353         (gfc_simplify_iachar): Add kind argument.
354         (gfc_simplify_iachar): Likewise.
355         (gfc_simplify_ichar): Likewise.
356         (gfc_simplify_index): Likewise.
357         (simplify_bound_dim): Likewise.
358         (simplify_bound): Likewise.
359         (gfc_simplify_lbound): Likewise.
360         (gfc_simplify_len): Likewise.
361         (gfc_simplify_len_trim): Likewise.
362         (gfc_simplify_scan): Likewise.
363         (gfc_simplify_shape): Pass NULL as kind argument to gfc_simplify_size.
364         (gfc_simplify_size): Add kind argument.
365         (gfc_simplify_ubound): Likewise.
366         (gfc_simplify_verify): Likewise.
367         * intrinsic.h: Update prototypes and add new ones.
368         * trans-intrinsic.c (gfc_conv_intrinsic_index): Rename into
369         gfc_conv_intrinsic_index_scan_verify.
370         (gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove.
371         (gfc_conv_intrinsic_function): Call
372         gfc_conv_intrinsic_index_scan_verify to translate the INDEX,
373         SCAN and VERIFY intrinsics.
374
375 2007-08-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
376
377         PR fortran/31189
378         * invoke.texi (-fbacktrace): Document the new behaviour.
379
380 2007-08-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
381
382         PR fortran/32937
383         * trans-array.c (gfc_conv_expr_descriptor): Use
384         gfc_conv_const_charlen to generate backend_decl of right type.
385         * trans-expr.c (gfc_conv_expr_op): Use correct return type.
386         (gfc_build_compare_string): Use int type instead of default
387         integer kind for single character comparison.
388         (gfc_conv_aliased_arg): Give backend_decl the right type.
389         * trans-decl.c (gfc_build_intrinsic_function_decls): Make
390         compare_string return an int.
391
392 2007-08-11  Ian Lance Taylor  <iant@google.com>
393
394         * f95-lang.c (gfc_get_alias_set): Change return type to
395         alias_set_type.
396
397 2007-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
398
399         PR fortran/31270
400         * trans.c (gfc_trans_runtime_check): Reorder arguments and
401         add extra variable arguments. Hand them to the library function.
402         * trans.h (gfc_trans_runtime_check): Update prototype.
403         * trans-array.c (gfc_trans_array_bound_check): Issue more
404         detailled error messages.
405         (gfc_conv_array_ref): Likewise.
406         (gfc_conv_ss_startstride): Likewise.
407         (gfc_trans_dummy_array_bias): Reorder arguments to
408         gfc_trans_runtime_check.
409         * trans-expr.c (gfc_conv_substring): Issue more detailled
410         error messages.
411         (gfc_conv_function_call): Reorder arguments to gfc_trans_runtime_check.
412         * trans-stmt.c (gfc_trans_goto): Likewise.
413         * trans-io.c (set_string): Reorder arguments to
414         gfc_trans_runtime_check and issue a more detailled error message.
415         * trans-decl.c (gfc_build_builtin_function_decls): Make
416         runtime_error and runtime_error_at handle a variable number of
417         arguments.
418         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Reorder arguments
419         to gfc_trans_runtime_check.
420         (gfc_conv_intrinsic_minmax): Likewise.
421         (gfc_conv_intrinsic_repeat): Issue more detailled error messages.
422
423 2007-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
424
425         * gfortranspec.c (lang_specific_driver): Use CONST_CAST.
426         * options.c (gfc_post_options): Likewise.
427         * parse.c (parse_omp_structured_block): Likewise.
428         * st.c (gfc_free_statement): Likewise.
429
430 2007-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
431
432         PR fortran/32933
433         * trans-decl.c (gfc_build_builtin_function_decls): Change
434         prototype for associated.
435         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert the
436         result of __builtin_isnan into a boolean.
437         (gfc_conv_intrinsic_strcmp): Cleanup.
438         (gfc_conv_associated): Convert the result of the associated
439         function into a boolean.
440
441 2007-08-09  Tobias Burnus  <burnus@net-b.de>
442
443         PR fortran/32987
444         * io.c (format_token): Add FMT_ERROR.
445         (next_char_not_space): Print error/warning when
446         '\t' are used in format specifications.
447         (format_lex): Propagate error.
448         (check_format): Ditto.
449
450 2007-08-09  Tobias Burnus  <burnus@net-b.de>
451
452         PR fortran/33001
453         * arith.c (arith_error): Point in the error message
454         to -fno-range-check.
455
456 2007-08-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
457
458         PR fortran/32902
459         * intrinsic.texi (SIZEOF): Add mention to C_SIZE_T.
460
461 2007-08-06  Christopher D. Rickett  <crickett@lanl.gov>
462
463         PR fortran/32732
464         * trans-expr.c (gfc_conv_scalar_char_value): Convert the tree and
465         actual arg expressions for scalar characters passed by-value to
466         bind(c) routines.
467         (gfc_conv_function_call): Call gfc_conv_scalar_char_value.
468         * trans.h: Add prototype for gfc_conv_scalar_char_value.
469         * trans-decl.c (generate_local_decl): Convert by-value character
470         dummy args of bind(c) procedures using
471         gfc_conv_scalar_char_value.
472
473 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
474
475         PR fortran/30947
476         * iresolve.c (gfc_resolve_alarm_sub): Suffix the subroutine name
477         with the kind of the STATUS argument.
478
479 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
480
481         PR fortran/30948
482         * intrinsic.c (add_functions): Fix name of argument to CHDIR.
483
484 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
485
486         PR fortran/30933
487         * iresolve.c (gfc_resolve_exit): Convert argument to default
488         integer kind.
489
490 2007-08-06  Daniel Franke  <franke.daniel@gmail.com>
491
492         * resolve.c (derived_pointer): Removed, replaced callers by access 
493         to appropiate attribute bit.
494         (derived_inaccessable): Shortcut recursion depth.
495         (resolve_fl_namelist): Fixed checks for private components in namelists.
496
497 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
498
499         PR fortran/29828
500         * trans.h (gfor_fndecl_string_minmax): New prototype.
501         * trans-decl.c (gfor_fndecl_string_minmax): New variable.
502         (gfc_build_intrinsic_function_decls): Create gfor_fndecl_string_minmax.
503         * check.c (gfc_check_min_max): Allow for character arguments.
504         * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): New function.
505         (gfc_conv_intrinsic_function): Add special case for MIN and MAX
506         intrinsics with character arguments.
507         * simplify.c (simplify_min_max): Add simplification for character
508         arguments.
509
510 2007-08-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
511
512         PR fortran/31612
513         * invoke.texi: Adjust documentation for option -fsyntax-only.
514
515 2007-08-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
516             Tobias Burnus  <burnus@gcc.gnu.org>
517
518         PR fortran/32979
519         * intrinsic.h (gfc_check_isnan): Add prototype.
520         * gfortran.h (gfc_isym_id): Add GFC_ISYM_ISNAN.
521         * intrinsic.c (add_functions): Add ISNAN intrinsic.
522         * check.c (gfc_check_isnan): New function.
523         * trans-intrinsic.c (gfc_conv_intrinsic_isnan): New function.
524         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_isnan
525         to translate ISNAN.
526         * intrinsic.texi: Document ISNAN.
527
528 2007-08-04  Paul Thomas  <pault@gcc.gnu.org>
529
530         PR fortran/31214
531         * symbol.c (get_unique_symtree): Moved from module.c.
532         * module.c (get_unique_symtree): Moved to symbol.c.
533         * decl.c (get_proc_name): Transfer the typespec from the local
534         symbol to the module symbol, in the case that an entry is also
535         a module procedure.  Ensure the local symbol is cleaned up by
536         pointing to it with a unique symtree.
537
538         * dump_parse_tree (gfc_show_code_node): Add EXEC_ASSIGN_CALL.
539
540 2008-08-04  Steven G. Kargl  <kargl@gcc.gnu.org>
541
542         PR fortran/32969
543         * iresolve.c (gfc_resolve_rrspacing): Convert argument(s) to
544         expected KIND.
545         (gfc_resolve_scale): Ditto.
546         (gfc_resolve_set_exponent): Ditto.
547         (gfc_resolve_spacing): Ditto.
548  
549         PR fortran/32968
550         * trans-intrinsic.c (gfc_conv_intrinsic_si_kind,
551         gfc_conv_intrinsic_sr_kind): Convert the argument(s) to the
552         expected KIND, and fold the result to the expected KIND.
553
554 2007-08-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
555
556         PR fortran/31202
557         * f95-lang.c (gfc_init_builtin_functions): Defin builtins for 
558         lround{f,,l} and llround{f,,l}.
559         * trans-intrinsic.c (build_fix_expr): Generate calls to the
560         {l,}round{f,,l} functions.
561
562 2007-08-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
563
564         PR libfortran/32954
565         * intrinsic.c (resolve_mask_arg):  New function.
566         (gfc_resolve_maxloc):  Use resolve_mask_arg for mask resolution.
567         (gfc_resolve_maxval):  Likewise.
568         (gfc_resolve_minloc):  Likewise.
569         (gfc_resolve_minval):  Likewise.
570         (gfc_resolve_pack):  Likewise.
571         (gfc_resolve_product):  Likewise.
572         (gfc_resolve_sum):  Likewise.
573         (gfc_resolve_unpack):  Likewise.
574
575 2007-08-01  Tobias Burnus  <burnus@net-b.de>
576
577         PR fortran/32936
578         * match.c (gfc_match_allocate): Better check that STAT is
579         a variable.
580
581         * check.c (gfc_check_allocated): Reorder checks to improve
582         error message.
583
584 2007-08-01  Nick Clifton  <nickc@redhat.com>
585
586         * arith.c: Change copyright header to refer to version 3 of the
587         GNU General Public License and to point readers at the COPYING3
588         file and the FSF's license web page.
589         * openmp.c, interface.c, intrinsic.c, trans-array.c, trans-expr.c,
590         symbol.c, iso-fortran-env.def, intrinsic.h, decl.c, trans-array.h,
591         matchexp.c, dump-parse-tree.c, trans-common.c, array.c,
592         Make-lang.in, trans-openmp.c, gfortran.h, error.c,
593         iso-c-binding.def, lang.opt, data.c, trans-const.c, trans-stmt.c,
594         expr.c, trans-const.h, trans-stmt.h, module.c, trans.c, scanner.c,
595         trans-types.c, trans.h, gfortranspec.c, trans-types.h,
596         lang-specs.h, io.c, bbt.c, resolve.c, f95-lang.c, st.c,
597         iresolve.c, match.c, trans-decl.c, trans-io.c, target-memory.c,
598         match.h, target-memory.h, parse.c, arith.h, check.c, dependency.c,
599         parse.h, types.def, convert.c, dependency.h, primary.c,
600         trans-intrinsic.c, options.c, misc.c, simplify.c: Likewise.
601
602 2007-08-01  Daniel Franke  <franke.daniel@gmail.com>
603
604         * trans-decl.c (generate_local_decl): Emit warning on unused parameter
605         on "-Wall -Wextra" or "-Wunused-parameter" but not on "-Wall", changed
606         messages that start with lower case to upper case.
607         * invoke.texi (-Wparameter-unused): Document differences between gcc
608         and gfortran regarding this option.
609
610 2007-08-01  Daniel Franke  <franke.daniel@gmail.com>
611
612         PR fortran/32945
613         * expr.c (check_specification_function): Skip check if no symtree 
614         is available.
615
616 2007-08-01  Paul Thomas  <pault@gcc.gnu.org>
617
618         PR fortran/31609
619         * resolve.c (resolve_entries): Entries declared to be module
620         procedures must point to the function namespace.
621
622 2007-07-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
623
624         PR fortran/32938
625         * trans-stmt.c (gfc_trans_return): Convert to correct type.
626
627 2007-07-31  Steven G. Kargl  <kargl@gcc.gnu.org>
628
629         PR fortran/32942
630         * trans-intrinsic.c (gfc_conv_intrinsic_exponent): Convert to correct
631         type.
632
633 2007-07-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
634
635         * invoke.texi: Document -fsign-zero flag.
636
637 2007-07-29  Paul Thomas  <pault@gcc.gnu.org>
638
639         PR fortran/31211
640         * trans-expr.c (gfc_conv_expr_reference): Add block for case of
641         scalar pointer functions so that NULL result is correctly
642         handled.
643
644         PR fortran/32682
645         * trans-array.c (gfc_trans_array_constructor): On detecting a
646         multi-dimensional parameter array, set the loop limits.
647
648 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
649
650         PR fortran/32906
651         * resolve.c (resolve_fl_parameter): Check for constant shape arrays,
652         adjusted error message.
653
654 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
655
656         * invoke.texi: Removed -w from option summary.
657
658 2007-07-29  Daniel Franke  <franke.daniel@gmail.com>
659
660         PR fortran/32879
661         * intrinsic.texi (IRAND, RAND, RANDOM_NUMBER): Document algorithm
662         used for random number generator.
663
664 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
665
666         * gfortran.h, interface.c, resolve.c, symbol.c: Fix comment
667         typos.
668         * intrinsic.texi, invoke.texi: Fix typos.
669
670 2007-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
671
672         PR fortran/31609
673         * resolve.c (generic_sym): Check for a same symbol and if so, return to
674         avoid infinite recursion.
675
676 2007-07-28  Daniel Franke  <franke.daniel@gmail.com>
677
678         PR fortran/31818
679         PR fortran/32876
680         PR fortran/32905
681         * gfortran.h (symbol_attribute): Added bits for pointer_comp, 
682         private_comp.
683         * parse.c (parse_derived): Set pointer_comp/private_comp bits if 
684         the derived type ultimately contains pointer components or private 
685         components.
686         * module.c (ab_attribute): New values AB_POINTER_COMP, AB_PRIVATE_COMP.
687         (attr_bits): Added names for new ab_attributes.
688         (mio_symbol_attribute): Save/restore new attribute bits in modules.
689         * match.c (gfc_match_namelist): Removed check for namelist objects
690         of assumed shape.
691         * resolve.c (resolve_fl_namelist): Added check for pointer or
692         private components in nested types. Added check for namelist objects
693         of assumed shape.
694
695 2007-07-28  Paul Thomas  <pault@gcc.gnu.org>
696
697         PR fortran/32880
698         * trans-expr.c (gfc_trans_scalar_assign): Revert to fixed order
699         for lse and rse pre expressions, for derived types with
700         allocatable components.  Instead, assign the lhs to a temporary
701         and deallocate after the assignment.
702
703 2007-07-28  Janne Blomqvist  <jb@gcc.gnu.org>
704
705         PR fortran/32909
706         * trans-stmt.c (gfc_trans_character_select): Replace occurrences
707         of gfc_c_int_type_node with integer_type_node.
708         * trans-decl.c (gfc_build_intrinsic_function_decls): Likewise.
709         (gfc_build_builtin_function_decls): Likewise.
710         (gfc_generate_function_code): Likewise.
711         * trans-io.c (gfc_build_io_library_fndecls): Likewise.
712
713 2007-07-27  Janne Blomqvist  <jb@gcc.gnu.org>
714
715         * trans-decl.c (gfc_build_builtin_function_decls): Use existing
716         gfc_array_index_type rather than creating another typenode for
717         gfc_index_integer_kind.
718
719 2007-07-27  Janne Blomqvist  <jb@gcc.gnu.org>
720
721         * trans-io.c (gfc_build_io_library_fndecls): Change to use
722         gfc_array_index_type for array descriptor triplets instead of
723         gfc_int4_type_node.
724
725 2007-07-26  Steven G. Kargl  <kargl@gcc.gnu.org>
726
727         PR fortran/32899
728         * resolve.c (resolve_operator): Add INTRINSIC_EQ_OS comparison.
729
730 2007-07-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
731             Daniel Franke  <franke.daniel@gmail.com>
732
733         PR fortran/32760
734         * primary.c (match_variable): Do not call gfc_add_flavor if symbol has
735         attribute of ACCESS_PUBLIC or ACCESS_PRIVATE already marked.
736
737 2007-07-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
738
739         PR fortran/32035
740         * trans-stmt.c (gfc_trans_character_select): Replace the
741         mechanism with labels by a SWITCH_EXPR.
742         * trans-decl.c (gfc_build_builtin_function_decls): Change
743         return type for select_string.
744
745 2007-07-27  Paul Thomas  <pault@gcc.gnu.org>
746
747         PR fortran/32903
748         * trans-decl.c (gfc_trans_deferred_vars): Set intent(out)
749         derived types as referenced, if they have the the default
750         initializer set.
751
752 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
753
754         * gfortran.h (generate_isocbinding_symbol): Constify.
755         * symbol.c (gen_special_c_interop_ptr, gen_cptr_param,
756         generate_isocbinding_symbol): Likewise.
757
758 2007-07-24  Paul Thomas  <pault@gcc.gnu.org>
759
760         PR fortran/31205
761         PR fortran/32842
762         * trans-expr.c (gfc_conv_function_call): Remove the default
763         initialization of intent(out) derived types.
764         * symbol.c (gfc_lval_expr_from_sym): New function.
765         * matchexp.c (gfc_get_parentheses): Return argument, if it is
766         character and posseses a ref.
767         * gfortran.h : Add prototype for gfc_lval_expr_from_sym.
768         * resolve.c (has_default_initializer): Move higher up in file.
769         (resolve_code): On detecting an interface assignment, check
770         if the rhs and the lhs are the same symbol.  If this is so,
771         enclose the rhs in parenetheses to generate a temporary and
772         prevent any possible aliasing.
773         (apply_default_init): Remove code making the lval and call
774         gfc_lval_expr_from_sym instead.
775         (resolve_operator): Give a parentheses expression a type-
776         spec if it has no type.
777         * trans-decl.c (gfc_trans_deferred_vars): Apply the a default
778         initializer, if any, to an intent(out) derived type, using
779         gfc_lval_expr_from_sym and gfc_trans_assignment.  Check if
780         the dummy is present.
781
782 2007-07-24  Daniel Franke  <franke.daniel@gmail.com>
783
784         PR fortran/32867
785         * expr.c (check_init_expr): Simplify matched functions.
786
787 2007-07-24  Daniel Franke  <franke.daniel@gmail.com>
788
789         PR fortran/32778
790         * intrinsic.c (add_sym): Do not exclude any symbols, even if not part
791         of the selected standard.
792         (make generic): Likewise.
793         (make alias): Likewise, set standard the alias belongs to.
794         (add_subroutines): Call make_noreturn unconditionally.
795         (check_intrinsic_standard): Change return value to try.
796         (gfc_intrinsic_func_interface): Check return value of above function.
797         (gfc_intrinsic_sub_interface): Likewise.
798
799 2007-07-24  Thomas Koenig  <tkoenig@gcc.gnu.org>
800
801         PR fortran/30814
802         * trans-decl.c (generate_function_code):  Add argument
803         for flag_bounds_check to the array for set_options.
804         * invoke.texi (-fbounds-check): Document new libarary run-time
805         behaviour.
806
807 2007-07-23  Daniel Franke  <franke.daniel@gmail.com>
808
809         PR fortran/25104
810         PR fortran/31639
811         * expr.c (check_transformational): Reject valid transformational
812         intrinsics to avoid ICE.
813         (check_inquiry): Report error for assumed character lengths for
814         all supported standards.
815         (check_init_expr): Whitespace fix.
816
817 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
818
819         PR fortran/32797
820         PR fortran/32800
821         * decl.c (verify_bind_c_sym): Use the result symbol for functions
822         with a result clause.  Warn if implicitly typed.  Verify the type
823         and rank of the SHAPE argument, if given.
824         * resolve.c (gfc_iso_c_sub_interface): Use gfc_procedure_use to
825         check the actual args against the formal, sorting them if
826         necessary.
827         * symbol.c (gen_shape_param): Initialize type of SHAPE param to
828         BT_VOID.
829
830 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
831
832         PR fortran/32732
833         * trans-decl.c (generate_local_decl): Convert the TREE_TYPE for by
834         value character dummy args of BIND(C) procedures.
835         * trans-expr.c (gfc_conv_variable): Do not build address
836         expression for BT_CHARACTER dummy args.
837
838 2007-07-23  Christopher D. Rickett  <crickett@lanl.gov>
839             Tobias Burnus  <burnus@net-b.de>
840
841         PR fortran/32600
842         * trans-expr.c (gfc_conv_function_call): Handle c_funloc.
843         * trans-types.c: Add pfunc_type_node.
844         (gfc_init_types,gfc_typenode_for_spec): Use it.
845         * resolve.c (gfc_iso_c_func_interface): Fix whitespace and
846         improve error message.
847
848 2007-07-22  Daniel Franke  <franke.daniel@gmail.com>
849
850         PR fortran/32710
851         * parse.c (gfc_fixup_sibling_symbols): No replacement of symbols if
852         the current is a namelist.
853
854 2007-07-22  Daniel Franke  <franke.daniel@gmail.com>
855
856         PR fortran/29962
857         PR fortran/31253
858         PR fortran/31265
859         PR fortran/31639
860         * gfortran.h (gfc_intrinsic_sym): Changed members elemental, pure,
861         generic, specific, actual_ok, noreturn into bits of a bitfield, 
862         added bits for inquiry, transformational, conversion.
863         * check.c (non_init_transformational): Removed, removed all callers.
864         * intrinsic.c (enum class): New.
865         (add_sym*): Replaced argument elemetal by enum class. Changed all
866         callers.
867         (add_functions): Assign appropriate classes to intrinsic functions.
868         (add_subroutines): Assign appropriate classes to intrinsic subroutines.
869         (add_conv): Set conversion attribute.
870         (gfc_init_expr_extensions): Removed, removed all callers.
871         (gfc_intrinsic_func_interface): Reimplemented check for non-standard
872         initializatione expressions.
873         * expr.c (check_specification_function): New.
874         (gfc_is_constant_expr): Added check for specification functions.
875         (check_init_expr_arguments): New.
876         (check_inquiry): Changed return value to MATCH, added checks for
877         inquiry functions defined by F2003.
878         (check_transformational): New.
879         (check_null): New.
880         (check_elemental): New.
881         (check_conversion): New.
882         (check_init_expr): Call new check functions, add more specific error
883         messages.
884
885 2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>
886
887         PR fortran/32627
888         * resolve.c (set_name_and_label): Set kind number for character
889         version of c_f_pointer.
890         (gfc_iso_c_sub_interface): Set the kind of the SHAPE formal arg to
891         that of the actual SHAPE arg.
892         * symbol.c (gen_shape_param): Initialize kind for SHAPE arg.
893
894 2007-07-21  Christopher D. Rickett  <crickett@lanl.gov>
895
896         PR fortran/32801
897         * symbol.c (generate_isocbinding_symbol): Remove unnecessary
898         conditional.
899
900         PR fortran/32804
901         * resolve.c (gfc_iso_c_func_interface): Reject assumed-shape and
902         deferred-shape arrays as args to C_LOC.  Fix bug in testing
903         character args to C_LOC.
904
905 2007-07-21  Lee Millward  <lee.millward@gmail.com>
906
907         PR fortran/32823
908         * trans-intrinsic.c (gfc_conv_intrinsic_int): Evaluate all
909         arguments passed, not just the first one. Adjust code to 
910         refer to "args[0]" instead of "arg" as a result.
911         
912 2007-07-19  Christopher D. Rickett  <crickett@lanl.gov>
913
914         PR fortran/32600
915         * trans-expr.c (gfc_conv_function_call): Inline C_LOC.
916
917 2007-07-18  Christopher D. Rickett  <crickett@lanl.gov>
918
919         PR fortran/32801
920         * symbol.c (generate_isocbinding_symbol): Fix bug where
921         ISOCBINDING_FUNPTR was generated for C_LOC instead of the needed
922         ISOCBINDING_PTR.
923
924 2007-07-17  Janus Weil  <jaydub66@gmail.com> 
925
926         PR fortran/32535
927         * resolve.c (resolve_fl_namelist): Check for namelist private 
928         components in contained subprograms.
929
930 2007-07-17  Paul Thomas  <pault@gcc.gnu.org>
931
932         PR fortran/31320
933         PR fortran/32665
934         * trans-expr.c (gfc_trans_subcomponent_assign): Ensure that
935         renormalization unity base is done independently of existing
936         lbound value.
937         (gfc_trans_scalar_assign): If rhs is not a variable, put
938         lse->pre after rse->pre to ensure that de-allocation of lhs
939         occurs after evaluation of rhs.
940
941 2007-07-16  Lee Millward  <lee.millward@gmail.com>
942
943         PR fortran/32222
944         PR fortran/32238
945         PR fortran/32242        
946         * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust
947         to operate on a stack allocated array for the intrinsic arguments
948         instead of creating a TREE_LIST. Add two new parameters for the
949         array and the number of elements. Update all callers to allocate
950         an array of the correct length to pass in. Update comment.
951         (gfc_intrinsic_argument_list_length): New function.
952         (gfc_conv_intrinsic_conversion): Call it.
953         (gfc_conv_intrinsic_mnimax): Likewise.
954         (gfc_conv_intrinsic_merge): Likewise.
955         (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR
956         constructors.
957         (gfc_conv_intrinsic_cmplx): Likewise.
958         (gfc_conv_intrinsic_ctime): Likewise.
959         (gfc_covn_intrinsic_fdate): Likewise.
960         (gfc_conv_intrinsic_ttynam): Likewise.
961         (gfc_conv_intrinsic_ishftc): Likewise.
962         (gfc_conv_intrinsic_index): Likewise.
963         (gfc_conv_intrinsic_scan): Likewise.
964         (gfc_conv_intrinsic_verify): Likewise.
965         (gfc_conv_intrinsic_trim): Likewise.
966         (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors.
967         (gfc_conv_intrinsic_exponent): Likewise.
968         (gfc_conv_intrinsic_bound): Likewise.
969         (gfc_conv_intrinsic_abs): Likewise.
970         (gfc_conv_intrinsic_mod): Likewise.
971         (gfc_conv_intrinsic_sign): Likewise.
972         (gfc_conv_intrinsic_len): Likewise.
973         (gfc_conv_intrinsic_adjust): Likewise.
974         (gfc_conv_intrinsic_si_kind): Likewise. 
975         
976 2007-07-16  Janne Blomqvist  <jb@gcc.gnu.org>
977
978         PR fortran/32748
979         * trans-decl.c (gfc_build_builtin_function_decls): Remove
980         DECL_IS_MALLOC attribute from internal_realloc, thus reverting
981         part of my 2007-07-03 patch.
982
983 2007-07-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
984             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
985
986         PR fortran/32611
987         * gfortran.h (gfc_option_t): Add flag_sign_zero field.
988         * lang.opt (-fsign-zero): New option.
989         * trans.h: Rename gfor_fndecl_set_std into gfor_fndecl_set_options.
990         * trans-decl.c (gfc_build_builtin_function_decls): Build the function
991         declaration to pass an array containing the options to be used by the
992         runtime library. (gfc_generate_function_code): Build an array that
993         contains option values to be passed to the runtime library and the call
994         to the function. 
995         * options.c (gfc_init_options): Initialize the flag_sign_zero field.
996         (gfc_handle_option): Handle the -fsign-zero option.
997
998 2007-07-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
999
1000         PR fortran/32036
1001         * trans-array.c (gfc_conv_array_ref): Only evaluate index once.
1002
1003 2007-07-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1004
1005         PR fortran/32357
1006         * iresolve.c (gfc_resolve_mvbits): Convert FROMPOS, LEN and TOPOS
1007         to C int.
1008
1009 2007-07-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1010
1011         PR libfortran/32731
1012         * iresolve.c(gfc_resolve_pack):  A scalar mask has
1013         to be kind=4, an array mask with kind<4 is converted
1014         to gfc_default_logical_kind automatically.
1015         (gfc_resolve_unpack):  Convert mask to gfc_default_lotical_kind
1016         if it has a kind<4.
1017
1018 2007-07-14  Paul Thomas  <pault@gcc.gnu.org>
1019
1020         PR fortran/32724
1021         * parse.c (parse_spec): Emit error on unexpected statement
1022         function.
1023
1024 2007-07-13  Daniel Franke  <franke.daniel@gmail.com>
1025
1026         * invoke.texi: Unified upper- and lower-case in menus.
1027         (-w, -W): Removed, documented by gcc.
1028         * intrinsic.texi: Unified Class-section entries, added
1029         subroutine/function warning where appropiate.
1030
1031 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
1032
1033         PR fortran/31639
1034         * decl.c (gfc_match_suffix): Removed surplus general error that hides
1035         a more specific message.
1036         * resolve.c (resolve_fl_variable): Reject illegal initializiers only
1037         if not already done.
1038         (resolve_fl_procedure): Added check for initializers of functions.
1039
1040 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
1041
1042         PR fortran/32704
1043         * invoke.texi (-static-libgfortran): Document new option.
1044
1045 2007-07-12  Paul Thomas  <pault@gcc.gnu.org>
1046
1047         PR fortran/32634
1048         PR fortran/32727
1049         * module.c (write_generic): Restore patch of 2007-07-10 and use
1050         symbol name if there are no use names. 
1051
1052 2007-07-12  Christopher D. Rickett  <crickett@lanl.gov>
1053
1054         PR fortran/32599
1055         * decl.c (verify_c_interop_param): Require character string dummy
1056         args to BIND(C) procedures to have length 1.
1057         * resolve.c (resolve_fl_procedure): Modify parameter checking for
1058         BIND(C) procedures.
1059
1060         PR fortran/32601
1061         * resolve.c (gfc_iso_c_func_interface): Verify that a valid
1062         expression is given as an argument to C_LOC and C_ASSOCIATED.
1063         * trans-io.c (transfer_expr): Add argument for code block.  Add
1064         standards check to determine if an error message should be
1065         reported for printing C_PTR or C_FUNPTR.
1066         (transfer_array_component): Update arguments to transfer_expr.
1067         (gfc_trans_transfer): Ditto.
1068
1069         * symbol.c (gen_cptr_param): Fix whitespace.
1070
1071 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
1072
1073         PR fortran/32550
1074         * trans.h (GFC_POINTER_TYPE_P): Define.
1075         * trans-types.c (gfc_sym_type): Set it for types on attr->sym.pointer.
1076         * trans-openmp.c (gfc_omp_privatize_by_reference): Return false
1077         if GFC_POINTER_TYPE_P is set on the type.
1078
1079 2007-07-12  Richard Guenther  <rguenther@suse.de>
1080
1081         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Convert
1082         arguments to gfc_charlen_type_node.
1083         * trans-io.c (gfc_convert_array_to_string): Convert type
1084         size to gfc_array_index_type.
1085
1086 2007-07-12  Daniel Franke  <franke.daniel@gmail.com>
1087
1088         PR fortran/32634
1089         PR fortran/32727
1090         * module.c: Reverted Paul's patch from 2007-07-10.
1091
1092 2007-07-11  Richard Guenther  <rguenther@suse.de>
1093
1094         * trans-array.c (gfc_conv_array_parameter): Use correct
1095         types for comparison.
1096         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
1097         correct types for POINTER_PLUS_EXPR.
1098         * trans-stmt.c (gfc_trans_forall_loop): Use correct type
1099         for integer one constant.
1100
1101 2007-07-10  Paul Thomas  <pault@gcc.gnu.org>
1102
1103         PR fortran/32157
1104         * resolve.c (is_external_proc): New function.  Adds test that
1105         the symbol is not an intrinsic procedure.
1106         * (resolve_function, resolve_call): Replace logical statements
1107         with call to is_external_proc.
1108
1109         PR fortran/32689
1110         * simplify.c (gfc_simplify_transfer): If mold has rank, the
1111         result is an array.
1112
1113         PR fortran/32634
1114         * module.c (write_generic): Write the local name of the
1115         interface. 
1116
1117 2007-07-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1118
1119         PR fortran/29459
1120         * trans-array.c (gfc_trans_array_constructor): Mark offset field
1121         with TREE_NO_WARNING.
1122         * trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound,
1123         stride and size variables with TREE_NO_WARNING.
1124
1125 2007-07-09  Steven G. Kargl  <kargl@gcc.gnu.org>
1126
1127         * trans-decl.c (set_tree_decl_type_code): Remove function.
1128         (generate_local_decl): Remove reference to set_tree_decl_type_code.
1129
1130 2007-07-09  Daniel Franke  <franke.daniel@gmail.com>
1131
1132         PR fortran/31129
1133         * trans-decl.c (generate_local_decl) Emit a warning if an unused
1134         parameter is found.
1135
1136 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
1137
1138         PR fortran/29876
1139         * module.c (gfc_match_use): Do not set an non-existant 
1140         intrinsic operator if a user-defined operator is found.
1141
1142 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
1143
1144         PR fortran/24784
1145         PR fortran/28004
1146         * trans-decl.c (generate_local_decl): Adjusted warning on unused 
1147         dummy arguments, tell middle-end not to emit additional warnings.
1148
1149 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
1150             Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
1151
1152         PR fortran/17711
1153         * gfortran.h (gfc_intrinsic_op): Added INTRINSIC_EQ_OS,
1154         INTRINSIC_NE_OS, INTRINSIC_GT_OS, INTRINSIC_GE_OS, 
1155         INTRINSIC_LT_OS and INTRINSIC_LE_OS.
1156         * arith.c (eval_intrinsic, eval_type_intrinsic0): Likewise.
1157         * arith.h (gfc_eq, gfc_ne, gfc_gt, gfc_ge, gfc_lt, gfc_le):
1158         Added gfc_intrinsic_op as third argument type.
1159         * dump-parse-tree.c (gfc_show_expr): Account for new enum values.
1160         * expr.c (simplify_intrinsic_op, check_intrinsic_op): Likewise.
1161         * interface.c (check_operator_interface): Likewise.
1162         (gfc_check_interfaces): Added cross-checks for FORTRAN 77 and 
1163         Fortran 90 style operators using new enum values.
1164         (gfc_extend_expr): Likewise.
1165         (gfc_add_interface): Likewise.
1166         * match.c (intrinsic_operators): Distinguish FORTRAN 77 style
1167         operators from Fortran 90 style operators using new enum values.
1168         * matchexp.c (match_level_4): Account for new enum values.
1169         * module.c (mio_expr): Likewise.
1170         * resolve.c (resolve_operator): Deal with new enum values, fix
1171         inconsistent error messages.
1172         * trans-expr.c (gfc_conv_expr_op): Account for new enum values.
1173
1174 2007-07-08  Tobias Burnus  <burnus@net-b.de>
1175
1176         PR fortran/32669
1177         * interface.c (get_expr_storage_size): Properly obtain lower bound.
1178         (compare_actual_formal): Add space before parenthesis.
1179
1180 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
1181
1182         PR fortran/25094
1183         * resolve.c (resolve_fl_procedure): Added check for PRIVATE types 
1184         in PUBLIC interfaces.
1185
1186 2007-07-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1187
1188         PR fortran/32644
1189         * decl.c (match_attr_spec): Don't return MATCH_ERROR if comma found and
1190         gfc_match_bind_c does not return MATCH_YES.
1191
1192 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
1193
1194         * decl.c, gfortran.h, interface.c, module.c, resolve.c,
1195         trans-array.c, trans-decl.c: Fix comment typos.  Follow
1196         spelling conventions.
1197         * intrinsic.texi: Fix typos.  Follow spelling conventions.
1198
1199 2007-05-06  Daniel Franke  <franke.daniel@gmail.com>
1200
1201         PR fortran/32633
1202         * symbol.c (save_status): New.
1203         * gfortran.h (save_status): Added external declaration.
1204         (check_conflict): Check for conflicting explicite SAVE statements
1205         only.
1206         (gen_special_c_interop_ptr): Use SAVE_EXPLICIT constant.
1207         * module.c (ab_attribute, attr_bits): Removed enumerator value 
1208         AB_SAVE for save attribute.
1209         (mio_symbol_attribute): Import/export the full SAVE status, 
1210         removed usage of AB_SAVE.
1211         * dump-parse-tree.c (gfc_show_attr): Dump full SAVE status.
1212         * decl.c (add_init_expr_to_sym): Set SAVE_IMPLICIT only if not
1213         already explicit.
1214
1215 2007-07-05  Daniel Franke  <franke.daniel@gmail.com>
1216             Tobias Burnus  <burnus@net-b.de>
1217
1218         PR fortran/32359
1219         * gfortran.h (symbol_attribute): Change save attribute into an enum.
1220         * decl.c (add_init_expr_to_sym): Set it to SAVE_IMPLICIT.
1221         * symbol.c (gfc_add_save): Check for SAVE_EXPLICIT.
1222         * resolve.c (resolve_fl_variable): Check for SAVE_EXPLICIT.
1223         (resolve_symbol): Allow OMP threadprivate with
1224         initialization SAVEd and save_all variable.
1225         * trans-decl.c (gfc_finish_var_decl): Remove obsolete sym->value check.
1226
1227 2007-07-05  Paul Thomas  <pault@gcc.gnu.org>
1228
1229         PR fortran/32526
1230         * match.c (gfc_match_call): Check, in all cases, that a symbol
1231         is neither generic nor a subroutine before trying to add it as
1232         a subroutine.
1233
1234         PR fortran/32613
1235         * match.c (gfc_match_do): Reset the implied_index attribute.
1236
1237 2007-07-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1238
1239         PR fortran/31198
1240         * trans-intrinsic.c (trans-intrinsic.c): Handle optional
1241         arguments correctly for MIN and MAX intrinsics.
1242
1243 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1244
1245         PR fortran/32545
1246         * io.c (check_format): Always call gfc_error for errors.
1247         (check_format_string): Change type of this function to try and
1248         return the result of check_format.
1249         (check_io_constraints): Return MATCH_ERROR if check_format_string
1250         returns FAILURE.
1251
1252 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1253
1254         PR fortran/32612
1255         * decl.c (get_proc_name): Include attr->mod_proc in check for error.
1256
1257 2007-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1258
1259         PR fortran/32432
1260         * gfortran.h: Change type of gfc_assign_data_value from void to try.
1261         * data.c (gfc_assign_data_value): Return FAILURE if error found.
1262         * resolve.c (check_data_variable): If gfc_assign_data_value returns
1263         failure, break out of loop and return failure.
1264
1265 2007-07-03  Christopher D. Rickett  <crickett@lanl.gov>
1266
1267         PR fortran/32579
1268         * symbol.c (gen_cptr_param): Generate C_PTR and C_FUNPTR if necessary.
1269         (build_formal_args): Pass intrinsic module symbol id to
1270         gen_cptr_param.
1271
1272 2007-07-03  Tobias Burnus  <burnus@net-b.de>
1273
1274         PR fortran/25062
1275         * resolve.c (resolve_common_blocks): New check function.
1276         (resolve_types): Use it.
1277
1278 2007-07-03  Tobias Burnus  <burnus@net-b.de>
1279
1280         PR fortran/30940
1281         * interface.c (get_sym_storage_size): New function.
1282         (get_sym_storage_size): New function.
1283         (compare_actual_formal): Enhance sequence association
1284         support and improve checking.
1285
1286 2007-07-03  Janne Blomqvist  <jb@gcc.gnu.org>
1287
1288         * trans-decl.c (gfc_build_builtin_function_decls): Mark
1289         internal_realloc as a malloc function.
1290
1291 2007-07-03  Tobias Burnus  <burnus@net-b.de>
1292
1293         PR fortran/20888
1294         * resolve.c (resolve_operator): Check for NULL as operand.
1295
1296 2007-07-02  Tobias Burnus  <burnus@net-b.de>
1297
1298         * gfortran.texi (Fortran 2003): Add ISO Bind C.
1299         * intrinsic.texi (C_ASSOCIATED,C_F_POINTER,C_F_PROCPOINTER,
1300         C_FUNLOC,C_LOC): Document new ISO Bind C intrinsics.
1301
1302 2007-07-01  Christopher D. Rickett  <crickett@lanl.gov>
1303
1304         * interface.c (gfc_compare_derived_types): Special case for comparing
1305         derived types across namespaces.
1306         (gfc_compare_types): Deal with BT_VOID.
1307         (compare_parameter): Use BT_VOID to accept ISO C Binding pointers.
1308         * trans-expr.c (gfc_conv_function_call): Remove setting parm_kind
1309         to SCALAR
1310         (gfc_conv_initializer): Deal with ISO C Binding NULL_PTR and 
1311         NULL_FUNPTR.
1312         (gfc_conv_expr): Convert expressions for ISO C Binding derived types.
1313         * symbol.c (gfc_set_default_type): BIND(C) variables should not be
1314         Implicitly declared.
1315         (check_conflict): Add BIND(C) and check for conflicts.
1316         (gfc_add_explicit_interface): Whitespace.       
1317         (gfc_add_is_bind_c): New function.  
1318         (gfc_copy_attr): Use it.
1319         (gfc_new_symbol): Initialize ISO C Binding objects.
1320         (get_iso_c_binding_dt):  New function.
1321         (verify_bind_c_derived_type): Ditto.
1322         (gen_special_c_interop_ptr): Ditto.
1323         (add_formal_arg): Ditto.
1324         (gen_cptr_param): Ditto.
1325         (gen_fptr_param): Ditto.
1326         (gen_shape_param): Ditto.
1327         (add_proc_interface): Ditto.
1328         (build_formal_args): Ditto.
1329         (generate_isocbinding_symbol):  Ditto.
1330         (get_iso_c_sym):  Ditto.
1331         * decl.c (num_idents_on_line, has_name_equals): New variables.
1332         (verify_c_interop_param): New function.
1333         (build_sym): Finish binding labels and deal with COMMON blocks.
1334         (add_init_expr_to_sym): Check if the initialized expression is
1335         an iso_c_binding named constants
1336         (variable_decl): Set ISO C Binding type_spec components.
1337         (gfc_match_kind_spec): Check match for C interoperable kind.
1338         (match_char_spec): Fix comment. Chnage gfc_match_small_int
1339         to gfc_match_small_int_expr.  Check for C interoperable kind.
1340         (match_type_spec): Clear the current binding label.
1341         (match_attr_spec): Add DECL_IS_BIND_C.  If BIND(C) is found, use it
1342         to set attributes.
1343         (set_binding_label): New function.
1344         (set_com_block_bind_c): Ditto.
1345         (verify_c_interop): Ditto.
1346         (verify_com_block_vars_c_interop): Ditto.
1347         (verify_bind_c_sym): Ditto.
1348         (set_verify_bind_c_sym): Ditto.
1349         (set_verify_bind_c_com_block): Ditto.
1350         (get_bind_c_idents): Ditto.
1351         (gfc_match_bind_c_stmt): Ditto.
1352         (gfc_match_data_decl): Use num_idents_on_line.
1353         (match_result): Deal with right paren in BIND(C).
1354         (gfc_match_suffix): New function.
1355         (gfc_match_function_decl): Use it.  Code is re-arranged to deal with
1356         ISO C Binding result clauses.
1357         (gfc_match_subroutine):  Deal with BIND(C).
1358         (gfc_match_bind_c): New function.
1359         (gfc_get_type_attr_spec): New function.  Code is re-arranged in and
1360         taken from gfc_match_derived_decl.
1361         (gfc_match_derived_decl): Add check for BIND(C).
1362         * trans-common.c: Forward declare gfc_get_common.
1363         (gfc_sym_mangled_common_id): Change arg from 'const char *name' to
1364         'gfc_common_head *com'.  Check for ISO C Binding of the common block.
1365         (build_common_decl): 'com->name' to 'com in SET_DECL_ASSEMBLER_NAME.
1366         * gfortran.h: Add GFC_MAX_BINDING_LABEL_LEN
1367         (bt): Add BT_VOID
1368         (sym_flavor): Add FL_VOID.
1369         (iso_fortran_env_symbol, iso_c_binding_symbol, intmod_id): New enum
1370         (CInteropKind_t): New struct.
1371         (c_interop_kinds_table): Use it.  Declare an array of structs.
1372         (symbol_attribute): Add is_bind_c, is_c_interop, and is_iso_c
1373         bitfields.
1374         (gfc_typespec): Add is_c_interop; is_iso_c, and f90_type members.
1375         (gfc_symbol): Add from_intmod, intmod_sym_id, binding_label, and
1376         common_block members.
1377         (gfc_common_head): Add binding_label and is_bind_c members.
1378         (gfc_gsymbol): Add sym_name, mod_name, and binding_label members.
1379         Add prototypes for get_c_kind, gfc_validate_c_kind, 
1380         gfc_check_any_c_kind, gfc_add_is_bind_c, gfc_add_value,
1381         verify_c_interop, verify_c_interop_param, verify_bind_c_sym,
1382         verify_bind_c_derived_type, verify_com_block_vars_c_interop,
1383         generate_isocbinding_symbol, get_iso_c_sym, gfc_iso_c_sub_interface
1384         * iso-c-binding.def: New file. This file contains the definitions
1385         of the types provided by the Fortran 2003 ISO_C_BINDING intrinsic
1386         module.
1387         * trans-const.c (gfc_conv_constant_to_tree): Deal with C_NULL_PTR
1388          or C_NULL_FUNPTR expressions.
1389         * expr.c (gfc_copy_expr): Add BT_VOID case.  For BT_CHARACTER, the
1390         ISO C Binding requires a minimum string length of 1 for '\0'.  
1391         * module.c (intmod_sym): New struct.
1392         (pointer_info): Add binding_label member.
1393         (write_atom): Set len to 0 for NULL pointers. Check for NULL p and *p.
1394         (ab_attribute): Add AB_IS_BIND_C, AB_IS_C_INTEROP and AB_IS_ISO_C.
1395         (attr_bits): Add "IS_BIND_C", "IS_C_INTEROP", and "IS_ISO_C".
1396         (mio_symbol_attribute): Deal with ISO C Binding attributes.
1397         (bt_types): Add "VOID".
1398         (mio_typespec): Deal with ISO C Binding components.
1399         (mio_namespace_ref): Add intmod variable. 
1400         (mio_symbol): Check for symbols from an intrinsic module.
1401         (load_commons): Check for BIND(C) common block.
1402         (read_module): Read binding_label and use it.
1403         (write_common): Add label.  Write BIND(C) info.
1404         (write_blank_common): Blank commons are not BIND(C).  Explicitly
1405         set is_bind_c=0.
1406         (write_symbol): Deal with binding_label.
1407         (sort_iso_c_rename_list): New function.
1408         (import_iso_c_binding_module): Ditto.
1409         (create_int_parameter): Add to args.
1410         (use_iso_fortran_env_module): Adjust to deal with iso_c_binding
1411         intrinsic module.
1412         * trans-types.c (c_interop_kinds_table): new array of structs. 
1413         (gfc_validate_c_kind): New function.
1414         (gfc_check_any_c_kind): Ditto.
1415         (get_real_kind_from_node): Ditto.
1416         (get_int_kind_from_node): Ditto.
1417         (get_int_kind_from_width): Ditto.
1418         (get_int_kind_from_minimal_width): Ditto.
1419         (init_c_interop_kinds): Ditto.
1420         (gfc_init_kinds): call init_c_interop_kinds.
1421         (gfc_typenode_for_spec): Adjust for BT_VOID and ISO C Binding pointers.
1422         Adjust handling of BT_DERIVED.
1423         (gfc_sym_type): Whitespace.
1424         (gfc_get_derived_type):  Account for iso_c_binding derived types
1425         * resolve.c (is_scalar_expr_ptr): New function.
1426         (gfc_iso_c_func_interface): Ditto.
1427         (resolve_function): Use gfc_iso_c_func_interface. 
1428         (set_name_and_label): New function.
1429         (gfc_iso_c_sub_interface): Ditto.
1430         (resolve_specific_s0): Use gfc_iso_c_sub_interface.
1431         (resolve_bind_c_comms): New function.
1432         (resolve_bind_c_derived_types): Ditto.
1433         (gfc_verify_binding_labels): Ditto.
1434         (resolve_fl_procedure): Check for ISO C interoperability.
1435         (resolve_symbol): Check C interoperability.
1436         (resolve_types): Walk the namespace.  Check COMMON blocks.
1437         * trans-decl.c (gfc_sym_mangled_identifier):  Prevent the mangling
1438         of identifiers that have an assigned binding label.
1439         (gfc_sym_mangled_function_id): Use the binding label rather than
1440         the mangled name.
1441         (gfc_finish_var_decl): Put variables that are BIND(C) into a common
1442         segment of the object file, because this is what C would do.
1443         (gfc_create_module_variable): Conver to proper types
1444         (set_tree_decl_type_code): New function.
1445         (generate_local_decl): Check dummy variables and derived types for
1446         ISO C Binding attributes.
1447         * match.c (gfc_match_small_int_expr): New function.
1448         (gfc_match_name_C): Ditto.
1449         (match_common_name): Deal with ISO C Binding in COMMON blocks
1450         * trans-io.c (transfer_expr):  Deal with C_NULL_PTR or C_NULL_FUNPTR
1451         expressions
1452         * match.h: Add prototypes for gfc_match_small_int_expr,
1453         gfc_match_name_C, match_common_name, set_com_block_bind_c,
1454         set_binding_label, set_verify_bind_c_sym,
1455         set_verify_bind_c_com_block, get_bind_c_idents,
1456         gfc_match_bind_c_stmt, gfc_match_suffix, gfc_match_bind_c,
1457         gfc_get_type_attr_spec
1458         * parse.c (decode_statement): Use gfc_match_bind_c_stmt
1459         (parse_derived): Init *derived_sym = NULL, and gfc_current_block
1460         later for valiadation.
1461         * primary.c (got_delim): Set ISO C Binding components of ts.
1462         (match_logical_constant): Ditto.
1463         (match_complex_constant): Ditto.
1464         (match_complex_constant): Ditto.
1465         (gfc_match_rvalue): Check for existence of at least one arg for
1466         C_LOC, C_FUNLOC, and C_ASSOCIATED.
1467         * misc.c (gfc_clear_ts): Clear ISO C Bindoing components in ts.
1468         (get_c_kind): New function.
1469
1470 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
1471
1472         PR fortran/32239
1473         * trans-expr.c (gfc_conv_power_op): Use builtin_powi for
1474         real**int4 powers.
1475         * f95-lang.c (gfc_init_builtin_functions): Add builtin_powi to the
1476         builtins table.
1477
1478 2007-07-01  Janne Blomqvist  <jb@gcc.gnu.org>
1479
1480         * trans.h: Remove decls for 64-bit allocation functions.
1481         * trans-array.c (gfc_grow_array): Always pick the standard realloc
1482         function decl.
1483         (gfc_array_allocate): Likewise.
1484         * trans-decl.c: Remove trees for 64-bit allocation functions.
1485         (gfc_build_builtin_function_decls): Don't build fndecls for 64-bit
1486         allocations functions, use index_int_type for normal allocation
1487         functions.
1488
1489 2007-06-30  Daniel Franke  <franke.daniel@gmail.com>
1490
1491         PR fortran/20373
1492         * intrinsic.c (add_functions): Additional function types.
1493         (gfc_convert_type_warn): Remove intrinsic-flag from
1494         conversion functions.
1495         * resolve.c (resolve_symbol): Added type checks to 
1496         explicitly defined intrinsics.
1497
1498 2007-06-30  Tobias Burnus  <burnus@net-b.de>
1499
1500         PR fortran/32555
1501         * io.c (check_format): Allow zero to precede the
1502         P edit descriptor.
1503
1504 2007-06-30  Paul Thomas  <pault@gcc.gnu.org>
1505
1506         PR fortran/32472
1507         * simplify.c (gfc_simplify_repeat): Add handling of character
1508         literal for first argument.
1509
1510 2007-06-29  Daniel Franke  <franke.daniel@gmail.com>
1511
1512         * resolve.c (resolve_operator): Added check whether a user
1513         defined operator is available.
1514
1515 2007-06-29  Daniel Franke <franke.daniel@gmail.com>
1516
1517         * openmp.c (resolve_omp_clauses): Adjust error message to
1518         better reflect the actual requirement.
1519
1520 2007-06-29  Tobias Burnus  <burnus@net-b.de>
1521
1522         PR fortran/32483
1523         * io.c (format_lex): Fix FMT_ZERO.
1524         (check_format,check_format_string,gfc_match_format,
1525         check_io_constraints) Additional checking for READ.
1526
1527 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1528
1529         PR other/31400
1530         * lang.opt (static-libgfortran): New option.
1531         * gfortranspec.c (ADD_ARG_LIBGFORTRAN): New macro.
1532         (Option): Add OPTION_static and OPTION_static_libgfortran.
1533         (lookup_option): Handle the new -static-libgfortran option.
1534         (lang_specific_driver): Check whether -static is passed.
1535         Handle the new -static-libgfortran option.
1536         * options.c (gfc_handle_option): If -static-libgfortran is
1537         passed and isn't supported on this configuration, error out.
1538
1539 2007-06-27  Daniel Franke  <franke.daniel@gmail.com>
1540
1541         PR fortran/32467
1542         * openmp.c (resolve_omp_clauses): Emit error on allocatable
1543         components in COPYIN, COPYPRIVATE, FIRSTPRIVATE and LASTPRIVATE
1544         clauses.
1545
1546 2007-06-25  Paul Thomas  <pault@gcc.gnu.org>
1547
1548         PR fortran/32464
1549         * resolve.c (check_host_association): Return if the old symbol
1550         is use associated.  Introduce retval to reduce the number of
1551         evaluations of the first-order return value.
1552
1553         PR fortran/31494
1554         * match.c (gfc_match_call): If a host associated symbol is not
1555         a subroutine, build a new symtree/symbol in the current name
1556         space.
1557
1558 2007-06-24  Tobias Burnus  <burnus@net-de>
1559
1560         PR fortran/32460
1561         * interface.c (gfc_compare_derived_types): Add access check.
1562         * symbol.c (gfc_find_component): Ditto.
1563         (gfc_set_component_attr,gfc_get_component_attr) Copy access state.
1564         * dump-parse-tree.c (gfc_show_components): Dump access state.
1565         * gfortran.h (struct gfc_component): Add gfc_access.
1566         * module.c (mio_component): Add access state.
1567         * (gfc_match_structure_constructor): Check for private access state.
1568
1569 2007-06-24  Paul Thomas  <pault@gcc.gnu.org>
1570
1571         PR fortran/32298
1572         PR fortran/31726
1573         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Calculate
1574         the offset between the loop counter and the position as
1575         defined. Add the offset within the loop so that the mask acts
1576         correctly.  Do not advance the location on the basis that it
1577         is zero.
1578
1579 2007-06-22  Daniel Franke  <franke.daniel@gmail.com>
1580
1581         PR fortran/31473
1582         * symbol.c (gfc_copy_attr): Emit errors for duplicate 
1583         EXTERNAL/INTRINSIC statements.
1584
1585 2007-06-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1586
1587         PR fortran/32360
1588         * expr.c (gfc_check_assign): If the rvalue expression type is NULL_EXPR,
1589         check to see if the lvalue has attribute pointer and data.  
1590
1591 2007-06-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1592
1593         PR fortran/31162
1594         * resolve.c (gfc_resolve_iterator_expr): Add check for REAL using
1595         gfc_notify_standard. (gfc_resolve_iterator): Remove check.
1596         (resolve_branch): Change "Obsolete" to "Deleted feature".
1597         * io.c (resolve_tag): Ditto.
1598         * match.c (gfc_match_pause, gfc_match_assign, gfc_match_goto): Ditto.
1599
1600 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1601
1602         PR fortran/32361
1603         * match.c (gfc_match_common): If the symbol value expression type is
1604         NULL_EXPR, don't error if previously initialized.
1605
1606 2007-06-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1607
1608         PR fortran/25061
1609         * decl.c (get_proc_name) Check symbol for generic interface
1610         and issue an error.
1611
1612 2007-06-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1613         Richard Guenther  <rguenther@suse.de>
1614
1615         PR fortran/32140
1616         * trans.c (gfc_build_addr_expr): Use the correct types.
1617
1618 2007-06-19  Paul Thomas  <pault@gcc.gnu.org>
1619
1620         PR fortran/20863
1621         PR fortran/20882
1622         * resolve.c (resolve_code): Use gfc_impure_variable as a
1623         condition for rejecting derived types with pointers, in pure
1624         procedures.
1625         (gfc_impure_variable): Add test for dummy arguments of pure
1626         procedures; any for functions and INTENT_IN for subroutines.
1627
1628         PR fortran/32236
1629         * data.c (gfc_assign_data_value): Change the ICE on an array
1630         reference initializer not being an array into an error and
1631         clear init to prevent a repetition of the error.
1632
1633 2007-06-17  Janne Blomqvist  <jb@gcc.gnu.org>
1634
1635         * gfortran.texi: Add documentation for GFORTRAN_UNBUFFERED_n
1636         environment variables. Fix documentation for
1637         GFORTRAN_UNBUFFERED_ALL environment variable.
1638
1639 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1640
1641         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use
1642         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointer addition.
1643         * trans-expr.c (gfc_trans_string_copy): Create
1644         POINTER_PLUS_EXPR instead of a PLUS_EXPR
1645         for pointer types.
1646
1647 2007-06-14  Paul Thomas  <pault@gcc.gnu.org>
1648
1649         PR fortran/32302
1650         * trans-common.c (build_common_decl): If resizing of common
1651         decl is needed, update the TREE_TYPE.
1652
1653 2007-06-13  Tobias Burnus  <burnus@net-b.de>
1654
1655         PR fortran/32323
1656         * interface.c (has_vector_section): New.
1657         (compare_actual_formal): Check for array sections with vector subscript.
1658
1659 2007-06-12  Dirk Mueller  <dmueller@suse.de>
1660
1661         * trans-stmt.c (gfc_trans_call): fix gcc_assert to
1662         a comparison, not an assignment.
1663
1664 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
1665
1666         * trans-common.c (create_common): Initialize 'field_init'.
1667
1668 2007-06-12  Paul Thomas  <pault@gcc.gnu.org>
1669
1670         PR fortran/29786
1671         PR fortran/30875
1672         * trans-common.c (get_init_field): New function.
1673         (create_common): Call get_init_field for overlapping
1674         initializers in equivalence blocks.
1675         * resolve.c (resolve_equivalence_derived, resolve_equivalence):
1676         Remove constraints on initializers in equivalence blocks.
1677         * target-memory.c (expr_to_char, gfc_merge_initializers):
1678         New functions.
1679         (encode_derived): Add the bit offset to the byte offset to get
1680         the total offset to the field.
1681         * target-memory.h : Add prototype for gfc_merge_initializers.
1682
1683 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
1684
1685         * trans-types.c (gfc_signed_type): Remove.
1686         * trans-types.h (gfc_signed_type): Remove.
1687         * f95-lang.c (LANG_HOOKS_SIGNED_TYPE): Remove.
1688
1689 2007-06-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1690
1691         * trans-intrinsic.c: Revert Lee's 2007-06-04 patch.
1692
1693 2007-06-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1694             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1695
1696         PR fortran/32223
1697         * match.c (gfc_match_special_char): New function.  Match special char.
1698         Add handling '\0'.
1699         * match.h: Add prototype.
1700         * io.c (next_char): Use it.
1701         * primary.c (next_string_char): Ditto.
1702
1703 2007-06-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1704
1705         * decl.c: Miscellaneous whitespace fixes.
1706         * expr.c: Likewise.
1707         * gfortran.h: Likewise.
1708         * interface.c : Likewise.
1709         * io.c: Likewise.
1710         * match.c: Likewise.
1711         * match.h: Likewise.
1712         * module.c: Likewise.
1713         * parse.c: Likewise.
1714         * resolve.c: Likewise.
1715         * symbol.c: Likewise.
1716         * trans-array.c: Likewise.
1717         * trans-common.c: Likewise.
1718         * trans-decl.c: Likewise.
1719         * trans-intrinsic.c: Likewise.
1720         * trans-io.c: Likewise.
1721         * trans-stmt.c: Likewise.
1722         * trans-types.c: Likewise.
1723
1724 2007-06-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1725
1726         PR fortran/18923
1727         * parse.c (decode_statement): Don't call gfc_undo_symbols on MATCH_ERROR
1728         for ST_FUNCTION since it is called in reject_statement.
1729         (parse_contained): If error, loop back after reject_statement and try
1730         again.  Free the namespace if an error occured.
1731
1732 2007-06-04 Lee Millward <lee.millward@codesourcery.com>
1733
1734         * trans-intrinsic.c (gfc_conv_intrinsic_function_args): Adjust
1735         to operate on a stack allocated array for the intrinsic arguments
1736         instead of creating a TREE_LIST. Add two new parameters for the
1737         array and the number of elements. Update all callers to allocate
1738         an array of the correct length to pass in. Update comment.
1739         (gfc_intrinsic_argument_list_length): New function.
1740         (gfc_conv_intrinsic_mnimax): Call it.
1741         (gfc_conv_intrinsic_merge): Likewise.
1742         (gfc_conv_intrinsic_lib_function): Call it. Use new CALL_EXPR
1743         constructors.
1744         (gfc_conv_intrinsic_cmplx): Likewise.
1745         (gfc_conv_intrinsic_ctime): Likewise.
1746         (gfc_covn_intrinsic_fdate): Likewise.
1747         (gfc_conv_intrinsic_ttynam): Likewise.
1748         (gfc_conv_intrinsic_ishftc): Likewise.
1749         (gfc_conv_intrinsic_index): Likewise.
1750         (gfc_conv_intrinsic_scan): Likewise.
1751         (gfc_conv_intrinsic_verify): Likewise.
1752         (gfc_conv_intrinsic_trim): Likewise.
1753         (gfc_conv_intrinsic_aint): Use new CALL_EXPR constructors.
1754         (gfc_conv_intrinsic_exponent): Likewise.
1755         (gfc_conv_intrinsic_bound): Likewise.
1756         (gfc_conv_intrinsic_abs): Likewise.
1757         (gfc_conv_intrinsic_mod): Likewise.
1758         (gfc_conv_intrinsic_sign): Likewise.
1759         (gfc_conv_intrinsic_len): Likewise.
1760         (gfc_conv_intrinsic_adjust): Likewise.
1761         (gfc_conv_intrinsic_si_kind): Likewise.
1762
1763 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
1764
1765         * trans-array.c (gfc_conv_array_parameter): Initialize tmp.
1766
1767 2007-05-31  Richard Guenther  <rguenther@suse.de>
1768
1769         * trans-expr.c (gfc_conv_expr_op): Use zero constant
1770         that matches the lse type.
1771         (gfc_trans_string_copy): Use sizetype zero constant.
1772         * intrinsic.c (add_functions): The sizeof intrinsic has
1773         index type result.
1774         * trans-types.c (gfc_get_dtype): Convert size to index
1775         type before shifting.
1776         * trans-array.c (gfc_trans_array_constructor_value): Use
1777         index type for offset computation.
1778         * trans-intrinsic.c (gfc_conv_associated): Use correct type
1779         for zero constant.
1780
1781 2007-05-31  Paul Thomas  <pault@gcc.gnu.org>
1782
1783         PR fortran/32156
1784         * trans-array.c (gfc_trans_array_constructor): Treat the case
1785         where the ss expression charlen is missing.
1786
1787 22007-05-31  Paul Thomas  <pault@gcc.gnu.org>
1788
1789         PR fortran/32103
1790         * module.c (mio_symtree_ref): If an equivalence group member
1791         is not used, give it a hidden symbol and set the pointer_info.
1792         (load_equiv): Only free the equivalence if none of the members
1793         are used.
1794
1795 2007-05-29  Daniel Franke  <franke.daniel@gmail.com>
1796
1797         * gfortran.h: Renamed 'enum gfc_generic_isym_id' to 'enum gfc_isym_id',
1798         added missing GFC_ISYM_* enumerators, ordered alphabetically.
1799         (struct gfc_intrinsic_sym): Renamed 'generic_id' to 'id'.
1800         (gfc_find_subroutine): New prototype.
1801         * intrinsic.c (add_sym, add_sym_*): Added argument 'id' and changed all callers.
1802         (find_subroutine): Renamed to 'gfc_find_subroutine', removed static.  
1803         * dependency.c: Changed usage of isym->generic_id to isym->id.  
1804         * openmp.c: Likewise.  
1805         * resolve.c: Likewise.  
1806         * trans-array.c: Likewise.  
1807         * trans-expr.c: Likewise.  
1808         * trans-intrinsic.c: Likewise.  
1809         * trans-openmp.c: Likewise.
1810
1811 2007-05-28  Tobias Schlüter  <tobi@gcc.gnu.org>
1812
1813         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIZEOF.
1814         * intrinsic.c (add_functions): Add stuff for SIZEOF intrinsic.
1815         * intrinsic.h (gfc_check_sizeof): Add prototype of ...
1816         * check.c (gfc_check_sizeof): .. new function.
1817         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): New function.
1818         (gfc_conv_intrinsic_strcmp): Whitespace fix.
1819         (gfc_conv_intrinsic_array_transfer): Remove double initialization,
1820         use fold_build. where appropriate.
1821         (gfc_conv_intrinsic_function): Add case for SIZEOF.
1822         * intrinsic.texi: Add documentation for SIZEOF.
1823
1824 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
1825
1826         * trans-array.c (gfc_conv_expr_descriptor): Edit comment.
1827
1828 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
1829
1830         PR fortran/31972
1831         * target-memory.c (gfc_target_expr_size): Add handling
1832         for size of BT_HOLLERITH variables.
1833         * check.c (gfc_check_transfer): Reject BT_HOLLERITH
1834         variables in MOLD argument of TRANSFER.
1835
1836 2007-05-28  Brooks Moses  <brooks.moses@codesourcery.com>
1837
1838         * gfortran.h (gfc_expr): Remove from_H, add "representation"
1839         struct.
1840         * primary.c (match_hollerith_constant): Store the representation
1841         of the Hollerith in representation, not in value.character.
1842         * arith.c: Add dependency on target-memory.h.
1843         (eval_intrinsic): Remove check for from_H.
1844         (hollerith2representation): New function.
1845         (gfc_hollerith2int): Determine value of the new constant.
1846         (gfc_hollerith2real): Likewise.
1847         (gfc_hollerith2complex): Likewise.
1848         (gfc_hollerith2logical): Likewise.
1849         (gfc_hollerith2character): Point both representation.string and
1850         value.character.string at the value string.
1851         * data.c (create_character_initializer): For BT_HOLLERITH
1852         rvalues, get the value from the representation rather than
1853         value.character.
1854         * expr.c (free_expr0): Update handling of BT_HOLLERITH values
1855         and values with representation.string.
1856         (gfc_copy_expr): Likewise.
1857         * intrinsic.c (do_simplify): Remove special treatement of
1858         variables resulting from Hollerith constants.
1859         * dump-parse-trees.c (gfc_show_expr): Update handling of
1860         Holleriths.
1861         * trans-const.c (gfc_conv_constant_to_tree): Replace from_H
1862         check with check for representation.string; get Hollerith
1863         representation from representation.string, not value.character.
1864         * trans-expr.c (is_zero_initializer_p): Replace from_H check
1865         with check for representation.string.
1866         * trans-stmt.c (gfc_trans_integer_select): Use
1867         gfc_conv_mpz_to_tree for case values, so as to avoid picking up
1868         the memory representation if the case is given by a transfer
1869         expression.
1870         * target-memory.c (gfc_target_encode_expr): Use the known memory
1871         representation rather than the value, if it exists.
1872         (gfc_target_interpret_expr): Store the memory representation of
1873         the interpreted expression as well as its value.
1874         (interpret_integer): Move to gfc_interpret_integer, make
1875         non-static.
1876         (interpret_float): Move to gfc_interpret_float, make non-static.
1877         (interpret_complex): Move to gfc_interpret_complex, make
1878         non-static.
1879         (interpret_logical): Move to gfc_interpret_logical, make
1880         non-static.
1881         (interpret_character): Move to gfc_interpret_character, make
1882         non-static.
1883         (interpret_derived): Move to gfc_interpret_derived, make
1884         non-static.
1885         * target-memory.h: Add prototypes for newly-exported
1886         gfc_interpret_* functions.
1887
1888 2007-05-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1889
1890         PR fortran/31812
1891         * parse.c (next_statement): Warn for truncated lines if source is free
1892         form.
1893
1894 2007-05-27 Paul Thomas  <pault@gcc.gnu.org>
1895            Tobias Burnus  <burnus@net-b.de>
1896
1897         PR fortran/32088
1898         * symbol.c (gfc_check_function_type): Copy dimensions of
1899           result variable.
1900         * resolve.c (resolve_contained_fntype): Improve symbol output in
1901           the error message.
1902
1903 2007-05-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1904
1905         PR fortran/31813
1906         * io.c (check_format): Add warning for H specifier in format.
1907         
1908 2007-05-26  Tobias Burnus  <burnus@net-b.de>
1909
1910         * gfortran.texi: Document the GFORTRAN_ERROR_DUMPCORE and
1911         GFORTRAN_ERROR_BACKTRACE environment variables.
1912
1913 2007-05-26  Paul Thomas  <pault@gcc.gnu.org>
1914
1915         PR fortran/31219
1916         * trans.h : Add no_function_call bitfield to gfc_se structure.
1917         Add stmtblock_t argument to prototype of get_array_ctor_strlen.
1918         * trans-array.c (get_array_ctor_all_strlen): New function.
1919         (get_array_ctor_strlen): Add new stmtblock_t argument and call
1920         new function for character elements that are not constants,
1921         arrays or variables.
1922         (gfc_conv_array_parameter): Call get_array_ctor_strlen to get
1923         good string length.
1924         * trans-intrinsic (gfc_conv_intrinsic_len): Add new argument
1925         to call of get_array_ctor_strlen.
1926
1927 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
1928
1929         * intrinsic.texi: Fix typos.
1930
1931 2007-05-25  Paul Thomas  <pault@gcc.gnu.org>
1932
1933         PR fortran/32047
1934         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Change
1935         order in logic under EXPR_FUNCTION to handle functions with
1936         no arguments.
1937
1938 2007-05-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1939
1940         PR fortran/31716
1941         * array.c (spec_dimen_size): Test for correct BT_INTEGER type. 
1942
1943 2007-05-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1944
1945         PR fortran/32046
1946         * trans-expr.c (gfc_trans_zero_assign): Convert the result of
1947         TYPE_SIZE_UNIT into a signed type.
1948         (gfc_trans_array_copy):  Likewise.
1949         (gfc_trans_array_constructor_copy): Likewise.
1950         * trans-array.c (gfc_trans_create_temp_array): Likewise.
1951         (gfc_grow_array): Likewise.
1952         (gfc_array_init_size): Likewise.
1953         (gfc_duplicate_allocatable): Likewise.
1954         * trans-stmt.c (allocate_temp_for_forall_nest_1): Likewise.
1955
1956 2007-05-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1957
1958         PR fortran/18923
1959         * resolve.c (resolve_function): Don't call resolve_global_procedure if
1960         there is no name. Delete duplicated statement in ELSE clause.
1961
1962 2007-05-22 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1963
1964         PR fortran/31627
1965         * trans-array.c (gfc_trans_array_bound_check): Take extra argument to
1966         indicate whether we should check the upper bound in that dimension.
1967         (gfc_conv_array_index_offset): Check only the lower bound of the
1968         last dimension for assumed-size arrays.
1969         (gfc_conv_array_ref): Likewise.
1970         (gfc_conv_ss_startstride): Likewise.
1971
1972 2007-05-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1973             Daniel Franke  <franke.daniel@gmail.com>
1974
1975         PR fortran/32002
1976         * resolve.c (resolve_actual_arglist): Resolve actual argument after
1977         being identified as variable.
1978
1979 2007-05-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1980
1981         PR fortran/32027
1982         * trans-stmt.c (gfc_trans_do): Fix the value of loop variable
1983         when the loop ends.
1984
1985 2007-05-21  H.J. Lu  <hongjiu.lu@intel.com>
1986
1987         * trans-stmt.c (gfc_trans_do): Fix a typo in comment.
1988
1989 2007-05-21  Paul Thomas  <pault@gcc.gnu.org>
1990
1991         PR fortran/31867
1992         PR fortran/31994
1993         * trans-array.c (gfc_conv_expr_descriptor): Obtain the stored
1994         offset for non-descriptor, source arrays and correct for stride
1995         not equal to one before writing to field of output descriptor.
1996
1997 2007-05-20  Daniel Franke  <franke.daniel@gmail.com>
1998
1999         PR fortran/32001
2000         * check.c (check_rest): Improved argument conformance check and 
2001         fixed error message generation.
2002
2003 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2004
2005         PR fortran/30820
2006         * Make-lang.in: Remove use of -Wno-error for expr.o, resolve.o,
2007         simplify.o and trans-common.o.
2008
2009 2007-05-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2010
2011         PR fortran/31974
2012         * trans-array.c (gfc_trans_auto_array_allocation): Avoid
2013         multiplication of mismatched types.
2014
2015 2007-05-18  Daniel Franke  <franke.daniel@gmail.com>
2016
2017         PR fortran/24633
2018         * symbol.c (gfc_add_flavor): Add the NAME to error message if
2019         available.
2020
2021 2007-05-15  Daniel Franke  <franke.daniel@gmail.com>
2022
2023         PR fortran/31919
2024         PR fortran/31929
2025         PR fortran/31930
2026         * intrinsic.c (check_specific): Check elemental intrinsics for
2027         rank and shape.
2028         (add_functions): Fixed dummy argument names of BESJN and BESYN.
2029         Fixed elemental status of MCLOCK and MCLOCK8.
2030         * check.c (check_rest): Added check for array conformance.
2031         (gfc_check_merge): Removed check for array conformance.
2032         (gfc_check_besn): Removed check for scalarity.
2033         * intrinsic.texi (CSHIFT, EOSHIFT): Fixed typos.
2034         (BESJN, BESYN): Clarified documentation.
2035
2036 2007-05-17  Tobias Burnus  <burnus@net-b.de>
2037
2038         * gfortran.texi (GFORTRAN_CONVERT_UNIT): Improve documentation.
2039
2040 2007-05-16  Brooks Moses  <brooks.moses@codesourcery.com>
2041
2042         PR fortran/18769
2043         PR fortran/30881
2044         PR fortran/31194
2045         PR fortran/31216
2046         PR fortran/31427
2047         * target-memory.c: New file.
2048         * target-memory.h: New file.
2049         * simplify.c: Add #include "target-memory.h".
2050         (gfc_simplify_transfer): Implement constant-
2051         folding for TRANSFER intrinsic.
2052         * Make-lang.in: Add dependencies on new target-memory.* files.
2053
2054 2007-05-15  Paul Brook  <paul@codesourcery.com>
2055
2056         * trans-types.c (gfc_type_for_size): Handle signed TImode.
2057
2058 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2059
2060         PR fortran/30723
2061         * trans.h (gfor_fndecl_internal_malloc, gfor_fndecl_internal_malloc64,
2062         gfor_fndecl_internal_free): Remove prototypes.
2063         (gfor_fndecl_os_error, gfc_call_free, gfc_call_malloc): Add prototypes.
2064         * trans.c (gfc_call_malloc, gfc_call_free): New functions.
2065         * f95-lang.c (gfc_init_builtin_functions): Add __builtin_free
2066         and __builtin_malloc builtins.
2067         * trans-decl.c (gfor_fndecl_internal_malloc,
2068         gfor_fndecl_internal_malloc64, gfor_fndecl_internal_free): Remove.
2069         (gfor_fndecl_os_error): Add.
2070         (gfc_build_builtin_function_decls): Don't create internal_malloc,
2071         internal_malloc64 and internal_free library function declaration.
2072         Create os_error library call function declaration.
2073         * trans-array.c (gfc_trans_allocate_array_storage,
2074         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2075         gfc_conv_array_parameter, gfc_duplicate_allocatable): Use
2076         gfc_call_malloc and gfc_call_free instead of building calls to
2077         internal_malloc and internal_free.
2078         * trans-expr.c (gfc_conv_string_tmp): Likewise.
2079         * trans-stmt.c (gfc_do_allocate, gfc_trans_assign_need_temp,
2080         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
2081         gfc_trans_where_2: Likewise.
2082         * trans-intrinsic.c (gfc_conv_intrinsic_ctime,
2083         gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
2084         gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_trim): Likewise.
2085
2086 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2087
2088         PR fortran/31725
2089         * trans-expr.c (gfc_conv_substring): Evaluate substring bounds
2090         only once.
2091
2092 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
2093
2094         * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
2095         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for
2096         instead of gfc_unsigned_type.
2097         * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of
2098         gfc_unsigned_type.
2099         * trans-types.c (gfc_unsigned_type): Remove.
2100         * trans-types.h (gfc_unsigned_type): Remove.
2101
2102 2007-05-12  Paul Thomas  <pault@gcc.gnu.org>
2103
2104         PR fortran/30746
2105         * resolve.c (check_host_association): New function that detects
2106         incorrect host association and corrects it.
2107         (gfc_resolve_expr): Call the new function for variables and
2108         functions.
2109         * match.h : Remove prototype for gfc_match_rvalue.
2110         * gfortran.h : Add prototype for gfc_match_rvalue.
2111
2112 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
2113
2114         PR fortran/30876
2115         * trans-expr.c (gfc_conv_function_call): Reduce indirection for
2116         direct assignments of recursive array valued functions.
2117         * primary.c (gfc_match_rvalue): Correct error for recursive
2118         function calls such that directly recursive calls of scalar
2119         function without an explicit result are disallowed.
2120
2121 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
2122
2123         PR fortran/30878
2124         * resolve.c (resolve_fl_namelist): It is not an error if the
2125         namelist element is the result variable of the enclosing
2126         function.  Search for the symbol in current and all parent
2127         namespaces for a potential conflict.
2128         * symbol.c (check_conflict): Remove the conflict between
2129         'in_namelist' and 'FL_PROCEDURE' because the symbol info
2130         is not available to exclude function result variables.
2131         * trans-io.c (nml_get_addr_expr): Use the fake result decl
2132         if the symbol is an implicit result variable.
2133
2134 2007-05-11  Paul Thomas  <pault@gcc.gnu.org>
2135
2136         PR fortran/31474
2137         * decl.c (get_proc_name): If an entry has already been declared
2138         as a module procedure, pick up the symbol and the symtree and
2139         use them for the entry.
2140
2141 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
2142
2143         PR fortran/31630
2144         * resolve.c (resolve_symbol): Remove the flagging mechanism from the
2145         formal namespace resolution and instead check that the formal
2146         namespace is not the current namespace.
2147
2148 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
2149
2150         PR fortran/31692
2151         * trans-array.c (gfc_conv_array_parameter): Convert full array
2152         references to the result of the procedure enclusing the call.
2153
2154 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
2155
2156         PR fortran/29397
2157         PR fortran/29400
2158         * decl.c (add_init_expr_to_sym): Expand a scalar initializer
2159         for a parameter array into an array expression with the right
2160         shape.
2161         * array.c (spec_dimen_size): Remove static attribute.
2162         * gfortran.h : Prototype for spec_dimen_size.
2163
2164 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2165
2166         PR fortran/31399
2167         * trans-stmt.c (gfc_trans_do): Handle large loop counts.
2168
2169 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2170
2171         PR fortran/31764
2172         * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified
2173         even for non constant arguments.
2174
2175 2007-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2176             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2177
2178         PR fortran/31201
2179         * gfortran.h: Add runtime error codes from libgfortran.h. Define
2180         MAX_UNIT_NUMBER.
2181         * trans.c (gfc_trans_runtime_check): Update the format of runtime error
2182         messages to match library runtime errors.  Use call to new library
2183         function runtime_error_at().
2184         * trans.h: Add prototype for new function gfc_trans_io_runtime_check.
2185         Add declaration for library functions runtime_error_at and
2186         generate_error.
2187         * trans_io.c (gfc_trans_io_runtime_check): New function.
2188         (set_parameter_value): Add error checking for UNIT numbers.
2189         (set_parameter_ref): Initialize the users variable to zero. 
2190         (gfc_trans_open): Move setting of unit number to after setting of common
2191         flags so that runtime error trapping can be detected.
2192         (gfc_trans_close): Likewise. (build_filepos): Likewise.
2193         (gfc_trans_inquire): Likewise. (build_dt): Likewise.
2194         * trans-decl.c: Add declarations for runtime_error_at and
2195         generate_error. (gfc_build_builtin_function_decls): Build function
2196         declarations for runtime_error_at and generate_error.
2197
2198 2007-05-06  Paul Thomas  <pault@gcc.gnu.org>
2199
2200         PR fortran/31540
2201         * resolve.c (resolve_fl_procedure): Resolve constant character
2202         lengths.
2203
2204 2007-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2205
2206         PR fortran/31251
2207         * decl.c (match_char_spec): Add check for invalid character lengths.
2208
2209 2007-05-04  Brooks Moses  <brooks.moses@codesourcery.com>
2210
2211         * intrinsic.texi (CMPLX): Document result kind.
2212         (COMPLEX): Add documentation.
2213
2214 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
2215
2216         PR fortran/31760
2217         * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1
2218         by gfc_check_fn_r to avoid checks for scalarity.
2219         * check.c (gfc_check_besn): Removed check for scalarity.
2220         (gfc_check_g77_math1): Removed.
2221         * intrinsic.h (gfc_check_g77_math1): Removed.
2222
2223 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
2224
2225         * check.c (gfc_check_fseek_sub): Fixed typo.
2226
2227 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
2228
2229         PR fortran/22359
2230         * intrinsic.c (add_subroutines): Added FSEEK.
2231         * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New.
2232         * iresolve.c (gfc_resolve_fseek_sub): New.
2233         * check.c (gfc_check_fseek_sub): New.
2234         * intrinsic.texi (FSEEK): Updated.
2235
2236 2007-05-04  Tobias Burnus  <burnus@net-b.de>
2237
2238         PR fortran/31803
2239         * expr.c (gfc_check_pointer_assign): Check for NULL pointer.
2240
2241 2007-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2242
2243         PR fortran/31251
2244         * simplify.c (gfc_simplify_len): Only simplify integer lengths.
2245
2246 2007-05-04  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2247
2248         PR fortran/31781
2249         * simplify.c (gfc_simplify_repeat): Don't put function call with
2250         side effect in a gcc_assert().
2251
2252 2007-05-04  Tobias Burnus  <burnus@net-b.de>
2253
2254         PR fortran/25071
2255         * interface.c (compare_actual_formal): Check character length.
2256
2257 2007-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
2258
2259         PR fortran/31732
2260         * dependency.c (gfc_full_array_ref_p):  If the reference is
2261         to a single element, check that the array has a single
2262         element and that the correct element is referenced.
2263
2264 2007-05-01  Daniel Franke  <franke.daniel@gmail.com>
2265
2266         * intrinsic.c (add_functions): Fixed ELEMENTAL specifications.
2267         (add_subroutines): Replaced magic numbers in function calls by
2268         ELEMENTAL and NOT_ELEMENTAL respectively.
2269         * intrinsic.texi (MVBITS): Changed class to elemental subroutine.
2270         (RANDOM_NUMBER): Changed class to subroutine.
2271         (HUGE, TINY): Changed class to inquiry function.
2272
2273 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
2274
2275         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int.
2276         (gfc_conv_tree_to_mpz): New function.
2277         (gfc_conv_mpfr_to_tree): Use real_from_mpfr.
2278         (gfc_conv_tree_to_mpfr): New function.
2279         * trans-const.h: (gfc_conv_tree_to_mpz): New prototype.
2280         (gfc_conv_tree_to_mpfr): New prototype.
2281
2282 2007-04-30  Daniel Franke  <franke.daniel@gmail.com>
2283
2284         * intrinsic.texi (IERRNO): Changed class to non-elemental function.
2285         (LOG10): Removed COMPLEX as accepted argument type.
2286         (NEW_LINE): Changed class from elemental to inquiry function.
2287         (SIGN): Removed requirement of scalar arguments.
2288         (SNGL): Changed class to elemental function.
2289
2290 2007-04-29  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2291
2292         PR fortran/31591
2293         * simplify.c (simplify_bound_dim): New function.
2294         (simplify_bound): Use the above. Perform simplification of LBOUND
2295         and UBOUND when DIM argument is not present.
2296
2297 2007-04-29  Daniel Franke  <franke.daniel@gmail.com>
2298
2299         * gfortran.texi: Cleaned up keyword index.
2300         * invoke.texi: Likewise.
2301         * intrinsic.texi: Likewise.
2302                         
2303 2007-04-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2304
2305         PR fortran/31645
2306         * scanner.c (load_file): Discard the byte order mark if one is
2307         found on the first non-preprocessor line of a file.
2308
2309 2007-04-29  Paul Thomas  <pault@gcc.gnu.org>
2310
2311         PR fortran/31711
2312         * trans-array.c (gfc_conv_resolve_dependencies): Create a temp
2313         whenever a dependency is found.
2314
2315 2007-04-28  Tobias Schlüter  <tobi@gcc.gnu.org>
2316
2317         * options.c (gfc_handle_option): Ensure requested free form line
2318         length is not too small.
2319
2320 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
2321
2322         * intrinsic.texi (Transfer): Improve documentation.
2323
2324 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
2325
2326         * gfortran.texi (Option Index): Add @samp as needed.
2327
2328 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
2329
2330         * gfortran.texi: Added node and menu entry for an option index.
2331         * invoke.texi: Moved command line option related entries of the concept 
2332         index to the option index.
2333
2334 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
2335
2336         * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT,
2337         XOR): Fixed examples.
2338
2339 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
2340
2341         * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, 
2342         SYSTEM_CLOCK, TRANSFER, UNPACK): New.
2343         (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references.
2344
2345 2007-04-26  Daniel Franke  <franke.daniel@gmail.com>
2346
2347         * intrinsic.texi (NULL, PACK, PRESENT, REPEAT, SCAN, SHAPE, 
2348         SIZE, TRANSPOSE, TRIM, VERIFY): New.
2349         (ADJUSTL, ADJUSTR, INDEX): Added cross references.
2350         (INT, INT2, INT8, LONG): Enabled section header.
2351
2352 2007-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
2353
2354         * module.c (module_char): Replace fgetc() with
2355         getc(). 
2356         (write_char): Replace fputc() with putc().
2357         * scanner.c (load_line): Replace fgetc() with getc().
2358         (gfc_read_orig_filename): Likewise.
2359
2360 2007-04-25  Tobias Burnus  <burnus@net-b.de>
2361
2362         PR fortran/31668
2363         * error.c (error_print): Fix %% support.
2364         * intrinsic.c (sort_actual): Improve error message.
2365         * resolve.c (resolve_actual_arglist): Allow %VAL for
2366         interfaces defined in the module declaration part.
2367
2368 2007-04-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2369
2370         PR libfortran/31299
2371         * intrinsic.texi (GETLOG): Update documentation to reflect
2372         library changes.
2373
2374 2007-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2375
2376         PR fortran/31587
2377         * module.c (write_char): Add character to the MD5 buffer.
2378         (read_md5_from_module_file): New function.
2379         (gfc_dump_module): Compute MD5 for new module file. Call
2380         read_md5_from_module_file. Only overwrite old module file
2381         if the new MD5 is different.
2382
2383 2007-04-23  Paul Thomas  <pault@gcc.gnu.org>
2384
2385         PR fortran/31630
2386         * resolve.c (resolve_symbol): Allow resolution of formal
2387         namespaces nested within formal namespaces coming from modules.
2388
2389         PR fortran/31620
2390         * trans-expr.c (gfc_trans_assignment): Make the call to
2391         gfc_trans_zero_assign conditional on the lhs array ref being
2392         the only reference.
2393
2394 2007-04-23  Tobias Burnus  <burnus@net-b.de>
2395
2396         * primary.c (match_integer_constant): Mention -fno-range-check
2397         in the error message.
2398
2399 2007-04-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2400
2401         PR fortran/31495
2402         * scanner.c (load_line):  Remove check for comment after ampersand and
2403         adjust tracking of ampersand.
2404
2405 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2406
2407         * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
2408         instead of checking GIMPLE_STMT_P in chain_next.
2409
2410 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
2411
2412         * trans-types.h (gfc_packed): New enum.
2413         (gfc_get_nodesc_array_type): Change prototype to use new enum.
2414         * trans-types.c (gfc_get_nodesc_array): Use gfc_packed for
2415         argument packed.  Adapt all references to values accordingly.
2416         (gfc_sym_type): Use enum values in call to gfc_get_nodesc_array.
2417         (gfc_get_derived_type): Likewise.
2418         * trans-array.c (gfc_build_constant_array_constructor): Likewise.
2419         * trans-expr.c (gfc_get_interface_mapping_charlen): Changed packed
2420         argument to type gfc_packed.
2421         (gfc_add_interface_mapping): Use enum values in call to
2422         gfc_get_interface_mapping.
2423         * trans-decl.c (gfc_build_dummy_array_decl): Adapt to use enum
2424         values when determining packing.
2425
2426         * trans-decl.c (gfc_finish_decl): Remove unused second argument
2427         'init'.  Simplify code accordingly.  Remove calls to
2428         gfc_fatal_error in favor of gcc_assert.
2429         (create_function_arglist): Remove second argument from calls to
2430         gfc_finish-decl.
2431         (gfc_trans_dummy_character): Likewise.
2432
2433         * arith.h: Update copyright years.
2434         * dependency.h: Likewise.
2435         * gfortran.h: Likewise.
2436         * lang-specs.h: Likewise.
2437         * parse.h: Likewise.
2438         * symbol.c: Likewise.
2439         * trans.h: Likewise.
2440         * trans.c: Likewise.
2441         * trans-array.c: Likewise.
2442         * trans-common.c: Likewise.
2443         * trans-const.h: Likewise.
2444         * trans-const.c: Likewise.
2445         * trans-decl.c: Likewise.
2446         * trans-expr.c: Likewise.
2447         * trans-io.c: Likewise.
2448         * trans-openmp.c: Likewise.
2449         * trans-types.h: Likewise.
2450         * types.def: Likewise.
2451
2452 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
2453
2454         PR fortran/31144
2455         * decl.c (gfc_sym_mangled_identifier): Use capital letters in name
2456         mangling.
2457         (gfc_sym_mangled_function_id): Likewise.
2458
2459 2007-04-15  Paul Thomas  <pault@gcc.gnu.org>
2460
2461         PR fortran/31204
2462         * primary.c (check_for_implicit_index): New function to check
2463         that a host associated variable is not an undeclared implied
2464         do loop index.
2465         (gfc_match_rvalue, match_variable): Use it and reset the
2466         implied_index attribute.
2467         * gfortran.h : Add the implied_index field to symbol_attribute.
2468         * match.c (gfc_match_iterator): Mark the iterator variable
2469         with the new attribute.
2470         * decl.c (build_sym): Reset the new attribute.
2471
2472 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
2473
2474         * gfc-internals.texi: Fix typos.
2475         * simplify.c: Fix a comment typo.
2476
2477 2007-04-14  Bernhard Fischer  <aldot@gcc.gnu.org>
2478
2479         * primary.c: Commentary typo fix; Add question about redundant (?)
2480         set.
2481
2482 2007-04-14  Paul Thomas  <pault@gcc.gnu.org>
2483
2484         PR fortran/29507
2485         PR fortran/31404
2486         * expr.c (scalarize_intrinsic_call): New function to
2487         scalarize elemental intrinsic functions in initialization
2488         expressions.
2489         (check_init_expr): Detect elemental intrinsic functions
2490         in initalization expressions and call previous.
2491
2492 2007-04-13  Tobias Burnus  <burnus@net-b.de>
2493
2494         PR fortran/31559
2495         * primary.c (match_variable): External functions
2496         are no variables.
2497
2498 2007-04-13  Paul Thomas  <pault@gcc.gnu.org>
2499
2500         PR fortran/31550
2501         * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
2502         derived type components.
2503
2504 2007-04-13  Tobias Schlüter  <tobi@gcc.gnu.org>
2505
2506         PR fortran/18937
2507         * resolve.c: Include obstack.h and bitmap.h.  New variable
2508         labels_obstack.
2509         (code_stack): Add tail and reachable_labels fields.
2510         (reachable_labels): New function.
2511         (resolve_branch): Rework to use new fields in code_stack.
2512         (resolve_code): Call reachable_labels.
2513         (resolve_codes): Allocate and free labels_obstack.
2514
2515 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
2516
2517         PR fortran/31250
2518         * decl.c (match_char_spec): Move check for negative CHARACTER
2519         length ...
2520         * resolve.c (resolve_charlen): ... here.
2521         (resolve_types): Resolve CHARACTER lengths earlier.
2522
2523 2007-04-12  Daniel Franke  <franke.daniel@gmail.com>
2524
2525         PR fortran/31234
2526         * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New.
2527
2528 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
2529
2530         PR fortran/31266
2531         * primary.c (gfc_variable_attr): Don't copy string length if it
2532         doesn't make sense.
2533         * resolve.c (resolve_code): Clarify error message.
2534
2535         PR fortran/31471
2536         * decl.c (gfc_match_end): Also check for construct name in END
2537         FORALL and END WERE statements.
2538         * match.c (match_case_eos): Use uppercase for statement name in
2539         error message.
2540         (match_elsewhere): Construct name may appear iff construct has a
2541         name.
2542
2543         * trans-types.c: Update copyright years.  Reformat long comment
2544         explaining array descriptor format.  Remove obsolete mention of
2545         TYPE_SET.
2546
2547         * arith.c (gfc_arith_uplus): Rename to ...
2548         (gfc_arith_identity): ... this.
2549         (gfc_parentheses): New function.
2550         (gfc_uplus): Adapt to renamed function.
2551         * arith.h (gfc_parentheses): Add prototype.
2552         * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES.
2553         (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from
2554         INTRINSIC_PARENTHESES.
2555
2556 2007-04-12  Tobias Burnus  <burnus@net-b.de>
2557
2558         PR fortran/31472
2559         * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC
2560         attribute in type definitions.
2561         (gfc_match_private): Allow PRIVATE statement only
2562         in specification part of modules.
2563         (gfc_match_public): Ditto for PUBLIC.
2564         (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in
2565         specificification part of modules.
2566
2567 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
2568
2569         PR fortran/31257
2570         * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar.
2571         * intrinsic.h : Add prototype for gfc_resolve_achar.
2572         * iresolve.c (gfc_resolve_achar): New function.
2573
2574 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
2575
2576         PR fortran/30880
2577         * resolve.c (resolve_fl_variable): Set flag to 2 for automatic
2578         arrays.  Make condition for automatic array error explicit.
2579         If a dummy, no error on an INTENT(OUT) derived type.
2580
2581 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
2582
2583         PR fortran/30872
2584         * expr.c (find_array_element): Correct arithmetic for rank > 1.
2585
2586 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
2587
2588         PR fortran/31222
2589         * check.c (numeric_check): If an expresson has not got a type,
2590         see if it is a symbol for which a default type applies.
2591
2592 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
2593
2594         PR fortran/31214
2595         * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use
2596         associated symbols.
2597
2598 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
2599
2600         PR fortran/31293
2601         * symbol.c (gfc_check_function_type): New function.
2602         * gfortran.h : Add prototype for previous.
2603         * parse.c (parse_progunit): Call it after parsing specification
2604         statements.
2605
2606 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
2607
2608         PR fortran/31483
2609         * trans-expr.c (gfc_conv_function_call): Give a dummy
2610         procedure the correct type if it has alternate returns.
2611
2612 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
2613
2614         PR fortran/31292
2615         * decl.c (gfc_match_modproc): Go up to the top of the namespace
2616         tree to find the module namespace for gfc_get_symbol.
2617
2618 2007-04-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2619
2620         PR fortran/31304
2621         * fortran/gfortran.h (gfc_charlen_int_kind): New prototype.
2622         * fortran/trans-types.c (gfc_charlen_int_kind): New variable.
2623         (gfc_init_types): Define gfc_charlen_int_kind. 
2624         * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype.
2625         * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete.
2626         (gfc_build_intrinsic_function_decls): Don't set
2627         gfor_fndecl_string_repeat.
2628         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite
2629         so that we don't have to call a library function.
2630         * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary
2631         checks on the NCOPIES argument, and work with arbitrary size
2632         arguments.
2633
2634 2007-03-31  Tobias Burnus  <burnus@net-b.de>
2635
2636         * intrinsic.c (add_functions): Fix name of dummy argument
2637           for new_line and exit intrinsic.
2638
2639 2007-03-31  Paul Thomas  <pault@gcc.gnu.org>
2640
2641         PR fortran/31160
2642         * gfortran.texi: Add a section for the %VAL, %REF and %LOC
2643         extensions.
2644
2645 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
2646
2647         * trans-types.c (gfc_signed_or_unsigned_type): Remove.
2648         (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
2649         gfc_signed_or_unsigned_type.
2650         (gfc_signed_type): Ditto.
2651         * trans-types.h (gfc_signed_or_unsigned_type): Remove.
2652         * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
2653
2654 2007-03-30  Tobias Schlüter  <tobi@gcc.gnu.org>
2655
2656         * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally
2657         descend into all branches.
2658
2659 2007-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
2660
2661         * intrinsic.c (conv_name): Let gfc_get_string handle the format.
2662         (find_conv): Compare pointers instead of calling strcmp.
2663         (find_sym): Likewise, but ensure that the compared pointer is in
2664         the global string table.
2665
2666 2007-03-28  Tobias Schlüter  <tobi@gcc.gnu.org>
2667
2668         * gfc-internals.texi: Fix output filename.  Merge type index into
2669         concept index.  Start documentation of gfc_code structure.
2670
2671 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
2672
2673         * gfc-internals.texi: New file,
2674         * Make-lang.in: Add rules to convert it to dvi, pdf, and info.
2675
2676 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
2677  
2678         * error.c (show_locus): Remove always-false test.
2679
2680 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
2681
2682         * lang.opt: Minor edits to descriptions.
2683
2684 2007-03-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2685
2686         PR fortran/30877
2687         * fortran/interface.c (check_operator_interface): Implement
2688         the standard checks on user operators extending intrinsic operators.
2689         * fortran/resolve.c (resolve_operator): If the ranks of operators
2690         don't match, don't error out but try the user-defined ones first.
2691
2692 2007-03-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2693
2694         PR fortran/30655
2695         * expr.c (check_dimension): Fix logic of comparisons.
2696
2697 2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
2698
2699         PR fortran/31215
2700         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
2701         int result that is non-zero if the expression is the function
2702         result.  Only the characteristics of the result expression
2703         can be used in a procedure interface, so simplify LEN in situ
2704         using its character length.
2705
2706         PR fortran/31209
2707         PR fortran/31200
2708         * trans-expr.c (gfc_conv_function_call): Do not use
2709         gfc_conv_expr_reference for actual pointer function with formal
2710         target because a temporary is created that does not transfer
2711         the reference correctly.  Do not indirect formal pointer
2712         functions since it is the function reference that is needed.
2713
2714 2007-03-24  Brooks Moses  <brooks.moses@codesourcery.com>
2715
2716         * gfortran.h: Edit comments on GFC_STD_*.
2717
2718 2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>
2719
2720         * invoke.texi: Misc. small typo fixes.
2721         (-Wcharacter-truncation): Add.
2722         (-Wnonstd-intrinsics): Correct spelling.
2723         (-std=): Edit.
2724         (-fintrinsic-modules-path): Add.
2725
2726 2007-03-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2727
2728         PR fortran/30834
2729         * arith.c (complex_pow): Rewrite to handle large power.
2730         (gfc_arith_power): Handle large power in the real and integer
2731         cases.
2732
2733 2007-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2734
2735         PR fortran/31262
2736         * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants
2737         larger than twice the width of a HOST_WIDE_INT.
2738
2739 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
2740
2741         PR fortran/31193
2742         * trans-intrinsic.c (gfc_size_in_bytes): Remove function.
2743         (gfc_conv_intrinsic_array_transfer): Remove calls to previous.
2744         Explicitly extract TREE_TYPEs for source and mold.  Use these
2745         to calculate length of source and mold, except for characters,
2746         where the se string_length is used.  For mold, the TREE_TYPE is
2747         recalculated using gfc_get_character_type_len so that the
2748         result is correctly cast for character literals and substrings.
2749         Do not use gfc_typenode_for_spec for the final cast.
2750
2751 2007-03-22  Tobias Schlüter  <tobi@gcc.gnu.org>
2752
2753         PR fortran/20897
2754         * decl.c (gfc_match_derived_decl): Reliably reject
2755         'doubleprecision' and 'doublecomplex' as type names.
2756
2757 2007-03-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2758
2759         PR fortran/31203
2760         * trans-expr.c (gfc_trans_init_string_length): Length should
2761         never be negative.
2762         (gfc_conv_function_call): Likewise.
2763
2764 2007-03-18  Paul Thomas  <pault@gcc.gnu.org>
2765
2766         PR fortran/30531
2767         PR fortran/31086
2768         * symbo.c : Add gfc_derived_types.
2769         (gfc_free_dt_list): Free derived type list gfc_derived_types.
2770         (gfc_free_namespace): Remove call to gfc_free_dt_list.
2771         (gfc_symbol_done_2): Call  gfc_free_dt_list.
2772         * gfortran.h : Declare gfc_derived_types to be external. Remove
2773         derived types field from gfc_namespace.
2774         * resolve.c (resolve_fl_derived): Refer to gfc_derived types
2775         rather than namespace derived_types.
2776         (resolve_fntype): Remove special treatment for module
2777         derived type functions.
2778         * trans-types.c (gfc_get_derived_type): Remove search for like
2779         derived types.  Finish by copying back end declaration to like
2780         derived types in the derived type list gfc_derived_types.
2781
2782         2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2783
2784         PR fortran/31120
2785         * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi.
2786         (gfc_conv_cst_int_power): Handle integer exponent with care,
2787         since it might be too large for us.
2788
2789 2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2790
2791         PR fortran/31184
2792         * invoke.texi: Fix typo.
2793
2794 2007-03-16  Tobias Burnus  <burnus@net-b.de>
2795
2796         * trans-decl.c (gfc_generate_function_code): Use all arguments of
2797           set_std.
2798
2799 2007-03-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2800
2801         * gfortran.h (gfc_option_t): Add flag_backtrace field.
2802         * lang.opt: Add -fbacktrace option.
2803         * invoke.texi: Document the new option.
2804         * trans-decl.c (gfc_build_builtin_function_decls): Add new
2805         option to the call to set_std.
2806         * options.c (gfc_init_options, gfc_handle_option): Handle the
2807         new option.
2808
2809 2007-03-15  Tobias Burnus  <burnus@gcc.gnu.org>
2810             Paul Thomas  <pault@gcc.gnu.org>
2811
2812         PR fortran/30922
2813         * decl.c (gfc_match_import): If the parent of the current name-
2814         space is null, try looking for an imported symbol in the parent
2815         of the proc_name interface.
2816         * resolve.c (resolve_fl_variable): Do not check for blocking of
2817         host association by a same symbol, if the symbol is in an
2818         interface body.
2819
2820 2007-03-15  Paul Thomas  <pault@gcc.gnu.org>
2821
2822         PR fortran/30879
2823         * decl.c (match_data_constant): Before going on to try to match
2824         a name, try to match a structure component.
2825
2826
2827         PR fortran/30870
2828         * resolve.c (resolve_actual_arglist): Do not reject a generic
2829         actual argument if it has a same name specific interface.
2830
2831         PR fortran/31163
2832         * trans-array.c (parse_interface): Do not nullify allocatable
2833         components if the symbol has the saved attribute.
2834
2835 2007-03-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2836
2837         * trans-array.c (gfc_trans_auto_array_allocation): Replace
2838         fold(convert()) by fold_convert().
2839         (gfc_duplicate_allocatable): Likewise.
2840         * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use
2841         build_int_cst instead of converting an integer_zero_node
2842         to the final type.
2843
2844 2007-03-14  Jakub Jelinek  <jakub@redhat.com>
2845
2846         * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
2847
2848 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
2849
2850         PR fortran/30933
2851         PR fortran/30948
2852         PR fortran/30953
2853         * intrinsics.texi (CHDIR): Fix argument names, note
2854         that STATUS must be a default integer.
2855         (CTIME): Fix argument names, note that RESULT must
2856         be a default integer.
2857         (EXIT): Note that STATUS must be a default integer.
2858
2859 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
2860
2861         PR fortran/28068
2862         * intrinsic.texi: General whitespace cleanup, remove
2863         comment about missing intrinsics.
2864         (menu): Add lines for new entries listed below.
2865         (ACOSH): Mention specific function DACOSH, correct
2866         description phrasing.
2867         (ASINH): Mention specific function DASINH, correct
2868         description phrasing.
2869         (ATANH): Mention specific function DATANH, correct
2870         description phrasing.
2871         (COS): Add index entry for CCOS.
2872         (CPU_TIME): Correct "REAL" to "REAL(*)".
2873         (EXP): Add index entry for CEXP.
2874         (INT): Correct argument name to "A".
2875         (INT2): New entry.
2876         (INT8): New entry.
2877         (LONG): New entry.
2878         (MAX): Add index entries for specific variants.
2879         (MCLOCK): New entry.
2880         (MCLOCK8): New entry.
2881         (SECNDS): Adjust to a more standard form.
2882         (SECOND): New entry.
2883         (TIME): Add cross-reference to MCLOCK.
2884         (TIME8): Add cross-reference to MCLOCK8.
2885
2886 2007-03-11  Paul Thomas  <pault@gcc.gnu.org>
2887
2888         PR fortran/30883
2889         * parse.c (parse_interface): Use the default types from the
2890         formal namespace if a function or its result do not have a type
2891         after parsing the specification statements.
2892
2893 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
2894
2895         * intrinsic.texi: (ICHAR) Improve internal I/O note.
2896         (ACHAR): Reference it.
2897         (CHAR): Reference it.
2898         (IACHAR): Reference it.
2899
2900 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
2901
2902         * intrinsic.texi: (LINK) Document function form.
2903         (RENAME): Likewise.
2904         (SYMLNK): Likewise.
2905         (SYSTEM): Likewise.
2906         (UNLINK): Likewise.
2907
2908 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
2909
2910         * intrinsic.texi: minor typo fixes, removed prologue.
2911         (FSEEK): moved to correct place in alphabetical order.
2912
2913 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
2914
2915         PR fortran/30947
2916         * check.c (gfc_check_alarm_sub): Added check for default integer 
2917         kind of status argument.
2918         * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of 
2919         status argument.
2920         * intrinsic.texi (ALARM): Extended documentation.
2921
2922 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
2923
2924         * intrinsic.texi (GERROR, ISATTY, TTYNAM): New.
2925         (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo.
2926         * intrinsic.c (add_subroutines): Adjusted dummy argument names 
2927         of GERROR and TTYNAM.
2928
2929 2007-07-08  Tobias Burnus  <burnus@net-b.de>
2930
2931         * module.c (gfc_match_use): Support renaming of operators
2932         in USE statements.
2933         * gfortran.texi (Fortran 2003 Status): Document support of
2934         renaming of operators.
2935
2936 2007-07-08  Tobias Burnus  <burnus@net-b.de>
2937
2938         PR fortran/30973
2939         * module.c (read_module): Always import module name as symbol.
2940         (gfc_match_use): Disallow module name in the only clause of
2941         a use statement.
2942
2943 2007-03-08  Paul Thomas  <pault@gcc.gnu.org>
2944
2945         PR fortran/31011
2946         * expr.c (find_array_section): Correct arithmetic for section
2947         size.
2948
2949 2007-03-07  Brooks Moses  <brooks.moses@codesourcery.com>
2950
2951         * iresolve.c (gfc_resolve_ishftc): Correct s_kind value.
2952
2953 2007-03-06  Daniel Franke  <franke.daniel@gmail.com>
2954
2955         PR documentation/30950
2956         * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names.
2957         (FREE): Fix call syntax.
2958
2959 2007-03-06  Brooks Moses  <brooks.moses@codesourcery.com>
2960
2961         * intrinsic.texi: Limit column widths to a total of .85.
2962
2963 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
2964
2965         * gfortran.texi (GFortran and G77): Rewrite completely.
2966
2967 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
2968
2969         * match.c (gfc_match_name): Expanded comment.
2970
2971 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
2972
2973         * gfortran.texi (Old-style kind specifications): Document
2974         special handling of old-style kind specifiers for COMPLEX.
2975         * decl.c (gfc_match_old_kind_spec): Document kind/bytesize
2976         assumptions for COMPLEX in comment.
2977
2978 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
2979
2980         PR 31050
2981         * gfortranspec.c (lang_specific_driver): Update program
2982         name and copyright date.
2983
2984 2007-03-03  Paul Thomas  <pault@gcc.gnu.org>
2985
2986         PR fortran/30882
2987         * check.c (dim_rank_check): The shape of subsections of
2988         assumed-size arrays is known.
2989
2990 2007-03-02  Paul Thomas  <pault@gcc.gnu.org>
2991             Tobias Burnus  <burnus@net-b.de>
2992
2993         PR fortran/30873
2994         * decl.c (gfc_match_entry): Remove erroneous entry result check.
2995
2996 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2997
2998         * Make-lang.in: Add install-pdf target as copied from
2999         automake v1.10 rules.
3000
3001 2007-03-01  Tobias Burnus  <burnus@net-b.de>
3002
3003         PR fortran/30865
3004         * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers.
3005
3006 2007-02-28  Tobias Burnus  <burnus@net-b.de>
3007             Paul Thomas  <pault@gcc.gnu.org>
3008
3009         PR fortran/30888
3010         PR fortran/30887
3011         * resolve.c (resolve_actual_arglist): Allow by-value
3012         arguments and non-default-kind for %VAL().
3013         * trans-expr.c (conv_arglist_function): Allow
3014         non-default-kind for %VAL().
3015
3016 2007-02-28  Tobias Burnus  <burnus@net-b.de>
3017
3018         PR fortran/30968
3019         * primary.c (next_string_char): Correct reading a character
3020         after the delimiter.
3021         (match_string_constant): Print warning message only once.
3022
3023 2007-02-27  Richard Guenther  <rguenther@suse.de>
3024
3025         * trans-array.c (structure_alloc_comps): Use correct type
3026         for null pointer constant.
3027
3028 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
3029
3030         * gfortran.texi: Standardize title page, remove version number
3031         from copyright page.
3032
3033 2007-02-26  Thomas Koenig  <Thomas.Koenig@online.de>
3034             Paul Thomas  <pault@gcc.gnu.org>
3035
3036         PR fortran/30865
3037         * trans-intrinsic.c (gfc_conv_intrinsic_size):
3038         If dim is an optional argument, check for its
3039         presence and call size0 or size1, respectively.
3040
3041 2007-02-23  Paul Thomas <pault@gcc.gnu.org>
3042
3043         PR fortran/30660
3044         * resolve.c (has_default_initializer): New function.
3045         (resolve_fl_variable): Call has_default_initializer to determine if
3046         the derived type has a default initializer to its ultimate
3047         components.
3048
3049
3050 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3051
3052         * options.c (set_default_std_flags): New function to consolidate
3053         setting the flags.
3054         (gfc_init_options): Use new function.
3055         (gfc_handle_option): Use new function.
3056
3057 2007-02-22  Brooks Moses  <brooks.moses@codesourcery.com>
3058
3059         * gfortran.texi (Old-style kind specifications): Document
3060         special handling of old-style kind specifiers for COMPLEX.
3061         * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize
3062         assumptions in comment.
3063
3064 2007-02-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3065
3066         * parse.c (next_free): Gooble spaces after OpenMP sentinel.
3067
3068 2007-02-20  Thomas Koenig  <Thomas.Koenig@online.de>
3069
3070         PR fortran/30869
3071         * match.c (gfc_match_iterator): Remove conflict between
3072         loop variable and pointer.
3073
3074 2007-02-20  Tobias Burnus  <burnus@net-b.de>
3075
3076         PR fortran/30522
3077         * symbol.c (gfc_add_volatile): Allow to set VOLATILE
3078           attribute for host-associated variables.
3079         * gfortran.h (symbol_attribute): Save namespace
3080           where VOLATILE has been set.
3081         * trans-decl.c (gfc_finish_var_decl): Move variable
3082           declaration to the top.
3083
3084 2007-02-20  Tobias Burnus  <burnus@net-b.de>
3085
3086         PR fortran/30783
3087         * resolve.c (resolve_symbol): Add character dummy VALUE check.
3088
3089 2007-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
3090
3091         PR libfortran/30533
3092         * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of
3093         argument to default integer.
3094         (gfc_resolve_minloc): Likewise.
3095
3096 2007-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3097
3098         PR fortran/30681
3099         * options.c (gfc_init_options): Relax warning level for obsolescent.
3100         * match.c (match_arithmetic_if): Change to obsolescent from deleted.
3101         (gfc_match_if): Same.
3102
3103 2007-02-18  Roger Sayle  <roger@eyesopen.com>
3104
3105         * trans-array.c (gfc_build_constant_array_constructor): When the
3106         shape of the constructor is known, use that to construct the
3107         gfc_array_spec.
3108         (gfc_trans_constant_array_constructor): Initialize the "info"
3109         information for all of the dimensions of the array constructor.
3110         (constant_array_constructor_loop_size): New function.
3111         (gfc_trans_array_constructor): Use it to determine whether a
3112         loop is suitable for "constant array constructor" optimization.
3113
3114         * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
3115         instead of build2, to avoid conditions like "(a != b) != 0".
3116
3117 2007-02-18  Roger Sayle  <roger@eyesopen.com>
3118             Paul Thomas <pault@gcc.gnu.org>
3119
3120         PR fortran/30400
3121         * match.c (match_forall_iterator): Use gfc_match_expr instead
3122         of gfc_match_variable to match the iterator variable.  Return
3123         MATCH_NO if not a variable.  Remove the reset of the symbol's
3124         flavor in cleanup.
3125
3126 2007-02-16  Tobias Burnus  <burnus@net-b.de>
3127
3128         PR fortran/30793
3129         * trans-decl.c (gfc_generate_function_code): Do not initialize
3130         pointers to derived components.
3131
3132 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
3133             Brooks Moses  <brooks.moses@codesourcery.com>
3134             Lee Millward  <lee.millward@codesourcery.com>
3135
3136         * trans-expr.c (gfc_conv_power_op): Use build_call_expr.
3137         (gfc_conv_string_tmp): Likewise.
3138         (gfc_conv_concat_op): Likewise.
3139         (gfc_build_compare_string): Likewise.
3140         (gfc_conv_function_call): Use build_call_list instead of build3.
3141
3142         * trans-array.c (gfc_trans_allocate_array_storage): Use
3143         build_call_expr.
3144         (gfc_grow_array): Likewise.
3145         (gfc_trans_array_ctor_element): Likewise.
3146         (gfc_trans_array_constructor_value): Likewise.
3147         (gfc_array_allocate): Likewise.
3148         (gfc_array_deallocate): Likewise.
3149         (gfc_trans_auto_array_allocation): Likewise.
3150         (gfc_trans_dummy_array_bias): Likewise.
3151         (gfc_conv_array_parameter): Likewise.
3152         (gfc_trans_dealloc_allocated): Likewise.
3153         (gfc_duplicate_allocatable): Likewise.
3154
3155         * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
3156         (gfc_trans_omp_flush): Likewise.
3157
3158         * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
3159         (gfc_trans_pause): Likewise.
3160         (gfc_trans_stop): Likewise.
3161         (gfc_trans_character_select): Likewise.
3162         (gfc_do_allocate): Likewise.
3163         (gfc_trans_assign_need_temp): Likewise.
3164         (gfc_trans_pointer_assign_need_temp): Likewise.
3165         (gfc_trans_forall_1): Likewise.
3166         (gfc_trans_where_2): Likewise.
3167         (gfc_trans_allocate): Likewise.
3168         (gfc_trans_deallocate): Likewise.
3169
3170         * trans.c (gfc_trans_runtime_check): Use build_call_expr.
3171
3172         * trans-io.c (gfc_trans_open): Use build_call_expr.
3173         (gfc_trans_close): Likewise.
3174         (build_filepos): Likewise.
3175         (gfc_trans_inquire): Likewise.
3176         (NML_FIRST_ARG): Delete.
3177         (NML_ADD_ARG): Delete.
3178         (transfer_namelist_element): Use build_call_expr.
3179         (build_dt): Likewise.
3180         (gfc_trans_dt_end): Likewise.
3181         (transfer_expr): Likewise.
3182         (transfer_array-desc): Likewise.
3183
3184         * trans-decl.c (gfc_generate_function_code): Use build_call_expr.
3185         (gfc_generate_constructors): Likewise.
3186
3187         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
3188         (gfc_conv_intrinsic_fdate): Likewise.
3189         (gfc_conv_intrinsic_ttynam): Likewise.
3190         (gfc_conv_intrinsic_array_transfer): Likewise.
3191         (gfc_conv_associated): Likewise.
3192         (gfc_conv_intrinsic_si_kind): Likewise.
3193         (gfc_conv_intrinsic_trim): Likewise.
3194         (gfc_conv_intrinsic_repeat: Likewise.
3195         (gfc_conv_intrinsic_iargc): Likewise.
3196
3197 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
3198
3199         PR fortran/30779
3200         * scanner.c (gfc_next_char_literal): Add check for end of file after
3201         call to advance_line.
3202
3203 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3204
3205         PR fortran/30799
3206         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
3207         kind.
3208
3209 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
3210
3211         * misc.c (gfc_typename): Fix potential buffer overflow.
3212
3213 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
3214
3215         PR fortran/30554
3216         * module.c (read_module): Set pointer_info to referenced if the
3217         symbol has no namespace.
3218
3219 2007-02-12  Nick Clifton  <nickc@redhat.com>
3220
3221         * lang.opt: Add Warning attribute to warning options.
3222
3223 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
3224
3225         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
3226         (SLEEP): Added section and documentation.
3227
3228 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
3229
3230         PR fortran/30478
3231         * decl.c (add_init_expr_to_sym): Remove ENUM specific code.
3232         (variable_decl): Likewise.  Rewrap comment.
3233         (match_attr_spec): Remove ENUM specific code.
3234         (gfc_match_enum): Fix typo in error message.
3235         (enumerator_decl): New function.
3236         (gfc_match_enumerator_def): Use enumerator_decl instead of
3237         variable_decl.  Adapt code accordingly.
3238
3239 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
3240
3241         PR fortran/30554
3242         * module.c (find_symtree_for_symbol): New function to return
3243         a symtree that is not a "unique symtree" given a symbol.
3244         (read_module): Do not automatically set pointer_info to
3245         referenced because this inhibits the generation of a unique
3246         symtree.  Recycle the existing symtree if possible by calling
3247         find_symtree_for_symbol.
3248
3249         PR fortran/30319
3250         * decl.c (add_init_expr_to_sym): Make new charlen for an array
3251         constructor initializer.
3252
3253 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
3254
3255         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
3256         and __emutls_register_common.
3257         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
3258         * trans-common.c (build_common_decl): Don't check have_tls.
3259         * trans-decl.c (gfc_finish_var_decl): Likewise.
3260         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
3261         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
3262
3263 2007-02-09  Tobias Burnus  <burnus@net-b.de>
3264
3265         PR fortran/30512
3266         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
3267           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
3268
3269 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3270
3271         PR fortran/30720
3272         * trans-array.c (gfc_trans_create_temp_array): Remove use of the
3273         function argument. Always generate code for negative extent.
3274         Simplify said code.
3275         * trans-array.h (gfc_trans_create_temp_array): Change prototype.
3276         * trans-expr.c (gfc_conv_function_call): Remove use of last argument
3277         of gfc_trans_create_temp_array.
3278         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise.
3279         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
3280
3281 2007-02-08  Roger Sayle  <roger@eyesopen.com>
3282
3283         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
3284         mask expression is a compile-time constant (".true." or ".false.").
3285
3286 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3287
3288         PR fortran/30611
3289         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate
3290         arguments only once. Generate check that NCOPIES argument is not
3291         negative.
3292
3293 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
3294
3295         PR fortran/30605
3296         * fortran/invoke.texi: Update documentation.
3297         * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003
3298         and -pedantic.
3299
3300 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
3301
3302         * trans-array.c: Fix a comment typo.
3303
3304 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
3305
3306         PR fortran/30514
3307         * array.c (match_array_element_spec): If the length of an array is
3308         negative, adjust the upper limit to make it zero length.
3309
3310         PR fortran/30660
3311         * resolve.c (pure_function, resolve_function): Initialize name to
3312         null to clear up build warnings.
3313         (resolve_fl_variable): Look at components explicitly to check for
3314         default initializer, rather than using gfc_default_initializer.
3315
3316 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
3317
3318         PR fortran/30683
3319         * resolve.c (resolve_generic_f): Check for non-NULL sym.
3320
3321 2007-02-02  Roger Sayle  <roger@eyesopen.com>
3322
3323         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
3324         NON_LVALUE_EXPR nodes and useless type conversions.
3325
3326 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
3327
3328         PR fortran/30284
3329         PR fortran/30626
3330         * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute
3331         from function and make sure that substring lengths are
3332         translated.
3333         (is_aliased_array): Remove static attribute.
3334         * trans.c : Add prototypes for gfc_conv_aliased_arg and
3335         is_aliased_array.
3336         * trans-io.c (set_internal_unit): Add the post block to the
3337         arguments of the function.  Use is_aliased_array to check if
3338         temporary is needed; if so call gfc_conv_aliased_arg.
3339         (build_dt): Pass the post block to set_internal_unit and
3340         add to the block after all io activiy is done.
3341
3342 2007-02-01  Roger Sayle  <roger@eyesopen.com>
3343
3344         * trans-array.c (gfc_conv_expr_descriptor): We don't need to use
3345         a temporary array to pass a constant non-character array constructor.
3346         Generalize the descriptor generation code to handle scalarizer
3347         "info" without an array reference.
3348
3349 2007-02-01  Roger Sayle  <roger@eyesopen.com>
3350
3351         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
3352         dependency checking for array constructors.
3353
3354 2007-02-01  Roger Sayle  <roger@eyesopen.com>
3355
3356         * trans-stmt.c (compute_overall_iter_number): Document function
3357         arguments.  Generalize "unconditional forall nest with constant
3358         bounds" optimization to eliminate unconditional inner loops with
3359         constant bounds.
3360
3361 2007-01-31  Tobias Burnus  <burnus@net-b.de>
3362
3363         PR fortran/30520
3364         * interface.c (compare_actual_formal): Check conformance between
3365           actual and VOLATILE dummy arguments.
3366         * symbol.c (gfc_add_volatile): Allow setting of VOLATILE
3367           multiple times in different scopes.
3368         * decl.c (gfc_match_volatile): Search symbol in host association.
3369
3370 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
3371
3372         * simplify.c, trans-array.c: Fix comment typos.
3373
3374 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3375
3376         * invoke.texi (Code Gen Options): Fix abbreviation typo.
3377         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
3378
3379 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
3380
3381         PR fortran/30432
3382         * trans-types.c (gfc_get_function_type): Do not add void_type_node