OSDN Git Service

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