OSDN Git Service

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