OSDN Git Service

4260ff4ee6ddf0fc0ec4b6887e6bb2be176c525d
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2
3         PR fortran/17283
4         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
5         is scalar.
6
7         PR fortran/17631
8         * intrinsic.c (add_sym_5): Remove.
9         (add_subroutines): Add resolution function for MVBITS.
10         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
11         MVBITS
12         * iresolve.c (gfc_resolve_mvbits): New function.
13         (gfc_resolve_random_number): Remove empty line at end of function.
14
15         * trans-const.c (gfc_build_cstring_const): New function.
16         (gfc_init_cst): Use new function.
17         * trans-const.h (gfc_build_cstring_const): Add prototype.
18         * trans-io.c (set_string, set_error_locus): Use new function.
19         * trans-stmt.c (gfc_trans_goto): Use new function.
20         
21         PR fortran/17708
22         * parse.c (accept_statement): Don't treat END DO like END IF and
23         END SELECT.
24         (parse_do_block): Generate possible END DO label inside END DO
25         block.
26
27         PR fortran/17776
28         * check.c (gfc_check_system_sub): New function.
29         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
30         * intrinsic.c (add_functions): Add 'system'.
31         (add_subroutines): Add 'system'.
32         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
33         Move prototypes to other suborutines.
34         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
35         Add prototype.
36         (gfc_resolve_system_clock): Fix formatting of prototype.
37         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
38         functions.
39         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
40         GFC_ISYM_SYSTEM.
41
42 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
43
44         * scanner.c (preprocessor_line): Accept preprocessor lines without
45         file names.  Check file names for closing quotes.  Handle escaped
46         quotes in file names.
47
48 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
49         Paul Brook  <paul@codesourcery.com>
50
51         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
52         Use gfc_get_expr_charlen.
53         * trans-expr.c (gfc_get_expr_charlen): New function.
54         * trans.h (gfc_get_expr_charlen): Add prototype.
55
56 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
57
58         * trans-intrinsic.c: Fix a comment typo.
59
60 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
61
62         * simplify.c (range_check): Remove blank line at beginning of function.
63         (gfc_simplify_dint): Same at end of function.
64         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
65         (gfc_simplify_bound): Fix indentation.
66         (gfc_simplify_log10): Simplify calculation.
67         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
68         of function.
69         (gfc_simplify_nearest): Same at end of function.
70         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
71         function.
72         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
73         gfc_simplify_spacing): Simplify calulations.
74
75 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
76
77         * trans-intrinsic.c: Fix comments on spacing and rrspacing
78         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
79
80 2004-10-01  Jan Hubicka  <jh@suse.cz>
81
82         * f95-lang.c (gfc_expand_function): Update call of
83         tree_rest_of_compilation.
84         * trans-decl.c (gfc_generate_constructors): Likewise.
85
86 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
87
88         * trans-intrinsic.c: Comment fixes.
89
90 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
91
92         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
93
94 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
95
96         * trans-types.c (gfc_return_by_reference): Remove superfluous
97         assertion.
98
99         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
100         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
101
102         PR fortran/17615
103         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
104         function to determine return type.
105         
106 2004-09-20  Jan Hubicka  <jh@suse.cz>
107
108         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
109         tree.
110         (gfc_generate_function_code): Likewise.
111
112 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
113
114         PR fortran/15957
115         * simplify.c (gfc_simplify_reshape): Set shape of return value
116         correctly.
117
118 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
119             Zack Weinberg  <zack@codesourcery.com>
120
121         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
122         enumeration constants.
123
124 2004-09-17  Paul Brook  <paul@codesourcery.com>
125
126         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
127         (gfc_linebuf_header_size): Define.
128         * scanner.c (load_file): Use it.
129
130 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
131
132         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
133         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
134         resolve.c, scanner.c, trans-array.c, trans-array.h,
135         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
136         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
137         trans.h: Fix comment typos.  Follow spelling conventions.
138
139 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
140
141         PR/15364
142         * trans-io.c (transfer_array_component): New function.
143         (transfer_expr): For array fields, call transfer_array_component.
144
145 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
146
147         * gfortran.texi: Fix a typo.
148
149 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
150
151         * parse.c (eof_buf): Rename eof to eof_buf.
152         (unexpected_eof): Same.
153         (gfc_parse_file): Same.
154
155 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
156
157         * check.c (gfc_check_getcwd_sub): New function.
158         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
159         * intrinsic.c (add_functions): Add function definition;
160         Use symbol.
161         * intrinsic.c (add_subroutines): Add subroutine definitions.
162         * intrinsic.h: Add prototypes.
163         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
164         New functions.
165         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
166
167 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
168
169         PR fortran/16485
170         * module.c (write_symbol): Don't fill in module name here.
171         (write_symbol0): Fill in here instead.
172
173 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
174
175         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
176         trans-array.c, trans-common.c, trans-expr.c,
177         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
178         comment typos.  Follow spelling conventions.
179
180 2004-09-09  Paul Brook  <paul@codesourcery.com>
181
182         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
183
184 2004-09-08  Paul Brook  <paul@codesourcery.com>
185
186         * array.c: Don't include assert.h.
187         * data.c: Don't include assert.h.  Replace assert and abort with
188         gcc_assert and gcc_unreachable.
189         * dependency.c: Ditto.
190         * f95-lang.c: Ditto.
191         * iresolve.c: Ditto.
192         * resolve.c: Ditto.
193         * simplify.c: Ditto.
194         * symbol.c: Ditto.
195         * trans-array.c: Ditto.
196         * trans-common.c: Ditto.
197         * trans-const.c: Ditto.
198         * trans-decl.c: Ditto.
199         * trans-expr.c: Ditto.
200         * trans-intrinsic.c: Ditto.
201         * trans-io.c: Ditto.
202         * trans-stmt.c: Ditto.
203         * trans-types.c: Ditto.
204         * trans.c: Ditto.
205
206 2004-09-07  Per Bothner  <per@bothner.com>
207         Paul Brook  <paul@codesourcery.com>
208
209         * error.c (show_locus): Handle mapped locations.
210         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
211         * gfortran.h: Include input.h.
212         (struct gfc_linebuf): Use source_location.
213         * scanner.c (get_file): Initialize linemap.
214         (preprocessor_line): Pass extra argument to get_file.
215         (load_file): Ditto.  Setup linemap.
216         (gfc_new_file): Handle mapped locations.
217         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
218         Set decl source locations.
219         (gfc_trans_common): Set blank common block location.
220         * trans-decl.c (gfc_set_decl_location): New function.
221         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
222         (trans_function_start): Move call to gfc_set_backend_locus..
223         (build_function_decl): ... to here.
224         (build_entry_thunks): Set and restore the backend locus.
225         (gfc_generate_constructors): Remove excess arguments to
226         init_function_start.
227         (gfc_generate_block_data): Add comments.  Set the decl locus.
228         * trans-io.c (set_error_locus): Handle mapped locations.
229         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
230         (gfc_trans_code): Use SET_EXPR_LOCATION.
231         (gfc_generate_code): Override the location of the new symbol.
232         * trans.h (gfc_set_decl_location): Add prototype.
233
234 2004-08-31  Paul Brook  <paul@codesourcery.com>
235
236         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
237
238 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
239
240         PR fortran/15327
241         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
242         strings.
243
244 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
245
246         PR fortran/16400
247         PR fortran/16404
248         (port from g95)
249         * resolve.c (resolve_transfer): New function.
250         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
251
252 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
253
254         PR fortran/16579
255         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
256         unsigned char.
257
258 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
259
260         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
261
262 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
263
264         PR fortran/17244
265         * trans-types.c (gfc_return_by_reference): Remove TODO error,
266         add comment pointing out possible issue WRT compatibility with g77.
267
268 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
269
270         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
271         all occurences of 'gfc_strlen_type_node' by
272         'gfc_charlen_type_node'.
273         * trans-types.h: Same. Also update comment accordingly.
274
275 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
276
277         * primary.c: Update copyright boilerplate to say GCC.
278         * f95-lang.c: Change initial comment to say gfortran.
279
280 2004-08-31  Paul Brook  <paul@codesourcery.com>
281
282         * trans-types.h: Add comments.
283         (intmax_type_node, string_type_node, const_string_type_node): Remove.
284
285 2004-08-30  Richard Henderson  <rth@redhat.com>
286
287         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
288         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
289         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
290         c_long, c_long_long.
291         (gfc_logical_info): Add c_bool.
292         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
293         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
294         rather than gfc_int[48]_type_node for allocate choice.
295         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
296         local copies of some kind type nodes.
297         (gfc_build_builtin_function_decls): Likewise.
298         * trans-expr.c (gfc_conv_power_op): Likewise.
299         * trans-intrinsic.c (gfc_conv_intrinsic_index,
300         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
301         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
302         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
303         gfc_trans_character_select, gfc_trans_allocate): Likewise.
304         * trans-io.c (gfc_pint4_type_node): Move into ...
305         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
306         some kind type nodes.
307         * trans-types.c (gfc_type_nodes): Remove.
308         (gfc_character1_type_node, gfc_strlen_type_node): New.
309         (gfc_integer_types, gfc_logical_types): New.
310         (gfc_real_types, gfc_complex_types): New.
311         (gfc_init_kinds): Fill in real mode_precision.
312         (gfc_build_int_type, gfc_build_real_type): New.
313         (gfc_build_complex_type, gfc_build_logical_type): New.
314         (c_size_t_size): New.
315         (gfc_init_types): Loop over kinds.
316         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
317         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
318         (gfc_get_character_type_len): Likewise.
319         (gfc_type_for_size): Loop over kinds; use a reduced set of
320         unsigned type nodes.
321         (gfc_type_for_mode): Loop over kinds.
322         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
323         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
324         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
325         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
326         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
327         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
328         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
329         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
330         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
331         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
332         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
333         gfc_complex8_type_node, gfc_complex16_type_node,
334         gfc_logical1_type_node, gfc_logical2_type_node,
335         gfc_logical4_type_node, gfc_logical8_type_node,
336         gfc_logical16_type_node, gfc_strlen_kind): Remove.
337         (gfc_character1_type_node): Turn in to a variable.
338         (gfc_strlen_type_node): Likewise.
339
340 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
341
342         * gfortran.h (gfc_namespace): Add new field is_block_data.
343         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
344         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
345         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
346         * trans.h (gfc_generate_block_data): Add prototype.
347         * trans-decl.c (gfc_generate_block_data): New function.
348
349 2004-08-29  Richard Henderson  <rth@redhat.com>
350
351         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
352         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
353         than two HOST_WIDE_INT.
354
355 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
356
357         PR fortran/13910
358         * decl.c (free_variable, free_value, gfc_free_data, var_list,
359         var_element, top_var_list, match_data_constant, top_val_list,
360         gfc_match_data): Move here from match.c.
361         (match_old_style_init): New function.
362         (variable_decl): Match old-style initialization.
363         * expr.c (gfc_get_variable_expr): New function.
364         * gfortran.h (gfc_get_variable_expr): Add prototype.
365         * gfortran.texi: Start documentation for supported extensions.
366         * match.c: Remove the functions moved to decl.c.
367         * match.h (gfc_match_data): Move prototype to under decl.c.
368         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
369         comments.
370
371 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
372         Paul Brook  <paul@codesourcery.com>
373
374         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
375         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
376         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
377         (build_builtin_fntypes): New function.
378         (gfc_init_builtin_functions): Use it.
379         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
380         and GFC_ISYM_ERF{,C}.
381         (gfc_c_int_kind): Declare.
382         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
383         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
384         gfc_resolve_g77_math1): Add prototypes.
385         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
386         * mathbuiltins.def: Add comment.  Change third argument.  Use
387         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
388         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
389         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
390         * trans-types.c (gfc_c_int_kind): Declare.
391         (gfc_init_kinds): Set it.
392
393 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
394         Paul Brook  <paul@codesourcery.com>
395
396         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
397         (gfc_check_f, gfc_simplify_f): Add f0.
398         * intrinsic.c (do_check): Call f0.  Flatten.
399         (add_sym_0): Fix prototype.  Set f0.
400         (add_functions): Add getgid, getgid and getuid.
401         (resolve_intrinsic): Remove obsolete comment.
402         (do_simplify): Call f0.
403         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
404         gfc_resolve_getuid): Add prototypes.
405         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
406         gfc_resolve_getuid): New functions.
407         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
408         GFC_ISYM_GET?ID.
409
410 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
411
412         * error.c (gfc_error_init_1): Remove blank line in front of
413         function body. Add missing blank.
414         (gfc_buffer_error, error_char, error_string): Remove blank line in
415         front of function body.
416         (show_locus): Add comma in comment.
417         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
418         gfc_push_error, gfc_pop_error): Remove blank line in front of
419         function body.
420         (gfc_get_errors): Typo fix in comment in front of function. Remove
421         blank line in front of function body.
422
423 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
424
425         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
426         variable declaration of same name.
427         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
428         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
429         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
430         Replace all calls to gfc_default_*_kind with variable accesses.
431         * trans-types.c: Same as above.
432         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
433         static qualifier. Replace all occurences.
434         (gfc_default_*_kind): Remove functions.
435
436 2004-08-26  Richard Henderson  <rth@redhat.com>
437
438         * arith.c: Include system.h, not real system headers.
439         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
440         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
441         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
442         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
443         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
444         gfc_index_integer_kind, gfc_default_integer_kind,
445         gfc_default_real_kind,gfc_default_double_kind,
446         gfc_default_character_kind, gfc_default_logical_kind,
447         gfc_default_complex_kind, validate_integer, validate_real,
448         validate_logical, validate_character,
449         gfc_validate_kind): Move to trans-types.c.
450         (gfc_set_model_kind): Use gfc_validate_kind.
451         (gfc_set_model): Just copy the current precision to default.
452         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
453         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
454         * gfortran.h: Update file commentary.
455         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
456         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
457         gfc_default_double_kind_1, gfc_default_character_kind_1,
458         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
459         (gfc_init_kinds): New.
460         (gfc_init_types): Don't set gfc_index_integer_kind here.
461         * trans-types.h (gfc_init_kinds): Declare.
462         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
463
464 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
465
466         * check.c (gfc_check_atan2): New function.
467         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
468         * intrinsic.h (gfc_check_atan2): Add prototype.
469
470 2004-08-25  Richard Henderson  <rth@redhat.com>
471
472         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
473         false and we don't validate the kind.
474         (gfc_check_integer_range, gfc_check_real_range): Update to match.
475         * check.c (kind_check): Likewise.
476         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
477         (match_char_spec, match_logical_spec): Likewise.
478         * gfortran.h (gfc_validate_kind): Likewise.
479         * options.c (gfc_handle_option): Likewise.
480         * primary.c (match_integer_constant, match_real_constant,
481         match_string_constant, match_logical_constant,
482         match_const_complex_part): Likewise.
483         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
484         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
485         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
486         gfc_simplify_maxexponent, gfc_simplify_minexponent,
487         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
488         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
489         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
490         gfc_simplify_tiny): Likewise.
491         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
492         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
493         prepare_arg_info): Likewise.
494
495 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
496
497         * expr.c (gfc_check_assign): Add comment. Add new warning.
498         * trans-expr.c (gfc_conv_function_call): Correctly dereference
499         result of pointer valued function when not in pointer assignment.
500
501 2004-08-25  Paul Brook  <paul@codesourcery.com>
502
503         * config-lang.in: Remove dead commented line.
504         * module.c: Replace g95 with gfortran in comment.
505
506 2004-08-25  Paul Brook  <paul@codesourcery.com>
507
508         PR fortran/17190
509         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
510
511 2004-08-25  Paul Brook  <paul@codesourcery.com>
512
513         PR fortran/17144
514         * trans-array.c (gfc_trans_allocate_temp_array): Remove
515         string_length argument.
516         (gfc_trans_array_ctor_element): New function.
517         (gfc_trans_array_constructor_subarray): Use it.
518         (gfc_trans_array_constructor_value): Ditto.  Handle constant
519         character arrays.
520         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
521         (gfc_trans_array_constructor): Use them.
522         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
523         (gfc_conv_ss_descriptor): Remember section string length.
524         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
525         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
526         (gfc_conv_expr_descriptor): Ditto.
527         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
528         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
529         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
530         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
531         (gfc_conv_variable): Set string_length from section.
532         (gfc_conv_function_call): Remove extra argument.
533         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
534         * trans-types.c (gfc_get_character_type_len): New function.
535         (gfc_get_character_type): Use it.
536         (gfc_get_dtype): Return zero for internal types.
537         * trans-types.h (gfc_get_character_type_len): Add prototype.
538         * trans.h (struct gfc_ss): Move string_length out of union.
539
540 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
541
542         * trans.h (build2_v, build3_v): New macros.
543         (build_v): Remove.
544         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
545         build.
546         * trans-array.c (gfc_conv_descriptor_data,
547         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
548         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
549         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
550         gfc_trans_allocate_temp_array,
551         gfc_trans_array_constructor_subarray,
552         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
553         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
554         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
555         gfc_conv_array_ref, gfc_trans_preloop_setup,
556         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
557         gfc_conv_loop_setup, gfc_array_init_size,
558         gfc_conv_array_initializer, gfc_trans_array_bounds,
559         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
560         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
561         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
562         of build and build_v as appropriate.
563         * trans-common.c (create_common): Same.
564         * trans-decl.c (gfc_trans_auto_character_variable,
565         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
566         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
567         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
568         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
569         gfc_conv_expr_op, gfc_conv_function_call,
570         gfc_trans_structure_assign): Same.
571         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
572         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
573         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
574         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
575         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
576         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
577         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
578         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
579         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
580         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
581         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
582         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
583         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
584         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
585         gfc_conv_intrinsic_iargc): Same.
586         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
587         set_flag, add_case, io_result, transfer_namelist_element,
588         transfer_expr): Same.
589         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
590         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
591         gfc_trans_integer_select, gfc_trans_logical_select,
592         gfc_trans_character_select, gfc_trans_forall_loop,
593         gfc_trans_nested_forall_loop, gfc_do_allocate,
594         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
595         compute_inner_temp_size, compute_overall_iter_number,
596         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
597         gfc_trans_forall_1, gfc_evaluate_where_mask,
598         gfc_trans_where_assign, gfc_trans_allocate): Same.
599         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
600         * trans.c (gfc_add_modify_expr, gfc_finish_block,
601         gfc_build_array_ref, gfc_build_function_call,
602         gfc_trans_runtime_check): Same.
603
604 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
605
606         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
607         build_int_cst to build_int_cst_wide in accordance to Nathan's
608         previous patch.
609
610 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
611
612         * trans-array.c (gfc_trans_array_constructor_value): Adjust
613         build_int_cst calls.
614         * trans-const.c (gfc_build_string_const, gfc_init_constants,
615         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
616         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
617         gfc_trans_entry_master_switch): Likewise.
618         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
619         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
620         * trans-io.c (add_case, set_error_locus,
621         transfer_namelist_element, transfer_expr): Likewise.
622         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
623         gfc_trans_stop, gfc_trans_character_select): Likewise.
624         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
625         * trans.c (gfc_trans_runtime_check): Likewise.
626
627 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
628
629         * trans-decl.c, trans-types.c: Add and remove blank lines as
630         required.
631
632 2004-08-24  Richard Henderson  <rth@redhat.com>
633
634         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
635
636 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
637
638         * resolve.c (merge_argument_lists): Revert unintentionally
639         committed change.
640
641 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
642
643         * trans-decl.c (build_function_decl): Fix spelling in comment.
644         (build_entry_thunks): Remove code with no function.
645         (gfc_build_intrinsic_function_decls): Remove empty line.
646
647         * resolve.c (resolve_entries): Fix a bunch of comment typos.
648
649 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
650
651         * f95-lang.c (gfc_init_decl_processing): Adjust
652         build_common_tree_nodes call.
653
654 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
655
656         * trans-types.c: Spelling and formatting fixes.
657
658 2004-08-23  Richard Henderson  <rth@redhat.com>
659
660         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
661         of going through an intermediate string.  Fix 32/64 int/long bug.
662
663 2004-08-23  Eric Christopher  <echristo@redhat.com>
664
665         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
666         usage. Use build_vector_type_for_mode for vector types.
667
668 2004-08-22  Richard Henderson  <rth@redhat.com>
669
670         PR 13465
671         * data.c (find_con_by_offset): Search ordered list; handle
672         elements with repeat counts.
673         (gfc_assign_data_value_range): New.
674         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
675         (gfc_assign_data_value_range): Declare.
676         * match.c (top_val_list): Extract repeat count into a temporary.
677         * resolve.c (values): Make left unsigned.
678         (next_data_value): Don't decrement left.
679         (check_data_variable): Use gfc_assign_data_value_range.
680
681 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
682
683         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
684
685 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
686
687         * check.c (gfc_check_reduction): Rename to ...
688         (check_reduction): ... this. Make static. Don't check type of
689         first argument.
690         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
691         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
692         SUM to use new check functions.
693         (check_specific): Change logic to call new functions.
694         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
695         Add prototypes.
696         (gfc_check_reduction): Remove prototype.
697
698 2004-08-20  Paul Brook  <paul@codesourcery.com>
699         Canqun Yang  <canqun@nudt.edu.cn>
700
701         PR fortran/17077
702         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
703         for automatic arrays.
704         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
705
706 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
707         (Port from g95)
708
709         PR fortran/17074
710         * match.c (match_simple_forall, match_simple_where): Forward-declare.
711         (gfc_match_if): Order statement list alphabetically, add WHERE and
712         FORALL, remove double PAUSE.
713         (gfc_match_simple_where, match_forall_header,
714         gfc_match_simple_forall): New functions.
715         (gfc_match_forall): Use match_forall_header.
716
717 2004-08-19  Paul Brook  <paul@codesourcery.com>
718
719         PR fortran/17091
720         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
721         * symbol.c (gfc_clear_attr): Use memset.
722
723 2004-08-19  Paul Brook  <paul@codesourcery.com>
724
725         PR fortran/14976
726         PR fortran/16228
727         * data.c (assign_substring_data_value): Remove.
728         (create_character_intializer): New function.
729         (gfc_assign_data_value): Track the typespec for the current
730         subobject.  Use create_character_intializer.
731
732 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
733
734         PR fortran/16946
735         * check.c (gfc_check_reduction): New function.
736         (gfc_check_minval_maxval): Removed.
737         (gfc_check_product): Removed.
738         (gfc_check_sum): Removed.
739         * intrinsic.h: Add/remove declarations for these.
740         * gfortran.h: Add field f3red to union gfc_check_f.
741         * intrinsic.c (add_sym_3red): New function.
742         (add_functions): Register maxval, minval, product, and sum intrinsics
743         through add_sym_3red.
744         (check_specific): Handle f3red union field.
745         * iresolve.c: Whitespace change.
746
747 2004-08-18  Paul Brook  <paul@codesourcery.com>
748
749         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
750
751 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
752
753         PR fortran/13278
754         * trans-io.c (transfer_namelist_element): New. Recursively handle
755         derived-type variables.  Pass string lengths.
756         (build_dt): Code moved to build_namelist, with some
757         changes and additions.
758         (gfc_build_io_library_fndecls): Declare the fifth
759         argument in st_set_nml_var_char -- string_length.
760
761 2004-08-17  Paul Brook  <paul@codesourcery.com>
762         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
763
764         PR fortran/13082
765         * decl.c (get_proc_name): Update mystery comment.
766         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
767         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
768         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
769         (struct gfc_entry_list): Define.
770         (gfc_get_entry_list): Define.
771         (struct gfc_namespace): Add refs and entries.
772         (enum gfc_exec_op): Add EXEC_ENTRY.
773         (struct gfc_code): Add ext.entry.
774         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
775         (mio_symbol_attribute): Don't save/reture addr->entry.
776         (mio_namespace_ref): Refcount namespaces.
777         * parse.c (accept_statement): Handle ST_ENTRY.
778         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
779         (parse_contained): Fixup sibling references to entry points
780         after parsing the procedure body.
781         * resolve.c (resolve_contained_fntype): New function.
782         (merge_argument_lists, resolve_entries): New functions.
783         (resolve_contained_functions): Use them.
784         (resolve_code): Handle EXEC_ENTRY.
785         (gfc_resolve): Call resolve_entries.
786         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
787         * symbol.c (gfc_get_namespace): Refcount namespaces.
788         (gfc_free_namespace): Ditto.
789         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
790         optional when multiple entry points are present.
791         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
792         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
793         (create_function_arglist, trans_function_start, build_entry_thunks):
794         New functions.
795         (gfc_build_function_decl): Rename ...
796         (build_function_decl): ... to this.
797         (gfc_create_function_decl): New function.
798         (gfc_generate_contained_functions): Use it.
799         (gfc_trans_entry_master_switch): New function.
800         (gfc_generate_function_code): Use new functions.
801         * trans-stmt.c (gfc_trans_entry): New function.
802         * trans-stmt.h (gfc_trans_entry): Add prototype.
803         * trans-types.c (gfc_get_function_type): Add entry point argument.
804         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
805         (gfc_generate_module_code): Call gfc_create_function_decl.
806         * trans.h (gfc_build_function_decl): Remove.
807         (gfc_create_function_decl): Add prototype.
808
809 2004-08-15  Andrew Pinski  <apinski@apple.com>
810
811         PR fortran/17030
812         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
813         for cabs{,f} and copysign{,f}.
814         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
815         (gfor_fndecl_math_cabs): Delete.
816         (gfor_fndecl_math_sign4): Delete.
817         (gfor_fndecl_math_sign8): Delete.
818         (gfc_build_intrinsic_function_decls): Remove the
819         initializing of cabs{,f} and copysign{,f} functions.
820         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
821         instead of the functions definitions.
822         (gfc_conv_intrinsic_sign): Likewise.
823         * trans.h (gfor_fndecl_math_cabsf): Delete.
824         (gfor_fndecl_math_cabs): Delete.
825         (gfor_fndecl_math_sign4): Delete.
826         (gfor_fndecl_math_sign8): Delete.
827
828 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
829
830         * trans-array.c (gfc_trans_array_constructor_value): Use
831         build_int_cst.
832         * trans-const.c (gfc_build_string_const,
833         gfc_init_constants, gfc_conv_mpz_to_tree,
834         gfc_conv_constant_to_tree): Likewise.
835         * trans-decl.c (gfc_get_symbol_decl): Likewise.
836         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
837         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
838         * trans-io.c (add_case, set_error_locus, build_dt,
839         transfer_expr): Likewise.
840         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
841         gfc_trans_stop, gfc_trans_character_select): Likewise.
842         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
843         * trans.c (gfc_trans_runtime_check): Likewise.
844
845 2004-08-14  Paul Brook  <paul@codesourcery.com>
846
847         * trans-decl.c (gfc_build_function_decl): Remove dead code.
848
849 2004-08-14  Paul Brook  <paul@codesourcery.com>
850
851         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
852
853 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
854
855         * gfortran.h: Add comments.
856         * parse.c (parse_contained): Fix comment typo.
857         * resolve.c (was_declared): Ditto.
858         * symbol.c: Ditto.
859
860 2004-08-11  Paul Brook  <paul@codeourcery.com>
861
862         PR fortran/16917
863         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
864
865 2004-08-10  Richard Henderson  <rth@redhat.com>
866
867         * f95-lang.c (gfc_init_builtin_functions): Remove
868          __builtin_stack_alloc, add __builtin_alloca.
869         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
870         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
871
872 2004-08-10  Paul Brook  <paul@codesourcery.com>
873
874         * trans-io.c (transfer_expr): Handle pointters.
875
876 2004-08-10  Paul Brook  <paul@codesourcery.com>
877
878         PR fortran/16919
879         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
880         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
881         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
882         Handle GFC_SS_COMPONENT.
883         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
884         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
885         Use ss->shape.
886         (gfc_conv_array_initializer): Call specific initializer routines.
887         * trans-expr.c (gfc_trans_structure_assign): New function.
888         (gfc_trans_subarray_assign): New function.
889         (gfc_trans_subcomponent_assign): New fucntion
890         (gfc_conv_structure): Use them.
891         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
892         (gfc_ss): Add shape.
893
894 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
895
896         * simplify.c (gfc_simplify_shape): Bugfix.
897         * expr.c (gfc_copy_shape_excluding): New function.
898         * gfortran.h (gfc_get_shape): Bugfix.
899         (gfc_copy_shape_excluding): Added declaration.
900         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
901         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
902         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
903         time resolution of shape.
904
905 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
906
907         * intrinsic.c (add_subroutines): Add getenv and
908         get_environment_variable. (add_sym_5s): New function.
909         * intrinsic.h (gfc_resolve_get_environment_variable): Add
910         prototype.
911         * iresolve.c (gfc_resolve_get_environment_variable): New
912         function.
913
914 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
915
916         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
917         __builtin_pow[f] arguments.
918
919 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
920
921         * arith.c: Add #define for model numbers.  Remove global GMP variables.
922         (natural_logarithm,common_logarithm,exponential,sine,
923         cosine,arctangent,hypercos,hypersine ): Remove.
924         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
925         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
926         gfc_check_real_range, gfc_constant_result, gfc_range_check,
927         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
928         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
929         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
930         gfc_convert_complex,gfc_int2real,gfc_int2complex,
931         gfc_real2int,gfc_real2real,gfc_real2complex,
932         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
933         to MPFR, use new functions.
934         * arith.h: Remove extern global variables.
935         (natural_logarithm,common_logarithm,exponential, sine, cosine,
936         arctangent,hypercos,hypersine): Remove prototypes.
937         (arctangent2): Update prototype from GMP to MPFR.
938         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
939         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
940         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
941         * gfortran.h (GFC_REAL_BITS): Remove.
942         (arith): Add ARITH_NAN.
943         Include mpfr.h.  Define GFC_RND_MODE.
944         Rename GCC_GFORTRAN_H GFC_GFC_H.
945         (gfc_expr): Convert GMP to MPFR.
946         * module.c: Add arith.h, correct type in comment.
947         (mio_gmp_real): Convert GMP to MPFR.
948         (mio_expr):  Use gfc_set_model_kind().
949         * primary.c:  Update copyright date with 2004.
950         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
951         * simplify.c: Remove global GMP variables
952         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
953         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
954         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
955         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
956         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
957         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
958         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
959         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
960         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
961         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
962         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
963         gfc_simplify_rrspacing,gfc_simplify_scale,
964         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
965         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
966         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
967         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
968         Use new functions.
969         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
970         gfc_conv_mpf_to_tree.  Convert it to use MPFR
971         (gfc_conv_constant_to_tree): Use it.
972         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
973         * trans-intrinsic.c: Add arith.h, remove gmp.h
974         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
975
976 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
977         Paul Brook  <paul@codesourcery.com>
978
979         * trans-array.c (gfc_trans_allocate_array_storage,
980         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
981         gfc_conv_loop_setup): For functions, if the shape of the result
982         is not known in compile-time, generate an empty array descriptor for
983         the result and let the callee to allocate the memory.
984         (gfc_trans_dummy_array_bias): Do nothing for pointers.
985         (gfc_conv_expr_descriptor): Use function return values directly.
986         * trans-expr.c (gfc_conv_function_call): Always add byref call
987         insn to pre chain.
988         (gfc_trans_pointer_assignment): Add comments.
989         (gfc_trans_arrayfunc_assign): Don't chain on expression.
990
991 2004-08-01  Roger Sayle  <roger@eyesopen.com>
992
993         * options.c (gfc_init_options): Don't warn about the use GNU
994         extensions by default.
995         (gfc_post_options): Warn about GNU extensions with -pedantic.
996         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
997
998 2004-07-30  Richard Henderson  <rth@redhat.com>
999
1000         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
1001         for TREE_CONSTANTs.
1002
1003 2004-07-25  Richard Henderson  <rth@redhat.com>
1004
1005         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
1006         and DECL_IGNORED_P on RESULT_DECL.
1007         (gfc_generate_constructors): Likewise.
1008
1009 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1010
1011         PR fortran/16465
1012         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
1013         options.
1014         (ffixed-line-length-80, ffixed-line-length-132): Remove.
1015         * options.c (gfc_handle_options): Deal with changed options.
1016         * scanner.c (load_line): Change second arg to 'char **',
1017         allocate if pointing to NULL. Keep track of buffer's length.
1018         Adapt buffer size to overlong lines. Pad lines to full length
1019         in fixed form.
1020         (load_file): Adapt to new interface of load_line.
1021
1022 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
1023
1024         * trans.h (builtin_function): Declare.
1025
1026 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1027
1028         PR fortran/16404
1029         (parts ported from g95)
1030         * parse.h (gfc_state_data): New field do_variable.
1031         (gfc_check_do_variable): Add prototype.
1032         * parse.c (push_state): Initialize field 'do_variable'.
1033         (gfc_check_do_variable): New function.
1034         (parse_do_block): Remember do iterator variable.
1035         (parse_file): Initialize field 'do_variable'.
1036         * match.c (gfc_match_assignment, gfc_match_do,
1037         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
1038         Add previously missing checks.
1039         (gfc_match_return): Reformat error message.
1040         * io.c (match_out_tag): New function.
1041         (match_open_element, match_close_element,
1042         match_file_element, match_dt_element): Call match_out_tag
1043         instead of match_vtag where appropriate.
1044         (match_io_iterator, match_io_element): Add missing check.
1045         (match_io): Reformat error message.
1046         (match_inquire_element): Call match_out_tag where appropriate.
1047
1048         * parse.c (gfc_check_do_variable): Fix error locus.
1049
1050 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1051
1052         PR fortran/15129
1053         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
1054         for every assumed length character dummy argument.
1055
1056         PR fortran/15140
1057         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
1058
1059         PR fortran/13792
1060         * simplify.c (gfc_simplify_bound): Copy the bound expression.
1061
1062 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1063
1064         PR fortran/15324
1065         * trans-array.c gfc_trans_g77_array,
1066         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
1067         for assumed length characters.
1068         (gfc_conv_expr_descriptor): Set se->string_length if dealing
1069         with a character expression.
1070         (gfc_cvonv_array_parameter): Pass string length when passing
1071         character array according to g77 conventions.
1072
1073 2004-07-12  Paul Brook  <paul@codesourcery.com>
1074
1075         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
1076         * trans-array.c (gfc_trans_auto_array_allocation): Remove
1077         initialization code.
1078         * trans-common.c (create_common): Use gfc_conv_initializer.
1079         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
1080         * trans-expr.c (gfc_conv_initializer): New function.
1081         (gfc_conv_structure): Use it.
1082         * trans.h (gfc_conv_initializer): Add prototype.
1083
1084 2004-07-11  Paul Brook  <paul@codesourcery.com>
1085
1086         PR fortran/15986
1087         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
1088         variables.
1089         (parse_contained): Mark contained symbols as referenced.
1090
1091 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1092
1093         PR fortran/16455
1094         * module.c (gfc_dump_module, gfc_use_module): Print locus
1095         when opening of module file fails.
1096
1097         PR fortran/16404
1098         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
1099
1100         PR fortran/16404
1101         * match.c (gfc_match_program): A program name is obligatory.
1102         (gfc_match_return): RETURN in main program is an extension.
1103         (gfc_match_block_data): A space is required before a block data
1104         name.
1105
1106         PR fortran/16433
1107         * primary.c (match_boz_constant): Call gfc_notify_std only if
1108         we actually have a non-standard boz-literal-constant.
1109
1110         PR fortran/15754
1111         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
1112         warning if assigning NULL().
1113
1114 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
1115
1116         * f95-lang.c (set_block): Remove.
1117         (gfc_clear_binding_stack): New.
1118         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
1119         (struct binding_level): Remove block_created_by_back_end.
1120         (clear_binding_level): Likewise.
1121         (poplevel): Don't handle block_created_by_back_end.
1122
1123 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1124
1125         * trans-decl.c (gfc_create_module_variable): Nothing to do if
1126         symbol is in common, because we ...
1127         (gfc_generate_module_vars): Call gfc_trans_common.
1128
1129 2004-07-10  Paul Brook  <paul@codesourcery.com>
1130
1131         * trans-array.c (gfc_build_null_descriptor): New function.
1132         (gfc_trans_static_array_pointer): Use it.
1133         * trans-array.h (gfc_build_null_descriptor): Add prototype.
1134         * trans-expr.c (gfc_conv_structure): Handle array pointers.
1135
1136 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1137
1138         PR fortran/16336
1139         * decl.c (gfc_match_save): Use-associated common block
1140         doesn't collide.
1141         * gfortran.h (gfc_common_head): Add new field 'name'.
1142         Fix typo in comment after #endif.
1143         * match.c (gfc_get_common): Add new argument from_common,
1144         mangle name if flag is set, fill in new field in structure
1145         gfc_common_head.
1146         (match_common): Set new arg in call to gfc_get_common,
1147         use-associated common block doesn't collide.
1148         * match.h (gfc_get_common): Adapt prototype.
1149         * module.c (load_commons): Set new arg in call to
1150         gfc_get_common.
1151         * symbol.c (free_common_tree): New function.
1152         (gfc_free_namespace): Call new function.
1153         * trans-common.c (several functions): Remove argument
1154         'name', use name from gfc_common_head instead.
1155
1156 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1157
1158         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
1159         and RHS match. Return early if the RHS is NULL().
1160
1161         PR fortran/16336
1162         * match.c (match_common): Fix error reporting for used common.
1163
1164         PR fortran/15969
1165         * trans-expr.c (gfc_conv_structure): Handle initialization
1166         of scalar pointer components.
1167
1168         * parse.c (decode_statement): Fix matching of BLOCK DATA.
1169
1170         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
1171         by fix for PR 15481.
1172
1173 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1174
1175         * trans-common.c: Fix whitespace issues, make variable names
1176         more readable.
1177         (create_common): Additionally, make loop logic more obvious.
1178
1179 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1180         Paul Brook  <paul@codesourcery.com>
1181
1182         PR fortran/13415
1183         * trans-common.c (calculate_length): Remove ...
1184         (get_segment_info): Merge into here.  Save field type.
1185         (build_field): Use saved type.
1186         (create_common, new_condition, new_segment, finish_equivalences):
1187         Use new get_segment_info.
1188         * trans-types.c: Update comment.
1189
1190 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1191
1192         PR fortran/14077
1193         * moduele.c (mio_symbol): Don't I/O initial values unless
1194         symbol is a parameter.
1195
1196 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1197
1198         PR fortran/13201
1199         * resolve.c (resolve_symbol): Verify that the shape of a
1200         parameter array is not only explicit, but also constant.
1201         * array.c (gfc_is_compile_time_shape): New function.
1202         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
1203
1204 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1205
1206         PR fortran/15481
1207         PR fortran/13372
1208         PR fortran/13575
1209         PR fortran/15978
1210         * module.c (write_symbol, write_symtree): Remove workaround.
1211         * primary.c (match_actual_arglist): Enhance comment.
1212         (gfc_match_rvalue): Handle function call with first argument
1213         a keyword argument correctly.
1214         * resolve.c (resolve_symbol): Change call to
1215         gfc_set_default_type to issue error if no implicit type
1216         can be found.
1217         * trans-decl.c (gfc_create_module_variable): Remove workaround.
1218
1219 2004-07-08  Paul Brook  <paul@codesourcery.com>
1220
1221         * intrinsic.c (add_sym_4s): New function.
1222         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
1223
1224 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1225         Paul Brook  <paul@codesourcery.com>
1226
1227         PR fortran/15280
1228         PR fortran/15665
1229         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
1230         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
1231         * intrinsic.c (add_functions):  Identify iargc.  Add
1232         command_argument_count.
1233         (add_subroutines): Resolve getarg.  Add get_command and
1234         get_command_argument.
1235         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
1236         gfc_resolve_get_command_argument): Add prototypes.
1237         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
1238         gfc_resolve_get_command_argument): New functions.
1239         * trans-decl.c (gfor_fndecl_iargc): New variable.
1240         (gfc_build_intrinsic_function_decls): Set it.
1241         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
1242         (gfc_conv_intrinsic_function): Use it.
1243         * trans.h (gfor_fndecl_iargc): Declare.
1244
1245 2004-07-04  Matthias Klose  <doko@debian.org>
1246
1247         * Make-lang.in: Generate and install gfortran man page.
1248         * invoke.texi: Remove extra '@c man end'.
1249
1250 2004-07-04  Richard Henderson  <rth@redhat.com>
1251
1252         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
1253
1254 2004-07-04  Paul Brook  <paul@codesourcery.com>
1255
1256         * decl.c (gfc_match_implicit_range): Don't use typespec.
1257         (gfc_match_implicit): Handle character selectors.
1258         * gfortran.h (gfc_set_implicit): Remove prototype.
1259         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
1260         * parse.c (accept_statement): Don't call gfc_set_implicit.
1261         * symbol.c (new_ts): Remove.
1262         (gfc_set_implicit_none): Use same loop bounds as other functions.
1263         (gfc_set_implicit): Remove.
1264         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
1265         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
1266
1267 2004-06-30  Richard Henderson  <rth@redhat.com>
1268
1269         * match.c (var_element): Remove unused variable.
1270
1271         * trans-decl.c (gfc_generate_function_code): Don't set
1272         x_whole_function_mode_p.
1273         (gfc_generate_constructors): Likewise.
1274
1275 2004-06-30  Richard Henderson  <rth@redhat.com>
1276
1277         * trans-decl.c (gfc_generate_function_code): Don't set
1278         immediate_size_expand.
1279         (gfc_generate_constructors): Likewise.
1280
1281 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1282
1283         PR fortran/16161
1284         * decl.c (gfc_match_type_spec): Rename second argument to
1285         'implicit_flag', reverse meaning. Don't match_char_spec if
1286         'implicit_flag' is set. Rename to ...
1287         (match_type_spec): ... this.
1288         (gfc_match_implicit_none, match_implicit_range): Move here
1289         from match.c.
1290         (gfc_match_implicit): Move here from match.c, try to
1291         match_char_len if match_implicit_range doesn't succeed for
1292         CHARACTER implicits. Call renamed fucntion match_type_spec.
1293         (gfc_match_data_decl, match_prefix): Call renamed function
1294         match_type_spec.
1295         * match.c (gfc_match_implicit_none, match_implicit_range,
1296         gfc_match_implicit): Move to decl.c.
1297         * match.h (gfc_match_implicit_none, gfc_match_implicit):
1298         Move protoypes to section 'decl.c'.
1299         (gfc_match_type_spec): Remove prototype.
1300
1301 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1302
1303         * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
1304         copyright years.
1305
1306 2004-06-29  Steven Bosscher  <stevenb@suse.de>
1307
1308         Make sure types in assignments are compatible.  Mostly mechanical.
1309         * trans-const.h (gfc_index_one_node): New define.
1310         * trans-array.c (gfc_trans_allocate_array_storage,
1311         gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
1312         gfc_trans_array_constructor_value, gfc_trans_array_constructor,
1313         gfc_conv_array_ubound, gfc_conv_array_ref,
1314         gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
1315         gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
1316         gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
1317         gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
1318         types in assignments, conversions and conditionals for expressions.
1319         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
1320         gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
1321         gfc_conv_function_call, gfc_trans_pointer_assignment,
1322         gfc_trans_scalar_assign): Likewise.
1323         * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
1324         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
1325         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
1326         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
1327         gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
1328         gfc_conv_allocated, gfc_conv_associated,
1329         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
1330         * trans-io.c (set_string): Likewise.
1331         * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
1332         gfc_do_allocate, generate_loop_for_temp_to_lhs,
1333         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
1334         compute_overall_iter_number, gfc_trans_assign_need_temp,
1335         gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
1336         gfc_evaluate_where_mask, gfc_trans_where_assign,
1337         gfc_trans_where_2): Likewise.
1338         * trans-types.c (gfc_get_character_type, gfc_build_array_type,
1339         gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
1340
1341         * trans.c (gfc_add_modify_expr): Add sanity check that types
1342         for the lhs and rhs are the same for scalar assignments.
1343
1344 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1345
1346         * dump-parse-tree.c (show_common): New function.
1347         (gfc_show_namespace): Show commons.
1348
1349 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1350         Andrew Vaught  <andyv@firstinter.net>
1351
1352         PR fortran/13249
1353         PR fortran/15481
1354         * decl.c (gfc_match_save): Adapt to new common structures,
1355         don't allow saving USE-associated common.
1356         * dump-parse-tree (gfc_show_attr): (saved_)common are not
1357         symbol attributes any longer.
1358         (gfc_show_symbol): Don't show old-style commons any longer.
1359         (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
1360         interface.
1361         * gfortran.h (symbol_attribute): Remove common and saved_common
1362         attributes.
1363         (gfc_symbol): Remove common_head element.
1364         (gfc_common_head): New struct.
1365         (gfc_get_common_head): New macro.
1366         (gfc_symtree): Add field 'common' to union.
1367         (gfc_namespace): Add field 'common_root'; change type of field
1368         'blank_common' to blank_common.
1369         (gfc_add_data): New prototype.
1370         (gfc_traverse_symtree): Expect a symtree as first argument
1371         instead of namespace.
1372         * match.c (gfc_get_common): New function.
1373         (match_common_name): Change to take char * as argument, adapt,
1374         fix bug with empty name.
1375         (gfc_match_common): Adapt to new data structures. Disallow
1376         redeclaration of USE-associated COMMON-block. Fix bug with
1377         empty common.
1378         (var_element): Adapt to new common structures.
1379         * match.h (gfc_get_common): Declare.
1380         * module.c: Add 2004 to copyright years, add commons to module
1381         file layout description.
1382         (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
1383         for removed attributes.
1384         (mio_symbol): Adapt to new way of storing common relations.
1385         (load_commons): New function.
1386         (read_module): Skip common list on first pass, load_commons at
1387         second.
1388         (write_commons): New function.
1389         (write_module): Call write_commons().
1390         * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
1391         functions related to removed attributes.
1392         (gfc_add_data): New function.
1393         (gfc_clear_attr): Don't set removed attributes.
1394         (gfc_copy_attr): Don't copy removed attributes.
1395         (traverse_symtree): Remove.
1396         (gfc_traverse_symtree): Don't traverse symbol
1397         tree of the passed namespace, but require a symtree to be passed
1398         instead. Unify with traverse_symtree.
1399         (gfc_traverse_ns): Call gfc_traverse_symtree according to new
1400         interface.
1401         (save_symbol): Remove setting of removed attribute.
1402         * trans-common.c (gfc_sym_mangled_common_id): Change to
1403         take 'char *' argument instead of 'gfc_symbol'.
1404         (build_common_decl, new_segment, translate_common): Adapt to new
1405         data structures, add new
1406         argument name.
1407         (create_common): Adapt to new data structures, add new
1408         argument name. Fix typo in intialization of derived types.
1409         (finish_equivalences): Add second argument in call to
1410         create_common.
1411         (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
1412         (gfc_trans_common): Adapt to new data structures.
1413         * trans-decl.c (gfc_create_module_variables): Remove test for
1414         removed attribute.
1415
1416 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1417
1418         * io.c: Add 2004 to copyright years.
1419
1420 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1421         Andrew Vaught  <andyv@firstinter.net>
1422
1423         * gfortran.h (gfc_gsymbol): New typedef.
1424         (gfc_gsym_root): New variable.
1425         (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
1426         * parse.c (global_used): New function.
1427         (parse_block_data): Check for double empty BLOCK DATA,
1428         use global symbol table.
1429         (parse_module): Use global symbol table.
1430         (add_global_procedure, add_global_program): New functions.
1431         (gfc_parse_file): Use global symbol table.
1432         * symbol.c (gfc_gsym_root): New variable.
1433         (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
1434         functions.
1435
1436 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1437
1438         * module.c (mio_gmp_real): Correct writing of negative numbers.
1439
1440 2004-06-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1441
1442         PR fortran/15963
1443         * expr.c (check_intrinsic_op): Allow comparison of characters.
1444         Make logic easier.
1445
1446 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1447         Andrew Vaught  <andyv@firstinter.net>
1448
1449         * decl.c (contained_procedure): New function.
1450         (match_end): Verify correctness of END STATEMENT in
1451         all cases.
1452
1453 2004-06-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1454         Andrew Vaught  <andyv@firstinter.net>
1455
1456         PR fortran/15190
1457         * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
1458         (decode_statement): Enforce required space in free-form.
1459
1460 2004-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1461
1462         * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
1463         * trans-array.c (gfc_conv_descriptor_data): Add operand
1464         for COMPONENT_REF.
1465         (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
1466         (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
1467         (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
1468         * trans-common.c (create_common): Likewise.
1469         * trans-expr.c (gfc_conv_component_ref): Likewise.
1470         * trans-io.c (set_parameter_value): Likewise.
1471         (set_parameter_ref, set_string, set_flag, io_result): Likewise.
1472         (transfer_expr): Likewise.
1473         * trans-decl.c (gfc_trans_auto_character_variable):
1474         Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
1475         (gfc_gimplify_function): New function.
1476         (gfc_generate_function-code): Properly handle nested functions.
1477         * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
1478
1479 2004-06-22  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1480
1481         PR fortran/15750
1482         * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
1483         (gfc_resolve_inquire): Resolve the iolength tag.  Return
1484         SUCCESS at end of function if no failure has occured.
1485         * resolve.c (resolve_code): Resolve if iolength is encountered.
1486         * trans-io.c: (ioparm_iolength, iocall_iolength,
1487         iocall_iolength_done): New variables.
1488         (last_dt): Add IOLENGTH.
1489         (gfc_build_io_library_fndecls ): Set iolength related variables.
1490         (gfc_trans_iolength): Implement.
1491         (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
1492
1493 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de
1494
1495         PR fortran/15511
1496         * scanner.c (load_line): Don't truncate preprocessor lines.
1497         Reformat error message.
1498         (preprocessor_line): Issue warning in case of malformed
1499         preprocessor line.
1500
1501 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1502
1503         * resolve.c (resolve_symbol): Add comment in function body.
1504         (check_data_variable): Change type of mark to ar_type, adapt code
1505         accordingly.
1506
1507 2004-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1508
1509         * array.c (gfc_insert_constructor): Avoid redundant call to
1510         mpz_comp. Add 2004 to copyright years.
1511
1512 2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1513
1514         * trans.h (stmtblock_t): Change has_scope to unsigned int.
1515
1516 2004-06-20  Steven G. Kargl  <kargls@comcast.net>
1517
1518         * arith.c (gfc_range_check): correct complex underflow.
1519
1520 2004-06-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1521
1522         PR fortran/15962
1523         * match.c (match_case_selector): Call gfc_match_init_expr
1524         instead of gfc_match_expr.
1525         * resolve.c (validate_case_label_expr): No need to check for
1526         constant, since it wouldn't have been matched with the fix to
1527         match.c.
1528
1529 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1530
1531         PR fortran/15211
1532         * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
1533         of strings.
1534
1535 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1536
1537         PR fortran/15510
1538         * trans-deecl.c (generate_local_decl): Do not issue warning for
1539         unused variables if they're use associated.
1540
1541 2004-06-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1542         Andrew Vaught <andyv@firstinter.net>
1543
1544         PR fortran/14928
1545         * gfortran.h (gfc_check_f): Add new field f3ml.
1546         * check.c (gfc_check_minloc_maxloc): Take argument list instead
1547         of individual arguments, reorder if necessary.
1548         * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
1549         * intrinsic.c (add_sym_3ml): New function.
1550         (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
1551         (check_specific): Catch special case MINLOC, MAXLOC.
1552
1553 2004-06-14  Paul Brook  <paul@codesourcery.com>
1554
1555         * intrinsic.c (add_sym_2s): Use correct function types.
1556
1557 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1558
1559         * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
1560         * data.c (gfc_get_section_index):  Remove dependency on trans.h.
1561
1562 2004-06-12  Steven G. Kargl  <kargls@comcast.net>
1563
1564         * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
1565         gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
1566         * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
1567         GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
1568         * trans-intrinsic.c:  Use symbols.
1569         * intrinsic.c (add_sym_2s): New function.
1570         * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
1571         * intrinsic.h: Function prototypes.
1572         * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
1573         gfc_resolve_srand):  New functions.
1574
1575 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1576
1577         PR fortran/14957
1578         * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
1579         contained procedure.
1580
1581 2004-06-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1582
1583         PR fortran/12841
1584         * interface.c (compare_parameter, compare_actual_formal): Don't
1585         check types and array shapes for NULL()
1586         * trans-expr.c (conv_function_call): No double indirection for
1587         NULL()
1588
1589 2004-06-09  Toon Moene  <toon@moene.indiv.nluug.nl>
1590
1591         * trans-expr.c (gfc_conv_cst_int_power): Compute
1592         x**(-n) by converting it to (1/x)**n instead of
1593         1/x**n.
1594
1595 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1596
1597         PR fortran/13372
1598         * module.c (write_symbol, write_symtree): Don't write symbols
1599         wrongly added to namespace.
1600         * trans-decl.c (gfc_create_module_variable): Don't create a
1601         backend decl for a symbol incorrectly added to namespace.
1602
1603 2004-06-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1604
1605         PR fortran/13201
1606         * resolve.c (resolve_symbol): Verify that parameter array has an
1607         explicit shape. Fix typos and coding style issues in surrounding
1608         lines.
1609
1610 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1611
1612         PR fortran/15478
1613         * gfortran.texi: The documentation doesn't contain infomration on
1614         how to report bugs, and shouldn't, so remove the line which
1615         says it does.
1616
1617 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1618
1619         * intrinsic.c (sort_actual): Keep track of type of missing
1620         arguments. (Missing from previous commit.)
1621
1622 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1623
1624         * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
1625         * interface.c (compare_actual_formal): Keep type of omitted
1626         optional arguments.
1627         * trans-expr.c (gfc_conv_function_call): Add string length
1628         argument for omitted string argument.
1629
1630 2004-06-03  Paul Brook  <paul@codesourcery.com>
1631
1632         * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
1633         lists instead of compound expr chains.
1634         (gfc_trans_code): Annotate statement lists.
1635
1636 2004-06-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1637
1638         * trans-array.c: Fix spelling in comments.
1639
1640 2004-06-02  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1641
1642         PR fortran/15557
1643         * data.c (assign_substring_data_value): New function.
1644         (gfc_assign_data_value): Call the new function if we're dealing
1645         with a substring LHS.
1646
1647 2004-06-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1648
1649         PR fortran/15477
1650         * gfortran.h (GFC_VERSION): Remove.
1651         * gfortran.texi (version-gfortran): Remove, replace by version-GCC
1652         where used.
1653
1654 2004-05-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1655
1656         * trans-types.c: Fix spelling & layout in comments.
1657
1658 2004-05-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1659
1660         PR fortran/14067
1661         * trans-const.c (gfc_conv_string_init): Allow variable string
1662         length lower than initialization string length.
1663
1664 2004-05-30  Paul Brook  <paul@codesourcery.com>
1665
1666         PR fortran/15620
1667         * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
1668         * trans-expr.c (gfc_trans_string_copy): New function.
1669         (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
1670         character lengths.
1671         (gfc_conv_string_parameter): Use gfc_trans_string_copy.
1672         * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
1673         * trans.h (struct gfc_saved_var): Define.
1674         (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
1675
1676 2004-05-30  Steven G. Kargl  <kargls@comcast.net>
1677
1678         * iresolve.c (gfc_resolve_random_number): Clean up conditional.
1679
1680 2004-05-29  Steven G. Kargl  <kargls@comcast.net>
1681
1682         * simplify.c (gfc_simplify_log): Remove useless line of code.
1683
1684 2004-05-29  Paul Brook  <paul@codesourcery.com>
1685
1686         * trans-common.c (find_equivalence): Find multiple rules.
1687
1688 2004-05-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1689
1690         * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
1691         (gfc_current_locus): Declare new global variable.
1692         * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
1693         (gfc_current_locus1): Rename ...
1694         (gfc_current_locus): ... to this.
1695         (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
1696         skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
1697         gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
1698         gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
1699         and gfc_current_locus(), respectively.
1700         * array.c (match_subscript, gfc_match_array_ref, match_array_list,
1701         match_array_cons_element, gfc_match_array_constructor):
1702         Read/modify gfc_current_locus instead of calling gfc_set_locus()
1703         and gfc_current_locus().
1704         * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
1705         match_attr_spec, gfc_match_function_decl, gfc_match_end,
1706         attr_decl1, gfc_match_save): Likewise.
1707         * error.c (error_print, gfc_internal_error): Likewise.
1708         * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
1709         * interface.c (gfc_add_interface): Likewise.
1710         * io.c (gfc_match_format, match_dt_format, match_dt_element,
1711         match_io_iterator, match_io): Likewise.
1712         * match.c (gfc_match_space, gfc_match_eos,
1713         gfc_match_small_literal_int, gfc_match_st_label,
1714         gfc_match_strings, gfc_match_name, gfc_match_iterator,
1715         gfc_match_char, gfc_match, gfc_match_assignment,
1716         gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
1717         gfc_match_nullify, gfc_match_call, match_implicit_range,
1718         gfc_match_implicit, gfc_match_data, match_case_selector,
1719         gfc_match_case, match_forall_iterator): Likewise.
1720         * matchexp.c (gfc_match_defined_op_name, next_operator,
1721         match_level_1, match_mult_operand, match_ext_mult_operand,
1722         match_add_operand, match_ext_add_operand, match_level_2,
1723         match_level_3, match_level_4, match_and_operand, match_or_operand,
1724         match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
1725         * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
1726         * parse.c (match_word, decode_statement, next_free, next_fixed,
1727         add_statement, verify_st_order, parse_if_block, gfc_parse_file):
1728         Likewise.
1729         * primary.c (match_digits, match_integer_constant,
1730         match_boz_constant, match_real_constant, match_substring,
1731         next_string_char, match_charkind_name, match_string_constant,
1732         match_logical_constant, match_const_complex_part,
1733         match_complex_constant, match_actual_arg, match_keyword_arg,
1734         gfc_match_actual_arglist, gfc_match_structure_constructor,
1735         gfc_match_rvalue, gfc_match_variable): Likewise.
1736         * st.c (gfc_get_code): Likewise.
1737         * symbol.c (check_conflict, check_used, check_done,
1738         duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
1739         gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
1740         gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
1741
1742 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1743
1744         * io.c (format_asterisk): Silence compiler warnings by correcting
1745         the number of elements of a "locus" initializer.
1746
1747 2004-05-25  Roger Sayle  <roger@eyesopen.com>
1748
1749         PR fortran/13912
1750         * matchexp.c: Allow unary operators after arithmetic operators
1751         as a GNU extension.
1752         (match_ext_mult_operand, match_ext_add_operand): New functions.
1753         (match_mult_operand): Tweak to call match_ext_mult_operand.
1754         (match_add_operand): Tweak to call match_ext_mult_operand.
1755         (match_level_2): Rearrange to call match_ext_add_operand.
1756
1757 2004-05-25  Paul Brook  <paul@codesourcery.com>
1758
1759         * expr.c (check_inquiry): Remove bogus tests.
1760
1761 2004-05-23  Paul Brook  <paul@codesourcery.com>
1762
1763         PR fortran/13773
1764         * expr.c (restricted_args): Remove redundant checks/argument.
1765         (external_spec_function): Update to match.
1766         (restricted_intrinsic): Rewrite.
1767
1768 2004-05-23  Paul Brook  <paul@codesourcery.com>
1769         Victor Leikehman  <lei@haifasphere.co.il>
1770
1771         * gfortran.h (struct gfc_symbol): Add equiv_built.
1772         * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
1773         messages.
1774         (current_length): Remove.
1775         (add_segments): New function.
1776         (build_equiv_decl): Create initialized common blocks.
1777         (build_common_decl): Always add decl to bindings.
1778         (create_common): Create initializers.
1779         (find_segment_info): Reformat to match coding conventions.
1780         (new_condition): Use add_segments.
1781         (add_condition, find_equivalence, add_equivalences): Move iteration
1782         inside functions.  Only process each segment once.
1783         (new_segment, finish_equivalences, translate_common): Simplify.
1784
1785 2004-05-23  Steven G. Kargl  <kargls@comcast.net>
1786
1787         * check.c (gfc_check_random_seed): Issue for too many arguments.
1788
1789 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
1790
1791         * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
1792
1793 2004-05-22  Paul Brook  <paul@codesourcery.com>
1794
1795         * dump-parse-tree.c (gfc_show_equiv): New function.
1796         (gfc_show_namespace): Use it.
1797
1798 2004-05-22  Victor Leikehman  <lei@haifasphere.co.il>
1799
1800         PR fortran/13249
1801         * symbol.c (gfc_add_common): Disable checks to work around other more
1802         fundamental inadequacies.
1803
1804 2004-05-22  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
1805
1806         * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
1807         only for functions.
1808         (gfc_build_function_decl): Likewise.
1809
1810 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
1811
1812         * check.c (gfc_check_system_clock): New function.
1813         * intrinsic.c (add_sym_3s): New function.
1814         (add_subroutines): Use it.
1815         * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
1816         Add prototypes.
1817         * iresolve.c (gfc_resolve_system_clock): New function.
1818
1819 2004-05-22  Steven G. Kargl  <kargls@comcast.net>
1820
1821         * invoke.texi: Document -Wunderflow and spell check.
1822         * lang.opt: Add Wunderflow.
1823         * gfortran.h (gfc_option_t): Add warn_underflow option.
1824         * options.c (gfc_init_options, set_Wall): Use it.
1825         * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
1826         * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
1827         gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
1828         gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
1829         * arith.c (common_logarithm): Fix typo in comment.
1830
1831 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1832
1833         * io.c (check_format): As a GNU extension, allow the comma after a
1834         string literal to be optional in a format.  Use gfc_notify_std to
1835         issue an error/warning as appropriate.
1836
1837 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1838
1839         * io.c (check_format): Use gfc_notify_std to determine whether to
1840         issue an error/warning for omitting the digits from the X format.
1841
1842 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1843
1844         * io.c (check_format): Allow the number before the X format to
1845         be optional when not -pedantic.
1846
1847 2004-05-18  Feng Wang  <fengwang@nudt.edu.cn>
1848         Paul Brook  <paul@codesourcery.com>
1849
1850         * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
1851         Create decls for __builtin_pow{,f}.
1852         * gfortran.h (PREFIX_LEN): Define.
1853         * trans-decl.c (gfor_fndecl_math_powi): Add.
1854         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
1855         (gfc_build_intrinsic_function_decls): Create decls for powi.
1856         * trans-expr.c (powi_table): Add.
1857         (gfc_conv_integer_power): Remove.
1858         (gfc_conv_powi): New function.
1859         (gfc_conv_cst_int_power): New function.
1860         (gfc_conv_power_op): Use new powi routines.
1861         * trans.h (struct gfc_powdecl_list): Add.
1862         (gfor_fndecl_math_powi): Add.
1863         (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
1864
1865 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1866
1867         * trans.c, trans-decl.c: Fix comment typos.
1868
1869 2004-05-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1870
1871         * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
1872
1873 2004-05-18  Steve Kargl  <kargls@comcast.net>
1874
1875         * arith.c (gfc_int2complex): Fix incorrect range checking.
1876
1877 2004-05-18  Paul Brook  <paul@codesourcery.com>
1878
1879         PR fortran/13930
1880         * decl.c (add_init_expr_to_sym): Remove incorrect check.
1881         (default_initializer): Move to expr.c.
1882         (variable_decl): Don't assign default initializer to variables.
1883         * expr.c (gfc_default_initializer): Move to here.
1884         * gfortran.h (gfc_default_initializer): Add prototype.
1885         * resolve.c (resolve_symbol): Check for illegal initializers.
1886         Assign default initializer.
1887
1888 2004-05-17  Steve Kargl  <kargls@comcast.net>
1889
1890         * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
1891
1892 2004-05-17  Steve Kargl  <kargls@comcast.net>
1893
1894         * arith.c (gfc_real2complex): Range checking wrong part of complex
1895         number.
1896
1897 2004-05-16  Paul Brook  <paul@codesourcery.com>
1898
1899         * options.c (gfc_handle_module_path_options): Fix buffer overrun.
1900
1901 2004-05-16  Paul Brook  <paul@codesourcery.com>
1902
1903         * arith.c (gfc_range_check): Fix logic error.
1904
1905 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
1906
1907         * arith.c: Fix comment typos.
1908
1909 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1910
1911         PR fortran/13742
1912         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
1913         not initialized in a disallowed fashion.
1914         * match.c (gfc_match_common): Likewise.
1915         (var_element): Verify that variable is not in the blank COMMON,
1916         if it is in a common.
1917
1918 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1919
1920         * Make-lang.in (f95.generated-manpages): Remove.
1921         (f95.srcextra): New.
1922         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
1923         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
1924         (f95.dvi): Remove.
1925         (dvi): New.
1926         (f95.install-info): Remove.
1927         (install-info): New.
1928
1929 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
1930
1931         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
1932
1933 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1934
1935         * primary.c (match_boz_constant): Use gfc_notify_std() for
1936         issuing a warning or an error.
1937
1938 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1939
1940         PR fortran/13826
1941         * primary.c (match_structure_constructor): Rename ...
1942         (gfc_match_structure_constructor): ... to this. Make non-static.
1943         (gfc_match_rvalue): Call renamed function.
1944         * match.h (gfc_match_structure_constructor): Declare.
1945         * match.c (gfc_match_data_constant): Handle structure
1946         constructor.
1947
1948 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1949
1950         PR fortran/13702
1951         (Port from g95)
1952         * gfortran.h (gfc_linebuf): New typedef.
1953         (linebuf): Remove.
1954         (gfc_file): Revamped, use new gfc_linebuf.
1955         (locus): Revamped, use new types.
1956         (gfc_current_file): Remove.
1957         (gfc_current_form, gfc_source_file): New global variables.
1958         * match.c (gfc_match_space, gfc_match_strings): Use
1959         gfc_current_form to find source form.
1960         * module.c (gfc_dump_module): Use gfc_source_file when printing
1961         module header.
1962         * error.c (show_locus, show_loci) Use new data structures to print
1963         locus.
1964         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
1965         Remove.
1966         (file_head, current_file, gfc_current_form, line_head, line_tail,
1967         gfc_current_locus1, gfc_source_file): New global variables.
1968         (gfc_scanner_init1): Set new global variables.
1969         (gfc_scanner_done1): Free new data structures.
1970         (gfc_current_locus): Return pointer to gfc_current_locus1.
1971         (gfc_set_locus): Set gfc_current_locus1.
1972         (gfc_at_eof): Set new variables.
1973         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
1974         to new locus structure.
1975         (gfc_check_include): Remove.
1976         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
1977         (gfc_skip_comments): Use gfc_current_form, find locus with
1978         gfc_current_locus1.
1979         (gfc_next_char): Use gfc_current_form.
1980         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
1981         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
1982         comment formatting.
1983         (get_file): New function.
1984         (preprocessor_line, include_line): New functions.
1985         (load_file): Move down, rewrite to match new data structures.
1986         (gfc_new_file): Rewrite to match new data structures.
1987         * parse.c (next_statement): Remove code which is now useless. Use
1988         gfc_source_form and gfc_source_file where appropriate.
1989         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
1990         when determining locus of frontend code.
1991         * trans-io.c (set_error_locus): Same.
1992         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
1993         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
1994         preprocessor flags.
1995         (all): Add missing initializers.
1996
1997 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1998
1999         * Make-lang.in (trans-common.o): Remove redundant dependency.
2000         (data.c): Replace object file name ...
2001         (data.o): ... by the correct one.
2002
2003 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2004
2005         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
2006         for ranges when dumping array references.
2007
2008 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
2009
2010         * decl.c (variable_decl): Always apply default initializer.
2011
2012 2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2013
2014         PR fortran/15206
2015         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
2016         handle zero correctly.
2017
2018 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2019
2020         * match.c (gfc_match): Eliminate dead code.
2021
2022 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2023
2024         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
2025         Detect bad continuation line in fixed form sources.
2026
2027 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2028
2029         PR fortran/15205
2030         * iresolve.c (gfc_resolve_nearest): Add new function.
2031         * intrinsic.h: ... declare it here.
2032         * intrinsic.c (add_functions): ... add it as resolving function
2033         for NEAREST.
2034
2035 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2036
2037         PR fortran/14066
2038         * match.c (gfc_match_do): Allow infinite loops with
2039         label-do-stmt. Do not enforce space after comma.
2040
2041 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2042
2043         PR fortran/15051
2044         * parse.c (parse_interface): Allow empty INTERFACE, remove
2045         seen_body.
2046
2047 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2048
2049         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
2050         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
2051         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
2052         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
2053         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
2054         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
2055         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
2056         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
2057         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
2058         trans-types.h, trans.c, trans.h: Update copyright years and
2059         boilerplate.
2060         * data.c: Likewise, also removed two whitespace-only lines.
2061         * gfortranspec.c, lang.opt: Update copyright years.
2062
2063 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2064
2065         PR fortran/14568
2066         * trans-decl.c (generate_local_decl): Don't warn for unused
2067         variables which are in common blocks.
2068
2069 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2070
2071         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
2072         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
2073         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
2074
2075 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
2076
2077         PR fortran/15314
2078         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
2079
2080 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
2081
2082         * gfortran.texi: Use @table @emph instead of @itemize @emph.
2083         Remove "set DEVELOPMENT".
2084         (Compiling GFORTRAN): Remove.
2085
2086 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
2087
2088         * array.c (match_subscript, match_array_ref): Add comments
2089         explaining argument 'init'.
2090         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
2091         trans-expr.c, trans.c: Fix some typos in comments.
2092         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
2093         * primary.c (match_digits, match_integer_constant): Add comment
2094         explaining signflag.
2095
2096 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2097
2098         PR fortran/13940
2099         * primary.c: Include system.h and flags.h, needed for pedantic.
2100         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
2101         pedantic is set.
2102
2103 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2104
2105         PR fortran/13940
2106         * match.c (match_data_constant): Handle case where
2107         gfc_find_symbol sets sym to NULL
2108
2109 2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
2110
2111         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
2112         dependency on mathbuiltins.def
2113
2114 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
2115
2116         * trans-io.c (transfer_expr): Implemented recursive printing
2117         of derived types.
2118
2119 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
2120
2121         * gfortranspec.c: Do not include multilib.h.
2122
2123 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
2124
2125         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
2126         2004 to copyright years.
2127         * trans-expr.c, trans-decl.c: Comment update, we now generate
2128         GENERIC, not SIMPLE. Add 2004 to copyright years.
2129
2130 2004-04-24  Paul Brook  <paul@codesourcery.com>
2131
2132         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
2133
2134 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
2135
2136         PR 14817
2137         * arith.c (gfc_arith_divide): Fix complex divide.
2138
2139 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
2140
2141         * gfortranspec.c: Include the target headers.
2142
2143 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
2144
2145         PR fortran/14921
2146         PR fortran/14540
2147         * arith.c (arctangent2): New function.
2148         * arith.h (arctangent2): Add function prototype.
2149         * simplify.c (gfc_simplify_atan2): Use it.
2150         (gfc_simplify_log): Use it.
2151
2152 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
2153
2154         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
2155         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
2156
2157 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
2158
2159         PR fortran/14872
2160         * trans-io.c (build_dt): Change REC to value.
2161
2162 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
2163
2164         PR 14394
2165         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
2166         the real value when converting mpf to string.
2167
2168 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
2169
2170         PR 14395
2171         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
2172         the result.
2173
2174 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
2175
2176         PR fortran/14377
2177         * simplify.c (simplify_min_max): Convert the type of the result.
2178
2179 2004-04-11  Paul Brook  <paul@codesourcery.com>
2180
2181         * gfortran.texi: Use full target triplet.
2182
2183 2004-04-11  Paul Brook  <paul@codesourcery.com>
2184
2185         * Make-lang.in (GFORTRAN_TEXI): Set it.
2186         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
2187         (fortran/gfortran.info): Ditto.
2188         * gfortran.texi: Major update.
2189         * invoke.texi: New file.
2190
2191 2004-04-10  Paul Brook  <paul@codesourcery.com>
2192
2193         * trans-array.c (gfc_trans_allocate_temp_array,
2194         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
2195         * trans-decl.c (gfc_build_dummy_array_decl,
2196         gfc_get_symbol_decl, gfc_build_function_decl,
2197         gfc_create_module_variable): Ditto.
2198         * trans-expr.c (gfc_conv_variable): Ditto.
2199         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
2200         * trans.h (GFC_DECL_STRING): Remove.
2201         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
2202         GFC_DECL_ASSIGN): Renumber flags.
2203
2204 2004-04-05  Paul Brook  <paul@codesourcery.com>
2205
2206         PR 13252
2207         PR 14081
2208         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
2209         and stack_restore.
2210         * gfortran.h (struct gfc_charlen): Add backend_decl.
2211         * trans-array.c (gfc_trans_allocate_temp_array,
2212         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
2213         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
2214         Remove old, broken string handling.
2215         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
2216         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
2217         gfc_trans_deferred_array): Handle character arrays.
2218         * trans-const.c (gfc_conv_const_charlen): New function.
2219         * trans-const.h (gfc_conv_const_charlen): Add prototype.
2220         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
2221         as static.
2222         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
2223         (gfc_create_string_length): New function.
2224         (gfc_get_symbol_decl): Create lengths for character variables.
2225         (gfc_get_fake_result_decl): Ditto.
2226         (gfc_build_function_decl): Only set length for assumed length
2227         character arguments.
2228         (gfc_trans_dummy_character): New function.
2229         (gfc_trans_auto_character_variable): Rewrite.
2230         (gfc_trans_deferred_vars): Handle more types of character variable.
2231         (gfc_create_module_variable): String lengths have moved.
2232         (gfc_generate_function_code): Initialize deferred var chain earlier.
2233         * trans-expr.c (gfc_conv_init_string_length): Rename ...
2234         (gfc_trans_init_string_length):  ... to this.
2235         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
2236         gfc_conv_function_call): Update to new format for character variables.
2237         (gfc_conv_string_length): Remove.
2238         (gfc_conv_string_parameter): Update assertion.
2239         * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
2240         * trans-io.c (set_string): Use new macro names.
2241         * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
2242         * trans-types.c (gfc_get_character_type): Use existing length expr.
2243         (gfc_is_nodesc_array): Make public.
2244         (gfc_get_dtype_cst): Rename ...
2245         (gfc_get_dtype): ... to this.  Handle unknown size arrays.
2246         (gfc_get_nodesc_array_type): Use new name.
2247         (gfc_sym_type): New character variable code.
2248         (gfc_get_derived_type): Ditto.
2249         (gfc_get_function_type): Evaluate character variable lengths.
2250         * trans-types.h (gfc_strlen_kind): Define.
2251         (gfc_is_nodesc_array): Add prototype.
2252         * trans.h: Update prototypes.
2253         (struct lang_type): Update comments.
2254         (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
2255         (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
2256
2257 2004-04-04  Paul Brook  <paul@codesourcery.com>
2258
2259         * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
2260         * options.c (gfc_init.options, gfc_handle_option): Ditto.
2261         * trans-expr.c (gfc_conv_function_call): Ditto.
2262         * trans-types.c (gfc_is_nodesc_array): Ditto
2263         * lang.opt (fg77-calls): Remove.
2264
2265 2004-04-04  Paul Brook  <paul@codesourcery.com>
2266
2267         * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
2268         (gfc_conv_descriptor_base): Rename ...
2269         (gfc_conv_descriptor_offset): ... to this.
2270         (gfc_trans_allocate_array_storage): Set offset to zero.
2271         (gfc_conv_array_base): Rename ...
2272         (gfc_conv_array_offset): ... to this.
2273         (gfc_conv_array_index_ref): Add offset parameter.
2274         (gfc_conv_array_ref): Include offset.
2275         (gfc_trans_preloop_setup): Use existing offset.
2276         (gfc_trans_allocate_temp_array,  gfc_array_allocate,
2277         gfc_trans_auto_array_allocation, gfc_trans_g77_array,
2278         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
2279         gfc_conf_ss_descriptor): Set offset.
2280         * trans-array.h: Rename prototypes.
2281         * trans-const.h (gfc_index_zero_node): Define.
2282         * trans-decl.c (gfc_build_qualified_array): Change base to offset.
2283         * trans-types.c (gfc_get_array_type_bounds): Ditto.
2284         (gfc_get_nodesc_array_type): Calculate offset before upper bound.
2285
2286 2004-03-25  Diego Novillo  <dnovillo@redhat.com>
2287
2288         * convert.c (convert): Don't handle WITH_RECORD_EXPR.
2289
2290 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
2291
2292         PR 14055
2293         * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
2294         before conversion by gmp library call.
2295
2296 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
2297
2298         PR 12921
2299         * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
2300
2301 2004-02-24  Richard Henderson  <rth@redhat.com>
2302
2303         * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
2304
2305 2004-02-19  Loren J. Rittle  <ljrittle@acm.org>
2306
2307         * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
2308         (fortran/gfortran.info): ... to here.
2309         (f95.srcinfo): New.
2310
2311 2004-02-16  Richard Henderson  <rth@redhat.com>
2312
2313         * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
2314         * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
2315         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
2316         (gfc_expand_function): Rename from expand_function_body, make static,
2317         don't do anything except invoke tree_rest_of_compilation.
2318         (gfc_be_parse_file): Invoke cgraph.
2319         (gfc_expand_decl): Remove.
2320         (gfc_init_builtin_functions): Add __builtin_init_trampoline and
2321         __builtin_adjust_trampoline.
2322         * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
2323         (gfc_finalize): New.
2324         (gfc_generate_function_code): Use it.  Lower nested functions.
2325         * trans-expr.c (gfc_conv_function_call): Add static chain operand
2326         to call_expr.
2327         * trans.c (gfc_build_function_call): Likewise.
2328         * trans.h (expand_function_body): Remove.
2329
2330 2004-02-15  Victor Leikehman  <lei@il.ibm.com>
2331
2332         PR gfortran/13433
2333         * trans-decl.c (gfc_build_function_decl) For functions
2334         returning CHARACTER pass an extra length argument,
2335         following g77 calling conventions.
2336         * trans-types.c (gfc_get_function_type) Ditto.
2337         * trans-expr.c (gfc_conv_function_call) Ditto.
2338
2339 2004-02-14  Paul Brook  <paul@codesourcery.com>
2340
2341         * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
2342
2343 2004-02-12  Paul Brook  <paul@nowt.org>
2344
2345         * BUGS: Remove.
2346
2347 2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
2348
2349         * gfortran.texi: Fix typos.
2350
2351 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
2352
2353         PR gfortran/13909
2354         * intrinsic.c (add_conversions) Use logical conversion instead
2355         of real.
2356         * trans-types.c (gfc_get_logical_type) implemented logical*1
2357         and logical*2.
2358
2359 2004-01-17  Paul Brook  <paul@codesourcery.com>
2360
2361         * lang-specs.h: Remove %<fixed-form.
2362
2363 2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>
2364
2365         * lang-specs.h: Enable preprocessing of source files
2366         ending in .F, .fpp, .FPP, .F90 and .F95.
2367
2368 2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>
2369
2370         PR fortran/12912
2371         * lang-specs.h: Enable compilation of files ending
2372         in .f, .for and .FOR.
2373
2374 2004-01-11  Paul Brook  <paul@codesourcery.com>
2375
2376         * trans-stmt.c (gfc_trans_if_1): New function.
2377         (gfc_trans_if): Use it.
2378
2379 2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>
2380
2381         * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
2382         (gfc_option_t): Add max_identifier_length.
2383         * lang.opt: Add fmax-identifier-length.
2384         * match.c (parse_name): Use limit.
2385         * options.c (gfc_init_options): Set max_identifier_length.
2386         (gfc_handle_option): Ditto.
2387
2388 2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>
2389
2390         * intrinsic.c (add_functions): Add resolve function to dcmplx.
2391         * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
2392         * iresolve.c (gfc_resolve_dcmplx): New function.
2393
2394 2004-01-10  Paul Brook  <paul@codesourcery.com>
2395
2396         * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
2397         * trans-types.c (gfc_sym_type): Handle external dummy procedures.
2398         (gfc_return_by_reference): Correct condition.
2399         (gfc_get_function_type): Ditto.
2400
2401 2004-01-10  Paul Brook  <paul@codesourcery.com>
2402
2403         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
2404         types.
2405
2406 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
2407
2408         * iresolve.c: Use correct kind.
2409
2410 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
2411
2412         PR fortran/13467
2413         * trans-decl.c (gfc_create_module_variable):  Output array valued
2414         parameters.
2415
2416 2004-01-10  Paul Brook  <paul@codesourcery.com>
2417
2418         * resolve.c (resolve_branch): Get error message right way round.
2419
2420 2004-01-10  Canqun Yang <canqun@nudt.edu.cn>
2421
2422         * trans-array (gfc_conv_loop_setup): Adjust comment to track
2423         reality.
2424         (gfc_array_allocate): Don't count size of element twice.
2425
2426 2004-01-04  Paul Brook  <paul@codesourcery.com>
2427
2428         * lang.opt (i8, r8, std=*): Remove RejectNegative.
2429
2430 2004-01-04  Paul Brook  <paul@codesourcery.com>
2431
2432         * error.c (gfc_notify_std): New function.
2433         * gfortran.h (gfc_notify_std): Declare.
2434         (GFC_STD_*): Define.
2435         (gfc_option_t): Add warn_std and allow_std.
2436         * intrinsic.c (gfc_init_expr_extensions): Fix logic.
2437         (gfc_intrinsic_func_interface): Use gfc_notify_std.
2438         * check.c (check_rest): Use gfc_notify_std.
2439         * match.c (gfc_match_pause): Ditto.
2440         (gfc_match_assign): Ditto.
2441         (gfc_match_goto): Ditto.
2442         * resolve.c (resolve_branch): Ditto.
2443         * lang.opt: Add std=<foo> and w.
2444         * options.c (gfc_init_options): Set allow_std and warn_std.
2445         (gfc_handle_option): Handle OPT_std_* and OPT_w.
2446
2447 2004-01-01  Paul Brook  <paul@codesourcery.com>
2448
2449         * array.c (gfc_append_constructor): Take constructor, not expression.
2450         * data.c (struct gfc_expr_stack): Remove.
2451         (expr_stack): Remove.
2452         (find_con_by_offset): Rename from find_expr_in_con.
2453         (find_con_by_component): Rename from find_component_in_con.
2454         (gfc_get_expr_stack): Remove.
2455         (gfc_assign_data_value): Rewrite.
2456         (gfc_expr_push): Remove.
2457         (gfc_expr_pop): Remove.
2458         (gfc_advance_section): Rename from
2459         gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
2460         (gfc_get_section_index): Handle unbounded sections.
2461         * gfortran.h: Update prototypes.
2462         * resolve.c (check_data_variable): Array section maight not be the
2463         last ref.
2464
2465 2004-01-01  Paul Brook  <paul@codesourcery.com>
2466
2467         PR fortran/13432
2468         * resolve.c (resolve_symbol): Allow assumed length function results.
2469
2470 2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>
2471
2472         * match.c (gfc_match_pause): Fix spelling.
2473
2474 2004-01-01  Steven Bosscher  <stevenb@suse.de>
2475
2476         PR fortran/13251
2477         * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
2478         reference from the expression.
2479
2480 2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>
2481
2482         * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
2483         dumping.
2484         * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
2485         (gfc_exec_op): New EXEC_LABEL_ASSIGN.
2486         (symbol_attribute):New variable attribute: assign.
2487         * io.c (resolve_tag):Integer variable is allowed.
2488         (match_dt_format): Add ASSIGN statement. Set assign flag.
2489         * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
2490         (gfc_match_assign): Add ASSIGN statement. Set assign flag.
2491         (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
2492         * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
2493         (next_statement): Add ST_LABEL_ASSIGNMENT.
2494         (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
2495         * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
2496         (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
2497         * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
2498         * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
2499         assign.  Put them into the stuct lang_decl.
2500         * trans-io.c (set_string): Add the assign statement.
2501         * trans-stmt.c (gfc_trans_label_assign): New function.
2502         (gfc_trans_goto): Translate ASSIGNED GOTO statement.
2503         * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
2504         * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
2505         * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
2506         (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
2507         (GFC_DECL_ASSIGN(node)): New macro to access flag.
2508
2509 2003-12-31  Huang Chun <chunhuang73@hotmail.com>
2510
2511         PR fortran/13434
2512         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
2513         minval/maxval.
2514
2515 2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>
2516
2517         * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
2518         that arguments to subroutines/functions can't alias themselves, nor global
2519         memory.
2520
2521 2003-12-20  Steven Bosscher  <stevenb@suse.de>
2522
2523         * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
2524         * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
2525
2526 2003-12-12  Huang Chun <chunhuang73@hotmail.com>
2527
2528         * primary.c (match_substring): Fix substring bug for start point
2529         or end point is NULL.
2530         * trans-expr.c (gfc_conv_substring): Ditto
2531         * trans-types.c (gfc_sym_type): Get correct type of scalar
2532         character variables.
2533         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
2534         derived type.
2535
2536 2003-12-10  Richard Henderson  <rth@redhat.com>
2537
2538         * options.c (gfc_post_options): Don't ever use rtl inlining.
2539
2540 2003-12-05  Canqun Yang  <canqun@nudt.edu.cn>
2541
2542         * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
2543         * trans-equivalence.c: Remove.
2544         * trans-decl.c (gfc_get_symbol_decl): Update to match.
2545         (gfc_generate_function_code): Ditto.
2546         * trans-array.c (gfc_conv_array_parameter): Ditto.
2547         * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
2548         (F95_ADDITIONAL_OBJS): Add stor-layout.o
2549         * trans.h (gfc_trans_equivalence): Remove.
2550         * gfortran.h (struct gfc_equiv): Add used field.
2551         (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
2552         equiv_offset fields.
2553
2554 2003-12-05  Richard Henderson  <rth@redhat.com>
2555
2556         * trans.c (gfc_build_addr_expr): New.
2557         (gfc_build_indirect_ref, gfc_build_array_ref): New.
2558         * trans.h: Declare them.
2559         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
2560         trans-stmt.c, trans.c (*): Use them.
2561
2562         * f95-lang.c (gfc_post_options): Remove dead prototype.
2563         * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
2564         * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
2565         allocation size.
2566
2567 2003-12-01  Feng Wang  <fengwang@nudt.edu.cn>
2568
2569         * io.c (gfc_match_format): Check for missing format label.
2570
2571 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
2572
2573         PR fortran/13155
2574         * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
2575         from interfaces in modules.
2576
2577 2003-11-30  Paul Brook  <paul@nowt.org>
2578
2579         * trans-array.c (gfc_trans_g77_array): Make non-static.
2580         (gfc_trans_assumed_size): Remove.
2581         (gfc_trans_dummy_array_bias): Explicitly free temporary.
2582         * trans-array.h (gfc_trans_g77_array): Add prototype.
2583         (gfc_trans_assumed_size): Remove.
2584         * trans-decls.c (gfor_fndecl_push_context): Remove.
2585         (gfor_fndecl_pop_context): Remove.
2586         (gfc_build_function)decls): Don't create them.
2587         (gfc_trans_deferred_vars): Update to match. Remove dead code.
2588         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
2589
2590 2003-11-30  Kejia Zhao  <kejia_zh@nudt.edu.cn>
2591
2592         * trans-array.c (gfc_conv_array_parameter): Simplify
2593         array argument passing for array name actual argument.
2594         * trans-expr.c (gfc_conv_function_call): Ditto
2595         * trans-types.c (gfc_is_nodesc_array):Ditto.
2596
2597 2003-11-30  Paul Brook  <paul@nowt.org>
2598
2599         * f95-lang.c (gfc_post_options): Move ...
2600         * options.c (gfc_post_options): .. to here.  Handle inlining options.
2601         * gfortran.h (gfc_post_options): Add prototype.
2602
2603 2003-11-28  Richard Henderson  <rth@redhat.com>
2604
2605         * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
2606
2607 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
2608
2609         * trans.h (has_alternate_specifier): New global variable.
2610         * match.c (gfc_match_call): Handle actual arguments associated with
2611         alternate return indicators.
2612         * trans-expr.c (gfc_conv_function_call): Ditto
2613         * trans-stmt.c (gfc_trans_call): Ditto
2614         (gfc_trans_return): Handle return statement with value.
2615         * trans-decl.c (gfc_generate_function_code): Handle functions with
2616         asterisk dummy.
2617         (gfc_get_fake_result_decl): Ditto
2618         * trans-types.c (gfc_get_function_type): Ditto
2619         * resolve.c (resolve_actual_arglist): Check alternate return indicators.
2620         (resolve_formal_arglist): Check asterisk dummy.
2621
2622 2003-11-27  Paul Brook  <paul@nowt.org>
2623
2624         * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
2625         allocation interface.
2626         (gfc_conv_ array_parameter): Ditto.
2627         (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
2628         * trans-array.c: Update prototype.
2629         * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
2630         (gfc_trans_auto_character_variable): Use new memory alloc interface.
2631         * trans-expr.c (gfc_conv_string_tmp): Ditto.
2632         (gfc_conv_function_call): Use gfc_conv_string_tmp.
2633         * trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
2634         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
2635         * trans.h (gfc_ss_info): Remove unused pdata field.
2636         * trans.c (gfc_create_var_np): Change T to V.
2637
2638 2003-11-26  Richard Henderson  <rth@redhat.com>
2639
2640         * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
2641         * trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
2642         FRACTION, NEAREST, SET_EXPONENT.
2643         (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
2644         Fix GTY marking.  Remove unnecessary const's.
2645         (LIBM_FUNCTION): Rename from I_LIB.
2646         (LIBF_FUNCTION): New.
2647         (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
2648         conventions.  Assume the expr signature is correct.  Mark const.
2649         (gfc_conv_intrinsic_exponent): Use library functions.
2650         (gfc_conv_intrinsic_set_exponent): Remove.
2651         (gfc_conv_intrinsic_scale): Remove.
2652         (gfc_conv_intrinsic_nearest): Remove.
2653         (gfc_conv_intrinsic_fraction): Remove.
2654         (gfc_conv_intrinsic_function): Update.
2655         * trans-decl.c (gfor_fndecl_math_exponent4): New.
2656         (gfor_fndecl_math_exponent8): New.
2657         (gfc_build_intrinsic_function_decls): Set them.
2658         * trans.h: Declare them.
2659
2660 2003-11-25  Canqun Yang  <canqun@nudt.edu.cn>
2661
2662         * trans-common.c (gfc_layout_global_equiv): Locate the error for
2663         underflow COMMON block.
2664         (gfc_trans_one_common): Fix bug for size of COMMON block containing
2665         EQUIVALENCE object. Also fix typo in an error message.
2666
2667 2003-11-25  Diego Novillo  <dnovillo@redhat.com>
2668
2669         * Make-lang.in: Add check-gfortran to lang_checks.
2670         (check-f95): Alias for check-gfortran.
2671
2672 2003-11-25  Jason Merrill  <jason@redhat.com>
2673
2674         * Make-lang.in (f95.tags): Create TAGS.sub files in each
2675         directory and TAGS files that include them for each front end.
2676
2677 2003-11-24  Paul Brook  <paul@nowt.org>
2678
2679         PR fortran/13154
2680         * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
2681
2682 2003-11-24  Paul Brook  <paul@nowt.org>
2683
2684         * expr.c (simplify_const_ref): Return SUCCESS for things we don't
2685         handle.
2686         * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
2687
2688 2003-11-24  Paul Brook  <paul@nowt.org>
2689
2690         PR fortran/13105
2691         * array.c (gfc_array_ref_shape): Handle elemental dimensions.
2692         * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
2693
2694 2003-11-20  Richard Henderson  <rth@redhat.com>
2695
2696         * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
2697         (gfc_conv_array_base): Likewise.
2698         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2699         * trans-expr.c (gfc_conv_string_tmp): Likewise.
2700         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
2701         * trans-stmt.c (gfc_trans_character_select): Likewise.
2702
2703 2003-11-13  Paul Brook  <paul@nowt.org>
2704
2705         * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
2706
2707 2003-11-13  Canqun Yang  <canqun@nudt.edu.cn>
2708
2709         * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
2710         (resolve_equivalence): New function.
2711         (resolve_equivalence_derived): New function.
2712
2713 2003-11-12  Richard Henderson  <rth@redhat.com>
2714
2715         * trans.c (gfc_trans_code): Use annotate_with_locus instead of
2716         annotate_all_with_locus.
2717
2718 2003-11-11  Canqun Yang  <canqun@nudt.edu.cn>
2719
2720         * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
2721         * trans-decl.c (gfc_finish_var_decl): Modified.
2722
2723 2003-11-08  Paul Brook  <paul@nowt.org>
2724
2725         PR fortran/12704
2726         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
2727         arrays.
2728
2729 2003-11-06  Paul Brook  <paul@nowt.org>
2730
2731         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
2732
2733 2003-11-02  Canqun Yang  <canqun@nudt.edu.cn>
2734
2735         * match.c (gfc_match_stopcode): Assign '0' to stop_code.
2736
2737 2003-10-27  Anthony Green  <green@redhat.com>
2738
2739         * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
2740         (f95.stagefeedback): Ditto.
2741
2742 2003-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
2743
2744         PR fortran/12682
2745         * Make-lang.in (f95.stageprofile): Add.
2746         (f95.stagefeedback): Add.
2747
2748 2003-10-23  Richard Henderson  <rth@redhat.com>
2749
2750         * f96-lang.c (gfc_gimplify_expr): Remove.
2751         (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
2752         (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
2753
2754 2003-10-23  Richard Henderson  <rth@redhat.com>
2755
2756         * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
2757
2758 2003-10-20  Paul Brook  <paul@nowt.org>
2759
2760         * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
2761         * trans-stmt.c (gfc_trans_do_while): Ditto.
2762
2763 2003-10-17  Paul Brook  <paul@nowt.org>
2764
2765         * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
2766
2767 2003-10-17  Paul Brook  <paul@nowt.org>
2768
2769         * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
2770
2771 2003-10-17  Feng Wang  <wf_cs@yahoo.com>
2772
2773         * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
2774         (gfc_resolve_minloc): Ditto.
2775         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
2776         Return the value after subtracting the lower bound.
2777
2778 2003-10-16  Richard Henderson  <rth@redhat.com>
2779
2780         * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
2781
2782 2003-10-16  Steven Bosscher  <steven@gcc.gnu.org>
2783
2784         * lang.c: Remove -M option for now, it's in the way for C.
2785
2786 2003-10-14  Jason Merrill  <jason@redhat.com>
2787
2788         * Make-lang.in (f95.tags): New rule.
2789
2790 2003-10-13  Richard Henderson  <rth@redhat.com>
2791
2792         * trans.c (gfc_trans_code): Use annotate_all_with_locus.
2793
2794 2003-10-13  Paul Brook  <paul@nowt.org>
2795
2796         * trans-decl.c (generate_local_decl): Don't create junk variables.
2797
2798 2003-10-13  Paul Brook  <paul@nowt.org>
2799
2800         * resolve.c (resolve_formal_arglist): Use function result decl in
2801         preference to function decl.
2802
2803 2003-10-12  Richard Henderson  <rth@redhat.com>
2804
2805         * f95-lang.c (gfc_define_builtin): New const_p argument.  Set
2806         TREE_READONLY.  Update all callers.
2807
2808 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
2809
2810         * iresolve.c (gfc_resolve_cshift): Change to match implementation.
2811         * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
2812         (gfc_is_intrinsic_libcall): Add CSHIFT.
2813
2814 2003-10-12  Richard Henderson  <rth@redhat.com>
2815
2816         * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
2817         (gfc_trans_array_constructor_value): Likewise.
2818         (gfc_conv_array_initializer): Likewise.
2819         * trans-stmt.c (gfc_trans_character_select): Likewise.
2820
2821 2003-11-12  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2822
2823         * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
2824
2825 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
2826
2827         * check.c (gfc_check_repeat): Check arguments are scalar.
2828         (gfc_check_trim): New function.
2829         * intrinsic.h (gfc_check_trim): Add prototype.
2830         * intrinsic.c (add_functions): Use it.
2831         * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
2832         Decalare.
2833         * trans-decl.c: Ditto.
2834         (gfc_build_intrinsic_fucntion_decls): Set them.
2835         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
2836         (gfc_conv_intrinsic_trim): New function.
2837         (gfc_conv_intrinsic_repeat): New function.
2838         (gfc_conv_intrinsic_function): Use them.
2839
2840 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
2841
2842         * trans-types.c (gfc_sym_type): Handle result variables.
2843
2844 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
2845
2846         * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
2847         gfc_get_character_type.
2848
2849 2003-10-11  Feng Wang  <wf_cs@yahoo.com>
2850
2851         * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
2852
2853 2003-10-11  Paul Brook  <paul@nowt.org>
2854
2855         * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
2856         (gfc_resolve_dprod): New function.
2857         (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
2858         * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
2859         (gfc_resolve_dprod): Declare.
2860         * intrinsic.c (add_functions): Use them.
2861         * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
2862
2863 2003-10-06  Richard Henderson  <rth@redhat.com>
2864
2865         * f95-lang.c (gfc_init_builtin_functions): Add clzll.
2866         * trans-intrinsic.c (call_builtin_clz): Use it.
2867
2868 2003-10-05  Paul Brook  <paul@nowt.org>
2869
2870         * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
2871         * trans-decl.c (gfc_generate_function_code): Set
2872         cfun->function_end_locus.
2873
2874 2003-09-24  Jason Merrill  <jason@redhat.com>
2875
2876         * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
2877         TREE_LOCUS.
2878
2879 2003-09-21  Lifang Zeng  <zlf605@hotmail.com>
2880         Paul Brook  <paul@nowt.org>
2881
2882         * Make-lang.in (F95_OBJS): Add fortran/data.o.
2883         * array.c (gfc_inser_constructor): New function.
2884         (gfc_get_constructor): New function.
2885         (gfc_free_constructor): Initialize offset and repeat.
2886         (iterator_stack): Remove.
2887         (expand_info): Add offset, component and repeat fields.
2888         (expand_constructor): Set them.
2889         (expand): Set new fields.
2890         (gfc_copy_constructor): Ditto. Avoid recursion.
2891         * gfortran.h: Add prototypes for new functions.
2892         (gfc_constructor): Add offset, component and repeat.
2893         (iteratio_stack): Move to here.
2894         * resolve.c (check_data_variable): Convert data values into variable
2895         initializers.
2896         (traverse_data_list): Build implicit loop chain.
2897         (gfc_resolve): Ditto.
2898         * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
2899         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
2900         * trans-expr.c (gfc_conv_structure): Handle array initializers.
2901         (gfc_conv_expr): Update to match.
2902         * trans.h (gfc_conv_structure): Declare.
2903         * data.c: New file.
2904
2905 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2906
2907         * trans.h: Add declarations for gfor_fndecl_si_kind and
2908         gfor_fndecl_sr_kind.
2909         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
2910         * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
2911         (g95_conv_intrinsic_sr_kind): New function.
2912         (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
2913         SELECTED_REAL_KIND.
2914
2915 2003-09-17  Lars Segerlund  <Lars.Segerlund@comsys.se>
2916
2917         * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
2918         instead of _4 and _8 as postfix for libgfortran calls.
2919
2920 2003-09-16  Paul Brook  <paul@nowt.org>
2921
2922         * array.c (compare_bounds): New function.
2923         (gfc_compare_array_spec): Use it.
2924
2925 2003-09-14  Paul Brook  <paul@nowt.org>
2926
2927         * primary.c (gfc_match_rvalue): Make sure sym->result is set.
2928         * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
2929
2930 2003-09-14  Paul Brook  <paul@nowt.org>
2931
2932         * check.c (dim_rank_check): Allow assumed bounds if requested.
2933         (gfc_check_lbound): Call it.
2934         (gfc_check_ubound): Ditto.
2935         (gfc_check_size): Change to match.
2936         * simplify.c (gfc_simplify_bound): New function.
2937         (gfc_simplify_lbound): New function.
2938         (gfc_simplify_ubound): New function.
2939         * intrinsic.h: Declare them.
2940         * intrinsic.c (add_functions): Use them.
2941
2942 2003-09-14  Paul Brook  <paul@nowt.org>
2943
2944         * io.c (format_lex): Initialize negative_flag.
2945         (check_format): Intialize repeat.
2946         * trans-io.c (gfc_new_nml_name_expr): Declare static.
2947         (gfc_new_var_expr): Ditto.
2948
2949 2003-09-14  Paul Brook  <paul@nowt.org>
2950
2951         * trans-array.c (gfc_conv_array_initializer): Handle derived types.
2952         * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
2953
2954 2003-09-12  Paul Brook  <paul@nowt.org>
2955
2956         * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
2957
2958 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2959
2960         * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
2961         for a correct expression.
2962
2963 2003-09-10  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2964
2965         * trans-intrinsic.c (real_compnt_info): New struct.
2966         (prepare_arg_info): New function.
2967         (gfc_conv_intrinsic_set_exponent): New function.
2968         (gfc_conv_intrinsic_scale): New function.
2969         (gfc_conv_intrinsic_nearest): New function.
2970         (gfc_conv_intrinsic_fraction): New function.
2971         (gfc_conv_intrinsic_exponent): New function.
2972         (gfc_conv_intrinsic_spacing): New function.
2973         (gfc_conv_intrinsic_rrspacing): New function.
2974         (gfc_conv_intrinsic_function): Use them.
2975
2976 2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>
2977
2978         * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
2979         build_int_2 changed from (high, low) to (low, high).
2980         * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
2981         ioparm_namelist_read_mode, iocall_set_nml_val_int,
2982         iocall_set_nml_val_float, iocall_set_nml_val_char,
2983         iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
2984         (gfc_build_io_library_fndecls): Add variable initialization.
2985         (gfc_new_nml_name_expr, get_new_var_expr): New function.
2986         (build_dt): Add namelist support.
2987         * io.c (value): New variable.
2988         (check_format): Support FMT_H now.
2989
2990 2003-09-07  Paul Brook  <paul@nowt.org>
2991
2992         * io.c (gfc_resolve_dt): Error if format label is not defined.
2993
2994 2003-09-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
2995
2996         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
2997         about case_switch's break. The other is about building the condition
2998         statement tree, which judges the argument in the range of the
2999         corresponding integer type.
3000         * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
3001         for the large values.
3002
3003 2003-09-05  Paul Brook  <paul@nowt.org>
3004
3005         * f95-lang.c (expand_function_body): Gimplify the function.
3006
3007 2003-09-04  Jeff Law  <law@redhat.com>
3008
3009         * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
3010         index zero!
3011
3012 2003-09-04  Paul Brook  <paul@nowt.org>
3013
3014         * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
3015         (gfc_expand_stmt): New function.
3016         (LANG_HOOKS_RTL_EXPAND_STMT): Define.
3017         (expand_function_body): Use tree_rest_of_compilation.
3018         * trans-decl.c (gfc_generate_function_code): Don't free cfun.
3019
3020 2003-09-03  Jeff Law  <law@redhat.com>
3021
3022         * f95-lang.c (gfc_init_builtin_functions): C arrays start at
3023         index zero!
3024
3025 2003-08-30  Paul Brook  <paul@nowt.org>
3026
3027         * f95-lang.c (builtin_function): Remove #if 0 code.
3028         (gfc_define_builtin): New function.
3029         (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
3030         * mathbuiltins.def: New file.
3031         * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
3032         (gfc_intrinsic_map): Use mathbuiltins.def.
3033         (gfc_intrinsic_builtin_t): Remove.
3034         (gfc_build_intrinsic_lib_fndecls): Update.
3035         * trans-types.c (gfc_init_types): Remove redundant initilaization of
3036         signed_size_type_node.
3037
3038 2003-08-29  Paul Brook  <paul@nowt.org>
3039
3040         * arith.c (gfc_real_kinds): Use correct minimum exponents.
3041
3042 2003-08-22  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3043
3044         * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
3045         (gfc_conv_intrinsic_function): Add MODULO.
3046
3047 2003-08-22  Jason Merrill  <jason@redhat.com>
3048
3049         * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
3050
3051 2003-08-22  Andreas Jaeger  <aj@suse.de>
3052
3053         * Make-lang.in (f95.install-common): Add DESTDIR support.
3054         * (f95.install-info): Likewise.
3055         (f95.uninstall): Likewise.
3056
3057 2003-08-19  Diego Novillo  <dnovillo@redhat.com>
3058
3059         * trans-types.c (gfc_init_types): Initialize
3060         signed_size_type_node with size_type_node.
3061
3062 2003-08-18  Paul Brook  <paul@nowt.org>
3063
3064         * dependency.c (gfc_dependency): New enum.
3065         (check_another_array_ref): Remove.
3066         (gfc_get_array_from_component): Remove.
3067         (get_x): Remove.
3068         (get_range): Remove.
3069         (get_no_of_elements): Use mpz_t, not mpf_t.
3070         (transform_sections): New function.
3071         (gfc_check_range_range): Rename ...
3072         (gfc_check_section_vs_section): ... to this.  Use new function.
3073         (gfc_is_inside_range): Rewrite to match.
3074         (gfc_check_element_vs_section): Ditto.
3075         (gfc_check_element_vs_element): Ditto.
3076         (get_deps): Ditto.
3077         (gfc_dep_resolver): Ditto.  Remove unused parameter.
3078         * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
3079         gfc_check_element_vs_element, gfc_is_inside_range,
3080         gfc_get_array_from_component): Remove prototypes for static functions.
3081         (gfc_dep_resolver): Update prototype.
3082         * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
3083
3084 2003-08-15  Paul Brook  <paul@nowt.org>
3085
3086         * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
3087         return values to parent scope.
3088         (gfc_build_dummy_array_decl): Ditto.
3089
3090 2003-08-14  Paul Brook  <paul@nowt.org>
3091
3092         * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
3093         size of the type, not the pointer.
3094         * resolve.c (resolve_symbol): Give more accurate error message.
3095
3096 2003-08-10  Paul Brook  <paul@nowt.org>
3097
3098         * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
3099
3100 2003-08-10  Paul Brook  <paul@nowt.org>
3101
3102         * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
3103         type components.
3104
3105 2003-08-10  Chun Huang  <compiler@sohu.com>
3106
3107         * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
3108         (resolve_symbol): Ditto.
3109         * trans-expr.c (gfc_conv_statement_function): New function.
3110         (gfc_conv_function_expr): Use it.
3111
3112 2003-08-10  Paul Brook  <paul@nowt.org>
3113
3114         * trans-array.c (gfc_conv_ss_startstride): Handle functions.
3115         (walk_function_expr): Set section rank.
3116         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
3117
3118 2003-08-10  Paul Brook  <paul@nowt.org>
3119
3120         * intrinsic.c (add_sym): Prefix names with correct string.
3121         (add_sym_0s): New function.
3122         (add_subroutines): Register abort.
3123
3124 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
3125
3126         * gfortran.h: Introduce options to control the mangling.
3127         * lang.opt: Likewise.
3128         * options.c (gfc_init_options): Handle the options.
3129         * trans-common.c (gfc_sym_mangled_common_id): New function.
3130         (gfc_build_common_decl): Call it.
3131         * trans-decl.c (gfc_sym_mangled_function_id): New function.
3132         (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
3133
3134 2003-08-09  Paul Brook  <paul@nowt.org>
3135
3136         * module.c (mio_symbol): Always ouput a namespace for formal args.
3137         (load_needed): Namespace now belong to their proper symbol.
3138         (gfc_dump_module): Change G95=>GFORTRAN.
3139
3140 2003-08-05  Paul Brook  <paul@nowt.org>
3141
3142         * options.c: Force -fg77-calls.
3143
3144 2003-08-02  Paul Brook  <paul@nowt.org>
3145
3146         * Makelang.in: Rename G95_* to GFORTRAN_*.
3147         * All sources: Rename G95_* to GFC_*.
3148
3149 2003-08-01  Paul Brook  <paul@nowt.org>
3150
3151         * fortran/Make-lang.in: Use GMPLIBS.
3152         * fortran/config-lang.in: Set need_gmp.
3153         * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
3154
3155 2003-07-27  Andreas Jaeger  <aj@suse.de>
3156
3157         * trans-decl.c (gfc_generate_constructors): Convert prototype to
3158         ISO C90.
3159         * trans-const.c (gfc_init_constants): Likewise.
3160         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
3161
3162         * gfortranspec.c: Convert to ISO C90.
3163         (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
3164
3165 2003-07-26  Paul Brook  <paul@nowt.org>
3166
3167         * lang.opt: Add -fdump-parse-tree.
3168         * options.c (gfc_handle_option): Ditto.
3169         * resolve.c (resolve_forall_iterators): Convert to proper type.
3170         * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
3171
3172 2003-07-26  Paul Brook  <paul@nowt.org>
3173
3174         * Makefile.in: Add build dependencies on files common with rest of gcc.
3175
3176 2003-07-26  Lifang Zeng  <zlf605@hotmail.com>
3177
3178         * trans.h: Declare g95_trans_pointer_assignment.
3179         * trans-expr.c (g95_trans_pointer_assignment): New function.
3180         (g95_trans_pointer_assign): Use it.
3181         * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
3182         (g95_trans_pointer_assign_need_temp): New function.
3183
3184 2003-07-26  Paul Brook  <paul@nowt.org>
3185
3186         * gfortran.texi: Replace references to g95.
3187
3188 2003-07-26  Paul Brook  <paul@nowt.org>
3189
3190         Rename g95_* to gfc_*.
3191
3192 2003-07-25  Paul Brook  <paul@nowt.org>
3193
3194         * gfortran.h: Rename from g95.h.
3195         * trans-types.c (boolean_type_node, booelan_true_node,
3196         boolean_false_node): Remove.
3197         * trans-types.h: Ditto.
3198
3199 2003-07-25  Chun Huang  <compiler@sohu.com>
3200
3201         * parse.c (accept_statement): Implement BLOCK DATA statement.
3202         * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
3203         variables.
3204
3205 2003-07-24  Lifang Zeng  <zlf605@hotmail.com>
3206
3207         * trans-stmt.c (temporary_list): Define.
3208         (g95_trans_assign_need_temp): New function.
3209         (g95_trans_forall_1): Modified for WHERE.
3210         (g95_trans_where_assign): Modified.
3211         (g95_trans_where_2): Modified.
3212         (g95_evaluate_where_mask): Modified.
3213         (g95_trans_where): Modified.
3214         (g95_get_temp_expr): Removed.
3215         (g95_add_to_where_stmt_list): Removed.
3216         (compute_overall_iter_number): Modified for WHERE.
3217         * trans.h: Remove where_stmt_list.
3218
3219 2003-07-24  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3220
3221         * lang.opt: Correct description of options -J and -M.
3222
3223 2003-07-23  Steven Bosscher   <steven@gcc.gnu.org>
3224
3225         * lang.opt: Move help text to here.
3226         * lang-options.h: Remove.
3227
3228 2003-07-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3229         * iresolve.c (g95_resolve_transpose): Proper variable in switch.
3230         * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
3231         on kind.
3232
3233 2003-07-22  Steven Bosscher  <steven@gcc.gnu.org>
3234         Paul Brook  <paul@nowt.org>
3235
3236         * check.c (check_rest): Use global pedantic flag.
3237         * io.c (data_desc): Ditto.
3238         * error.c (g95_warning, g95_warning_now): Use global flag.
3239         * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
3240         (expand_function_body): Update to new prototypes.
3241         (g95_init): Use new option names.
3242         * g95.h (g95_option_t): Standardize names.
3243         (g95_init_options, g95_handle_option): Update prototypes.
3244         * interface.c: Use new option names.
3245         * match.c: Ditto.
3246         * module.c: Ditto.
3247         * parse.c: Ditto.
3248         * primary.c: Ditto.
3249         * resolve.c: Ditto.
3250         * scanner.c: Ditto.
3251         * simplify.c: Ditto.
3252         * symbol.c: Ditto.
3253         * trans-array.c: Ditto.
3254         * trans-expr.c: Ditto.
3255         * trans-types.c: Ditto.
3256         * trans-decl.c: Ditto.
3257         (g95_build_library_function_decl): Remove obsolete VPARAMS.
3258         * trans.h: Ditto.
3259         * options.c (g95_display_help): Remove.
3260         (g95_init_options): Convert to new scheme.
3261         (set_Wall): Ditto
3262         (g95module_option): Ditto, rename from g95_parse_arg.
3263         (g95_handle_module_path_options): New function.
3264         * trans-equivalence.c: Fix error message.
3265         * lang.opt: Corrections.
3266
3267 2003-07-21  Steven Bosscher  <steven@gcc.gnu.org>
3268
3269         * lang.opt: New file.
3270
3271 2003-07-21  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3272
3273         * decl.c (match_attr_spec): Set colon_seen.
3274
3275 2003-07-14  Paul Brook  <paul@nowt.org>
3276
3277         * trans-array.c: Update comment.
3278         (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
3279         * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
3280         minmaxloc,minmaxval): Ditto.
3281         * trans-io.c (g95_trans_transfer): Ditto.
3282         * trans-stmt.c: Remove unneeded prototypes.
3283         (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
3284         (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
3285         (compute_inner_temp_size): Remove bits of dead code. Add comments.
3286         Don't share loopinfo.
3287         (compute_overall_iter_number): Declare as static.
3288         (allocate_temp_for_forall_nest): Ditto.
3289         (g95_trans_forall_1): Don't pass shared loopinfo.
3290         * trans.c (g95_start_block): Expand comment.
3291
3292 2003-07-12  Paul Brook  <paul@nowt.org>
3293
3294         * arith.c (g95_index_integer_kind): Remove unused initializer.
3295         * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
3296         index by size of element.
3297         (generate_loop_for_rhs_to_temp): Ditto.
3298         (allocate_temp_for_forall_nest): Use element size, not index size.
3299
3300 2003-07-11  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3301
3302         * arith.c (g95_index_integer_kind): Add a TODO.
3303         * simplify.c (g95_simplify_nearest): Add a TODO.
3304
3305 2003-07-09  Chun Huang  <compiler@sohu.com>
3306
3307         * trans.h: Add declarations for gfor_fndecl_string_scan and
3308         gfor_fndecl_string_verify.
3309         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
3310         * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
3311         (g95_conv_intrinsic_verify): New function.
3312         (g95_conv_intrinsic_function): Add SCAN and VERIFY.
3313         * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
3314         of parameter 'BACK=.TRUE.'
3315
3316 2003-07-05  Lifang Zeng  <zlf605@hotmail.com>
3317
3318         * trans-stmt.c (iter_info, forall_info): Define.
3319         (g95_trans_forall_block): Remove.
3320         (g95_trans_forall_loop): Use forall info blocks.
3321         (g95_trans_nested_forall_loop): New function.
3322         (g95_do_allocate): Handle things other than logical masks.
3323         (generate_loop_for_temp_to_lhs): New function.
3324         (generate_loop_for_rsh_to_temp): New function.
3325         (compute_inner_temp_size): New function.
3326         (compute_overall_iter_number): New function.
3327         (allocate_temp_for_forall_nest): New function.
3328         (g95_trans_forall): Move body ...
3329         (g95_trans_forall_1): ... to here.  Handle loops with temporaries.
3330
3331 2003-07-02  Paul Brook  <paul@nowt.org>
3332
3333         * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
3334         in correct scope.  Change callers to match.
3335         * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
3336         * iresolve.c (g95_resolve_reshape): Only use constant shapes.
3337
3338 2003-07-02  Paul Brook  <paul@nowt.org>
3339
3340         * trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
3341         expression shape for all expressions.
3342         * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
3343
3344 2003-07-03  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3345
3346         * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
3347         g95_parse_arg), intrinsic.c (g95_convert_type): support of
3348         -Wconversion.
3349         * intrinsic.c, g95.h: Add g95_convert_type_warn,
3350         * resolve.c (g95_resolve_index): Call it.
3351
3352 2003-07-02  Paul Brook  <paul@nowt.org>
3353
3354         * iresolve.c (g95_resolve_reshape): Set expression shape.
3355         (g95_resolve_shape): Ditto.
3356         * simplify.c (g95_simplify_shape): Move common code outside condition.
3357         * trans-array.c (g95_conv_array_initializer): Teach it how to count.
3358
3359 2003-07-01  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3360
3361         * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
3362         conformance checks.
3363
3364 2003-06-29  Paul Brook  <paul@nowt.org>
3365
3366         * array.c (g95_simplify_iterator_var): Don't bother with return value.
3367         * expr.c (find_array_element, find_component_ref): New functions.
3368         (remove_subobject_ref): New function.
3369         (simplify_const_ref): Use them.  Rename from simplify_component_ref.
3370         (simplify_ref_chain): New function.
3371         (g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
3372         (g95_specification_expr): Simplify the expression.
3373         * resolve.c (resolve_operator): Check simplifications return code.
3374         (g95_resolve_expr): Ditto.
3375
3376 2003-06-26  Paul Brook  <paul@nowt.org>
3377
3378         * expr.c (simplify_component_ref): New function.
3379         (g95_simplify_expr): Use it.
3380         * resolve.c (resolve_structure_cons): Handle references.
3381
3382 2003-06-25  Paul Brook  <paul@nowt.org>
3383
3384         * trans-io.c (build_dt): Handle internal units.
3385
3386 2003-06-25  Canqun Yang  <canqun@yahoo.com.cn>
3387
3388         * trans-common.c (g95_build_common_decl): Array index range starts at 0.
3389         (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
3390         Use g95_array_index_type instead of integer_type_node.
3391         (g95_build_common_decl, g95_set_common_master_type): Use
3392         g95_character1_type_node instead of char_type_node.
3393         * trans-equivalence.c (g95_layout_local_equiv): As above.
3394
3395 2003-06-24  Steven G. Kargl  <kargls@attbi.com>
3396
3397         * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
3398         remove last remains of -fquiet.
3399
3400 2003-06-22  Paul Brook  <paul@nowt.org>
3401
3402         * resolve.c (resolve_operator): Don't fail if we can't simplify.
3403         (g95_resolve_expr): Ditto.
3404         (resolce_code): Mark as static.
3405         * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
3406         gimplifer doesn't (yet).
3407
3408 2003-06-20  Paul Brook  <paul@nowt.org>
3409
3410         * g95.h: Add ST_PAUSE and EXEC_PAUSE.
3411         * match.c (g95_match_if): Add ST_PAUSE.
3412         (g95_match_stopcode): New function.
3413         (g95_match_pause, g95_match_stop): Use it.
3414         * parse.c (g95_ascii_statement): Handle ST_PAUSE.
3415         (decode_stmt, next_statement, parse_executable): Ditto.
3416         * resolve.c (resolve_code): Ditto.
3417         * st.c (g95_free_statement): Ditto.
3418         * trans-stmt.c (g95_trans_pause): New function.
3419         * trans-stmt.h: Declare it.
3420         * trans.c (g95_trans_code): Use it.
3421         * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
3422         Declare.
3423         (g95_build_builtin_function_decls): Initialize them.
3424         * trans.h: Ditto.
3425         * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
3426
3427 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3428
3429         * io.c (g95_match_open , g95_match_close, g95_match_inquire,
3430         match_filepos): Fix error handling.
3431
3432 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3433
3434         * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
3435         Add assertions on arguments.
3436         * resolve.c (expression_shape): Remove useless &.
3437         * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
3438         g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
3439         g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
3440         g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
3441         g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
3442         g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
3443         (g95_simplify_not, g95_simplify_scale): Add assertions.
3444
3445 2003-06-15  Paul Brook  <paul@nowt.org>
3446
3447         Clean up stuff to work with the ssa optimizers.
3448         * convert.c (convert): Handle BOOLEAN_TYPEs.
3449         * f95-lang.c (g95_truthvalue_conversion): Implement.
3450         * trans-array.c (g95_trans_array_constructor_value): Group multiple
3451         scalar values.
3452         * trans.h (g95_truthvalue_conversion): Declare.
3453         * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
3454         * trans-stmt.c (g95_trans_character_select): Don't create array
3455         assignments.  Mark labels as indirect jump targets.
3456         * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
3457         (g95_get_dtype_cst): Handle LOGICAL types.
3458
3459 2003-06-14  Paul Brook  <paul@nowt.org>
3460
3461         * f95-lang.c (g95_gimplify_expr): New function.
3462         * trans-array.c (g95_trans_array_constructor_value): Don't create
3463         array assignments.
3464         (g95_conv_expr_descriptor): Rename simple->gimple.
3465         * trans-expr.c (conv_expr_op): Use proper logical operators.
3466         * trans-intrinsic.c (build_fixbound_expr): New function.
3467         (build_fix_expr): Ditto.
3468         (g95_conv_intinsic_aint): Use them. Use builtin functions.
3469         (g95_conv_intrinsic_function): Add FLOOR and CEILING.
3470
3471 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3472
3473         * array.c (g95_compare_array_spec): Remove unreachable code.
3474         * expr.c (g95_copy_expr): Likewise.
3475         * intrinsic.c (g95_convert_type): Likewise.
3476         * misc.c (g95_code2string): Likewise.
3477         * simplify.c (g95_simplify_ishft, g95_simplify_real,
3478         g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
3479         * trans-stmt.c (g95_trans_select): Likewise.
3480         * primary.c (extend_ref): Add an assertion.
3481         * simplify.c (g95_convert_constant): Add const.
3482         * intrinsic.h: Remove g95_check_x_ni.
3483         * f95-lang.c (g95_finish): Call g95_release_include_path.
3484
3485 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3486
3487         * resolve.c (resolve_contained_functions): Fix typo introduced on
3488         2003-01-13.
3489
3490 2003-06-09  Paul Brook  <paul@nowt.org>
3491
3492         * g95.h: Include system.h not hwint.h.
3493         * many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
3494         * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
3495
3496 2003-06-09  Paul Brook  <paul@nowt.org>
3497
3498         * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
3499         * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
3500         * trans-decl.c (g95_add_decl_to_functions): Make non-static.
3501         (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
3502         (g95_generate_function_code): Translate COMMON and EQUIVALENCE
3503         objects.
3504         * trans.h (g95_trans_equivalence, g95_trans_common,
3505         g95_add_decl_to_function): Declare.
3506         * trans-common.c, trans-equivalence.c: New files.
3507
3508 2003-06-08  Steven Bosscher  <steven@gcc.gnu.org>
3509
3510         * intrinsic.c (g95_intrinsic_extension): Remove.
3511         (add_functions): Substitute g95_check_x for g95_check_x_ni
3512         everywhere.
3513         (g95_init_expr_extensions): New function.
3514         (g95_intrinsic_func_interface): Use it.
3515         * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
3516         * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
3517         g95_check_precision, g95_check_present, g95_check_radix,
3518         g95_check_range, g95_check_selected_real_kind): Do not set
3519         g95_intrinsic_extension.
3520         (g95_check_x_ni): Remove now duplicate of g95_check_x.
3521
3522         * expr.c (check_inquiry): Add FIXME, fixup some code style.
3523
3524 2003-06-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3525
3526         * g95.h (ref_type): Name this type explicitly.
3527         * module.c (MIO_NAME): Add specialisations of mio_name.
3528         (mio_symbol_attribute, mio_typespec, mio_array_ref,
3529         mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
3530         (ab_attribute): Name this type explicitly.
3531         (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
3532
3533 2003-06-05  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3534
3535         * trans-intrinsic.c (g95_conv_allocated): New function.
3536         (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
3537
3538 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
3539
3540         * f95-lang.c: Don't include g95-support.h
3541         (g95_mark_addressable): Add prototype.
3542         (g95_init_decl_processing): Remove C front end hack.
3543         * f95-tree.c: Remove file.
3544         * support.c: Remove file.
3545         * g95-support.h: Remove file.
3546         * trans-types.c (g95_init_types): Set up boolean
3547         type related tree nodes.
3548         * Make-lang.in: Remove rules for dead files and
3549         dependencies on them.
3550
3551 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
3552
3553         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
3554         C front end dependency.  Also, convert.c does not depend on
3555         g95-support.h anymore.
3556         * convert.c: Don't include c-common.h and g95-support.h
3557         * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
3558         (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
3559         stmts_are_full_exprs_p, current_stmt_tree,
3560         current_scope_stmt_stack): Remove.
3561         * g95-support.h (unsigned_conversion_warning): Kill proto.
3562         (boolean_type_node, boolean_true_node, boolean_false_node):
3563         Don't define here.  Instead, make then true tree nodes in
3564         trans-types.
3565         * support.c (c_global_trees): Die, C front end, die!!!
3566         (g95_init_c_decl_hacks): Don't touch intmax_type_node,
3567         uintmax_type_node, string_type_node and const_string_type_node.
3568         (decl_constant_value, overflow_warning): Make static functions.
3569         They are in death row too, though.
3570         (default_conversion, c_expand_asm_operands): Remove.
3571         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
3572         trans.c: Don't include c-common.h.
3573         * trans-types.c (boolean_type_node, boolean_true_node,
3574         boolean_false_node): Make them real tree nodes.
3575         * trans-types.h (intmax_type_node, string_type_node,
3576         const_string_type_node): Hack to work around C dependencies
3577         in builtin-types.def.
3578
3579 2003-06-04  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3580
3581         * decl.c (decl_types): Add some iterators-like sentinels.
3582         * decl.c (match_attr_spec): Use them.
3583         Use "decl_types" instead of "int".
3584         Add cast in call to g95_match_strings.
3585         * dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
3586         instead of "int".
3587         * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
3588         (g95_interface_info): Use "g95_intrinsic_op".
3589         * dump-parse-tree.c (g95_show_namespace): Use them.
3590         * interface.c (g95_check_interfaces): Use them.
3591         * module.c (read_module, write_module): Use them.
3592         * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
3593         Use "g95_intrinsic_op".
3594         * interface.c (check_operator_interface): Use "g95_intrinsic_op".
3595         Add a default case in switch statement.
3596         * intrinsic.h (g95_generic_isym_id): Moved to...
3597         * g95.h (g95_generic_isym_id): here.
3598         (g95_intrinsic_sym): Use "g95_generic_isym_id".
3599         * intrinsic.c (make_generic): Use "g95_generice_isym_id".
3600         * trans-intrinsic.c (g95_intrinsic_map_t,
3601          g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
3602         * match.c (g95_match_intrinsic_op): Add cast in call to
3603         g95_match_strings.
3604
3605 2003-06-03  Steven Bosscher  <steven@gcc.gnu.org>
3606
3607         * support.c (skip_evaluation, warn_conversion, lvalue_p,
3608         lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
3609         constant_fits_type_p, convert_and_check,
3610         unsigned_conversion_warning): Remove these ugly remnants
3611         we inherited from the C front end.
3612         (function_types_compatible): Remove '#if 0'-edcode.
3613         (build_modify_expr): Likewise.
3614         (convert_for_assignment): Don't use the deceased functions.
3615         The parameter fundecl is now unused.
3616         (decl_constant_value): Always just return decl.  In fact
3617         this function is not used at present, but it might be in
3618         the future, when we start using the tree inliner.
3619         (overflow_warning, default_conversion, c_expand_asm_operands):
3620         Abort when these are called, they are part of the C type
3621         checking implementation and therefore poison to Fortran.
3622
3623 2003-06-04  Steven Bosscher  <steven@gcc.gnu.org>
3624
3625         * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
3626         c-pretty-print.o and c-dump.o.  Add a comment on why we
3627         depend on c-semantics.c.
3628         * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
3629         Don't use the C front end tree dumper hook to dump the
3630         language specific tree representation -- we don't have
3631         one.  So instead, inherit the default langhook.
3632
3633 2003-06-02  Paul Brook  <paul@nowt.org>
3634
3635         * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
3636
3637 2003-06-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3638
3639         * check.c (g95_check_associated): Use proper types.  Remove
3640         extraneous argument in call to g95_error().
3641
3642 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3643
3644         * resolve.c (resolve_operator): Make logical operands convert to the
3645         type with higher kind.
3646
3647 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3648
3649         * check.c (g95_check_associated): Make sure both pointer and target has
3650         the same type and rank. Null pointer or array section with vector
3651         subscript as target are not allowed.
3652         * trans.h: Declare gfor_fndecl_associated.
3653         * trans-decl.c: (g95_build_builtin_function_decls): Initialize
3654         gfor_fndecl_associated.
3655         * trans-intrinsic.c (g95_conv_associated): New function.
3656         (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
3657
3658 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3659
3660         * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
3661         according to POINTER itself rather than TARGET.
3662         (g95_conv_expr_descriptor): Make lbound start at 1.
3663         * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
3664
3665 2003-06-01  Paul Brook  <paul@nowt.org>
3666
3667         * expr.c (g95_type_convert_binary): Make it match the standard.
3668         * g95.texi: Remove dead link.
3669
3670 2003-06-01  Steven Bosscher  <steven@gcc.gnu.org>
3671
3672         * g95.texi: Cleanup somewhat in preparation for inclusion
3673         in GCC CVS.
3674
3675 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3676             Canqun Yang  <canqun@yahoo.com.cn>
3677
3678         * resolve.c (compare_bound_int, resolve_where_shape): Proper return
3679         type.
3680         (g95_find_forall_index): Return proper value.
3681         (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
3682         compare the return value from g95_find_forall_index.
3683
3684 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3685         * g95.h, io.c (g95_st_label): Remove "length".
3686         (g95_symtree): Remove "link".
3687         (g95_case): Remove "code".
3688         * arith.c, arith.h (g95_compare_string, g95_convert_integer,
3689         g95_convert_real): Make an argument pointer to const.
3690         * decl.c (colon_seen): Add a TODO.
3691         * interface.c (g95_compare_types): Fix typo.
3692         * interface.c (compare_interfaces): Preserve value of "p".
3693         * intrinsic.c (sort_actual): Remove "i".
3694         * match.c (g95_match_assign): Proper type in call to g95_match().
3695         * parse.c (next_free): Avoid duplicate call due to macro.
3696         * parse.c (check_statement_label): wrong type in call to g95_error.
3697         * primary.c (match_real_constant): Add a TODO.
3698         * resolve.c (resolve_select):  Remove useless conditional.
3699         * simplify.c (g95_simplify_repeat): Proper assignment to
3700         "value.character.string".
3701         * simplify.c (g95_simplify_reshape): Wrong variable in call to
3702         g95_error.
3703
3704 2003-05-20  Canqun Yang  <canqun@yahoo.com.cn>
3705
3706         * trans-stmt.c: Remove unnecessary include file defaults.h.
3707
3708 2003-05-19  Lifang Zeng  <zlf605@hotmail.com>
3709
3710         * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
3711         stride.
3712         (g95_trans_forall): Allow arbitrary number of FORALL indexes and
3713         actual variables used as FORALL indexes.
3714
3715 2003-05-15  Paul Brook  <paul@nowt.org>
3716
3717         * trans-array.c (g95_trans_static_array_pointer): Use
3718         null_pointer_node.
3719         (g95_trans_deferred_array): Initialize static array pointers.
3720         * trans-expr.c (g95_conv_function_call): Use formal arglist to
3721         correctly pass POINTER and absent CHARACTER arguments.
3722
3723 2003-05-14  Lifang Zeng  <zlf605@hotmail.com>
3724
3725         * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
3726         (g95_resolve_forall_body): Resolve FORALL body.
3727         (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
3728         (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
3729         (g95_find_forall_index): Check whether the FORALL index appears in
3730         the expression or not.
3731         (resolve_code): Modified.
3732
3733 2003-05-14  Paul Brook  <paul@nowt.org>
3734
3735         * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
3736
3737 2003-05-13  Paul Brook  <paul@nowt.org>
3738
3739         * trans-types.c (g95_max_array_element_size): Now a tree node.
3740         (g95_init_types): Work out max size properly.
3741         (g95_get_dtype_cst): Modify to match.
3742
3743 2003-05-11  Paul Brook  <paul@nowt.org>
3744
3745         * trans-io.c (add_case): Create a label decl for case labels.
3746
3747 2003-05-11  Paul Brook  <paul@nowt.org>
3748
3749         * arith.c (g95_integer_index_kind): New variable.
3750         * f95-lang.c (g95_init): Move frontend initialization here ...
3751         (g95_post_options): ... from here.
3752         * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
3753         * intrinsic.c (add_functions): Use index kinds.
3754         * iresolve.c: Convert to index_kind where needed.
3755         * resolve.c (g95_resolve_index): Make public, use index_kind.
3756         (resolve_array_ref): Adjust to match.
3757         * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
3758         * trans-stmt.c: Ditto.
3759         * trans-types.c: Ditto.
3760         * trans-types.h (g95_array_index_kind): Remove declaration.
3761         * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
3762
3763 2003-05-07  Paul Brook  <paul@nowt.org>
3764
3765         * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
3766         * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
3767         of bound indices.
3768
3769 2003-05-07  Paul Brook  <paul@nowt.org>
3770
3771         * trans-array.c (trans_static_array_pointer,
3772         g95_trans_array_constructor_value, g95_conv_array_initializer,
3773         g95_conv_structure): CONSTRUCTOR nodes only have one operand.
3774         (g95_add_loop_ss_code): Convert subscripts to the correct type.
3775         * trans-stmt.c (g95_trans_character_select): Ditto.
3776         * trans-types.c (g95_init_types): Ditto.
3777
3778 2003-05-07  Steven Bosscher  <steven@gcc.gnu.org>
3779
3780         * f95-lang.c (expand_function_body): Use input_line, not lineno.
3781         * trans-decl.c (g95_generate_function_code,
3782         g95_generate_constructors): Likewise.
3783         * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
3784         g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
3785         Likewise.
3786
3787 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3788         * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
3789         with components point to the DERIVED type itself, and two DERIVED
3790         type with components point to each other.
3791         * trans-expr.c (g95_conv_componet_ref): Modified
3792
3793 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
3794         * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
3795         null_pointer_node.
3796         (g95_trans_pointer_assign): Implement Nullify.
3797
3798 2003-05-01  Paul Brook  <paul@nowt.org>
3799
3800         * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
3801         * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
3802
3803 2003-05-01  Paul Brook  <paul@nowr.org>
3804
3805         * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
3806         trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
3807         IS_EMPTY_STMT.
3808
3809 2003-05-01  Canqun Yang  <canqun@yahoo.com.cn>
3810
3811         * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
3812         CASE_LABEL_EXPR.
3813
3814 2003-04-28  Paul Brook  <paul@nowt.org>
3815
3816         * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
3817         as their kind suggests.
3818         (g95_resolve_reshape): Ditto.
3819
3820 2003-04-28  Chun Huang  <compiler@sohu.com>
3821
3822         * trans-expr.c (g95_conv_substring_expr): New function.
3823         (g95_conv_expr): Use it.
3824
3825 2003-04-28  Paul Brook  <paul@nowt.org>
3826
3827         * iresolve.c (g95_resolve_transpose): Make it match the
3828         implementation.
3829         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
3830
3831 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
3832
3833         * trans-types.c (g95_add_field_to_struct): New function to
3834         add a field to a UNION_TYPE or RECORD_TYPE.
3835         * trans-types.h (g95_add_field_to_struct): Prototype.
3836         (g95_get_derived_type): Use g95_add_field_to_struct to add
3837         components.
3838         * trans-io.c (g95_add_field): Remove.
3839         (ADD_FIELD): Use new g95_add_field_to_struct function.
3840         (ADD_STRING): Likewise.
3841         * trans-stmt.c (g95_trans_select): Likewise.
3842         (g95_add_field): Remove duplicated function.
3843
3844 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
3845
3846         Port implementation for CHARACTER SELECT from Andy's tree.
3847         * trans-stmt.c (g95_trans_character_select): Implement character
3848         select. (g95_add_field): New function.
3849         * trans-decl.c: Declare 'gfor_gndecl_select_string'.
3850         (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
3851         * g95.h (struct g95_case): Add field 'int n'.
3852         * trans.h: Declare 'gfor_fndecl_select_string'.
3853
3854 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
3855
3856         * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
3857         (g95_insert_bbd): Die on duplicates.
3858         * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
3859
3860 2003-04-14  Steven Bosscher  <steven@gcc.gnu.org>
3861
3862         * g95.texi: Require GMP 4.0 -- like we actually
3863         do.  Explain the testsuite and what-goes-where.
3864         Don't use undefined texinfo symbol.  Break very
3865         long line.  Remove finished item from the list
3866         of open projects.
3867
3868 2003-04-11  Canqun Yang  <canqun@yahoo.com.cn>
3869
3870         * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
3871         LOGICAL type.
3872
3873 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
3874
3875         * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
3876         (g95_trans_forall_body): New function.
3877
3878 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
3879
3880         * resolve.c (resove_where): New function.
3881         (resolve_where_shape): New function.
3882         (resolve_code): Add call to 'resolve_where'
3883         * trans-stmt.c (g95_trans_where): Modified.
3884         (g95_trans_where_2): New function.
3885         (g95_trans_where_assign): New function.
3886         (g95_evaluate_where_mask): New function.
3887         (g95_add_to_stmt_list): New function.
3888         (g95_get_temp_expr): New function.
3889         * trans.h (where_stmt_list): New structure.
3890
3891 2003-04-10  Paul Brook  <paul@nowt.org>
3892
3893         * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
3894         (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
3895
3896 2003-04-10  Steven Bosscher  <steven@gcc.gnu.org>
3897
3898         Update after mainline -> tree-ssa-branch merge.
3899         * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
3900         call.
3901         (g95_init): Update for new lang_hooks definition.
3902         (g95_post_options): New langhook.
3903         (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
3904         * scanner.c (g95_new_file): Comment update.
3905
3906 2003-04-09  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
3907
3908         * g95.h, lang-options.h: Add -Wimplicit-interface.
3909         * options.c (g95_init_options, g95_parse_arg): Set it.
3910         * interface.c (check_intents): Warn about call with implicit
3911         interface.
3912         * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
3913         g95_procedure_use.
3914
3915 2003-04-05  Paul Brook  <paul@nowt.org>
3916
3917         * iresolve.c (g95_resolve_spread): Don't resole based on type.
3918         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
3919
3920 2003-03-29  Paul Brook  <paul@nowt.org>
3921
3922         * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
3923         (g95_resolve_unpack): Ditto.
3924         * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
3925         (g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
3926         (g95_is_intrinsic_libcall): Add PACK and UNPACK.