OSDN Git Service

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