OSDN Git Service

-------------------------------------------------------------------
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
2
3         PR fortran/17472
4         PR fortran/18209
5         PR fortran/18396
6         PR fortran/19467
7         PR fortran/19657
8         * fortran/trans-io.c (gfc_build_io_library_fndecls): Create declaration for
9         st_set_nml_var and st_set_nml_var_dim. Remove declarations of old
10         namelist functions.
11         (build_dt): Simplified call to transfer_namelist_element.
12         (nml_get_addr_expr): Generates address expression for start of object data. New function.
13         (nml_full_name): Qualified name for derived type components. New function.
14         (transfer_namelist_element): Modified for calls to new functions and improved derived
15         type handling.
16
17 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
18
19         * scanner.c (gfc_next_char_literal): Reset truncation flag
20         for lines ending in a comment for both fixed and free form.
21         (load_line): Do not set truncated flag if only truncating
22         the EOL marker.
23
24 2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>
25
26         PR fortran/14569
27         * gfortran.h (gfc_linebuf): Add truncated field.
28         * parse.c (next_statement): Handle warning for truncated
29         lines.
30         * scanner.c (load_line): Return if line was truncated.
31         No longer warn for truncated lines.  Remove unused parameters.
32         (load_file): Store load_line return value to linebuf.
33         (gfc_error_recovery): Do not advance line at the end.
34
35 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
36
37         * gfortran.h (gfc_real_info): Add subnormal struct member.
38         * arith.c (gfc_arith_init_1): Set it.
39         (gfc_check_real_range): Use it.
40         * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
41
42 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
43
44         * simplify.c: Fix a comment typo.
45
46 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
47
48         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
49
50 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
51
52         * simplify.c (gfc_simplify_nearest): Overhaul.
53
54 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
55
56         * interface.c: Fix a comment typo.
57
58 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
59
60         * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
61         Fortran 95.
62
63 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
64
65         * simplify.c (gfc_simplify_anint): Use mpfr_round()
66         (gfc_simplify_dnint): ditto.
67         (gfc_simplify_nint): ditto.
68
69 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
70
71         PR fortran/13257
72         * io.c (check_format): Allow an optional comma
73         between descriptors.
74
75 2005-04-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
76
77         * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
78         comment according to GNU coding style.
79         (gfc_match_if): Remove gfc_ prefix in call to
80         match_arithmetic_if.
81
82 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
83
84         * match.c (gfc_match_arithmetic_if): Declare static.
85
86 2005-04-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
87
88         PR fortran/17229
89         * match.c (gfc_match_arithmetic_if): New function to match an
90         arithmetic IF statement.
91         (gfc_match_if): Use gfc_match_arithmetic_if to match an
92         arithmetic IF statement embedded in a simple IF statement.
93
94 2005-04-07  Steven G. Kargl  <kargls@comcast.net>
95
96         * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
97
98 2005-04-06  Steven G. Kargl  <kargls@comcast.net>
99
100         * invoke.texi: Remove documentation of -std=f90 
101
102 2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
103
104         * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
105         non-pointer assignment.
106
107 2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>
108
109         PR fortran/15959
110         PR fortran/20713
111
112         * array.c (resolve_character_array_constructor): New function. Set
113         constant character array's character length.
114         (gfc_resolve_array_constructor): Use it.
115         * decl.c (add_init_expr_to_sym): Set symbol and initializer character
116         length.
117         (gfc_set_constant_character_len): New function. Set constant character
118         expression according the given length.
119         * match.h (gfc_set_constant_character_len): Add prototype.
120
121 2005-04-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
122
123         * intrinsic.texi: BES?? functions are not in the f95 standard.
124
125 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
126
127         * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
128
129 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
130
131         * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
132         BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
133
134 2005-04-02  Steven G. Kargl  <kargls@comcast.net>
135
136         * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
137
138 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
139
140         * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
141         trans.h: Fix comment typos.
142
143 2005-03-29  Steven G. Kargl  <kargls@comcast.net>
144
145         * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
146         flag_default_integer, flag_default_real
147         * invoke.texi: Update documentation
148         * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8   
149         fdefault-integer-8, and fdefault-real-8 definitions.
150         * options.c (gfc_init_options): Set option defaults
151         (gfc_handle_option): Handle command line options.
152         * trans-types.c (gfc_init_kinds): Use options.
153
154 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
155
156         * f95-lang.c (builtin_function): Process the attrs parameter
157         and apply the "const" attribute to the builtin if found.
158
159 2005-03-27  Steven G. Kargl  <kargls@comcast.net>
160
161         * intrinsic.texi: Document AIMAG, AINT, ALL
162
163 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
164
165         * arith.c (check_result): Fix illogical logic.
166
167 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
168
169         * trans-common.c (create_common): Build RECORD_NODE for common blocks
170         contain no equivalence objects.
171         (add_equivalences): New argument saw_equiv.
172         (trans_common): New local variable saw_equiv.
173         (finish_equivalences): Add a local variable dummy, Always pass true
174         for the 3rd parameter to create_common.
175
176 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
177
178         * intrinsic.texi: Fix "make dvi"
179
180 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
181
182         * intrinsic.texi: New file.
183         * gfortran.texi: Include it; white space change; fix typo.
184
185 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
186
187         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
188
189 2005-03-23  Steven Bosscher  <stevenb@suse.de>
190
191         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
192         * trans-array.c (gfc_trans_allocate_array_storage,
193         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
194         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
195         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
196         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
197         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
198         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
199         gfc_conv_expr_descriptor): Likewise.
200         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
201         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
202         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
203         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
204         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
205         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
206         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
207         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
208         gfc_conv_intrinsic_merge, prepare_arg_info,
209         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
210         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
211         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
212         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
213         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
214         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
215         Likewise.
216         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
217         * trans.c (gfc_add_modify_expr): Likewise.
218
219 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
220
221         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
222         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
223         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
224         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
225         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
226         gfc_check_perror): new functions to check newly implemented
227         g77 intrinsics.
228         * gfortran.h: adding symbols for new intrinsics.
229         * intrinsic.c (add_functions): adding new intrinsics.
230         (add_subroutines): adding new intrinsics.
231         * intrinsic.h: prototype for all checking and resolving
232         functions.
233         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
234         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
235         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
236         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
237         gfc_resolve_kill_sub, gfc_resolve_link_sub,
238         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
239         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
240         gfc_resolve_perror): new functions to resolve intrinsics.
241         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
242         for new symbols.
243
244 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
245
246         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
247         in which the variable is declared.
248
249         PR fortran/18525
250         * resolve.c (was_declared): Also check for dummy attribute.
251
252 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
253
254         * gfortran.h (arith): Remove ARITH_0TO0.
255         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
256         (gfc_arith_power): Remove special casing of zero to integral
257         power zero.
258
259 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
260
261         * Make-lang.in (fortran-warn): Remove -Wno-error.
262         (expr.o-warn, resolve.o-warn, simplify.o-warn,
263         trans-common.o-warn): Specify -Wno-error.
264
265 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
266
267         * trans-array.c (gfc_trans_static_array_pointer,
268         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
269         comment and formatting typos.
270
271 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
272
273         * invoke.texi: Fix typos.
274
275 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
276
277         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
278
279 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
280
281         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
282         to zero on label_tree.
283
284 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
285
286         PR fortran/18827
287         * io.c (resolve_tag): Add checking on assigned label.
288         (match_dt_format): Does not set symbol assign attribute.
289         * match.c (gfc_match_goto):Does not set symbol assign attribute.
290         * resolve.c (resolve_code): Add checking on assigned label.
291         * trans-common.c (build_field): Deals with common variable assigned
292         a label.
293         * trans-stmt.c (gfc_conv_label_variable): New function.
294         (gfc_trans_label_assign): Use it.
295         (gfc_trans_goto): Ditto.
296         * trans-io.c (set_string): Ditto.
297         * trans.h (gfc_conv_label_variable): Add prototype.
298
299 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
300
301         PR fortran/20467
302         * symbol.c (check_conflict): A dummy argument can't be a statement
303         function.
304
305 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
306
307         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
308         the argument of the shift to the unsigned type.
309
310 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
311
312         PR fortran/16907
313         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
314
315 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
316
317         PR fortran/20323
318         * resolve.c (gfc_resolve): Check if character lengths are
319         specification expressions.
320
321 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
322
323         PR fortran/20361
324         * trans-array.c (gfc_stack_space_left): Remove unused variable.
325         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
326         code.
327         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
328         Remove declaration / prototype.
329         * trans-common.c (build_equiv_decl): Give union a name.  Check if
330         it can be put on the stack.
331         * trans-decl.c (gfc_stack_space_left): Move function here.
332         (gfc_build_qualified_array): Fix comment typo.
333         * trans.h (gfc_put_var_on_stack): Add prototype.
334
335 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
336
337         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
338         * decl.c, trans.c: Don't use C++ style comments.
339         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
340         ifsrc): Give names to enums and use ENUM_BITFIELD.
341         (gfc_access): Remove trailing comma.
342
343 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
344
345         PR 19936
346         * primary.c (match_complex_constant): Mangled complex constant may
347         be an implied do-loop.  Give implied do-loop matcher a chance.
348
349 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
350
351         PR fortran/19754
352         * resolve.c (compare_shapes):  New function.
353         (resolve_operator): Use it.
354
355 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
356
357         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
358         type for COMPLEX constants.
359
360 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
361
362         PR fortran/19673
363         * trans-expr.c (gfc_conv_function_call): Correctly dereference
364         argument from a pointer function also if it has a result clause.
365
366 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
367
368         * expr.c (gfc_copy_shape_excluding): Change && to ||.
369
370 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
371
372         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
373         clarify comment.
374
375 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
376         (port from g95)
377
378         PR fortran/19479
379         * simplify.c (gfc_simplify_bound): Rename to ...
380         (simplify_bound): ... this and overhaul.
381
382 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
383
384         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
385         (gfc_conv_intrinsic_function): update function calls
386
387 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
388
389         PR fortran/20058
390         * trans-types.c (gfc_max_integer_kind): Declare
391         (gfc_init_kinds): Initialize it.
392         * gfortran.h (gfc_max_integer_kind): extern it.
393         * primary.c (match_boz_constant): Use it; remove gfortran extension
394         of kind suffixes on BOZ literal constants
395
396
397 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
398
399         * arith.c (gfc_check_real_range):  Remove multiple returns
400         (check_result): New function.
401         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
402         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
403
404
405 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
406
407         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
408
409
410 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
411
412         Unrevert previously reverted patch.  Adding this fix:
413         * module.c (find_true_name): Deal with NULL module.
414
415 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
416
417         Revert yesterday's patch:
418         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
419
420                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
421                 ... argument.  Copy string instead of pointing to it.
422
423 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
424
425         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
426         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
427         gfc_get_namespace.
428         * module.c (mio_namespace_ref, load_needed): Likewise.
429         * parse.c (parse_interface, parse_contained): Likewise.  Here the
430         correct second argument matters.
431         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
432         parent's implicit types if this is set.
433         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
434         * trans-common.c (build_common_decl): Likewise.
435
436         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
437         formatting.
438         * symbol.c (gfc_set_default_type): Issue error only once, by setting
439         and checking 'untyped' attribute.
440
441         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
442         fields into new struct 'op' inside the 'value' union.
443         * arith.c (eval_intrinsic): Adapt all users.
444         * dependency.c (gfc_check_dependency): Likewise.
445         * dump-parse-tree.c (gfc_show_expr): Likewise.
446         * expr.c (gfc_get_expr): Don't clear removed fields.
447         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
448         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
449         check_intrinsic_op): Adapt to new field names.
450         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
451         nullify 'esym' and 'isym' fields of new function call.
452         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
453         Adapt to renamed structure fields.
454         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
455         * module.c (mio_expr): Likewise.
456         * resolve.c (resolve_operator): Likewise.
457         (gfc_find_forall_index): Likewise.  Only look through operands
458         if dealing with EXPR_OP
459         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
460         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
461         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
462
463         [ Reverted ]
464         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
465         'name' a 'const char *'.
466         (gfc_symbol): Likewise, also for 'module'.
467         (gfc_symtree): Make 'name' a 'const char *'.
468         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
469         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
470         'char *' argument.
471         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
472         initialize 'SYM->module'.
473         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
474         pointer instead of empty string.
475         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
476         * interface.c (gfc_compare_types): Adapt check to account for possible
477         NULL pointer.
478         (compare_actual_formal): Check for NULL pointer instead of empty
479         string.
480         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
481         Add 'const' qualifier.
482         (conv_name): Return a heap allocated string.
483         (find_conv): Add 'const' qualifier to 'target'.
484         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
485         (make_generic): Check for NULL pointer instead of empty string.
486         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
487         (add_conv): No need to strcpy result from 'conv_name'.
488         (sort_actual): Check for NULL pointer instead of empty  string.
489         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
490         Adapt prototype.
491         * module.c (compare_true_names): Compare pointers instead of strings
492         for 'module' member.
493         (find_true_name): Initialize string fields with gfc_get_string.
494         (mio_pool_string): New function.
495         (mio_internal_string): Adapt comment.
496         (mio_component_ref, mio_component, mio_actual_arg): Use
497         'mio_pool_string' instead of 'mio_internal_string'.
498         (mio_symbol_interface): Add 'const' qualifier to string arguments.
499         Add level of indirection. Use 'mio_pool_string' instead of
500         'mio_internal_string'.
501         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
502         (write_common, write_symbol): Use 'mio_pool_string' instead of
503         'mio_internal_string'.
504         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
505         instead of empty string.
506         (write_operator, write_generic): Pass correct type variable to
507         'mio_symbol_interface'.
508         (write_symtree): Use 'mio_pool_string' instead of
509         'mio_internal_string'.
510         * primary.c (match_keyword_arg): Adapt check to possible
511         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
512         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
513         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
514         'strcpy'.
515         (ambiguous_symbol): Check for NULL pointer instead of empty string.
516         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
517         arguments.
518         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
519         pointer instead of empty string.
520         * trans-decl.c (gfc_sym_mangled_identifier,
521         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
522         gfc_get_symbol_decl): Likewise.
523         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
524         argument.  Copy string instead of pointing to it.
525
526 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
527
528         * intrinsic.h, st.c: Update copyright.
529
530 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
531
532         * symbol.c: Typos in comments.
533
534 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
535
536         * expr.c (gfc_type_convert_binary): Typo in comment.
537
538 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
539
540         * check.c (gfc_check_selected_int_kind): New function.
541         * intrinsic.h: Prototype it.
542         * intrinsic.c (add_function): Use it.
543         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
544           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
545
546 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
547
548         * check.c (gfc_check_int): improve checking of optional kind
549         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
550
551 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
552
553         * check.c (gfc_check_achar): New function
554         * intrinsic.h: Prototype it.
555         * intrinsic.c (add_function): Use it.
556
557 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
558
559         * trans-stmt.c (generate_loop_for_temp_to_lhs,
560         generate_loop_for_rhs_to_temp): Remove if whose condition is
561         always true.
562
563 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
564
565         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
566         (gfc_use_derived): ... this function.
567
568 2005-02-09  Richard Henderson  <rth@redhat.com>
569
570         * f95-lang.c (gfc_init_builtin_functions): Call
571         build_common_builtin_nodes; do not define any functions handled
572         by it.
573
574 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
575
576         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
577         EXPR_SUBSTRING.
578         (gfc_is_constant_expr): Check 'ref' to determine if substring
579         reference is constant.
580         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
581         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
582         and 'op2'.
583         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
584
585 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
586
587         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
588         gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
589         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
590         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
591         gfc_add_procedure): Add argument.
592         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
593         gfc_match_null, match_type_spec, match_attr_spec,
594         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
595         Update callers to match.
596         (gfc_match_entry) : Likewise, fix comment typo.
597         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
598         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
599         gfc_match_derived_decl): Update callers.
600         * interface.c (gfc_match_interface): Likewise.
601         * match.c (gfc_match_label, gfc_add_flavor,
602         gfc_match_call, gfc_match_common, gfc_match_block_data,
603         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
604         Likewise.
605         * parse.c (parse_derived, parse_interface, parse_contained),
606         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
607         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
608         * symbol.c (check_conflict, check_used): Add new 'name' argument,
609         use when printing error message.
610         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
611         gfc_add_generic, gfc_add_in_common, gfc_add_data,
612         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
613         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
614         gfc_add_procedure): Add new 'name' argument.  Pass along to
615         check_conflict and check_used.
616         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
617         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
618         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
619         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
620         argument in calls to any of the modified functions.
621
622 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
623
624         * gfortran.texi: Don't give last update date.
625
626 2006-01-30  Richard Henderson  <rth@redhat.com>
627
628         * options.c (gfc_init_options): Zero flag_errno_math.
629
630 2005-01-29  Paul Brook  <paul@codesourcery.com>
631
632         PR fortran/18565
633         * check.c (real_or_complex_check): New function.
634         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
635         * intrinsic.c (add_functions): Use new check functions.
636         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
637         Add prototypes.
638
639 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
640
641         PR fortran/19589
642         * expr.c (gfc_check_assign):  Check for conformance of logical operands
643
644 2004-01-27  Steven Bosscher  <stevenb@suse.de>
645
646         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
647         TREE_USED for all labels.
648         (gfc_trans_entry_master_switch): Use it instead of building a
649         label by hand.
650         * trans-io.c (add_case): Likewise.
651         * trans-stmt.c (gfc_trans_integer_select): Likewise.
652
653 2004-01-23  Paul Brook  <paul@codesourcery.com>
654         Steven G. Kargl  <kargls@comcast.net>
655
656         PR fortran/17941
657         * arith.c (gfc_convert_real): Remove sign handling.
658         * primary.c (match_digits): Allow whitespace after initial sign.
659         (match_real_const): Handle signs here.  Allow whitespace after
660         initial sign.  Remove dead code.
661         (match_const_complex_part): Remove.
662         (match_complex_part): Use match_{real,integer}_const.
663         (match_complex_constant): Cross-promote integer types.
664
665 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
666
667         PR fortran/19294
668         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
669         transpose_c8 for complex types.
670
671 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
672
673         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
674         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
675         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
676         Follow spelling conventions.
677
678 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
679
680         PR fortran/19313
681         * trans-io.c (gfc_trans_inquire): Added code to support
682         pad.
683
684 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
685
686         * intrinsic.c (make_alias):  Add standard argument.
687         (add_functions): Update make_alias calls.
688
689 2005-01-22  Paul Brook  <paul@codesourcery.com>
690
691         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
692
693 2005-01-22  Paul Brook  <paul@codesourcery.com>
694
695         * gfortran.h (gfc_check_access): Add prototype.
696         * match.c (gfc_match_namelist): Remove TODO.
697         * module.c (check_access): Rename ...
698         (gfc_check_access): ... to this.  Boolify.  Update callers.
699         * resolve.c (resolve_symbol): Check for private objects in public
700         namelists.
701
702 2005-01-22  Paul Brook  <paul@codesourcery.com>
703
704         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
705         does not have an explicit type.
706         (gfc_match_variable): Resolve implicit derived types in all cases.
707         Resolve contained function types from their own namespace, not the
708         parent.
709         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
710         checking.  Resolve from the contained namespace, not the parent.
711
712 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
713
714         PR fortran/19543
715         * trans-const.c (gfc_conv_constant_to_tree): Give logical
716         constants the correct type.
717
718         PR fortran/19194
719         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
720         length parameters.
721         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
722         pointer fields.
723
724 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
725
726         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
727         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
728         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
729         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
730         trans-io.c, trans-stmt.c, trans.c: Update copyright.
731
732 2005-01-17  Ira Rosen  <irar@il.ibm.com>
733
734         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
735
736 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
737
738         PR fortran/19182
739         * error.c (error_char): Line-buffer errors / warnings.
740
741 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
742
743         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
744         unsigned issue.  Use build_int_cst instead of converting
745         integer_zero_node.  Remove unnecessary conversion.
746
747         * trans-types.c (gfc_get_character_type_len): : Use
748         gfc_charlen_type_node as basic type for the range field.
749
750         * trans-intrinsic.c (build_fixbound_expr,
751         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
752         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
753         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
754         of converting 'integer_zero_node' or 'integer_one_node'
755         respectively.
756         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
757         evade re-building.
758         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
759         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
760         'build_int_cst' instead of converting 'integer_zero_node' or
761         'integer_one_node' respectively.
762
763         * trans-intrinsic.c (gfc_conv_intrinsic_index,
764         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
765         'gfc'-prefix from local variable, remove dead code, use correct
766         type when inserting argument.
767
768         * trans-intrinsic.c, trans-types.c: Update copyright years.
769
770 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
771
772         PR 19168
773         * resolve.c (check_case_overlap): Typo in comment.
774         (validate_case_label_expr):  Fix up kinds of case values
775         (resolve_select): Properly handle kind mismatches.
776
777 2004-01-16  Paul Brook  <paul@codesourcery.com>
778
779         PR fortran/17675
780         * trans-common.c (translate_common): Remove duplicate function call.
781         (finish_equivalences): Preserve alignment when biasing offsets.
782
783 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
784
785         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
786         ASCII-like character encoding.
787
788 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
789
790         * resolve.c (compare_case): Cleanup.
791
792 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
793
794         * resolve.c (compare_case): Give arguments correct type.
795
796 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
797
798         * iresolve.c, trans-common.c, trans-types.c: Fix comment
799         typos.
800
801 2005-01-09  Paul Brook  <paul@codesourcery.com>
802
803         PR fortran/17675
804         * trans-common.c (current_common, current_offset): Remove.
805         (create_common): Add head argument.
806         (align_segment): New function.
807         (apply_segment_offset): New function.
808         (translate_common): Merge code from new_segment.  Handle alignment.
809         (new_segment): Remove.
810         (finish_equivalences): Ensure proper alignment.
811
812 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
813
814         * trans-const.c: Don't include unused math.h.
815
816         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
817         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
818         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
819         trailing whitespace.
820         (prepare_arg_info): Fix formatting, indenting and remove trailing
821         whitespace.
822         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
823         trailing whitespace.
824
825         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
826         gfc_constant_result, gfc_range_check, gfc_arith_power,
827         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
828         gfc_real2complex, gfc_complex2int, gfc_complex2real,
829         gfc_complex2complex): Fix whitespace issues.
830         * check.c (must_be, type_check, numeric_check, int_or_real_check,
831         logical_array_check, array_check, scalar_check, nonoptional_check,
832         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
833         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
834         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
835         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
836         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
837         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
838         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
839         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
840         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
841         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
842         gfc_check_lbound, gfc_check_logical, min_max_args,
843         gfc_check_min_max_integer, gfc_check_min_max_real,
844         gfc_check_min_max_double, gfc_check_matmul,
845         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
846         gfc_check_pack, gfc_check_precision, gfc_check_radix,
847         gfc_check_range, gfc_check_real, gfc_check_repeat,
848         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
849         gfc_check_set_exponent): Fix formatting issues.
850         (gfc_check_size, gfc_check_sign): Alphabetize function order,
851         remove whitespace-only line.
852         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
853         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
854         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
855         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
856         gfc_check_random_number, gfc_check_random_seed,
857         gfc_check_second_sub, gfc_check_system_clock,
858         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
859         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
860         gfc_check_unlink_sub): Fix formatting issues.
861
862 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
863
864         * gfortran.h: Remove outdated comment.  Don't include stdio.h
865         explicitly.
866
867 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
868
869         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
870         output of 'gfortran --version'.
871
872 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
873
874         * arith.c: Add system.h; remove string.h
875         * decl.c: Ditto
876         * matchexp.c: Ditto
877         * parse.c: Ditto
878         * resolve.c: Ditto
879         * st.c: Ditto
880         * check.c: Remove stdlib.h and stdarg.h
881         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
882         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
883         * f95-lang.c: Add system.h; remove stdio.h
884         * interface.c: Add system.h; remove stdlib.h and string.h
885         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
886         * io.c: Remove string.h
887         * simplify.c: Ditto
888         * match.c: Remove stdarg.h and string.h
889         * misc.c: Update copyright; add system.h; remove stdlib.h,
890         string.h, and sys/stat.h
891         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
892         unistd.h, and time.h
893         * option.c: Remove string.h and stdlib.h
894         * primary.c: Ditto
895         * scanner.c: Update copyright; add system.h; remove stdlib.h,
896         stdio.h, string.h, and strings.h
897         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
898         * trans-array.c: Remove stdio.h and gmp.h
899         * trans-const.c: Ditto
900         * trans-expr.c: Ditto
901         * trans-io.c: Ditto
902         * trans-stmt.c: Ditto
903         * trans.c: Ditto
904         * trans-intrinsic.c: Remove stdio.h and string.h
905
906 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
907
908         * gfortran.h (gfc_case): fix typo in comment.
909
910 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
911
912         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
913         logical shift.  Call fold.  Remove 0-bit shift shortcut.
914         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
915         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
916         result if width(arg 1) < 4 bytes.  Call fold.
917
918         PR fortran/19032
919         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
920         in front of function to match the standard.  Correct handling
921         of MODULO.
922
923 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
924
925         * trans-expr.c (gfc_conv_cst_int_power): Only check for
926         flag_unsafe_math_optimizations if we have a float type.
927
928 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
929
930         * gfortran.texi: Fix typo.
931
932 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
933
934         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
935         comment typo.
936
937 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
938
939         PR fortran/18993
940         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
941         (gfc_match_nullify): Make sure that ')' is in front of the end of
942         statement.
943
944         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
945         function.
946
947 2004-12-14  Richard Henderson  <rth@redhat.com>
948
949         * gfortran.h (gfc_expr.function.name): Make const.
950         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
951         (gfc_get_string): Update prototype.
952         * iresolve.c: Include tree.h.
953         (string_node, HASH_SIZE, string_head, hash): Remove.
954         (gfc_get_string): Use vsnprintf, get_identifier.
955         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
956         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
957         (gfc_done_1): Don't call gfc_iresolve_done_1.
958         * module.c (mio_allocated_string): Take and return const char *,
959         instead of modifying char**.
960         (mio_expr): Update to match.
961         * resolve.c (pure_function): Constify name argument.
962         (resolve_function): Constify name.
963         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
964
965 2004-12-12  Richard Henderson  <rth@redhat.com>
966
967         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
968         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
969         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
970         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
971         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
972         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
973         gfc_resolve_unpack: Use PREFIX.
974
975 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
976
977         PR fortran/18869
978         * match.c (gfc_match_common): Skip whitespace.
979
980 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
981
982         PR fortran/16581
983         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
984         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
985         integer kind check; Issue error for -std=f95 when needed.
986         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
987         GFC_STD_F95.
988         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
989         Promote arguments to same kind.
990
991 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
992         Paul Brook  <paul@codesourcery.com>
993
994         PR fortran/16222
995         * resolve.c (gfc_resolve_iterator_expr): New function.
996         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
997         start, end and stride to correct type.
998         (resolve_code): Pass extra argument.
999         * array.c (resolve_array_list): Pass extra argument.
1000         * gfortran.h (gfc_resolve): Add prototype.
1001         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
1002         Handle real type iterators.
1003
1004 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1005
1006         PR fortran/17175
1007         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
1008         same kind as C's 'int'.
1009         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
1010
1011 2004-12-08  Richard Henderson  <rth@redhat.com>
1012
1013         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
1014         to the output expression.
1015         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
1016         warning conversion.
1017         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
1018         to index kind.
1019
1020 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1021
1022         PR fortran/18826
1023         * resolve.c (resolve_code): Impose correct restrictions on
1024         assigned variable.
1025
1026         * decl.c (gfc_match_end): Use locus of END when eos is an error.
1027
1028 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1029         Paul Brook  <paul@codesourcery.com>
1030
1031         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
1032         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
1033         (gfc_check_stat, gfc_check_stat_sub): New functions.
1034         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
1035         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
1036         fstat, and stat to intrinsics symbol tables.
1037         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
1038         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
1039         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
1040         (gfc_resolve_stat, gfc_resolve_flush): New functions.
1041         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
1042         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
1043
1044 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1045
1046         * intrinsic.c: Fix and add comments, fix function declarations
1047         (OPTIONAL,REQUIRED): New symbols
1048         (add_functions,add_subroutines): Use symbols
1049         (gmp.h): Remove unused include
1050
1051 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1052
1053         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
1054         in diagnostics.
1055
1056 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1057
1058         * options.c (gfc_post_options): Don't clear flag_inline_functions.
1059
1060 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
1061
1062         * check.c (gfc_check_getcwd_sub): Fix seg fault.
1063
1064         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
1065         gfc_check_unlink,gfc_check_unlink_sub): New functions
1066         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
1067         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
1068         exit to intrinsics symbol tables.
1069         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
1070         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
1071         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
1072         gfc_resolve_unlink_sub): Add and sort prototypes.
1073         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
1074         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
1075         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
1076
1077 2004-11-16  Paul Brook  <paul@codesourcery.com>
1078
1079         PR fortran/13010
1080         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
1081         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
1082         * trans-types.c (gfc_get_dtype): Accept array type rather than element
1083         type.
1084         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
1085         (gfc_get_array_type_bounds): Ditto.
1086         (gfc_get_derived_type): Recurse into derived type pointers.
1087         * trans-types.h (gfc_get_dtype): Add prototype.
1088         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
1089
1090 2004-11-15  Paul Brook  <paul@codesourcery.com>
1091
1092         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
1093
1094 2004-11-10  Paul Brook  <paul@codesourcery.com>
1095
1096         PR fortran/18375
1097         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
1098         * trans-io.c (transfer_array_component): Ditto.
1099
1100 2004-11-10  Paul Brook  <paul@codesourcery.com>
1101
1102         * invoke.texi: Fix typo.
1103
1104 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1105
1106         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
1107         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
1108         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
1109         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
1110         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
1111
1112 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1113
1114         PR fortran/18023
1115         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
1116
1117 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1118
1119         * gfortranspec.c: Replace GNU CC with GCC.
1120
1121 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1122
1123         * gfortranspec.c (lang_specific_driver): Change year to 2004.
1124
1125 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1126
1127         PR fortran/18111
1128         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
1129         hidden parameters.
1130
1131 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1132
1133         PR fortran/15164
1134         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
1135         module procedures as if they were module variables.
1136
1137 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1138
1139         PR fortran/17535
1140         PR fortran/17583
1141         PR fortran/17713
1142         * module.c (write_symbol1): Set module_name for dummy arguments.
1143
1144 2004-11-02  Paul Brook  <paul@codesourcery.com>
1145
1146         * intrinsic.c (check_intrinsic_standard): Include error locus.
1147         Remove VLA.
1148         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
1149         locus to check_intrinsic_standard.
1150
1151 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1152
1153         PR fortran/17590
1154         * gfortran.h: Change GFC_STD_* flags to more appropriate
1155         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
1156         gfc_option_t): Add field for warning about use of nonstandard
1157         intrinsics.
1158         * intrinsic.c (add_sym): Add parameter for standard version, check
1159         this against current standard.
1160         (add_sym_0): Pass standard parameter to add_sym.
1161         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
1162         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
1163         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
1164         (make_generic): Add parameter for standard, check this
1165         against currently selected standard.
1166         (add_functions, add_subroutines): Add parameter to tell which
1167         standard an intrinsic belongs to.
1168         (check_intrinsic_standard): New function.
1169         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
1170         (gfc_intrinsic_sub_interface): Ditto.
1171         * lang.opt: Add Wnonstd-intrinsics option.
1172         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
1173         init new warning.
1174         (set_Wall): Add warning about nonstd intrinsics.
1175         (gfc_handle_option): Change to use new GFC_STD_* flags,
1176         handle new warning.
1177         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
1178
1179 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
1180
1181         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
1182
1183 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1184
1185         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
1186
1187 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1188
1189         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
1190         comment typo.
1191
1192 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
1193
1194         * check.c (gfc_check_rand): Allow missing optional argument.
1195         (gfc_check_irand): Ditto.
1196         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
1197
1198 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
1199
1200         PR fortran/13490, PR fortran/17912
1201         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
1202         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
1203         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
1204         warning when compiling with pedantic.
1205         * gcc/fortran/arith.c: Set minimum integer values to reflect
1206         realities of two's complement signed integers. Added
1207         pedantic minimum.
1208
1209 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
1210
1211         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
1212         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
1213         link it in.
1214
1215 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1216
1217         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
1218         typo.
1219         (gfc_generate_function_code): Fix formatting issue.
1220
1221 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1222
1223         * module.c: Fix formatting issues.
1224
1225 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1226
1227         * module.c (mio_interface_rest): Set where member of interface
1228         while loading.
1229
1230 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
1231
1232         PR fortran/17901
1233         * options.c (gfc_handle_option): Add break after handing the
1234         J/M option.
1235
1236 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
1237
1238         * arith.c: Fix formatting issues.
1239
1240 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1241
1242         PR fortran/17676
1243         * resolve.c (resolve_operator): Use correct operator name in message.
1244
1245 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1246
1247         * primary.c (match_boz_constant): Allow kind parameter suffixes.
1248         Move standard warning further to the front.
1249
1250 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
1251
1252         * trans-stmt.c: Fix a comment typo.
1253
1254 2004-10-07  Paul Brook  <paul@codesourcery.com>
1255
1256         PR fortran/17678
1257         * trans-array.c (gfc_trans_deferred_array): Leave use associated
1258         variables alone.
1259
1260 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1261
1262         PR fortran/17568
1263         * simplify.c (twos_complement): New function.
1264         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
1265
1266         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
1267
1268 2004-10-06  Paul Brook  <paul@codesourcery.com>
1269
1270         * trans-stmt.c (gfc_trans_simple_do): New function.
1271         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
1272         loop.  Update comments.
1273
1274 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1275
1276         PR fortran/17283
1277         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
1278         is scalar.
1279
1280         PR fortran/17631
1281         * intrinsic.c (add_sym_5): Remove.
1282         (add_subroutines): Add resolution function for MVBITS.
1283         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
1284         MVBITS
1285         * iresolve.c (gfc_resolve_mvbits): New function.
1286         (gfc_resolve_random_number): Remove empty line at end of function.
1287
1288         * trans-const.c (gfc_build_cstring_const): New function.
1289         (gfc_init_cst): Use new function.
1290         * trans-const.h (gfc_build_cstring_const): Add prototype.
1291         * trans-io.c (set_string, set_error_locus): Use new function.
1292         * trans-stmt.c (gfc_trans_goto): Use new function.
1293
1294         PR fortran/17708
1295         * parse.c (accept_statement): Don't treat END DO like END IF and
1296         END SELECT.
1297         (parse_do_block): Generate possible END DO label inside END DO
1298         block.
1299
1300         PR fortran/17776
1301         * check.c (gfc_check_system_sub): New function.
1302         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
1303         * intrinsic.c (add_functions): Add 'system'.
1304         (add_subroutines): Add 'system'.
1305         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
1306         Move prototypes to other suborutines.
1307         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
1308         Add prototype.
1309         (gfc_resolve_system_clock): Fix formatting of prototype.
1310         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
1311         functions.
1312         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
1313         GFC_ISYM_SYSTEM.
1314
1315 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
1316
1317         * scanner.c (preprocessor_line): Accept preprocessor lines without
1318         file names.  Check file names for closing quotes.  Handle escaped
1319         quotes in file names.
1320
1321 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1322         Paul Brook  <paul@codesourcery.com>
1323
1324         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
1325         Use gfc_get_expr_charlen.
1326         * trans-expr.c (gfc_get_expr_charlen): New function.
1327         * trans.h (gfc_get_expr_charlen): Add prototype.
1328
1329 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
1330
1331         * trans-intrinsic.c: Fix a comment typo.
1332
1333 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1334
1335         * simplify.c (range_check): Remove blank line at beginning of function.
1336         (gfc_simplify_dint): Same at end of function.
1337         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
1338         (gfc_simplify_bound): Fix indentation.
1339         (gfc_simplify_log10): Simplify calculation.
1340         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
1341         of function.
1342         (gfc_simplify_nearest): Same at end of function.
1343         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
1344         function.
1345         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
1346         gfc_simplify_spacing): Simplify calulations.
1347
1348 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
1349
1350         * trans-intrinsic.c: Fix comments on spacing and rrspacing
1351         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
1352
1353 2004-10-01  Jan Hubicka  <jh@suse.cz>
1354
1355         * f95-lang.c (gfc_expand_function): Update call of
1356         tree_rest_of_compilation.
1357         * trans-decl.c (gfc_generate_constructors): Likewise.
1358
1359 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1360
1361         * trans-intrinsic.c: Comment fixes.
1362
1363 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1364
1365         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
1366
1367 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1368
1369         * trans-types.c (gfc_return_by_reference): Remove superfluous
1370         assertion.
1371
1372         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
1373         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
1374
1375         PR fortran/17615
1376         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
1377         function to determine return type.
1378
1379 2004-09-20  Jan Hubicka  <jh@suse.cz>
1380
1381         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
1382         tree.
1383         (gfc_generate_function_code): Likewise.
1384
1385 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1386
1387         PR fortran/15957
1388         * simplify.c (gfc_simplify_reshape): Set shape of return value
1389         correctly.
1390
1391 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
1392             Zack Weinberg  <zack@codesourcery.com>
1393
1394         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
1395         enumeration constants.
1396
1397 2004-09-17  Paul Brook  <paul@codesourcery.com>
1398
1399         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
1400         (gfc_linebuf_header_size): Define.
1401         * scanner.c (load_file): Use it.
1402
1403 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
1404
1405         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
1406         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
1407         resolve.c, scanner.c, trans-array.c, trans-array.h,
1408         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
1409         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
1410         trans.h: Fix comment typos.  Follow spelling conventions.
1411
1412 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
1413
1414         PR/15364
1415         * trans-io.c (transfer_array_component): New function.
1416         (transfer_expr): For array fields, call transfer_array_component.
1417
1418 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
1419
1420         * gfortran.texi: Fix a typo.
1421
1422 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1423
1424         * parse.c (eof_buf): Rename eof to eof_buf.
1425         (unexpected_eof): Same.
1426         (gfc_parse_file): Same.
1427
1428 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
1429
1430         * check.c (gfc_check_getcwd_sub): New function.
1431         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
1432         * intrinsic.c (add_functions): Add function definition;
1433         Use symbol.
1434         * intrinsic.c (add_subroutines): Add subroutine definitions.
1435         * intrinsic.h: Add prototypes.
1436         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
1437         New functions.
1438         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
1439
1440 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1441
1442         PR fortran/16485
1443         * module.c (write_symbol): Don't fill in module name here.
1444         (write_symbol0): Fill in here instead.
1445
1446 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1447
1448         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
1449         trans-array.c, trans-common.c, trans-expr.c,
1450         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
1451         comment typos.  Follow spelling conventions.
1452
1453 2004-09-09  Paul Brook  <paul@codesourcery.com>
1454
1455         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
1456
1457 2004-09-08  Paul Brook  <paul@codesourcery.com>
1458
1459         * array.c: Don't include assert.h.
1460         * data.c: Don't include assert.h.  Replace assert and abort with
1461         gcc_assert and gcc_unreachable.
1462         * dependency.c: Ditto.
1463         * f95-lang.c: Ditto.
1464         * iresolve.c: Ditto.
1465         * resolve.c: Ditto.
1466         * simplify.c: Ditto.
1467         * symbol.c: Ditto.
1468         * trans-array.c: Ditto.
1469         * trans-common.c: Ditto.
1470         * trans-const.c: Ditto.
1471         * trans-decl.c: Ditto.
1472         * trans-expr.c: Ditto.
1473         * trans-intrinsic.c: Ditto.
1474         * trans-io.c: Ditto.
1475         * trans-stmt.c: Ditto.
1476         * trans-types.c: Ditto.
1477         * trans.c: Ditto.
1478
1479 2004-09-07  Per Bothner  <per@bothner.com>
1480         Paul Brook  <paul@codesourcery.com>
1481
1482         * error.c (show_locus): Handle mapped locations.
1483         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
1484         * gfortran.h: Include input.h.
1485         (struct gfc_linebuf): Use source_location.
1486         * scanner.c (get_file): Initialize linemap.
1487         (preprocessor_line): Pass extra argument to get_file.
1488         (load_file): Ditto.  Setup linemap.
1489         (gfc_new_file): Handle mapped locations.
1490         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
1491         Set decl source locations.
1492         (gfc_trans_common): Set blank common block location.
1493         * trans-decl.c (gfc_set_decl_location): New function.
1494         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
1495         (trans_function_start): Move call to gfc_set_backend_locus..
1496         (build_function_decl): ... to here.
1497         (build_entry_thunks): Set and restore the backend locus.
1498         (gfc_generate_constructors): Remove excess arguments to
1499         init_function_start.
1500         (gfc_generate_block_data): Add comments.  Set the decl locus.
1501         * trans-io.c (set_error_locus): Handle mapped locations.
1502         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
1503         (gfc_trans_code): Use SET_EXPR_LOCATION.
1504         (gfc_generate_code): Override the location of the new symbol.
1505         * trans.h (gfc_set_decl_location): Add prototype.
1506
1507 2004-08-31  Paul Brook  <paul@codesourcery.com>
1508
1509         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
1510
1511 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1512
1513         PR fortran/15327
1514         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
1515         strings.
1516
1517 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1518
1519         PR fortran/16400
1520         PR fortran/16404
1521         (port from g95)
1522         * resolve.c (resolve_transfer): New function.
1523         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
1524
1525 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1526
1527         PR fortran/16579
1528         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
1529         unsigned char.
1530
1531 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1532
1533         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
1534
1535 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1536
1537         PR fortran/17244
1538         * trans-types.c (gfc_return_by_reference): Remove TODO error,
1539         add comment pointing out possible issue WRT compatibility with g77.
1540
1541 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1542
1543         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
1544         all occurences of 'gfc_strlen_type_node' by
1545         'gfc_charlen_type_node'.
1546         * trans-types.h: Same. Also update comment accordingly.
1547
1548 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1549
1550         * primary.c: Update copyright boilerplate to say GCC.
1551         * f95-lang.c: Change initial comment to say gfortran.
1552
1553 2004-08-31  Paul Brook  <paul@codesourcery.com>
1554
1555         * trans-types.h: Add comments.
1556         (intmax_type_node, string_type_node, const_string_type_node): Remove.
1557
1558 2004-08-30  Richard Henderson  <rth@redhat.com>
1559
1560         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
1561         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
1562         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
1563         c_long, c_long_long.
1564         (gfc_logical_info): Add c_bool.
1565         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
1566         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
1567         rather than gfc_int[48]_type_node for allocate choice.
1568         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
1569         local copies of some kind type nodes.
1570         (gfc_build_builtin_function_decls): Likewise.
1571         * trans-expr.c (gfc_conv_power_op): Likewise.
1572         * trans-intrinsic.c (gfc_conv_intrinsic_index,
1573         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
1574         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
1575         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
1576         gfc_trans_character_select, gfc_trans_allocate): Likewise.
1577         * trans-io.c (gfc_pint4_type_node): Move into ...
1578         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
1579         some kind type nodes.
1580         * trans-types.c (gfc_type_nodes): Remove.
1581         (gfc_character1_type_node, gfc_strlen_type_node): New.
1582         (gfc_integer_types, gfc_logical_types): New.
1583         (gfc_real_types, gfc_complex_types): New.
1584         (gfc_init_kinds): Fill in real mode_precision.
1585         (gfc_build_int_type, gfc_build_real_type): New.
1586         (gfc_build_complex_type, gfc_build_logical_type): New.
1587         (c_size_t_size): New.
1588         (gfc_init_types): Loop over kinds.
1589         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
1590         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
1591         (gfc_get_character_type_len): Likewise.
1592         (gfc_type_for_size): Loop over kinds; use a reduced set of
1593         unsigned type nodes.
1594         (gfc_type_for_mode): Loop over kinds.
1595         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
1596         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
1597         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
1598         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
1599         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
1600         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
1601         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
1602         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
1603         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
1604         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
1605         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
1606         gfc_complex8_type_node, gfc_complex16_type_node,
1607         gfc_logical1_type_node, gfc_logical2_type_node,
1608         gfc_logical4_type_node, gfc_logical8_type_node,
1609         gfc_logical16_type_node, gfc_strlen_kind): Remove.
1610         (gfc_character1_type_node): Turn in to a variable.
1611         (gfc_strlen_type_node): Likewise.
1612
1613 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1614
1615         * gfortran.h (gfc_namespace): Add new field is_block_data.
1616         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
1617         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
1618         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
1619         * trans.h (gfc_generate_block_data): Add prototype.
1620         * trans-decl.c (gfc_generate_block_data): New function.
1621
1622 2004-08-29  Richard Henderson  <rth@redhat.com>
1623
1624         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
1625         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
1626         than two HOST_WIDE_INT.
1627
1628 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1629
1630         PR fortran/13910
1631         * decl.c (free_variable, free_value, gfc_free_data, var_list,
1632         var_element, top_var_list, match_data_constant, top_val_list,
1633         gfc_match_data): Move here from match.c.
1634         (match_old_style_init): New function.
1635         (variable_decl): Match old-style initialization.
1636         * expr.c (gfc_get_variable_expr): New function.
1637         * gfortran.h (gfc_get_variable_expr): Add prototype.
1638         * gfortran.texi: Start documentation for supported extensions.
1639         * match.c: Remove the functions moved to decl.c.
1640         * match.h (gfc_match_data): Move prototype to under decl.c.
1641         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
1642         comments.
1643
1644 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1645         Paul Brook  <paul@codesourcery.com>
1646
1647         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
1648         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
1649         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
1650         (build_builtin_fntypes): New function.
1651         (gfc_init_builtin_functions): Use it.
1652         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
1653         and GFC_ISYM_ERF{,C}.
1654         (gfc_c_int_kind): Declare.
1655         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
1656         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
1657         gfc_resolve_g77_math1): Add prototypes.
1658         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
1659         * mathbuiltins.def: Add comment.  Change third argument.  Use
1660         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
1661         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
1662         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
1663         * trans-types.c (gfc_c_int_kind): Declare.
1664         (gfc_init_kinds): Set it.
1665
1666 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
1667         Paul Brook  <paul@codesourcery.com>
1668
1669         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
1670         (gfc_check_f, gfc_simplify_f): Add f0.
1671         * intrinsic.c (do_check): Call f0.  Flatten.
1672         (add_sym_0): Fix prototype.  Set f0.
1673         (add_functions): Add getgid, getgid and getuid.
1674         (resolve_intrinsic): Remove obsolete comment.
1675         (do_simplify): Call f0.
1676         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
1677         gfc_resolve_getuid): Add prototypes.
1678         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
1679         gfc_resolve_getuid): New functions.
1680         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
1681         GFC_ISYM_GET?ID.
1682
1683 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1684
1685         * error.c (gfc_error_init_1): Remove blank line in front of
1686         function body. Add missing blank.
1687         (gfc_buffer_error, error_char, error_string): Remove blank line in
1688         front of function body.
1689         (show_locus): Add comma in comment.
1690         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
1691         gfc_push_error, gfc_pop_error): Remove blank line in front of
1692         function body.
1693         (gfc_get_errors): Typo fix in comment in front of function. Remove
1694         blank line in front of function body.
1695
1696 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1697
1698         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
1699         variable declaration of same name.
1700         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
1701         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
1702         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
1703         Replace all calls to gfc_default_*_kind with variable accesses.
1704         * trans-types.c: Same as above.
1705         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
1706         static qualifier. Replace all occurences.
1707         (gfc_default_*_kind): Remove functions.
1708
1709 2004-08-26  Richard Henderson  <rth@redhat.com>
1710
1711         * arith.c: Include system.h, not real system headers.
1712         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
1713         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
1714         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
1715         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
1716         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
1717         gfc_index_integer_kind, gfc_default_integer_kind,
1718         gfc_default_real_kind,gfc_default_double_kind,
1719         gfc_default_character_kind, gfc_default_logical_kind,
1720         gfc_default_complex_kind, validate_integer, validate_real,
1721         validate_logical, validate_character,
1722         gfc_validate_kind): Move to trans-types.c.
1723         (gfc_set_model_kind): Use gfc_validate_kind.
1724         (gfc_set_model): Just copy the current precision to default.
1725         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
1726         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
1727         * gfortran.h: Update file commentary.
1728         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
1729         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
1730         gfc_default_double_kind_1, gfc_default_character_kind_1,
1731         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
1732         (gfc_init_kinds): New.
1733         (gfc_init_types): Don't set gfc_index_integer_kind here.
1734         * trans-types.h (gfc_init_kinds): Declare.
1735         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
1736
1737 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1738
1739         * check.c (gfc_check_atan2): New function.
1740         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
1741         * intrinsic.h (gfc_check_atan2): Add prototype.
1742
1743 2004-08-25  Richard Henderson  <rth@redhat.com>
1744
1745         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
1746         false and we don't validate the kind.
1747         (gfc_check_integer_range, gfc_check_real_range): Update to match.
1748         * check.c (kind_check): Likewise.
1749         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
1750         (match_char_spec, match_logical_spec): Likewise.
1751         * gfortran.h (gfc_validate_kind): Likewise.
1752         * options.c (gfc_handle_option): Likewise.
1753         * primary.c (match_integer_constant, match_real_constant,
1754         match_string_constant, match_logical_constant,
1755         match_const_complex_part): Likewise.
1756         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
1757         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
1758         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
1759         gfc_simplify_maxexponent, gfc_simplify_minexponent,
1760         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
1761         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
1762         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
1763         gfc_simplify_tiny): Likewise.
1764         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
1765         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
1766         prepare_arg_info): Likewise.
1767
1768 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1769
1770         * expr.c (gfc_check_assign): Add comment. Add new warning.
1771         * trans-expr.c (gfc_conv_function_call): Correctly dereference
1772         result of pointer valued function when not in pointer assignment.
1773
1774 2004-08-25  Paul Brook  <paul@codesourcery.com>
1775
1776         * config-lang.in: Remove dead commented line.
1777         * module.c: Replace g95 with gfortran in comment.
1778
1779 2004-08-25  Paul Brook  <paul@codesourcery.com>
1780
1781         PR fortran/17190
1782         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
1783
1784 2004-08-25  Paul Brook  <paul@codesourcery.com>
1785
1786         PR fortran/17144
1787         * trans-array.c (gfc_trans_allocate_temp_array): Remove
1788         string_length argument.
1789         (gfc_trans_array_ctor_element): New function.
1790         (gfc_trans_array_constructor_subarray): Use it.
1791         (gfc_trans_array_constructor_value): Ditto.  Handle constant
1792         character arrays.
1793         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
1794         (gfc_trans_array_constructor): Use them.
1795         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
1796         (gfc_conv_ss_descriptor): Remember section string length.
1797         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
1798         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
1799         (gfc_conv_expr_descriptor): Ditto.
1800         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
1801         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
1802         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
1803         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
1804         (gfc_conv_variable): Set string_length from section.
1805         (gfc_conv_function_call): Remove extra argument.
1806         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
1807         * trans-types.c (gfc_get_character_type_len): New function.
1808         (gfc_get_character_type): Use it.
1809         (gfc_get_dtype): Return zero for internal types.
1810         * trans-types.h (gfc_get_character_type_len): Add prototype.
1811         * trans.h (struct gfc_ss): Move string_length out of union.
1812
1813 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1814
1815         * trans.h (build2_v, build3_v): New macros.
1816         (build_v): Remove.
1817         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
1818         build.
1819         * trans-array.c (gfc_conv_descriptor_data,
1820         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
1821         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
1822         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
1823         gfc_trans_allocate_temp_array,
1824         gfc_trans_array_constructor_subarray,
1825         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
1826         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
1827         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
1828         gfc_conv_array_ref, gfc_trans_preloop_setup,
1829         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
1830         gfc_conv_loop_setup, gfc_array_init_size,
1831         gfc_conv_array_initializer, gfc_trans_array_bounds,
1832         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
1833         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
1834         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
1835         of build and build_v as appropriate.
1836         * trans-common.c (create_common): Same.
1837         * trans-decl.c (gfc_trans_auto_character_variable,
1838         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
1839         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
1840         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
1841         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
1842         gfc_conv_expr_op, gfc_conv_function_call,
1843         gfc_trans_structure_assign): Same.
1844         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
1845         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
1846         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
1847         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
1848         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
1849         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
1850         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
1851         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
1852         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
1853         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
1854         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
1855         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
1856         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
1857         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
1858         gfc_conv_intrinsic_iargc): Same.
1859         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
1860         set_flag, add_case, io_result, transfer_namelist_element,
1861         transfer_expr): Same.
1862         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
1863         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
1864         gfc_trans_integer_select, gfc_trans_logical_select,
1865         gfc_trans_character_select, gfc_trans_forall_loop,
1866         gfc_trans_nested_forall_loop, gfc_do_allocate,
1867         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1868         compute_inner_temp_size, compute_overall_iter_number,
1869         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
1870         gfc_trans_forall_1, gfc_evaluate_where_mask,
1871         gfc_trans_where_assign, gfc_trans_allocate): Same.
1872         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
1873         * trans.c (gfc_add_modify_expr, gfc_finish_block,
1874         gfc_build_array_ref, gfc_build_function_call,
1875         gfc_trans_runtime_check): Same.
1876
1877 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1878
1879         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
1880         build_int_cst to build_int_cst_wide in accordance to Nathan's
1881         previous patch.
1882
1883 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1884
1885         * trans-array.c (gfc_trans_array_constructor_value): Adjust
1886         build_int_cst calls.
1887         * trans-const.c (gfc_build_string_const, gfc_init_constants,
1888         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
1889         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
1890         gfc_trans_entry_master_switch): Likewise.
1891         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
1892         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
1893         * trans-io.c (add_case, set_error_locus,
1894         transfer_namelist_element, transfer_expr): Likewise.
1895         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
1896         gfc_trans_stop, gfc_trans_character_select): Likewise.
1897         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
1898         * trans.c (gfc_trans_runtime_check): Likewise.
1899
1900 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1901
1902         * trans-decl.c, trans-types.c: Add and remove blank lines as
1903         required.
1904
1905 2004-08-24  Richard Henderson  <rth@redhat.com>
1906
1907         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
1908
1909 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1910
1911         * resolve.c (merge_argument_lists): Revert unintentionally
1912         committed change.
1913
1914 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1915
1916         * trans-decl.c (build_function_decl): Fix spelling in comment.
1917         (build_entry_thunks): Remove code with no function.
1918         (gfc_build_intrinsic_function_decls): Remove empty line.
1919
1920         * resolve.c (resolve_entries): Fix a bunch of comment typos.
1921
1922 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1923
1924         * f95-lang.c (gfc_init_decl_processing): Adjust
1925         build_common_tree_nodes call.
1926
1927 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1928
1929         * trans-types.c: Spelling and formatting fixes.
1930
1931 2004-08-23  Richard Henderson  <rth@redhat.com>
1932
1933         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
1934         of going through an intermediate string.  Fix 32/64 int/long bug.
1935
1936 2004-08-23  Eric Christopher  <echristo@redhat.com>
1937
1938         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
1939         usage. Use build_vector_type_for_mode for vector types.
1940
1941 2004-08-22  Richard Henderson  <rth@redhat.com>
1942
1943         PR 13465
1944         * data.c (find_con_by_offset): Search ordered list; handle
1945         elements with repeat counts.
1946         (gfc_assign_data_value_range): New.
1947         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
1948         (gfc_assign_data_value_range): Declare.
1949         * match.c (top_val_list): Extract repeat count into a temporary.
1950         * resolve.c (values): Make left unsigned.
1951         (next_data_value): Don't decrement left.
1952         (check_data_variable): Use gfc_assign_data_value_range.
1953
1954 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1955
1956         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
1957
1958 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1959
1960         * check.c (gfc_check_reduction): Rename to ...
1961         (check_reduction): ... this. Make static. Don't check type of
1962         first argument.
1963         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
1964         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
1965         SUM to use new check functions.
1966         (check_specific): Change logic to call new functions.
1967         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
1968         Add prototypes.
1969         (gfc_check_reduction): Remove prototype.
1970
1971 2004-08-20  Paul Brook  <paul@codesourcery.com>
1972         Canqun Yang  <canqun@nudt.edu.cn>
1973
1974         PR fortran/17077
1975         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
1976         for automatic arrays.
1977         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
1978
1979 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1980         (Port from g95)
1981
1982         PR fortran/17074
1983         * match.c (match_simple_forall, match_simple_where): Forward-declare.
1984         (gfc_match_if): Order statement list alphabetically, add WHERE and
1985         FORALL, remove double PAUSE.
1986         (gfc_match_simple_where, match_forall_header,
1987         gfc_match_simple_forall): New functions.
1988         (gfc_match_forall): Use match_forall_header.
1989
1990 2004-08-19  Paul Brook  <paul@codesourcery.com>
1991
1992         PR fortran/17091
1993         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
1994         * symbol.c (gfc_clear_attr): Use memset.
1995
1996 2004-08-19  Paul Brook  <paul@codesourcery.com>
1997
1998         PR fortran/14976
1999         PR fortran/16228
2000         * data.c (assign_substring_data_value): Remove.
2001         (create_character_intializer): New function.
2002         (gfc_assign_data_value): Track the typespec for the current
2003         subobject.  Use create_character_intializer.
2004
2005 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
2006
2007         PR fortran/16946
2008         * check.c (gfc_check_reduction): New function.
2009         (gfc_check_minval_maxval): Removed.
2010         (gfc_check_product): Removed.
2011         (gfc_check_sum): Removed.
2012         * intrinsic.h: Add/remove declarations for these.
2013         * gfortran.h: Add field f3red to union gfc_check_f.
2014         * intrinsic.c (add_sym_3red): New function.
2015         (add_functions): Register maxval, minval, product, and sum intrinsics
2016         through add_sym_3red.
2017         (check_specific): Handle f3red union field.
2018         * iresolve.c: Whitespace change.
2019
2020 2004-08-18  Paul Brook  <paul@codesourcery.com>
2021
2022         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
2023
2024 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
2025
2026         PR fortran/13278
2027         * trans-io.c (transfer_namelist_element): New. Recursively handle
2028         derived-type variables.  Pass string lengths.
2029         (build_dt): Code moved to build_namelist, with some
2030         changes and additions.
2031         (gfc_build_io_library_fndecls): Declare the fifth
2032         argument in st_set_nml_var_char -- string_length.
2033
2034 2004-08-17  Paul Brook  <paul@codesourcery.com>
2035         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2036
2037         PR fortran/13082
2038         * decl.c (get_proc_name): Update mystery comment.
2039         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
2040         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
2041         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
2042         (struct gfc_entry_list): Define.
2043         (gfc_get_entry_list): Define.
2044         (struct gfc_namespace): Add refs and entries.
2045         (enum gfc_exec_op): Add EXEC_ENTRY.
2046         (struct gfc_code): Add ext.entry.
2047         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
2048         (mio_symbol_attribute): Don't save/reture addr->entry.
2049         (mio_namespace_ref): Refcount namespaces.
2050         * parse.c (accept_statement): Handle ST_ENTRY.
2051         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
2052         (parse_contained): Fixup sibling references to entry points
2053         after parsing the procedure body.
2054         * resolve.c (resolve_contained_fntype): New function.
2055         (merge_argument_lists, resolve_entries): New functions.
2056         (resolve_contained_functions): Use them.
2057         (resolve_code): Handle EXEC_ENTRY.
2058         (gfc_resolve): Call resolve_entries.
2059         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
2060         * symbol.c (gfc_get_namespace): Refcount namespaces.
2061         (gfc_free_namespace): Ditto.
2062         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
2063         optional when multiple entry points are present.
2064         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
2065         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
2066         (create_function_arglist, trans_function_start, build_entry_thunks):
2067         New functions.
2068         (gfc_build_function_decl): Rename ...
2069         (build_function_decl): ... to this.
2070         (gfc_create_function_decl): New function.
2071         (gfc_generate_contained_functions): Use it.
2072         (gfc_trans_entry_master_switch): New function.
2073         (gfc_generate_function_code): Use new functions.
2074         * trans-stmt.c (gfc_trans_entry): New function.
2075         * trans-stmt.h (gfc_trans_entry): Add prototype.
2076         * trans-types.c (gfc_get_function_type): Add entry point argument.
2077         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
2078         (gfc_generate_module_code): Call gfc_create_function_decl.
2079         * trans.h (gfc_build_function_decl): Remove.
2080         (gfc_create_function_decl): Add prototype.
2081
2082 2004-08-15  Andrew Pinski  <apinski@apple.com>
2083
2084         PR fortran/17030
2085         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
2086         for cabs{,f} and copysign{,f}.
2087         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
2088         (gfor_fndecl_math_cabs): Delete.
2089         (gfor_fndecl_math_sign4): Delete.
2090         (gfor_fndecl_math_sign8): Delete.
2091         (gfc_build_intrinsic_function_decls): Remove the
2092         initializing of cabs{,f} and copysign{,f} functions.
2093         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
2094         instead of the functions definitions.
2095         (gfc_conv_intrinsic_sign): Likewise.
2096         * trans.h (gfor_fndecl_math_cabsf): Delete.
2097         (gfor_fndecl_math_cabs): Delete.
2098         (gfor_fndecl_math_sign4): Delete.
2099         (gfor_fndecl_math_sign8): Delete.
2100
2101 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2102
2103         * trans-array.c (gfc_trans_array_constructor_value): Use
2104         build_int_cst.
2105         * trans-const.c (gfc_build_string_const,
2106         gfc_init_constants, gfc_conv_mpz_to_tree,
2107         gfc_conv_constant_to_tree): Likewise.
2108         * trans-decl.c (gfc_get_symbol_decl): Likewise.
2109         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2110         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2111         * trans-io.c (add_case, set_error_locus, build_dt,
2112         transfer_expr): Likewise.
2113         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2114         gfc_trans_stop, gfc_trans_character_select): Likewise.
2115         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2116         * trans.c (gfc_trans_runtime_check): Likewise.
2117
2118 2004-08-14  Paul Brook  <paul@codesourcery.com>
2119
2120         * trans-decl.c (gfc_build_function_decl): Remove dead code.
2121
2122 2004-08-14  Paul Brook  <paul@codesourcery.com>
2123
2124         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
2125
2126 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2127
2128         * gfortran.h: Add comments.
2129         * parse.c (parse_contained): Fix comment typo.
2130         * resolve.c (was_declared): Ditto.
2131         * symbol.c: Ditto.
2132
2133 2004-08-11  Paul Brook  <paul@codeourcery.com>
2134
2135         PR fortran/16917
2136         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
2137
2138 2004-08-10  Richard Henderson  <rth@redhat.com>
2139
2140         * f95-lang.c (gfc_init_builtin_functions): Remove
2141          __builtin_stack_alloc, add __builtin_alloca.
2142         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
2143         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2144
2145 2004-08-10  Paul Brook  <paul@codesourcery.com>
2146
2147         * trans-io.c (transfer_expr): Handle pointters.
2148
2149 2004-08-10  Paul Brook  <paul@codesourcery.com>
2150
2151         PR fortran/16919
2152         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
2153         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
2154         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
2155         Handle GFC_SS_COMPONENT.
2156         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
2157         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
2158         Use ss->shape.
2159         (gfc_conv_array_initializer): Call specific initializer routines.
2160         * trans-expr.c (gfc_trans_structure_assign): New function.
2161         (gfc_trans_subarray_assign): New function.
2162         (gfc_trans_subcomponent_assign): New fucntion
2163         (gfc_conv_structure): Use them.
2164         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
2165         (gfc_ss): Add shape.
2166
2167 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
2168
2169         * simplify.c (gfc_simplify_shape): Bugfix.
2170         * expr.c (gfc_copy_shape_excluding): New function.
2171         * gfortran.h (gfc_get_shape): Bugfix.
2172         (gfc_copy_shape_excluding): Added declaration.
2173         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
2174         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
2175         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
2176         time resolution of shape.
2177
2178 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2179
2180         * intrinsic.c (add_subroutines): Add getenv and
2181         get_environment_variable. (add_sym_5s): New function.
2182         * intrinsic.h (gfc_resolve_get_environment_variable): Add
2183         prototype.
2184         * iresolve.c (gfc_resolve_get_environment_variable): New
2185         function.
2186
2187 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
2188
2189         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
2190         __builtin_pow[f] arguments.
2191
2192 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
2193
2194         * arith.c: Add #define for model numbers.  Remove global GMP variables.
2195         (natural_logarithm,common_logarithm,exponential,sine,
2196         cosine,arctangent,hypercos,hypersine ): Remove.
2197         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
2198         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
2199         gfc_check_real_range, gfc_constant_result, gfc_range_check,
2200         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
2201         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
2202         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
2203         gfc_convert_complex,gfc_int2real,gfc_int2complex,
2204         gfc_real2int,gfc_real2real,gfc_real2complex,
2205         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
2206         to MPFR, use new functions.
2207         * arith.h: Remove extern global variables.
2208         (natural_logarithm,common_logarithm,exponential, sine, cosine,
2209         arctangent,hypercos,hypersine): Remove prototypes.
2210         (arctangent2): Update prototype from GMP to MPFR.
2211         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
2212         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
2213         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
2214         * gfortran.h (GFC_REAL_BITS): Remove.
2215         (arith): Add ARITH_NAN.
2216         Include mpfr.h.  Define GFC_RND_MODE.
2217         Rename GCC_GFORTRAN_H GFC_GFC_H.
2218         (gfc_expr): Convert GMP to MPFR.
2219         * module.c: Add arith.h, correct type in comment.
2220         (mio_gmp_real): Convert GMP to MPFR.
2221         (mio_expr):  Use gfc_set_model_kind().
2222         * primary.c:  Update copyright date with 2004.
2223         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
2224         * simplify.c: Remove global GMP variables
2225         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
2226         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
2227         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
2228         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
2229         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
2230         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
2231         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
2232         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
2233         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
2234         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
2235         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
2236         gfc_simplify_rrspacing,gfc_simplify_scale,
2237         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
2238         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
2239         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
2240         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
2241         Use new functions.
2242         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
2243         gfc_conv_mpf_to_tree.  Convert it to use MPFR
2244         (gfc_conv_constant_to_tree): Use it.
2245         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
2246         * trans-intrinsic.c: Add arith.h, remove gmp.h
2247         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
2248
2249 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
2250         Paul Brook  <paul@codesourcery.com>
2251
2252         * trans-array.c (gfc_trans_allocate_array_storage,
2253         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
2254         gfc_conv_loop_setup): For functions, if the shape of the result
2255         is not known in compile-time, generate an empty array descriptor for
2256         the result and let the callee to allocate the memory.
2257         (gfc_trans_dummy_array_bias): Do nothing for pointers.
2258         (gfc_conv_expr_descriptor): Use function return values directly.
2259         * trans-expr.c (gfc_conv_function_call): Always add byref call
2260         insn to pre chain.
2261         (gfc_trans_pointer_assignment): Add comments.
2262         (gfc_trans_arrayfunc_assign): Don't chain on expression.
2263
2264 2004-08-01  Roger Sayle  <roger@eyesopen.com>
2265
2266         * options.c (gfc_init_options): Don't warn about the use GNU
2267         extensions by default.
2268         (gfc_post_options): Warn about GNU extensions with -pedantic.
2269         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
2270
2271 2004-07-30  Richard Henderson  <rth@redhat.com>
2272
2273         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
2274         for TREE_CONSTANTs.
2275
2276 2004-07-25  Richard Henderson  <rth@redhat.com>
2277
2278         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
2279         and DECL_IGNORED_P on RESULT_DECL.
2280         (gfc_generate_constructors): Likewise.
2281
2282 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2283
2284         PR fortran/16465
2285         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
2286         options.
2287         (ffixed-line-length-80, ffixed-line-length-132): Remove.
2288         * options.c (gfc_handle_options): Deal with changed options.
2289         * scanner.c (load_line): Change second arg to 'char **',
2290         allocate if pointing to NULL. Keep track of buffer's length.
2291         Adapt buffer size to overlong lines. Pad lines to full length
2292         in fixed form.
2293         (load_file): Adapt to new interface of load_line.
2294
2295 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
2296
2297         * trans.h (builtin_function): Declare.
2298
2299 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2300
2301         PR fortran/16404
2302         (parts ported from g95)
2303         * parse.h (gfc_state_data): New field do_variable.
2304         (gfc_check_do_variable): Add prototype.
2305         * parse.c (push_state): Initialize field 'do_variable'.
2306         (gfc_check_do_variable): New function.
2307         (parse_do_block): Remember do iterator variable.
2308         (parse_file): Initialize field 'do_variable'.
2309         * match.c (gfc_match_assignment, gfc_match_do,
2310         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
2311         Add previously missing checks.
2312         (gfc_match_return): Reformat error message.
2313         * io.c (match_out_tag): New function.
2314         (match_open_element, match_close_element,
2315         match_file_element, match_dt_element): Call match_out_tag
2316         instead of match_vtag where appropriate.
2317         (match_io_iterator, match_io_element): Add missing check.
2318         (match_io): Reformat error message.
2319         (match_inquire_element): Call match_out_tag where appropriate.
2320
2321         * parse.c (gfc_check_do_variable): Fix error locus.
2322
2323 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2324
2325         PR fortran/15129
2326         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
2327         for every assumed length character dummy argument.
2328
2329         PR fortran/15140
2330         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
2331
2332         PR fortran/13792
2333         * simplify.c (gfc_simplify_bound): Copy the bound expression.
2334
2335 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2336
2337         PR fortran/15324
2338         * trans-array.c gfc_trans_g77_array,
2339         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
2340         for assumed length characters.
2341         (gfc_conv_expr_descriptor): Set se->string_length if dealing
2342         with a character expression.
2343         (gfc_cvonv_array_parameter): Pass string length when passing
2344         character array according to g77 conventions.
2345
2346 2004-07-12  Paul Brook  <paul@codesourcery.com>
2347
2348         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
2349         * trans-array.c (gfc_trans_auto_array_allocation): Remove
2350         initialization code.
2351         * trans-common.c (create_common): Use gfc_conv_initializer.
2352         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
2353         * trans-expr.c (gfc_conv_initializer): New function.
2354         (gfc_conv_structure): Use it.
2355         * trans.h (gfc_conv_initializer): Add prototype.
2356
2357 2004-07-11  Paul Brook  <paul@codesourcery.com>
2358
2359         PR fortran/15986
2360         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
2361         variables.
2362         (parse_contained): Mark contained symbols as referenced.
2363
2364 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2365
2366         PR fortran/16455
2367         * module.c (gfc_dump_module, gfc_use_module): Print locus
2368         when opening of module file fails.
2369
2370         PR fortran/16404
2371         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
2372
2373         PR fortran/16404
2374         * match.c (gfc_match_program): A program name is obligatory.
2375         (gfc_match_return): RETURN in main program is an extension.
2376         (gfc_match_block_data): A space is required before a block data
2377         name.
2378
2379         PR fortran/16433
2380         * primary.c (match_boz_constant): Call gfc_notify_std only if
2381         we actually have a non-standard boz-literal-constant.
2382
2383         PR fortran/15754
2384         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
2385         warning if assigning NULL().
2386
2387 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
2388
2389         * f95-lang.c (set_block): Remove.
2390         (gfc_clear_binding_stack): New.
2391         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
2392         (struct binding_level): Remove block_created_by_back_end.
2393         (clear_binding_level): Likewise.
2394         (poplevel): Don't handle block_created_by_back_end.
2395
2396 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2397
2398         * trans-decl.c (gfc_create_module_variable): Nothing to do if
2399         symbol is in common, because we ...
2400         (gfc_generate_module_vars): Call gfc_trans_common.
2401
2402 2004-07-10  Paul Brook  <paul@codesourcery.com>
2403
2404         * trans-array.c (gfc_build_null_descriptor): New function.
2405         (gfc_trans_static_array_pointer): Use it.
2406         * trans-array.h (gfc_build_null_descriptor): Add prototype.
2407         * trans-expr.c (gfc_conv_structure): Handle array pointers.
2408
2409 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2410
2411         PR fortran/16336
2412         * decl.c (gfc_match_save): Use-associated common block
2413         doesn't collide.
2414         * gfortran.h (gfc_common_head): Add new field 'name'.
2415         Fix typo in comment after #endif.
2416         * match.c (gfc_get_common): Add new argument from_common,
2417         mangle name if flag is set, fill in new field in structure
2418         gfc_common_head.
2419         (match_common): Set new arg in call to gfc_get_common,
2420         use-associated common block doesn't collide.
2421         * match.h (gfc_get_common): Adapt prototype.
2422         * module.c (load_commons): Set new arg in call to
2423         gfc_get_common.
2424         * symbol.c (free_common_tree): New function.
2425         (gfc_free_namespace): Call new function.
2426         * trans-common.c (several functions): Remove argument
2427         'name', use name from gfc_common_head instead.
2428
2429 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2430
2431         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
2432         and RHS match. Return early if the RHS is NULL().
2433
2434         PR fortran/16336
2435         * match.c (match_common): Fix error reporting for used common.
2436
2437         PR fortran/15969
2438         * trans-expr.c (gfc_conv_structure): Handle initialization
2439         of scalar pointer components.
2440
2441         * parse.c (decode_statement): Fix matching of BLOCK DATA.
2442
2443         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
2444         by fix for PR 15481.
2445
2446 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2447
2448         * trans-common.c: Fix whitespace issues, make variable names
2449         more readable.
2450         (create_common): Additionally, make loop logic more obvious.
2451
2452 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2453         Paul Brook  <paul@codesourcery.com>
2454
2455         PR fortran/13415
2456         * trans-common.c (calculate_length): Remove ...
2457         (get_segment_info): Merge into here.  Save field type.
2458         (build_field): Use saved type.
2459         (create_common, new_condition, new_segment, finish_equivalences):
2460         Use new get_segment_info.
2461         * trans-types.c: Update comment.
2462
2463 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2464
2465         PR fortran/14077
2466         * moduele.c (mio_symbol): Don't I/O initial values unless
2467         symbol is a parameter.
2468
2469 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2470
2471         PR fortran/13201
2472         * resolve.c (resolve_symbol): Verify that the shape of a
2473         parameter array is not only explicit, but also constant.
2474         * array.c (gfc_is_compile_time_shape): New function.
2475         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
2476
2477 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2478
2479         PR fortran/15481
2480         PR fortran/13372
2481         PR fortran/13575
2482         PR fortran/15978
2483         * module.c (write_symbol, write_symtree): Remove workaround.
2484         * primary.c (match_actual_arglist): Enhance comment.
2485         (gfc_match_rvalue): Handle function call with first argument
2486         a keyword argument correctly.
2487         * resolve.c (resolve_symbol): Change call to
2488         gfc_set_default_type to issue error if no implicit type
2489         can be found.
2490         * trans-decl.c (gfc_create_module_variable): Remove workaround.
2491
2492 2004-07-08  Paul Brook  <paul@codesourcery.com>
2493
2494         * intrinsic.c (add_sym_4s): New function.
2495         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
2496
2497 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2498         Paul Brook  <paul@codesourcery.com>
2499
2500         PR fortran/15280
2501         PR fortran/15665
2502         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
2503         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
2504         * intrinsic.c (add_functions):  Identify iargc.  Add
2505         command_argument_count.
2506         (add_subroutines): Resolve getarg.  Add get_command and
2507         get_command_argument.
2508         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
2509         gfc_resolve_get_command_argument): Add prototypes.
2510         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
2511         gfc_resolve_get_command_argument): New functions.
2512         * trans-decl.c (gfor_fndecl_iargc): New variable.
2513         (gfc_build_intrinsic_function_decls): Set it.
2514         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
2515         (gfc_conv_intrinsic_function): Use it.
2516         * trans.h (gfor_fndecl_iargc): Declare.
2517
2518 2004-07-04  Matthias Klose  <doko@debian.org>
2519
2520         * Make-lang.in: Generate and install gfortran man page.
2521         * invoke.texi: Remove extra '@c man end'.
2522
2523 2004-07-04  Richard Henderson  <rth@redhat.com>
2524
2525         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
2526
2527 2004-07-04  Paul Brook  <paul@codesourcery.com>
2528
2529         * decl.c (gfc_match_implicit_range): Don't use typespec.
2530         (gfc_match_implicit): Handle character selectors.
2531         * gfortran.h (gfc_set_implicit): Remove prototype.
2532         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
2533         * parse.c (accept_statement): Don't call gfc_set_implicit.
2534         * symbol.c (new_ts): Remove.
2535         (gfc_set_implicit_none): Use same loop bounds as other functions.
2536         (gfc_set_implicit): Remove.
2537         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
2538         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
2539
2540 2004-06-30  Richard Henderson  <rth@redhat.com>
2541
2542         * match.c (var_element): Remove unused variable.
2543
2544         * trans-decl.c (gfc_generate_function_code): Don't set
2545         x_whole_function_mode_p.
2546         (gfc_generate_constructors): Likewise.
2547
2548 2004-06-30  Richard Henderson  <rth@redhat.com>
2549
2550         * trans-decl.c (gfc_generate_function_code): Don't set
2551         immediate_size_expand.
2552         (gfc_generate_constructors): Likewise.
2553
2554 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2555
2556         PR fortran/16161
2557         * decl.c (gfc_match_type_spec): Rename second argument to
2558         'implicit_flag', reverse meaning. Don't match_char_spec if
2559         'implicit_flag' is set. Rename to ...
2560         (match_type_spec): ... this.
2561         (gfc_match_implicit_none, match_implicit_range): Move here
2562         from match.c.
2563         (gfc_match_implicit): Move here from match.c, try to
2564         match_char_len if match_implicit_range doesn't succeed for
2565         CHARACTER implicits. Call renamed fucntion match_type_spec.
2566         (gfc_match_data_decl, match_prefix): Call renamed function
2567         match_type_spec.
2568         * match.c (gfc_match_implicit_none, match_implicit_range,
2569         gfc_match_implicit): Move to decl.c.
2570         * match.h (gfc_match_implicit_none, gfc_match_implicit):
2571         Move protoypes to section 'decl.c'.
2572         (gfc_match_type_spec): Remove prototype.
2573
2574 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2575
2576         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
2577         copyright years.
2578
2579 2004-06-29  Steven Bosscher  <stevenb@suse.de>
2580
2581         Make sure types in assignments are compatible.  Mostly mechanical.
2582         * trans-const.h (gfc_index_one_node): New define.
2583         * trans-array.c (gfc_trans_allocate_array_storage,
2584         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
2585         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
2586         gfc_conv_array_ubound, gfc_conv_array_ref,
2587         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
2588         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
2589         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
2590         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
2591         types in assignments, conversions and conditionals for expressions.
2592         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
2593         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
2594         gfc_conv_function_call, gfc_trans_pointer_assignment,
2595         gfc_trans_scalar_assign): Likewise.
2596         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
2597         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
2598         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
2599         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
2600         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
2601         gfc_conv_allocated, gfc_conv_associated,
2602         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
2603         * trans-io.c (set_string): Likewise.
2604         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
2605         gfc_do_allocate, generate_loop_for_temp_to_lhs,
2606         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
2607         compute_overall_iter_number, gfc_trans_assign_need_temp,
2608         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
2609         gfc_evaluate_where_mask, gfc_trans_where_assign,
2610         gfc_trans_where_2): Likewise.
2611         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
2612         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
2613
2614         * trans.c (gfc_add_modify_expr): Add sanity check that types
2615         for the lhs and rhs are the same for scalar assignments.
2616
2617 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2618
2619         * dump-parse-tree.c (show_common): New function.
2620         (gfc_show_namespace): Show commons.
2621
2622 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2623         Andrew Vaught  <andyv@firstinter.net>
2624
2625         PR fortran/13249
2626         PR fortran/15481
2627         * decl.c (gfc_match_save): Adapt to new common structures,
2628         don't allow saving USE-associated common.
2629         * dump-parse-tree (gfc_show_attr): (saved_)common are not
2630         symbol attributes any longer.
2631         (gfc_show_symbol): Don't show old-style commons any longer.
2632         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
2633         interface.
2634         * gfortran.h (symbol_attribute): Remove common and saved_common
2635         attributes.
2636         (gfc_symbol): Remove common_head element.
2637         (gfc_common_head): New struct.
2638         (gfc_get_common_head): New macro.
2639         (gfc_symtree): Add field 'common' to union.
2640         (gfc_namespace): Add field 'common_root'; change type of field
2641         'blank_common' to blank_common.
2642         (gfc_add_data): New prototype.
2643         (gfc_traverse_symtree): Expect a symtree as first argument
2644         instead of namespace.
2645         * match.c (gfc_get_common): New function.
2646         (match_common_name): Change to take char * as argument, adapt,
2647         fix bug with empty name.
2648         (gfc_match_common): Adapt to new data structures. Disallow
2649         redeclaration of USE-associated COMMON-block. Fix bug with
2650         empty common.
2651         (var_element): Adapt to new common structures.
2652         * match.h (gfc_get_common): Declare.
2653         * module.c: Add 2004 to copyright years, add commons to module
2654         file layout description.
2655         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
2656         for removed attributes.
2657         (mio_symbol): Adapt to new way of storing common relations.
2658         (load_commons): New function.
2659         (read_module): Skip common list on first pass, load_commons at
2660         second.
2661         (write_commons): New function.
2662         (write_module): Call write_commons().
2663         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
2664         functions related to removed attributes.
2665         (gfc_add_data): New function.
2666         (gfc_clear_attr): Don't set removed attributes.
2667         (gfc_copy_attr): Don't copy removed attributes.
2668         (traverse_symtree): Remove.
2669         (gfc_traverse_symtree): Don't traverse symbol
2670         tree of the passed namespace, but require a symtree to be passed
2671         instead. Unify with traverse_symtree.
2672         (gfc_traverse_ns): Call gfc_traverse_symtree according to new
2673         interface.
2674         (save_symbol): Remove setting of removed attribute.
2675         * trans-common.c (gfc_sym_mangled_common_id): Change to
2676         take 'char *' argument instead of 'gfc_symbol'.
2677         (build_common_decl, new_segment, translate_common): Adapt to new
2678         data structures, add new
2679         argument name.
2680         (create_common): Adapt to new data structures, add new
2681         argument name. Fix typo in intialization of derived types.
2682         (finish_equivalences): Add second argument in call to
2683         create_common.
2684         (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
2685         (gfc_trans_common): Adapt to new data structures.
2686         * trans-decl.c (gfc_create_module_variables): Remove test for
2687         removed attribute.
2688
2689 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2690
2691         * io.c: Add 2004 to copyright years.
2692
2693 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2694         Andrew Vaught  <andyv@firstinter.net>
2695
2696         * gfortran.h (gfc_gsymbol): New typedef.
2697         (gfc_gsym_root): New variable.
2698         (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
2699         * parse.c (global_used): New function.
2700         (parse_block_data): Check for double empty BLOCK DATA,
2701         use global symbol table.
2702         (parse_module): Use global symbol table.
2703         (add_global_procedure, add_global_program): New functions.
2704         (gfc_parse_file): Use global symbol table.
2705         * symbol.c (gfc_gsym_root): New variable.
2706         (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
2707         functions.
2708
2709 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2710
2711         * module.c (mio_gmp_real): Correct writing of negative numbers.
2712
2713 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2714
2715         PR fortran/15963
2716         * expr.c (check_intrinsic_op): Allow comparison of characters.
2717         Make logic easier.
2718
2719 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2720         Andrew Vaught  <andyv@firstinter.net>
2721
2722         * decl.c (contained_procedure): New function.
2723         (match_end): Verify correctness of END STATEMENT in
2724         all cases.
2725
2726 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2727         Andrew Vaught  <andyv@firstinter.net>
2728
2729         PR fortran/15190
2730         * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
2731         (decode_statement): Enforce required space in free-form.
2732
2733 2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2734
2735         * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
2736         * trans-array.c (gfc_conv_descriptor_data): Add operand
2737         for COMPONENT_REF.
2738         (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
2739         (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
2740         (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
2741         * trans-common.c (create_common): Likewise.
2742         * trans-expr.c (gfc_conv_component_ref): Likewise.
2743         * trans-io.c (set_parameter_value): Likewise.
2744         (set_parameter_ref, set_string, set_flag, io_result): Likewise.
2745         (transfer_expr): Likewise.
2746         * trans-decl.c (gfc_trans_auto_character_variable):
2747         Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
2748         (gfc_gimplify_function): New function.
2749         (gfc_generate_function-code): Properly handle nested functions.
2750         * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
2751
2752 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2753
2754         PR fortran/15750
2755         * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
2756         (gfc_resolve_inquire): Resolve the iolength tag.  Return
2757         SUCCESS at end of function if no failure has occured.
2758         * resolve.c (resolve_code): Resolve if iolength is encountered.
2759         * trans-io.c: (ioparm_iolength, iocall_iolength,
2760         iocall_iolength_done): New variables.
2761         (last_dt): Add IOLENGTH.
2762         (gfc_build_io_library_fndecls ): Set iolength related variables.
2763         (gfc_trans_iolength): Implement.
2764         (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
2765
2766 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
2767
2768         PR fortran/15511
2769         * scanner.c (load_line): Don't truncate preprocessor lines.
2770         Reformat error message.
2771         (preprocessor_line): Issue warning in case of malformed
2772         preprocessor line.
2773
2774 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2775
2776         * resolve.c (resolve_symbol): Add comment in function body.
2777         (check_data_variable): Change type of mark to ar_type, adapt code
2778         accordingly.
2779
2780 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2781
2782         * array.c (gfc_insert_constructor): Avoid redundant call to
2783         mpz_comp. Add 2004 to copyright years.
2784
2785 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2786
2787         * trans.h (stmtblock_t): Change has_scope to unsigned int.
2788
2789 2004-06-20  Steven G. Kargl  <kargls@comcast.net>
2790
2791         * arith.c (gfc_range_check): correct complex underflow.
2792
2793 2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2794
2795         PR fortran/15962
2796         * match.c (match_case_selector): Call gfc_match_init_expr
2797         instead of gfc_match_expr.
2798         * resolve.c (validate_case_label_expr): No need to check for
2799         constant, since it wouldn't have been matched with the fix to
2800         match.c.
2801
2802 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2803
2804         PR fortran/15211
2805         * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
2806         of strings.
2807
2808 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2809
2810         PR fortran/15510
2811         * trans-deecl.c (generate_local_decl): Do not issue warning for
2812         unused variables if they're use associated.
2813
2814 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2815         Andrew Vaught <andyv@firstinter.net>
2816
2817         PR fortran/14928
2818         * gfortran.h (gfc_check_f): Add new field f3ml.
2819         * check.c (gfc_check_minloc_maxloc): Take argument list instead
2820         of individual arguments, reorder if necessary.
2821         * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
2822         * intrinsic.c (add_sym_3ml): New function.
2823         (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
2824         (check_specific): Catch special case MINLOC, MAXLOC.
2825
2826 2004-06-14  Paul Brook  <paul@codesourcery.com>
2827
2828         * intrinsic.c (add_sym_2s): Use correct function types.
2829
2830 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2831
2832         * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
2833         * data.c (gfc_get_section_index):  Remove dependency on trans.h.
2834
2835 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
2836
2837         * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
2838         gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
2839         * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
2840         GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
2841         * trans-intrinsic.c:  Use symbols.
2842         * intrinsic.c (add_sym_2s): New function.
2843         * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
2844         * intrinsic.h: Function prototypes.
2845         * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
2846         gfc_resolve_srand):  New functions.
2847
2848 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2849
2850         PR fortran/14957
2851         * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
2852         contained procedure.
2853
2854 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2855
2856         PR fortran/12841
2857         * interface.c (compare_parameter, compare_actual_formal): Don't
2858         check types and array shapes for NULL()
2859         * trans-expr.c (conv_function_call): No double indirection for
2860         NULL()
2861
2862 2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
2863
2864         * trans-expr.c (gfc_conv_cst_int_power): Compute
2865         x**(-n) by converting it to (1/x)**n instead of
2866         1/x**n.
2867
2868 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2869
2870         PR fortran/13372
2871         * module.c (write_symbol, write_symtree): Don't write symbols
2872         wrongly added to namespace.
2873         * trans-decl.c (gfc_create_module_variable): Don't create a
2874         backend decl for a symbol incorrectly added to namespace.
2875
2876 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2877
2878         PR fortran/13201
2879         * resolve.c (resolve_symbol): Verify that parameter array has an
2880         explicit shape. Fix typos and coding style issues in surrounding
2881         lines.
2882
2883 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2884
2885         PR fortran/15478
2886         * gfortran.texi: The documentation doesn't contain infomration on
2887         how to report bugs, and shouldn't, so remove the line which
2888         says it does.
2889
2890 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2891
2892         * intrinsic.c (sort_actual): Keep track of type of missing
2893         arguments. (Missing from previous commit.)
2894
2895 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2896
2897         * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
2898         * interface.c (compare_actual_formal): Keep type of omitted
2899         optional arguments.
2900         * trans-expr.c (gfc_conv_function_call): Add string length
2901         argument for omitted string argument.
2902
2903 2004-06-03  Paul Brook  <paul@codesourcery.com>
2904
2905         * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
2906         lists instead of compound expr chains.
2907         (gfc_trans_code): Annotate statement lists.
2908
2909 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2910
2911         * trans-array.c: Fix spelling in comments.
2912
2913 2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2914
2915         PR fortran/15557
2916         * data.c (assign_substring_data_value): New function.
2917         (gfc_assign_data_value): Call the new function if we're dealing
2918         with a substring LHS.
2919
2920 2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2921
2922         PR fortran/15477
2923         * gfortran.h (GFC_VERSION): Remove.
2924         * gfortran.texi (version-gfortran): Remove, replace by version-GCC
2925         where used.
2926
2927 2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2928
2929         * trans-types.c: Fix spelling & layout in comments.
2930
2931 2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2932
2933         PR fortran/14067
2934         * trans-const.c (gfc_conv_string_init): Allow variable string
2935         length lower than initialization string length.
2936
2937 2004-05-30  Paul Brook  <paul@codesourcery.com>
2938
2939         PR fortran/15620
2940         * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
2941         * trans-expr.c (gfc_trans_string_copy): New function.
2942         (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
2943         character lengths.
2944         (gfc_conv_string_parameter): Use gfc_trans_string_copy.
2945         * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
2946         * trans.h (struct gfc_saved_var): Define.
2947         (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
2948
2949 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
2950
2951         * iresolve.c (gfc_resolve_random_number): Clean up conditional.
2952
2953 2004-05-29  Steven G. Kargl  <kargls@comcast.net>
2954
2955         * simplify.c (gfc_simplify_log): Remove useless line of code.
2956
2957 2004-05-29  Paul Brook  <paul@codesourcery.com>
2958
2959         * trans-common.c (find_equivalence): Find multiple rules.
2960
2961 2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2962
2963         * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
2964         (gfc_current_locus): Declare new global variable.
2965         * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
2966         (gfc_current_locus1): Rename ...
2967         (gfc_current_locus): ... to this.
2968         (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
2969         skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
2970         gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
2971         gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
2972         and gfc_current_locus(), respectively.
2973         * array.c (match_subscript, gfc_match_array_ref, match_array_list,
2974         match_array_cons_element, gfc_match_array_constructor):
2975         Read/modify gfc_current_locus instead of calling gfc_set_locus()
2976         and gfc_current_locus().
2977         * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
2978         match_attr_spec, gfc_match_function_decl, gfc_match_end,
2979         attr_decl1, gfc_match_save): Likewise.
2980         * error.c (error_print, gfc_internal_error): Likewise.
2981         * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
2982         * interface.c (gfc_add_interface): Likewise.
2983         * io.c (gfc_match_format, match_dt_format, match_dt_element,
2984         match_io_iterator, match_io): Likewise.
2985         * match.c (gfc_match_space, gfc_match_eos,
2986         gfc_match_small_literal_int, gfc_match_st_label,
2987         gfc_match_strings, gfc_match_name, gfc_match_iterator,
2988         gfc_match_char, gfc_match, gfc_match_assignment,
2989         gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
2990         gfc_match_nullify, gfc_match_call, match_implicit_range,
2991         gfc_match_implicit, gfc_match_data, match_case_selector,
2992         gfc_match_case, match_forall_iterator): Likewise.
2993         * matchexp.c (gfc_match_defined_op_name, next_operator,
2994         match_level_1, match_mult_operand, match_ext_mult_operand,
2995         match_add_operand, match_ext_add_operand, match_level_2,
2996         match_level_3, match_level_4, match_and_operand, match_or_operand,
2997         match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
2998         * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
2999         * parse.c (match_word, decode_statement, next_free, next_fixed,
3000         add_statement, verify_st_order, parse_if_block, gfc_parse_file):
3001         Likewise.
3002         * primary.c (match_digits, match_integer_constant,
3003         match_boz_constant, match_real_constant, match_substring,
3004         next_string_char, match_charkind_name, match_string_constant,
3005         match_logical_constant, match_const_complex_part,
3006         match_complex_constant, match_actual_arg, match_keyword_arg,
3007         gfc_match_actual_arglist, gfc_match_structure_constructor,
3008         gfc_match_rvalue, gfc_match_variable): Likewise.
3009         * st.c (gfc_get_code): Likewise.
3010         * symbol.c (check_conflict, check_used, check_done,
3011         duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
3012         gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
3013         gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
3014
3015 2004-05-26  Roger Sayle  <roger@eyesopen.com>
3016
3017         * io.c (format_asterisk): Silence compiler warnings by correcting
3018         the number of elements of a "locus" initializer.
3019
3020 2004-05-25  Roger Sayle  <roger@eyesopen.com>
3021
3022         PR fortran/13912
3023         * matchexp.c: Allow unary operators after arithmetic operators
3024         as a GNU extension.
3025         (match_ext_mult_operand, match_ext_add_operand): New functions.
3026         (match_mult_operand): Tweak to call match_ext_mult_operand.
3027         (match_add_operand): Tweak to call match_ext_mult_operand.
3028         (match_level_2): Rearrange to call match_ext_add_operand.
3029
3030 2004-05-25  Paul Brook  <paul@codesourcery.com>
3031
3032         * expr.c (check_inquiry): Remove bogus tests.
3033
3034 2004-05-23  Paul Brook  <paul@codesourcery.com>
3035
3036         PR fortran/13773
3037         * expr.c (restricted_args): Remove redundant checks/argument.
3038         (external_spec_function): Update to match.
3039         (restricted_intrinsic): Rewrite.
3040
3041 2004-05-23  Paul Brook  <paul@codesourcery.com>
3042         Victor Leikehman  <lei@haifasphere.co.il>
3043
3044         * gfortran.h (struct gfc_symbol): Add equiv_built.
3045         * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
3046         messages.
3047         (current_length): Remove.
3048         (add_segments): New function.
3049         (build_equiv_decl): Create initialized common blocks.
3050         (build_common_decl): Always add decl to bindings.
3051         (create_common): Create initializers.
3052         (find_segment_info): Reformat to match coding conventions.
3053         (new_condition): Use add_segments.
3054         (add_condition, find_equivalence, add_equivalences): Move iteration
3055         inside functions.  Only process each segment once.
3056         (new_segment, finish_equivalences, translate_common): Simplify.
3057
3058 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
3059
3060         * check.c (gfc_check_random_seed): Issue for too many arguments.
3061
3062 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3063
3064         * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
3065
3066 2004-05-22  Paul Brook  <paul@codesourcery.com>
3067
3068         * dump-parse-tree.c (gfc_show_equiv): New function.
3069         (gfc_show_namespace): Use it.
3070
3071 2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
3072
3073         PR fortran/13249
3074         * symbol.c (gfc_add_common): Disable checks to work around other more
3075         fundamental inadequacies.
3076
3077 2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3078
3079         * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
3080         only for functions.
3081         (gfc_build_function_decl): Likewise.
3082
3083 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3084
3085         * check.c (gfc_check_system_clock): New function.
3086         * intrinsic.c (add_sym_3s): New function.
3087         (add_subroutines): Use it.
3088         * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
3089         Add prototypes.
3090         * iresolve.c (gfc_resolve_system_clock): New function.
3091
3092 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
3093
3094         * invoke.texi: Document -Wunderflow and spell check.
3095         * lang.opt: Add Wunderflow.
3096         * gfortran.h (gfc_option_t): Add warn_underflow option.
3097         * options.c (gfc_init_options, set_Wall): Use it.
3098         * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
3099         * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
3100         gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
3101         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
3102         * arith.c (common_logarithm): Fix typo in comment.
3103
3104 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3105
3106         * io.c (check_format): As a GNU extension, allow the comma after a
3107         string literal to be optional in a format.  Use gfc_notify_std to
3108         issue an error/warning as appropriate.
3109
3110 2004-05-21  Roger Sayle  <roger@eyesopen.com>
3111
3112         * io.c (check_format): Use gfc_notify_std to determine whether to
3113         issue an error/warning for omitting the digits from the X format.
3114
3115 2004-05-20  Roger Sayle  <roger@eyesopen.com>
3116
3117         * io.c (check_format): Allow the number before the X format to
3118         be optional when not -pedantic.
3119
3120 2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
3121         Paul Brook  <paul@codesourcery.com>
3122
3123         * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
3124         Create decls for __builtin_pow{,f}.
3125         * gfortran.h (PREFIX_LEN): Define.
3126         * trans-decl.c (gfor_fndecl_math_powi): Add.
3127         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
3128         (gfc_build_intrinsic_function_decls): Create decls for powi.
3129         * trans-expr.c (powi_table): Add.
3130         (gfc_conv_integer_power): Remove.
3131         (gfc_conv_powi): New function.
3132         (gfc_conv_cst_int_power): New function.
3133         (gfc_conv_power_op): Use new powi routines.
3134         * trans.h (struct gfc_powdecl_list): Add.
3135         (gfor_fndecl_math_powi): Add.
3136         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
3137
3138 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3139
3140         * trans.c, trans-decl.c: Fix comment typos.
3141
3142 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3143
3144         * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
3145
3146 2004-05-18  Steve Kargl  <kargls@comcast.net>
3147
3148         * arith.c (gfc_int2complex): Fix incorrect range checking.
3149
3150 2004-05-18  Paul Brook  <paul@codesourcery.com>
3151
3152         PR fortran/13930
3153         * decl.c (add_init_expr_to_sym): Remove incorrect check.
3154         (default_initializer): Move to expr.c.
3155         (variable_decl): Don't assign default initializer to variables.
3156         * expr.c (gfc_default_initializer): Move to here.
3157         * gfortran.h (gfc_default_initializer): Add prototype.
3158         * resolve.c (resolve_symbol): Check for illegal initializers.
3159         Assign default initializer.
3160
3161 2004-05-17  Steve Kargl  <kargls@comcast.net>
3162
3163         * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
3164
3165 2004-05-17  Steve Kargl  <kargls@comcast.net>
3166
3167         * arith.c (gfc_real2complex): Range checking wrong part of complex
3168         number.
3169
3170 2004-05-16  Paul Brook  <paul@codesourcery.com>
3171
3172         * options.c (gfc_handle_module_path_options): Fix buffer overrun.
3173
3174 2004-05-16  Paul Brook  <paul@codesourcery.com>
3175
3176         * arith.c (gfc_range_check): Fix logic error.
3177
3178 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3179
3180         * arith.c: Fix comment typos.
3181
3182 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3183
3184         PR fortran/13742
3185         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
3186         not initialized in a disallowed fashion.
3187         * match.c (gfc_match_common): Likewise.
3188         (var_element): Verify that variable is not in the blank COMMON,
3189         if it is in a common.
3190
3191 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
3192
3193         * Make-lang.in (f95.generated-manpages): Remove.
3194         (f95.srcextra): New.
3195         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
3196         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
3197         (f95.dvi): Remove.
3198         (dvi): New.
3199         (f95.install-info): Remove.
3200         (install-info): New.
3201
3202 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
3203
3204         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
3205
3206 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3207
3208         * primary.c (match_boz_constant): Use gfc_notify_std() for
3209         issuing a warning or an error.
3210
3211 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3212
3213         PR fortran/13826
3214         * primary.c (match_structure_constructor): Rename ...
3215         (gfc_match_structure_constructor): ... to this. Make non-static.
3216         (gfc_match_rvalue): Call renamed function.
3217         * match.h (gfc_match_structure_constructor): Declare.
3218         * match.c (gfc_match_data_constant): Handle structure
3219         constructor.
3220
3221 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3222
3223         PR fortran/13702
3224         (Port from g95)
3225         * gfortran.h (gfc_linebuf): New typedef.
3226         (linebuf): Remove.
3227         (gfc_file): Revamped, use new gfc_linebuf.
3228         (locus): Revamped, use new types.
3229         (gfc_current_file): Remove.
3230         (gfc_current_form, gfc_source_file): New global variables.
3231         * match.c (gfc_match_space, gfc_match_strings): Use
3232         gfc_current_form to find source form.
3233         * module.c (gfc_dump_module): Use gfc_source_file when printing
3234         module header.
3235         * error.c (show_locus, show_loci) Use new data structures to print
3236         locus.
3237         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
3238         Remove.
3239         (file_head, current_file, gfc_current_form, line_head, line_tail,
3240         gfc_current_locus1, gfc_source_file): New global variables.
3241         (gfc_scanner_init1): Set new global variables.
3242         (gfc_scanner_done1): Free new data structures.
3243         (gfc_current_locus): Return pointer to gfc_current_locus1.
3244         (gfc_set_locus): Set gfc_current_locus1.
3245         (gfc_at_eof): Set new variables.
3246         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
3247         to new locus structure.
3248         (gfc_check_include): Remove.
3249         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
3250         (gfc_skip_comments): Use gfc_current_form, find locus with
3251         gfc_current_locus1.
3252         (gfc_next_char): Use gfc_current_form.
3253         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
3254         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
3255         comment formatting.
3256         (get_file): New function.
3257         (preprocessor_line, include_line): New functions.
3258         (load_file): Move down, rewrite to match new data structures.
3259         (gfc_new_file): Rewrite to match new data structures.
3260         * parse.c (next_statement): Remove code which is now useless. Use
3261         gfc_source_form and gfc_source_file where appropriate.
3262         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
3263         when determining locus of frontend code.
3264         * trans-io.c (set_error_locus): Same.
3265         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
3266         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
3267         preprocessor flags.
3268         (all): Add missing initializers.
3269
3270 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3271
3272         * Make-lang.in (trans-common.o): Remove redundant dependency.
3273         (data.c): Replace object file name ...
3274         (data.o): ... by the correct one.
3275
3276 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3277
3278         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
3279         for ranges when dumping array references.
3280
3281 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
3282
3283         * decl.c (variable_decl): Always apply default initializer.
3284
3285 2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3286
3287         PR fortran/15206
3288         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
3289         handle zero correctly.
3290
3291 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3292
3293         * match.c (gfc_match): Eliminate dead code.
3294
3295 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3296
3297         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
3298         Detect bad continuation line in fixed form sources.
3299
3300 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3301
3302         PR fortran/15205
3303         * iresolve.c (gfc_resolve_nearest): Add new function.
3304         * intrinsic.h: ... declare it here.
3305         * intrinsic.c (add_functions): ... add it as resolving function
3306         for NEAREST.
3307
3308 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3309
3310         PR fortran/14066
3311         * match.c (gfc_match_do): Allow infinite loops with
3312         label-do-stmt. Do not enforce space after comma.
3313
3314 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3315
3316         PR fortran/15051
3317         * parse.c (parse_interface): Allow empty INTERFACE, remove
3318         seen_body.
3319
3320 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3321
3322         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
3323         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
3324         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
3325         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
3326         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
3327         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
3328         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
3329         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
3330         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
3331         trans-types.h, trans.c, trans.h: Update copyright years and
3332         boilerplate.
3333         * data.c: Likewise, also removed two whitespace-only lines.
3334         * gfortranspec.c, lang.opt: Update copyright years.
3335
3336 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3337
3338         PR fortran/14568
3339         * trans-decl.c (generate_local_decl): Don't warn for unused
3340         variables which are in common blocks.
3341
3342 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
3343
3344         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
3345         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
3346         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
3347
3348 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
3349
3350         PR fortran/15314
3351         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
3352
3353 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
3354
3355         * gfortran.texi: Use @table @emph instead of @itemize @emph.
3356         Remove "set DEVELOPMENT".
3357         (Compiling GFORTRAN): Remove.
3358
3359 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3360
3361         * array.c (match_subscript, match_array_ref): Add comments
3362         explaining argument 'init'.
3363         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
3364         trans-expr.c, trans.c: Fix some typos in comments.
3365         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
3366         * primary.c (match_digits, match_integer_constant): Add comment
3367         explaining signflag.
3368
3369 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3370
3371         PR fortran/13940
3372         * primary.c: Include system.h and flags.h, needed for pedantic.
3373         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
3374         pedantic is set.
3375
3376 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3377
3378         PR fortran/13940
3379         * match.c (match_data_constant): Handle case where
3380         gfc_find_symbol sets sym to NULL
3381
3382 2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
3383
3384         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
3385         dependency on mathbuiltins.def
3386
3387 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
3388
3389         * trans-io.c (transfer_expr): Implemented recursive printing
3390         of derived types.
3391
3392 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
3393
3394         * gfortranspec.c: Do not include multilib.h.
3395
3396 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
3397
3398         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
3399         2004 to copyright years.
3400         * trans-expr.c, trans-decl.c: Comment update, we now generate
3401         GENERIC, not SIMPLE. Add 2004 to copyright years.
3402
3403 2004-04-24  Paul Brook  <paul@codesourcery.com>
3404
3405         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
3406
3407 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
3408
3409         PR 14817
3410         * arith.c (gfc_arith_divide): Fix complex divide.
3411
3412 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
3413
3414         * gfortranspec.c: Include the target headers.
3415
3416 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
3417
3418         PR fortran/14921
3419         PR fortran/14540
3420         * arith.c (arctangent2): New function.
3421         * arith.h (arctangent2): Add function prototype.
3422         * simplify.c (gfc_simplify_atan2): Use it.
3423         (gfc_simplify_log): Use it.
3424
3425 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
3426
3427         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
3428         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
3429
3430 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
3431
3432         PR fortran/14872
3433         * trans-io.c (build_dt): Change REC to value.
3434
3435 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3436
3437         PR 14394
3438         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
3439         the real value when converting mpf to string.
3440
3441 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3442
3443         PR 14395
3444         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
3445         the result.
3446
3447 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
3448
3449         PR fortran/14377
3450         * simplify.c (simplify_min_max): Convert the type of the result.
3451
3452 2004-04-11  Paul Brook  <paul@codesourcery.com>
3453
3454         * gfortran.texi: Use full target triplet.
3455
3456 2004-04-11  Paul Brook  <paul@codesourcery.com>
3457
3458         * Make-lang.in (GFORTRAN_TEXI): Set it.
3459         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
3460         (fortran/gfortran.info): Ditto.
3461         * gfortran.texi: Major update.
3462         * invoke.texi: New file.
3463
3464 2004-04-10  Paul Brook  <paul@codesourcery.com>
3465
3466         * trans-array.c (gfc_trans_allocate_temp_array,
3467         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
3468         * trans-decl.c (gfc_build_dummy_array_decl,
3469         gfc_get_symbol_decl, gfc_build_function_decl,
3470         gfc_create_module_variable): Ditto.
3471         * trans-expr.c (gfc_conv_variable): Ditto.
3472         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
3473         * trans.h (GFC_DECL_STRING): Remove.
3474         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
3475         GFC_DECL_ASSIGN): Renumber flags.
3476
3477 2004-04-05  Paul Brook  <paul@codesourcery.com>
3478
3479         PR 13252
3480         PR 14081
3481         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
3482         and stack_restore.
3483         * gfortran.h (struct gfc_charlen): Add backend_decl.
3484         * trans-array.c (gfc_trans_allocate_temp_array,
3485         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
3486         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
3487         Remove old, broken string handling.
3488         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
3489         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
3490         gfc_trans_deferred_array): Handle character arrays.
3491         * trans-const.c (gfc_conv_const_charlen): New function.
3492         * trans-const.h (gfc_conv_const_charlen): Add prototype.
3493         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
3494         as static.
3495         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
3496         (gfc_create_string_length): New function.
3497         (gfc_get_symbol_decl): Create lengths for character variables.
3498         (gfc_get_fake_result_decl): Ditto.
3499         (gfc_build_function_decl): Only set length for assumed length
3500         character arguments.
3501         (gfc_trans_dummy_character): New function.
3502         (gfc_trans_auto_character_variable): Rewrite.
3503         (gfc_trans_deferred_vars): Handle more types of character variable.
3504         (gfc_create_module_variable): String lengths have moved.
3505         (gfc_generate_function_code): Initialize deferred var chain earlier.
3506         * trans-expr.c (gfc_conv_init_string_length): Rename ...
3507         (gfc_trans_init_string_length):  ... to this.
3508         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
3509         gfc_conv_function_call): Update to new format for character variables.
3510         (gfc_conv_string_length): Remove.
3511         (gfc_conv_string_parameter): Update assertion.
3512         * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
3513         * trans-io.c (set_string): Use new macro names.
3514         * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
3515         * trans-types.c (gfc_get_character_type): Use existing length expr.
3516         (gfc_is_nodesc_array): Make public.
3517         (gfc_get_dtype_cst): Rename ...
3518         (gfc_get_dtype): ... to this.  Handle unknown size arrays.
3519         (gfc_get_nodesc_array_type): Use new name.
3520         (gfc_sym_type): New character variable code.
3521         (gfc_get_derived_type): Ditto.
3522         (gfc_get_function_type): Evaluate character variable lengths.
3523         * trans-types.h (gfc_strlen_kind): Define.
3524         (gfc_is_nodesc_array): Add prototype.
3525         * trans.h: Update prototypes.
3526         (struct lang_type): Update comments.
3527         (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
3528         (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
3529
3530 2004-04-04  Paul Brook  <paul@codesourcery.com>
3531
3532         * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
3533         * options.c (gfc_init.options, gfc_handle_option): Ditto.
3534         * trans-expr.c (gfc_conv_function_call): Ditto.
3535         * trans-types.c (gfc_is_nodesc_array): Ditto
3536         * lang.opt (fg77-calls): Remove.
3537
3538 2004-04-04  Paul Brook  <paul@codesourcery.com>
3539
3540         * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
3541         (gfc_conv_descriptor_base): Rename ...
3542         (gfc_conv_descriptor_offset): ... to this.
3543         (gfc_trans_allocate_array_storage): Set offset to zero.
3544         (gfc_conv_array_base): Rename ...
3545         (gfc_conv_array_offset): ... to this.
3546         (gfc_conv_array_index_ref): Add offset parameter.
3547         (gfc_conv_array_ref): Include offset.
3548         (gfc_trans_preloop_setup): Use existing offset.
3549         (gfc_trans_allocate_temp_array,  gfc_array_allocate,
3550         gfc_trans_auto_array_allocation, gfc_trans_g77_array,
3551         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
3552         gfc_conf_ss_descriptor): Set offset.
3553         * trans-array.h: Rename prototypes.
3554         * trans-const.h (gfc_index_zero_node): Define.
3555         * trans-decl.c (gfc_build_qualified_array): Change base to offset.
3556         * trans-types.c (gfc_get_array_type_bounds): Ditto.
3557         (gfc_get_nodesc_array_type): Calculate offset before upper bound.
3558
3559 2004-03-25  Diego Novillo  <dnovillo@redhat.com>
3560
3561         * convert.c (convert): Don't handle WITH_RECORD_EXPR.
3562
3563 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3564
3565         PR 14055
3566         * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
3567         before conversion by gmp library call.
3568
3569 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
3570
3571         PR 12921
3572         * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
3573
3574 2004-02-24  Richard Henderson  <rth@redhat.com>
3575
3576         * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
3577
3578 2004-02-19  Loren J. Rittle  <ljrittle@acm.org>
3579
3580         * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
3581         (fortran/gfortran.info): ... to here.
3582         (f95.srcinfo): New.
3583
3584 2004-02-16  Richard Henderson  <rth@redhat.com>
3585
3586         * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
3587         * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
3588         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
3589         (gfc_expand_function): Rename from expand_function_body, make static,
3590         don't do anything except invoke tree_rest_of_compilation.
3591         (gfc_be_parse_file): Invoke cgraph.
3592         (gfc_expand_decl): Remove.
3593         (gfc_init_builtin_functions): Add __builtin_init_trampoline and
3594         __builtin_adjust_trampoline.
3595         * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
3596         (gfc_finalize): New.
3597         (gfc_generate_function_code): Use it.  Lower nested functions.
3598         * trans-expr.c (gfc_conv_function_call): Add static chain operand
3599         to call_expr.
3600         * trans.c (gfc_build_function_call): Likewise.
3601         * trans.h (expand_function_body): Remove.
3602
3603 2004-02-15  Victor Leikehman  <lei@il.ibm.com>
3604
3605         PR gfortran/13433
3606         * trans-decl.c (gfc_build_function_decl) For functions
3607         returning CHARACTER pass an extra length argument,
3608         following g77 calling conventions.
3609         * trans-types.c (gfc_get_function_type) Ditto.
3610         * trans-expr.c (gfc_conv_function_call) Ditto.
3611
3612 2004-02-14  Paul Brook  <paul@codesourcery.com>
3613
3614         * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
3615
3616 2004-02-12  Paul Brook  <paul@nowt.org>
3617
3618         * BUGS: Remove.
3619
3620 2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3621
3622         * gfortran.texi: Fix typos.
3623
3624 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
3625
3626         PR gfortran/13909
3627         * intrinsic.c (add_conversions) Use logical conversion instead
3628         of real.
3629         * trans-types.c (gfc_get_logical_type) implemented logical*1
3630         and logical*2.
3631
3632 2004-01-17  Paul Brook  <paul@codesourcery.com>
3633
3634         * lang-specs.h: Remove %<fixed-form.
3635
3636 2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>
3637
3638         * lang-specs.h: Enable preprocessing of source files
3639         ending in .F, .fpp, .FPP, .F90 and .F95.
3640
3641 2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>
3642
3643         PR fortran/12912
3644         * lang-specs.h: Enable compilation of files ending
3645         in .f, .for and .FOR.
3646
3647 2004-01-11  Paul Brook  <paul@codesourcery.com>
3648
3649         * trans-stmt.c (gfc_trans_if_1): New function.
3650         (gfc_trans_if): Use it.
3651
3652 2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>
3653
3654         * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
3655         (gfc_option_t): Add max_identifier_length.
3656         * lang.opt: Add fmax-identifier-length.
3657         * match.c (parse_name): Use limit.
3658         * options.c (gfc_init_options): Set max_identifier_length.
3659         (gfc_handle_option): Ditto.
3660
3661 2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>
3662
3663         * intrinsic.c (add_functions): Add resolve function to dcmplx.
3664         * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
3665         * iresolve.c (gfc_resolve_dcmplx): New function.
3666
3667 2004-01-10  Paul Brook  <paul@codesourcery.com>
3668
3669         * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
3670         * trans-types.c (gfc_sym_type): Handle external dummy procedures.
3671         (gfc_return_by_reference): Correct condition.
3672         (gfc_get_function_type): Ditto.
3673
3674 2004-01-10  Paul Brook  <paul@codesourcery.com>
3675
3676         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
3677         types.
3678
3679 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
3680
3681         * iresolve.c: Use correct kind.
3682
3683 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
3684
3685         PR fortran/13467
3686         * trans-decl.c (gfc_create_module_variable):  Output array valued
3687         parameters.
3688
3689 2004-01-10  Paul Brook  <paul@codesourcery.com>
3690
3691         * resolve.c (resolve_branch): Get error message right way round.
3692
3693 2004-01-10  Canqun Yang <canqun@nudt.edu.cn>
3694
3695         * trans-array (gfc_conv_loop_setup): Adjust comment to track
3696         reality.
3697         (gfc_array_allocate): Don't count size of element twice.
3698
3699 2004-01-04  Paul Brook  <paul@codesourcery.com>
3700
3701         * lang.opt (i8, r8, std=*): Remove RejectNegative.
3702
3703 2004-01-04  Paul Brook  <paul@codesourcery.com>
3704
3705         * error.c (gfc_notify_std): New function.
3706         * gfortran.h (gfc_notify_std): Declare.
3707         (GFC_STD_*): Define.
3708         (gfc_option_t): Add warn_std and allow_std.
3709         * intrinsic.c (gfc_init_expr_extensions): Fix logic.
3710         (gfc_intrinsic_func_interface): Use gfc_notify_std.
3711         * check.c (check_rest): Use gfc_notify_std.
3712         * match.c (gfc_match_pause): Ditto.
3713         (gfc_match_assign): Ditto.
3714         (gfc_match_goto): Ditto.
3715         * resolve.c (resolve_branch): Ditto.
3716         * lang.opt: Add std=<foo> and w.
3717         * options.c (gfc_init_options): Set allow_std and warn_std.
3718         (gfc_handle_option): Handle OPT_std_* and OPT_w.
3719
3720 2004-01-01  Paul Brook  <paul@codesourcery.com>
3721
3722         * array.c (gfc_append_constructor): Take constructor, not expression.
3723         * data.c (struct gfc_expr_stack): Remove.
3724         (expr_stack): Remove.
3725         (find_con_by_offset): Rename from find_expr_in_con.
3726         (find_con_by_component): Rename from find_component_in_con.
3727         (gfc_get_expr_stack): Remove.
3728         (gfc_assign_data_value): Rewrite.
3729         (gfc_expr_push): Remove.
3730         (gfc_expr_pop): Remove.
3731         (gfc_advance_section): Rename from
3732         gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
3733         (gfc_get_section_index): Handle unbounded sections.
3734         * gfortran.h: Update prototypes.
3735         * resolve.c (check_data_variable): Array section maight not be the
3736         last ref.
3737
3738 2004-01-01  Paul Brook  <paul@codesourcery.com>
3739
3740         PR fortran/13432
3741         * resolve.c (resolve_symbol): Allow assumed length function results.
3742
3743 2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>
3744
3745         * match.c (gfc_match_pause): Fix spelling.
3746
3747 2004-01-01  Steven Bosscher  <stevenb@suse.de>
3748
3749         PR fortran/13251
3750         * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
3751         reference from the expression.
3752
3753 2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>
3754
3755         * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
3756         dumping.
3757         * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
3758         (gfc_exec_op): New EXEC_LABEL_ASSIGN.
3759         (symbol_attribute):New variable attribute: assign.
3760         * io.c (resolve_tag):Integer variable is allowed.
3761         (match_dt_format): Add ASSIGN statement. Set assign flag.
3762         * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
3763         (gfc_match_assign): Add ASSIGN statement. Set assign flag.
3764         (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
3765         * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
3766         (next_statement): Add ST_LABEL_ASSIGNMENT.
3767         (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
3768         * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
3769         (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
3770         * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
3771         * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
3772         assign.  Put them into the stuct lang_decl.
3773         * trans-io.c (set_string): Add the assign statement.
3774         * trans-stmt.c (gfc_trans_label_assign): New function.
3775         (gfc_trans_goto): Translate ASSIGNED GOTO statement.
3776         * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
3777         * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
3778         * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
3779         (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
3780         (GFC_DECL_ASSIGN(node)): New macro to access flag.
3781
3782 2003-12-31  Huang Chun <chunhuang73@hotmail.com>
3783
3784         PR fortran/13434
3785         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
3786         minval/maxval.
3787
3788 2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>
3789
3790         * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
3791         that arguments to subroutines/functions can't alias themselves, nor global
3792         memory.
3793
3794 2003-12-20  Steven Bosscher  <stevenb@suse.de>
3795
3796         * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
3797         * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
3798
3799 2003-12-12  Huang Chun <chunhuang73@hotmail.com>
3800
3801         * primary.c (match_substring): Fix substring bug for start point
3802         or end point is NULL.
3803         * trans-expr.c (gfc_conv_substring): Ditto
3804         * trans-types.c (gfc_sym_type): Get correct type of scalar
3805         character variables.
3806         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
3807         derived type.
3808
3809 2003-12-10  Richard Henderson  <rth@redhat.com>
3810
3811         * options.c (gfc_post_options): Don't ever use rtl inlining.
3812
3813 2003-12-05  Canqun Yang  <canqun@nudt.edu.cn>
3814
3815         * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
3816         * trans-equivalence.c: Remove.
3817         * trans-decl.c (gfc_get_symbol_decl): Update to match.
3818         (gfc_generate_function_code): Ditto.
3819         * trans-array.c (gfc_conv_array_parameter): Ditto.
3820         * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
3821         (F95_ADDITIONAL_OBJS): Add stor-layout.o
3822         * trans.h (gfc_trans_equivalence): Remove.
3823         * gfortran.h (struct gfc_equiv): Add used field.
3824         (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
3825         equiv_offset fields.
3826
3827 2003-12-05  Richard Henderson  <rth@redhat.com>
3828
3829         * trans.c (gfc_build_addr_expr): New.
3830         (gfc_build_indirect_ref, gfc_build_array_ref): New.
3831         * trans.h: Declare them.
3832         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
3833         trans-stmt.c, trans.c (*): Use them.
3834
3835         * f95-lang.c (gfc_post_options): Remove dead prototype.
3836         * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
3837         * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
3838         allocation size.
3839
3840 2003-12-01  Feng Wang  <fengwang@nudt.edu.cn>
3841
3842         * io.c (gfc_match_format): Check for missing format label.
3843
3844 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
3845
3846         PR fortran/13155
3847         * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
3848         from interfaces in modules.
3849
3850 2003-11-30  Paul Brook  <paul@nowt.org>
3851
3852         * trans-array.c (gfc_trans_g77_array): Make non-static.
3853         (gfc_trans_assumed_size): Remove.
3854         (gfc_trans_dummy_array_bias): Explicitly free temporary.
3855         * trans-array.h (gfc_trans_g77_array): Add prototype.
3856         (gfc_trans_assumed_size): Remove.
3857         * trans-decls.c (gfor_fndecl_push_context): Remove.
3858         (gfor_fndecl_pop_context): Remove.
3859         (gfc_build_function)decls): Don't create them.
3860         (gfc_trans_deferred_vars): Update to match. Remove dead code.
3861         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
3862
3863 2003-11-30  Kejia Zhao  <kejia_zh@nudt.edu.cn>
3864
3865         * trans-array.c (gfc_conv_array_parameter): Simplify
3866         array argument passing for array name actual argument.
3867         * trans-expr.c (gfc_conv_function_call): Ditto
3868         * trans-types.c (gfc_is_nodesc_array):Ditto.
3869
3870 2003-11-30  Paul Brook  <paul@nowt.org>
3871
3872         * f95-lang.c (gfc_post_options): Move ...
3873         * options.c (gfc_post_options): .. to here.  Handle inlining options.
3874         * gfortran.h (gfc_post_options): Add prototype.
3875
3876 2003-11-28  Richard Henderson  <rth@redhat.com>
3877
3878         * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
3879
3880 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
3881
3882         * trans.h (has_alternate_specifier): New global variable.
3883         * match.c (gfc_match_call): Handle actual arguments associated with
3884         alternate return indicators.
3885         * trans-expr.c (gfc_conv_function_call): Ditto
3886         * trans-stmt.c (gfc_trans_call): Ditto
3887         (gfc_trans_return): Handle return statement with value.
3888         * trans-decl.c (gfc_generate_function_code): Handle functions with
3889         asterisk dummy.
3890         (gfc_get_fake_result_decl): Ditto
3891         * trans-types.c (gfc_get_function_type): Ditto
3892         * resolve.c (resolve_actual_arglist): Check alternate return indicators.
3893         (resolve_formal_arglist): Check asterisk dummy.
3894
3895 2003-11-27  Paul Brook  <paul@nowt.org>
3896
3897         * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
3898         allocation interface.
3899         (gfc_conv_ array_parameter): Ditto.
3900         (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
3901         * trans-array.c: Update prototype.
3902         * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
3903         (gfc_trans_auto_character_variable): Use new memory alloc interface.
3904         * trans-expr.c (gfc_conv_string_tmp): Ditto.
3905         (gfc_conv_function_call): Use gfc_conv_string_tmp.
3906         * trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
3907         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
3908         * trans.h (gfc_ss_info): Remove unused pdata field.
3909         * trans.c (gfc_create_var_np): Change T to V.
3910
3911 2003-11-26  Richard Henderson  <rth@redhat.com>
3912
3913         * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
3914         * trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
3915         FRACTION, NEAREST, SET_EXPONENT.
3916         (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
3917         Fix GTY marking.  Remove unnecessary const's.
3918         (LIBM_FUNCTION): Rename from I_LIB.
3919         (LIBF_FUNCTION): New.
3920         (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
3921         conventions.  Assume the expr signature is correct.  Mark const.
3922         (gfc_conv_intrinsic_exponent): Use library functions.
3923         (gfc_conv_intrinsic_set_exponent): Remove.
3924         (gfc_conv_intrinsic_scale): Remove.
3925         (gfc_conv_intrinsic_nearest): Remove.
3926         (gfc_conv_intrinsic_fraction): Remove.
3927         (gfc_conv_intrinsic_function): Update.
3928         * trans-decl.c (gfor_fndecl_math_exponent4): New.
3929         (gfor_fndecl_math_exponent8): New.
3930         (gfc_build_intrinsic_function_decls): Set them.
3931         * trans.h: Declare them.
3932
3933 2003-11-25  Canqun Yang  <canqun@nudt.edu.cn>
3934
3935         * trans-common.c (gfc_layout_global_equiv): Locate the error for
3936         underflow COMMON block.
3937         (gfc_trans_one_common): Fix bug for size of COMMON block containing
3938         EQUIVALENCE object. Also fix typo in an error message.
3939
3940 2003-11-25  Diego Novillo  <dnovillo@redhat.com>
3941
3942         * Make-lang.in: Add check-gfortran to lang_checks.
3943         (check-f95): Alias for check-gfortran.
3944
3945 2003-11-25  Jason Merrill  <jason@redhat.com>
3946
3947         * Make-lang.in (f95.tags): Create TAGS.sub files in each
3948         directory and TAGS files that include them for each front end.
3949
3950 2003-11-24  Paul Brook  <paul@nowt.org>
3951
3952         PR fortran/13154
3953         * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
3954
3955 2003-11-24  Paul Brook  <paul@nowt.org>
3956
3957         * expr.c (simplify_const_ref): Return SUCCESS for things we don't
3958         handle.
3959         * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
3960
3961 2003-11-24  Paul Brook  <paul@nowt.org>
3962
3963         PR fortran/13105
3964         * array.c (gfc_array_ref_shape): Handle elemental dimensions.
3965         * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
3966
3967 2003-11-20  Richard Henderson  <rth@redhat.com>
3968
3969         * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
3970         (gfc_conv_array_base): Likewise.
3971         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
3972         * trans-expr.c (gfc_conv_string_tmp): Likewise.
3973         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
3974         * trans-stmt.c (gfc_trans_character_select): Likewise.
3975
3976 2003-11-13  Paul Brook  <paul@nowt.org>
3977
3978         * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
3979
3980 2003-11-13  Canqun Yang  <canqun@nudt.edu.cn>
3981
3982         * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
3983         (resolve_equivalence): New function.
3984         (resolve_equivalence_derived): New function.
3985
3986 2003-11-12  Richard Henderson  <rth@redhat.com>
3987
3988         * trans.c (gfc_trans_code): Use annotate_with_locus instead of
3989         annotate_all_with_locus.
3990
3991 2003-11-11  Canqun Yang  <canqun@nudt.edu.cn>
3992
3993         * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
3994         * trans-decl.c (gfc_finish_var_decl): Modified.
3995
3996 2003-11-08  Paul Brook  <paul@nowt.org>
3997
3998         PR fortran/12704
3999         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
4000         arrays.
4001
4002 2003-11-06  Paul Brook  <paul@nowt.org>
4003
4004         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
4005
4006 2003-11-02  Canqun Yang  <canqun@nudt.edu.cn>
4007
4008         * match.c (gfc_match_stopcode): Assign '0' to stop_code.
4009
4010 2003-10-27  Anthony Green  <green@redhat.com>
4011
4012         * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
4013         (f95.stagefeedback): Ditto.
4014
4015 2003-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
4016
4017         PR fortran/12682
4018         * Make-lang.in (f95.stageprofile): Add.
4019         (f95.stagefeedback): Add.
4020
4021 2003-10-23  Richard Henderson  <rth@redhat.com>
4022
4023         * f96-lang.c (gfc_gimplify_expr): Remove.
4024         (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
4025         (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
4026
4027 2003-10-23  Richard Henderson  <rth@redhat.com>
4028
4029         * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
4030
4031 2003-10-20  Paul Brook  <paul@nowt.org>
4032
4033         * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
4034         * trans-stmt.c (gfc_trans_do_while): Ditto.
4035
4036 2003-10-17  Paul Brook  <paul@nowt.org>
4037
4038         * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
4039
4040 2003-10-17  Paul Brook  <paul@nowt.org>
4041
4042         * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
4043
4044 2003-10-17  Feng Wang  <wf_cs@yahoo.com>
4045
4046         * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
4047         (gfc_resolve_minloc): Ditto.
4048         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
4049         Return the value after subtracting the lower bound.
4050
4051 2003-10-16  Richard Henderson  <rth@redhat.com>
4052
4053         * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
4054
4055 2003-10-16  Steven Bosscher  <steven@gcc.gnu.org>
4056
4057         * lang.c: Remove -M option for now, it's in the way for C.
4058
4059 2003-10-14  Jason Merrill  <jason@redhat.com>
4060
4061         * Make-lang.in (f95.tags): New rule.
4062
4063 2003-10-13  Richard Henderson  <rth@redhat.com>
4064
4065         * trans.c (gfc_trans_code): Use annotate_all_with_locus.
4066
4067 2003-10-13  Paul Brook  <paul@nowt.org>
4068
4069         * trans-decl.c (generate_local_decl): Don't create junk variables.
4070
4071 2003-10-13  Paul Brook  <paul@nowt.org>
4072
4073         * resolve.c (resolve_formal_arglist): Use function result decl in
4074         preference to function decl.
4075
4076 2003-10-12  Richard Henderson  <rth@redhat.com>
4077
4078         * f95-lang.c (gfc_define_builtin): New const_p argument.  Set
4079         TREE_READONLY.  Update all callers.
4080
4081 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
4082
4083         * iresolve.c (gfc_resolve_cshift): Change to match implementation.
4084         * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
4085         (gfc_is_intrinsic_libcall): Add CSHIFT.
4086
4087 2003-10-12  Richard Henderson  <rth@redhat.com>
4088
4089         * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
4090         (gfc_trans_array_constructor_value): Likewise.
4091         (gfc_conv_array_initializer): Likewise.
4092         * trans-stmt.c (gfc_trans_character_select): Likewise.
4093
4094 2003-11-12  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4095
4096         * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
4097
4098 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
4099
4100         * check.c (gfc_check_repeat): Check arguments are scalar.
4101         (gfc_check_trim): New function.
4102         * intrinsic.h (gfc_check_trim): Add prototype.
4103         * intrinsic.c (add_functions): Use it.
4104         * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
4105         Decalare.
4106         * trans-decl.c: Ditto.
4107         (gfc_build_intrinsic_fucntion_decls): Set them.
4108         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
4109         (gfc_conv_intrinsic_trim): New function.
4110         (gfc_conv_intrinsic_repeat): New function.
4111         (gfc_conv_intrinsic_function): Use them.
4112
4113 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
4114
4115         * trans-types.c (gfc_sym_type): Handle result variables.
4116
4117 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
4118
4119         * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
4120         gfc_get_character_type.
4121
4122 2003-10-11  Feng Wang  <wf_cs@yahoo.com>
4123
4124         * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
4125
4126 2003-10-11  Paul Brook  <paul@nowt.org>
4127
4128         * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
4129         (gfc_resolve_dprod): New function.
4130         (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
4131         * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
4132         (gfc_resolve_dprod): Declare.
4133         * intrinsic.c (add_functions): Use them.
4134         * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
4135
4136 2003-10-06  Richard Henderson  <rth@redhat.com>
4137
4138         * f95-lang.c (gfc_init_builtin_functions): Add clzll.
4139         * trans-intrinsic.c (call_builtin_clz): Use it.
4140
4141 2003-10-05  Paul Brook  <paul@nowt.org>
4142
4143         * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
4144         * trans-decl.c (gfc_generate_function_code): Set
4145         cfun->function_end_locus.
4146
4147 2003-09-24  Jason Merrill  <jason@redhat.com>
4148
4149         * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
4150         TREE_LOCUS.
4151
4152 2003-09-21  Lifang Zeng  <zlf605@hotmail.com>
4153         Paul Brook  <paul@nowt.org>
4154
4155         * Make-lang.in (F95_OBJS): Add fortran/data.o.
4156         * array.c (gfc_inser_constructor): New function.
4157         (gfc_get_constructor): New function.
4158         (gfc_free_constructor): Initialize offset and repeat.
4159         (iterator_stack): Remove.
4160         (expand_info): Add offset, component and repeat fields.
4161         (expand_constructor): Set them.
4162         (expand): Set new fields.
4163         (gfc_copy_constructor): Ditto. Avoid recursion.
4164         * gfortran.h: Add prototypes for new functions.
4165         (gfc_constructor): Add offset, component and repeat.
4166         (iteratio_stack): Move to here.
4167         * resolve.c (check_data_variable): Convert data values into variable
4168         initializers.
4169         (traverse_data_list): Build implicit loop chain.
4170         (gfc_resolve): Ditto.
4171         * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
4172         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
4173         * trans-expr.c (gfc_conv_structure): Handle array initializers.
4174         (gfc_conv_expr): Update to match.
4175         * trans.h (gfc_conv_structure): Declare.
4176         * data.c: New file.
4177
4178 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4179
4180         * trans.h: Add declarations for gfor_fndecl_si_kind and
4181         gfor_fndecl_sr_kind.
4182         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
4183         * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
4184         (g95_conv_intrinsic_sr_kind): New function.
4185         (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
4186         SELECTED_REAL_KIND.
4187
4188 2003-09-17  Lars Segerlund  <Lars.Segerlund@comsys.se>
4189
4190         * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
4191         instead of _4 and _8 as postfix for libgfortran calls.
4192
4193 2003-09-16  Paul Brook  <paul@nowt.org>
4194
4195         * array.c (compare_bounds): New function.
4196         (gfc_compare_array_spec): Use it.
4197
4198 2003-09-14  Paul Brook  <paul@nowt.org>
4199
4200         * primary.c (gfc_match_rvalue): Make sure sym->result is set.
4201         * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
4202
4203 2003-09-14  Paul Brook  <paul@nowt.org>
4204
4205         * check.c (dim_rank_check): Allow assumed bounds if requested.
4206         (gfc_check_lbound): Call it.
4207         (gfc_check_ubound): Ditto.
4208         (gfc_check_size): Change to match.
4209         * simplify.c (gfc_simplify_bound): New function.
4210         (gfc_simplify_lbound): New function.
4211         (gfc_simplify_ubound): New function.
4212         * intrinsic.h: Declare them.
4213         * intrinsic.c (add_functions): Use them.
4214
4215 2003-09-14  Paul Brook  <paul@nowt.org>
4216
4217         * io.c (format_lex): Initialize negative_flag.
4218         (check_format): Intialize repeat.
4219         * trans-io.c (gfc_new_nml_name_expr): Declare static.
4220         (gfc_new_var_expr): Ditto.
4221
4222 2003-09-14  Paul Brook  <paul@nowt.org>
4223
4224         * trans-array.c (gfc_conv_array_initializer): Handle derived types.
4225         * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
4226
4227 2003-09-12  Paul Brook  <paul@nowt.org>
4228
4229         * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
4230
4231 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4232
4233         * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
4234         for a correct expression.
4235
4236 2003-09-10  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4237
4238         * trans-intrinsic.c (real_compnt_info): New struct.
4239         (prepare_arg_info): New function.
4240         (gfc_conv_intrinsic_set_exponent): New function.
4241         (gfc_conv_intrinsic_scale): New function.
4242         (gfc_conv_intrinsic_nearest): New function.
4243         (gfc_conv_intrinsic_fraction): New function.
4244         (gfc_conv_intrinsic_exponent): New function.
4245         (gfc_conv_intrinsic_spacing): New function.
4246         (gfc_conv_intrinsic_rrspacing): New function.
4247         (gfc_conv_intrinsic_function): Use them.
4248
4249 2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>
4250
4251         * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
4252         build_int_2 changed from (high, low) to (low, high).
4253         * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
4254         ioparm_namelist_read_mode, iocall_set_nml_val_int,
4255         iocall_set_nml_val_float, iocall_set_nml_val_char,
4256         iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
4257         (gfc_build_io_library_fndecls): Add variable initialization.
4258         (gfc_new_nml_name_expr, get_new_var_expr): New function.
4259         (build_dt): Add namelist support.
4260         * io.c (value): New variable.
4261         (check_format): Support FMT_H now.
4262
4263 2003-09-07  Paul Brook  <paul@nowt.org>
4264
4265         * io.c (gfc_resolve_dt): Error if format label is not defined.
4266
4267 2003-09-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4268
4269         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
4270         about case_switch's break. The other is about building the condition
4271         statement tree, which judges the argument in the range of the
4272         corresponding integer type.
4273         * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
4274         for the large values.
4275
4276 2003-09-05  Paul Brook  <paul@nowt.org>
4277
4278         * f95-lang.c (expand_function_body): Gimplify the function.
4279
4280 2003-09-04  Jeff Law  <law@redhat.com>
4281
4282         * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
4283         index zero!
4284
4285 2003-09-04  Paul Brook  <paul@nowt.org>
4286
4287         * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
4288         (gfc_expand_stmt): New function.
4289         (LANG_HOOKS_RTL_EXPAND_STMT): Define.
4290         (expand_function_body): Use tree_rest_of_compilation.
4291         * trans-decl.c (gfc_generate_function_code): Don't free cfun.
4292
4293 2003-09-03  Jeff Law  <law@redhat.com>
4294
4295         * f95-lang.c (gfc_init_builtin_functions): C arrays start at
4296         index zero!
4297
4298 2003-08-30  Paul Brook  <paul@nowt.org>
4299
4300         * f95-lang.c (builtin_function): Remove #if 0 code.
4301         (gfc_define_builtin): New function.
4302         (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
4303         * mathbuiltins.def: New file.
4304         * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
4305         (gfc_intrinsic_map): Use mathbuiltins.def.
4306         (gfc_intrinsic_builtin_t): Remove.
4307         (gfc_build_intrinsic_lib_fndecls): Update.
4308         * trans-types.c (gfc_init_types): Remove redundant initilaization of
4309         signed_size_type_node.
4310
4311 2003-08-29  Paul Brook  <paul@nowt.org>
4312
4313         * arith.c (gfc_real_kinds): Use correct minimum exponents.
4314
4315 2003-08-22  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4316
4317         * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
4318         (gfc_conv_intrinsic_function): Add MODULO.
4319
4320 2003-08-22  Jason Merrill  <jason@redhat.com>
4321
4322         * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
4323
4324 2003-08-22  Andreas Jaeger  <aj@suse.de>
4325
4326         * Make-lang.in (f95.install-common): Add DESTDIR support.
4327         * (f95.install-info): Likewise.
4328         (f95.uninstall): Likewise.
4329
4330 2003-08-19  Diego Novillo  <dnovillo@redhat.com>
4331
4332         * trans-types.c (gfc_init_types): Initialize
4333         signed_size_type_node with size_type_node.
4334
4335 2003-08-18  Paul Brook  <paul@nowt.org>
4336
4337         * dependency.c (gfc_dependency): New enum.
4338         (check_another_array_ref): Remove.
4339         (gfc_get_array_from_component): Remove.
4340         (get_x): Remove.
4341         (get_range): Remove.
4342         (get_no_of_elements): Use mpz_t, not mpf_t.
4343         (transform_sections): New function.
4344         (gfc_check_range_range): Rename ...
4345         (gfc_check_section_vs_section): ... to this.  Use new function.
4346         (gfc_is_inside_range): Rewrite to match.
4347         (gfc_check_element_vs_section): Ditto.
4348         (gfc_check_element_vs_element): Ditto.
4349         (get_deps): Ditto.
4350         (gfc_dep_resolver): Ditto.  Remove unused parameter.
4351         * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
4352         gfc_check_element_vs_element, gfc_is_inside_range,
4353         gfc_get_array_from_component): Remove prototypes for static functions.
4354         (gfc_dep_resolver): Update prototype.
4355         * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
4356
4357 2003-08-15  Paul Brook  <paul@nowt.org>
4358
4359         * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
4360         return values to parent scope.
4361         (gfc_build_dummy_array_decl): Ditto.
4362
4363 2003-08-14  Paul Brook  <paul@nowt.org>
4364
4365         * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
4366         size of the type, not the pointer.
4367         * resolve.c (resolve_symbol): Give more accurate error message.
4368
4369 2003-08-10  Paul Brook  <paul@nowt.org>
4370
4371         * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
4372
4373 2003-08-10  Paul Brook  <paul@nowt.org>
4374
4375         * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
4376         type components.
4377
4378 2003-08-10  Chun Huang  <compiler@sohu.com>
4379
4380         * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
4381         (resolve_symbol): Ditto.
4382         * trans-expr.c (gfc_conv_statement_function): New function.
4383         (gfc_conv_function_expr): Use it.
4384
4385 2003-08-10  Paul Brook  <paul@nowt.org>
4386
4387         * trans-array.c (gfc_conv_ss_startstride): Handle functions.
4388         (walk_function_expr): Set section rank.
4389         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
4390
4391 2003-08-10  Paul Brook  <paul@nowt.org>
4392
4393         * intrinsic.c (add_sym): Prefix names with correct string.
4394         (add_sym_0s): New function.
4395         (add_subroutines): Register abort.
4396
4397 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
4398
4399         * gfortran.h: Introduce options to control the mangling.
4400         * lang.opt: Likewise.
4401         * options.c (gfc_init_options): Handle the options.
4402         * trans-common.c (gfc_sym_mangled_common_id): New function.
4403         (gfc_build_common_decl): Call it.
4404         * trans-decl.c (gfc_sym_mangled_function_id): New function.
4405         (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
4406
4407 2003-08-09  Paul Brook  <paul@nowt.org>
4408
4409         * module.c (mio_symbol): Always ouput a namespace for formal args.
4410         (load_needed): Namespace now belong to their proper symbol.
4411         (gfc_dump_module): Change G95=>GFORTRAN.
4412
4413 2003-08-05  Paul Brook  <paul@nowt.org>
4414
4415         * options.c: Force -fg77-calls.
4416
4417 2003-08-02  Paul Brook  <paul@nowt.org>
4418
4419         * Makelang.in: Rename G95_* to GFORTRAN_*.
4420         * All sources: Rename G95_* to GFC_*.
4421
4422 2003-08-01  Paul Brook  <paul@nowt.org>
4423
4424         * fortran/Make-lang.in: Use GMPLIBS.
4425         * fortran/config-lang.in: Set need_gmp.
4426         * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
4427
4428 2003-07-27  Andreas Jaeger  <aj@suse.de>
4429
4430         * trans-decl.c (gfc_generate_constructors): Convert prototype to
4431         ISO C90.
4432         * trans-const.c (gfc_init_constants): Likewise.
4433         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
4434
4435         * gfortranspec.c: Convert to ISO C90.
4436         (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
4437
4438 2003-07-26  Paul Brook  <paul@nowt.org>
4439
4440         * lang.opt: Add -fdump-parse-tree.
4441         * options.c (gfc_handle_option): Ditto.
4442         * resolve.c (resolve_forall_iterators): Convert to proper type.
4443         * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
4444
4445 2003-07-26  Paul Brook  <paul@nowt.org>
4446
4447         * Makefile.in: Add build dependencies on files common with rest of gcc.
4448
4449 2003-07-26  Lifang Zeng  <zlf605@hotmail.com>
4450
4451         * trans.h: Declare g95_trans_pointer_assignment.
4452         * trans-expr.c (g95_trans_pointer_assignment): New function.
4453         (g95_trans_pointer_assign): Use it.
4454         * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
4455         (g95_trans_pointer_assign_need_temp): New function.
4456
4457 2003-07-26  Paul Brook  <paul@nowt.org>
4458
4459         * gfortran.texi: Replace references to g95.
4460
4461 2003-07-26  Paul Brook  <paul@nowt.org>
4462
4463         Rename g95_* to gfc_*.
4464
4465 2003-07-25  Paul Brook  <paul@nowt.org>
4466
4467         * gfortran.h: Rename from g95.h.
4468         * trans-types.c (boolean_type_node, booelan_true_node,
4469         boolean_false_node): Remove.
4470         * trans-types.h: Ditto.
4471
4472 2003-07-25  Chun Huang  <compiler@sohu.com>
4473
4474         * parse.c (accept_statement): Implement BLOCK DATA statement.
4475         * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
4476         variables.
4477
4478 2003-07-24  Lifang Zeng  <zlf605@hotmail.com>
4479
4480         * trans-stmt.c (temporary_list): Define.
4481         (g95_trans_assign_need_temp): New function.
4482         (g95_trans_forall_1): Modified for WHERE.
4483         (g95_trans_where_assign): Modified.
4484         (g95_trans_where_2): Modified.
4485         (g95_evaluate_where_mask): Modified.
4486         (g95_trans_where): Modified.
4487         (g95_get_temp_expr): Removed.
4488         (g95_add_to_where_stmt_list): Removed.
4489         (compute_overall_iter_number): Modified for WHERE.
4490         * trans.h: Remove where_stmt_list.
4491
4492 2003-07-24  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4493
4494         * lang.opt: Correct description of options -J and -M.
4495
4496 2003-07-23  Steven Bosscher   <steven@gcc.gnu.org>
4497
4498         * lang.opt: Move help text to here.
4499         * lang-options.h: Remove.
4500
4501 2003-07-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4502         * iresolve.c (g95_resolve_transpose): Proper variable in switch.
4503         * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
4504         on kind.
4505
4506 2003-07-22  Steven Bosscher  <steven@gcc.gnu.org>
4507         Paul Brook  <paul@nowt.org>
4508
4509         * check.c (check_rest): Use global pedantic flag.
4510         * io.c (data_desc): Ditto.
4511         * error.c (g95_warning, g95_warning_now): Use global flag.
4512         * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
4513         (expand_function_body): Update to new prototypes.
4514         (g95_init): Use new option names.
4515         * g95.h (g95_option_t): Standardize names.
4516         (g95_init_options, g95_handle_option): Update prototypes.
4517         * interface.c: Use new option names.
4518         * match.c: Ditto.
4519         * module.c: Ditto.
4520         * parse.c: Ditto.
4521         * primary.c: Ditto.
4522         * resolve.c: Ditto.
4523         * scanner.c: Ditto.
4524         * simplify.c: Ditto.
4525         * symbol.c: Ditto.
4526         * trans-array.c: Ditto.
4527         * trans-expr.c: Ditto.
4528         * trans-types.c: Ditto.
4529         * trans-decl.c: Ditto.
4530         (g95_build_library_function_decl): Remove obsolete VPARAMS.
4531         * trans.h: Ditto.
4532         * options.c (g95_display_help): Remove.
4533         (g95_init_options): Convert to new scheme.
4534         (set_Wall): Ditto
4535         (g95module_option): Ditto, rename from g95_parse_arg.
4536         (g95_handle_module_path_options): New function.
4537         * trans-equivalence.c: Fix error message.
4538         * lang.opt: Corrections.
4539
4540 2003-07-21  Steven Bosscher  <steven@gcc.gnu.org>
4541
4542         * lang.opt: New file.
4543
4544 2003-07-21  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4545
4546         * decl.c (match_attr_spec): Set colon_seen.
4547
4548 2003-07-14  Paul Brook  <paul@nowt.org>
4549
4550         * trans-array.c: Update comment.
4551         (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
4552         * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
4553         minmaxloc,minmaxval): Ditto.
4554         * trans-io.c (g95_trans_transfer): Ditto.
4555         * trans-stmt.c: Remove unneeded prototypes.
4556         (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
4557         (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
4558         (compute_inner_temp_size): Remove bits of dead code. Add comments.
4559         Don't share loopinfo.
4560         (compute_overall_iter_number): Declare as static.
4561         (allocate_temp_for_forall_nest): Ditto.
4562         (g95_trans_forall_1): Don't pass shared loopinfo.
4563         * trans.c (g95_start_block): Expand comment.
4564
4565 2003-07-12  Paul Brook  <paul@nowt.org>
4566
4567         * arith.c (g95_index_integer_kind): Remove unused initializer.
4568         * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
4569         index by size of element.
4570         (generate_loop_for_rhs_to_temp): Ditto.
4571         (allocate_temp_for_forall_nest): Use element size, not index size.
4572
4573 2003-07-11  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4574
4575         * arith.c (g95_index_integer_kind): Add a TODO.
4576         * simplify.c (g95_simplify_nearest): Add a TODO.
4577
4578 2003-07-09  Chun Huang  <compiler@sohu.com>
4579
4580         * trans.h: Add declarations for gfor_fndecl_string_scan and
4581         gfor_fndecl_string_verify.
4582         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
4583         * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
4584         (g95_conv_intrinsic_verify): New function.
4585         (g95_conv_intrinsic_function): Add SCAN and VERIFY.
4586         * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
4587         of parameter 'BACK=.TRUE.'
4588
4589 2003-07-05  Lifang Zeng  <zlf605@hotmail.com>
4590
4591         * trans-stmt.c (iter_info, forall_info): Define.
4592         (g95_trans_forall_block): Remove.
4593         (g95_trans_forall_loop): Use forall info blocks.
4594         (g95_trans_nested_forall_loop): New function.
4595         (g95_do_allocate): Handle things other than logical masks.
4596         (generate_loop_for_temp_to_lhs): New function.
4597         (generate_loop_for_rsh_to_temp): New function.
4598         (compute_inner_temp_size): New function.
4599         (compute_overall_iter_number): New function.
4600         (allocate_temp_for_forall_nest): New function.
4601         (g95_trans_forall): Move body ...
4602         (g95_trans_forall_1): ... to here.  Handle loops with temporaries.
4603
4604 2003-07-02  Paul Brook  <paul@nowt.org>
4605
4606         * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
4607         in correct scope.  Change callers to match.
4608         * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
4609         * iresolve.c (g95_resolve_reshape): Only use constant shapes.
4610
4611 2003-07-02  Paul Brook  <paul@nowt.org>
4612
4613         * trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
4614         expression shape for all expressions.
4615         * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
4616
4617 2003-07-03  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4618
4619         * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
4620         g95_parse_arg), intrinsic.c (g95_convert_type): support of
4621         -Wconversion.
4622         * intrinsic.c, g95.h: Add g95_convert_type_warn,
4623         * resolve.c (g95_resolve_index): Call it.
4624
4625 2003-07-02  Paul Brook  <paul@nowt.org>
4626
4627         * iresolve.c (g95_resolve_reshape): Set expression shape.
4628         (g95_resolve_shape): Ditto.
4629         * simplify.c (g95_simplify_shape): Move common code outside condition.
4630         * trans-array.c (g95_conv_array_initializer): Teach it how to count.
4631
4632 2003-07-01  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4633
4634         * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
4635         conformance checks.
4636
4637 2003-06-29  Paul Brook  <paul@nowt.org>
4638
4639         * array.c (g95_simplify_iterator_var): Don't bother with return value.
4640         * expr.c (find_array_element, find_component_ref): New functions.
4641         (remove_subobject_ref): New function.
4642         (simplify_const_ref): Use them.  Rename from simplify_component_ref.
4643         (simplify_ref_chain): New function.
4644         (g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
4645         (g95_specification_expr): Simplify the expression.
4646         * resolve.c (resolve_operator): Check simplifications return code.
4647         (g95_resolve_expr): Ditto.
4648
4649 2003-06-26  Paul Brook  <paul@nowt.org>
4650
4651         * expr.c (simplify_component_ref): New function.
4652         (g95_simplify_expr): Use it.
4653         * resolve.c (resolve_structure_cons): Handle references.
4654
4655 2003-06-25  Paul Brook  <paul@nowt.org>
4656
4657         * trans-io.c (build_dt): Handle internal units.
4658
4659 2003-06-25  Canqun Yang  <canqun@yahoo.com.cn>
4660
4661         * trans-common.c (g95_build_common_decl): Array index range starts at 0.
4662         (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
4663         Use g95_array_index_type instead of integer_type_node.
4664         (g95_build_common_decl, g95_set_common_master_type): Use
4665         g95_character1_type_node instead of char_type_node.
4666         * trans-equivalence.c (g95_layout_local_equiv): As above.
4667
4668 2003-06-24  Steven G. Kargl  <kargls@attbi.com>
4669
4670         * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
4671         remove last remains of -fquiet.
4672
4673 2003-06-22  Paul Brook  <paul@nowt.org>
4674
4675         * resolve.c (resolve_operator): Don't fail if we can't simplify.
4676         (g95_resolve_expr): Ditto.
4677         (resolce_code): Mark as static.
4678         * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
4679         gimplifer doesn't (yet).
4680
4681 2003-06-20  Paul Brook  <paul@nowt.org>
4682
4683         * g95.h: Add ST_PAUSE and EXEC_PAUSE.
4684         * match.c (g95_match_if): Add ST_PAUSE.
4685         (g95_match_stopcode): New function.
4686         (g95_match_pause, g95_match_stop): Use it.
4687         * parse.c (g95_ascii_statement): Handle ST_PAUSE.
4688         (decode_stmt, next_statement, parse_executable): Ditto.
4689         * resolve.c (resolve_code): Ditto.
4690         * st.c (g95_free_statement): Ditto.
4691         * trans-stmt.c (g95_trans_pause): New function.
4692         * trans-stmt.h: Declare it.
4693         * trans.c (g95_trans_code): Use it.
4694         * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
4695         Declare.
4696         (g95_build_builtin_function_decls): Initialize them.
4697         * trans.h: Ditto.
4698         * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
4699
4700 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4701
4702         * io.c (g95_match_open , g95_match_close, g95_match_inquire,
4703         match_filepos): Fix error handling.
4704
4705 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4706
4707         * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
4708         Add assertions on arguments.
4709         * resolve.c (expression_shape): Remove useless &.
4710         * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
4711         g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
4712         g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
4713         g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
4714         g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
4715         g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
4716         (g95_simplify_not, g95_simplify_scale): Add assertions.
4717
4718 2003-06-15  Paul Brook  <paul@nowt.org>
4719
4720         Clean up stuff to work with the ssa optimizers.
4721         * convert.c (convert): Handle BOOLEAN_TYPEs.
4722         * f95-lang.c (g95_truthvalue_conversion): Implement.
4723         * trans-array.c (g95_trans_array_constructor_value): Group multiple
4724         scalar values.
4725         * trans.h (g95_truthvalue_conversion): Declare.
4726         * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
4727         * trans-stmt.c (g95_trans_character_select): Don't create array
4728         assignments.  Mark labels as indirect jump targets.
4729         * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
4730         (g95_get_dtype_cst): Handle LOGICAL types.
4731
4732 2003-06-14  Paul Brook  <paul@nowt.org>
4733
4734         * f95-lang.c (g95_gimplify_expr): New function.
4735         * trans-array.c (g95_trans_array_constructor_value): Don't create
4736         array assignments.
4737         (g95_conv_expr_descriptor): Rename simple->gimple.
4738         * trans-expr.c (conv_expr_op): Use proper logical operators.
4739         * trans-intrinsic.c (build_fixbound_expr): New function.
4740         (build_fix_expr): Ditto.
4741         (g95_conv_intinsic_aint): Use them. Use builtin functions.
4742         (g95_conv_intrinsic_function): Add FLOOR and CEILING.
4743
4744 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4745
4746         * array.c (g95_compare_array_spec): Remove unreachable code.
4747         * expr.c (g95_copy_expr): Likewise.
4748         * intrinsic.c (g95_convert_type): Likewise.
4749         * misc.c (g95_code2string): Likewise.
4750         * simplify.c (g95_simplify_ishft, g95_simplify_real,
4751         g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
4752         * trans-stmt.c (g95_trans_select): Likewise.
4753         * primary.c (extend_ref): Add an assertion.
4754         * simplify.c (g95_convert_constant): Add const.
4755         * intrinsic.h: Remove g95_check_x_ni.
4756         * f95-lang.c (g95_finish): Call g95_release_include_path.
4757
4758 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4759
4760         * resolve.c (resolve_contained_functions): Fix typo introduced on
4761         2003-01-13.
4762
4763 2003-06-09  Paul Brook  <paul@nowt.org>
4764
4765         * g95.h: Include system.h not hwint.h.
4766         * many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
4767         * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
4768
4769 2003-06-09  Paul Brook  <paul@nowt.org>
4770
4771         * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
4772         * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
4773         * trans-decl.c (g95_add_decl_to_functions): Make non-static.
4774         (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
4775         (g95_generate_function_code): Translate COMMON and EQUIVALENCE
4776         objects.
4777         * trans.h (g95_trans_equivalence, g95_trans_common,
4778         g95_add_decl_to_function): Declare.
4779         * trans-common.c, trans-equivalence.c: New files.
4780
4781 2003-06-08  Steven Bosscher  <steven@gcc.gnu.org>
4782
4783         * intrinsic.c (g95_intrinsic_extension): Remove.
4784         (add_functions): Substitute g95_check_x for g95_check_x_ni
4785         everywhere.
4786         (g95_init_expr_extensions): New function.
4787         (g95_intrinsic_func_interface): Use it.
4788         * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
4789         * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
4790         g95_check_precision, g95_check_present, g95_check_radix,
4791         g95_check_range, g95_check_selected_real_kind): Do not set
4792         g95_intrinsic_extension.
4793         (g95_check_x_ni): Remove now duplicate of g95_check_x.
4794
4795         * expr.c (check_inquiry): Add FIXME, fixup some code style.
4796
4797 2003-06-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4798
4799         * g95.h (ref_type): Name this type explicitly.
4800         * module.c (MIO_NAME): Add specialisations of mio_name.
4801         (mio_symbol_attribute, mio_typespec, mio_array_ref,
4802         mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
4803         (ab_attribute): Name this type explicitly.
4804         (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
4805
4806 2003-06-05  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4807
4808         * trans-intrinsic.c (g95_conv_allocated): New function.
4809         (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
4810
4811 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
4812
4813         * f95-lang.c: Don't include g95-support.h
4814         (g95_mark_addressable): Add prototype.
4815         (g95_init_decl_processing): Remove C front end hack.
4816         * f95-tree.c: Remove file.
4817         * support.c: Remove file.
4818         * g95-support.h: Remove file.
4819         * trans-types.c (g95_init_types): Set up boolean
4820         type related tree nodes.
4821         * Make-lang.in: Remove rules for dead files and
4822         dependencies on them.
4823
4824 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
4825
4826         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
4827         C front end dependency.  Also, convert.c does not depend on
4828         g95-support.h anymore.
4829         * convert.c: Don't include c-common.h and g95-support.h
4830         * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
4831         (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
4832         stmts_are_full_exprs_p, current_stmt_tree,
4833         current_scope_stmt_stack): Remove.
4834         * g95-support.h (unsigned_conversion_warning): Kill proto.
4835         (boolean_type_node, boolean_true_node, boolean_false_node):
4836         Don't define here.  Instead, make then true tree nodes in
4837         trans-types.
4838         * support.c (c_global_trees): Die, C front end, die!!!
4839         (g95_init_c_decl_hacks): Don't touch intmax_type_node,
4840         uintmax_type_node, string_type_node and const_string_type_node.
4841         (decl_constant_value, overflow_warning): Make static functions.
4842         They are in death row too, though.
4843         (default_conversion, c_expand_asm_operands): Remove.
4844         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
4845         trans.c: Don't include c-common.h.
4846         * trans-types.c (boolean_type_node, boolean_true_node,
4847         boolean_false_node): Make them real tree nodes.
4848         * trans-types.h (intmax_type_node, string_type_node,
4849         const_string_type_node): Hack to work around C dependencies
4850         in builtin-types.def.
4851
4852 2003-06-04  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4853
4854         * decl.c (decl_types): Add some iterators-like sentinels.
4855         * decl.c (match_attr_spec): Use them.
4856         Use "decl_types" instead of "int".
4857         Add cast in call to g95_match_strings.
4858         * dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
4859         instead of "int".
4860         * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
4861         (g95_interface_info): Use "g95_intrinsic_op".
4862         * dump-parse-tree.c (g95_show_namespace): Use them.
4863         * interface.c (g95_check_interfaces): Use them.
4864         * module.c (read_module, write_module): Use them.
4865         * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
4866         Use "g95_intrinsic_op".
4867         * interface.c (check_operator_interface): Use "g95_intrinsic_op".
4868         Add a default case in switch statement.
4869         * intrinsic.h (g95_generic_isym_id): Moved to...
4870         * g95.h (g95_generic_isym_id): here.
4871         (g95_intrinsic_sym): Use "g95_generic_isym_id".
4872         * intrinsic.c (make_generic): Use "g95_generice_isym_id".
4873         * trans-intrinsic.c (g95_intrinsic_map_t,
4874          g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
4875         * match.c (g95_match_intrinsic_op): Add cast in call to
4876         g95_match_strings.
4877
4878 2003-06-03  Steven Bosscher  <steven@gcc.gnu.org>
4879
4880         * support.c (skip_evaluation, warn_conversion, lvalue_p,
4881         lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
4882         constant_fits_type_p, convert_and_check,
4883         unsigned_conversion_warning): Remove these ugly remnants
4884         we inherited from the C front end.
4885         (function_types_compatible): Remove '#if 0'-edcode.
4886         (build_modify_expr): Likewise.
4887         (convert_for_assignment): Don't use the deceased functions.
4888         The parameter fundecl is now unused.
4889         (decl_constant_value): Always just return decl.  In fact
4890         this function is not used at present, but it might be in
4891         the future, when we start using the tree inliner.
4892         (overflow_warning, default_conversion, c_expand_asm_operands):
4893         Abort when these are called, they are part of the C type
4894         checking implementation and therefore poison to Fortran.
4895
4896 2003-06-04  Steven Bosscher  <steven@gcc.gnu.org>
4897
4898         * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
4899         c-pretty-print.o and c-dump.o.  Add a comment on why we
4900         depend on c-semantics.c.
4901         * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
4902         Don't use the C front end tree dumper hook to dump the
4903         language specific tree representation -- we don't have
4904         one.  So instead, inherit the default langhook.
4905
4906 2003-06-02  Paul Brook  <paul@nowt.org>
4907
4908         * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
4909
4910 2003-06-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4911
4912         * check.c (g95_check_associated): Use proper types.  Remove
4913         extraneous argument in call to g95_error().
4914
4915 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4916
4917         * resolve.c (resolve_operator): Make logical operands convert to the
4918         type with higher kind.
4919
4920 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4921
4922         * check.c (g95_check_associated): Make sure both pointer and target has
4923         the same type and rank. Null pointer or array section with vector
4924         subscript as target are not allowed.
4925         * trans.h: Declare gfor_fndecl_associated.
4926         * trans-decl.c: (g95_build_builtin_function_decls): Initialize
4927         gfor_fndecl_associated.
4928         * trans-intrinsic.c (g95_conv_associated): New function.
4929         (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
4930
4931 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
4932
4933         * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
4934         according to POINTER itself rather than TARGET.
4935         (g95_conv_expr_descriptor): Make lbound start at 1.
4936         * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
4937
4938 2003-06-01  Paul Brook  <paul@nowt.org>
4939
4940         * expr.c (g95_type_convert_binary): Make it match the standard.
4941         * g95.texi: Remove dead link.
4942
4943 2003-06-01  Steven Bosscher  <steven@gcc.gnu.org>
4944
4945         * g95.texi: Cleanup somewhat in preparation for inclusion
4946         in GCC CVS.
4947
4948 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4949             Canqun Yang  <canqun@yahoo.com.cn>
4950
4951         * resolve.c (compare_bound_int, resolve_where_shape): Proper return
4952         type.
4953         (g95_find_forall_index): Return proper value.
4954         (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
4955         compare the return value from g95_find_forall_index.
4956
4957 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
4958         * g95.h, io.c (g95_st_label): Remove "length".
4959         (g95_symtree): Remove "link".
4960         (g95_case): Remove "code".
4961         * arith.c, arith.h (g95_compare_string, g95_convert_integer,
4962         g95_convert_real): Make an argument pointer to const.
4963         * decl.c (colon_seen): Add a TODO.
4964         * interface.c (g95_compare_types): Fix typo.
4965         * interface.c (compare_interfaces): Preserve value of "p".
4966         * intrinsic.c (sort_actual): Remove "i".
4967         * match.c (g95_match_assign): Proper type in call to g95_match().
4968         * parse.c (next_free): Avoid duplicate call due to macro.
4969         * parse.c (check_statement_label): wrong type in call to g95_error.
4970         * primary.c (match_real_constant): Add a TODO.
4971         * resolve.c (resolve_select):  Remove useless conditional.
4972         * simplify.c (g95_simplify_repeat): Proper assignment to
4973         "value.character.string".
4974         * simplify.c (g95_simplify_reshape): Wrong variable in call to
4975         g95_error.
4976
4977 2003-05-20  Canqun Yang  <canqun@yahoo.com.cn>
4978
4979         * trans-stmt.c: Remove unnecessary include file defaults.h.
4980
4981 2003-05-19  Lifang Zeng  <zlf605@hotmail.com>
4982
4983         * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
4984         stride.
4985         (g95_trans_forall): Allow arbitrary number of FORALL indexes and
4986         actual variables used as FORALL indexes.
4987
4988 2003-05-15  Paul Brook  <paul@nowt.org>
4989
4990         * trans-array.c (g95_trans_static_array_pointer): Use
4991         null_pointer_node.
4992         (g95_trans_deferred_array): Initialize static array pointers.
4993         * trans-expr.c (g95_conv_function_call): Use formal arglist to
4994         correctly pass POINTER and absent CHARACTER arguments.
4995
4996 2003-05-14  Lifang Zeng  <zlf605@hotmail.com>
4997
4998         * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
4999         (g95_resolve_forall_body): Resolve FORALL body.
5000         (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
5001         (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
5002         (g95_find_forall_index): Check whether the FORALL index appears in
5003         the expression or not.
5004         (resolve_code): Modified.
5005
5006 2003-05-14  Paul Brook  <paul@nowt.org>
5007
5008         * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
5009
5010 2003-05-13  Paul Brook  <paul@nowt.org>
5011
5012         * trans-types.c (g95_max_array_element_size): Now a tree node.
5013         (g95_init_types): Work out max size properly.
5014         (g95_get_dtype_cst): Modify to match.
5015
5016 2003-05-11  Paul Brook  <paul@nowt.org>
5017
5018         * trans-io.c (add_case): Create a label decl for case labels.
5019
5020 2003-05-11  Paul Brook  <paul@nowt.org>
5021
5022         * arith.c (g95_integer_index_kind): New variable.
5023         * f95-lang.c (g95_init): Move frontend initialization here ...
5024         (g95_post_options): ... from here.
5025         * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
5026         * intrinsic.c (add_functions): Use index kinds.
5027         * iresolve.c: Convert to index_kind where needed.
5028         * resolve.c (g95_resolve_index): Make public, use index_kind.
5029         (resolve_array_ref): Adjust to match.
5030         * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
5031         * trans-stmt.c: Ditto.
5032         * trans-types.c: Ditto.
5033         * trans-types.h (g95_array_index_kind): Remove declaration.
5034         * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
5035
5036 2003-05-07  Paul Brook  <paul@nowt.org>
5037
5038         * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
5039         * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
5040         of bound indices.
5041
5042 2003-05-07  Paul Brook  <paul@nowt.org>
5043
5044         * trans-array.c (trans_static_array_pointer,
5045         g95_trans_array_constructor_value, g95_conv_array_initializer,
5046         g95_conv_structure): CONSTRUCTOR nodes only have one operand.
5047         (g95_add_loop_ss_code): Convert subscripts to the correct type.
5048         * trans-stmt.c (g95_trans_character_select): Ditto.
5049         * trans-types.c (g95_init_types): Ditto.
5050
5051 2003-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5052
5053         * f95-lang.c (expand_function_body): Use input_line, not lineno.
5054         * trans-decl.c (g95_generate_function_code,
5055         g95_generate_constructors): Likewise.
5056         * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
5057         g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
5058         Likewise.
5059
5060 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5061         * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
5062         with components point to the DERIVED type itself, and two DERIVED
5063         type with components point to each other.
5064         * trans-expr.c (g95_conv_componet_ref): Modified
5065
5066 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
5067         * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
5068         null_pointer_node.
5069         (g95_trans_pointer_assign): Implement Nullify.
5070
5071 2003-05-01  Paul Brook  <paul@nowt.org>
5072
5073         * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
5074         * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
5075
5076 2003-05-01  Paul Brook  <paul@nowr.org>
5077
5078         * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
5079         trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
5080         IS_EMPTY_STMT.
5081
5082 2003-05-01  Canqun Yang  <canqun@yahoo.com.cn>
5083
5084         * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
5085         CASE_LABEL_EXPR.
5086
5087 2003-04-28  Paul Brook  <paul@nowt.org>
5088
5089         * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
5090         as their kind suggests.
5091         (g95_resolve_reshape): Ditto.
5092
5093 2003-04-28  Chun Huang  <compiler@sohu.com>
5094
5095         * trans-expr.c (g95_conv_substring_expr): New function.
5096         (g95_conv_expr): Use it.
5097
5098 2003-04-28  Paul Brook  <paul@nowt.org>
5099
5100         * iresolve.c (g95_resolve_transpose): Make it match the
5101         implementation.
5102         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
5103
5104 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
5105
5106         * trans-types.c (g95_add_field_to_struct): New function to
5107         add a field to a UNION_TYPE or RECORD_TYPE.
5108         * trans-types.h (g95_add_field_to_struct): Prototype.
5109         (g95_get_derived_type): Use g95_add_field_to_struct to add
5110         components.
5111         * trans-io.c (g95_add_field): Remove.
5112         (ADD_FIELD): Use new g95_add_field_to_struct function.
5113         (ADD_STRING): Likewise.
5114         * trans-stmt.c (g95_trans_select): Likewise.
5115         (g95_add_field): Remove duplicated function.
5116
5117 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
5118
5119         Port implementation for CHARACTER SELECT from Andy's tree.
5120         * trans-stmt.c (g95_trans_character_select): Implement character
5121         select. (g95_add_field): New function.
5122         * trans-decl.c: Declare 'gfor_gndecl_select_string'.
5123         (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
5124         * g95.h (struct g95_case): Add field 'int n'.
5125         * trans.h: Declare 'gfor_fndecl_select_string'.
5126
5127 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
5128
5129         * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
5130         (g95_insert_bbd): Die on duplicates.
5131         * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
5132
5133 2003-04-14  Steven Bosscher  <steven@gcc.gnu.org>
5134
5135         * g95.texi: Require GMP 4.0 -- like we actually
5136         do.  Explain the testsuite and what-goes-where.
5137         Don't use undefined texinfo symbol.  Break very
5138         long line.  Remove finished item from the list
5139         of open projects.
5140
5141 2003-04-11  Canqun Yang  <canqun@yahoo.com.cn>
5142
5143         * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
5144         LOGICAL type.
5145
5146 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
5147
5148         * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
5149         (g95_trans_forall_body): New function.
5150
5151 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
5152
5153         * resolve.c (resove_where): New function.
5154         (resolve_where_shape): New function.
5155         (resolve_code): Add call to 'resolve_where'
5156         * trans-stmt.c (g95_trans_where): Modified.
5157         (g95_trans_where_2): New function.
5158         (g95_trans_where_assign): New function.
5159         (g95_evaluate_where_mask): New function.
5160         (g95_add_to_stmt_list): New function.
5161         (g95_get_temp_expr): New function.
5162         * trans.h (where_stmt_list): New structure.
5163
5164 2003-04-10  Paul Brook  <paul@nowt.org>
5165
5166         * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
5167         (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
5168
5169 2003-04-10  Steven Bosscher  <steven@gcc.gnu.org>
5170
5171         Update after mainline -> tree-ssa-branch merge.
5172         * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
5173         call.
5174         (g95_init): Update for new lang_hooks definition.
5175         (g95_post_options): New langhook.
5176         (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
5177         * scanner.c (g95_new_file): Comment update.
5178
5179 2003-04-09  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5180
5181         * g95.h, lang-options.h: Add -Wimplicit-interface.
5182         * options.c (g95_init_options, g95_parse_arg): Set it.
5183         * interface.c (check_intents): Warn about call with implicit
5184         interface.
5185         * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
5186         g95_procedure_use.
5187
5188 2003-04-05  Paul Brook  <paul@nowt.org>
5189
5190         * iresolve.c (g95_resolve_spread): Don't resole based on type.
5191         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
5192
5193 2003-03-29  Paul Brook  <paul@nowt.org>
5194
5195         * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
5196         (g95_resolve_unpack): Ditto.
5197         * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
5198         (g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
5199         (g95_is_intrinsic_libcall): Add PACK and UNPACK.
5200
5201 2003-03-25  Paul Brook  <paul@nowt.org>
5202
5203         * arith.c (g95_unary_user, g95_user): Remove dead functions.
5204         * arith.h: Ditto.
5205         * array.c (g95_free_array_ref): Ditto.
5206         * g95.h: Ditto.
5207         * symbol.c (g95_use_derived_tree): Ditto.
5208         * intrinsic.c (add_functions): Use simplification for SCALE.
5209         * primary.c (g95_match_rvalue): Test sym, not symtree.
5210
5211 2003-03-25  Paul Brook  <paul@nowt.org>
5212
5213         * trans-decl.c (build_function_decl): Add parameter before it gets
5214         turned into a constant.
5215         * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
5216         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
5217         * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
5218
5219 2003-03-22  Paul Brook  <paul@nowt.org>
5220
5221         * trans-array.c (g95_conv_array_initializer): Allow scalar
5222         expressions.
5223         * trans-decl.c (g95_finish_var_decl): Result variables are not
5224         module variables.
5225         * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
5226         (g95_conv_intrinsic_function): Use it.
5227         * trans-types.h (g95_type_spec): Remove dead declaration.
5228
5229 2003-03-21  Paul Brook  <paul@nowt.org>
5230
5231         * trans-decl.c (g95_build_function_decl): Mark string parameters.
5232
5233 2003-03-20  Paul Brook  <paul@nowt.org>
5234
5235         * trans-decl.c (g95_build_function_decl): Put character length
5236         parameters at the end of the function declaration.
5237         * trans-expr.c (g95_conv_function_call): Ditto.
5238         * trans-types.c (g95_get_function_type): Ditto.
5239
5240 2003-03-20  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5241
5242         * resolve.c (resolve_formal_arglist): Don't impose intent for
5243         procedure arguments of pure functions.
5244         (resolve_select): Remove redundant assignment.
5245
5246 2003-03-19  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5247
5248         * arith.c (validate_logical), g95.h, options.c (g95_init_options):
5249         Remove option l1.
5250         * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
5251         * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
5252         const.
5253         * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
5254         Order list.
5255         * symbol.c (g95_add_type): Fix typo in comment.
5256
5257
5258 2003-03-16  Paul Brook  <paul@nowt.org>
5259
5260         * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
5261         * expr.c (g95_build_call): Remove.
5262         * f95-lang.c (puchdecl_top_level): New function.
5263         * g95.h (g95_code): Store resolved symbol, not just the name.
5264         * intrinsic.c (g95_intrinsic_namespace): New global namespace.
5265         (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
5266         (g95_get_intrinsic_sub_symbol): New function.
5267         * iresolve.c (g95_resolve_cpu_time): Use it.
5268         (g95_resolve_random_number): Ditto.
5269         * resolve.c: Set code->resolved_sym instead of code->sub_name.
5270         * trans-decl.c (g95_get_extern_function_decl): Give external decls
5271         the correct DECL_CONTEXT.  Add global symbold to the global scope.
5272         * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
5273         fixed.
5274
5275 2003-03-16  Paul Brook  <paul@nowt.org>
5276
5277         * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
5278         * options.c (g95_parse_arg): Ditto.
5279         * module.c (mio_symbol_attribute): Handle the always_explicit bit.
5280         * resolve.c (resolve_formal_arglist): The always_explicit sould be set
5281         for the procedure, not the parameter.
5282         * trans-array.c (g95_trans_g77_array): New function.
5283         (g95_trans_assumed_size): Use it.
5284         (g95_trans_dummy_array_bias): Ditto.
5285         (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
5286         (g95_conv_expr_descriptor): ... to here.  Update callers.
5287         * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
5288         (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
5289         * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
5290         * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
5291         * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
5292         (g95_sym_type): Ditto.
5293
5294 2003-03-15  Paul Brook  <paul@nowt.org>
5295
5296         * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
5297         first chain.
5298         * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
5299
5300 2003-03-14  Paul Brook  <paul@nowt.org>
5301
5302         * trans-array.c (g95_array_is_packed): Remove.
5303         (g95_conv_array_base): Correctly handle all descriptorless cases.
5304         (g95_conv_array_stride): Use descriptorless strides.
5305         (g95_trans_dummy_array_bias): Don't always repack the array.
5306         (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
5307         packed.
5308         * trans-types.c (g95_get_nodesc_array_type): Differentiate between
5309         dummy and non-dummy arrays...
5310         (g95_sym_type, g95_get_derived_type): ... like these.
5311         (g95_get_array_type_bounds): Allow discontiguous arrays.
5312
5313 2003-03-12  Paul Brook  <paul@nowt.org>
5314
5315         * array.c (g95_resolve_array_spec): Fix comment.
5316         * g95.h (symbol_attributes): New flag always_explicit.
5317         * resolve.c (resolve_formal_arglist): Set it always_explicit.
5318         * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
5319         * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
5320         (g95_trans_array_bounds): Allow assumed shape arrays.
5321         (g95_trans_repack_array): Remove.
5322         (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
5323         * trans-decl.c (g95_build_qualified_array): Only ignore absent
5324         bounds for assumed size arrays.
5325         (g95_build_dummy_array_decl): Use descriptorless arrays.
5326         * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
5327         (g95_trans_pointer_assign): Fix typo.
5328         * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
5329         code.
5330         (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
5331         * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
5332         Also modify callers.
5333         * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
5334
5335 2003-03-08  Paul Brook  <paul@nowt.org>
5336
5337         * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
5338         (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
5339         * resolve.c (compare_spec_to_ref): Allow full array sections.
5340
5341 2003-03-08  Paul Brook  <paul@nowt.org>
5342
5343         * expr.c (g95_simplify_expr): Also simplify array index and
5344         substring expressions.
5345         * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
5346         * trans-array.c (g95_trans_array_bounds): New function.
5347         (g95_trans_auto_array_allocation): Use it.
5348         (g95_trans_assumed_size): Rewrite.
5349         * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
5350         (gfor_fndecl_repack): Remove.
5351         (g95_build_qualified_array): Handle absent upper bounds.
5352         (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
5353         (g95_get_symbol_decl): Update.
5354         (g95_build_intrinsic_function_decls): Initialize new decls.
5355         * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
5356         (gfor_fndecl_repack): Remove.
5357         * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
5358         * trans-types.c: (g95_build_array_type): Merge duplicated code..
5359         (g95_get_nodesc_array_type): Handle absent bounds.
5360         * trans-types.h (g95_get_nodesc_array_type): Declare.
5361
5362 2003-03-04  Paul Brook  <paul@nowt.org>
5363
5364         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
5365         builtin-types.def.
5366
5367 2003-03-02  Paul Brook  <paul@nowt.org>
5368
5369         * options.c (g95_init_options): Drfault to 1.
5370         (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
5371         * trans-array.c (g95_conv_array_data, g95_conv_array_base,
5372         g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
5373         Handle non-constant size automatic arrays.
5374         (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
5375         generic bound functions.
5376         (g95_trans_auto_array_allocation): Don't create a descriptor.
5377         (g95_trans_assumed_size): New function (broken).
5378         (g95_trans_dummy_array_bias): Remove unused var.
5379         * trans-array.h (g95_trans_assumed_size): Declare.
5380         * trans-decl.c (create_index_var): New fuction.
5381         (g95_build_qualified_array): New function.
5382         (g95_get_symbol_decl): Use it.
5383         (g95_trans_deferred_vars): Handle assumed shape seperately.
5384         * trans-types.c (get_element_type): Handle heap allocated arrays.
5385         (g95_is_nodesc_array): Include non-const size arrays.
5386         (g95_get_nodesc_array_type): Ditto.
5387
5388 2003-02-23  Paul Brook  <paul@nowt.org>
5389
5390         * trans-array.c (g95_array_init_size): Should use stride, not size of
5391         last dimension.
5392
5393 2003-02-18  Paul Brook  <paul@nowt.org>
5394
5395         * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
5396         after intrinsic function check.
5397
5398 2003-02-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5399
5400         * io.c (match_io): Fix missing return value and remove useless
5401         assignment.
5402         * match.c (g95_match): Remove useless assignment.
5403         * module.c (parse_string):  Remove useless post increment.
5404         * simplify.c (g95_simplify_verify): Remove useless assignment.
5405
5406 2003-02-15  Paul Brook  <paul@nowt.org>
5407
5408         * expr.c (restricted_intrinsic): Handle bad values gracefully.
5409         * g95.h (symbol_attribute): Add referenced member.
5410         (g95_symbol): Add dummy_order member.
5411         (g95_set_sym_referenced): Declare.
5412         * match.c (g95_match_assignment, g95_match_call): Use it
5413         * primary.c (match_actual_arg, g95_match_rvalue,
5414         g95_match_variable): Ditto.
5415         * symbol.c (next_dummy_order): New variable.
5416         (g95_set_sym_referenced): New function.
5417         (check_done): New function.
5418         (g95_add_*): Use it.
5419         * trans-decl.c: Make formatting conform to GCC standards.
5420         (g95_defer_symbol_init): Add dummy variables in the right order.
5421         (g95_get_symbol_decl): Only accept referenced variables.
5422         (g95_create_module_variable): Module variables are always required.
5423         (generatr_local_decls): New function.
5424         (generate_local_vars): New function.
5425         (g95_generate_function_code): Use it.
5426
5427 2003-02-13  Paul Brook  <paul@nowt.org>
5428
5429         * trans-decl.c (g95_conv_struct_cons): Remove.
5430         (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
5431         * trans-expr.c (g95_conv_structure): New function.
5432         (g95_conv_expr): Use it.
5433
5434 2003-02-09  Paul Brook  <paul@nowt.org>
5435
5436         * trans-array.c (g95_array_init_size): Don't evaluate the linit
5437         expressions multiple times.
5438         (g95_trans_auto_arry_allocation): Use pointer not tmp.
5439
5440 2003-02-08  Paul Brook  <paul@nowt.org>
5441
5442         * module.c (mio_symtree_ref): Declare as static.
5443         (mio_expr): Remove dead code.
5444         (read_module): Set the symtree link for fixups.
5445         * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
5446         (build_round_expr): ... to this.
5447         (g95_conv_intrinsic_aint): New function.
5448         (g95_conv_intrinsic_function): Use it.
5449
5450 2003-02-08  Paul Brook  <paul@nowt.org>
5451
5452         * trans-array.c (g95_trans_array_constructor_value): Use the acutal
5453         offset after modificaton, not the increment expression.
5454         * dependency.c: Kill excess whitespace.
5455
5456 2003-02-07  Sanjiv Gupta  <sanjivg@noida.hcltech.com>
5457
5458         * dependency.h: Remove some function declarations.
5459         * dependency.c (get_no_of_elements): Change this function not to
5460         return int.
5461         * other: Add comments for all modified functions.
5462
5463 2003-02-06  Paul Brook  <paul@nowt.org>
5464
5465         * g95spec.c (lang_specific_functions): Fix initializer warning.
5466         * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
5467         for structure type names.
5468         * trans-decl.c (g95_cons_structure_cons): New function.
5469         (g95_get_symbol_decl): Use it.
5470         * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
5471         referencing code.
5472
5473 2003-02-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5474
5475         * resolve.c (compare_cases): Add const to casts.
5476
5477 2003-01-30  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5478
5479         * g95.h (g95_check_f): Change a1 to f1m.
5480         * intrinsic.c (add_sym_1m, check_specific,
5481         g95_intrinsic_func_interface): Use it.
5482
5483         * module.c (init_pi_tree): Remove useless cast.
5484         (fp2): Fix argument type.
5485
5486         * parse.c (parse_select_block): Add comment.
5487
5488 2003-02-05  Toon Moene  <toon@moene.indiv.nluug.nl>
5489
5490         * lang-options.h: Fix warning involving C90 concatenated
5491         strings.
5492
5493 2003-02-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5494             Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5495
5496         * io.c (format_asterisk): Complete initializer to kill warning.
5497         * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
5498         DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
5499         (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
5500         new defines to complete initializers.  Kills all warnings.
5501
5502         * Make-lang.in: Comment cleanup.
5503
5504 2003-02-05  Paul Brook  <paul@nowt.org>
5505
5506         * array.c (g95_free_constructor): Handle NULL expressions.
5507         * resolve.c (resolve_structure_cons): Ditto.
5508         * decl.c (g95_match_null): New Function.
5509         (variable_decl): Use it.
5510         * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
5511         * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
5512         * trans-types.c (g95_set_decl_attributes): Remove empty function.
5513
5514 2003-02-05  Paul Brook  <paul@nowt.org>
5515
5516         * trans.h (build1_v): New macro.
5517         (build_v): Remove pointless and incorrect prototype.
5518         * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
5519         * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
5520
5521 2003-02-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5522
5523         * Make-lang.in (F95_OBJS): Remove one more dead file.
5524
5525 2003-02-01  Paul Brook  <paul@nowt.org>
5526
5527         * lang-specs.h: Don't pass -ffixed-form to the linker.
5528         * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
5529
5530 2003-02-01  Paul Brook  <paul@nowt.org>
5531
5532         * Make-lang.in (F95_OBJS): Remove dead files.
5533         * trans-array.c (g95_array_init_size): Do the right thing when
5534         ubound=NULL.
5535         * trans-decl.c (g95_generate_function_code): Initialize deffered
5536         symbol list before translating contained subroutines.
5537         * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
5538         scalar invariant values here...
5539         (g95_conv_variable, g95_conv_function_call): ... instead of here ...
5540         * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
5541
5542 2003-01-29  Paul Brook  <paul@nowt.org>
5543
5544         * trans-array.c (g95_add_loop_code): Put pre code in the right block.
5545         (g95_walk_elemental_function_args): Reverse chains before adding.
5546         (g95_reverse_ss): Move about a bit.
5547         * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
5548         function arguments.
5549
5550 2003-01-28  Paul Brook  <paul@nowt.org>
5551
5552         * intrinsic.c (resolve_intrinsic): Use correct union member.
5553         * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
5554         parameters.
5555         * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
5556         use associated variables.
5557         * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
5558         * trans-expr.c (g95_conv_expr_present): ... to here.
5559         * trans.h: Declare it.
5560         * trans-types.c (g95_sym_type): Assume subroutine if not specified.
5561
5562 2003-01-28  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
5563
5564         * array.c (expand_iterator): Suppress useless assignment.
5565         * decl.c (match_char_spec): Ditto.
5566         * io.c (match_io_iterator): Ditto.
5567         * primary.c (match_real_constant): Ditto.
5568         * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
5569         Ditto.  Also, use g95_intrinsic_op not int for intrinsic operators.
5570         * matchexp.c (match_add_operand, match_level_5): Likewise.
5571         * module.c (parse_atom, find_enum): Likewise.
5572         * resolve.c: move #include <string.h>
5573         (resolve_select): Fix serious typo.
5574
5575 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.n>
5576
5577         * Make-lang.in: Don't build with broken tree-ssa-pre.
5578
5579 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5580
5581         * resolve.c (resolve_index): Add a TODO.
5582         * symbol.c: Remove useless "#include <ctype.h>".
5583
5584 2003-01-27  Paul Brook  <paul@nowt.org>
5585
5586         * check.c (check_rest): Allow different type kinds as an extension.
5587         * g95.h (g95_resolve_f): Add f1m.
5588         * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
5589         * intrinsic.h: Chenge prototypes for MIN and MAX.
5590         * iresolve.c (g95_resolve_minmax): New function.
5591         (g95_resolve_min, g95_resolve_max): Use it.
5592         * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
5593         arguments once.
5594         (g95_conv_intrinsic_present): Fix logic.
5595
5596 2003-01-27  Steven Bossche  <s.bosscher@student.tudelft.nl>
5597
5598         * g95.h (g95_case): Don't be a tree, be a double linked list.
5599         * match.c (match_case_selector): Remove redundant semantics check.
5600         Clean up a few goto's to make it a tiny little bit faster.
5601         * resolve.c (case_tree): Die.
5602         (compare_cases): Accept and compare unbounded cases too.
5603         (check_case_overlap): Don't build a tree.  Instead, merge-sort the
5604         whole list of g95_cases passed from resolve_select.
5605         (sane_logical_select): Die.
5606         (check_case_expr): Return FAILURE if a CASE label is of the wrong
5607         type kind.
5608         (resolve_select): Fixup case expression for computed GOTOs, put it
5609         in expr, not expr2, for easier handing in the parse tree dumper and
5610         the code generator.  Rewrite the rest of the function: Kill
5611         unreachable case labels and unreachable case blocks.
5612         * dump-parse-tree.c (g95_show_code_node): Always dump expr for
5613         an EXEC_SELECT, not case2 anymore.
5614         * trans-const.c (g95_conv_constant_to_tree): New function.
5615         (g95_conv_constant): Use it.
5616         * trans-const.h: Declare prototype for the new function.
5617         * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
5618         g95_trans_character_select): New static functions.
5619         (g95_trans_select): Rewrite.
5620
5621 2003-01-26  Paul Brook  <paul@nowt.org>
5622
5623         * intrinsic.c (add_fnctions): Properly add dreal.
5624         * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
5625         (g95_conv_intrinsic_function): Use it.
5626         * trans-io.c (build_dt): Abort on internal files (unimplemented).
5627
5628 2003-01-26  Paul Brook  <paul@nowt.org>
5629
5630         Widespread changes to the handling of symbols in expressions.  These
5631         are now linked via g95_symtree nodes.
5632         * parse.c (g95_fixup_sibling symbols): New function.
5633         (parse_contained): Use it.
5634         * g95.h (symbol_attribute): Add contained.  Indicates a symbol is a
5635         contained procedure that has bee correctly fixed up.
5636         (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
5637
5638 2003-01-24  Paul Brook  <paul@nowt.org>
5639
5640         * trans-array.c (g95_walk_expr): Function result attributes are in
5641         sym->result.
5642         * trans-expr.c (g95_conv_function_call,
5643         g95_trans_arrayfunc_assign): Ditto.
5644         * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
5645
5646 2003-01-23  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5647
5648         * expr.c (check_restricted): Fix error message.
5649         * symbol.c (free_st_labels): Plug memleak.
5650
5651 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5652
5653         * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
5654         reduce_binary_aa, reduce_binary, eval_intrinsic,
5655         eval_intrinsic_f2): Use typesafe prototypes for eval functions.
5656         * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
5657         for typesafe intrinsics helper functions.
5658         (g95_intrinsic_sym): Use them.
5659         * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
5660         add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
5661         add_sym_5, add_conv, resolve_intrinsic, do_simplify,
5662         check_specific, g95_intrinsic_func_interface,
5663         g95_intrinsic_sub_interface): Adjust all calls to intrinsics
5664         helper functions.
5665         * trans-decl.c (g95_get_extern_function_decl): Likewise.
5666         * Make-lang.in: Don't disable warnings for strict prototypes
5667         any longer, everything is typesafe now.
5668
5669 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5670
5671         * bbt.c (duplicate_node): Make static.
5672         * module.c (module_name): Make static.
5673         * scanner.c (include_dirs): Make static.
5674
5675 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5676
5677         Hard coded _gfor_'s should not show up anymore.
5678         * g95.h (PREFIX): New macro.
5679         * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
5680         hard-coded "_gfor".
5681         (g95_resolve_random_number): Likewise.
5682         * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
5683         * trans-io.c: Remove 'prefix' macro.  Replace all uses with
5684         the new PREFIX macro from g95.h.
5685
5686 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5687
5688         The troubles of forking... Andy implemented this just now too.
5689         Let's stick to that and keep the trees close.
5690         * g95.h (g95_st_label): 'format' member is now a g95_expr.
5691         * io.c: Revert previous changes.
5692         (g95_match_format): Match the format string as a character
5693         literal expression.
5694         * match.h (g95_statement_label): Declare external.
5695         * parse.c: Revert previous changes.
5696         * symbol.c (g95_free_st_label): Free a g95_expr instead
5697         if a 'char *'.
5698         * trans-io.c: Revert previous changes.
5699         (build_dt): Use set_string to set the format string.
5700
5701 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5702
5703         * io.c (format_string): Make non-static.
5704         (g95_match_format): Remember the format string.
5705         (terminate_io): Add I/O termination for empty I/O lists.
5706         * match.h: Declare external format_string.
5707         * parse.c (check_statement_label): Attack the format string
5708         to a format label for FORMAT statements.
5709         * trans-io.c (g95_add_field): Define prefix macro.  Replace
5710         all uses of PREFIX define with a use of this macro.
5711         (build_dt): Implement formatted I/O for format labels.
5712
5713 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5714
5715         * lang-options.h: Kill "-std=F".
5716         * options.c: Remove unimplemented "-std=F".  Modify
5717         web address.
5718         * misc.c (g95_terminal_width): New function.
5719         * error.c (g95_error_init_1): Use g95_terminal_width.
5720         * g95.h: Add prototype for g95_terminal_width, remove
5721         fmode flag.
5722
5723 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5724
5725         * Make-lang.in: Fix typo.
5726
5727 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5728
5729         * g95.h (struct g95_case): Remove unused cruft, new member
5730         'where' to keep track of the locus of the default case.
5731         * match.c (g95_match_case): Add locus to the current case.
5732         (match_case_selector): Likewise.
5733         * parse.c (parse_select_block): Move semantics check for
5734         multiple DEFAULT cases out of here to...
5735         * resolve.c (check_case_overlap): ...here.  Return sooner
5736         when possible.
5737         (check_case_expr): Take two g95_cases now, use to sure the
5738         expression kinds are the same.
5739         (resolve_select): Cleanup.
5740
5741 2003-01-18  Paul Brook  <paul@nowt.org>
5742
5743         * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
5744         * trans-decl.c (g95_set_symbol_decl): Handle non-array result
5745         variables.
5746         (g95_get_extern_function_decl): Put decls in the correct context.
5747
5748 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5749
5750         * trans-io.c: Port changes from Andy to set ERR flag.
5751
5752 2003-01-17  Paul Brook  <paul@nowt.org>
5753
5754         * trans-array.c: Add various comments.
5755         (g95_ss_terminator): Declare as const.
5756         (g95_walk_expr): Remove first parameter and update all callers.
5757         (g95_walk_op_expr): Initialize scalar SS properly.
5758         * trans-array.h (g95_walk_expr): Update prototype.
5759         * trans-expr.c: Update for new g95_walk_expr.
5760         * trans-intrinsic.c: Ditto.
5761         * trans-io.c: Ditto.
5762         * trans.h: Various comments for SS chains.
5763
5764 2003-01-17  Paul Brook  <paul@nowt.org>
5765
5766         * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
5767         and RRSPACING.
5768         * intrinsic.c (add_functions): Use them.
5769         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
5770         * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
5771
5772 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5773
5774         Fallout of a small merge conflict:
5775         * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
5776
5777 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5778
5779         * initrinsic.c: New add_sym_* functions for strong typing.
5780         (add_conv): Make prototype strict.
5781         * dump-parse-tree.c, dependency.c: Include config.h
5782         * resolve.c, trans-io.c: Fix typos.
5783
5784 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5785
5786         * dump-parse-tree.c (g95_show_code_node): Show the
5787         condition for a computed GOTO that was transformed
5788         to a SELECT CASE construct.
5789         * resolve.c (check_case_overlap): Revert previous switch
5790         to treaps, it was too slow and didn't catch all trouble.
5791         (resolve_symbol): Be more flexible about module procedures.
5792         * symbol.c (check_conflict): Point to relevant section in
5793         the standard for dubious conflict.  Allow procedure
5794         dummy arguments to be optional again.
5795         * trans-io (add_field): Rename to g95_add_field.  Change
5796         all callers.
5797         * trans-stmt (trans_select): Handle unbounded cases for
5798         integer SELECT CASE constructs.  Fix/add more comment.
5799
5800 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5801
5802         * g95.h: Uses GCC's function attribute macros.
5803         * error.c, module.c, parse.c, g95.h: More function attributes.
5804
5805 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5806         Forgot a file...
5807         * trans-decl.c (get_label_decl): Use TREE_LINENO instead
5808         of DECL_SOURCE_LINE, and TREE_FILENAME instead of
5809         DECL_SOURCE_FILE.
5810
5811 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5812
5813         * f95-lang.c (pushdecl): Use TREE_LINENO instead of
5814         DECL_SOURCE_LINE.
5815         * trans.c (g95_trans_code): Use annotate_all_with_file_line
5816         instead of nowdead wrap_all_with_wfl.
5817
5818 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5819
5820         * parse.c (g95_parse_file): In verbose mode, dump the parse tree
5821         before generating code, so we can still see it even if the code
5822         generation phase dies.
5823
5824 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5825
5826         * decl.c (build_sym): Split out initialization expression parts...
5827         (add_init_expr_to_sym): ...to here.
5828         (variable_decl): Add the symbol following an attribute list to the
5829         symbol tree before parsing the optional initialization expression
5830         if the symbol is not of a derived type.
5831         * primary.c (g95_match_rvalue): Don't assume a symbol always has
5832         a value if it is a PARAMETER.
5833
5834 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5835
5836         * misc.c: Don't #include <mcheck.h>
5837         * module.c: Ditto.  Kill uses of mtrace, muntrace.  If there
5838         ever was a glibc bug, then either this was never reported to
5839         glibc people, or it has been fixed for so long that there's
5840         no information you can find about it, anywhere.
5841
5842 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5843
5844         Fix warnings:
5845         * module.c (attr_bits, bt_types, array_spec_types):
5846         Switch 'const' and 'static'.
5847         * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
5848
5849         GNU'ify source code:
5850         * trans-io.c: Numerous fixes, one fixed warning and a few
5851         TODO markers so that we don't forget about them.
5852
5853 2003-01-13  Paul Brook  <paul@nowt.org>
5854
5855         * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
5856         * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
5857         Add G95_ISYM_SCALE.
5858         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
5859         * match.c (g95_match_stop): Fix dumb == -> != error.
5860
5861 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5862
5863         * dump-parse-tree.c (show_indent): Add line breaks.  This
5864         whole dumping process needs cleanups.
5865         * f95-lang.c (g95_mark_addressable): Fix prototype to match
5866         the langhook.  Fix 'return's accordingly.
5867         * g95-support.h: Adjust prototype.
5868         * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
5869         * lang-options.h: Add '-fsyntax-only'.
5870         * options.c (g95_init_options): Init 'no_backend'.
5871         (g95_parse_arg): Deal with '-fsyntax-only'.
5872         * parse.c (g95_parse_file): Do not generate code if 'no_backend'
5873         is set.
5874
5875 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5876         Patch from Arnaud
5877         * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
5878         arguments.  Also make sure that if a symbol is marked INTRINSIC,
5879         an intrinsic with the symbol's name actually exists.
5880         (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
5881         Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
5882         ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
5883
5884 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5885
5886         * resolve.c (resolve_contained_functions): Fix condition, don't
5887         throw internal_error if a child namespace has no name.  Apparently
5888         this can be the case?
5889
5890 2003-01-11  Paul Brook  <paul@nowt.org>
5891
5892         Port changes from Andy's tree:
5893         * g95.h (g95_code): Add stop_code.
5894         * match.c (g95_match_stop): Detter syntax checking.
5895         * resolve.c (resolve_generic_f0): Return match type.
5896         (resolve_generic_f): Remove dead/duplicated code.
5897         (resolve_specific_f): Ditto.
5898         * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
5899         * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
5900         * trans-stmt.c (g95_trans_stop): Handle new STOP format.
5901
5902 2003-01-11  Paul Brook  <paul@nowt.org>
5903
5904         * trans-array.c: Various documentation/comment changes.
5905         * trans-stmt.c: Ditto.
5906
5907
5908 2003-01-10  Paul Brook  <paul@nowt.org>
5909
5910         * options.c/h: Add -fdump-parse-tree as alias of -v.
5911
5912 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5913
5914         * dump-parse-tree.c (g95_show_namespace): Fixed another
5915         typo.  Sorry, it's Friday...
5916
5917 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5918
5919         Spotted by Tobi:
5920         * trans-array.c, trans-array.h, trans.c, trans-const.c,
5921         trans-const.h, trans-decl.c, trans-expr.c, trans.h
5922         trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
5923         trans-types.c: Fix bogus copyright years, add 2003.
5924         * trans-types.h: Give copyright header.
5925
5926 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5927
5928         * dump-parse-tree.c (g95_show_namespace): Fixed typo.
5929         * expr.c, options.c, scanner.c: Add some more 'const' markers.
5930         * intrinsic.c: Some constant strings moved to read-only memory.
5931         * io.c (format_asterisk): Move to...
5932         * g95.h: ...here.
5933
5934 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5935
5936         * dump-parse-tree.c (g95_show_namespace): Dump implicit
5937         types for ranges instead of per-letter.  Indent the
5938         'CONTAINS' just like everything else.
5939         * resolve.c (resolve_contained_functions): Clarify comment.
5940         Explain non-obvious conditional expression.  Improve
5941         diagnostics if tyoe cannot be resolved.
5942         Port semi-fix from Andy's tree:
5943         (was_declared): Move up before first use.
5944         (generic_sym, specific_sym): New functions.  Code moved
5945         out if procedure_kind.
5946         (procedure_kind): Simplify using new functions.
5947         (resolve_generic_f): Make sure the functions we find in
5948         a parent namespace is generic.
5949         (resolve_specific_f): Ditto for specific functions.
5950
5951 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5952
5953         * trans-stmt.c, trans.c: Fix some code style issues. Add
5954         some more comment (but still not enough!).
5955
5956 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5957
5958         * symbol.c (flavors, procedures, intents, acces_types,
5959         access_types, ifsrc_types): Make const.
5960         * misc.c (g95_string2code): Make 'm' param 'const'.
5961         * module.c (find_enum, write_atom, mio_name): Make
5962         'm' param 'const'.
5963         (attr_bits, bt_types, array_spec_types, array_ref_types,
5964         ref_types, expr_types): Make const.
5965         * g95.h: Adjust external decls.
5966
5967 2003-01-09  Paul Brook  <paul@nowt.org>
5968
5969         * Testsuite: Add a load of new cases.
5970
5971 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5972
5973         * Make-file.in: Add dependency on back end header files;
5974         a parallel build should work now.
5975         * f95-lang-c (lang_identifier): Remove bogus comment.
5976         (g95_be_parse_file): Fix prototype.
5977         (g95_init): Make static.
5978         (g95_finish): Make static.
5979         * error.c (g95_syntax_error): Kill. Make define in...
5980         * g95.h (g95_syntax_error): Define.
5981         (g95.options): Make 'source' member 'const'.
5982         * interface.c (g95_match_interface): Explain
5983         hard-to-read condition.
5984         (g95_match_end_interface): Ditto.
5985         * trans_const.c (g95_build_string_const): Make 's' parameter
5986         'const'.
5987         * trans_const.h: Adjust protoype accordingly.
5988         * trans-decl.c: Include tree-dump.h
5989         (g95_generate_function_code): Build fixes for recent changes
5990         in the tree-ssa branch.
5991
5992 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5993
5994         * format.c: Kill, move code from here...
5995         * io.c: ...to here.
5996         * Make-lang.in: Adjust.
5997         * MANIFEST: Ditto.
5998         * match.h: Ditto.
5999         * BUGS: Mention where to submit bugs.  Move old content...
6000         * TODO: ...to here.  New file.
6001
6002 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6003         Fix most warnings, and suppress the ones we can't fix for now.
6004         * Make-lang.in: Suppress warnings about bad proto's in g95.h,
6005         these warnings just clutter the screen and there's not much
6006         we can do about them for now anyway.
6007         * check.c, iresolve.c: Mark unused function parameters.
6008         * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
6009         they should be resolved before they get here.
6010         * error.c: Remove unused FILE *status_out.
6011         * f95-lang.c (g95_init): Remove bogus cast.
6012         * Many files: Make things 'const' where required.
6013         * g95.h: Fix prototypes for all modified functions above.
6014         (g95_options): Remove 'object' member.
6015
6016 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6017
6018         * Make-file.in: Cleanup bogus targets.  Add more comment.
6019         * lang-options.h: New option '-w'.
6020         * g95.h: add no_options field to struct g95_options.
6021         * options.c (g95_init_options): Default no_warnings to off.
6022         (g95_parse_arg): Recognise the '-w' switch and its alias,
6023         '-fno-warnings'.
6024         * error.c (g95_warning, g95_warning_now): Don't emit warning if
6025         no_warning option is set.
6026         * iresolve.c (g95_resolve_shape): Fix warning.
6027
6028 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6029
6030         * primary.c (g95_next_string_char): Rename next_string_char, and
6031         make static.  Adjust callers accordingly.
6032         * resolve.c (resolve_generic_f0): Return try, not match.  Adjust
6033         callers accordingly.
6034         * g95.h: Split out all g95_match* functions to...
6035         * match.h: ...here. New file.
6036         * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
6037         matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
6038
6039 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6040
6041         * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
6042         g95_merge_new_implicit): New functions.
6043         (g95_match_implicit_none, g95_match_implicit): Move from here...
6044         * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
6045         Modify to use the new functions in symbol.c.
6046         * g95.h: Add and move prototypes.
6047
6048 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6049
6050         * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
6051         node compare function.
6052         (g95_insert_bbt): Likewise.
6053         (g95_insert_bbt_with_overlap): Likewise.
6054         (g95_delete_bbt): Likewise.
6055         (delete_treap): Likewise. Also fix a potential bug when calling it.
6056         * module.c (compare_pointers): Change proto to compare_fn.
6057         (compare_integers): Likewise.
6058         (compare_true_names): Likewise.
6059         (find_true_name): Adjust call to compare_true_names to match proto.
6060         (require_atom, write_atom, mio_name): Fix 'const' warnings.
6061         (init_pi_tree): Make compare a compare_fn instead of (int *).
6062         * resolve.c (compare_cases): Change proto to compare_fn.
6063         * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
6064         it static, and rename to compare_symtree.
6065         (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
6066         function.
6067         * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
6068         of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
6069
6070 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6071         * Make-lang.in: Fix spaces/tabs issues from previous patch.
6072         * patch.options: Blow away Paul's checkin mistake :-)
6073         * io.c (terminate_io): Fix memory leak (Arnaud).
6074
6075 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6076
6077         * Make-lang.in: Teach about building DVI, info manual.
6078         * g95.texi: New file.
6079
6080 2003-01-02  Paul Brook  <paul@nowt.org>
6081
6082         * trans-array.c (g95_reverse_ss): Make static and don't use.
6083         (g95_conv_ss_descriptor): Don't use g95_loopinfo
6084         (g95_conv_array_parameters): Modify for pointer assignments.
6085         (g95_walk_subexpr): New function.
6086         (g95_walk_expr*): Use it.
6087         * trans-array.h (g95_reverse_ss): Remove prototype.
6088         * trans-expr.c (g95_trans_pointer_assign): Implement.
6089         (Many): Set se.want_pointer before calling g95_conv_array_parameter.
6090         * trans-intrinsic.c: Sync with scalarizer changes.
6091         * trans-io.c: Ditto.
6092
6093 2002-12-29  Paul Brook  <paul@nowt.org>
6094
6095         * trans-array.c: Document calling convention for arrays.
6096
6097 2002-12-19  Paul Brook  <paul@nowt.org>
6098
6099         * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
6100         assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
6101         optional parameters for some intrinsics.
6102         (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
6103         * trans-expr.c (g95_conv_function_call): Pass NULL for absent
6104         optional parameters.
6105         * trans.h (g95_se): Add ignore_optional flag.
6106
6107 2002-12-15  Paul Brook  <paul@nowt.org>
6108
6109         * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
6110         * trans-decl.c (g95_generate_function_code): Use TDI_original.
6111
6112 2002-12-14  Paul Brook  <paul@nowt.org>
6113
6114         * trans-stmt.c (g95_trans_call): Use resolved symbol name.
6115
6116 2002-12-12  Paul Brook  <paul@nowt.org>
6117
6118         * trans-array.c (g95_trans_array_constructor_subarray): Fully
6119         initialize the scalarizer.
6120         (various): Update to new format of g95_expr->value.constructor.
6121
6122 2002-12-08  Paul Brook  <paul@nowt.org>
6123
6124         * trans-array.c (g95_put_offset_into_var): New function.
6125         (g95_trans_array_constructor_subarray): New function.
6126         (g95_trans_array_constructor_value): Use it.
6127         (g95_array_cons_size): Don't abort() on array components.
6128
6129 2002-12-08  Paul Brook  <paul@nowt.org>
6130
6131         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
6132         * support.c: Update #includes.
6133         (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
6134         * trans-array.c: Update #includes.
6135         * trans.c: Ditto.
6136         * trans-const.c: Ditto.
6137         * trans-io.c: Ditto.
6138         * trans-types.c: Ditto.
6139         (g95_init_types): Set size_type_node.
6140         * trans-decl.c: Update #includes.
6141         (gfor_fndecl_adjust{l,r}): Declare and initialize.
6142         * trans-stmt.c: Update #includes.
6143         (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
6144         (g95_trans_select): Fix check for unbounded ranges.
6145         * trans-expr.c: Update #includes.
6146         (g95_conv_string_tmp): New function.
6147         (g95_conv_concat_op): Use it.
6148         * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
6149         * Trans-intrisic.c: Update #includes.
6150         (g95_conv_intrinsic_strcmp): New function.
6151         (g95_conv_intrinsic_adjust): Ditto.
6152         (g95_conv_intrinsic_function: Use them.
6153
6154 2002-11-30  Paul Brook  <paul@nowt.org>
6155
6156         * trans-array.c (g95_walk_function_expr): Handle non-array return by
6157         reference.
6158         * trans-dec.c (g95_build_function_decl): Handle character return
6159         parammeters.
6160         (g95_get_fake_result_decl): Ditto.
6161         (g95_trans_deferred_vars): Ditto.
6162         * trans-expr.c (g95_conv_function_call): Ditto.
6163         (g95_trans_arrayfunc_assign) Limit to array valued functions.
6164         * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
6165         (g95_conv_intrinsic_function): Use it.
6166         * trans-types.c (g95_sym_type): Handle functions returning strings.
6167         (g95_return_by_reference): Ditto.
6168         (g95_get_function_type): Ditto.
6169
6170 2002-11-18  Paul Brook  <paul@nowt.org>
6171
6172         * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
6173         requires a temporary.
6174         (g95_trans_select): Handle computed gotos.
6175         * trans-types.c (g95_build_array_type): Warn about non-functional
6176         assumed shape arrays.
6177         * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
6178         blocks.
6179         * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
6180         (g95_conv_intrinsic_int): New function.
6181         (g95_conv_intrinsic_mod): New function.
6182         (g95_conv_intrinsic_ichar): New function.
6183         (g95_conv_intrinsic_function): Use them.
6184         (g95_conv_intrinsic_dim): Use g95_evaluate_now.
6185
6186 2002-11-17  Toon Moene  <toon@moene.indiv.nluug.nl>
6187
6188         * trans-types.c (g95_build_array_type): Assumed
6189         sized arrays can have rank > 1.
6190         * trans.c (g95_trans_code): Remove erroneous
6191         warning about CONTINUE.
6192         * trans-expr.c (g95_conv_variable): Remove
6193         erroneous assert.
6194
6195 2002-11-15  Paul Brook  <paul@nowt.org>
6196
6197         * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
6198
6199 2002-10-31  Paul Brook  <paul@nowt.org>
6200
6201         * f95-tree.c: Remove tree copying stuff that's now in gimple.c
6202         * trans-expr.c (g95_conv_component_ref): Handle character string
6203         components.
6204         (g95_conv_string_parameter): Ditto.
6205         * trans-types.c (g95_get_derived_type): Add length decl to caracter
6206         string components.
6207
6208 2002-10-10  Paul Brook  <paul@nowt.org>
6209
6210         * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
6211         * trans-expr.c (g95_conv_function_call): Remove unreliable return value
6212         check.
6213         * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
6214         (g95_conv_intrinsic_function): Handle size and shape intrinsics.
6215         (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
6216         * trans-types.c (pvoid_type_node): Declare and initialize.
6217         * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
6218         (g95_array_allocate): Fix when base==data.
6219         (g95_conv_array_parameter): Correctly handle reduced rank sections.
6220         * trans-io.c (g95_trans_write): Correctly handle string modifiers.
6221
6222 2002-10-09  Paul Brook  <paul@nowt.org>
6223
6224         * (g95_conv_expr_reference): Handle character strings correctly.
6225
6226 2002-10-07  Paul Brook  <paul@nowt.org>
6227
6228         (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
6229         langhook.
6230         * trans-array.c (g95_build_array_initializer): Remove.
6231         (g95_conv_array_initializer): New Function.
6232         (g95_trans_auto_arry_allocation): Cleanup.
6233         (g95_trans_init_character_array): Remove.
6234         * g95spec.c: Link in libgforbegin.
6235         * trans.c (g95_generate_code): Rename main function to MAIN__.
6236         (g95_create_var): New function.
6237         (g95_create_var_np): New function.
6238         (g95_evaluate_now): New function.
6239         (g95_start_block): New function.
6240         (g95_finish_block): New function.
6241         (g95_add_expr_to_block): New function.
6242         (g95_add_block_to_block): New function.
6243         * trans-expr.c (g95_conv_componen_ref): New function.
6244         * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
6245         (F95_OBJS): Add dependency.o.
6246         * f95-lang.c (g95_is_simple_stmt): Remove.
6247         * f95-tree.c (mark_not_simple): New function.
6248         (unshare_all_trees): New function.
6249         (create_tmp_var, create_tmp_alias_var): Remove.
6250         * support.c (declare_tmp_vars, tree_last_decl): Remove.
6251         * trans*: Convert to new IR using GENERIC trees.  Don't bother about
6252         SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
6253
6254 2002-10-01  Paul Brook  <paul@nowt.org>
6255
6256         * trans-array.c: Add support for descriptorless arrays.
6257         (g95_conv_array_data): New function.
6258         (g95_conv_array_base): New function.
6259         * trans-array.h: Declare these here.
6260         * trans-decl.c(g95_create_mopdule_variable): Perform variable
6261         initialization and creation here.
6262         (g95_create_module_vars): Instead of here.
6263         * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
6264         * trans-intrinsic.c: Ditto.
6265         * trans-types.c (g95_is_nodesc_array): New function.
6266         (g95_get_nodesc_array_type): New function.
6267         (g95_sym_type, g95_get_derived_type): Use them.
6268         * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
6269
6270 2002-09-28  Paul Brook  <paul@nowt.org>
6271
6272         * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
6273         * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
6274         parameters.
6275
6276 2002-09-24  Paul Brook  <paul@nowt.org>
6277
6278         * f95-lang.c (listify): Remove declaration.
6279         (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
6280         (listify)
6281         * f95-tree.c (get_name): New function.
6282         * trans.c (module_namespace): Remove.
6283         * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
6284         * trans-types.c: Ditto.
6285
6286 2002-09-19  Paul Brook  <paul@nowt.org>
6287
6288         * trans-array.c (g95_get_array_cons_size): New Function.
6289         (g95_con_ss_startstride): Handle Array constructors.
6290         (g95_conv_loop_setup): Ditto.
6291         (g95_conv_array_parameter): Ditto.
6292         * tras-decl.c (g95_finish_var_decl): Make initializes variables
6293         static.
6294
6295 2002-09-19  Paul Brook  <paul@nowt.org>
6296
6297         * trans.c (g95_simple_fold_tmp): Detect variables inside
6298         NON_LVALUE_EXPR.
6299         * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
6300
6301 2002-09-18  Steven Bosscher <s.bosscher@student.tudelft.nl>
6302
6303         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
6304
6305 2002-09-14  Paul Brook  <paul@nowt.org>
6306
6307         * trans.c (g95_create_module_variable): Move to trans-decl.c.
6308         * trans-const.c (g95_conv_string_init): New Function.
6309         * trans-const.h: Declare it.
6310         * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
6311         variables. Don't bail on intrinsic symbols.
6312         (get_extern_function_decl): Handle specific intrinsic functions.
6313         * trans-types.c (g95_sym_type): Dummy functions don't return
6314         reference types.
6315         * trans-array.c (g95_build_array_initializer): New Function.
6316         (g95_trans_auto_array_allocation): Build initializer for static decls.
6317         Don't use mpz_addmul, it's GMP4 only.
6318
6319 2002-09-12  Paul Brook  <paul@nowt.org>
6320
6321         * trans-decl.c (g95_generate_code): Fix thinko with return variable.
6322         (g95_get_extern_function_decl, g95_build_function_decl): Mangle
6323         assembler names for module procedures.
6324
6325 2002-09-11  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
6326
6327         * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
6328         dependency/
6329
6330 2002-09-10  Paul Brook  <paul@nowt.org>
6331
6332         * trans-array.c: Change format of G95_SS_TEMP strictures.
6333         (g95_check_fncall_dependancy): New function.
6334         (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
6335         offsets.
6336         * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
6337         result variables.
6338         (g95_build_function_decl): Don't assume result arrays are packed.
6339         (g95_trans-deferred-vars): Handle array result variables.
6340         (g95_generate_fuction_code): Clear saved_function_decls.
6341         * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
6342         reference.
6343         (g95_trans_arrayfunc_assign): New function.
6344         (g95_trans_assignment): Use it.
6345         * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
6346         (g95_se): Add direct_byref.
6347         * trans-types.c: Use sym->result rather than sym where appropriate.
6348         * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
6349         Update other functions to use this.
6350         (g95_is_intrinsic_libcall): New function.
6351         (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
6352         (g95_walk_intrinsic_function): Ditto.
6353
6354 2002-09-08  Paul Brook  <paul@nowt.org>
6355
6356         * trans-types.c: Change rank field to dtype field in array descriptor.
6357         * trans-array.c: Implement filling of dtype array descriptor field.
6358         * trans-intrinsic.c: Fix broken LEN intrinsic.
6359
6360 2002-09-07  Paul Brook  <paul@nowt.org>
6361
6362         * trans-intrinsic.c: Remove outdated todo intrinsic list.
6363         (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
6364         (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
6365
6366 2002-09-06  Paul Brook  <paul@nowt.org>
6367
6368         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
6369         (gt-f95-trans-types.h): Add dependancy information.
6370         * config-lang.in (gtfiles): Add trans-types.c
6371         * f95-lang.c (g95_be_parse_file): Pass error and warning counts
6372         back to top-level code.
6373         * trans-array.c, trans-types.c: Change format of array descriptor.
6374         (g95_conv_descriptor_dimension): New function.
6375         * trans-types.h (g95_conv_descriptor_rank): define.
6376         * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
6377         intrinsics.
6378
6379 2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
6380
6381         * trans-array.c, trans-types.c: Add rank information to descriptor.
6382
6383 2002-09-06  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
6384
6385         * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
6386
6387 2002-09-04  Paul Brook  <paul@nowt.org>
6388
6389         * f95-lang.c (g95_create_decls): New function.
6390         (g95_init):  Move initialization of external decls to above, and call
6391         from g95_be_parse_file.
6392         * trans.c (g95_finish_stmt): Don't amputate the decl chain.
6393         * trans-types.c (g95_init_types): Always name integer and char types.
6394         (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
6395
6396 2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
6397
6398         * Make-lang.in: Add options.c to F95_PARSER_OBJS
6399
6400 2002-09-02  Paul Brook  <paul@nowt.org>
6401
6402         * g95_generate_code: Clear the attr for __fortran_main.
6403         * trans-types.c (g95_finish_type): New function.
6404         * g95_init_io_state_type: Use g95_finish_type.
6405         * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
6406
6407 2002-09-01  Paul Brook  <paul@nowt.org>
6408
6409         * README.backend: Warn about the dangers of extra config.h files.
6410         Remove obsolete libgfor stuff.
6411         * config-lang.in: Add target-libgfor dependancy.
6412         * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
6413
6414 2002-09-01  Toon Moene  <toon@moene.indiv.nluug.nl>
6415
6416         * g95_conv_mpz_to_tree: Free storage pointed to by q,
6417         not by buff.
6418
6419 2002-08-30  Paul Brook  <paul@nowt.org>
6420
6421         * trans-intrinsic.c (g95_conv_intrinsic_function,
6422         g95_walk_intrinsic_function): Added ANY and ALL.
6423         (g95_conv_intrinsic_anyall): New function.
6424         * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
6425         mangled name