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