OSDN Git Service

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