OSDN Git Service

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