OSDN Git Service

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