OSDN Git Service

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