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