OSDN Git Service

* trans-decl.c (gfc_build_builtin_function_decls): Give the internal
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2005-07-31  Steven Bosscher  <stevenb@suse.de>
2
3         * trans-decl.c (gfc_build_builtin_function_decls): Give the internal
4         malloc functions the 'malloc' attribute.  Give runtime_error the
5         'noreturn' attribute.
6
7 2005-07-31  Steven Bosscher  <stevenb@suse.de>
8
9         * trans-stmt.c (gfc_trans_goto): Jump to the known label instead
10         of the assigned goto variable.
11
12 2005-07-29  Steven Bosscher  <stevenb@suse.de>
13
14         * trans-types.h (gfc_array_range_type): Add missing GTY decl for this.
15
16 2005-07-28  Andrew Pinski  <pinskia@physics.uc.edu>
17
18         * fortran/f95-lang.c (language_function): Remove
19         named_labels, shadowed_labels, returns_value, returns_abnormally,
20         warn_about_return_type, and extern_inline fields.
21         (named_labels): Remove variable.
22         (gfc_init_decl_processing): Remove setting of named_labels.
23
24 2005-07-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
25
26         PR fortran/22503
27         * resolve.c (resolve_operator): Improve diagnostic for comparison
28         of logicals with invalid operator.
29
30 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
31
32         PR fortran/20063
33         * data.c (gfc_assign_data_value_range): Call
34         create_character_initializer if last_ts is a character type.
35
36 2005-07-22  Manfred Hollstein  <mh@suse.com>
37
38         * match.c (gfc_match_symbol): Fix uninitialised warnings.
39         * matchexp.c (gfc_match_expr): Likewise.
40
41 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
42
43         Make CONSTRUCTOR use VEC to store initializers.
44         * trans-array.c (gfc_build_null_descriptor,
45         gfc_trans_array_constructor_value, gfc_conv_array_initializer):
46         Update to cope with VEC in CONSTRUCTOR_ELTS.
47         * trans-common.c (create_common): Likewise.
48         * trans-expr.c (gfc_conv_structure): Likewise.
49         * trans-stmt.c (gfc_trans_character_select): Use
50         build_constructor_from_list instead of build_constructor.
51
52 2005-07-19 Paul Thomas  <pault@gcc.gnu.org>
53
54         PR fortran/16940
55         * resolve.c (resolve_symbol): A symbol with FL_UNKNOWN
56         is matched against interfaces in parent namespaces. If there
57         the symtree is set to point to the interface.
58
59 2005-07-16  David Edelsohn  <edelsohn@gnu.org>
60
61         PR fortran/21730
62         * decl.c (do_parm): Adjust character initializer to character length
63         of symbol before assigning.
64
65 2005-07-14  Steve Ellcey  <sje@cup.hp.com>
66
67         * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5.
68
69 2005-07-14  Jakub Jelinek  <jakub@redhat.com>
70
71         * gfortran.h (MAX_ERROR_MESSAGE): Remove.
72         (gfc_error_buf): Add allocated and index fields.  Change message
73         field from array to a pointer.
74         * error.c (use_warning_buffer, error_ptr, warning_ptr): Remove.
75         (cur_error_buffer): New variable.
76         (error_char): Use cur_error_buffer->{message,index} instead of
77         {warning,error}_{buffer.message,ptr}.  Reallocate message buffer
78         if too small.
79         (gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup
80         cur_error_buffer and its index rather than {warning,error}_ptr
81         and use_warning_buffer.
82         (gfc_warning_check, gfc_error_check): Don't print anything if
83         message is NULL.
84         (gfc_push_error): Allocate saved message with xstrdup.
85         (gfc_pop_error): Free saved message with gfc_free.
86         (gfc_free_error): New function.
87         * primary.c (match_complex_constant): Call gfc_free_error if
88         gfc_pop_error will not be called.
89         * match.c (gfc_match_st_function): Likewise.
90
91         PR fortran/22417
92         * scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
93         file.  Fix file left but not entered warning.
94
95 2005-07-14  Feng Wang  <fengwang@nudt.edu.cn>
96         Steven G. Kargl  <kargls@comcast.net>
97
98         * array.c (resolve_character_array_constructor): Allocate gfc_charlen
99         for the array and attach to namespace list for automatic deallocation.
100
101 2005-07-13  Andreas Schwab  <schwab@suse.de>
102
103         * Make-lang.in (fortran/dependency.o): Depend on
104         $(GFORTRAN_TRANS_DEPS).
105
106 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
107
108         * trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before
109         the outermost loop.
110         (gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp,
111         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2):
112         Don't clear maskindexes here.
113
114 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
115         
116         * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
117         is removed.
118
119 2005-07-08  Jakub Jelinek  <jakub@redhat.com>
120
121         * primary.c (gfc_match_rvalue): Handle ENTRY the same way
122         as FUNCTION.
123
124 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
125
126         * scanner.c (load_line): Add pbuflen argument, don't make
127         buflen static.  If maxlen == 0 or preprocessor_flag,
128         don't truncate at buflen, but at maxlen.  In xrealloc add
129         1 byte at the end for the terminating '\0'.  Don't fill
130         with spaces up to buflen, but gfc_option.fixed_line_length.
131         (load_file): Adjust load_line caller.  Add line_len variable.
132
133         * scanner.c (preprocessor_line): Only set current_file->line when errors
134         have not been encountered.  Warn and don't crash if a file leave
135         preprocessor line has no corresponding entering line.  Formatting.
136
137 2005-07-07  Steven Bosscher  <stevenb@suse.de>
138
139         * primary.c (match_hollerith_constant): Use int, not unsigned int,
140         for the hollerith length.  Fix indentation.
141
142 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
143
144         PR fortran/16531
145         PR fortran/15966
146         PR fortran/18781
147         * arith.c (gfc_hollerith2int, gfc_hollerith2real,
148         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
149         New functions.
150         (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
151         * arith.h (gfc_hollerith2int, gfc_hollerith2real,
152         gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
153         Add prototypes.
154         * expr.c (free_expr0): Free memery allocated for Hollerith constant.
155         (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
156         (gfc_check_assign): Enable conversion from Hollerith to other.
157         * gfortran.h (bt): Add BT_HOLLERITH.
158         (gfc_expr): Add from_H flag.
159         * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
160         (add_conversions): Add conversions from Hollerith constant to other.
161         (do_simplify): Don't simplify if  Hollerith constant arguments exist.
162         * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
163         * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
164         (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
165         * primary.c (match_hollerith_constant): New function.
166         (gfc_match_literal_constant): Add match Hollerith before Integer.
167         * simplify.c (gfc_convert_constant): Add conversion from Hollerith
168         to other.
169         * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
170         convert Hollerith constant to tree.
171         * trans-io.c (gfc_convert_array_to_string): Get array's address and
172         length to set string expr.
173         (set_string): Deal with array assigned Hollerith constant and character
174         array.
175         * gfortran.texi: Document Hollerith constants as extention support.
176
177 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
178
179         PR fortran/22327
180         * trans-array.c (gfc_trans_array_constructor_value): Fix index of data.
181
182 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
183
184         * decl.c (gfc_match_entry): Allow ENTRY without parentheses
185         even in FUNCTIONs.
186
187 2005-07-03  Kazu Hirata  <kazu@codesourcery.com>
188
189         * gfortran.texi, intrinsic.texi: Fix typos.
190         * symbol.c: Fix a comment typo.
191
192 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
193
194         * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
195         * gfortran.h (ATTRIBUTE_GCC_GFC): New.
196         (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
197         gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
198         ATTRIBUTE_GCC_GFC.
199
200 2005-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
201
202         PR fortran/20842
203         * io.c (match_dt_element): Do not allow END tag in PRINT or
204         WRITE statement.
205
206 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
207
208         * lang.opt: Remove "." from end of help texts.
209
210 2005-07-01  Jerry DeLisle  <jvdelisle@verizon.net>
211
212         * gfortran.texi: Fix typos and grammar.
213         * invoke.texi: Fix typos and grammar.
214         * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and
215         exit. Fixed alignment of text for dtime syntax. Fixed a few line
216         lengths.
217
218 2005-06-25  Jakub Jelinek  <jakub@redhat.com>
219
220         * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical
221         type than boolean_type_node.
222
223 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
224
225         * all files: Update FSF address in copyright headers.
226
227 2005-06-24  Jerry DeLisle <jvdelisle@verizon.net>
228
229         PR fortran/21915
230         * gfortran.h: Add symbols for new intrinsic functions.
231         * intrinsic.c: Add new functions acosh, asinh, and atanh.
232         * intrinsic.h: Add prototypes for the new functions.
233         * iresolve.c (gfc_resolve_acosh): New function.
234         (gfc_resolve_asinh): New function.
235         (gfc_resolve_atanh): New function.
236         * mathbuiltins.def: Add defines.
237         * simplify.c (gfc_simplify_acosh): New function.
238         (gfc_simplify_asinh): New function.
239         (gfc_simplify_atanh): New function.
240
241 2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>
242
243         * simplify.c (gfc_simplify_modulo): Don't clear before get result.
244
245 2005-06-22  Paul Brook  <paul@codesourcery.com>
246
247         PR fortran/21034
248         * symbol.c (gfc_is_var_automatic): New function.
249         (save_symbol): Use it.
250
251 2005-06-21  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
252             Paul Thomas  <pault@gcc.gnu.org>
253
254         PR fortran/22010
255         Port from g95.
256         * module.c (mio_namelist): New function. Correct to set
257         namelist_tail and to give error on renaming namelist by use
258         association.
259         (mio_symbol): Call mio_namelist.
260
261 2005-06-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
262
263         * gfortran.h: Add flag_backslash compile-time option.
264         * lang.opt: Add support for -fbackslash option.
265         * options.c: Likewise.
266         * primary.c: Implement behavior for -fno-backslash.
267         * invoke.texi: Add doc for -fbackslash option.
268         * gfortran.texi: Remove mention of -fno-backslash as a
269         possible extension.
270
271 2005-06-20  Steven G. Kargl  <kargls@comcast.net>
272         (port from g95)
273
274         PR fortran/21257
275         * match.c (gfc_match_label): Detect duplicate labels.
276
277
278 2005-06-20  Erik Edelmann  <erik.edelmann@iki.fi>
279
280         * intrinsic.c (check_intrinsic_standard): Fix spelling error
281         in a warning message.
282
283 2005-06-18  Erik Edelman  <eedelman@acclab.helsinki.fi>
284             Steven G. Kargl <kargls@comast.net>
285
286         PR fortran/19926
287         * primary.c (gfc_match_rvalue):  expr_type can be EXPR_CONSTANT
288         for an array; check that sym->as is NULL.
289
290
291 2005-06-18  Steven G. Kargl  <kargls@comcast.net>
292
293         * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic
294         functions whose simplification routine return FAILURE.
295
296 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
297
298         * Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
299         (rule for installing f95.1 manpage): Does depend on installdirs.
300
301 2005-06-13  Jakub Jelinek  <jakub@redhat.com>
302
303         PR fortran/22038
304         * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
305         in the innermost loop.
306
307         * trans-expr.c (gfc_conv_function_call): Return int instead of
308         void.  Use a local variable for has_alternate_specifier and
309         return it.  Avoid modification of function type's return value
310         in place, since it may be shared.
311         * trans.h (has_alternate_specifier): Remove.
312         (gfc_conv_function_call): Change return type.
313         * trans-stmt.c (has_alternate_specifier): Remove.
314         (gfc_trans_call): Add a local has_alternate_specifier variable,
315         set it from gfc_conv_function_call return value.
316
317 2005-06-12  Richard Henderson  <rth@redhat.com>
318
319         * trans-array.c (gfc_conv_descriptor_data_get): Rename from
320         gfc_conv_descriptor_data.  Cast the result to the DATAPTR type.
321         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
322         (gfc_trans_allocate_array_storage): Use them.
323         (gfc_array_allocate, gfc_array_deallocate): Likewise.
324         (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
325         (gfc_trans_deferred_array): Likewise.
326         * trans-expr.c (gfc_conv_function_call): Likewise.
327         (gfc_trans_subcomponent_assign): Likewise.
328         (gfc_trans_pointer_assignment): Likewise.
329         * trans-intrinsic.c (gfc_conv_allocated): Likewise.
330         * trans-types.c (gfc_array_descriptor_base): New.
331         (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
332         (gfc_get_array_descriptor_base): Break out from ...
333         (gfc_get_array_type_bounds): ... here.  Create type variants.
334         * trans-array.h (gfc_conv_descriptor_data_get): Declare.
335         (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.
336
337 2005-06-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
338
339         * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
340         calling conventions.  Look at sym instead of sym->result.
341         * trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
342         Remove condition which is always false with workaround removed.
343         (gfc_return_by_reference): Always look at sym, never at sym->result.
344
345 2005-06-11  Steven G. Kargl  <kargls@comcast.net>
346         
347         PR fortran/17792
348         PR fortran/21375
349         * trans-array.c (gfc_array_deallocate): pstat is new argument
350         (gfc_array_allocate): update gfc_array_deallocate() call.
351         (gfc_trans_deferred_array): ditto.
352         * trans-array.h: update gfc_array_deallocate() prototype.
353         * trans-decl.c (gfc_build_builtin_function_decls): update declaration
354         * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.
355
356 2005-06-07  Jerry DeLisle <jvdelisle@verizon.net>
357
358         * intrinsic.texi: Add documentation for dcmplx, digits,
359         dim, idim, ddim, dot_product, dprod, dreal, and dtime.
360
361 2005-06-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
362
363         PR fortran/21912
364         * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
365         Generate correct exit condition in case of negative steps in
366         implied-do loops.
367
368         * invoke.texi: Fix description of flags required for compatibility
369         with g77.
370
371 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
372         Erik Schnetter  <schnetter@aei.mpg.de>
373
374         PR fortran/19195
375         * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
376         remove FIXME comment. 
377
378 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
379
380         * match.c (match_forall_iterator): Don't immediately give error if '='
381         is not followed by an expression.
382
383 2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
384         Erik Edelmann  <erik.edelmann@iki.fi>
385
386         * array.c (gfc_match_array_constructor): Disallow empty array
387         constructor.
388
389 2005-06-03  Jerry DeLisle <jvdelisle@verizon.net>
390
391         * fortran/intrinsic.texi: Add documentation for
392         command_argument_count, conjg, dconjg, count,
393         cpu_time, cshift, date_and_time, dble, dfloat.
394
395 2005-06-01  Roger Sayle  <roger@eyesopen.com>
396
397         * intrinsic.c (add_conv): No longer take a "simplify" argument as
398         its always gfc_convert_constant, instead take a "standard" argument.
399         (add_conversions): Change all existing calls of add_conv to pass
400         GFC_STD_F77 as appropriate.  Additionally, if we're allowing GNU
401         extensions support integer-logical and logical-integer conversions.
402         (gfc_convert_type_warn): Warn about use the use of these conversions
403         as a extension when appropriate, i.e. with -pedantic.
404         * simplify.c (gfc_convert_constant): Add support for integer to
405         logical and logical to integer conversions, using gfc_int2log and
406         gfc_log2int.
407         * arith.c (gfc_log2int, gfc_int2log): New functions.
408         * arith.h (gfc_log2int, gfc_int2log): Prototype here.
409         * gfortran.texi: Document this new GNU extension.
410
411 2005-06-01  Paul Thomas  <pault@gcc.gnu.org>
412
413         * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
414         * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
415         Correct comments and replace convert of integer_one_node with
416         build_int_cst.
417
418 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
419
420         PR fortran/21729
421         * resolve.c (resolve_contained_fntype): Use sym->attr.untyped
422         to avoid giving error multiple times.
423         (resolve_entries): Don't error about BT_UNKNOWN here.
424         (resolve_unknown_f): Capitalize IMPLICIT for consistency.
425         (resolve_fntype): New function.
426         (gfc_resolve): Call resolve_fntype.
427
428 2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>
429
430         PR fortran/20883
431         * fortran/io.c (resolve_tag): Fix error message.
432
433 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
434
435         * fortran/trans-decl.c: Don't include errors.h.
436         * fortran/Make-lang.in: Updates dependencies.
437
438 2005-05-31  Paul Thomas  <pault@gcc.gnu.org>
439
440         PR fortran/18109
441         PR fortran/18283
442         PR fortran/19107
443         * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
444         string length from the expression typespec character length value
445         and set temp_ss->stringlength and backend_decl. Obtain the
446         tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
447         Dereference the expression to obtain the character.
448         * fortran/trans-expr.c (gfc_conv_component_ref): Remove the
449         dereference of scalar character pointer structure components.
450         * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
451         string length for the structure component from the component
452         expression.
453
454 2005-05-30  Roger Sayle  <roger@eyesopen.com>
455
456         * gfortran.h (GFC_STD_LEGACY): New "standard" macro.  Reindent.
457         * options.c (gfc_init_options): By default, allow legacy extensions
458         but warn about them.
459         (gfc_post_options): Make -pedantic warn about legacy extensions
460         even with -std=legacy.
461         (gfc_handle_option): Make -std=gnu follow the default behaviour
462         of warning about legacy extensions, but allowing them. Make the
463         new -std=legacy accept everything and warn about nothing.
464         * lang.opt (std=legacy): New F95 command line option.
465         * invoke.texi: Document both -std=f2003 and -std=legacy.
466         * gfortran.texi: Explain the two types of extensions and document
467         how they are affected by the various -std= command line options.
468
469 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
470
471         * trans-expr.c: Remove trailing ^M.
472
473         * trans-expr.c: Fix comment typos.
474
475 2005-05-29  Paul Thomas  <pault@gcc.gnu.org>
476
477         PR fortran/16939
478         PR fortran/17192
479         PR fortran/17193
480         PR fortran/17202
481         PR fortran/18689
482         PR fortran/18890
483         * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
484         length to temp_ss for character pointer array assignments.
485         * fortran/trans-expr.c (gfc_conv_variable): Correct errors in
486         dereferencing of characters and character pointers.
487         * fortran/trans-expr.c (gfc_conv_function_call): Provide string
488         length as return argument for various kinds of handling of return.
489         Return a char[]* temporary for character pointer functions and
490         dereference the temporary upon return.
491
492 2005-05-29  Janne Blomqvist  <jblomqvi@vipunen.hut.fi>
493             Steven G. Kargl  <kargls@comcast.net>
494   
495         fortran/PR20846
496         * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
497
498 2005-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
499
500         PR libfortran/20006
501         * io.c (format_item_1): Add check and extension warning for
502         $ edit descriptor.
503
504 2005-05-28  Steven G. Kargl  <kargls@comcast.net>
505
506         * arith.c (gfc_arith_init_1): Fix off by one problem;
507         (gfc_check_integer_range): Chop extra bits in subnormal numbers.
508
509 2005-05-28  Jerry DeLisle   <jvdelisle@verizon.net>
510             Steven G. Kargl  <kargls@comcast.net>
511
512         * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
513         and CMPLX
514
515 2005-05-27  Steven G. Kargl  <kargls@comcast.net>
516
517         * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
518         like types in comparsion.
519
520 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
521
522         * data.c, parse.c, trans-array.c, trans-decl.c,
523         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
524         trans.h: Fix comment typos.  Follow spelling conventions.
525
526 2005-05-22  Roger Sayle  <roger@eyesopen.com>
527
528         * gfortran.texi: Document some more GNU extensions.
529
530 2005-05-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
531
532         * error.c (gfc_warning): Fix typo in comment.
533
534 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
535
536         PR libfortran/21127
537         * fortran/iresolve.c (gfc_resolve_reshape): Add 
538         gfc_type_letter (BT_COMPLEX) for complex to
539         to resolved function name.
540
541 2005-05-18 Erik Edelmann <erik.edelmann@iki.fi>
542
543         * array.c (gfc_match_array_constructor): Support [ ... ]
544         style array constructors.
545
546 2005-05-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
547
548         * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
549         and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
550         * trans-intrinsic.c (build_fix_expr): Change 'op' argument
551         to correct enum type.
552         (gfc_conv_intrinsic_aint): Likewise.  Clarify comment in front of
553         function.  Add default case to switch, deal with FIX_TRUNC_EXPR
554         instead of FIX_FLOOR_EXPR.
555
556 2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>
557
558         PR fortran/20954
559         * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
560         build character length.
561
562 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
563
564         * trans-types.c (gfc_array_range_type): New variable.
565         (gfc_init_types): Initialize gfc_array_range_type.
566         (gfc_get_array_type_bounds): Use gfc_array_range_type.
567
568 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
569
570         PR fortran/15080
571         * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
572         arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
573         of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
574         just that as index.
575         (generate_loop_for_rhs_to_temp): Likewise.
576         (compute_overall_iter_number): Add INNER_SIZE_BODY argument.
577         It non-NULL, add it to body.
578         (allocate_temp_for_forall_nest_1): New function, split from
579         allocate_temp_for_forall_nest.
580         (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
581         propagate it down to compute_overall_iter_number.  Use
582         allocate_temp_for_forall_nest_1.
583         (gfc_trans_assign_need_temp): Remove COUNT2.  Call
584         compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
585         allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
586         and generate_loop_for_temp_to_lhs.
587         (gfc_trans_pointer_assign_need_temp): Adjust calls to
588         allocate_temp_for_forall_nest.
589         (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
590         stmtblock_t.  Call compute_overall_iter_number just once, then
591         allocate_temp_for_forall_nest_1 twice with the same size.
592         Initialize mask indexes if nested_forall_info != NULL.
593         (gfc_trans_where_2): Initialize mask indexes before calling
594         gfc_trans_nested_forall_loop.
595
596 2005-05-15  Feng Wang <fengwang@nudt.edu.cn>
597         Jerry DeLisle <jvdelisle@verizon.net>
598
599         PR fortran/17432
600         * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to 
601         resolve ICE on assign of format label.
602         * trans-io.c (set_string): add fold-convert to properly
603         handle assigned format label in write.
604  
605 2005-05-13  Paul Brook  <paul@codesourcery.com>
606
607         * trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
608
609 2005-05-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
610
611         * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
612
613 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
614
615         PR fortran/21260
616         * io.c (check_format): Look for literal characters inside
617         hollerith constant.
618
619 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
620
621         * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
622         attribute from result symbol to function symbol.
623         * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
624         instead of sym->result->attr.dimension.
625
626 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
627
628         PR fortran/20178
629         * gfortran.h (gfc_option): Add flag_f2c.
630         * invoke.texi: Document '-ff2c' command line option.  Adapt
631         documentation for '-fno-second-underscore' and '-fno-underscoring'.
632         * lang.opt (ff2c): New entry.
633         * options.c (gfc-init_options): Set default calling convention
634         to -fno-f2c.  Mark -fsecond-underscore unset.
635         (gfc_post_options): Set -fsecond-underscore if not explicitly set
636         by user.        
637         (handle_options): Set gfc_option.flag_f2c according to requested
638         calling convention.
639         * trans-decl.c (gfc_get_extern_function_decl): Use special f2c
640         intrinsics where necessary.
641         (gfc_trans_deferred_vars): Change todo error to assertion.
642         * trans-expr.c (gfc_conv_variable): Dereference access
643         to hidden result argument.
644         (gfc_conv_function_call): Add hidden result argument to argument
645         list if f2c calling conventions requested.  Slightly restructure
646         tests.  Convert result of default REAL function to requested type
647         if f2c calling conventions are used.  Dereference COMPLEX result
648         if f2c cc are used.
649         * trans-types.c (gfc_sym_type):  Return double for default REAL
650         function if f2c cc are used.
651         (gfc_return_by_reference): Slightly restructure logic.  Return
652         COMPLEX by reference depending on calling conventions.
653         (gfc_get_function_type): Correctly make hidden result argument a
654         pass-by-reference argument for COMPLEX.  Remove old code which does
655         this for derived types.
656
657 2005-05-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
658
659         * match.c (gfc_match_return): Only require space after keyword when
660         it is obligatory.  Only give stdwarn to after matching is successful.
661         * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
662
663 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
664
665         * intrinsic.texi: Fix typos.
666
667 2005-05-07  Steven G. Kargl  <kargls@comcast.net>
668
669         * intrinsic.texi:  Document ASSOCIATED and ATAN2.  Update Bessel function
670         description to include information about scalar arguments.
671
672 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
673
674         * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
675         match.h, trans-array.h: Update copyright.
676
677 2005-04-29  Tom Tromey  <tromey@redhat.com>
678
679         * f95-lang.c (poplevel): Updated for change to build_block.
680
681 2005-04-29  Jakub Jelinek  <jakub@redhat.com>
682
683         PR fortran/13082
684         PR fortran/18824
685         * trans-expr.c (gfc_conv_variable): Handle return values in functions
686         with alternate entry points.
687         * resolve.c (resolve_entries): Remove unnecessary string termination
688         after snprintf.  Set result of entry master.
689         If all entries have the same type, set entry master's type
690         to that common type, otherwise set mixed_entry_master attribute.
691         * trans-types.c (gfc_get_mixed_entry_union): New function.
692         (gfc_get_function_type): Use it for mixed_entry_master functions.
693         * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
694         * decl.c (gfc_match_entry): Set entry->result properly for
695         function ENTRY.
696         * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
697         __entry argument.
698         (build_entry_thunks): Handle return values in entry thunks.
699         Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
700         shared between multiple contexts.
701         (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
702         current_function_decl instead of sym->backend_decl.  Skip over
703         entry master's entry id argument.  For mixed_entry_master entries or
704         their results, return a COMPONENT_REF of the fake result.
705         (gfc_trans_deferred_vars): Don't warn about missing return value if
706         at least one entry point uses RESULT.
707         (gfc_generate_function_code): For entry master returning
708         CHARACTER, copy ts.cl->backend_decl to all entry result syms.
709         * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
710         values optional just because they are in entry master.
711
712 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
713
714         * gfortran.h (gfc_namespace): Add seen_implicit_none field,
715         Tobias forgot this in previous commit.
716         
717 2005-04-29  Paul Brook   <paul@codesourcery.com>
718
719         * trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
720         comment.
721
722 2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
723
724         * gfortran.h (gfc_namespace): Add seen_implicit_none field.
725         * symbol.c (gfc_set_implicit_none): Give error if there's a previous
726         IMPLICIT NONE, set seen_implicit_none.
727         (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
728
729 2005-04-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
730
731         * gfortran.h (gfc_gsymbol): Make name a const char *.
732         * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
733         gfc_get_string.
734
735 2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
736
737         PR fortran/20865
738         * resolve.c (resolve_actual_arglist): Issue an error if a statement
739         functions is used as actual argument.
740
741 2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
742
743         PR fortran/21177
744         * interface.c (compare_parameter): Ignore type for EXPR_NULL
745         only if type is BT_UNKNOWN.
746
747 2005-04-25  Paul Brook  <paul@codesourcery.com>
748         Steven G. Kargl  <kargls@comcast.net>
749
750         PR fortran/20879
751         * check.c (gfc_check_ichar_iachar): New function.
752         * instinsic.h (gfc_check_ichar_iachar): Add prototype.
753         * intrinsic.c (add_functions): Use it.
754         * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
755         character expression lengths.
756
757 2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
758
759         PR fortran/20059
760         * trans-common.c (translate_common): Cast offset and
761         common_segment->offset to type int for warning message.
762
763 2005-04-23  DJ Delorie  <dj@redhat.com>
764
765         * trans-decl.c: Adjust warning() callers.
766
767 2005-04-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
768
769         * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
770         intermediate representation.  Fix typo in comment.
771
772 2005-04-21  Steven G. Kargl  <kargls@comcast.net>
773
774         * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
775         simplify logic; Add a gcc_assert.
776
777 2005-04-19  Steven G. Kargl  <kargls@comcast.net>
778
779         * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
780
781 2005-04-19  Arnaud Desitter  <arnaud.desitter@ouce.ox.ac.uk>
782             Steven G. Kargl  <kargls@comcast.net>
783
784         * invoke.texi: Update -Waliasing description
785
786 2005-04-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
787
788         PR fortran/16861
789         * resolve.c (resolve_variable): If e->symtree is not set, this
790         ought to be a FAILURE, and not a segfault.
791
792 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
793
794         PR fortran/17472
795         PR fortran/18209
796         PR fortran/18396
797         PR fortran/19467
798         PR fortran/19657
799         * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
800         declaration for st_set_nml_var and st_set_nml_var_dim. Remove
801         declarations of old namelist functions.
802         (build_dt): Simplified call to transfer_namelist_element.
803         (nml_get_addr_expr): Generates address expression for start of 
804         object data. New function.
805         (nml_full_name): Qualified name for derived type components. New 
806         function.
807         (transfer_namelist_element): Modified for calls to new functions 
808         and improved derived type handling.
809
810 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
811
812         * scanner.c (gfc_next_char_literal): Reset truncation flag
813         for lines ending in a comment for both fixed and free form.
814         (load_line): Do not set truncated flag if only truncating
815         the EOL marker.
816
817 2005-04-15  Richard Guenther  <rguenth@gcc.gnu.org>
818
819         PR fortran/14569
820         * gfortran.h (gfc_linebuf): Add truncated field.
821         * parse.c (next_statement): Handle warning for truncated
822         lines.
823         * scanner.c (load_line): Return if line was truncated.
824         No longer warn for truncated lines.  Remove unused parameters.
825         (load_file): Store load_line return value to linebuf.
826         (gfc_error_recovery): Do not advance line at the end.
827
828 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
829
830         * gfortran.h (gfc_real_info): Add subnormal struct member.
831         * arith.c (gfc_arith_init_1): Set it.
832         (gfc_check_real_range): Use it.
833         * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
834
835 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
836
837         * simplify.c: Fix a comment typo.
838
839 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
840
841         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
842
843 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
844
845         * simplify.c (gfc_simplify_nearest): Overhaul.
846
847 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
848
849         * interface.c: Fix a comment typo.
850
851 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
852
853         * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
854         Fortran 95.
855
856 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
857
858         * simplify.c (gfc_simplify_anint): Use mpfr_round()
859         (gfc_simplify_dnint): ditto.
860         (gfc_simplify_nint): ditto.
861
862 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
863
864         PR fortran/13257
865         * io.c (check_format): Allow an optional comma
866         between descriptors.
867
868 2005-04-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
869
870         * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
871         comment according to GNU coding style.
872         (gfc_match_if): Remove gfc_ prefix in call to
873         match_arithmetic_if.
874
875 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
876
877         * match.c (gfc_match_arithmetic_if): Declare static.
878
879 2005-04-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
880
881         PR fortran/17229
882         * match.c (gfc_match_arithmetic_if): New function to match an
883         arithmetic IF statement.
884         (gfc_match_if): Use gfc_match_arithmetic_if to match an
885         arithmetic IF statement embedded in a simple IF statement.
886
887 2005-04-07  Steven G. Kargl  <kargls@comcast.net>
888
889         * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
890
891 2005-04-06  Steven G. Kargl  <kargls@comcast.net>
892
893         * invoke.texi: Remove documentation of -std=f90 
894
895 2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
896
897         * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
898         non-pointer assignment.
899
900 2005-04-05  Feng Wang  <fengwang@nudt.edu.cn>
901
902         PR fortran/15959
903         PR fortran/20713
904
905         * array.c (resolve_character_array_constructor): New function. Set
906         constant character array's character length.
907         (gfc_resolve_array_constructor): Use it.
908         * decl.c (add_init_expr_to_sym): Set symbol and initializer character
909         length.
910         (gfc_set_constant_character_len): New function. Set constant character
911         expression according the given length.
912         * match.h (gfc_set_constant_character_len): Add prototype.
913
914 2005-04-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
915
916         * intrinsic.texi: BES?? functions are not in the f95 standard.
917
918 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
919
920         * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
921
922 2005-04-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
923
924         * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
925         BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
926
927 2005-04-02  Steven G. Kargl  <kargls@comcast.net>
928
929         * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
930
931 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
932
933         * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
934         trans.h: Fix comment typos.
935
936 2005-03-29  Steven G. Kargl  <kargls@comcast.net>
937
938         * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
939         flag_default_integer, flag_default_real
940         * invoke.texi: Update documentation
941         * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8   
942         fdefault-integer-8, and fdefault-real-8 definitions.
943         * options.c (gfc_init_options): Set option defaults
944         (gfc_handle_option): Handle command line options.
945         * trans-types.c (gfc_init_kinds): Use options.
946
947 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
948
949         * f95-lang.c (builtin_function): Process the attrs parameter
950         and apply the "const" attribute to the builtin if found.
951
952 2005-03-27  Steven G. Kargl  <kargls@comcast.net>
953
954         * intrinsic.texi: Document AIMAG, AINT, ALL
955
956 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
957
958         * arith.c (check_result): Fix illogical logic.
959
960 2005-03-26  Canqun Yang  <canqun@nudt.edu.cn>
961
962         * trans-common.c (create_common): Build RECORD_NODE for common blocks
963         contain no equivalence objects.
964         (add_equivalences): New argument saw_equiv.
965         (trans_common): New local variable saw_equiv.
966         (finish_equivalences): Add a local variable dummy, Always pass true
967         for the 3rd parameter to create_common.
968
969 2005-03-25  Steven G. Kargl  <kargls@comcast.net>
970
971         * intrinsic.texi: Fix "make dvi"
972
973 2005-03-24  Steven G. Kargl  <kargls@comcast.net>
974
975         * intrinsic.texi: New file.
976         * gfortran.texi: Include it; white space change; fix typo.
977
978 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
979
980         * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
981
982 2005-03-23  Steven Bosscher  <stevenb@suse.de>
983
984         * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
985         * trans-array.c (gfc_trans_allocate_array_storage,
986         gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
987         gfc_conv_array_index_ref, gfc_trans_array_bound_check,
988         gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
989         gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
990         gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
991         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
992         gfc_conv_expr_descriptor): Likewise.
993         * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
994         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
995         * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
996         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
997         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
998         gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
999         gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
1000         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
1001         gfc_conv_intrinsic_merge, prepare_arg_info,
1002         gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
1003         * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
1004         gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
1005         generate_loop_for_rhs_to_temp, compute_inner_temp_size,
1006         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
1007         gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
1008         Likewise.
1009         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
1010         * trans.c (gfc_add_modify_expr): Likewise.
1011
1012 2005-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1013
1014         * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
1015         gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
1016         gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
1017         gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
1018         gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
1019         gfc_check_perror): new functions to check newly implemented
1020         g77 intrinsics.
1021         * gfortran.h: adding symbols for new intrinsics.
1022         * intrinsic.c (add_functions): adding new intrinsics.
1023         (add_subroutines): adding new intrinsics.
1024         * intrinsic.h: prototype for all checking and resolving
1025         functions.
1026         * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
1027         gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
1028         gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
1029         gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
1030         gfc_resolve_kill_sub, gfc_resolve_link_sub,
1031         gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
1032         gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
1033         gfc_resolve_perror): new functions to resolve intrinsics.
1034         * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
1035         for new symbols.
1036
1037 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1038
1039         * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
1040         in which the variable is declared.
1041
1042         PR fortran/18525
1043         * resolve.c (was_declared): Also check for dummy attribute.
1044
1045 2005-03-19  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1046
1047         * gfortran.h (arith): Remove ARITH_0TO0.
1048         * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
1049         (gfc_arith_power): Remove special casing of zero to integral
1050         power zero.
1051
1052 2005-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1053
1054         * Make-lang.in (fortran-warn): Remove -Wno-error.
1055         (expr.o-warn, resolve.o-warn, simplify.o-warn,
1056         trans-common.o-warn): Specify -Wno-error.
1057
1058 2005-03-17  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1059
1060         * trans-array.c (gfc_trans_static_array_pointer,
1061         get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
1062         comment and formatting typos.
1063
1064 2005-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1065
1066         * invoke.texi: Fix typos.
1067
1068 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
1069
1070         * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
1071
1072 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
1073
1074         * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
1075         to zero on label_tree.
1076
1077 2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
1078
1079         PR fortran/18827
1080         * io.c (resolve_tag): Add checking on assigned label.
1081         (match_dt_format): Does not set symbol assign attribute.
1082         * match.c (gfc_match_goto):Does not set symbol assign attribute.
1083         * resolve.c (resolve_code): Add checking on assigned label.
1084         * trans-common.c (build_field): Deals with common variable assigned
1085         a label.
1086         * trans-stmt.c (gfc_conv_label_variable): New function.
1087         (gfc_trans_label_assign): Use it.
1088         (gfc_trans_goto): Ditto.
1089         * trans-io.c (set_string): Ditto.
1090         * trans.h (gfc_conv_label_variable): Add prototype.
1091
1092 2005-03-14  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1093
1094         PR fortran/20467
1095         * symbol.c (check_conflict): A dummy argument can't be a statement
1096         function.
1097
1098 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
1099
1100         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
1101         the argument of the shift to the unsigned type.
1102
1103 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1104
1105         PR fortran/16907
1106         * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
1107
1108 2005-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1109
1110         PR fortran/20323
1111         * resolve.c (gfc_resolve): Check if character lengths are
1112         specification expressions.
1113
1114 2005-03-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1115
1116         PR fortran/20361
1117         * trans-array.c (gfc_stack_space_left): Remove unused variable.
1118         (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
1119         code.
1120         * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
1121         Remove declaration / prototype.
1122         * trans-common.c (build_equiv_decl): Give union a name.  Check if
1123         it can be put on the stack.
1124         * trans-decl.c (gfc_stack_space_left): Move function here.
1125         (gfc_build_qualified_array): Fix comment typo.
1126         * trans.h (gfc_put_var_on_stack): Add prototype.
1127
1128 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1129
1130         * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
1131         * decl.c, trans.c: Don't use C++ style comments.
1132         * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
1133         ifsrc): Give names to enums and use ENUM_BITFIELD.
1134         (gfc_access): Remove trailing comma.
1135
1136 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
1137
1138         PR 19936
1139         * primary.c (match_complex_constant): Mangled complex constant may
1140         be an implied do-loop.  Give implied do-loop matcher a chance.
1141
1142 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
1143
1144         PR fortran/19754
1145         * resolve.c (compare_shapes):  New function.
1146         (resolve_operator): Use it.
1147
1148 2005-03-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1149
1150         * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
1151         type for COMPLEX constants.
1152
1153 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1154
1155         PR fortran/19673
1156         * trans-expr.c (gfc_conv_function_call): Correctly dereference
1157         argument from a pointer function also if it has a result clause.
1158
1159 2005-03-04  Steven G. Kargl  <kargls@comcast.net>
1160
1161         * expr.c (gfc_copy_shape_excluding): Change && to ||.
1162
1163 2005-03-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1164
1165         * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
1166         clarify comment.
1167
1168 2005-02-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1169         (port from g95)
1170
1171         PR fortran/19479
1172         * simplify.c (gfc_simplify_bound): Rename to ...
1173         (simplify_bound): ... this and overhaul.
1174
1175 2005-02-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1176
1177         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
1178         (gfc_conv_intrinsic_function): update function calls
1179
1180 2005-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1181
1182         PR fortran/20058
1183         * trans-types.c (gfc_max_integer_kind): Declare
1184         (gfc_init_kinds): Initialize it.
1185         * gfortran.h (gfc_max_integer_kind): extern it.
1186         * primary.c (match_boz_constant): Use it; remove gfortran extension
1187         of kind suffixes on BOZ literal constants
1188
1189
1190 2005-02-27  Steven G. Kargl  <kargls@comcast.net>
1191
1192         * arith.c (gfc_check_real_range):  Remove multiple returns
1193         (check_result): New function.
1194         (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
1195         gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
1196
1197
1198 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1199
1200         * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
1201
1202
1203 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-meunchen.de>
1204
1205         Unrevert previously reverted patch.  Adding this fix:
1206         * module.c (find_true_name): Deal with NULL module.
1207
1208 2005-02-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1209
1210         Revert yesterday's patch:
1211         2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1212
1213                 * gfortran.h (gfc_component, gfc_actual_arglist, ...
1214                 ... argument.  Copy string instead of pointing to it.
1215
1216 2005-02-23  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1217
1218         * gfortran.h (gfc_get_namespace): Add second argument to prototype.
1219         * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
1220         gfc_get_namespace.
1221         * module.c (mio_namespace_ref, load_needed): Likewise.
1222         * parse.c (parse_interface, parse_contained): Likewise.  Here the
1223         correct second argument matters.
1224         * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
1225         parent's implicit types if this is set.
1226         (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
1227         * trans-common.c (build_common_decl): Likewise.
1228
1229         * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
1230         formatting.
1231         * symbol.c (gfc_set_default_type): Issue error only once, by setting
1232         and checking 'untyped' attribute.
1233
1234         * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
1235         fields into new struct 'op' inside the 'value' union.
1236         * arith.c (eval_intrinsic): Adapt all users.
1237         * dependency.c (gfc_check_dependency): Likewise.
1238         * dump-parse-tree.c (gfc_show_expr): Likewise.
1239         * expr.c (gfc_get_expr): Don't clear removed fields.
1240         (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
1241         gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
1242         check_intrinsic_op): Adapt to new field names.
1243         * interface.c (gfc_extend_expr): Likewise.  Also explicitly
1244         nullify 'esym' and 'isym' fields of new function call.
1245         * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
1246         Adapt to renamed structure fields.
1247         * matchexp.c (build_node, match_level_1, match_expr): Likewise.
1248         * module.c (mio_expr): Likewise.
1249         * resolve.c (resolve_operator): Likewise.
1250         (gfc_find_forall_index): Likewise.  Only look through operands
1251         if dealing with EXPR_OP
1252         * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
1253         * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
1254         gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
1255
1256         [ Reverted ]
1257         * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
1258         'name' a 'const char *'.
1259         (gfc_symbol): Likewise, also for 'module'.
1260         (gfc_symtree): Make 'name' a 'const char *'.
1261         (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
1262         (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
1263         'char *' argument.
1264         (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
1265         initialize 'SYM->module'.
1266         * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
1267         pointer instead of empty string.
1268         * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
1269         * interface.c (gfc_compare_types): Adapt check to account for possible
1270         NULL pointer.
1271         (compare_actual_formal): Check for NULL pointer instead of empty
1272         string.
1273         * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
1274         Add 'const' qualifier.
1275         (conv_name): Return a heap allocated string.
1276         (find_conv): Add 'const' qualifier to 'target'.
1277         (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
1278         (make_generic): Check for NULL pointer instead of empty string.
1279         (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
1280         (add_conv): No need to strcpy result from 'conv_name'.
1281         (sort_actual): Check for NULL pointer instead of empty  string.
1282         * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
1283         Adapt prototype.
1284         * module.c (compare_true_names): Compare pointers instead of strings
1285         for 'module' member.
1286         (find_true_name): Initialize string fields with gfc_get_string.
1287         (mio_pool_string): New function.
1288         (mio_internal_string): Adapt comment.
1289         (mio_component_ref, mio_component, mio_actual_arg): Use
1290         'mio_pool_string' instead of 'mio_internal_string'.
1291         (mio_symbol_interface): Add 'const' qualifier to string arguments.
1292         Add level of indirection. Use 'mio_pool_string' instead of
1293         'mio_internal_string'.
1294         (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
1295         (write_common, write_symbol): Use 'mio_pool_string' instead of
1296         'mio_internal_string'.
1297         (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
1298         instead of empty string.
1299         (write_operator, write_generic): Pass correct type variable to
1300         'mio_symbol_interface'.
1301         (write_symtree): Use 'mio_pool_string' instead of
1302         'mio_internal_string'.
1303         * primary.c (match_keyword_arg): Adapt check to possible
1304         case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
1305         * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
1306         gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
1307         'strcpy'.
1308         (ambiguous_symbol): Check for NULL pointer instead of empty string.
1309         (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
1310         arguments.
1311         * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
1312         pointer instead of empty string.
1313         * trans-decl.c (gfc_sym_mangled_identifier,
1314         gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
1315         gfc_get_symbol_decl): Likewise.
1316         * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
1317         argument.  Copy string instead of pointing to it.
1318
1319 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
1320
1321         * intrinsic.h, st.c: Update copyright.
1322
1323 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
1324
1325         * symbol.c: Typos in comments.
1326
1327 2005-02-20  Steven G. Kargl  <kargls@comcast.net>
1328
1329         * expr.c (gfc_type_convert_binary): Typo in comment.
1330
1331 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1332
1333         * check.c (gfc_check_selected_int_kind): New function.
1334         * intrinsic.h: Prototype it.
1335         * intrinsic.c (add_function): Use it.
1336         * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
1337           BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
1338
1339 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1340
1341         * check.c (gfc_check_int): improve checking of optional kind
1342         * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
1343
1344 2005-02-19  Steven G. Kargl  <kargls@comcast.net>
1345
1346         * check.c (gfc_check_achar): New function
1347         * intrinsic.h: Prototype it.
1348         * intrinsic.c (add_function): Use it.
1349
1350 2005-02-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1351
1352         * trans-stmt.c (generate_loop_for_temp_to_lhs,
1353         generate_loop_for_rhs_to_temp): Remove if whose condition is
1354         always true.
1355
1356 2005-02-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1357
1358         * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
1359         (gfc_use_derived): ... this function.
1360
1361 2005-02-09  Richard Henderson  <rth@redhat.com>
1362
1363         * f95-lang.c (gfc_init_builtin_functions): Call
1364         build_common_builtin_nodes; do not define any functions handled
1365         by it.
1366
1367 2005-02-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1368
1369         * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
1370         EXPR_SUBSTRING.
1371         (gfc_is_constant_expr): Check 'ref' to determine if substring
1372         reference is constant.
1373         (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
1374         (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
1375         and 'op2'.
1376         * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
1377
1378 2005-02-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1379
1380         * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
1381         gfc_add_dummy, 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 argument.
1385         * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
1386         gfc_match_null, match_type_spec, match_attr_spec,
1387         gfc_match_formal_arglist, match_result, gfc_match_function_decl):
1388         Update callers to match.
1389         (gfc_match_entry) : Likewise, fix comment typo.
1390         (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
1391         access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
1392         gfc_match_derived_decl): Update callers.
1393         * interface.c (gfc_match_interface): Likewise.
1394         * match.c (gfc_match_label, gfc_add_flavor,
1395         gfc_match_call, gfc_match_common, gfc_match_block_data,
1396         gfc_match_namelist, gfc_match_module, gfc_match_st_function):
1397         Likewise.
1398         * parse.c (parse_derived, parse_interface, parse_contained),
1399         primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
1400         * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
1401         * symbol.c (check_conflict, check_used): Add new 'name' argument,
1402         use when printing error message.
1403         (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
1404         gfc_add_generic, gfc_add_in_common, gfc_add_data,
1405         gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
1406         gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
1407         gfc_add_procedure): Add new 'name' argument.  Pass along to
1408         check_conflict and check_used.
1409         (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
1410         gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
1411         gfc_add_pure, gfc_add_recursive, gfc_add_intent,
1412         gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
1413         argument in calls to any of the modified functions.
1414
1415 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1416
1417         * gfortran.texi: Don't give last update date.
1418
1419 2006-01-30  Richard Henderson  <rth@redhat.com>
1420
1421         * options.c (gfc_init_options): Zero flag_errno_math.
1422
1423 2005-01-29  Paul Brook  <paul@codesourcery.com>
1424
1425         PR fortran/18565
1426         * check.c (real_or_complex_check): New function.
1427         (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
1428         * intrinsic.c (add_functions): Use new check functions.
1429         * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
1430         Add prototypes.
1431
1432 2005-01-29  Steven G. Kargl  <kargls@comcast.net>
1433
1434         PR fortran/19589
1435         * expr.c (gfc_check_assign):  Check for conformance of logical operands
1436
1437 2004-01-27  Steven Bosscher  <stevenb@suse.de>
1438
1439         * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
1440         TREE_USED for all labels.
1441         (gfc_trans_entry_master_switch): Use it instead of building a
1442         label by hand.
1443         * trans-io.c (add_case): Likewise.
1444         * trans-stmt.c (gfc_trans_integer_select): Likewise.
1445
1446 2004-01-23  Paul Brook  <paul@codesourcery.com>
1447         Steven G. Kargl  <kargls@comcast.net>
1448
1449         PR fortran/17941
1450         * arith.c (gfc_convert_real): Remove sign handling.
1451         * primary.c (match_digits): Allow whitespace after initial sign.
1452         (match_real_const): Handle signs here.  Allow whitespace after
1453         initial sign.  Remove dead code.
1454         (match_const_complex_part): Remove.
1455         (match_complex_part): Use match_{real,integer}_const.
1456         (match_complex_constant): Cross-promote integer types.
1457
1458 2005-01-23  James A. Morrison  <phython@gcc.gnu.org>
1459
1460         PR fortran/19294
1461         * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
1462         transpose_c8 for complex types.
1463
1464 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
1465
1466         * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
1467         trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
1468         trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
1469         Follow spelling conventions.
1470
1471 2005-01-22  Bud Davis  <bdavis9659@comcast.net>
1472
1473         PR fortran/19313
1474         * trans-io.c (gfc_trans_inquire): Added code to support
1475         pad.
1476
1477 2005-01-22  Steven G. Kargl  <kargls@comcast.net>
1478
1479         * intrinsic.c (make_alias):  Add standard argument.
1480         (add_functions): Update make_alias calls.
1481
1482 2005-01-22  Paul Brook  <paul@codesourcery.com>
1483
1484         * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
1485
1486 2005-01-22  Paul Brook  <paul@codesourcery.com>
1487
1488         * gfortran.h (gfc_check_access): Add prototype.
1489         * match.c (gfc_match_namelist): Remove TODO.
1490         * module.c (check_access): Rename ...
1491         (gfc_check_access): ... to this.  Boolify.  Update callers.
1492         * resolve.c (resolve_symbol): Check for private objects in public
1493         namelists.
1494
1495 2005-01-22  Paul Brook  <paul@codesourcery.com>
1496
1497         * primary.c (gfc_match_rvalue): Only apply implicit type if variable
1498         does not have an explicit type.
1499         (gfc_match_variable): Resolve implicit derived types in all cases.
1500         Resolve contained function types from their own namespace, not the
1501         parent.
1502         * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
1503         checking.  Resolve from the contained namespace, not the parent.
1504
1505 2005-01-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1506
1507         PR fortran/19543
1508         * trans-const.c (gfc_conv_constant_to_tree): Give logical
1509         constants the correct type.
1510
1511         PR fortran/19194
1512         * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
1513         length parameters.
1514         (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
1515         pointer fields.
1516
1517 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
1518
1519         * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
1520         gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
1521         match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
1522         scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
1523         trans-io.c, trans-stmt.c, trans.c: Update copyright.
1524
1525 2005-01-17  Ira Rosen  <irar@il.ibm.com>
1526
1527         * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
1528
1529 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1530
1531         PR fortran/19182
1532         * error.c (error_char): Line-buffer errors / warnings.
1533
1534 2005-01-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1535
1536         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
1537         unsigned issue.  Use build_int_cst instead of converting
1538         integer_zero_node.  Remove unnecessary conversion.
1539
1540         * trans-types.c (gfc_get_character_type_len): : Use
1541         gfc_charlen_type_node as basic type for the range field.
1542
1543         * trans-intrinsic.c (build_fixbound_expr,
1544         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
1545         gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
1546         gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
1547         of converting 'integer_zero_node' or 'integer_one_node'
1548         respectively.
1549         (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
1550         evade re-building.
1551         (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
1552         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
1553         'build_int_cst' instead of converting 'integer_zero_node' or
1554         'integer_one_node' respectively.
1555
1556         * trans-intrinsic.c (gfc_conv_intrinsic_index,
1557         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
1558         'gfc'-prefix from local variable, remove dead code, use correct
1559         type when inserting argument.
1560
1561         * trans-intrinsic.c, trans-types.c: Update copyright years.
1562
1563 2005-01-16  Steven G. Kargl  <kargls@comcast.net>
1564
1565         PR 19168
1566         * resolve.c (check_case_overlap): Typo in comment.
1567         (validate_case_label_expr):  Fix up kinds of case values
1568         (resolve_select): Properly handle kind mismatches.
1569
1570 2004-01-16  Paul Brook  <paul@codesourcery.com>
1571
1572         PR fortran/17675
1573         * trans-common.c (translate_common): Remove duplicate function call.
1574         (finish_equivalences): Preserve alignment when biasing offsets.
1575
1576 2005-01-15  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de
1577
1578         * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
1579         ASCII-like character encoding.
1580
1581 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
1582
1583         * resolve.c (compare_case): Cleanup.
1584
1585 2005-01-14  Steven G. Kargl  <kargls@comcast.net>
1586
1587         * resolve.c (compare_case): Give arguments correct type.
1588
1589 2005-01-13  Kazu Hirata  <kazu@cs.umass.edu>
1590
1591         * iresolve.c, trans-common.c, trans-types.c: Fix comment
1592         typos.
1593
1594 2005-01-09  Paul Brook  <paul@codesourcery.com>
1595
1596         PR fortran/17675
1597         * trans-common.c (current_common, current_offset): Remove.
1598         (create_common): Add head argument.
1599         (align_segment): New function.
1600         (apply_segment_offset): New function.
1601         (translate_common): Merge code from new_segment.  Handle alignment.
1602         (new_segment): Remove.
1603         (finish_equivalences): Ensure proper alignment.
1604
1605 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1606
1607         * trans-const.c: Don't include unused math.h.
1608
1609         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
1610         gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
1611         gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
1612         trailing whitespace.
1613         (prepare_arg_info): Fix formatting, indenting and remove trailing
1614         whitespace.
1615         (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
1616         trailing whitespace.
1617
1618         * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
1619         gfc_constant_result, gfc_range_check, gfc_arith_power,
1620         eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
1621         gfc_real2complex, gfc_complex2int, gfc_complex2real,
1622         gfc_complex2complex): Fix whitespace issues.
1623         * check.c (must_be, type_check, numeric_check, int_or_real_check,
1624         logical_array_check, array_check, scalar_check, nonoptional_check,
1625         variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
1626         gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
1627         gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
1628         gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
1629         gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
1630         gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
1631         gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
1632         gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
1633         gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
1634         gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
1635         gfc_check_lbound, gfc_check_logical, min_max_args,
1636         gfc_check_min_max_integer, gfc_check_min_max_real,
1637         gfc_check_min_max_double, gfc_check_matmul,
1638         gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
1639         gfc_check_pack, gfc_check_precision, gfc_check_radix,
1640         gfc_check_range, gfc_check_real, gfc_check_repeat,
1641         gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
1642         gfc_check_set_exponent): Fix formatting issues.
1643         (gfc_check_size, gfc_check_sign): Alphabetize function order,
1644         remove whitespace-only line.
1645         (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
1646         gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
1647         gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
1648         gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
1649         gfc_check_random_number, gfc_check_random_seed,
1650         gfc_check_second_sub, gfc_check_system_clock,
1651         gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
1652         gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
1653         gfc_check_unlink_sub): Fix formatting issues.
1654
1655 2005-01-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1656
1657         * gfortran.h: Remove outdated comment.  Don't include stdio.h
1658         explicitly.
1659
1660 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1661
1662         * gfortranspec.c (lang_specific_driver): Change year to 2005 in
1663         output of 'gfortran --version'.
1664
1665 2005-01-03  Steven G. Kargl  <kargls@comcast.net>
1666
1667         * arith.c: Add system.h; remove string.h
1668         * decl.c: Ditto
1669         * matchexp.c: Ditto
1670         * parse.c: Ditto
1671         * resolve.c: Ditto
1672         * st.c: Ditto
1673         * check.c: Remove stdlib.h and stdarg.h
1674         * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
1675         * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
1676         * f95-lang.c: Add system.h; remove stdio.h
1677         * interface.c: Add system.h; remove stdlib.h and string.h
1678         * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
1679         * io.c: Remove string.h
1680         * simplify.c: Ditto
1681         * match.c: Remove stdarg.h and string.h
1682         * misc.c: Update copyright; add system.h; remove stdlib.h,
1683         string.h, and sys/stat.h
1684         * module.c: Add system.h; remove string.h, stdio.h, errno.h,
1685         unistd.h, and time.h
1686         * option.c: Remove string.h and stdlib.h
1687         * primary.c: Ditto
1688         * scanner.c: Update copyright; add system.h; remove stdlib.h,
1689         stdio.h, string.h, and strings.h
1690         * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
1691         * trans-array.c: Remove stdio.h and gmp.h
1692         * trans-const.c: Ditto
1693         * trans-expr.c: Ditto
1694         * trans-io.c: Ditto
1695         * trans-stmt.c: Ditto
1696         * trans.c: Ditto
1697         * trans-intrinsic.c: Remove stdio.h and string.h
1698
1699 2004-12-29  Steven G. Kargl  <kargls@comcast.net>
1700
1701         * gfortran.h (gfc_case): fix typo in comment.
1702
1703 2004-12-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1704
1705         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
1706         logical shift.  Call fold.  Remove 0-bit shift shortcut.
1707         (gfc_conv_intrinsic_ishftc): Convert first argument to at least
1708         4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
1709         result if width(arg 1) < 4 bytes.  Call fold.
1710
1711         PR fortran/19032
1712         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
1713         in front of function to match the standard.  Correct handling
1714         of MODULO.
1715
1716 2004-12-27  Andrew Pinski  <pinskia@physics.uc.edu>
1717
1718         * trans-expr.c (gfc_conv_cst_int_power): Only check for
1719         flag_unsafe_math_optimizations if we have a float type.
1720
1721 2004-12-23  Steven G. Kargl  <kargls@comcast.net>
1722
1723         * gfortran.texi: Fix typo.
1724
1725 2004-12-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1726
1727         * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
1728         comment typo.
1729
1730 2004-12-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1731
1732         PR fortran/18993
1733         * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
1734         (gfc_match_nullify): Make sure that ')' is in front of the end of
1735         statement.
1736
1737         * scanner.c (skip_fixed_comments): Fix typo in comment preceding
1738         function.
1739
1740 2004-12-14  Richard Henderson  <rth@redhat.com>
1741
1742         * gfortran.h (gfc_expr.function.name): Make const.
1743         (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1744         (gfc_get_string): Update prototype.
1745         * iresolve.c: Include tree.h.
1746         (string_node, HASH_SIZE, string_head, hash): Remove.
1747         (gfc_get_string): Use vsnprintf, get_identifier.
1748         (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1749         * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
1750         (gfc_done_1): Don't call gfc_iresolve_done_1.
1751         * module.c (mio_allocated_string): Take and return const char *,
1752         instead of modifying char**.
1753         (mio_expr): Update to match.
1754         * resolve.c (pure_function): Constify name argument.
1755         (resolve_function): Constify name.
1756         * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
1757
1758 2004-12-12  Richard Henderson  <rth@redhat.com>
1759
1760         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
1761         gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
1762         gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
1763         gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
1764         gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
1765         gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
1766         gfc_resolve_unpack: Use PREFIX.
1767
1768 2004-12-12  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1769
1770         PR fortran/18869
1771         * match.c (gfc_match_common): Skip whitespace.
1772
1773 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1774
1775         PR fortran/16581
1776         * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
1777         gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
1778         integer kind check; Issue error for -std=f95 when needed.
1779         * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
1780         GFC_STD_F95.
1781         * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
1782         Promote arguments to same kind.
1783
1784 2004-12-12  Steven G. Kargl  <kargls@comcast.net>
1785         Paul Brook  <paul@codesourcery.com>
1786
1787         PR fortran/16222
1788         * resolve.c (gfc_resolve_iterator_expr): New function.
1789         (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
1790         start, end and stride to correct type.
1791         (resolve_code): Pass extra argument.
1792         * array.c (resolve_array_list): Pass extra argument.
1793         * gfortran.h (gfc_resolve): Add prototype.
1794         * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
1795         Handle real type iterators.
1796
1797 2004-12-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1798
1799         PR fortran/17175
1800         * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
1801         same kind as C's 'int'.
1802         (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
1803
1804 2004-12-08  Richard Henderson  <rth@redhat.com>
1805
1806         * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
1807         to the output expression.
1808         * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
1809         warning conversion.
1810         (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
1811         to index kind.
1812
1813 2004-12-08  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1814
1815         PR fortran/18826
1816         * resolve.c (resolve_code): Impose correct restrictions on
1817         assigned variable.
1818
1819         * decl.c (gfc_match_end): Use locus of END when eos is an error.
1820
1821 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1822         Paul Brook  <paul@codesourcery.com>
1823
1824         * check.c (gfc_check_flush, gfc_check_fnum): New functions.
1825         (gfc_check_fstat, gfc_check_fstat_sub): New functions.
1826         (gfc_check_stat, gfc_check_stat_sub): New functions.
1827         * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
1828         * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
1829         fstat, and stat to intrinsics symbol tables.
1830         * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
1831         (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
1832         * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
1833         (gfc_resolve_stat, gfc_resolve_flush): New functions.
1834         (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
1835         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
1836
1837 2004-12-02  Steven G. Kargl  <kargls@comcast.net>
1838
1839         * intrinsic.c: Fix and add comments, fix function declarations
1840         (OPTIONAL,REQUIRED): New symbols
1841         (add_functions,add_subroutines): Use symbols
1842         (gmp.h): Remove unused include
1843
1844 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
1845
1846         * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
1847         in diagnostics.
1848
1849 2004-11-24  Steven Bosscher  <stevenb@suse.de>
1850
1851         * options.c (gfc_post_options): Don't clear flag_inline_functions.
1852
1853 2004-11-20  Steven G. Kargl  <kargls@comcast.net>
1854
1855         * check.c (gfc_check_getcwd_sub): Fix seg fault.
1856
1857         * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
1858         gfc_check_unlink,gfc_check_unlink_sub): New functions
1859         * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
1860         * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
1861         exit to intrinsics symbol tables.
1862         * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
1863         gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
1864         gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
1865         gfc_resolve_unlink_sub): Add and sort prototypes.
1866         * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
1867         gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
1868         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
1869
1870 2004-11-16  Paul Brook  <paul@codesourcery.com>
1871
1872         PR fortran/13010
1873         * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
1874         (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
1875         * trans-types.c (gfc_get_dtype): Accept array type rather than element
1876         type.
1877         (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
1878         (gfc_get_array_type_bounds): Ditto.
1879         (gfc_get_derived_type): Recurse into derived type pointers.
1880         * trans-types.h (gfc_get_dtype): Add prototype.
1881         * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
1882
1883 2004-11-15  Paul Brook  <paul@codesourcery.com>
1884
1885         * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
1886
1887 2004-11-10  Paul Brook  <paul@codesourcery.com>
1888
1889         PR fortran/18375
1890         * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
1891         * trans-io.c (transfer_array_component): Ditto.
1892
1893 2004-11-10  Paul Brook  <paul@codesourcery.com>
1894
1895         * invoke.texi: Fix typo.
1896
1897 2004-11-08  Kazu Hirata  <kazu@cs.umass.edu>
1898
1899         * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
1900         gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
1901         module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
1902         trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
1903         trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
1904
1905 2004-11-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1906
1907         PR fortran/18023
1908         * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
1909
1910 2004-11-06  Kazu Hirata  <kazu@cs.umass.edu>
1911
1912         * gfortranspec.c: Replace GNU CC with GCC.
1913
1914 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1915
1916         * gfortranspec.c (lang_specific_driver): Change year to 2004.
1917
1918 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1919
1920         PR fortran/18111
1921         *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
1922         hidden parameters.
1923
1924 2004-11-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1925
1926         PR fortran/15164
1927         * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
1928         module procedures as if they were module variables.
1929
1930 2004-11-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1931
1932         PR fortran/17535
1933         PR fortran/17583
1934         PR fortran/17713
1935         * module.c (write_symbol1): Set module_name for dummy arguments.
1936
1937 2004-11-02  Paul Brook  <paul@codesourcery.com>
1938
1939         * intrinsic.c (check_intrinsic_standard): Include error locus.
1940         Remove VLA.
1941         (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
1942         locus to check_intrinsic_standard.
1943
1944 2004-10-31  Janne Blomqvist  <jblomqvi@cc.hut.fi>
1945
1946         PR fortran/17590
1947         * gfortran.h: Change GFC_STD_* flags to more appropriate
1948         ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
1949         gfc_option_t): Add field for warning about use of nonstandard
1950         intrinsics.
1951         * intrinsic.c (add_sym): Add parameter for standard version, check
1952         this against current standard.
1953         (add_sym_0): Pass standard parameter to add_sym.
1954         (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
1955         (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
1956         (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
1957         (make_generic): Add parameter for standard, check this
1958         against currently selected standard.
1959         (add_functions, add_subroutines): Add parameter to tell which
1960         standard an intrinsic belongs to.
1961         (check_intrinsic_standard): New function.
1962         (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
1963         (gfc_intrinsic_sub_interface): Ditto.
1964         * lang.opt: Add Wnonstd-intrinsics option.
1965         * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
1966         init new warning.
1967         (set_Wall): Add warning about nonstd intrinsics.
1968         (gfc_handle_option): Change to use new GFC_STD_* flags,
1969         handle new warning.
1970         * invoke.texi: Update manual to include -Wnonstd-intrinsics.
1971
1972 2004-10-30  Andrew Pinski  <pinskia@physics.uc.edu>
1973
1974         * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
1975
1976 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1977
1978         * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
1979
1980 2004-10-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1981
1982         * trans.c (gfc_trans_code): Set global locus after recursing. Fix
1983         comment typo.
1984
1985 2004-10-30  Canqun Yang  <canqun@nudt.edu.cn>
1986
1987         * check.c (gfc_check_rand): Allow missing optional argument.
1988         (gfc_check_irand): Ditto.
1989         * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
1990
1991 2004-10-28  Scott Robert Ladd  <scott.ladd@coyotegulch.com>
1992
1993         PR fortran/13490, PR fortran/17912
1994         * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
1995         * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
1996         * gcc/fortran/arith.c: Added support for an "asymmetric integer"
1997         warning when compiling with pedantic.
1998         * gcc/fortran/arith.c: Set minimum integer values to reflect
1999         realities of two's complement signed integers. Added
2000         pedantic minimum.
2001
2002 2004-10-17  Andrew Pinski  <pinskia@physics.uc.edu>
2003
2004         * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
2005         (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
2006         link it in.
2007
2008 2004-10-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2009
2010         * trans-decl.c (generate_local_decl): Simplify logic, fix comment
2011         typo.
2012         (gfc_generate_function_code): Fix formatting issue.
2013
2014 2004-10-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2015
2016         * module.c: Fix formatting issues.
2017
2018 2004-10-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2019
2020         * module.c (mio_interface_rest): Set where member of interface
2021         while loading.
2022
2023 2004-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2024
2025         PR fortran/17901
2026         * options.c (gfc_handle_option): Add break after handing the
2027         J/M option.
2028
2029 2004-10-08  Tobias Schlueter  <tobias.shclueter@physik.uni-muenchen.de>
2030
2031         * arith.c: Fix formatting issues.
2032
2033 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2034
2035         PR fortran/17676
2036         * resolve.c (resolve_operator): Use correct operator name in message.
2037
2038 2004-10-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2039
2040         * primary.c (match_boz_constant): Allow kind parameter suffixes.
2041         Move standard warning further to the front.
2042
2043 2004-10-07  Kazu Hirata  <kazu@cs.umass.edu>
2044
2045         * trans-stmt.c: Fix a comment typo.
2046
2047 2004-10-07  Paul Brook  <paul@codesourcery.com>
2048
2049         PR fortran/17678
2050         * trans-array.c (gfc_trans_deferred_array): Leave use associated
2051         variables alone.
2052
2053 2004-10-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2054
2055         PR fortran/17568
2056         * simplify.c (twos_complement): New function.
2057         (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
2058
2059         * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
2060
2061 2004-10-06  Paul Brook  <paul@codesourcery.com>
2062
2063         * trans-stmt.c (gfc_trans_simple_do): New function.
2064         (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
2065         loop.  Update comments.
2066
2067 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2068
2069         PR fortran/17283
2070         * iresolve.c (gfc_resolve_pack): Choose function depending if mask
2071         is scalar.
2072
2073         PR fortran/17631
2074         * intrinsic.c (add_sym_5): Remove.
2075         (add_subroutines): Add resolution function for MVBITS.
2076         * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
2077         MVBITS
2078         * iresolve.c (gfc_resolve_mvbits): New function.
2079         (gfc_resolve_random_number): Remove empty line at end of function.
2080
2081         * trans-const.c (gfc_build_cstring_const): New function.
2082         (gfc_init_cst): Use new function.
2083         * trans-const.h (gfc_build_cstring_const): Add prototype.
2084         * trans-io.c (set_string, set_error_locus): Use new function.
2085         * trans-stmt.c (gfc_trans_goto): Use new function.
2086
2087         PR fortran/17708
2088         * parse.c (accept_statement): Don't treat END DO like END IF and
2089         END SELECT.
2090         (parse_do_block): Generate possible END DO label inside END DO
2091         block.
2092
2093         PR fortran/17776
2094         * check.c (gfc_check_system_sub): New function.
2095         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
2096         * intrinsic.c (add_functions): Add 'system'.
2097         (add_subroutines): Add 'system'.
2098         * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
2099         Move prototypes to other suborutines.
2100         (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
2101         Add prototype.
2102         (gfc_resolve_system_clock): Fix formatting of prototype.
2103         * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
2104         functions.
2105         * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
2106         GFC_ISYM_SYSTEM.
2107
2108 2004-10-04  Erik Schnetter  <schnetter@aei.mpg.de>
2109
2110         * scanner.c (preprocessor_line): Accept preprocessor lines without
2111         file names.  Check file names for closing quotes.  Handle escaped
2112         quotes in file names.
2113
2114 2004-10-04  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2115         Paul Brook  <paul@codesourcery.com>
2116
2117         * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
2118         Use gfc_get_expr_charlen.
2119         * trans-expr.c (gfc_get_expr_charlen): New function.
2120         * trans.h (gfc_get_expr_charlen): Add prototype.
2121
2122 2004-10-04  Kazu Hirata  <kazu@cs.umass.edu>
2123
2124         * trans-intrinsic.c: Fix a comment typo.
2125
2126 2004-10-03  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2127
2128         * simplify.c (range_check): Remove blank line at beginning of function.
2129         (gfc_simplify_dint): Same at end of function.
2130         (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
2131         (gfc_simplify_bound): Fix indentation.
2132         (gfc_simplify_log10): Simplify calculation.
2133         (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
2134         of function.
2135         (gfc_simplify_nearest): Same at end of function.
2136         (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
2137         function.
2138         (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
2139         gfc_simplify_spacing): Simplify calulations.
2140
2141 2004-10-03  Feng Wang  <fengwang@nudt.edu.cn>
2142
2143         * trans-intrinsic.c: Fix comments on spacing and rrspacing
2144         (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
2145
2146 2004-10-01  Jan Hubicka  <jh@suse.cz>
2147
2148         * f95-lang.c (gfc_expand_function): Update call of
2149         tree_rest_of_compilation.
2150         * trans-decl.c (gfc_generate_constructors): Likewise.
2151
2152 2004-09-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2153
2154         * trans-intrinsic.c: Comment fixes.
2155
2156 2004-09-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2157
2158         * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
2159
2160 2004-09-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2161
2162         * trans-types.c (gfc_return_by_reference): Remove superfluous
2163         assertion.
2164
2165         * intrinsic.h (gfc_resolve_getcwd): Update prototype.
2166         * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
2167
2168         PR fortran/17615
2169         * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
2170         function to determine return type.
2171
2172 2004-09-20  Jan Hubicka  <jh@suse.cz>
2173
2174         * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
2175         tree.
2176         (gfc_generate_function_code): Likewise.
2177
2178 2004-09-20  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2179
2180         PR fortran/15957
2181         * simplify.c (gfc_simplify_reshape): Set shape of return value
2182         correctly.
2183
2184 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
2185             Zack Weinberg  <zack@codesourcery.com>
2186
2187         * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
2188         enumeration constants.
2189
2190 2004-09-17  Paul Brook  <paul@codesourcery.com>
2191
2192         * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
2193         (gfc_linebuf_header_size): Define.
2194         * scanner.c (load_file): Use it.
2195
2196 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
2197
2198         * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
2199         interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
2200         resolve.c, scanner.c, trans-array.c, trans-array.h,
2201         trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
2202         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
2203         trans.h: Fix comment typos.  Follow spelling conventions.
2204
2205 2004-09-16  Victor Leikehman  <lei@il.ibm.com>
2206
2207         PR/15364
2208         * trans-io.c (transfer_array_component): New function.
2209         (transfer_expr): For array fields, call transfer_array_component.
2210
2211 2004-09-16  Kazu Hirata  <kazu@cs.umass.edu>
2212
2213         * gfortran.texi: Fix a typo.
2214
2215 2004-09-15  Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2216
2217         * parse.c (eof_buf): Rename eof to eof_buf.
2218         (unexpected_eof): Same.
2219         (gfc_parse_file): Same.
2220
2221 2004-09-15  Steven G. Kargl  <kargls@comcast.net>
2222
2223         * check.c (gfc_check_getcwd_sub): New function.
2224         * gfortran.h (GFC_ISYM_GETCWD): New symbol.
2225         * intrinsic.c (add_functions): Add function definition;
2226         Use symbol.
2227         * intrinsic.c (add_subroutines): Add subroutine definitions.
2228         * intrinsic.h: Add prototypes.
2229         * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
2230         New functions.
2231         * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
2232
2233 2004-09-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2234
2235         PR fortran/16485
2236         * module.c (write_symbol): Don't fill in module name here.
2237         (write_symbol0): Fill in here instead.
2238
2239 2004-09-14  Kazu Hirata  <kazu@cs.umass.edu>
2240
2241         * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
2242         trans-array.c, trans-common.c, trans-expr.c,
2243         trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
2244         comment typos.  Follow spelling conventions.
2245
2246 2004-09-09  Paul Brook  <paul@codesourcery.com>
2247
2248         * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
2249
2250 2004-09-08  Paul Brook  <paul@codesourcery.com>
2251
2252         * array.c: Don't include assert.h.
2253         * data.c: Don't include assert.h.  Replace assert and abort with
2254         gcc_assert and gcc_unreachable.
2255         * dependency.c: Ditto.
2256         * f95-lang.c: Ditto.
2257         * iresolve.c: Ditto.
2258         * resolve.c: Ditto.
2259         * simplify.c: Ditto.
2260         * symbol.c: Ditto.
2261         * trans-array.c: Ditto.
2262         * trans-common.c: Ditto.
2263         * trans-const.c: Ditto.
2264         * trans-decl.c: Ditto.
2265         * trans-expr.c: Ditto.
2266         * trans-intrinsic.c: Ditto.
2267         * trans-io.c: Ditto.
2268         * trans-stmt.c: Ditto.
2269         * trans-types.c: Ditto.
2270         * trans.c: Ditto.
2271
2272 2004-09-07  Per Bothner  <per@bothner.com>
2273         Paul Brook  <paul@codesourcery.com>
2274
2275         * error.c (show_locus): Handle mapped locations.
2276         * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
2277         * gfortran.h: Include input.h.
2278         (struct gfc_linebuf): Use source_location.
2279         * scanner.c (get_file): Initialize linemap.
2280         (preprocessor_line): Pass extra argument to get_file.
2281         (load_file): Ditto.  Setup linemap.
2282         (gfc_new_file): Handle mapped locations.
2283         * trans-common.c (build_field, build_equiv_decl, build_common_decl):
2284         Set decl source locations.
2285         (gfc_trans_common): Set blank common block location.
2286         * trans-decl.c (gfc_set_decl_location): New function.
2287         (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
2288         (trans_function_start): Move call to gfc_set_backend_locus..
2289         (build_function_decl): ... to here.
2290         (build_entry_thunks): Set and restore the backend locus.
2291         (gfc_generate_constructors): Remove excess arguments to
2292         init_function_start.
2293         (gfc_generate_block_data): Add comments.  Set the decl locus.
2294         * trans-io.c (set_error_locus): Handle mapped locations.
2295         * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
2296         (gfc_trans_code): Use SET_EXPR_LOCATION.
2297         (gfc_generate_code): Override the location of the new symbol.
2298         * trans.h (gfc_set_decl_location): Add prototype.
2299
2300 2004-08-31  Paul Brook  <paul@codesourcery.com>
2301
2302         * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
2303
2304 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2305
2306         PR fortran/15327
2307         * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
2308         strings.
2309
2310 2004-09-01  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2311
2312         PR fortran/16400
2313         PR fortran/16404
2314         (port from g95)
2315         * resolve.c (resolve_transfer): New function.
2316         (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
2317
2318 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2319
2320         PR fortran/16579
2321         * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
2322         unsigned char.
2323
2324 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2325
2326         * CONTRIB, NEWS, README, TODO: Remove obsolete files.
2327
2328 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2329
2330         PR fortran/17244
2331         * trans-types.c (gfc_return_by_reference): Remove TODO error,
2332         add comment pointing out possible issue WRT compatibility with g77.
2333
2334 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2335
2336         * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
2337         all occurences of 'gfc_strlen_type_node' by
2338         'gfc_charlen_type_node'.
2339         * trans-types.h: Same. Also update comment accordingly.
2340
2341 2004-08-31  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2342
2343         * primary.c: Update copyright boilerplate to say GCC.
2344         * f95-lang.c: Change initial comment to say gfortran.
2345
2346 2004-08-31  Paul Brook  <paul@codesourcery.com>
2347
2348         * trans-types.h: Add comments.
2349         (intmax_type_node, string_type_node, const_string_type_node): Remove.
2350
2351 2004-08-30  Richard Henderson  <rth@redhat.com>
2352
2353         * Make-lang.in (fortran/f95-lang.o): Update dependencies.
2354         (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
2355         * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
2356         c_long, c_long_long.
2357         (gfc_logical_info): Add c_bool.
2358         (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
2359         * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
2360         rather than gfc_int[48]_type_node for allocate choice.
2361         * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
2362         local copies of some kind type nodes.
2363         (gfc_build_builtin_function_decls): Likewise.
2364         * trans-expr.c (gfc_conv_power_op): Likewise.
2365         * trans-intrinsic.c (gfc_conv_intrinsic_index,
2366         gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
2367         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
2368         * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
2369         gfc_trans_character_select, gfc_trans_allocate): Likewise.
2370         * trans-io.c (gfc_pint4_type_node): Move into ...
2371         (gfc_build_io_library_fndecls): ... here.  Cache local copies of
2372         some kind type nodes.
2373         * trans-types.c (gfc_type_nodes): Remove.
2374         (gfc_character1_type_node, gfc_strlen_type_node): New.
2375         (gfc_integer_types, gfc_logical_types): New.
2376         (gfc_real_types, gfc_complex_types): New.
2377         (gfc_init_kinds): Fill in real mode_precision.
2378         (gfc_build_int_type, gfc_build_real_type): New.
2379         (gfc_build_complex_type, gfc_build_logical_type): New.
2380         (c_size_t_size): New.
2381         (gfc_init_types): Loop over kinds.
2382         (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
2383         (gfc_get_complex_type, gfc_get_logical_type): Likewise.
2384         (gfc_get_character_type_len): Likewise.
2385         (gfc_type_for_size): Loop over kinds; use a reduced set of
2386         unsigned type nodes.
2387         (gfc_type_for_mode): Loop over kinds.
2388         (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
2389         (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
2390         * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
2391         F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
2392         F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
2393         F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
2394         F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
2395         F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
2396         gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
2397         gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
2398         gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
2399         gfc_complex8_type_node, gfc_complex16_type_node,
2400         gfc_logical1_type_node, gfc_logical2_type_node,
2401         gfc_logical4_type_node, gfc_logical8_type_node,
2402         gfc_logical16_type_node, gfc_strlen_kind): Remove.
2403         (gfc_character1_type_node): Turn in to a variable.
2404         (gfc_strlen_type_node): Likewise.
2405
2406 2004-08-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2407
2408         * gfortran.h (gfc_namespace): Add new field is_block_data.
2409         * parse.c (accept_statement): Remove special handling for BLOCK DATA.
2410         (parse_block_data): Record BLOCK DATA name, set is_block_data field.
2411         * trans.c (gfc_generate_code): Handle BLOCK DATA units.
2412         * trans.h (gfc_generate_block_data): Add prototype.
2413         * trans-decl.c (gfc_generate_block_data): New function.
2414
2415 2004-08-29  Richard Henderson  <rth@redhat.com>
2416
2417         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
2418         * trans-types.c (gfc_init_kinds): Reject integer kinds larger
2419         than two HOST_WIDE_INT.
2420
2421 2004-08-29  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2422
2423         PR fortran/13910
2424         * decl.c (free_variable, free_value, gfc_free_data, var_list,
2425         var_element, top_var_list, match_data_constant, top_val_list,
2426         gfc_match_data): Move here from match.c.
2427         (match_old_style_init): New function.
2428         (variable_decl): Match old-style initialization.
2429         * expr.c (gfc_get_variable_expr): New function.
2430         * gfortran.h (gfc_get_variable_expr): Add prototype.
2431         * gfortran.texi: Start documentation for supported extensions.
2432         * match.c: Remove the functions moved to decl.c.
2433         * match.h (gfc_match_data): Move prototype to under decl.c.
2434         * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
2435         comments.
2436
2437 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2438         Paul Brook  <paul@codesourcery.com>
2439
2440         * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
2441         * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
2442         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2443         (build_builtin_fntypes): New function.
2444         (gfc_init_builtin_functions): Use it.
2445         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
2446         and GFC_ISYM_ERF{,C}.
2447         (gfc_c_int_kind): Declare.
2448         * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
2449         * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
2450         gfc_resolve_g77_math1): Add prototypes.
2451         * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
2452         * mathbuiltins.def: Add comment.  Change third argument.  Use
2453         DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
2454         * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
2455         (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2456         * trans-types.c (gfc_c_int_kind): Declare.
2457         (gfc_init_kinds): Set it.
2458
2459 2004-08-29  Steven G. Kargl  <kargls@comcast.net>
2460         Paul Brook  <paul@codesourcery.com>
2461
2462         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
2463         (gfc_check_f, gfc_simplify_f): Add f0.
2464         * intrinsic.c (do_check): Call f0.  Flatten.
2465         (add_sym_0): Fix prototype.  Set f0.
2466         (add_functions): Add getgid, getgid and getuid.
2467         (resolve_intrinsic): Remove obsolete comment.
2468         (do_simplify): Call f0.
2469         * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
2470         gfc_resolve_getuid): Add prototypes.
2471         * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
2472         gfc_resolve_getuid): New functions.
2473         * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
2474         GFC_ISYM_GET?ID.
2475
2476 2004-08-28  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2477
2478         * error.c (gfc_error_init_1): Remove blank line in front of
2479         function body. Add missing blank.
2480         (gfc_buffer_error, error_char, error_string): Remove blank line in
2481         front of function body.
2482         (show_locus): Add comma in comment.
2483         (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
2484         gfc_push_error, gfc_pop_error): Remove blank line in front of
2485         function body.
2486         (gfc_get_errors): Typo fix in comment in front of function. Remove
2487         blank line in front of function body.
2488
2489 2004-08-27  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2490
2491         * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
2492         variable declaration of same name.
2493         * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
2494         intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
2495         resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
2496         Replace all calls to gfc_default_*_kind with variable accesses.
2497         * trans-types.c: Same as above.
2498         (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
2499         static qualifier. Replace all occurences.
2500         (gfc_default_*_kind): Remove functions.
2501
2502 2004-08-26  Richard Henderson  <rth@redhat.com>
2503
2504         * arith.c: Include system.h, not real system headers.
2505         (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
2506         DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
2507         GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
2508         GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
2509         (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
2510         gfc_index_integer_kind, gfc_default_integer_kind,
2511         gfc_default_real_kind,gfc_default_double_kind,
2512         gfc_default_character_kind, gfc_default_logical_kind,
2513         gfc_default_complex_kind, validate_integer, validate_real,
2514         validate_logical, validate_character,
2515         gfc_validate_kind): Move to trans-types.c.
2516         (gfc_set_model_kind): Use gfc_validate_kind.
2517         (gfc_set_model): Just copy the current precision to default.
2518         (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
2519         * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
2520         * gfortran.h: Update file commentary.
2521         * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
2522         (gfc_default_integer_kind_1, gfc_default_real_kind_1,
2523         gfc_default_double_kind_1, gfc_default_character_kind_1,
2524         gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
2525         (gfc_init_kinds): New.
2526         (gfc_init_types): Don't set gfc_index_integer_kind here.
2527         * trans-types.h (gfc_init_kinds): Declare.
2528         * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
2529
2530 2004-08-26  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2531
2532         * check.c (gfc_check_atan2): New function.
2533         * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
2534         * intrinsic.h (gfc_check_atan2): Add prototype.
2535
2536 2004-08-25  Richard Henderson  <rth@redhat.com>
2537
2538         * arith.c (gfc_validate_kind): Add may_fail argument; abort if
2539         false and we don't validate the kind.
2540         (gfc_check_integer_range, gfc_check_real_range): Update to match.
2541         * check.c (kind_check): Likewise.
2542         * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
2543         (match_char_spec, match_logical_spec): Likewise.
2544         * gfortran.h (gfc_validate_kind): Likewise.
2545         * options.c (gfc_handle_option): Likewise.
2546         * primary.c (match_integer_constant, match_real_constant,
2547         match_string_constant, match_logical_constant,
2548         match_const_complex_part): Likewise.
2549         * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
2550         gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
2551         gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
2552         gfc_simplify_maxexponent, gfc_simplify_minexponent,
2553         gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
2554         gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
2555         gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
2556         gfc_simplify_tiny): Likewise.
2557         * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
2558         gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2559         prepare_arg_info): Likewise.
2560
2561 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2562
2563         * expr.c (gfc_check_assign): Add comment. Add new warning.
2564         * trans-expr.c (gfc_conv_function_call): Correctly dereference
2565         result of pointer valued function when not in pointer assignment.
2566
2567 2004-08-25  Paul Brook  <paul@codesourcery.com>
2568
2569         * config-lang.in: Remove dead commented line.
2570         * module.c: Replace g95 with gfortran in comment.
2571
2572 2004-08-25  Paul Brook  <paul@codesourcery.com>
2573
2574         PR fortran/17190
2575         * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
2576
2577 2004-08-25  Paul Brook  <paul@codesourcery.com>
2578
2579         PR fortran/17144
2580         * trans-array.c (gfc_trans_allocate_temp_array): Remove
2581         string_length argument.
2582         (gfc_trans_array_ctor_element): New function.
2583         (gfc_trans_array_constructor_subarray): Use it.
2584         (gfc_trans_array_constructor_value): Ditto.  Handle constant
2585         character arrays.
2586         (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
2587         (gfc_trans_array_constructor): Use them.
2588         (gfc_add_loop_ss_code): Update to new gfc_ss layout.
2589         (gfc_conv_ss_descriptor): Remember section string length.
2590         (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
2591         (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
2592         (gfc_conv_expr_descriptor): Ditto.
2593         (gfc_conv_loop_setup): Ditto.  Spelling fixes.
2594         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
2595         * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
2596         * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
2597         (gfc_conv_variable): Set string_length from section.
2598         (gfc_conv_function_call): Remove extra argument.
2599         (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
2600         * trans-types.c (gfc_get_character_type_len): New function.
2601         (gfc_get_character_type): Use it.
2602         (gfc_get_dtype): Return zero for internal types.
2603         * trans-types.h (gfc_get_character_type_len): Add prototype.
2604         * trans.h (struct gfc_ss): Move string_length out of union.
2605
2606 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2607
2608         * trans.h (build2_v, build3_v): New macros.
2609         (build_v): Remove.
2610         * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
2611         build.
2612         * trans-array.c (gfc_conv_descriptor_data,
2613         gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
2614         gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
2615         gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
2616         gfc_trans_allocate_temp_array,
2617         gfc_trans_array_constructor_subarray,
2618         gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
2619         gfc_trans_array_bound_check, gfc_conv_array_index_offset,
2620         gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
2621         gfc_conv_array_ref, gfc_trans_preloop_setup,
2622         gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
2623         gfc_conv_loop_setup, gfc_array_init_size,
2624         gfc_conv_array_initializer, gfc_trans_array_bounds,
2625         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2626         gfc_conv_expr_descriptor, gfc_conv_array_parameter,
2627         gfc_trans_deferred_array): Use buildN and buildN_v macros instead
2628         of build and build_v as appropriate.
2629         * trans-common.c (create_common): Same.
2630         * trans-decl.c (gfc_trans_auto_character_variable,
2631         gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
2632         * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
2633         gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
2634         gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
2635         gfc_conv_expr_op, gfc_conv_function_call,
2636         gfc_trans_structure_assign): Same.
2637         * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
2638         gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
2639         gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2640         gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
2641         gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
2642         gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
2643         gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
2644         gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
2645         gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
2646         gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2647         gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
2648         gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
2649         gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2650         gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
2651         gfc_conv_intrinsic_iargc): Same.
2652         * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
2653         set_flag, add_case, io_result, transfer_namelist_element,
2654         transfer_expr): Same.
2655         * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
2656         gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
2657         gfc_trans_integer_select, gfc_trans_logical_select,
2658         gfc_trans_character_select, gfc_trans_forall_loop,
2659         gfc_trans_nested_forall_loop, gfc_do_allocate,
2660         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
2661         compute_inner_temp_size, compute_overall_iter_number,
2662         allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
2663         gfc_trans_forall_1, gfc_evaluate_where_mask,
2664         gfc_trans_where_assign, gfc_trans_allocate): Same.
2665         * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
2666         * trans.c (gfc_add_modify_expr, gfc_finish_block,
2667         gfc_build_array_ref, gfc_build_function_call,
2668         gfc_trans_runtime_check): Same.
2669
2670 2004-08-25  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2671
2672         * trans-const.c (gfc_conv_mpz_to_tree): Change call to
2673         build_int_cst to build_int_cst_wide in accordance to Nathan's
2674         previous patch.
2675
2676 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
2677
2678         * trans-array.c (gfc_trans_array_constructor_value): Adjust
2679         build_int_cst calls.
2680         * trans-const.c (gfc_build_string_const, gfc_init_constants,
2681         gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
2682         * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
2683         gfc_trans_entry_master_switch): Likewise.
2684         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2685         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2686         * trans-io.c (add_case, set_error_locus,
2687         transfer_namelist_element, transfer_expr): Likewise.
2688         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2689         gfc_trans_stop, gfc_trans_character_select): Likewise.
2690         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2691         * trans.c (gfc_trans_runtime_check): Likewise.
2692
2693 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2694
2695         * trans-decl.c, trans-types.c: Add and remove blank lines as
2696         required.
2697
2698 2004-08-24  Richard Henderson  <rth@redhat.com>
2699
2700         * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
2701
2702 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2703
2704         * resolve.c (merge_argument_lists): Revert unintentionally
2705         committed change.
2706
2707 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2708
2709         * trans-decl.c (build_function_decl): Fix spelling in comment.
2710         (build_entry_thunks): Remove code with no function.
2711         (gfc_build_intrinsic_function_decls): Remove empty line.
2712
2713         * resolve.c (resolve_entries): Fix a bunch of comment typos.
2714
2715 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
2716
2717         * f95-lang.c (gfc_init_decl_processing): Adjust
2718         build_common_tree_nodes call.
2719
2720 2004-08-24  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2721
2722         * trans-types.c: Spelling and formatting fixes.
2723
2724 2004-08-23  Richard Henderson  <rth@redhat.com>
2725
2726         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
2727         of going through an intermediate string.  Fix 32/64 int/long bug.
2728
2729 2004-08-23  Eric Christopher  <echristo@redhat.com>
2730
2731         * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
2732         usage. Use build_vector_type_for_mode for vector types.
2733
2734 2004-08-22  Richard Henderson  <rth@redhat.com>
2735
2736         PR 13465
2737         * data.c (find_con_by_offset): Search ordered list; handle
2738         elements with repeat counts.
2739         (gfc_assign_data_value_range): New.
2740         * gfortran.h (struct gfc_data_value): Make repeat unsigned.
2741         (gfc_assign_data_value_range): Declare.
2742         * match.c (top_val_list): Extract repeat count into a temporary.
2743         * resolve.c (values): Make left unsigned.
2744         (next_data_value): Don't decrement left.
2745         (check_data_variable): Use gfc_assign_data_value_range.
2746
2747 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2748
2749         * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
2750
2751 2004-08-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2752
2753         * check.c (gfc_check_reduction): Rename to ...
2754         (check_reduction): ... this. Make static. Don't check type of
2755         first argument.
2756         (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
2757         * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
2758         SUM to use new check functions.
2759         (check_specific): Change logic to call new functions.
2760         * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
2761         Add prototypes.
2762         (gfc_check_reduction): Remove prototype.
2763
2764 2004-08-20  Paul Brook  <paul@codesourcery.com>
2765         Canqun Yang  <canqun@nudt.edu.cn>
2766
2767         PR fortran/17077
2768         * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
2769         for automatic arrays.
2770         * trans-types.c (gfc_get_nodesc_array_type): Add comment.
2771
2772 2004-08-19  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2773         (Port from g95)
2774
2775         PR fortran/17074
2776         * match.c (match_simple_forall, match_simple_where): Forward-declare.
2777         (gfc_match_if): Order statement list alphabetically, add WHERE and
2778         FORALL, remove double PAUSE.
2779         (gfc_match_simple_where, match_forall_header,
2780         gfc_match_simple_forall): New functions.
2781         (gfc_match_forall): Use match_forall_header.
2782
2783 2004-08-19  Paul Brook  <paul@codesourcery.com>
2784
2785         PR fortran/17091
2786         * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
2787         * symbol.c (gfc_clear_attr): Use memset.
2788
2789 2004-08-19  Paul Brook  <paul@codesourcery.com>
2790
2791         PR fortran/14976
2792         PR fortran/16228
2793         * data.c (assign_substring_data_value): Remove.
2794         (create_character_intializer): New function.
2795         (gfc_assign_data_value): Track the typespec for the current
2796         subobject.  Use create_character_intializer.
2797
2798 2004-08-19  Erik Schnetter  <schnetter@aei.mpg.de>
2799
2800         PR fortran/16946
2801         * check.c (gfc_check_reduction): New function.
2802         (gfc_check_minval_maxval): Removed.
2803         (gfc_check_product): Removed.
2804         (gfc_check_sum): Removed.
2805         * intrinsic.h: Add/remove declarations for these.
2806         * gfortran.h: Add field f3red to union gfc_check_f.
2807         * intrinsic.c (add_sym_3red): New function.
2808         (add_functions): Register maxval, minval, product, and sum intrinsics
2809         through add_sym_3red.
2810         (check_specific): Handle f3red union field.
2811         * iresolve.c: Whitespace change.
2812
2813 2004-08-18  Paul Brook  <paul@codesourcery.com>
2814
2815         * trans-types.c (gfc_sym_type): Use pointer types for optional args.
2816
2817 2004-08-18  Victor Leikehman  <lei@il.ibm.com>
2818
2819         PR fortran/13278
2820         * trans-io.c (transfer_namelist_element): New. Recursively handle
2821         derived-type variables.  Pass string lengths.
2822         (build_dt): Code moved to build_namelist, with some
2823         changes and additions.
2824         (gfc_build_io_library_fndecls): Declare the fifth
2825         argument in st_set_nml_var_char -- string_length.
2826
2827 2004-08-17  Paul Brook  <paul@codesourcery.com>
2828         Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2829
2830         PR fortran/13082
2831         * decl.c (get_proc_name): Update mystery comment.
2832         (gfc_match_entry): Check for errors earlier.  Add entry point to list.
2833         * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
2834         * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
2835         (struct gfc_entry_list): Define.
2836         (gfc_get_entry_list): Define.
2837         (struct gfc_namespace): Add refs and entries.
2838         (enum gfc_exec_op): Add EXEC_ENTRY.
2839         (struct gfc_code): Add ext.entry.
2840         * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
2841         (mio_symbol_attribute): Don't save/reture addr->entry.
2842         (mio_namespace_ref): Refcount namespaces.
2843         * parse.c (accept_statement): Handle ST_ENTRY.
2844         (gfc_fixup_sibling_symbols): Mark symbol as referenced.
2845         (parse_contained): Fixup sibling references to entry points
2846         after parsing the procedure body.
2847         * resolve.c (resolve_contained_fntype): New function.
2848         (merge_argument_lists, resolve_entries): New functions.
2849         (resolve_contained_functions): Use them.
2850         (resolve_code): Handle EXEC_ENTRY.
2851         (gfc_resolve): Call resolve_entries.
2852         * st.c (gfc_free_statement): Handle EXEC_ENTRY.
2853         * symbol.c (gfc_get_namespace): Refcount namespaces.
2854         (gfc_free_namespace): Ditto.
2855         * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
2856         optional when multiple entry points are present.
2857         * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
2858         (gfc_get_extern_function_decl): Add assertion.  Fix coment.
2859         (create_function_arglist, trans_function_start, build_entry_thunks):
2860         New functions.
2861         (gfc_build_function_decl): Rename ...
2862         (build_function_decl): ... to this.
2863         (gfc_create_function_decl): New function.
2864         (gfc_generate_contained_functions): Use it.
2865         (gfc_trans_entry_master_switch): New function.
2866         (gfc_generate_function_code): Use new functions.
2867         * trans-stmt.c (gfc_trans_entry): New function.
2868         * trans-stmt.h (gfc_trans_entry): Add prototype.
2869         * trans-types.c (gfc_get_function_type): Add entry point argument.
2870         * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
2871         (gfc_generate_module_code): Call gfc_create_function_decl.
2872         * trans.h (gfc_build_function_decl): Remove.
2873         (gfc_create_function_decl): Add prototype.
2874
2875 2004-08-15  Andrew Pinski  <apinski@apple.com>
2876
2877         PR fortran/17030
2878         * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
2879         for cabs{,f} and copysign{,f}.
2880         * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
2881         (gfor_fndecl_math_cabs): Delete.
2882         (gfor_fndecl_math_sign4): Delete.
2883         (gfor_fndecl_math_sign8): Delete.
2884         (gfc_build_intrinsic_function_decls): Remove the
2885         initializing of cabs{,f} and copysign{,f} functions.
2886         * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
2887         instead of the functions definitions.
2888         (gfc_conv_intrinsic_sign): Likewise.
2889         * trans.h (gfor_fndecl_math_cabsf): Delete.
2890         (gfor_fndecl_math_cabs): Delete.
2891         (gfor_fndecl_math_sign4): Delete.
2892         (gfor_fndecl_math_sign8): Delete.
2893
2894 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
2895
2896         * trans-array.c (gfc_trans_array_constructor_value): Use
2897         build_int_cst.
2898         * trans-const.c (gfc_build_string_const,
2899         gfc_init_constants, gfc_conv_mpz_to_tree,
2900         gfc_conv_constant_to_tree): Likewise.
2901         * trans-decl.c (gfc_get_symbol_decl): Likewise.
2902         * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2903         gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2904         * trans-io.c (add_case, set_error_locus, build_dt,
2905         transfer_expr): Likewise.
2906         * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2907         gfc_trans_stop, gfc_trans_character_select): Likewise.
2908         * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2909         * trans.c (gfc_trans_runtime_check): Likewise.
2910
2911 2004-08-14  Paul Brook  <paul@codesourcery.com>
2912
2913         * trans-decl.c (gfc_build_function_decl): Remove dead code.
2914
2915 2004-08-14  Paul Brook  <paul@codesourcery.com>
2916
2917         * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
2918
2919 2004-08-13  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2920
2921         * gfortran.h: Add comments.
2922         * parse.c (parse_contained): Fix comment typo.
2923         * resolve.c (was_declared): Ditto.
2924         * symbol.c: Ditto.
2925
2926 2004-08-11  Paul Brook  <paul@codeourcery.com>
2927
2928         PR fortran/16917
2929         * intrinsic.c (add_functions): Add dfloat as an alias for dble.
2930
2931 2004-08-10  Richard Henderson  <rth@redhat.com>
2932
2933         * f95-lang.c (gfc_init_builtin_functions): Remove
2934          __builtin_stack_alloc, add __builtin_alloca.
2935         * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
2936         * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2937
2938 2004-08-10  Paul Brook  <paul@codesourcery.com>
2939
2940         * trans-io.c (transfer_expr): Handle pointters.
2941
2942 2004-08-10  Paul Brook  <paul@codesourcery.com>
2943
2944         PR fortran/16919
2945         * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
2946         (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
2947         (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
2948         Handle GFC_SS_COMPONENT.
2949         (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
2950         (gfc_conv_loop_setup): Tweak commends. Remove dead code.
2951         Use ss->shape.
2952         (gfc_conv_array_initializer): Call specific initializer routines.
2953         * trans-expr.c (gfc_trans_structure_assign): New function.
2954         (gfc_trans_subarray_assign): New function.
2955         (gfc_trans_subcomponent_assign): New fucntion
2956         (gfc_conv_structure): Use them.
2957         * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
2958         (gfc_ss): Add shape.
2959
2960 2004-08-08  Victor Leikehman  <lei@il.ibm.com>
2961
2962         * simplify.c (gfc_simplify_shape): Bugfix.
2963         * expr.c (gfc_copy_shape_excluding): New function.
2964         * gfortran.h (gfc_get_shape): Bugfix.
2965         (gfc_copy_shape_excluding): Added declaration.
2966         * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
2967         gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
2968         gfc_resolve_ubound, gfc_resolve_transpose): Added compile
2969         time resolution of shape.
2970
2971 2004-08-06  Janne Blomqvist  <jblomqvi@cc.hut.fi>
2972
2973         * intrinsic.c (add_subroutines): Add getenv and
2974         get_environment_variable. (add_sym_5s): New function.
2975         * intrinsic.h (gfc_resolve_get_environment_variable): Add
2976         prototype.
2977         * iresolve.c (gfc_resolve_get_environment_variable): New
2978         function.
2979
2980 2004-08-06  Feng Wang  <fengwang@nudt.edu.cn>
2981
2982         * f95-lang.c (gfc_init_builtin_functions): Fix the number of
2983         __builtin_pow[f] arguments.
2984
2985 2004-08-06  Steven G. Kargl  <kargls@comcast.net>
2986
2987         * arith.c: Add #define for model numbers.  Remove global GMP variables.
2988         (natural_logarithm,common_logarithm,exponential,sine,
2989         cosine,arctangent,hypercos,hypersine ): Remove.
2990         (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
2991         (arctangent2,gfc_arith_init_1,gfc_arith_done_1
2992         gfc_check_real_range, gfc_constant_result, gfc_range_check,
2993         gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
2994         gfc_arith_divide,complex_reciprocal,complex_pow_ui,
2995         gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
2996         gfc_convert_complex,gfc_int2real,gfc_int2complex,
2997         gfc_real2int,gfc_real2real,gfc_real2complex,
2998         gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
2999         to MPFR, use new functions.
3000         * arith.h: Remove extern global variables.
3001         (natural_logarithm,common_logarithm,exponential, sine, cosine,
3002         arctangent,hypercos,hypersine): Remove prototypes.
3003         (arctangent2): Update prototype from GMP to MPFR.
3004         (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
3005         * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
3006         * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
3007         * gfortran.h (GFC_REAL_BITS): Remove.
3008         (arith): Add ARITH_NAN.
3009         Include mpfr.h.  Define GFC_RND_MODE.
3010         Rename GCC_GFORTRAN_H GFC_GFC_H.
3011         (gfc_expr): Convert GMP to MPFR.
3012         * module.c: Add arith.h, correct type in comment.
3013         (mio_gmp_real): Convert GMP to MPFR.
3014         (mio_expr):  Use gfc_set_model_kind().
3015         * primary.c:  Update copyright date with 2004.
3016         (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
3017         * simplify.c: Remove global GMP variables
3018         (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
3019         gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
3020         gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
3021         gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
3022         gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
3023         gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
3024         gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
3025         gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
3026         gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
3027         gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
3028         gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
3029         gfc_simplify_rrspacing,gfc_simplify_scale,
3030         gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
3031         gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
3032         gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
3033         gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
3034         Use new functions.
3035         * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
3036         gfc_conv_mpf_to_tree.  Convert it to use MPFR
3037         (gfc_conv_constant_to_tree): Use it.
3038         * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
3039         * trans-intrinsic.c: Add arith.h, remove gmp.h
3040         (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
3041
3042 2004-08-06  Victor Leikehman  <lei@il.ibm.com>
3043         Paul Brook  <paul@codesourcery.com>
3044
3045         * trans-array.c (gfc_trans_allocate_array_storage,
3046         gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
3047         gfc_conv_loop_setup): For functions, if the shape of the result
3048         is not known in compile-time, generate an empty array descriptor for
3049         the result and let the callee to allocate the memory.
3050         (gfc_trans_dummy_array_bias): Do nothing for pointers.
3051         (gfc_conv_expr_descriptor): Use function return values directly.
3052         * trans-expr.c (gfc_conv_function_call): Always add byref call
3053         insn to pre chain.
3054         (gfc_trans_pointer_assignment): Add comments.
3055         (gfc_trans_arrayfunc_assign): Don't chain on expression.
3056
3057 2004-08-01  Roger Sayle  <roger@eyesopen.com>
3058
3059         * options.c (gfc_init_options): Don't warn about the use GNU
3060         extensions by default.
3061         (gfc_post_options): Warn about GNU extensions with -pedantic.
3062         (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
3063
3064 2004-07-30  Richard Henderson  <rth@redhat.com>
3065
3066         * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
3067         for TREE_CONSTANTs.
3068
3069 2004-07-25  Richard Henderson  <rth@redhat.com>
3070
3071         * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
3072         and DECL_IGNORED_P on RESULT_DECL.
3073         (gfc_generate_constructors): Likewise.
3074
3075 2004-07-18  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3076
3077         PR fortran/16465
3078         * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
3079         options.
3080         (ffixed-line-length-80, ffixed-line-length-132): Remove.
3081         * options.c (gfc_handle_options): Deal with changed options.
3082         * scanner.c (load_line): Change second arg to 'char **',
3083         allocate if pointing to NULL. Keep track of buffer's length.
3084         Adapt buffer size to overlong lines. Pad lines to full length
3085         in fixed form.
3086         (load_file): Adapt to new interface of load_line.
3087
3088 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
3089
3090         * trans.h (builtin_function): Declare.
3091
3092 2004-07-16  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3093
3094         PR fortran/16404
3095         (parts ported from g95)
3096         * parse.h (gfc_state_data): New field do_variable.
3097         (gfc_check_do_variable): Add prototype.
3098         * parse.c (push_state): Initialize field 'do_variable'.
3099         (gfc_check_do_variable): New function.
3100         (parse_do_block): Remember do iterator variable.
3101         (parse_file): Initialize field 'do_variable'.
3102         * match.c (gfc_match_assignment, gfc_match_do,
3103         gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
3104         Add previously missing checks.
3105         (gfc_match_return): Reformat error message.
3106         * io.c (match_out_tag): New function.
3107         (match_open_element, match_close_element,
3108         match_file_element, match_dt_element): Call match_out_tag
3109         instead of match_vtag where appropriate.
3110         (match_io_iterator, match_io_element): Add missing check.
3111         (match_io): Reformat error message.
3112         (match_inquire_element): Call match_out_tag where appropriate.
3113
3114         * parse.c (gfc_check_do_variable): Fix error locus.
3115
3116 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3117
3118         PR fortran/15129
3119         * trans-decl.c (gfc_build_function_decl): Create a new chardecl
3120         for every assumed length character dummy argument.
3121
3122         PR fortran/15140
3123         * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
3124
3125         PR fortran/13792
3126         * simplify.c (gfc_simplify_bound): Copy the bound expression.
3127
3128 2004-07-15  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3129
3130         PR fortran/15324
3131         * trans-array.c gfc_trans_g77_array,
3132         gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
3133         for assumed length characters.
3134         (gfc_conv_expr_descriptor): Set se->string_length if dealing
3135         with a character expression.
3136         (gfc_cvonv_array_parameter): Pass string length when passing
3137         character array according to g77 conventions.
3138
3139 2004-07-12  Paul Brook  <paul@codesourcery.com>
3140
3141         * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
3142         * trans-array.c (gfc_trans_auto_array_allocation): Remove
3143         initialization code.
3144         * trans-common.c (create_common): Use gfc_conv_initializer.
3145         * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
3146         * trans-expr.c (gfc_conv_initializer): New function.
3147         (gfc_conv_structure): Use it.
3148         * trans.h (gfc_conv_initializer): Add prototype.
3149
3150 2004-07-11  Paul Brook  <paul@codesourcery.com>
3151
3152         PR fortran/15986
3153         * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
3154         variables.
3155         (parse_contained): Mark contained symbols as referenced.
3156
3157 2004-07-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3158
3159         PR fortran/16455
3160         * module.c (gfc_dump_module, gfc_use_module): Print locus
3161         when opening of module file fails.
3162
3163         PR fortran/16404
3164         * io.c (match_io): Flag 'WRITE(...), ...' as extension.
3165
3166         PR fortran/16404
3167         * match.c (gfc_match_program): A program name is obligatory.
3168         (gfc_match_return): RETURN in main program is an extension.
3169         (gfc_match_block_data): A space is required before a block data
3170         name.
3171
3172         PR fortran/16433
3173         * primary.c (match_boz_constant): Call gfc_notify_std only if
3174         we actually have a non-standard boz-literal-constant.
3175
3176         PR fortran/15754
3177         * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
3178         warning if assigning NULL().
3179
3180 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
3181
3182         * f95-lang.c (set_block): Remove.
3183         (gfc_clear_binding_stack): New.
3184         (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
3185         (struct binding_level): Remove block_created_by_back_end.
3186         (clear_binding_level): Likewise.
3187         (poplevel): Don't handle block_created_by_back_end.
3188
3189 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3190
3191         * trans-decl.c (gfc_create_module_variable): Nothing to do if
3192         symbol is in common, because we ...
3193         (gfc_generate_module_vars): Call gfc_trans_common.
3194
3195 2004-07-10  Paul Brook  <paul@codesourcery.com>
3196
3197         * trans-array.c (gfc_build_null_descriptor): New function.
3198         (gfc_trans_static_array_pointer): Use it.
3199         * trans-array.h (gfc_build_null_descriptor): Add prototype.
3200         * trans-expr.c (gfc_conv_structure): Handle array pointers.
3201
3202 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3203
3204         PR fortran/16336
3205         * decl.c (gfc_match_save): Use-associated common block
3206         doesn't collide.
3207         * gfortran.h (gfc_common_head): Add new field 'name'.
3208         Fix typo in comment after #endif.
3209         * match.c (gfc_get_common): Add new argument from_common,
3210         mangle name if flag is set, fill in new field in structure
3211         gfc_common_head.
3212         (match_common): Set new arg in call to gfc_get_common,
3213         use-associated common block doesn't collide.
3214         * match.h (gfc_get_common): Adapt prototype.
3215         * module.c (load_commons): Set new arg in call to
3216         gfc_get_common.
3217         * symbol.c (free_common_tree): New function.
3218         (gfc_free_namespace): Call new function.
3219         * trans-common.c (several functions): Remove argument
3220         'name', use name from gfc_common_head instead.
3221
3222 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3223
3224         * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
3225         and RHS match. Return early if the RHS is NULL().
3226
3227         PR fortran/16336
3228         * match.c (match_common): Fix error reporting for used common.
3229
3230         PR fortran/15969
3231         * trans-expr.c (gfc_conv_structure): Handle initialization
3232         of scalar pointer components.
3233
3234         * parse.c (decode_statement): Fix matching of BLOCK DATA.
3235
3236         * trans-decl.c (generate_local_decl): Remove workaround obsoleted
3237         by fix for PR 15481.
3238
3239 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3240
3241         * trans-common.c: Fix whitespace issues, make variable names
3242         more readable.
3243         (create_common): Additionally, make loop logic more obvious.
3244
3245 2004-07-10  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3246         Paul Brook  <paul@codesourcery.com>
3247
3248         PR fortran/13415
3249         * trans-common.c (calculate_length): Remove ...
3250         (get_segment_info): Merge into here.  Save field type.
3251         (build_field): Use saved type.
3252         (create_common, new_condition, new_segment, finish_equivalences):
3253         Use new get_segment_info.
3254         * trans-types.c: Update comment.
3255
3256 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3257
3258         PR fortran/14077
3259         * moduele.c (mio_symbol): Don't I/O initial values unless
3260         symbol is a parameter.
3261
3262 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3263
3264         PR fortran/13201
3265         * resolve.c (resolve_symbol): Verify that the shape of a
3266         parameter array is not only explicit, but also constant.
3267         * array.c (gfc_is_compile_time_shape): New function.
3268         * gfortran.h (gfc_is_compile_time_shape): Add prototype.
3269
3270 2004-07-09  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3271
3272         PR fortran/15481
3273         PR fortran/13372
3274         PR fortran/13575
3275         PR fortran/15978
3276         * module.c (write_symbol, write_symtree): Remove workaround.
3277         * primary.c (match_actual_arglist): Enhance comment.
3278         (gfc_match_rvalue): Handle function call with first argument
3279         a keyword argument correctly.
3280         * resolve.c (resolve_symbol): Change call to
3281         gfc_set_default_type to issue error if no implicit type
3282         can be found.
3283         * trans-decl.c (gfc_create_module_variable): Remove workaround.
3284
3285 2004-07-08  Paul Brook  <paul@codesourcery.com>
3286
3287         * intrinsic.c (add_sym_4s): New function.
3288         (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
3289
3290 2004-07-04  Janne Blomqvist  <jblomqvi@cc.hut.fi>
3291         Paul Brook  <paul@codesourcery.com>
3292
3293         PR fortran/15280
3294         PR fortran/15665
3295         * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
3296         GFC_ISYM_COMMAND_ARGUMENT_COUNT.
3297         * intrinsic.c (add_functions):  Identify iargc.  Add
3298         command_argument_count.
3299         (add_subroutines): Resolve getarg.  Add get_command and
3300         get_command_argument.
3301         * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
3302         gfc_resolve_get_command_argument): Add prototypes.
3303         * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
3304         gfc_resolve_get_command_argument): New functions.
3305         * trans-decl.c (gfor_fndecl_iargc): New variable.
3306         (gfc_build_intrinsic_function_decls): Set it.
3307         * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
3308         (gfc_conv_intrinsic_function): Use it.
3309         * trans.h (gfor_fndecl_iargc): Declare.
3310
3311 2004-07-04  Matthias Klose  <doko@debian.org>
3312
3313         * Make-lang.in: Generate and install gfortran man page.
3314         * invoke.texi: Remove extra '@c man end'.
3315
3316 2004-07-04  Richard Henderson  <rth@redhat.com>
3317
3318         * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
3319
3320 2004-07-04  Paul Brook  <paul@codesourcery.com>
3321
3322         * decl.c (gfc_match_implicit_range): Don't use typespec.
3323         (gfc_match_implicit): Handle character selectors.
3324         * gfortran.h (gfc_set_implicit): Remove prototype.
3325         (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
3326         * parse.c (accept_statement): Don't call gfc_set_implicit.
3327         * symbol.c (new_ts): Remove.
3328         (gfc_set_implicit_none): Use same loop bounds as other functions.
3329         (gfc_set_implicit): Remove.
3330         (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
3331         (gfc_merge_new_implicit): Combine with gfc_set_implicit.
3332
3333 2004-06-30  Richard Henderson  <rth@redhat.com>
3334
3335         * match.c (var_element): Remove unused variable.
3336
3337         * trans-decl.c (gfc_generate_function_code): Don't set
3338         x_whole_function_mode_p.
3339         (gfc_generate_constructors): Likewise.
3340
3341 2004-06-30  Richard Henderson  <rth@redhat.com>
3342
3343         * trans-decl.c (gfc_generate_function_code): Don't set
3344         immediate_size_expand.
3345         (gfc_generate_constructors): Likewise.
3346
3347 2004-06-30  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
3348
3349         PR fortran/16161
3350         * decl.c (gfc_match_type_spec): Rename second argument to
3351         'implicit_flag', reverse meaning. Don't match_char_spec if
3352         'implicit_flag' is set. Rename to ...