OSDN Git Service

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