OSDN Git Service

* arith.c: Fix comment typos.
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2004-05-16  Steve Kargl  <sgk@troutmask.apl.washington.edu>
2
3         * arith.c: Fix comment typos.
4
5 2004-05-15  Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
6
7         PR fortran/13742
8         * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
9         not initialized in a disallowed fashion.
10         * match.c (gfc_match_common): Likewise.
11         (var_element): Verify that variable is not in the blank COMMON,
12         if it is in a common. 
13
14 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
15
16         * Make-lang.in (f95.generated-manpages): Remove.
17         (f95.srcextra): New.
18         (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
19         f95.maintainer-clean): Generate info and dvi files in objdir/doc.
20         (f95.dvi): Remove.
21         (dvi): New.
22         (f95.install-info): Remove.
23         (install-info): New.
24
25 2004-05-15  Victor Leikehman  <lei@haifasphere.co.il>
26
27         * decl.c (add_init_expr_to_sym): Check for variable size arrays.
28
29 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
30
31         * primary.c (match_boz_constant): Use gfc_notify_std() for
32         issuing a warning or an error.
33
34 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
35
36         PR fortran/13826
37         * primary.c (match_structure_constructor): Rename ...
38         (gfc_match_structure_constructor): ... to this. Make non-static.
39         (gfc_match_rvalue): Call renamed function.
40         * match.h (gfc_match_structure_constructor): Declare.
41         * match.c (gfc_match_data_constant): Handle structure
42         constructor.
43
44 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
45
46         PR fortran/13702 
47         (Port from g95)
48         * gfortran.h (gfc_linebuf): New typedef.
49         (linebuf): Remove.
50         (gfc_file): Revamped, use new gfc_linebuf.
51         (locus): Revamped, use new types.
52         (gfc_current_file): Remove.
53         (gfc_current_form, gfc_source_file): New global variables.
54         * match.c (gfc_match_space, gfc_match_strings): Use
55         gfc_current_form to find source form.
56         * module.c (gfc_dump_module): Use gfc_source_file when printing
57         module header.
58         * error.c (show_locus, show_loci) Use new data structures to print
59         locus.
60         * scanner.c (first_file, first_duplicated_file, gfc_current_file):
61         Remove.
62         (file_head, current_file, gfc_current_form, line_head, line_tail,
63         gfc_current_locus1, gfc_source_file): New global variables.
64         (gfc_scanner_init1): Set new global variables.
65         (gfc_scanner_done1): Free new data structures.
66         (gfc_current_locus): Return pointer to gfc_current_locus1.
67         (gfc_set_locus): Set gfc_current_locus1.
68         (gfc_at_eof): Set new variables.
69         (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
70         to new locus structure.
71         (gfc_check_include): Remove.
72         (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
73         (gfc_skip_comments): Use gfc_current_form, find locus with
74         gfc_current_locus1.
75         (gfc_next_char): Use gfc_current_form.
76         (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
77         (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
78         comment formatting.
79         (get_file): New function.
80         (preprocessor_line, include_line): New functions.
81         (load_file): Move down, rewrite to match new data structures.
82         (gfc_new_file): Rewrite to match new data structures.
83         * parse.c (next_statement): Remove code which is now useless. Use
84         gfc_source_form and gfc_source_file where appropriate.
85         * trans-decl.c (gfc_get_label_decl): adapt to new data structures
86         when determining locus of frontend code.
87         * trans-io.c (set_error_locus): Same.
88         * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
89         * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
90         preprocessor flags.
91         (all): Add missing initializers.
92
93 2004-05-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
94
95         * Make-lang.in (trans-common.o): Remove redundant dependency.
96         (data.c): Replace object file name ...
97         (data.o): ... by the correct one.
98
99 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
100
101         * dump-parse-tree.c (gfc_show_array_ref): Print colon only
102         for ranges when dumping array references.
103
104 2004-05-14  Victor Leikehman  <lei@haifasphere.co.il>
105
106         * decl.c (variable_decl): Always apply default initializer.
107
108 2004-05-08  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
109
110         PR fortran/15206
111         * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
112         handle zero correctly.
113
114 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
115
116         * match.c (gfc_match): Eliminate dead code.
117
118 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
119
120         * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
121         Detect bad continuation line in fixed form sources.
122
123 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
124
125         PR fortran/15205
126         * iresolve.c (gfc_resolve_nearest): Add new function.
127         * intrinsic.h: ... declare it here.
128         * intrinsic.c (add_functions): ... add it as resolving function
129         for NEAREST.
130         
131 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
132
133         PR fortran/14066
134         * match.c (gfc_match_do): Allow infinite loops with
135         label-do-stmt. Do not enforce space after comma.
136
137 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
138
139         PR fortran/15051
140         * parse.c (parse_interface): Allow empty INTERFACE, remove
141         seen_body.
142
143 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
144
145         * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
146         decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
147         expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
148         intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
149         matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
150         primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
151         trans-array.c, trans-array.h, trans-common.c, trans-const.c,
152         trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
153         trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
154         trans-types.h, trans.c, trans.h: Update copyright years and
155         boilerplate.
156         * data.c: Likewise, also removed two whitespace-only lines.
157         * gfortranspec.c, lang.opt: Update copyright years.
158
159 2004-05-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
160
161         PR fortran/14568
162         * trans-decl.c (generate_local_decl): Don't warn for unused
163         variables which are in common blocks. 
164
165 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
166
167         * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
168         trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
169         trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
170
171 2004-05-13  Victor Leikehman  <lei@haifasphere.co.il>
172
173         PR fortran/15314
174         * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
175
176 2004-05-13  Joseph S. Myers  <jsm@polyomino.org.uk>
177
178         * gfortran.texi: Use @table @emph instead of @itemize @emph.
179         Remove "set DEVELOPMENT".
180         (Compiling GFORTRAN): Remove.
181
182 2004-05-09  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
183
184         * array.c (match_subscript, match_array_ref): Add comments
185         explaining argument 'init'.
186         * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
187         trans-expr.c, trans.c: Fix some typos in comments.
188         * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
189         * primary.c (match_digits, match_integer_constant): Add comment
190         explaining signflag.
191
192 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
193
194         PR fortran/13940
195         * primary.c: Include system.h and flags.h, needed for pedantic.
196         (match_boz_constant): Allow "x" for hexadecimal constants, warn if
197         pedantic is set.
198
199 2004-05-01  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
200
201         PR fortran/13940
202         * match.c (match_data_constant): Handle case where
203         gfc_find_symbol sets sym to NULL
204
205 2004-04-28  Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de>
206
207         * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
208         dependency on mathbuiltins.def
209
210 2004-04-24  Victor Leikehman  <lei@il.ibm.com>
211
212         * trans-io.c (transfer_expr): Implemented recursive printing
213         of derived types.
214
215 2004-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
216
217         * gfortranspec.c: Do not include multilib.h.
218
219 2004-04-24  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
220
221         * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
222         2004 to copyright years.
223         * trans-expr.c, trans-decl.c: Comment update, we now generate
224         GENERIC, not SIMPLE. Add 2004 to copyright years.
225
226 2004-04-24  Paul Brook  <paul@codesourcery.com>
227
228         * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
229
230 2004-04-24  Feng Wang  <fengwang@nudt.edu.cn>
231
232         PR 14817
233         * arith.c (gfc_arith_divide): Fix complex divide.
234
235 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
236
237         * gfortranspec.c: Include the target headers.
238
239 2004-04-18  Feng Wang  <fengwang@nudt.edu.cn>
240
241         PR fortran/14921
242         PR fortran/14540
243         * arith.c (arctangent2): New function.
244         * arith.h (arctangent2): Add function prototype.
245         * simplify.c (gfc_simplify_atan2): Use it.
246         (gfc_simplify_log): Use it.
247
248 2004-04-12  Diego Novillo  <dnovillo@redhat.com>
249
250         * fortran/f95-lang.c (gfc_expand_stmt): Remove.
251         (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
252
253 2004-04-11  Bud Davis  <bdavis9659@comcast.net>
254
255         PR fortran/14872
256         * trans-io.c (build_dt): Change REC to value.
257
258 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
259
260         PR 14394 
261         * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
262         the real value when converting mpf to string.
263
264 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
265
266         PR 14395
267         * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
268         the result.
269
270 2004-04-11  Feng Wang  <fengwang@nudt.edu.cn>
271
272         PR fortran/14377
273         * simplify.c (simplify_min_max): Convert the type of the result.
274
275 2004-04-11  Paul Brook  <paul@codesourcery.com>
276
277         * gfortran.texi: Use full target triplet.
278
279 2004-04-11  Paul Brook  <paul@codesourcery.com>
280
281         * Make-lang.in (GFORTRAN_TEXI): Set it.
282         (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
283         (fortran/gfortran.info): Ditto. 
284         * gfortran.texi: Major update.
285         * invoke.texi: New file.
286
287 2004-04-10  Paul Brook  <paul@codesourcery.com>
288
289         * trans-array.c (gfc_trans_allocate_temp_array,
290         gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
291         * trans-decl.c (gfc_build_dummy_array_decl,
292         gfc_get_symbol_decl, gfc_build_function_decl,
293         gfc_create_module_variable): Ditto.
294         * trans-expr.c (gfc_conv_variable): Ditto.
295         * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
296         * trans.h (GFC_DECL_STRING): Remove.
297         (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
298         GFC_DECL_ASSIGN): Renumber flags.
299
300 2004-04-05  Paul Brook  <paul@codesourcery.com>
301
302         PR 13252
303         PR 14081
304         * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
305         and stack_restore.
306         * gfortran.h (struct gfc_charlen): Add backend_decl.
307         * trans-array.c (gfc_trans_allocate_temp_array,
308         gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
309         (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
310         Remove old, broken string handling.
311         (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
312         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
313         gfc_trans_deferred_array): Handle character arrays.
314         * trans-const.c (gfc_conv_const_charlen): New function.
315         * trans-const.h (gfc_conv_const_charlen): Add prototype.
316         * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
317         as static.
318         (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
319         (gfc_create_string_length): New function.
320         (gfc_get_symbol_decl): Create lengths for character variables.
321         (gfc_get_fake_result_decl): Ditto.
322         (gfc_build_function_decl): Only set length for assumed length
323         character arguments.
324         (gfc_trans_dummy_character): New function.
325         (gfc_trans_auto_character_variable): Rewrite.
326         (gfc_trans_deferred_vars): Handle more types of character variable.
327         (gfc_create_module_variable): String lengths have moved.
328         (gfc_generate_function_code): Initialize deferred var chain earlier.
329         * trans-expr.c (gfc_conv_init_string_length): Rename ...
330         (gfc_trans_init_string_length):  ... to this.
331         (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
332         gfc_conv_function_call): Update to new format for character variables.
333         (gfc_conv_string_length): Remove.
334         (gfc_conv_string_parameter): Update assertion.
335         * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
336         * trans-io.c (set_string): Use new macro names.
337         * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
338         * trans-types.c (gfc_get_character_type): Use existing length expr.
339         (gfc_is_nodesc_array): Make public.
340         (gfc_get_dtype_cst): Rename ...
341         (gfc_get_dtype): ... to this.  Handle unknown size arrays.
342         (gfc_get_nodesc_array_type): Use new name.
343         (gfc_sym_type): New character variable code.
344         (gfc_get_derived_type): Ditto.
345         (gfc_get_function_type): Evaluate character variable lengths.
346         * trans-types.h (gfc_strlen_kind): Define.
347         (gfc_is_nodesc_array): Add prototype.
348         * trans.h: Update prototypes.
349         (struct lang_type): Update comments.
350         (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
351         (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
352
353 2004-04-04  Paul Brook  <paul@codesourcery.com>
354
355         * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
356         * options.c (gfc_init.options, gfc_handle_option): Ditto.
357         * trans-expr.c (gfc_conv_function_call): Ditto.
358         * trans-types.c (gfc_is_nodesc_array): Ditto
359         * lang.opt (fg77-calls): Remove.
360
361 2004-04-04  Paul Brook  <paul@codesourcery.com>
362
363         * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
364         (gfc_conv_descriptor_base): Rename ...
365         (gfc_conv_descriptor_offset): ... to this.
366         (gfc_trans_allocate_array_storage): Set offset to zero.
367         (gfc_conv_array_base): Rename ...
368         (gfc_conv_array_offset): ... to this.
369         (gfc_conv_array_index_ref): Add offset parameter.
370         (gfc_conv_array_ref): Include offset.
371         (gfc_trans_preloop_setup): Use existing offset.
372         (gfc_trans_allocate_temp_array,  gfc_array_allocate,
373         gfc_trans_auto_array_allocation, gfc_trans_g77_array,
374         gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
375         gfc_conf_ss_descriptor): Set offset.
376         * trans-array.h: Rename prototypes.
377         * trans-const.h (gfc_index_zero_node): Define.
378         * trans-decl.c (gfc_build_qualified_array): Change base to offset.
379         * trans-types.c (gfc_get_array_type_bounds): Ditto.
380         (gfc_get_nodesc_array_type): Calculate offset before upper bound.
381
382 2004-03-25  Diego Novillo  <dnovillo@redhat.com>
383
384         * convert.c (convert): Don't handle WITH_RECORD_EXPR.
385
386 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
387
388         PR 14055
389         * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
390         before conversion by gmp library call.
391
392 2004-03-24  Bud Davis  <bdavis9659@comcast.net>
393
394         PR 12921
395         * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
396
397 2004-02-24  Richard Henderson  <rth@redhat.com>
398
399         * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
400
401 2004-02-19  Loren J. Rittle  <ljrittle@acm.org>
402
403         * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
404         (fortran/gfortran.info): ... to here.
405         (f95.srcinfo): New.
406
407 2004-02-16  Richard Henderson  <rth@redhat.com>
408
409         * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
410         * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
411         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
412         (gfc_expand_function): Rename from expand_function_body, make static,
413         don't do anything except invoke tree_rest_of_compilation.
414         (gfc_be_parse_file): Invoke cgraph.
415         (gfc_expand_decl): Remove.
416         (gfc_init_builtin_functions): Add __builtin_init_trampoline and
417         __builtin_adjust_trampoline.
418         * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
419         (gfc_finalize): New.
420         (gfc_generate_function_code): Use it.  Lower nested functions.
421         * trans-expr.c (gfc_conv_function_call): Add static chain operand
422         to call_expr.
423         * trans.c (gfc_build_function_call): Likewise.
424         * trans.h (expand_function_body): Remove.
425
426 2004-02-15  Victor Leikehman  <lei@il.ibm.com>
427
428         PR gfortran/13433
429         * trans-decl.c (gfc_build_function_decl) For functions
430         returning CHARACTER pass an extra length argument,
431         following g77 calling conventions.
432         * trans-types.c (gfc_get_function_type) Ditto.
433         * trans-expr.c (gfc_conv_function_call) Ditto.
434
435 2004-02-14  Paul Brook  <paul@codesourcery.com>
436
437         * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
438
439 2004-02-12  Paul Brook  <paul@nowt.org>
440
441         * BUGS: Remove.
442
443 2004-02-08  Steve Kargl  <sgk@troutmask.apl.washington.edu>
444
445         * gfortran.texi: Fix typos.
446
447 2004-02-07  Bud Davis  <bdavis9659@comcast.net>
448  
449         PR gfortran/13909
450         * intrinsic.c (add_conversions) Use logical conversion instead
451         of real.
452         * trans-types.c (gfc_get_logical_type) implemented logical*1
453         and logical*2.
454
455 2004-01-17  Paul Brook  <paul@codesourcery.com>
456
457         * lang-specs.h: Remove %<fixed-form.
458
459 2004-01-15  Toon Moene  <toon@moene.indiv.nluug.nl>
460
461         * lang-specs.h: Enable preprocessing of source files
462         ending in .F, .fpp, .FPP, .F90 and .F95.
463
464 2004-01-13  Toon Moene  <toon@moene.indiv.nluug.nl>
465
466         PR fortran/12912
467         * lang-specs.h: Enable compilation of files ending
468         in .f, .for and .FOR.
469
470 2004-01-11  Paul Brook  <paul@codesourcery.com>
471
472         * trans-stmt.c (gfc_trans_if_1): New function.
473         (gfc_trans_if): Use it.
474
475 2004-01-11  Erik Schnetter  <schnetter@uni-tuebingen.de>
476
477         * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
478         (gfc_option_t): Add max_identifier_length.
479         * lang.opt: Add fmax-identifier-length.
480         * match.c (parse_name): Use limit.
481         * options.c (gfc_init_options): Set max_identifier_length.
482         (gfc_handle_option): Ditto.
483
484 2004-01-11  Feng Wang  <fengwang@nudt.edu.cn>
485
486         * intrinsic.c (add_functions): Add resolve function to dcmplx.
487         * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
488         * iresolve.c (gfc_resolve_dcmplx): New function.
489
490 2004-01-10  Paul Brook  <paul@codesourcery.com>
491
492         * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
493         * trans-types.c (gfc_sym_type): Handle external dummy procedures.
494         (gfc_return_by_reference): Correct condition.
495         (gfc_get_function_type): Ditto.
496
497 2004-01-10  Paul Brook  <paul@codesourcery.com>
498
499         * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
500         types.
501
502 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
503
504         * iresolve.c: Use correct kind.
505
506 2004-01-10  Huang Chun  <chunhuang73@hotmail.com>
507
508         PR fortran/13467
509         * trans-decl.c (gfc_create_module_variable):  Output array valued
510         parameters.
511
512 2004-01-10  Paul Brook  <paul@codesourcery.com>
513
514         * resolve.c (resolve_branch): Get error message right way round.
515
516 2004-01-10  Canqun Yang <canqun@nudt.edu.cn>
517
518         * trans-array (gfc_conv_loop_setup): Adjust comment to track
519         reality.
520         (gfc_array_allocate): Don't count size of element twice.
521
522 2004-01-04  Paul Brook  <paul@codesourcery.com>
523
524         * lang.opt (i8, r8, std=*): Remove RejectNegative.
525
526 2004-01-04  Paul Brook  <paul@codesourcery.com>
527
528         * error.c (gfc_notify_std): New function.
529         * gfortran.h (gfc_notify_std): Declare.
530         (GFC_STD_*): Define.
531         (gfc_option_t): Add warn_std and allow_std.
532         * intrinsic.c (gfc_init_expr_extensions): Fix logic.
533         (gfc_intrinsic_func_interface): Use gfc_notify_std.
534         * check.c (check_rest): Use gfc_notify_std.
535         * match.c (gfc_match_pause): Ditto.
536         (gfc_match_assign): Ditto.
537         (gfc_match_goto): Ditto.
538         * resolve.c (resolve_branch): Ditto.
539         * lang.opt: Add std=<foo> and w.
540         * options.c (gfc_init_options): Set allow_std and warn_std.
541         (gfc_handle_option): Handle OPT_std_* and OPT_w.
542
543 2004-01-01  Paul Brook  <paul@codesourcery.com>
544
545         * array.c (gfc_append_constructor): Take constructor, not expression.
546         * data.c (struct gfc_expr_stack): Remove.
547         (expr_stack): Remove.
548         (find_con_by_offset): Rename from find_expr_in_con.
549         (find_con_by_component): Rename from find_component_in_con.
550         (gfc_get_expr_stack): Remove.
551         (gfc_assign_data_value): Rewrite.
552         (gfc_expr_push): Remove.
553         (gfc_expr_pop): Remove.
554         (gfc_advance_section): Rename from
555         gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
556         (gfc_get_section_index): Handle unbounded sections.
557         * gfortran.h: Update prototypes.
558         * resolve.c (check_data_variable): Array section maight not be the
559         last ref.
560
561 2004-01-01  Paul Brook  <paul@codesourcery.com>
562
563         PR fortran/13432
564         * resolve.c (resolve_symbol): Allow assumed length function results.
565
566 2004-01-01  Steve Kargl  <sgk@troutmask.apl.washington.edu>
567
568         * match.c (gfc_match_pause): Fix spelling.
569
570 2004-01-01  Steven Bosscher  <stevenb@suse.de>
571
572         PR fortran/13251
573         * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
574         reference from the expression.
575
576 2003-12-26  Feng Wang  <fengwang@nudt.edu.cn>
577
578         * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
579         dumping.
580         * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
581         (gfc_exec_op): New EXEC_LABEL_ASSIGN.
582         (symbol_attribute):New variable attribute: assign.
583         * io.c (resolve_tag):Integer variable is allowed.
584         (match_dt_format): Add ASSIGN statement. Set assign flag.
585         * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
586         (gfc_match_assign): Add ASSIGN statement. Set assign flag.
587         (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
588         * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
589         (next_statement): Add ST_LABEL_ASSIGNMENT.
590         (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
591         * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
592         (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
593         * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
594         * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
595         assign.  Put them into the stuct lang_decl.
596         * trans-io.c (set_string): Add the assign statement.
597         * trans-stmt.c (gfc_trans_label_assign): New function.
598         (gfc_trans_goto): Translate ASSIGNED GOTO statement.
599         * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
600         * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
601         * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
602         (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
603         (GFC_DECL_ASSIGN(node)): New macro to access flag.
604
605 2003-12-31  Huang Chun <chunhuang73@hotmail.com>
606
607         PR fortran/13434
608         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in 
609         minval/maxval.
610
611 2003-12-22  Toon Moene  <toon@moene.indiv.nluug.nl>
612
613         * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
614         that arguments to subroutines/functions can't alias themselves, nor global
615         memory.
616
617 2003-12-20  Steven Bosscher  <stevenb@suse.de>
618
619         * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
620         * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
621
622 2003-12-12  Huang Chun <chunhuang73@hotmail.com>
623
624         * primary.c (match_substring): Fix substring bug for start point
625         or end point is NULL.
626         * trans-expr.c (gfc_conv_substring): Ditto
627         * trans-types.c (gfc_sym_type): Get correct type of scalar 
628         character variables.
629         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in 
630         derived type.
631
632 2003-12-10  Richard Henderson  <rth@redhat.com>
633
634         * options.c (gfc_post_options): Don't ever use rtl inlining.
635
636 2003-12-05  Canqun Yang  <canqun@nudt.edu.cn>
637
638         * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
639         * trans-equivalence.c: Remove.
640         * trans-decl.c (gfc_get_symbol_decl): Update to match.
641         (gfc_generate_function_code): Ditto.
642         * trans-array.c (gfc_conv_array_parameter): Ditto.
643         * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
644         (F95_ADDITIONAL_OBJS): Add stor-layout.o
645         * trans.h (gfc_trans_equivalence): Remove.
646         * gfortran.h (struct gfc_equiv): Add used field.
647         (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
648         equiv_offset fields.
649
650 2003-12-05  Richard Henderson  <rth@redhat.com>
651
652         * trans.c (gfc_build_addr_expr): New.
653         (gfc_build_indirect_ref, gfc_build_array_ref): New.
654         * trans.h: Declare them.
655         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
656         trans-stmt.c, trans.c (*): Use them.
657
658         * f95-lang.c (gfc_post_options): Remove dead prototype.
659         * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
660         * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
661         allocation size.
662
663 2003-12-01  Feng Wang  <fengwang@nudt.edu.cn>
664
665         * io.c (gfc_match_format): Check for missing format label.
666
667 2003-11-30 Huang Chun <chunhuang73@hotmail.com>
668
669         PR fortran/13155
670         * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
671         from interfaces in modules.
672
673 2003-11-30  Paul Brook  <paul@nowt.org>
674
675         * trans-array.c (gfc_trans_g77_array): Make non-static.
676         (gfc_trans_assumed_size): Remove.
677         (gfc_trans_dummy_array_bias): Explicitly free temporary.
678         * trans-array.h (gfc_trans_g77_array): Add prototype.
679         (gfc_trans_assumed_size): Remove.
680         * trans-decls.c (gfor_fndecl_push_context): Remove.
681         (gfor_fndecl_pop_context): Remove.
682         (gfc_build_function)decls): Don't create them.
683         (gfc_trans_deferred_vars): Update to match. Remove dead code.
684         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
685
686 2003-11-30  Kejia Zhao  <kejia_zh@nudt.edu.cn>
687
688         * trans-array.c (gfc_conv_array_parameter): Simplify
689         array argument passing for array name actual argument.
690         * trans-expr.c (gfc_conv_function_call): Ditto
691         * trans-types.c (gfc_is_nodesc_array):Ditto.
692
693 2003-11-30  Paul Brook  <paul@nowt.org>
694
695         * f95-lang.c (gfc_post_options): Move ...
696         * options.c (gfc_post_options): .. to here.  Handle inlining options.
697         * gfortran.h (gfc_post_options): Add prototype.
698
699 2003-11-28  Richard Henderson  <rth@redhat.com>
700
701         * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
702
703 2003-11-28 Huang Chun <chunhuang73@hotmail.com>
704
705         * trans.h (has_alternate_specifier): New global variable.
706         * match.c (gfc_match_call): Handle actual arguments associated with
707         alternate return indicators.
708         * trans-expr.c (gfc_conv_function_call): Ditto
709         * trans-stmt.c (gfc_trans_call): Ditto
710         (gfc_trans_return): Handle return statement with value.
711         * trans-decl.c (gfc_generate_function_code): Handle functions with
712         asterisk dummy.
713         (gfc_get_fake_result_decl): Ditto
714         * trans-types.c (gfc_get_function_type): Ditto
715         * resolve.c (resolve_actual_arglist): Check alternate return indicators.
716         (resolve_formal_arglist): Check asterisk dummy.
717
718 2003-11-27  Paul Brook  <paul@nowt.org>
719
720         * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
721         allocation interface.
722         (gfc_conv_ array_parameter): Ditto.
723         (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
724         * trans-array.c: Update prototype.
725         * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
726         (gfc_trans_auto_character_variable): Use new memory alloc interface.
727         * trans-expr.c (gfc_conv_string_tmp): Ditto.
728         (gfc_conv_function_call): Use gfc_conv_string_tmp.
729         * trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
730         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
731         * trans.h (gfc_ss_info): Remove unused pdata field.
732         * trans.c (gfc_create_var_np): Change T to V.
733
734 2003-11-26  Richard Henderson  <rth@redhat.com>
735
736         * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
737         * trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
738         FRACTION, NEAREST, SET_EXPONENT.
739         (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
740         Fix GTY marking.  Remove unnecessary const's.
741         (LIBM_FUNCTION): Rename from I_LIB.
742         (LIBF_FUNCTION): New.
743         (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
744         conventions.  Assume the expr signature is correct.  Mark const.
745         (gfc_conv_intrinsic_exponent): Use library functions.
746         (gfc_conv_intrinsic_set_exponent): Remove.
747         (gfc_conv_intrinsic_scale): Remove.
748         (gfc_conv_intrinsic_nearest): Remove.
749         (gfc_conv_intrinsic_fraction): Remove.
750         (gfc_conv_intrinsic_function): Update.
751         * trans-decl.c (gfor_fndecl_math_exponent4): New.
752         (gfor_fndecl_math_exponent8): New.
753         (gfc_build_intrinsic_function_decls): Set them.
754         * trans.h: Declare them.
755
756 2003-11-25  Canqun Yang  <canqun@nudt.edu.cn>
757
758         * trans-common.c (gfc_layout_global_equiv): Locate the error for
759         underflow COMMON block.
760         (gfc_trans_one_common): Fix bug for size of COMMON block containing
761         EQUIVALENCE object. Also fix typo in an error message.
762
763 2003-11-25  Diego Novillo  <dnovillo@redhat.com>
764
765         * Make-lang.in: Add check-gfortran to lang_checks.
766         (check-f95): Alias for check-gfortran.
767
768 2003-11-25  Jason Merrill  <jason@redhat.com>
769
770         * Make-lang.in (f95.tags): Create TAGS.sub files in each
771         directory and TAGS files that include them for each front end.
772
773 2003-11-24  Paul Brook  <paul@nowt.org>
774
775         PR fortran/13154
776         * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
777
778 2003-11-24  Paul Brook  <paul@nowt.org>
779
780         * expr.c (simplify_const_ref): Return SUCCESS for things we don't
781         handle.
782         * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
783
784 2003-11-24  Paul Brook  <paul@nowt.org>
785
786         PR fortran/13105
787         * array.c (gfc_array_ref_shape): Handle elemental dimensions.
788         * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
789
790 2003-11-20  Richard Henderson  <rth@redhat.com>
791
792         * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
793         (gfc_conv_array_base): Likewise.
794         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
795         * trans-expr.c (gfc_conv_string_tmp): Likewise.
796         * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
797         * trans-stmt.c (gfc_trans_character_select): Likewise.
798
799 2003-11-13  Paul Brook  <paul@nowt.org>
800
801         * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
802
803 2003-11-13  Canqun Yang  <canqun@nudt.edu.cn>
804
805         * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
806         (resolve_equivalence): New function.
807         (resolve_equivalence_derived): New function.
808
809 2003-11-12  Richard Henderson  <rth@redhat.com>
810
811         * trans.c (gfc_trans_code): Use annotate_with_locus instead of
812         annotate_all_with_locus.
813
814 2003-11-11  Canqun Yang  <canqun@nudt.edu.cn>
815  
816         * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
817         * trans-decl.c (gfc_finish_var_decl): Modified.
818
819 2003-11-08  Paul Brook  <paul@nowt.org>
820
821         PR fortran/12704
822         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
823         arrays.
824
825 2003-11-06  Paul Brook  <paul@nowt.org>
826
827         * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
828
829 2003-11-02  Canqun Yang  <canqun@nudt.edu.cn>
830
831         * match.c (gfc_match_stopcode): Assign '0' to stop_code.
832
833 2003-10-27  Anthony Green  <green@redhat.com>
834
835         * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
836         (f95.stagefeedback): Ditto.
837
838 2003-10-27  Andrew Pinski  <pinskia@physics.uc.edu>
839
840         PR fortran/12682
841         * Make-lang.in (f95.stageprofile): Add.
842         (f95.stagefeedback): Add.
843
844 2003-10-23  Richard Henderson  <rth@redhat.com>
845
846         * f96-lang.c (gfc_gimplify_expr): Remove.
847         (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
848         (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
849
850 2003-10-23  Richard Henderson  <rth@redhat.com>
851
852         * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
853
854 2003-10-20  Paul Brook  <paul@nowt.org>
855
856         * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
857         * trans-stmt.c (gfc_trans_do_while): Ditto.
858
859 2003-10-17  Paul Brook  <paul@nowt.org>
860
861         * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
862
863 2003-10-17  Paul Brook  <paul@nowt.org>
864
865         * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
866
867 2003-10-17  Feng Wang  <wf_cs@yahoo.com>
868
869         * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
870         (gfc_resolve_minloc): Ditto.
871         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
872         Return the value after subtracting the lower bound.
873
874 2003-10-16  Richard Henderson  <rth@redhat.com>
875
876         * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
877
878 2003-10-16  Steven Bosscher  <steven@gcc.gnu.org>
879
880         * lang.c: Remove -M option for now, it's in the way for C.
881
882 2003-10-14  Jason Merrill  <jason@redhat.com>
883
884         * Make-lang.in (f95.tags): New rule.
885
886 2003-10-13  Richard Henderson  <rth@redhat.com>
887
888         * trans.c (gfc_trans_code): Use annotate_all_with_locus.
889
890 2003-10-13  Paul Brook  <paul@nowt.org>
891
892         * trans-decl.c (generate_local_decl): Don't create junk variables.
893
894 2003-10-13  Paul Brook  <paul@nowt.org>
895
896         * resolve.c (resolve_formal_arglist): Use function result decl in
897         preference to function decl.
898
899 2003-10-12  Richard Henderson  <rth@redhat.com>
900
901         * f95-lang.c (gfc_define_builtin): New const_p argument.  Set
902         TREE_READONLY.  Update all callers.
903
904 2003-10-12  Feng Wang  <wf_cs@yahoo.com>
905
906         * iresolve.c (gfc_resolve_cshift): Change to match implementation.
907         * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
908         (gfc_is_intrinsic_libcall): Add CSHIFT.
909
910 2003-10-12  Richard Henderson  <rth@redhat.com>
911
912         * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
913         (gfc_trans_array_constructor_value): Likewise.
914         (gfc_conv_array_initializer): Likewise.
915         * trans-stmt.c (gfc_trans_character_select): Likewise.
916
917 2003-11-12  Kejia Zhao  <kejia_zh@yahoo.com.cn>
918
919         * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
920
921 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
922
923         * check.c (gfc_check_repeat): Check arguments are scalar.
924         (gfc_check_trim): New function.
925         * intrinsic.h (gfc_check_trim): Add prototype.
926         * intrinsic.c (add_functions): Use it.
927         * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
928         Decalare.
929         * trans-decl.c: Ditto.
930         (gfc_build_intrinsic_fucntion_decls): Set them.
931         * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
932         (gfc_conv_intrinsic_trim): New function.
933         (gfc_conv_intrinsic_repeat): New function.
934         (gfc_conv_intrinsic_function): Use them.
935
936 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
937
938         * trans-types.c (gfc_sym_type): Handle result variables.
939
940 2003-10-11  Huang Chun  <jiwang@mail.edu.cn>
941
942         * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
943         gfc_get_character_type.
944
945 2003-10-11  Feng Wang  <wf_cs@yahoo.com>
946
947         * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
948
949 2003-10-11  Paul Brook  <paul@nowt.org>
950
951         * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
952         (gfc_resolve_dprod): New function.
953         (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
954         * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
955         (gfc_resolve_dprod): Declare.
956         * intrinsic.c (add_functions): Use them.
957         * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
958
959 2003-10-06  Richard Henderson  <rth@redhat.com>
960
961         * f95-lang.c (gfc_init_builtin_functions): Add clzll.
962         * trans-intrinsic.c (call_builtin_clz): Use it.
963
964 2003-10-05  Paul Brook  <paul@nowt.org>
965
966         * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
967         * trans-decl.c (gfc_generate_function_code): Set
968         cfun->function_end_locus.
969
970 2003-09-24  Jason Merrill  <jason@redhat.com>
971
972         * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
973         TREE_LOCUS.
974
975 2003-09-21  Lifang Zeng  <zlf605@hotmail.com>
976         Paul Brook  <paul@nowt.org>
977
978         * Make-lang.in (F95_OBJS): Add fortran/data.o.
979         * array.c (gfc_inser_constructor): New function.
980         (gfc_get_constructor): New function.
981         (gfc_free_constructor): Initialize offset and repeat.
982         (iterator_stack): Remove.
983         (expand_info): Add offset, component and repeat fields.
984         (expand_constructor): Set them.
985         (expand): Set new fields.
986         (gfc_copy_constructor): Ditto. Avoid recursion.
987         * gfortran.h: Add prototypes for new functions.
988         (gfc_constructor): Add offset, component and repeat.
989         (iteratio_stack): Move to here.
990         * resolve.c (check_data_variable): Convert data values into variable
991         initializers.
992         (traverse_data_list): Build implicit loop chain.
993         (gfc_resolve): Ditto.
994         * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
995         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
996         * trans-expr.c (gfc_conv_structure): Handle array initializers.
997         (gfc_conv_expr): Update to match.
998         * trans.h (gfc_conv_structure): Declare.
999         * data.c: New file.
1000
1001 2003-09-20  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1002  
1003         * trans.h: Add declarations for gfor_fndecl_si_kind and
1004         gfor_fndecl_sr_kind.
1005         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
1006         * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
1007         (g95_conv_intrinsic_sr_kind): New function.
1008         (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
1009         SELECTED_REAL_KIND.
1010
1011 2003-09-17  Lars Segerlund  <Lars.Segerlund@comsys.se>
1012
1013         * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
1014         instead of _4 and _8 as postfix for libgfortran calls.
1015
1016 2003-09-16  Paul Brook  <paul@nowt.org>
1017
1018         * array.c (compare_bounds): New function.
1019         (gfc_compare_array_spec): Use it.
1020
1021 2003-09-14  Paul Brook  <paul@nowt.org>
1022
1023         * primary.c (gfc_match_rvalue): Make sure sym->result is set.
1024         * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
1025
1026 2003-09-14  Paul Brook  <paul@nowt.org>
1027
1028         * check.c (dim_rank_check): Allow assumed bounds if requested.
1029         (gfc_check_lbound): Call it.
1030         (gfc_check_ubound): Ditto.
1031         (gfc_check_size): Change to match.
1032         * simplify.c (gfc_simplify_bound): New function.
1033         (gfc_simplify_lbound): New function.
1034         (gfc_simplify_ubound): New function.
1035         * intrinsic.h: Declare them.
1036         * intrinsic.c (add_functions): Use them.
1037
1038 2003-09-14  Paul Brook  <paul@nowt.org>
1039
1040         * io.c (format_lex): Initialize negative_flag.
1041         (check_format): Intialize repeat.
1042         * trans-io.c (gfc_new_nml_name_expr): Declare static.
1043         (gfc_new_var_expr): Ditto.
1044
1045 2003-09-14  Paul Brook  <paul@nowt.org>
1046
1047         * trans-array.c (gfc_conv_array_initializer): Handle derived types.
1048         * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
1049
1050 2003-09-12  Paul Brook  <paul@nowt.org>
1051
1052         * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
1053
1054 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1055
1056         * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
1057         for a correct expression.
1058
1059 2003-09-10  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1060
1061         * trans-intrinsic.c (real_compnt_info): New struct.
1062         (prepare_arg_info): New function.
1063         (gfc_conv_intrinsic_set_exponent): New function.
1064         (gfc_conv_intrinsic_scale): New function.
1065         (gfc_conv_intrinsic_nearest): New function.
1066         (gfc_conv_intrinsic_fraction): New function.
1067         (gfc_conv_intrinsic_exponent): New function.
1068         (gfc_conv_intrinsic_spacing): New function.
1069         (gfc_conv_intrinsic_rrspacing): New function.
1070         (gfc_conv_intrinsic_function): Use them.
1071
1072 2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>
1073
1074         * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for 
1075         build_int_2 changed from (high, low) to (low, high).
1076         * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
1077         ioparm_namelist_read_mode, iocall_set_nml_val_int,
1078         iocall_set_nml_val_float, iocall_set_nml_val_char,
1079         iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
1080         (gfc_build_io_library_fndecls): Add variable initialization.
1081         (gfc_new_nml_name_expr, get_new_var_expr): New function.
1082         (build_dt): Add namelist support.
1083         * io.c (value): New variable.
1084         (check_format): Support FMT_H now.
1085
1086 2003-09-07  Paul Brook  <paul@nowt.org>
1087
1088         * io.c (gfc_resolve_dt): Error if format label is not defined.
1089
1090 2003-09-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1091
1092         * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is 
1093         about case_switch's break. The other is about building the condition 
1094         statement tree, which judges the argument in the range of the 
1095         corresponding integer type.
1096         * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
1097         for the large values.
1098  
1099 2003-09-05  Paul Brook  <paul@nowt.org>
1100
1101         * f95-lang.c (expand_function_body): Gimplify the function.
1102
1103 2003-09-04  Jeff Law  <law@redhat.com>
1104
1105         * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
1106         index zero!
1107
1108 2003-09-04  Paul Brook  <paul@nowt.org>
1109
1110         * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
1111         (gfc_expand_stmt): New function.
1112         (LANG_HOOKS_RTL_EXPAND_STMT): Define.
1113         (expand_function_body): Use tree_rest_of_compilation.
1114         * trans-decl.c (gfc_generate_function_code): Don't free cfun.
1115
1116 2003-09-03  Jeff Law  <law@redhat.com>
1117
1118         * f95-lang.c (gfc_init_builtin_functions): C arrays start at
1119         index zero!
1120
1121 2003-08-30  Paul Brook  <paul@nowt.org>
1122
1123         * f95-lang.c (builtin_function): Remove #if 0 code.
1124         (gfc_define_builtin): New function.
1125         (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
1126         * mathbuiltins.def: New file.
1127         * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
1128         (gfc_intrinsic_map): Use mathbuiltins.def.
1129         (gfc_intrinsic_builtin_t): Remove.
1130         (gfc_build_intrinsic_lib_fndecls): Update.
1131         * trans-types.c (gfc_init_types): Remove redundant initilaization of
1132         signed_size_type_node.
1133
1134 2003-08-29  Paul Brook  <paul@nowt.org>
1135
1136         * arith.c (gfc_real_kinds): Use correct minimum exponents.
1137
1138 2003-08-22  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1139
1140         * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
1141         (gfc_conv_intrinsic_function): Add MODULO.
1142
1143 2003-08-22  Jason Merrill  <jason@redhat.com>
1144
1145         * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
1146
1147 2003-08-22  Andreas Jaeger  <aj@suse.de>
1148
1149         * Make-lang.in (f95.install-common): Add DESTDIR support.
1150         * (f95.install-info): Likewise.
1151         (f95.uninstall): Likewise.
1152
1153 2003-08-19  Diego Novillo  <dnovillo@redhat.com>
1154
1155         * trans-types.c (gfc_init_types): Initialize
1156         signed_size_type_node with size_type_node.
1157
1158 2003-08-18  Paul Brook  <paul@nowt.org>
1159
1160         * dependency.c (gfc_dependency): New enum.
1161         (check_another_array_ref): Remove.
1162         (gfc_get_array_from_component): Remove.
1163         (get_x): Remove.
1164         (get_range): Remove.
1165         (get_no_of_elements): Use mpz_t, not mpf_t.
1166         (transform_sections): New function.
1167         (gfc_check_range_range): Rename ...
1168         (gfc_check_section_vs_section): ... to this.  Use new function.
1169         (gfc_is_inside_range): Rewrite to match.
1170         (gfc_check_element_vs_section): Ditto.
1171         (gfc_check_element_vs_element): Ditto.
1172         (get_deps): Ditto.
1173         (gfc_dep_resolver): Ditto.  Remove unused parameter.
1174         * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
1175         gfc_check_element_vs_element, gfc_is_inside_range,
1176         gfc_get_array_from_component): Remove prototypes for static functions.
1177         (gfc_dep_resolver): Update prototype.
1178         * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
1179
1180 2003-08-15  Paul Brook  <paul@nowt.org>
1181
1182         * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
1183         return values to parent scope.
1184         (gfc_build_dummy_array_decl): Ditto.
1185
1186 2003-08-14  Paul Brook  <paul@nowt.org>
1187
1188         * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
1189         size of the type, not the pointer.
1190         * resolve.c (resolve_symbol): Give more accurate error message.
1191
1192 2003-08-10  Paul Brook  <paul@nowt.org>
1193
1194         * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
1195
1196 2003-08-10  Paul Brook  <paul@nowt.org>
1197
1198         * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
1199         type components.
1200
1201 2003-08-10  Chun Huang  <compiler@sohu.com>
1202  
1203         * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
1204         (resolve_symbol): Ditto.
1205         * trans-expr.c (gfc_conv_statement_function): New function.
1206         (gfc_conv_function_expr): Use it.
1207
1208 2003-08-10  Paul Brook  <paul@nowt.org>
1209
1210         * trans-array.c (gfc_conv_ss_startstride): Handle functions.
1211         (walk_function_expr): Set section rank.
1212         * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
1213
1214 2003-08-10  Paul Brook  <paul@nowt.org>
1215
1216         * intrinsic.c (add_sym): Prefix names with correct string.
1217         (add_sym_0s): New function.
1218         (add_subroutines): Register abort.
1219
1220 2003-08-10  Erik Schnetter  <schnetter@uni-tuebingen.de>
1221
1222         * gfortran.h: Introduce options to control the mangling.
1223         * lang.opt: Likewise.
1224         * options.c (gfc_init_options): Handle the options.
1225         * trans-common.c (gfc_sym_mangled_common_id): New function.
1226         (gfc_build_common_decl): Call it.
1227         * trans-decl.c (gfc_sym_mangled_function_id): New function.
1228         (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
1229
1230 2003-08-09  Paul Brook  <paul@nowt.org>
1231
1232         * module.c (mio_symbol): Always ouput a namespace for formal args.
1233         (load_needed): Namespace now belong to their proper symbol.
1234         (gfc_dump_module): Change G95=>GFORTRAN.
1235
1236 2003-08-05  Paul Brook  <paul@nowt.org>
1237
1238         * options.c: Force -fg77-calls.
1239
1240 2003-08-02  Paul Brook  <paul@nowt.org>
1241
1242         * Makelang.in: Rename G95_* to GFORTRAN_*.
1243         * All sources: Rename G95_* to GFC_*.
1244
1245 2003-08-01  Paul Brook  <paul@nowt.org>
1246
1247         * fortran/Make-lang.in: Use GMPLIBS.
1248         * fortran/config-lang.in: Set need_gmp.
1249         * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
1250
1251 2003-07-27  Andreas Jaeger  <aj@suse.de>
1252
1253         * trans-decl.c (gfc_generate_constructors): Convert prototype to
1254         ISO C90.
1255         * trans-const.c (gfc_init_constants): Likewise.
1256         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
1257
1258         * gfortranspec.c: Convert to ISO C90.
1259         (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
1260
1261 2003-07-26  Paul Brook  <paul@nowt.org>
1262
1263         * lang.opt: Add -fdump-parse-tree.
1264         * options.c (gfc_handle_option): Ditto.
1265         * resolve.c (resolve_forall_iterators): Convert to proper type.
1266         * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
1267
1268 2003-07-26  Paul Brook  <paul@nowt.org>
1269
1270         * Makefile.in: Add build dependencies on files common with rest of gcc.
1271
1272 2003-07-26  Lifang Zeng  <zlf605@hotmail.com>
1273
1274         * trans.h: Declare g95_trans_pointer_assignment.
1275         * trans-expr.c (g95_trans_pointer_assignment): New function.
1276         (g95_trans_pointer_assign): Use it.
1277         * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
1278         (g95_trans_pointer_assign_need_temp): New function.
1279
1280 2003-07-26  Paul Brook  <paul@nowt.org>
1281
1282         * gfortran.texi: Replace references to g95.
1283
1284 2003-07-26  Paul Brook  <paul@nowt.org>
1285
1286         Rename g95_* to gfc_*.
1287
1288 2003-07-25  Paul Brook  <paul@nowt.org>
1289         
1290         * gfortran.h: Rename from g95.h.
1291         * trans-types.c (boolean_type_node, booelan_true_node,
1292         boolean_false_node): Remove.
1293         * trans-types.h: Ditto.
1294
1295 2003-07-25  Chun Huang  <compiler@sohu.com>
1296
1297         * parse.c (accept_statement): Implement BLOCK DATA statement.
1298         * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
1299         variables.
1300
1301 2003-07-24  Lifang Zeng  <zlf605@hotmail.com>
1302
1303         * trans-stmt.c (temporary_list): Define.
1304         (g95_trans_assign_need_temp): New function.
1305         (g95_trans_forall_1): Modified for WHERE.
1306         (g95_trans_where_assign): Modified.
1307         (g95_trans_where_2): Modified.
1308         (g95_evaluate_where_mask): Modified.
1309         (g95_trans_where): Modified.
1310         (g95_get_temp_expr): Removed.
1311         (g95_add_to_where_stmt_list): Removed.
1312         (compute_overall_iter_number): Modified for WHERE.
1313         * trans.h: Remove where_stmt_list.
1314
1315 2003-07-24  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1316
1317         * lang.opt: Correct description of options -J and -M.
1318
1319 2003-07-23  Steven Bosscher   <steven@gcc.gnu.org>
1320
1321         * lang.opt: Move help text to here.
1322         * lang-options.h: Remove.
1323
1324 2003-07-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1325         * iresolve.c (g95_resolve_transpose): Proper variable in switch.
1326         * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
1327         on kind.
1328
1329 2003-07-22  Steven Bosscher  <steven@gcc.gnu.org>
1330         Paul Brook  <paul@nowt.org>
1331
1332         * check.c (check_rest): Use global pedantic flag.
1333         * io.c (data_desc): Ditto.
1334         * error.c (g95_warning, g95_warning_now): Use global flag.
1335         * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
1336         (expand_function_body): Update to new prototypes.
1337         (g95_init): Use new option names.
1338         * g95.h (g95_option_t): Standardize names.
1339         (g95_init_options, g95_handle_option): Update prototypes.
1340         * interface.c: Use new option names.
1341         * match.c: Ditto.
1342         * module.c: Ditto.
1343         * parse.c: Ditto.
1344         * primary.c: Ditto.
1345         * resolve.c: Ditto.
1346         * scanner.c: Ditto.
1347         * simplify.c: Ditto.
1348         * symbol.c: Ditto.
1349         * trans-array.c: Ditto.
1350         * trans-expr.c: Ditto.
1351         * trans-types.c: Ditto.
1352         * trans-decl.c: Ditto.
1353         (g95_build_library_function_decl): Remove obsolete VPARAMS.
1354         * trans.h: Ditto.
1355         * options.c (g95_display_help): Remove.
1356         (g95_init_options): Convert to new scheme.
1357         (set_Wall): Ditto
1358         (g95module_option): Ditto, rename from g95_parse_arg.
1359         (g95_handle_module_path_options): New function.
1360         * trans-equivalence.c: Fix error message.
1361         * lang.opt: Corrections.
1362
1363 2003-07-21  Steven Bosscher  <steven@gcc.gnu.org>
1364
1365         * lang.opt: New file.
1366
1367 2003-07-21  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1368
1369         * decl.c (match_attr_spec): Set colon_seen.
1370
1371 2003-07-14  Paul Brook  <paul@nowt.org>
1372
1373         * trans-array.c: Update comment.
1374         (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
1375         * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
1376         minmaxloc,minmaxval): Ditto.
1377         * trans-io.c (g95_trans_transfer): Ditto.
1378         * trans-stmt.c: Remove unneeded prototypes.
1379         (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
1380         (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
1381         (compute_inner_temp_size): Remove bits of dead code. Add comments.
1382         Don't share loopinfo.
1383         (compute_overall_iter_number): Declare as static.
1384         (allocate_temp_for_forall_nest): Ditto.
1385         (g95_trans_forall_1): Don't pass shared loopinfo.
1386         * trans.c (g95_start_block): Expand comment.
1387
1388 2003-07-12  Paul Brook  <paul@nowt.org>
1389
1390         * arith.c (g95_index_integer_kind): Remove unused initializer.
1391         * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
1392         index by size of element.
1393         (generate_loop_for_rhs_to_temp): Ditto.
1394         (allocate_temp_for_forall_nest): Use element size, not index size.
1395
1396 2003-07-11  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1397
1398         * arith.c (g95_index_integer_kind): Add a TODO.
1399         * simplify.c (g95_simplify_nearest): Add a TODO.
1400
1401 2003-07-09  Chun Huang  <compiler@sohu.com>
1402
1403         * trans.h: Add declarations for gfor_fndecl_string_scan and
1404         gfor_fndecl_string_verify.
1405         * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
1406         * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
1407         (g95_conv_intrinsic_verify): New function.
1408         (g95_conv_intrinsic_function): Add SCAN and VERIFY.
1409         * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
1410         of parameter 'BACK=.TRUE.'
1411
1412 2003-07-05  Lifang Zeng  <zlf605@hotmail.com>
1413
1414         * trans-stmt.c (iter_info, forall_info): Define.
1415         (g95_trans_forall_block): Remove.
1416         (g95_trans_forall_loop): Use forall info blocks.
1417         (g95_trans_nested_forall_loop): New function.
1418         (g95_do_allocate): Handle things other than logical masks.
1419         (generate_loop_for_temp_to_lhs): New function.
1420         (generate_loop_for_rsh_to_temp): New function.
1421         (compute_inner_temp_size): New function.
1422         (compute_overall_iter_number): New function.
1423         (allocate_temp_for_forall_nest): New function.
1424         (g95_trans_forall): Move body ...
1425         (g95_trans_forall_1): ... to here.  Handle loops with temporaries.
1426
1427 2003-07-02  Paul Brook  <paul@nowt.org>
1428
1429         * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
1430         in correct scope.  Change callers to match.
1431         * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
1432         * iresolve.c (g95_resolve_reshape): Only use constant shapes.
1433
1434 2003-07-02  Paul Brook  <paul@nowt.org>
1435
1436         * trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
1437         expression shape for all expressions.
1438         * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
1439
1440 2003-07-03  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1441
1442         * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
1443         g95_parse_arg), intrinsic.c (g95_convert_type): support of
1444         -Wconversion.
1445         * intrinsic.c, g95.h: Add g95_convert_type_warn,
1446         * resolve.c (g95_resolve_index): Call it.
1447
1448 2003-07-02  Paul Brook  <paul@nowt.org>
1449
1450         * iresolve.c (g95_resolve_reshape): Set expression shape.
1451         (g95_resolve_shape): Ditto.
1452         * simplify.c (g95_simplify_shape): Move common code outside condition.
1453         * trans-array.c (g95_conv_array_initializer): Teach it how to count.
1454
1455 2003-07-01  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1456
1457         * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
1458         conformance checks.
1459
1460 2003-06-29  Paul Brook  <paul@nowt.org>
1461
1462         * array.c (g95_simplify_iterator_var): Don't bother with return value.
1463         * expr.c (find_array_element, find_component_ref): New functions.
1464         (remove_subobject_ref): New function.
1465         (simplify_const_ref): Use them.  Rename from simplify_component_ref.
1466         (simplify_ref_chain): New function.
1467         (g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
1468         (g95_specification_expr): Simplify the expression.
1469         * resolve.c (resolve_operator): Check simplifications return code.
1470         (g95_resolve_expr): Ditto.
1471
1472 2003-06-26  Paul Brook  <paul@nowt.org>
1473
1474         * expr.c (simplify_component_ref): New function.
1475         (g95_simplify_expr): Use it.
1476         * resolve.c (resolve_structure_cons): Handle references.
1477
1478 2003-06-25  Paul Brook  <paul@nowt.org>
1479
1480         * trans-io.c (build_dt): Handle internal units.
1481
1482 2003-06-25  Canqun Yang  <canqun@yahoo.com.cn>
1483
1484         * trans-common.c (g95_build_common_decl): Array index range starts at 0.
1485         (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
1486         Use g95_array_index_type instead of integer_type_node.
1487         (g95_build_common_decl, g95_set_common_master_type): Use
1488         g95_character1_type_node instead of char_type_node.
1489         * trans-equivalence.c (g95_layout_local_equiv): As above.
1490
1491 2003-06-24  Steven G. Kargl  <kargls@attbi.com>
1492
1493         * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
1494         remove last remains of -fquiet.
1495
1496 2003-06-22  Paul Brook  <paul@nowt.org>
1497
1498         * resolve.c (resolve_operator): Don't fail if we can't simplify.
1499         (g95_resolve_expr): Ditto.
1500         (resolce_code): Mark as static.
1501         * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
1502         gimplifer doesn't (yet).
1503
1504 2003-06-20  Paul Brook  <paul@nowt.org>
1505
1506         * g95.h: Add ST_PAUSE and EXEC_PAUSE.
1507         * match.c (g95_match_if): Add ST_PAUSE.
1508         (g95_match_stopcode): New function.
1509         (g95_match_pause, g95_match_stop): Use it.
1510         * parse.c (g95_ascii_statement): Handle ST_PAUSE.
1511         (decode_stmt, next_statement, parse_executable): Ditto.
1512         * resolve.c (resolve_code): Ditto.
1513         * st.c (g95_free_statement): Ditto.
1514         * trans-stmt.c (g95_trans_pause): New function.
1515         * trans-stmt.h: Declare it.
1516         * trans.c (g95_trans_code): Use it.
1517         * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
1518         Declare.
1519         (g95_build_builtin_function_decls): Initialize them.
1520         * trans.h: Ditto.
1521         * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
1522
1523 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1524
1525         * io.c (g95_match_open , g95_match_close, g95_match_inquire,
1526         match_filepos): Fix error handling.
1527
1528 2003-06-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1529
1530         * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
1531         Add assertions on arguments.
1532         * resolve.c (expression_shape): Remove useless &.
1533         * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
1534         g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
1535         g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
1536         g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
1537         g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
1538         g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
1539         (g95_simplify_not, g95_simplify_scale): Add assertions.
1540
1541 2003-06-15  Paul Brook  <paul@nowt.org>
1542
1543         Clean up stuff to work with the ssa optimizers.
1544         * convert.c (convert): Handle BOOLEAN_TYPEs.
1545         * f95-lang.c (g95_truthvalue_conversion): Implement.
1546         * trans-array.c (g95_trans_array_constructor_value): Group multiple
1547         scalar values.
1548         * trans.h (g95_truthvalue_conversion): Declare.
1549         * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
1550         * trans-stmt.c (g95_trans_character_select): Don't create array
1551         assignments.  Mark labels as indirect jump targets.
1552         * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
1553         (g95_get_dtype_cst): Handle LOGICAL types.
1554
1555 2003-06-14  Paul Brook  <paul@nowt.org>
1556
1557         * f95-lang.c (g95_gimplify_expr): New function.
1558         * trans-array.c (g95_trans_array_constructor_value): Don't create
1559         array assignments.
1560         (g95_conv_expr_descriptor): Rename simple->gimple.
1561         * trans-expr.c (conv_expr_op): Use proper logical operators.
1562         * trans-intrinsic.c (build_fixbound_expr): New function.
1563         (build_fix_expr): Ditto.
1564         (g95_conv_intinsic_aint): Use them. Use builtin functions.
1565         (g95_conv_intrinsic_function): Add FLOOR and CEILING.
1566
1567 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1568
1569         * array.c (g95_compare_array_spec): Remove unreachable code.
1570         * expr.c (g95_copy_expr): Likewise.
1571         * intrinsic.c (g95_convert_type): Likewise.
1572         * misc.c (g95_code2string): Likewise.
1573         * simplify.c (g95_simplify_ishft, g95_simplify_real,
1574         g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
1575         * trans-stmt.c (g95_trans_select): Likewise.
1576         * primary.c (extend_ref): Add an assertion.
1577         * simplify.c (g95_convert_constant): Add const.
1578         * intrinsic.h: Remove g95_check_x_ni.
1579         * f95-lang.c (g95_finish): Call g95_release_include_path.
1580
1581 2003-06-10  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1582
1583         * resolve.c (resolve_contained_functions): Fix typo introduced on
1584         2003-01-13.
1585
1586 2003-06-09  Paul Brook  <paul@nowt.org>
1587
1588         * g95.h: Include system.h not hwint.h.
1589         * many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
1590         * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
1591
1592 2003-06-09  Paul Brook  <paul@nowt.org>
1593
1594         * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
1595         * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
1596         * trans-decl.c (g95_add_decl_to_functions): Make non-static.
1597         (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
1598         (g95_generate_function_code): Translate COMMON and EQUIVALENCE
1599         objects.
1600         * trans.h (g95_trans_equivalence, g95_trans_common,
1601         g95_add_decl_to_function): Declare.
1602         * trans-common.c, trans-equivalence.c: New files.
1603
1604 2003-06-08  Steven Bosscher  <steven@gcc.gnu.org>
1605
1606         * intrinsic.c (g95_intrinsic_extension): Remove.
1607         (add_functions): Substitute g95_check_x for g95_check_x_ni
1608         everywhere.
1609         (g95_init_expr_extensions): New function.
1610         (g95_intrinsic_func_interface): Use it.
1611         * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
1612         * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
1613         g95_check_precision, g95_check_present, g95_check_radix,
1614         g95_check_range, g95_check_selected_real_kind): Do not set
1615         g95_intrinsic_extension.
1616         (g95_check_x_ni): Remove now duplicate of g95_check_x.
1617
1618         * expr.c (check_inquiry): Add FIXME, fixup some code style.
1619
1620 2003-06-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1621
1622         * g95.h (ref_type): Name this type explicitly.
1623         * module.c (MIO_NAME): Add specialisations of mio_name.
1624         (mio_symbol_attribute, mio_typespec, mio_array_ref,
1625         mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
1626         (ab_attribute): Name this type explicitly.
1627         (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
1628
1629 2003-06-05  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1630
1631         * trans-intrinsic.c (g95_conv_allocated): New function.
1632         (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
1633
1634 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1635
1636         * f95-lang.c: Don't include g95-support.h
1637         (g95_mark_addressable): Add prototype.
1638         (g95_init_decl_processing): Remove C front end hack.
1639         * f95-tree.c: Remove file.
1640         * support.c: Remove file.
1641         * g95-support.h: Remove file.
1642         * trans-types.c (g95_init_types): Set up boolean
1643         type related tree nodes.
1644         * Make-lang.in: Remove rules for dead files and
1645         dependencies on them.
1646
1647 2003-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1648
1649         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
1650         C front end dependency.  Also, convert.c does not depend on
1651         g95-support.h anymore.
1652         * convert.c: Don't include c-common.h and g95-support.h
1653         * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
1654         (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
1655         stmts_are_full_exprs_p, current_stmt_tree,
1656         current_scope_stmt_stack): Remove.
1657         * g95-support.h (unsigned_conversion_warning): Kill proto.
1658         (boolean_type_node, boolean_true_node, boolean_false_node):
1659         Don't define here.  Instead, make then true tree nodes in
1660         trans-types.
1661         * support.c (c_global_trees): Die, C front end, die!!!
1662         (g95_init_c_decl_hacks): Don't touch intmax_type_node,
1663         uintmax_type_node, string_type_node and const_string_type_node.
1664         (decl_constant_value, overflow_warning): Make static functions.
1665         They are in death row too, though.
1666         (default_conversion, c_expand_asm_operands): Remove.
1667         * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
1668         trans.c: Don't include c-common.h.
1669         * trans-types.c (boolean_type_node, boolean_true_node,
1670         boolean_false_node): Make them real tree nodes.
1671         * trans-types.h (intmax_type_node, string_type_node,
1672         const_string_type_node): Hack to work around C dependencies
1673         in builtin-types.def.
1674
1675 2003-06-04  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1676
1677         * decl.c (decl_types): Add some iterators-like sentinels.
1678         * decl.c (match_attr_spec): Use them.
1679         Use "decl_types" instead of "int".
1680         Add cast in call to g95_match_strings.
1681         * dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
1682         instead of "int".
1683         * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
1684         (g95_interface_info): Use "g95_intrinsic_op".
1685         * dump-parse-tree.c (g95_show_namespace): Use them.
1686         * interface.c (g95_check_interfaces): Use them.
1687         * module.c (read_module, write_module): Use them.
1688         * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
1689         Use "g95_intrinsic_op".
1690         * interface.c (check_operator_interface): Use "g95_intrinsic_op".
1691         Add a default case in switch statement.
1692         * intrinsic.h (g95_generic_isym_id): Moved to...
1693         * g95.h (g95_generic_isym_id): here.
1694         (g95_intrinsic_sym): Use "g95_generic_isym_id".
1695         * intrinsic.c (make_generic): Use "g95_generice_isym_id".
1696         * trans-intrinsic.c (g95_intrinsic_map_t,
1697          g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
1698         * match.c (g95_match_intrinsic_op): Add cast in call to
1699         g95_match_strings.
1700
1701 2003-06-03  Steven Bosscher  <steven@gcc.gnu.org>
1702
1703         * support.c (skip_evaluation, warn_conversion, lvalue_p,
1704         lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
1705         constant_fits_type_p, convert_and_check,
1706         unsigned_conversion_warning): Remove these ugly remnants
1707         we inherited from the C front end.
1708         (function_types_compatible): Remove '#if 0'-edcode.
1709         (build_modify_expr): Likewise.
1710         (convert_for_assignment): Don't use the deceased functions.
1711         The parameter fundecl is now unused.
1712         (decl_constant_value): Always just return decl.  In fact
1713         this function is not used at present, but it might be in
1714         the future, when we start using the tree inliner.
1715         (overflow_warning, default_conversion, c_expand_asm_operands):
1716         Abort when these are called, they are part of the C type
1717         checking implementation and therefore poison to Fortran.
1718
1719 2003-06-04  Steven Bosscher  <steven@gcc.gnu.org>
1720
1721         * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
1722         c-pretty-print.o and c-dump.o.  Add a comment on why we
1723         depend on c-semantics.c.
1724         * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
1725         Don't use the C front end tree dumper hook to dump the
1726         language specific tree representation -- we don't have
1727         one.  So instead, inherit the default langhook.
1728
1729 2003-06-02  Paul Brook  <paul@nowt.org>
1730
1731         * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
1732
1733 2003-06-02  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1734
1735         * check.c (g95_check_associated): Use proper types.  Remove
1736         extraneous argument in call to g95_error().
1737
1738 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1739
1740         * resolve.c (resolve_operator): Make logical operands convert to the
1741         type with higher kind.
1742
1743 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1744
1745         * check.c (g95_check_associated): Make sure both pointer and target has
1746         the same type and rank. Null pointer or array section with vector
1747         subscript as target are not allowed.
1748         * trans.h: Declare gfor_fndecl_associated.
1749         * trans-decl.c: (g95_build_builtin_function_decls): Initialize
1750         gfor_fndecl_associated.
1751         * trans-intrinsic.c (g95_conv_associated): New function.
1752         (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
1753
1754 2003-06-02  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1755
1756         * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
1757         according to POINTER itself rather than TARGET.
1758         (g95_conv_expr_descriptor): Make lbound start at 1.
1759         * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
1760
1761 2003-06-01  Paul Brook  <paul@nowt.org>
1762
1763         * expr.c (g95_type_convert_binary): Make it match the standard.
1764         * g95.texi: Remove dead link.
1765
1766 2003-06-01  Steven Bosscher  <steven@gcc.gnu.org>
1767
1768         * g95.texi: Cleanup somewhat in preparation for inclusion
1769         in GCC CVS.
1770
1771 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1772             Canqun Yang  <canqun@yahoo.com.cn>
1773
1774         * resolve.c (compare_bound_int, resolve_where_shape): Proper return
1775         type.
1776         (g95_find_forall_index): Return proper value.
1777         (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
1778         compare the return value from g95_find_forall_index.
1779
1780 2003-05-23  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
1781         * g95.h, io.c (g95_st_label): Remove "length".
1782         (g95_symtree): Remove "link".
1783         (g95_case): Remove "code".
1784         * arith.c, arith.h (g95_compare_string, g95_convert_integer,
1785         g95_convert_real): Make an argument pointer to const.
1786         * decl.c (colon_seen): Add a TODO.
1787         * interface.c (g95_compare_types): Fix typo.
1788         * interface.c (compare_interfaces): Preserve value of "p".
1789         * intrinsic.c (sort_actual): Remove "i".
1790         * match.c (g95_match_assign): Proper type in call to g95_match().
1791         * parse.c (next_free): Avoid duplicate call due to macro.
1792         * parse.c (check_statement_label): wrong type in call to g95_error.
1793         * primary.c (match_real_constant): Add a TODO.
1794         * resolve.c (resolve_select):  Remove useless conditional.
1795         * simplify.c (g95_simplify_repeat): Proper assignment to
1796         "value.character.string".
1797         * simplify.c (g95_simplify_reshape): Wrong variable in call to
1798         g95_error.
1799
1800 2003-05-20  Canqun Yang  <canqun@yahoo.com.cn>
1801
1802         * trans-stmt.c: Remove unnecessary include file defaults.h.
1803
1804 2003-05-19  Lifang Zeng  <zlf605@hotmail.com>
1805
1806         * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
1807         stride.
1808         (g95_trans_forall): Allow arbitrary number of FORALL indexes and
1809         actual variables used as FORALL indexes.
1810
1811 2003-05-15  Paul Brook  <paul@nowt.org>
1812
1813         * trans-array.c (g95_trans_static_array_pointer): Use
1814         null_pointer_node.
1815         (g95_trans_deferred_array): Initialize static array pointers.
1816         * trans-expr.c (g95_conv_function_call): Use formal arglist to
1817         correctly pass POINTER and absent CHARACTER arguments.
1818
1819 2003-05-14  Lifang Zeng  <zlf605@hotmail.com>
1820
1821         * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
1822         (g95_resolve_forall_body): Resolve FORALL body.
1823         (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
1824         (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
1825         (g95_find_forall_index): Check whether the FORALL index appears in
1826         the expression or not.
1827         (resolve_code): Modified.
1828
1829 2003-05-14  Paul Brook  <paul@nowt.org>
1830
1831         * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
1832
1833 2003-05-13  Paul Brook  <paul@nowt.org>
1834
1835         * trans-types.c (g95_max_array_element_size): Now a tree node.
1836         (g95_init_types): Work out max size properly.
1837         (g95_get_dtype_cst): Modify to match.
1838
1839 2003-05-11  Paul Brook  <paul@nowt.org>
1840
1841         * trans-io.c (add_case): Create a label decl for case labels.
1842
1843 2003-05-11  Paul Brook  <paul@nowt.org>
1844
1845         * arith.c (g95_integer_index_kind): New variable.
1846         * f95-lang.c (g95_init): Move frontend initialization here ...
1847         (g95_post_options): ... from here.
1848         * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
1849         * intrinsic.c (add_functions): Use index kinds.
1850         * iresolve.c: Convert to index_kind where needed.
1851         * resolve.c (g95_resolve_index): Make public, use index_kind.
1852         (resolve_array_ref): Adjust to match.
1853         * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
1854         * trans-stmt.c: Ditto.
1855         * trans-types.c: Ditto.
1856         * trans-types.h (g95_array_index_kind): Remove declaration.
1857         * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
1858
1859 2003-05-07  Paul Brook  <paul@nowt.org>
1860
1861         * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
1862         * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
1863         of bound indices.
1864
1865 2003-05-07  Paul Brook  <paul@nowt.org>
1866
1867         * trans-array.c (trans_static_array_pointer,
1868         g95_trans_array_constructor_value, g95_conv_array_initializer,
1869         g95_conv_structure): CONSTRUCTOR nodes only have one operand.
1870         (g95_add_loop_ss_code): Convert subscripts to the correct type.
1871         * trans-stmt.c (g95_trans_character_select): Ditto.
1872         * trans-types.c (g95_init_types): Ditto.
1873
1874 2003-05-07  Steven Bosscher  <steven@gcc.gnu.org>
1875
1876         * f95-lang.c (expand_function_body): Use input_line, not lineno.
1877         * trans-decl.c (g95_generate_function_code,
1878         g95_generate_constructors): Likewise.
1879         * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
1880         g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
1881         Likewise.
1882
1883 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1884         * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
1885         with components point to the DERIVED type itself, and two DERIVED
1886         type with components point to each other.
1887         * trans-expr.c (g95_conv_componet_ref): Modified
1888
1889 2003-05-07  Kejia Zhao  <kejia_zh@yahoo.com.cn>
1890         * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
1891         null_pointer_node.
1892         (g95_trans_pointer_assign): Implement Nullify.
1893
1894 2003-05-01  Paul Brook  <paul@nowt.org>
1895
1896         * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
1897         * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
1898
1899 2003-05-01  Paul Brook  <paul@nowr.org>
1900
1901         * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
1902         trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
1903         IS_EMPTY_STMT.
1904
1905 2003-05-01  Canqun Yang  <canqun@yahoo.com.cn>
1906
1907         * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
1908         CASE_LABEL_EXPR.
1909
1910 2003-04-28  Paul Brook  <paul@nowt.org>
1911
1912         * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
1913         as their kind suggests.
1914         (g95_resolve_reshape): Ditto.
1915
1916 2003-04-28  Chun Huang  <compiler@sohu.com>
1917
1918         * trans-expr.c (g95_conv_substring_expr): New function.
1919         (g95_conv_expr): Use it.
1920
1921 2003-04-28  Paul Brook  <paul@nowt.org>
1922
1923         * iresolve.c (g95_resolve_transpose): Make it match the
1924         implementation.
1925         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
1926
1927 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
1928
1929         * trans-types.c (g95_add_field_to_struct): New function to
1930         add a field to a UNION_TYPE or RECORD_TYPE.
1931         * trans-types.h (g95_add_field_to_struct): Prototype.
1932         (g95_get_derived_type): Use g95_add_field_to_struct to add
1933         components.
1934         * trans-io.c (g95_add_field): Remove.
1935         (ADD_FIELD): Use new g95_add_field_to_struct function.
1936         (ADD_STRING): Likewise.
1937         * trans-stmt.c (g95_trans_select): Likewise.
1938         (g95_add_field): Remove duplicated function.
1939
1940 2003-04-18  Canqun Yang  <canqun@yahoo.com.cn>
1941
1942         Port implementation for CHARACTER SELECT from Andy's tree.
1943         * trans-stmt.c (g95_trans_character_select): Implement character
1944         select. (g95_add_field): New function.
1945         * trans-decl.c: Declare 'gfor_gndecl_select_string'.
1946         (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
1947         * g95.h (struct g95_case): Add field 'int n'.
1948         * trans.h: Declare 'gfor_fndecl_select_string'.
1949
1950 2003-04-18  Steven Bosscher  <steven@gcc.gnu.org>
1951
1952         * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
1953         (g95_insert_bbd): Die on duplicates.
1954         * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
1955
1956 2003-04-14  Steven Bosscher  <steven@gcc.gnu.org>
1957
1958         * g95.texi: Require GMP 4.0 -- like we actually
1959         do.  Explain the testsuite and what-goes-where.
1960         Don't use undefined texinfo symbol.  Break very
1961         long line.  Remove finished item from the list
1962         of open projects.
1963
1964 2003-04-11  Canqun Yang  <canqun@yahoo.com.cn>
1965
1966         * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
1967         LOGICAL type.
1968
1969 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
1970
1971         * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
1972         (g95_trans_forall_body): New function.
1973
1974 2003-04-10  Canqun Yang  <canqun@yahoo.com.cn>
1975
1976         * resolve.c (resove_where): New function.
1977         (resolve_where_shape): New function.
1978         (resolve_code): Add call to 'resolve_where'
1979         * trans-stmt.c (g95_trans_where): Modified.
1980         (g95_trans_where_2): New function.
1981         (g95_trans_where_assign): New function.
1982         (g95_evaluate_where_mask): New function.
1983         (g95_add_to_stmt_list): New function.
1984         (g95_get_temp_expr): New function.
1985         * trans.h (where_stmt_list): New structure.
1986
1987 2003-04-10  Paul Brook  <paul@nowt.org>
1988
1989         * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
1990         (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
1991
1992 2003-04-10  Steven Bosscher  <steven@gcc.gnu.org>
1993
1994         Update after mainline -> tree-ssa-branch merge.
1995         * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
1996         call.
1997         (g95_init): Update for new lang_hooks definition.
1998         (g95_post_options): New langhook.
1999         (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
2000         * scanner.c (g95_new_file): Comment update.
2001
2002 2003-04-09  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2003
2004         * g95.h, lang-options.h: Add -Wimplicit-interface.
2005         * options.c (g95_init_options, g95_parse_arg): Set it.
2006         * interface.c (check_intents): Warn about call with implicit
2007         interface.
2008         * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
2009         g95_procedure_use.
2010
2011 2003-04-05  Paul Brook  <paul@nowt.org>
2012
2013         * iresolve.c (g95_resolve_spread): Don't resole based on type.
2014         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
2015
2016 2003-03-29  Paul Brook  <paul@nowt.org>
2017
2018         * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
2019         (g95_resolve_unpack): Ditto.
2020         * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
2021         (g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
2022         (g95_is_intrinsic_libcall): Add PACK and UNPACK.
2023
2024 2003-03-25  Paul Brook  <paul@nowt.org>
2025
2026         * arith.c (g95_unary_user, g95_user): Remove dead functions.
2027         * arith.h: Ditto.
2028         * array.c (g95_free_array_ref): Ditto.
2029         * g95.h: Ditto.
2030         * symbol.c (g95_use_derived_tree): Ditto.
2031         * intrinsic.c (add_functions): Use simplification for SCALE.
2032         * primary.c (g95_match_rvalue): Test sym, not symtree.
2033
2034 2003-03-25  Paul Brook  <paul@nowt.org>
2035
2036         * trans-decl.c (build_function_decl): Add parameter before it gets
2037         turned into a constant.
2038         * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
2039         * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
2040         * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
2041
2042 2003-03-22  Paul Brook  <paul@nowt.org>
2043
2044         * trans-array.c (g95_conv_array_initializer): Allow scalar
2045         expressions.
2046         * trans-decl.c (g95_finish_var_decl): Result variables are not
2047         module variables.
2048         * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
2049         (g95_conv_intrinsic_function): Use it.
2050         * trans-types.h (g95_type_spec): Remove dead declaration.
2051
2052 2003-03-21  Paul Brook  <paul@nowt.org>
2053
2054         * trans-decl.c (g95_build_function_decl): Mark string parameters.
2055
2056 2003-03-20  Paul Brook  <paul@nowt.org>
2057
2058         * trans-decl.c (g95_build_function_decl): Put character length
2059         parameters at the end of the function declaration.
2060         * trans-expr.c (g95_conv_function_call): Ditto.
2061         * trans-types.c (g95_get_function_type): Ditto.
2062
2063 2003-03-20  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2064
2065         * resolve.c (resolve_formal_arglist): Don't impose intent for
2066         procedure arguments of pure functions.
2067         (resolve_select): Remove redundant assignment.
2068
2069 2003-03-19  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2070
2071         * arith.c (validate_logical), g95.h, options.c (g95_init_options):
2072         Remove option l1.
2073         * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
2074         * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
2075         const.
2076         * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
2077         Order list.
2078         * symbol.c (g95_add_type): Fix typo in comment.
2079
2080
2081 2003-03-16  Paul Brook  <paul@nowt.org>
2082
2083         * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
2084         * expr.c (g95_build_call): Remove.
2085         * f95-lang.c (puchdecl_top_level): New function.
2086         * g95.h (g95_code): Store resolved symbol, not just the name.
2087         * intrinsic.c (g95_intrinsic_namespace): New global namespace.
2088         (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
2089         (g95_get_intrinsic_sub_symbol): New function.
2090         * iresolve.c (g95_resolve_cpu_time): Use it.
2091         (g95_resolve_random_number): Ditto.
2092         * resolve.c: Set code->resolved_sym instead of code->sub_name.
2093         * trans-decl.c (g95_get_extern_function_decl): Give external decls
2094         the correct DECL_CONTEXT.  Add global symbold to the global scope.
2095         * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
2096         fixed.
2097
2098 2003-03-16  Paul Brook  <paul@nowt.org>
2099
2100         * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
2101         * options.c (g95_parse_arg): Ditto.
2102         * module.c (mio_symbol_attribute): Handle the always_explicit bit.
2103         * resolve.c (resolve_formal_arglist): The always_explicit sould be set
2104         for the procedure, not the parameter.
2105         * trans-array.c (g95_trans_g77_array): New function.
2106         (g95_trans_assumed_size): Use it.
2107         (g95_trans_dummy_array_bias): Ditto.
2108         (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
2109         (g95_conv_expr_descriptor): ... to here.  Update callers.
2110         * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
2111         (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
2112         * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
2113         * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
2114         * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
2115         (g95_sym_type): Ditto.
2116
2117 2003-03-15  Paul Brook  <paul@nowt.org>
2118
2119         * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
2120         first chain.
2121         * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
2122
2123 2003-03-14  Paul Brook  <paul@nowt.org>
2124
2125         * trans-array.c (g95_array_is_packed): Remove.
2126         (g95_conv_array_base): Correctly handle all descriptorless cases.
2127         (g95_conv_array_stride): Use descriptorless strides.
2128         (g95_trans_dummy_array_bias): Don't always repack the array.
2129         (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
2130         packed.
2131         * trans-types.c (g95_get_nodesc_array_type): Differentiate between
2132         dummy and non-dummy arrays...
2133         (g95_sym_type, g95_get_derived_type): ... like these.
2134         (g95_get_array_type_bounds): Allow discontiguous arrays.
2135
2136 2003-03-12  Paul Brook  <paul@nowt.org>
2137
2138         * array.c (g95_resolve_array_spec): Fix comment.
2139         * g95.h (symbol_attributes): New flag always_explicit.
2140         * resolve.c (resolve_formal_arglist): Set it always_explicit.
2141         * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
2142         * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
2143         (g95_trans_array_bounds): Allow assumed shape arrays.
2144         (g95_trans_repack_array): Remove.
2145         (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
2146         * trans-decl.c (g95_build_qualified_array): Only ignore absent
2147         bounds for assumed size arrays.
2148         (g95_build_dummy_array_decl): Use descriptorless arrays.
2149         * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
2150         (g95_trans_pointer_assign): Fix typo.
2151         * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
2152         code.
2153         (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
2154         * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
2155         Also modify callers.
2156         * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
2157
2158 2003-03-08  Paul Brook  <paul@nowt.org>
2159
2160         * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
2161         (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
2162         * resolve.c (compare_spec_to_ref): Allow full array sections.
2163
2164 2003-03-08  Paul Brook  <paul@nowt.org>
2165
2166         * expr.c (g95_simplify_expr): Also simplify array index and
2167         substring expressions.
2168         * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
2169         * trans-array.c (g95_trans_array_bounds): New function.
2170         (g95_trans_auto_array_allocation): Use it.
2171         (g95_trans_assumed_size): Rewrite.
2172         * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
2173         (gfor_fndecl_repack): Remove.
2174         (g95_build_qualified_array): Handle absent upper bounds.
2175         (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
2176         (g95_get_symbol_decl): Update.
2177         (g95_build_intrinsic_function_decls): Initialize new decls.
2178         * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
2179         (gfor_fndecl_repack): Remove.
2180         * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
2181         * trans-types.c: (g95_build_array_type): Merge duplicated code..
2182         (g95_get_nodesc_array_type): Handle absent bounds.
2183         * trans-types.h (g95_get_nodesc_array_type): Declare.
2184
2185 2003-03-04  Paul Brook  <paul@nowt.org>
2186
2187         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
2188         builtin-types.def.
2189
2190 2003-03-02  Paul Brook  <paul@nowt.org>
2191
2192         * options.c (g95_init_options): Drfault to 1.
2193         (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
2194         * trans-array.c (g95_conv_array_data, g95_conv_array_base,
2195         g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
2196         Handle non-constant size automatic arrays.
2197         (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
2198         generic bound functions.
2199         (g95_trans_auto_array_allocation): Don't create a descriptor.
2200         (g95_trans_assumed_size): New function (broken).
2201         (g95_trans_dummy_array_bias): Remove unused var.
2202         * trans-array.h (g95_trans_assumed_size): Declare.
2203         * trans-decl.c (create_index_var): New fuction.
2204         (g95_build_qualified_array): New function.
2205         (g95_get_symbol_decl): Use it.
2206         (g95_trans_deferred_vars): Handle assumed shape seperately.
2207         * trans-types.c (get_element_type): Handle heap allocated arrays.
2208         (g95_is_nodesc_array): Include non-const size arrays.
2209         (g95_get_nodesc_array_type): Ditto.
2210
2211 2003-02-23  Paul Brook  <paul@nowt.org>
2212
2213         * trans-array.c (g95_array_init_size): Should use stride, not size of
2214         last dimension.
2215
2216 2003-02-18  Paul Brook  <paul@nowt.org>
2217
2218         * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
2219         after intrinsic function check.
2220
2221 2003-02-18  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2222
2223         * io.c (match_io): Fix missing return value and remove useless
2224         assignment.
2225         * match.c (g95_match): Remove useless assignment.
2226         * module.c (parse_string):  Remove useless post increment.
2227         * simplify.c (g95_simplify_verify): Remove useless assignment.
2228
2229 2003-02-15  Paul Brook  <paul@nowt.org>
2230
2231         * expr.c (restricted_intrinsic): Handle bad values gracefully.
2232         * g95.h (symbol_attribute): Add referenced member.
2233         (g95_symbol): Add dummy_order member.
2234         (g95_set_sym_referenced): Declare.
2235         * match.c (g95_match_assignment, g95_match_call): Use it
2236         * primary.c (match_actual_arg, g95_match_rvalue,
2237         g95_match_variable): Ditto.
2238         * symbol.c (next_dummy_order): New variable.
2239         (g95_set_sym_referenced): New function.
2240         (check_done): New function.
2241         (g95_add_*): Use it.
2242         * trans-decl.c: Make formatting conform to GCC standards.
2243         (g95_defer_symbol_init): Add dummy variables in the right order.
2244         (g95_get_symbol_decl): Only accept referenced variables.
2245         (g95_create_module_variable): Module variables are always required.
2246         (generatr_local_decls): New function.
2247         (generate_local_vars): New function.
2248         (g95_generate_function_code): Use it.
2249
2250 2003-02-13  Paul Brook  <paul@nowt.org>
2251
2252         * trans-decl.c (g95_conv_struct_cons): Remove.
2253         (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
2254         * trans-expr.c (g95_conv_structure): New function.
2255         (g95_conv_expr): Use it.
2256
2257 2003-02-09  Paul Brook  <paul@nowt.org>
2258
2259         * trans-array.c (g95_array_init_size): Don't evaluate the linit
2260         expressions multiple times.
2261         (g95_trans_auto_arry_allocation): Use pointer not tmp.
2262
2263 2003-02-08  Paul Brook  <paul@nowt.org>
2264
2265         * module.c (mio_symtree_ref): Declare as static.
2266         (mio_expr): Remove dead code.
2267         (read_module): Set the symtree link for fixups.
2268         * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
2269         (build_round_expr): ... to this.
2270         (g95_conv_intrinsic_aint): New function.
2271         (g95_conv_intrinsic_function): Use it.
2272
2273 2003-02-08  Paul Brook  <paul@nowt.org>
2274
2275         * trans-array.c (g95_trans_array_constructor_value): Use the acutal
2276         offset after modificaton, not the increment expression.
2277         * dependency.c: Kill excess whitespace.
2278
2279 2003-02-07  Sanjiv Gupta  <sanjivg@noida.hcltech.com>
2280
2281         * dependency.h: Remove some function declarations.
2282         * dependency.c (get_no_of_elements): Change this function not to
2283         return int.
2284         * other: Add comments for all modified functions.
2285
2286 2003-02-06  Paul Brook  <paul@nowt.org>
2287
2288         * g95spec.c (lang_specific_functions): Fix initializer warning.
2289         * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
2290         for structure type names.
2291         * trans-decl.c (g95_cons_structure_cons): New function.
2292         (g95_get_symbol_decl): Use it.
2293         * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
2294         referencing code.
2295
2296 2003-02-06  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2297
2298         * resolve.c (compare_cases): Add const to casts.
2299
2300 2003-01-30  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2301
2302         * g95.h (g95_check_f): Change a1 to f1m.
2303         * intrinsic.c (add_sym_1m, check_specific,
2304         g95_intrinsic_func_interface): Use it.
2305
2306         * module.c (init_pi_tree): Remove useless cast.
2307         (fp2): Fix argument type.
2308
2309         * parse.c (parse_select_block): Add comment.
2310
2311 2003-02-05  Toon Moene  <toon@moene.indiv.nluug.nl>
2312
2313         * lang-options.h: Fix warning involving C90 concatenated
2314         strings.
2315
2316 2003-02-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2317             Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2318
2319         * io.c (format_asterisk): Complete initializer to kill warning.
2320         * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
2321         DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
2322         (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
2323         new defines to complete initializers.  Kills all warnings.
2324
2325         * Make-lang.in: Comment cleanup.
2326
2327 2003-02-05  Paul Brook  <paul@nowt.org>
2328
2329         * array.c (g95_free_constructor): Handle NULL expressions.
2330         * resolve.c (resolve_structure_cons): Ditto.
2331         * decl.c (g95_match_null): New Function.
2332         (variable_decl): Use it.
2333         * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
2334         * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
2335         * trans-types.c (g95_set_decl_attributes): Remove empty function.
2336
2337 2003-02-05  Paul Brook  <paul@nowt.org>
2338
2339         * trans.h (build1_v): New macro.
2340         (build_v): Remove pointless and incorrect prototype.
2341         * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
2342         * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
2343
2344 2003-02-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2345
2346         * Make-lang.in (F95_OBJS): Remove one more dead file.
2347
2348 2003-02-01  Paul Brook  <paul@nowt.org>
2349
2350         * lang-specs.h: Don't pass -ffixed-form to the linker.
2351         * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
2352
2353 2003-02-01  Paul Brook  <paul@nowt.org>
2354
2355         * Make-lang.in (F95_OBJS): Remove dead files.
2356         * trans-array.c (g95_array_init_size): Do the right thing when
2357         ubound=NULL.
2358         * trans-decl.c (g95_generate_function_code): Initialize deffered
2359         symbol list before translating contained subroutines.
2360         * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
2361         scalar invariant values here...
2362         (g95_conv_variable, g95_conv_function_call): ... instead of here ...
2363         * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
2364
2365 2003-01-29  Paul Brook  <paul@nowt.org>
2366
2367         * trans-array.c (g95_add_loop_code): Put pre code in the right block.
2368         (g95_walk_elemental_function_args): Reverse chains before adding.
2369         (g95_reverse_ss): Move about a bit.
2370         * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
2371         function arguments.
2372
2373 2003-01-28  Paul Brook  <paul@nowt.org>
2374
2375         * intrinsic.c (resolve_intrinsic): Use correct union member.
2376         * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
2377         parameters.
2378         * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
2379         use associated variables.
2380         * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
2381         * trans-expr.c (g95_conv_expr_present): ... to here.
2382         * trans.h: Declare it.
2383         * trans-types.c (g95_sym_type): Assume subroutine if not specified.
2384
2385 2003-01-28  Arnaud Desitter  <arnaud.desitter@geography.oxford.ac.uk>
2386
2387         * array.c (expand_iterator): Suppress useless assignment.
2388         * decl.c (match_char_spec): Ditto.
2389         * io.c (match_io_iterator): Ditto.
2390         * primary.c (match_real_constant): Ditto.
2391         * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
2392         Ditto.  Also, use g95_intrinsic_op not int for intrinsic operators.
2393         * matchexp.c (match_add_operand, match_level_5): Likewise.
2394         * module.c (parse_atom, find_enum): Likewise.
2395         * resolve.c: move #include <string.h>
2396         (resolve_select): Fix serious typo.
2397
2398 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.n>
2399
2400         * Make-lang.in: Don't build with broken tree-ssa-pre.
2401
2402 2003-01-28  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2403
2404         * resolve.c (resolve_index): Add a TODO.
2405         * symbol.c: Remove useless "#include <ctype.h>".
2406
2407 2003-01-27  Paul Brook  <paul@nowt.org>
2408
2409         * check.c (check_rest): Allow different type kinds as an extension.
2410         * g95.h (g95_resolve_f): Add f1m.
2411         * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
2412         * intrinsic.h: Chenge prototypes for MIN and MAX.
2413         * iresolve.c (g95_resolve_minmax): New function.
2414         (g95_resolve_min, g95_resolve_max): Use it.
2415         * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
2416         arguments once.
2417         (g95_conv_intrinsic_present): Fix logic.
2418
2419 2003-01-27  Steven Bossche  <s.bosscher@student.tudelft.nl>
2420
2421         * g95.h (g95_case): Don't be a tree, be a double linked list.
2422         * match.c (match_case_selector): Remove redundant semantics check.
2423         Clean up a few goto's to make it a tiny little bit faster.
2424         * resolve.c (case_tree): Die.
2425         (compare_cases): Accept and compare unbounded cases too.
2426         (check_case_overlap): Don't build a tree.  Instead, merge-sort the
2427         whole list of g95_cases passed from resolve_select.
2428         (sane_logical_select): Die.
2429         (check_case_expr): Return FAILURE if a CASE label is of the wrong
2430         type kind.
2431         (resolve_select): Fixup case expression for computed GOTOs, put it
2432         in expr, not expr2, for easier handing in the parse tree dumper and
2433         the code generator.  Rewrite the rest of the function: Kill
2434         unreachable case labels and unreachable case blocks.
2435         * dump-parse-tree.c (g95_show_code_node): Always dump expr for
2436         an EXEC_SELECT, not case2 anymore.
2437         * trans-const.c (g95_conv_constant_to_tree): New function.
2438         (g95_conv_constant): Use it.
2439         * trans-const.h: Declare prototype for the new function.
2440         * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
2441         g95_trans_character_select): New static functions.
2442         (g95_trans_select): Rewrite.
2443
2444 2003-01-26  Paul Brook  <paul@nowt.org>
2445
2446         * intrinsic.c (add_fnctions): Properly add dreal.
2447         * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
2448         (g95_conv_intrinsic_function): Use it.
2449         * trans-io.c (build_dt): Abort on internal files (unimplemented).
2450
2451 2003-01-26  Paul Brook  <paul@nowt.org>
2452
2453         Widespread changes to the handling of symbols in expressions.  These
2454         are now linked via g95_symtree nodes.
2455         * parse.c (g95_fixup_sibling symbols): New function.
2456         (parse_contained): Use it.
2457         * g95.h (symbol_attribute): Add contained.  Indicates a symbol is a
2458         contained procedure that has bee correctly fixed up.
2459         (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
2460
2461 2003-01-24  Paul Brook  <paul@nowt.org>
2462
2463         * trans-array.c (g95_walk_expr): Function result attributes are in
2464         sym->result.
2465         * trans-expr.c (g95_conv_function_call,
2466         g95_trans_arrayfunc_assign): Ditto.
2467         * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
2468
2469 2003-01-23  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2470
2471         * expr.c (check_restricted): Fix error message.
2472         * symbol.c (free_st_labels): Plug memleak.
2473
2474 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2475
2476         * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
2477         reduce_binary_aa, reduce_binary, eval_intrinsic,
2478         eval_intrinsic_f2): Use typesafe prototypes for eval functions.
2479         * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
2480         for typesafe intrinsics helper functions.
2481         (g95_intrinsic_sym): Use them.
2482         * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
2483         add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
2484         add_sym_5, add_conv, resolve_intrinsic, do_simplify,
2485         check_specific, g95_intrinsic_func_interface,
2486         g95_intrinsic_sub_interface): Adjust all calls to intrinsics
2487         helper functions.
2488         * trans-decl.c (g95_get_extern_function_decl): Likewise.
2489         * Make-lang.in: Don't disable warnings for strict prototypes
2490         any longer, everything is typesafe now.
2491
2492 2003-01-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2493
2494         * bbt.c (duplicate_node): Make static.
2495         * module.c (module_name): Make static.
2496         * scanner.c (include_dirs): Make static.
2497
2498 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2499
2500         Hard coded _gfor_'s should not show up anymore.
2501         * g95.h (PREFIX): New macro.
2502         * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
2503         hard-coded "_gfor".
2504         (g95_resolve_random_number): Likewise.
2505         * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
2506         * trans-io.c: Remove 'prefix' macro.  Replace all uses with
2507         the new PREFIX macro from g95.h.
2508
2509 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2510
2511         The troubles of forking... Andy implemented this just now too.
2512         Let's stick to that and keep the trees close.
2513         * g95.h (g95_st_label): 'format' member is now a g95_expr.
2514         * io.c: Revert previous changes.
2515         (g95_match_format): Match the format string as a character
2516         literal expression.
2517         * match.h (g95_statement_label): Declare external.
2518         * parse.c: Revert previous changes.
2519         * symbol.c (g95_free_st_label): Free a g95_expr instead
2520         if a 'char *'.
2521         * trans-io.c: Revert previous changes.
2522         (build_dt): Use set_string to set the format string.
2523
2524 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2525
2526         * io.c (format_string): Make non-static.
2527         (g95_match_format): Remember the format string.
2528         (terminate_io): Add I/O termination for empty I/O lists.
2529         * match.h: Declare external format_string.
2530         * parse.c (check_statement_label): Attack the format string
2531         to a format label for FORMAT statements.
2532         * trans-io.c (g95_add_field): Define prefix macro.  Replace
2533         all uses of PREFIX define with a use of this macro.
2534         (build_dt): Implement formatted I/O for format labels.
2535
2536 2003-01-20  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2537
2538         * lang-options.h: Kill "-std=F".
2539         * options.c: Remove unimplemented "-std=F".  Modify
2540         web address.
2541         * misc.c (g95_terminal_width): New function.
2542         * error.c (g95_error_init_1): Use g95_terminal_width.
2543         * g95.h: Add prototype for g95_terminal_width, remove
2544         fmode flag.
2545
2546 2003-01-19  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2547
2548         * Make-lang.in: Fix typo.
2549
2550 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2551
2552         * g95.h (struct g95_case): Remove unused cruft, new member
2553         'where' to keep track of the locus of the default case.
2554         * match.c (g95_match_case): Add locus to the current case.
2555         (match_case_selector): Likewise.
2556         * parse.c (parse_select_block): Move semantics check for
2557         multiple DEFAULT cases out of here to...
2558         * resolve.c (check_case_overlap): ...here.  Return sooner
2559         when possible.
2560         (check_case_expr): Take two g95_cases now, use to sure the
2561         expression kinds are the same.
2562         (resolve_select): Cleanup.
2563
2564 2003-01-18  Paul Brook  <paul@nowt.org>
2565
2566         * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
2567         * trans-decl.c (g95_set_symbol_decl): Handle non-array result
2568         variables.
2569         (g95_get_extern_function_decl): Put decls in the correct context.
2570
2571 2003-01-18  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2572
2573         * trans-io.c: Port changes from Andy to set ERR flag.
2574
2575 2003-01-17  Paul Brook  <paul@nowt.org>
2576
2577         * trans-array.c: Add various comments.
2578         (g95_ss_terminator): Declare as const.
2579         (g95_walk_expr): Remove first parameter and update all callers.
2580         (g95_walk_op_expr): Initialize scalar SS properly.
2581         * trans-array.h (g95_walk_expr): Update prototype.
2582         * trans-expr.c: Update for new g95_walk_expr.
2583         * trans-intrinsic.c: Ditto.
2584         * trans-io.c: Ditto.
2585         * trans.h: Various comments for SS chains.
2586
2587 2003-01-17  Paul Brook  <paul@nowt.org>
2588
2589         * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
2590         and RRSPACING.
2591         * intrinsic.c (add_functions): Use them.
2592         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
2593         * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
2594
2595 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2596
2597         Fallout of a small merge conflict:
2598         * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
2599
2600 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2601
2602         * initrinsic.c: New add_sym_* functions for strong typing.
2603         (add_conv): Make prototype strict.
2604         * dump-parse-tree.c, dependency.c: Include config.h
2605         * resolve.c, trans-io.c: Fix typos.
2606
2607 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2608
2609         * dump-parse-tree.c (g95_show_code_node): Show the
2610         condition for a computed GOTO that was transformed
2611         to a SELECT CASE construct.
2612         * resolve.c (check_case_overlap): Revert previous switch
2613         to treaps, it was too slow and didn't catch all trouble.
2614         (resolve_symbol): Be more flexible about module procedures.
2615         * symbol.c (check_conflict): Point to relevant section in
2616         the standard for dubious conflict.  Allow procedure
2617         dummy arguments to be optional again.
2618         * trans-io (add_field): Rename to g95_add_field.  Change
2619         all callers.
2620         * trans-stmt (trans_select): Handle unbounded cases for
2621         integer SELECT CASE constructs.  Fix/add more comment.
2622
2623 2003-01-17  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2624
2625         * g95.h: Uses GCC's function attribute macros.
2626         * error.c, module.c, parse.c, g95.h: More function attributes.
2627
2628 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2629         Forgot a file...
2630         * trans-decl.c (get_label_decl): Use TREE_LINENO instead
2631         of DECL_SOURCE_LINE, and TREE_FILENAME instead of
2632         DECL_SOURCE_FILE.
2633
2634 2003-01-16  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2635
2636         * f95-lang.c (pushdecl): Use TREE_LINENO instead of
2637         DECL_SOURCE_LINE.
2638         * trans.c (g95_trans_code): Use annotate_all_with_file_line
2639         instead of nowdead wrap_all_with_wfl.
2640
2641 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2642
2643         * parse.c (g95_parse_file): In verbose mode, dump the parse tree
2644         before generating code, so we can still see it even if the code
2645         generation phase dies.
2646
2647 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2648
2649         * decl.c (build_sym): Split out initialization expression parts...
2650         (add_init_expr_to_sym): ...to here.
2651         (variable_decl): Add the symbol following an attribute list to the
2652         symbol tree before parsing the optional initialization expression
2653         if the symbol is not of a derived type.
2654         * primary.c (g95_match_rvalue): Don't assume a symbol always has
2655         a value if it is a PARAMETER.
2656
2657 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2658
2659         * misc.c: Don't #include <mcheck.h>
2660         * module.c: Ditto.  Kill uses of mtrace, muntrace.  If there
2661         ever was a glibc bug, then either this was never reported to
2662         glibc people, or it has been fixed for so long that there's
2663         no information you can find about it, anywhere.
2664
2665 2003-01-14  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2666
2667         Fix warnings:
2668         * module.c (attr_bits, bt_types, array_spec_types):
2669         Switch 'const' and 'static'.
2670         * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
2671
2672         GNU'ify source code:
2673         * trans-io.c: Numerous fixes, one fixed warning and a few
2674         TODO markers so that we don't forget about them.
2675
2676 2003-01-13  Paul Brook  <paul@nowt.org>
2677
2678         * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
2679         * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
2680         Add G95_ISYM_SCALE.
2681         * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
2682         * match.c (g95_match_stop): Fix dumb == -> != error.
2683
2684 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2685
2686         * dump-parse-tree.c (show_indent): Add line breaks.  This
2687         whole dumping process needs cleanups.
2688         * f95-lang.c (g95_mark_addressable): Fix prototype to match
2689         the langhook.  Fix 'return's accordingly.
2690         * g95-support.h: Adjust prototype.
2691         * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
2692         * lang-options.h: Add '-fsyntax-only'.
2693         * options.c (g95_init_options): Init 'no_backend'.
2694         (g95_parse_arg): Deal with '-fsyntax-only'.
2695         * parse.c (g95_parse_file): Do not generate code if 'no_backend'
2696         is set.
2697
2698 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2699         Patch from Arnaud
2700         * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
2701         arguments.  Also make sure that if a symbol is marked INTRINSIC,
2702         an intrinsic with the symbol's name actually exists.
2703         (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
2704         Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
2705         ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
2706
2707 2003-01-13  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2708
2709         * resolve.c (resolve_contained_functions): Fix condition, don't
2710         throw internal_error if a child namespace has no name.  Apparently
2711         this can be the case?
2712
2713 2003-01-11  Paul Brook  <paul@nowt.org>
2714
2715         Port changes from Andy's tree:
2716         * g95.h (g95_code): Add stop_code.
2717         * match.c (g95_match_stop): Detter syntax checking.
2718         * resolve.c (resolve_generic_f0): Return match type.
2719         (resolve_generic_f): Remove dead/duplicated code.
2720         (resolve_specific_f): Ditto.
2721         * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
2722         * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
2723         * trans-stmt.c (g95_trans_stop): Handle new STOP format.
2724
2725 2003-01-11  Paul Brook  <paul@nowt.org>
2726
2727         * trans-array.c: Various documentation/comment changes.
2728         * trans-stmt.c: Ditto.
2729
2730
2731 2003-01-10  Paul Brook  <paul@nowt.org>
2732
2733         * options.c/h: Add -fdump-parse-tree as alias of -v.
2734
2735 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2736
2737         * dump-parse-tree.c (g95_show_namespace): Fixed another
2738         typo.  Sorry, it's Friday...
2739
2740 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2741
2742         Spotted by Tobi:
2743         * trans-array.c, trans-array.h, trans.c, trans-const.c,
2744         trans-const.h, trans-decl.c, trans-expr.c, trans.h
2745         trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
2746         trans-types.c: Fix bogus copyright years, add 2003.
2747         * trans-types.h: Give copyright header.
2748
2749 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2750
2751         * dump-parse-tree.c (g95_show_namespace): Fixed typo.
2752         * expr.c, options.c, scanner.c: Add some more 'const' markers.
2753         * intrinsic.c: Some constant strings moved to read-only memory.
2754         * io.c (format_asterisk): Move to...
2755         * g95.h: ...here.
2756
2757 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2758
2759         * dump-parse-tree.c (g95_show_namespace): Dump implicit
2760         types for ranges instead of per-letter.  Indent the
2761         'CONTAINS' just like everything else.
2762         * resolve.c (resolve_contained_functions): Clarify comment.
2763         Explain non-obvious conditional expression.  Improve
2764         diagnostics if tyoe cannot be resolved.
2765         Port semi-fix from Andy's tree:
2766         (was_declared): Move up before first use.
2767         (generic_sym, specific_sym): New functions.  Code moved
2768         out if procedure_kind.
2769         (procedure_kind): Simplify using new functions.
2770         (resolve_generic_f): Make sure the functions we find in
2771         a parent namespace is generic.
2772         (resolve_specific_f): Ditto for specific functions.
2773
2774 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2775
2776         * trans-stmt.c, trans.c: Fix some code style issues. Add
2777         some more comment (but still not enough!).
2778
2779 2003-01-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2780
2781         * symbol.c (flavors, procedures, intents, acces_types,
2782         access_types, ifsrc_types): Make const.
2783         * misc.c (g95_string2code): Make 'm' param 'const'.
2784         * module.c (find_enum, write_atom, mio_name): Make
2785         'm' param 'const'.
2786         (attr_bits, bt_types, array_spec_types, array_ref_types,
2787         ref_types, expr_types): Make const.
2788         * g95.h: Adjust external decls.
2789
2790 2003-01-09  Paul Brook  <paul@nowt.org>
2791
2792         * Testsuite: Add a load of new cases.
2793
2794 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2795
2796         * Make-file.in: Add dependency on back end header files;
2797         a parallel build should work now.
2798         * f95-lang-c (lang_identifier): Remove bogus comment.
2799         (g95_be_parse_file): Fix prototype.
2800         (g95_init): Make static.
2801         (g95_finish): Make static.
2802         * error.c (g95_syntax_error): Kill. Make define in...
2803         * g95.h (g95_syntax_error): Define.
2804         (g95.options): Make 'source' member 'const'.
2805         * interface.c (g95_match_interface): Explain
2806         hard-to-read condition.
2807         (g95_match_end_interface): Ditto.
2808         * trans_const.c (g95_build_string_const): Make 's' parameter
2809         'const'.
2810         * trans_const.h: Adjust protoype accordingly.
2811         * trans-decl.c: Include tree-dump.h
2812         (g95_generate_function_code): Build fixes for recent changes
2813         in the tree-ssa branch.
2814
2815 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2816
2817         * format.c: Kill, move code from here...
2818         * io.c: ...to here.
2819         * Make-lang.in: Adjust.
2820         * MANIFEST: Ditto.
2821         * match.h: Ditto.
2822         * BUGS: Mention where to submit bugs.  Move old content...
2823         * TODO: ...to here.  New file.
2824
2825 2003-01-08  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2826         Fix most warnings, and suppress the ones we can't fix for now.
2827         * Make-lang.in: Suppress warnings about bad proto's in g95.h,
2828         these warnings just clutter the screen and there's not much
2829         we can do about them for now anyway.
2830         * check.c, iresolve.c: Mark unused function parameters.
2831         * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
2832         they should be resolved before they get here.
2833         * error.c: Remove unused FILE *status_out.
2834         * f95-lang.c (g95_init): Remove bogus cast.
2835         * Many files: Make things 'const' where required.
2836         * g95.h: Fix prototypes for all modified functions above.
2837         (g95_options): Remove 'object' member.
2838
2839 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2840
2841         * Make-file.in: Cleanup bogus targets.  Add more comment.
2842         * lang-options.h: New option '-w'.
2843         * g95.h: add no_options field to struct g95_options.
2844         * options.c (g95_init_options): Default no_warnings to off.
2845         (g95_parse_arg): Recognise the '-w' switch and its alias,
2846         '-fno-warnings'.
2847         * error.c (g95_warning, g95_warning_now): Don't emit warning if
2848         no_warning option is set.
2849         * iresolve.c (g95_resolve_shape): Fix warning.
2850
2851 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2852
2853         * primary.c (g95_next_string_char): Rename next_string_char, and
2854         make static.  Adjust callers accordingly.
2855         * resolve.c (resolve_generic_f0): Return try, not match.  Adjust
2856         callers accordingly.
2857         * g95.h: Split out all g95_match* functions to...
2858         * match.h: ...here. New file.
2859         * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
2860         matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
2861
2862 2003-01-07  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2863
2864         * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
2865         g95_merge_new_implicit): New functions.
2866         (g95_match_implicit_none, g95_match_implicit): Move from here...
2867         * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
2868         Modify to use the new functions in symbol.c.
2869         * g95.h: Add and move prototypes.
2870
2871 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2872
2873         * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
2874         node compare function.
2875         (g95_insert_bbt): Likewise.
2876         (g95_insert_bbt_with_overlap): Likewise.
2877         (g95_delete_bbt): Likewise.
2878         (delete_treap): Likewise. Also fix a potential bug when calling it.
2879         * module.c (compare_pointers): Change proto to compare_fn.
2880         (compare_integers): Likewise.
2881         (compare_true_names): Likewise.
2882         (find_true_name): Adjust call to compare_true_names to match proto.
2883         (require_atom, write_atom, mio_name): Fix 'const' warnings.
2884         (init_pi_tree): Make compare a compare_fn instead of (int *).
2885         * resolve.c (compare_cases): Change proto to compare_fn.
2886         * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
2887         it static, and rename to compare_symtree.
2888         (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
2889         function.
2890         * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
2891         of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
2892
2893 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2894         * Make-lang.in: Fix spaces/tabs issues from previous patch.
2895         * patch.options: Blow away Paul's checkin mistake :-)
2896         * io.c (terminate_io): Fix memory leak (Arnaud).
2897
2898 2003-01-06  Steven Bosscher  <s.bosscher@student.tudelft.nl>
2899
2900         * Make-lang.in: Teach about building DVI, info manual.
2901         * g95.texi: New file.
2902
2903 2003-01-02  Paul Brook  <paul@nowt.org>
2904
2905         * trans-array.c (g95_reverse_ss): Make static and don't use.
2906         (g95_conv_ss_descriptor): Don't use g95_loopinfo
2907         (g95_conv_array_parameters): Modify for pointer assignments.
2908         (g95_walk_subexpr): New function.
2909         (g95_walk_expr*): Use it.
2910         * trans-array.h (g95_reverse_ss): Remove prototype.
2911         * trans-expr.c (g95_trans_pointer_assign): Implement.
2912         (Many): Set se.want_pointer before calling g95_conv_array_parameter.
2913         * trans-intrinsic.c: Sync with scalarizer changes.
2914         * trans-io.c: Ditto.
2915
2916 2002-12-29  Paul Brook  <paul@nowt.org>
2917
2918         * trans-array.c: Document calling convention for arrays.
2919
2920 2002-12-19  Paul Brook  <paul@nowt.org>
2921
2922         * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
2923         assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
2924         optional parameters for some intrinsics.
2925         (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
2926         * trans-expr.c (g95_conv_function_call): Pass NULL for absent
2927         optional parameters.
2928         * trans.h (g95_se): Add ignore_optional flag.
2929
2930 2002-12-15  Paul Brook  <paul@nowt.org>
2931
2932         * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
2933         * trans-decl.c (g95_generate_function_code): Use TDI_original.
2934
2935 2002-12-14  Paul Brook  <paul@nowt.org>
2936
2937         * trans-stmt.c (g95_trans_call): Use resolved symbol name.
2938
2939 2002-12-12  Paul Brook  <paul@nowt.org>
2940
2941         * trans-array.c (g95_trans_array_constructor_subarray): Fully
2942         initialize the scalarizer.
2943         (various): Update to new format of g95_expr->value.constructor.
2944
2945 2002-12-08  Paul Brook  <paul@nowt.org>
2946
2947         * trans-array.c (g95_put_offset_into_var): New function.
2948         (g95_trans_array_constructor_subarray): New function.
2949         (g95_trans_array_constructor_value): Use it.
2950         (g95_array_cons_size): Don't abort() on array components.
2951
2952 2002-12-08  Paul Brook  <paul@nowt.org>
2953
2954         * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
2955         * support.c: Update #includes.
2956         (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
2957         * trans-array.c: Update #includes.
2958         * trans.c: Ditto.
2959         * trans-const.c: Ditto.
2960         * trans-io.c: Ditto.
2961         * trans-types.c: Ditto.
2962         (g95_init_types): Set size_type_node.
2963         * trans-decl.c: Update #includes.
2964         (gfor_fndecl_adjust{l,r}): Declare and initialize.
2965         * trans-stmt.c: Update #includes.
2966         (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
2967         (g95_trans_select): Fix check for unbounded ranges.
2968         * trans-expr.c: Update #includes.
2969         (g95_conv_string_tmp): New function.
2970         (g95_conv_concat_op): Use it.
2971         * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
2972         * Trans-intrisic.c: Update #includes.
2973         (g95_conv_intrinsic_strcmp): New function.
2974         (g95_conv_intrinsic_adjust): Ditto.
2975         (g95_conv_intrinsic_function: Use them.
2976
2977 2002-11-30  Paul Brook  <paul@nowt.org>
2978
2979         * trans-array.c (g95_walk_function_expr): Handle non-array return by
2980         reference.
2981         * trans-dec.c (g95_build_function_decl): Handle character return
2982         parammeters.
2983         (g95_get_fake_result_decl): Ditto.
2984         (g95_trans_deferred_vars): Ditto.
2985         * trans-expr.c (g95_conv_function_call): Ditto.
2986         (g95_trans_arrayfunc_assign) Limit to array valued functions.
2987         * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
2988         (g95_conv_intrinsic_function): Use it.
2989         * trans-types.c (g95_sym_type): Handle functions returning strings.
2990         (g95_return_by_reference): Ditto.
2991         (g95_get_function_type): Ditto.
2992
2993 2002-11-18  Paul Brook  <paul@nowt.org>
2994
2995         * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
2996         requires a temporary.
2997         (g95_trans_select): Handle computed gotos.
2998         * trans-types.c (g95_build_array_type): Warn about non-functional
2999         assumed shape arrays.
3000         * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
3001         blocks.
3002         * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
3003         (g95_conv_intrinsic_int): New function.
3004         (g95_conv_intrinsic_mod): New function.
3005         (g95_conv_intrinsic_ichar): New function.
3006         (g95_conv_intrinsic_function): Use them.
3007         (g95_conv_intrinsic_dim): Use g95_evaluate_now.
3008
3009 2002-11-17  Toon Moene  <toon@moene.indiv.nluug.nl>
3010
3011         * trans-types.c (g95_build_array_type): Assumed
3012         sized arrays can have rank > 1.
3013         * trans.c (g95_trans_code): Remove erroneous
3014         warning about CONTINUE.
3015         * trans-expr.c (g95_conv_variable): Remove
3016         erroneous assert.
3017
3018 2002-11-15  Paul Brook  <paul@nowt.org>
3019
3020         * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
3021
3022 2002-10-31  Paul Brook  <paul@nowt.org>
3023
3024         * f95-tree.c: Remove tree copying stuff that's now in gimple.c
3025         * trans-expr.c (g95_conv_component_ref): Handle character string
3026         components.
3027         (g95_conv_string_parameter): Ditto.
3028         * trans-types.c (g95_get_derived_type): Add length decl to caracter
3029         string components.
3030
3031 2002-10-10  Paul Brook  <paul@nowt.org>
3032
3033         * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
3034         * trans-expr.c (g95_conv_function_call): Remove unreliable return value
3035         check.
3036         * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
3037         (g95_conv_intrinsic_function): Handle size and shape intrinsics.
3038         (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
3039         * trans-types.c (pvoid_type_node): Declare and initialize.
3040         * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
3041         (g95_array_allocate): Fix when base==data.
3042         (g95_conv_array_parameter): Correctly handle reduced rank sections.
3043         * trans-io.c (g95_trans_write): Correctly handle string modifiers.
3044
3045 2002-10-09  Paul Brook  <paul@nowt.org>
3046
3047         * (g95_conv_expr_reference): Handle character strings correctly.
3048
3049 2002-10-07  Paul Brook  <paul@nowt.org>
3050
3051         (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
3052         langhook.
3053         * trans-array.c (g95_build_array_initializer): Remove.
3054         (g95_conv_array_initializer): New Function.
3055         (g95_trans_auto_arry_allocation): Cleanup.
3056         (g95_trans_init_character_array): Remove.
3057         * g95spec.c: Link in libgforbegin.
3058         * trans.c (g95_generate_code): Rename main function to MAIN__.
3059         (g95_create_var): New function.
3060         (g95_create_var_np): New function.
3061         (g95_evaluate_now): New function.
3062         (g95_start_block): New function.
3063         (g95_finish_block): New function.
3064         (g95_add_expr_to_block): New function.
3065         (g95_add_block_to_block): New function.
3066         * trans-expr.c (g95_conv_componen_ref): New function.
3067         * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
3068         (F95_OBJS): Add dependency.o.
3069         * f95-lang.c (g95_is_simple_stmt): Remove.
3070         * f95-tree.c (mark_not_simple): New function.
3071         (unshare_all_trees): New function.
3072         (create_tmp_var, create_tmp_alias_var): Remove.
3073         * support.c (declare_tmp_vars, tree_last_decl): Remove.
3074         * trans*: Convert to new IR using GENERIC trees.  Don't bother about
3075         SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
3076
3077 2002-10-01  Paul Brook  <paul@nowt.org>
3078
3079         * trans-array.c: Add support for descriptorless arrays.
3080         (g95_conv_array_data): New function.
3081         (g95_conv_array_base): New function.
3082         * trans-array.h: Declare these here.
3083         * trans-decl.c(g95_create_mopdule_variable): Perform variable
3084         initialization and creation here.
3085         (g95_create_module_vars): Instead of here.
3086         * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
3087         * trans-intrinsic.c: Ditto.
3088         * trans-types.c (g95_is_nodesc_array): New function.
3089         (g95_get_nodesc_array_type): New function.
3090         (g95_sym_type, g95_get_derived_type): Use them.
3091         * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
3092
3093 2002-09-28  Paul Brook  <paul@nowt.org>
3094
3095         * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
3096         * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
3097         parameters.
3098
3099 2002-09-24  Paul Brook  <paul@nowt.org>
3100
3101         * f95-lang.c (listify): Remove declaration.
3102         (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
3103         (listify)
3104         * f95-tree.c (get_name): New function.
3105         * trans.c (module_namespace): Remove.
3106         * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
3107         * trans-types.c: Ditto.
3108
3109 2002-09-19  Paul Brook  <paul@nowt.org>
3110
3111         * trans-array.c (g95_get_array_cons_size): New Function.
3112         (g95_con_ss_startstride): Handle Array constructors.
3113         (g95_conv_loop_setup): Ditto.
3114         (g95_conv_array_parameter): Ditto.
3115         * tras-decl.c (g95_finish_var_decl): Make initializes variables
3116         static.
3117
3118 2002-09-19  Paul Brook  <paul@nowt.org>
3119
3120         * trans.c (g95_simple_fold_tmp): Detect variables inside
3121         NON_LVALUE_EXPR.
3122         * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
3123
3124 2002-09-18  Steven Bosscher <s.bosscher@student.tudelft.nl>
3125
3126         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
3127
3128 2002-09-14  Paul Brook  <paul@nowt.org>
3129
3130         * trans.c (g95_create_module_variable): Move to trans-decl.c.
3131         * trans-const.c (g95_conv_string_init): New Function.
3132         * trans-const.h: Declare it.
3133         * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
3134         variables. Don't bail on intrinsic symbols.
3135         (get_extern_function_decl): Handle specific intrinsic functions.
3136         * trans-types.c (g95_sym_type): Dummy functions don't return
3137         reference types.
3138         * trans-array.c (g95_build_array_initializer): New Function.
3139         (g95_trans_auto_array_allocation): Build initializer for static decls.
3140         Don't use mpz_addmul, it's GMP4 only.
3141
3142 2002-09-12  Paul Brook  <paul@nowt.org>
3143
3144         * trans-decl.c (g95_generate_code): Fix thinko with return variable.
3145         (g95_get_extern_function_decl, g95_build_function_decl): Mangle
3146         assembler names for module procedures.
3147
3148 2002-09-11  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
3149
3150         * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
3151         dependency/
3152
3153 2002-09-10  Paul Brook  <paul@nowt.org>
3154
3155         * trans-array.c: Change format of G95_SS_TEMP strictures.
3156         (g95_check_fncall_dependancy): New function.
3157         (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
3158         offsets.
3159         * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
3160         result variables.
3161         (g95_build_function_decl): Don't assume result arrays are packed.
3162         (g95_trans-deferred-vars): Handle array result variables.
3163         (g95_generate_fuction_code): Clear saved_function_decls.
3164         * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
3165         reference.
3166         (g95_trans_arrayfunc_assign): New function.
3167         (g95_trans_assignment): Use it.
3168         * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
3169         (g95_se): Add direct_byref.
3170         * trans-types.c: Use sym->result rather than sym where appropriate.
3171         * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
3172         Update other functions to use this.
3173         (g95_is_intrinsic_libcall): New function.
3174         (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
3175         (g95_walk_intrinsic_function): Ditto.
3176
3177 2002-09-08  Paul Brook  <paul@nowt.org>
3178
3179         * trans-types.c: Change rank field to dtype field in array descriptor.
3180         * trans-array.c: Implement filling of dtype array descriptor field.
3181         * trans-intrinsic.c: Fix broken LEN intrinsic.
3182
3183 2002-09-07  Paul Brook  <paul@nowt.org>
3184
3185         * trans-intrinsic.c: Remove outdated todo intrinsic list.
3186         (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
3187         (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
3188
3189 2002-09-06  Paul Brook  <paul@nowt.org>
3190
3191         * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
3192         (gt-f95-trans-types.h): Add dependancy information.
3193         * config-lang.in (gtfiles): Add trans-types.c
3194         * f95-lang.c (g95_be_parse_file): Pass error and warning counts
3195         back to top-level code.
3196         * trans-array.c, trans-types.c: Change format of array descriptor.
3197         (g95_conv_descriptor_dimension): New function.
3198         * trans-types.h (g95_conv_descriptor_rank): define.
3199         * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
3200         intrinsics.
3201
3202 2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
3203
3204         * trans-array.c, trans-types.c: Add rank information to descriptor.
3205
3206 2002-09-06  Tobias Schlueter  <Tobias.Schlueter@physik.uni-muenchen.de>
3207
3208         * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
3209
3210 2002-09-04  Paul Brook  <paul@nowt.org>
3211
3212         * f95-lang.c (g95_create_decls): New function.
3213         (g95_init):  Move initialization of external decls to above, and call
3214         from g95_be_parse_file.
3215         * trans.c (g95_finish_stmt): Don't amputate the decl chain.
3216         * trans-types.c (g95_init_types): Always name integer and char types.
3217         (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
3218
3219 2002-09-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
3220
3221         * Make-lang.in: Add options.c to F95_PARSER_OBJS
3222
3223 2002-09-02  Paul Brook  <paul@nowt.org>
3224
3225         * g95_generate_code: Clear the attr for __fortran_main.
3226         * trans-types.c (g95_finish_type): New function.
3227         * g95_init_io_state_type: Use g95_finish_type.
3228         * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
3229
3230 2002-09-01  Paul Brook  <paul@nowt.org>
3231
3232         * README.backend: Warn about the dangers of extra config.h files.
3233         Remove obsolete libgfor stuff.
3234         * config-lang.in: Add target-libgfor dependancy.
3235         * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
3236
3237 2002-09-01  Toon Moene  <toon@moene.indiv.nluug.nl>
3238
3239         * g95_conv_mpz_to_tree: Free storage pointed to by q,
3240         not by buff.
3241
3242 2002-08-30  Paul Brook  <paul@nowt.org>
3243
3244         * trans-intrinsic.c (g95_conv_intrinsic_function,
3245         g95_walk_intrinsic_function): Added ANY and ALL.
3246         (g95_conv_intrinsic_anyall): New function.
3247         * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
3248         mangled name
3249