]> gcc.gnu.org Git - gcc.git/blame - gcc/fortran/ChangeLog
re PR fortran/22038 (Forall with mask broken)
[gcc.git] / gcc / fortran / ChangeLog
CommitLineData
a8e12e4d
TS
12005-06-13 Jakub Jelinek <jakub@redhat.com>
2
3 PR fortran/22038
4 * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
5 in the innermost loop.
6
4c73896d
RH
72005-06-12 Richard Henderson <rth@redhat.com>
8
9 * trans-array.c (gfc_conv_descriptor_data_get): Rename from
10 gfc_conv_descriptor_data. Cast the result to the DATAPTR type.
11 (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
12 (gfc_trans_allocate_array_storage): Use them.
13 (gfc_array_allocate, gfc_array_deallocate): Likewise.
14 (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
15 (gfc_trans_deferred_array): Likewise.
16 * trans-expr.c (gfc_conv_function_call): Likewise.
17 (gfc_trans_subcomponent_assign): Likewise.
18 (gfc_trans_pointer_assignment): Likewise.
19 * trans-intrinsic.c (gfc_conv_allocated): Likewise.
20 * trans-types.c (gfc_array_descriptor_base): New.
21 (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
22 (gfc_get_array_descriptor_base): Break out from ...
23 (gfc_get_array_type_bounds): ... here. Create type variants.
24 * trans-array.h (gfc_conv_descriptor_data_get): Declare.
25 (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.
26
a8e12e4d 272005-06-12 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
b49a3de7
TS
28
29 * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
30 calling conventions. Look at sym instead of sym->result.
31 * trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
32 Remove condition which is always false with workaround removed.
33 (gfc_return_by_reference): Always look at sym, never at sym->result.
34
364667a1 352005-06-11 Steven G. Kargl <kargls@comcast.net>
4c73896d 36
364667a1
SK
37 PR fortran/17792
38 PR fortran/21375
39 * trans-array.c (gfc_array_deallocate): pstat is new argument
40 (gfc_array_allocate): update gfc_array_deallocate() call.
41 (gfc_trans_deferred_array): ditto.
42 * trans-array.h: update gfc_array_deallocate() prototype.
43 * trans-decl.c (gfc_build_builtin_function_decls): update declaration
44 * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.
45
ce677da7 462005-06-07 Jerry DeLisle <jvdelisle@verizon.net>
3435a71e
JD
47
48 * intrinsic.texi: Add documentation for dcmplx, digits,
49 dim, idim, ddim, dot_product, dprod, dreal, and dtime.
50
b4cbcd1a
TS
512005-06-05 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
52
86403f0f
TS
53 PR fortran/21912
54 * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
55 Generate correct exit condition in case of negative steps in
56 implied-do loops.
57
b4cbcd1a
TS
58 * invoke.texi: Fix description of flags required for compatibility
59 with g77.
60
8e400578
TS
612005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
62 Erik Schnetter <schnetter@aei.mpg.de>
63
2d6ea0b4 64 PR fortran/19195
8e400578
TS
65 * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
66 remove FIXME comment.
67
29405f94
TS
682005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
69
70 * match.c (match_forall_iterator): Don't immediately give error if '='
71 is not followed by an expression.
72
732005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
ab21e272
TS
74 Erik Edelmann <erik.edelmann@iki.fi>
75
76 * array.c (gfc_match_array_constructor): Disallow empty array
77 constructor.
78
323d0f0b
JD
792005-06-03 Jerry DeLisle <jvdelisle@verizon.net>
80
81 * fortran/intrinsic.texi: Add documentation for
82 command_argument_count, conjg, dconjg, count,
83 cpu_time, cshift, date_and_time, dble, dfloat.
84
c3a29423
RS
852005-06-01 Roger Sayle <roger@eyesopen.com>
86
87 * intrinsic.c (add_conv): No longer take a "simplify" argument as
88 its always gfc_convert_constant, instead take a "standard" argument.
89 (add_conversions): Change all existing calls of add_conv to pass
90 GFC_STD_F77 as appropriate. Additionally, if we're allowing GNU
91 extensions support integer-logical and logical-integer conversions.
92 (gfc_convert_type_warn): Warn about use the use of these conversions
93 as a extension when appropriate, i.e. with -pedantic.
94 * simplify.c (gfc_convert_constant): Add support for integer to
95 logical and logical to integer conversions, using gfc_int2log and
96 gfc_log2int.
97 * arith.c (gfc_log2int, gfc_int2log): New functions.
98 * arith.h (gfc_log2int, gfc_int2log): Prototype here.
99 * gfortran.texi: Document this new GNU extension.
100
f7f7ac5a
PT
1012005-06-01 Paul Thomas <pault@gcc.gnu.org>
102
103 * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
104 * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
105 Correct comments and replace convert of integer_one_node with
106 build_int_cst.
107
cf4d246b
JJ
1082005-06-01 Jakub Jelinek <jakub@redhat.com>
109
110 PR fortran/21729
111 * resolve.c (resolve_contained_fntype): Use sym->attr.untyped
112 to avoid giving error multiple times.
113 (resolve_entries): Don't error about BT_UNKNOWN here.
114 (resolve_unknown_f): Capitalize IMPLICIT for consistency.
115 (resolve_fntype): New function.
116 (gfc_resolve): Call resolve_fntype.
117
bf3ddf8a
FW
1182005-06-01 Feng Wang <fengwang@nudt.edu.cn>
119
120 PR fortran/20883
121 * fortran/io.c (resolve_tag): Fix error message.
122
4c714dd4
KG
1232005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
124
125 * fortran/trans-decl.c: Don't include errors.h.
126 * fortran/Make-lang.in: Updates dependencies.
127
2b052ce2
PT
1282005-05-31 Paul Thomas <pault@gcc.gnu.org>
129
130 PR fortran/18109
131 PR fortran/18283
132 PR fortran/19107
133 * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
134 string length from the expression typespec character length value
135 and set temp_ss->stringlength and backend_decl. Obtain the
136 tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
137 Dereference the expression to obtain the character.
138 * fortran/trans-expr.c (gfc_conv_component_ref): Remove the
139 dereference of scalar character pointer structure components.
140 * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
141 string length for the structure component from the component
142 expression.
143
c0309c74
RS
1442005-05-30 Roger Sayle <roger@eyesopen.com>
145
146 * gfortran.h (GFC_STD_LEGACY): New "standard" macro. Reindent.
147 * options.c (gfc_init_options): By default, allow legacy extensions
148 but warn about them.
149 (gfc_post_options): Make -pedantic warn about legacy extensions
150 even with -std=legacy.
151 (gfc_handle_option): Make -std=gnu follow the default behaviour
152 of warning about legacy extensions, but allowing them. Make the
153 new -std=legacy accept everything and warn about nothing.
154 * lang.opt (std=legacy): New F95 command line option.
155 * invoke.texi: Document both -std=f2003 and -std=legacy.
156 * gfortran.texi: Explain the two types of extensions and document
157 how they are affected by the various -std= command line options.
158
ec09945c
KH
1592005-05-30 Kazu Hirata <kazu@cs.umass.edu>
160
161 * trans-expr.c: Remove trailing ^M.
162
897f1a8b
KH
163 * trans-expr.c: Fix comment typos.
164
5b1a826c
PT
1652005-05-29 Paul Thomas <pault@gcc.gnu.org>
166
167 PR fortran/16939
168 PR fortran/17192
169 PR fortran/17193
170 PR fortran/17202
171 PR fortran/18689
172 PR fortran/18890
173 * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
174 length to temp_ss for character pointer array assignments.
175 * fortran/trans-expr.c (gfc_conv_variable): Correct errors in
176 dereferencing of characters and character pointers.
177 * fortran/trans-expr.c (gfc_conv_function_call): Provide string
178 length as return argument for various kinds of handling of return.
179 Return a char[]* temporary for character pointer functions and
180 dereference the temporary upon return.
181
c74a1edd 1822005-05-29 Janne Blomqvist <jblomqvi@vipunen.hut.fi>
4c73896d 183 Steven G. Kargl <kargls@comcast.net>
44998b65
JB
184
185 fortran/PR20846
186 * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
187
c9330b03
FXC
1882005-05-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
189
190 PR libfortran/20006
191 * io.c (format_item_1): Add check and extension warning for
192 $ edit descriptor.
193
cd66d1a1
SK
1942005-05-28 Steven G. Kargl <kargls@comcast.net>
195
196 * arith.c (gfc_arith_init_1): Fix off by one problem;
197 (gfc_check_integer_range): Chop extra bits in subnormal numbers.
198
eaef357b 1992005-05-28 Jerry DeLisle <jvdelisle@verizon.net>
4c73896d 200 Steven G. Kargl <kargls@comcast.net>
eaef357b
JD
201
202 * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
203 and CMPLX
204
4c1dd580
SK
2052005-05-27 Steven G. Kargl <kargls@comcast.net>
206
207 * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
208 like types in comparsion.
209
aa9c57ec
KH
2102005-05-26 Kazu Hirata <kazu@cs.umass.edu>
211
212 * data.c, parse.c, trans-array.c, trans-decl.c,
213 trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
214 trans.h: Fix comment typos. Follow spelling conventions.
215
ec8a1940
RS
2162005-05-22 Roger Sayle <roger@eyesopen.com>
217
218 * gfortran.texi: Document some more GNU extensions.
219
e88763d1
FXC
2202005-05-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
221
222 * error.c (gfc_warning): Fix typo in comment.
223
8f4dc7af
TK
2242005-05-18 Thomas Koenig <Thomas.Koenig@online.de>
225
226 PR libfortran/21127
227 * fortran/iresolve.c (gfc_resolve_reshape): Add
228 gfc_type_letter (BT_COMPLEX) for complex to
229 to resolved function name.
230
acc75ae3
EE
2312005-05-18 Erik Edelmann <erik.edelmann@iki.fi>
232
233 * array.c (gfc_match_array_constructor): Support [ ... ]
234 style array constructors.
235
e743d142
TS
2362005-05-18 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
237
238 * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
239 and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
240 * trans-intrinsic.c (build_fix_expr): Change 'op' argument
241 to correct enum type.
242 (gfc_conv_intrinsic_aint): Likewise. Clarify comment in front of
243 function. Add default case to switch, deal with FIX_TRUNC_EXPR
244 instead of FIX_FLOOR_EXPR.
245
1e7d0a64
FW
2462005-05-18 Feng Wang <fengwang@nudt.edu.cn>
247
248 PR fortran/20954
249 * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
250 build character length.
251
b4838d29
ZD
2522005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
253
254 * trans-types.c (gfc_array_range_type): New variable.
255 (gfc_init_types): Initialize gfc_array_range_type.
256 (gfc_get_array_type_bounds): Use gfc_array_range_type.
257
8de1f441
JJ
2582005-05-17 Jakub Jelinek <jakub@redhat.com>
259
260 PR fortran/15080
261 * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
262 arguments. If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
263 of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
264 just that as index.
265 (generate_loop_for_rhs_to_temp): Likewise.
266 (compute_overall_iter_number): Add INNER_SIZE_BODY argument.
267 It non-NULL, add it to body.
268 (allocate_temp_for_forall_nest_1): New function, split from
269 allocate_temp_for_forall_nest.
270 (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
271 propagate it down to compute_overall_iter_number. Use
272 allocate_temp_for_forall_nest_1.
273 (gfc_trans_assign_need_temp): Remove COUNT2. Call
274 compute_inner_temp_size into a new stmtblock_t. Adjust calls to
275 allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
276 and generate_loop_for_temp_to_lhs.
277 (gfc_trans_pointer_assign_need_temp): Adjust calls to
278 allocate_temp_for_forall_nest.
279 (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
280 stmtblock_t. Call compute_overall_iter_number just once, then
281 allocate_temp_for_forall_nest_1 twice with the same size.
282 Initialize mask indexes if nested_forall_info != NULL.
283 (gfc_trans_where_2): Initialize mask indexes before calling
284 gfc_trans_nested_forall_loop.
285
b078dfbf
FW
2862005-05-15 Feng Wang <fengwang@nudt.edu.cn>
287 Jerry DeLisle <jvdelisle@verizon.net>
288
289 PR fortran/17432
290 * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to
291 resolve ICE on assign of format label.
292 * trans-io.c (set_string): add fold-convert to properly
293 handle assigned format label in write.
294
cafa34aa
PB
2952005-05-13 Paul Brook <paul@codesourcery.com>
296
297 * trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
298
4588b604
TS
2992005-05-12 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
300
301 * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
302
b160dd28
TS
3032005-05-11 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
304
305 PR fortran/21260
306 * io.c (check_format): Look for literal characters inside
307 hollerith constant.
308
09e7f686
TS
3092005-05-11 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
310
311 * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
312 attribute from result symbol to function symbol.
3da7937d
TS
313 * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
314 instead of sym->result->attr.dimension.
09e7f686 315
973ff4c0
TS
3162005-05-10 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
317
318 PR fortran/20178
319 * gfortran.h (gfc_option): Add flag_f2c.
320 * invoke.texi: Document '-ff2c' command line option. Adapt
321 documentation for '-fno-second-underscore' and '-fno-underscoring'.
322 * lang.opt (ff2c): New entry.
323 * options.c (gfc-init_options): Set default calling convention
324 to -fno-f2c. Mark -fsecond-underscore unset.
325 (gfc_post_options): Set -fsecond-underscore if not explicitly set
326 by user.
327 (handle_options): Set gfc_option.flag_f2c according to requested
328 calling convention.
329 * trans-decl.c (gfc_get_extern_function_decl): Use special f2c
330 intrinsics where necessary.
331 (gfc_trans_deferred_vars): Change todo error to assertion.
332 * trans-expr.c (gfc_conv_variable): Dereference access
333 to hidden result argument.
334 (gfc_conv_function_call): Add hidden result argument to argument
335 list if f2c calling conventions requested. Slightly restructure
336 tests. Convert result of default REAL function to requested type
337 if f2c calling conventions are used. Dereference COMPLEX result
338 if f2c cc are used.
339 * trans-types.c (gfc_sym_type): Return double for default REAL
340 function if f2c cc are used.
341 (gfc_return_by_reference): Slightly restructure logic. Return
342 COMPLEX by reference depending on calling conventions.
343 (gfc_get_function_type): Correctly make hidden result argument a
344 pass-by-reference argument for COMPLEX. Remove old code which does
345 this for derived types.
346
7f42f27f
TS
3472005-05-09 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
348
349 * match.c (gfc_match_return): Only require space after keyword when
350 it is obligatory. Only give stdwarn to after matching is successful.
351 * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
352
357877ed
KH
3532005-05-08 Kazu Hirata <kazu@cs.umass.edu>
354
355 * intrinsic.texi: Fix typos.
356
a6334742
SK
3572005-05-07 Steven G. Kargl <kargls@comcast.net>
358
359 * intrinsic.texi: Document ASSOCIATED and ATAN2. Update Bessel function
360 description to include information about scalar arguments.
361
aa990c83
KH
3622005-05-03 Kazu Hirata <kazu@cs.umass.edu>
363
364 * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
365 match.h, trans-array.h: Update copyright.
366
22e8617b
TT
3672005-04-29 Tom Tromey <tromey@redhat.com>
368
369 * f95-lang.c (poplevel): Updated for change to build_block.
370
d198b59a
JJ
3712005-04-29 Jakub Jelinek <jakub@redhat.com>
372
373 PR fortran/13082
374 PR fortran/18824
375 * trans-expr.c (gfc_conv_variable): Handle return values in functions
376 with alternate entry points.
377 * resolve.c (resolve_entries): Remove unnecessary string termination
378 after snprintf. Set result of entry master.
379 If all entries have the same type, set entry master's type
380 to that common type, otherwise set mixed_entry_master attribute.
381 * trans-types.c (gfc_get_mixed_entry_union): New function.
382 (gfc_get_function_type): Use it for mixed_entry_master functions.
383 * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
384 * decl.c (gfc_match_entry): Set entry->result properly for
385 function ENTRY.
386 * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
387 __entry argument.
388 (build_entry_thunks): Handle return values in entry thunks.
389 Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
390 shared between multiple contexts.
391 (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
392 current_function_decl instead of sym->backend_decl. Skip over
393 entry master's entry id argument. For mixed_entry_master entries or
394 their results, return a COMPONENT_REF of the fake result.
395 (gfc_trans_deferred_vars): Don't warn about missing return value if
396 at least one entry point uses RESULT.
397 (gfc_generate_function_code): For entry master returning
398 CHARACTER, copy ts.cl->backend_decl to all entry result syms.
399 * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
400 values optional just because they are in entry master.
401
4c1f4f52
FXC
4022005-04-29 Francois-Xavier Coudert <coudert@clipper.ens.fr>
403
404 * gfortran.h (gfc_namespace): Add seen_implicit_none field,
405 Tobias forgot this in previous commit.
406
1a7bfcc3
PB
4072005-04-29 Paul Brook <paul@codesourcery.com>
408
409 * trans-expr.c (gfc_conv_expr_present): Fix broken assert. Update
410 comment.
411
438e1428
TS
4122005-04-29 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
413
414 * gfortran.h (gfc_namespace): Add seen_implicit_none field.
415 * symbol.c (gfc_set_implicit_none): Give error if there's a previous
416 IMPLICIT NONE, set seen_implicit_none.
417 (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
418
973a384d
TS
4192005-04-28 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
420
421 * gfortran.h (gfc_gsymbol): Make name a const char *.
422 * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
423 gfc_get_string.
424
781e1004
FXC
4252005-04-28 Francois-Xavier Coudert <coudert@clipper.ens.fr>
426
427 PR fortran/20865
428 * resolve.c (resolve_actual_arglist): Issue an error if a statement
429 functions is used as actual argument.
430
90aeadcb
FXC
4312005-04-27 Francois-Xavier Coudert <coudert@clipper.ens.fr>
432
433 PR fortran/21177
434 * interface.c (compare_parameter): Ignore type for EXPR_NULL
435 only if type is BT_UNKNOWN.
436
860c8f3b
PB
4372005-04-25 Paul Brook <paul@codesourcery.com>
438 Steven G. Kargl <kargls@comcast.net>
439
440 PR fortran/20879
441 * check.c (gfc_check_ichar_iachar): New function.
442 * instinsic.h (gfc_check_ichar_iachar): Add prototype.
443 * intrinsic.c (add_functions): Use it.
444 * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
445 character expression lengths.
446
eb83e811
TS
4472005-04-24 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
448
449 PR fortran/20059
450 * trans-common.c (translate_common): Cast offset and
451 common_segment->offset to type int for warning message.
452
d4ee4d25
DD
4532005-04-23 DJ Delorie <dj@redhat.com>
454
455 * trans-decl.c: Adjust warning() callers.
456
855a145c
TS
4572005-04-23 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
458
459 * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
beceb652 460 intermediate representation. Fix typo in comment.
855a145c 461
c41993e8
SK
4622005-04-21 Steven G. Kargl <kargls@comcast.net>
463
464 * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
465 simplify logic; Add a gcc_assert.
466
6c08eb63
SK
4672005-04-19 Steven G. Kargl <kargls@comcast.net>
468
469 * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
470
3010be13 4712005-04-19 Arnaud Desitter <arnaud.desitter@ouce.ox.ac.uk>
4c73896d 472 Steven G. Kargl <kargls@comcast.net>
3010be13
AD
473
474 * invoke.texi: Update -Waliasing description
475
009e94d4
FXC
4762005-04-19 Francois-Xavier Coudert <coudert@clipper.ens.fr>
477
478 PR fortran/16861
479 * resolve.c (resolve_variable): If e->symtree is not set, this
480 ought to be a FAILURE, and not a segfault.
481
29dc5138
PT
4822005-04-17 Paul Thomas <pault@gcc.gnu.org>
483
484 PR fortran/17472
485 PR fortran/18209
486 PR fortran/18396
487 PR fortran/19467
488 PR fortran/19657
8a731165
TS
489 * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
490 declaration for st_set_nml_var and st_set_nml_var_dim. Remove
491 declarations of old namelist functions.
29dc5138 492 (build_dt): Simplified call to transfer_namelist_element.
8a731165
TS
493 (nml_get_addr_expr): Generates address expression for start of
494 object data. New function.
495 (nml_full_name): Qualified name for derived type components. New
496 function.
497 (transfer_namelist_element): Modified for calls to new functions
498 and improved derived type handling.
29dc5138 499
a34938be
RG
5002005-04-17 Richard Guenther <rguenth@gcc.gnu.org>
501
502 * scanner.c (gfc_next_char_literal): Reset truncation flag
503 for lines ending in a comment for both fixed and free form.
504 (load_line): Do not set truncated flag if only truncating
505 the EOL marker.
506
ba1defa5
RG
5072005-04-15 Richard Guenther <rguenth@gcc.gnu.org>
508
509 PR fortran/14569
510 * gfortran.h (gfc_linebuf): Add truncated field.
511 * parse.c (next_statement): Handle warning for truncated
512 lines.
513 * scanner.c (load_line): Return if line was truncated.
514 No longer warn for truncated lines. Remove unused parameters.
515 (load_file): Store load_line return value to linebuf.
516 (gfc_error_recovery): Do not advance line at the end.
517
2d0aa65f
SK
5182005-04-14 Steven G. Kargl <kargls@comcast.net>
519
520 * gfortran.h (gfc_real_info): Add subnormal struct member.
521 * arith.c (gfc_arith_init_1): Set it.
522 (gfc_check_real_range): Use it.
523 * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
524
c33063e8
KH
5252005-04-12 Kazu Hirata <kazu@cs.umass.edu>
526
527 * simplify.c: Fix a comment typo.
528
0b026622
RS
5292005-04-11 Richard Sandiford <rsandifo@redhat.com>
530
531 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
532
9f32d037
TS
5332005-04-11 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
534
535 * simplify.c (gfc_simplify_nearest): Overhaul.
536
6892757c
KH
5372005-04-10 Kazu Hirata <kazu@cs.umass.edu>
538
539 * interface.c: Fix a comment typo.
540
51c3f0f6
FXC
5412005-04-10 Francois-Xavier Coudert <coudert@clipper.ens.fr>
542
543 * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
544 Fortran 95.
545
8e1fa5d6
SK
5462005-04-09 Steven G. Kargl <kargls@comcast.net>
547
548 * simplify.c (gfc_simplify_anint): Use mpfr_round()
549 (gfc_simplify_dnint): ditto.
550 (gfc_simplify_nint): ditto.
551
53d8a8ac
AP
5522005-04-09 Andrew Pinski <pinskia@physics.uc.edu>
553
554 PR fortran/13257
555 * io.c (check_format): Allow an optional comma
556 between descriptors.
557
835d64ab
FXC
5582005-04-09 Francois-Xavier Coudert <coudert@clipper.ens.fr>
559
560 * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
561 comment according to GNU coding style.
907d22fd
FXC
562 (gfc_match_if): Remove gfc_ prefix in call to
563 match_arithmetic_if.
835d64ab 564
f55e72ce
DN
5652005-04-08 Diego Novillo <dnovillo@redhat.com>
566
567 * match.c (gfc_match_arithmetic_if): Declare static.
568
43e1c5f7
FXC
5692005-04-08 Francois-Xavier Coudert <coudert@clipper.ens.fr>
570
571 PR fortran/17229
572 * match.c (gfc_match_arithmetic_if): New function to match an
573 arithmetic IF statement.
574 (gfc_match_if): Use gfc_match_arithmetic_if to match an
575 arithmetic IF statement embedded in a simple IF statement.
576
01ae8930
SK
5772005-04-07 Steven G. Kargl <kargls@comcast.net>
578
579 * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
580
53ae8e14
SK
5812005-04-06 Steven G. Kargl <kargls@comcast.net>
582
583 * invoke.texi: Remove documentation of -std=f90
584
ccccdb8d
TS
5852005-04-06 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
586
587 * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
588 non-pointer assignment.
589
bd024745
FW
5902005-04-05 Feng Wang <fengwang@nudt.edu.cn>
591
592 PR fortran/15959
593 PR fortran/20713
594
595 * array.c (resolve_character_array_constructor): New function. Set
596 constant character array's character length.
597 (gfc_resolve_array_constructor): Use it.
598 * decl.c (add_init_expr_to_sym): Set symbol and initializer character
599 length.
600 (gfc_set_constant_character_len): New function. Set constant character
601 expression according the given length.
602 * match.h (gfc_set_constant_character_len): Add prototype.
603
c6db4d01
FXC
6042005-04-04 Francois-Xavier Coudert <coudert@clipper.ens.fr>
605
606 * intrinsic.texi: BES?? functions are not in the f95 standard.
607
a5d58aeb
FXC
6082005-04-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
609
610 * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
611
f7cdcbf1
FXC
6122005-04-03 Francois-Xavier Coudert <coudert@clipper.ens.fr>
613
614 * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
615 BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
616
6230d276
SK
6172005-04-02 Steven G. Kargl <kargls@comcast.net>
618
619 * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
620
69de3b83
KH
6212005-04-01 Kazu Hirata <kazu@cs.umass.edu>
622
623 * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
624 trans.h: Fix comment typos.
625
3ae9eb27
SK
6262005-03-29 Steven G. Kargl <kargls@comcast.net>
627
628 * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
629 flag_default_integer, flag_default_real
630 * invoke.texi: Update documentation
631 * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
632 fdefault-integer-8, and fdefault-real-8 definitions.
633 * options.c (gfc_init_options): Set option defaults
634 (gfc_handle_option): Handle command line options.
635 * trans-types.c (gfc_init_kinds): Use options.
636
8bb46326
DN
6372005-03-29 Keith Besaw <kbesaw@us.ibm.com>
638
639 * f95-lang.c (builtin_function): Process the attrs parameter
640 and apply the "const" attribute to the builtin if found.
641
6b32f9fc
SK
6422005-03-27 Steven G. Kargl <kargls@comcast.net>
643
644 * intrinsic.texi: Document AIMAG, AINT, ALL
645
4c54501b
SK
6462005-03-26 Steven G. Kargl <kargls@comcast.net>
647
648 * arith.c (check_result): Fix illogical logic.
649
a3122424
CY
6502005-03-26 Canqun Yang <canqun@nudt.edu.cn>
651
652 * trans-common.c (create_common): Build RECORD_NODE for common blocks
653 contain no equivalence objects.
654 (add_equivalences): New argument saw_equiv.
655 (trans_common): New local variable saw_equiv.
656 (finish_equivalences): Add a local variable dummy, Always pass true
657 for the 3rd parameter to create_common.
658
7b4047a0
SK
6592005-03-25 Steven G. Kargl <kargls@comcast.net>
660
661 * intrinsic.texi: Fix "make dvi"
662
6632005-03-24 Steven G. Kargl <kargls@comcast.net>
8db2ba40
SK
664
665 * intrinsic.texi: New file.
666 * gfortran.texi: Include it; white space change; fix typo.
667
d101034c
JM
6682005-03-23 Joseph S. Myers <joseph@codesourcery.com>
669
670 * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
671
10c7a96f
SB
6722005-03-23 Steven Bosscher <stevenb@suse.de>
673
674 * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
675 * trans-array.c (gfc_trans_allocate_array_storage,
676 gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
677 gfc_conv_array_index_ref, gfc_trans_array_bound_check,
678 gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
679 gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
680 gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
681 gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
682 gfc_conv_expr_descriptor): Likewise.
683 * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
684 gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
685 * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
686 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
687 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
688 gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
689 gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
690 gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
691 gfc_conv_intrinsic_merge, prepare_arg_info,
692 gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
693 * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
694 gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
695 generate_loop_for_rhs_to_temp, compute_inner_temp_size,
696 allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
697 gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
698 Likewise.
699 * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
700 * trans.c (gfc_add_modify_expr): Likewise.
701
f77b6ca3
FXC
7022005-03-22 Francois-Xavier Coudert <coudert@clipper.ens.fr>
703
704 * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
705 gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
706 gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
707 gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
708 gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
709 gfc_check_perror): new functions to check newly implemented
710 g77 intrinsics.
711 * gfortran.h: adding symbols for new intrinsics.
712 * intrinsic.c (add_functions): adding new intrinsics.
713 (add_subroutines): adding new intrinsics.
714 * intrinsic.h: prototype for all checking and resolving
715 functions.
716 * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
717 gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
718 gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
719 gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
720 gfc_resolve_kill_sub, gfc_resolve_link_sub,
721 gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
722 gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
723 gfc_resolve_perror): new functions to resolve intrinsics.
724 * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
725 for new symbols.
726
e76d0ec6 7272005-03-19 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
9439ae41
TS
728
729 * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
730 in which the variable is declared.
731
732 PR fortran/18525
733 * resolve.c (was_declared): Also check for dummy attribute.
734
e76d0ec6 7352005-03-19 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
0de27aac
TS
736
737 * gfortran.h (arith): Remove ARITH_0TO0.
738 * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
739 (gfc_arith_power): Remove special casing of zero to integral
740 power zero.
741
ffee7efd
KG
7422005-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
743
744 * Make-lang.in (fortran-warn): Remove -Wno-error.
745 (expr.o-warn, resolve.o-warn, simplify.o-warn,
746 trans-common.o-warn): Specify -Wno-error.
747
df7df328
TS
7482005-03-17 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
749
750 * trans-array.c (gfc_trans_static_array_pointer,
751 get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
752 comment and formatting typos.
753
d3ec5cb6
FXC
7542005-03-17 Francois-Xavier Coudert <coudert@clipper.ens.fr>
755
756 * invoke.texi: Fix typos.
757
a1286ef5
ZW
7582005-03-15 Zack Weinberg <zack@codesourcery.com>
759
760 * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
761
223c8158
FW
7622005-03-15 Feng Wang <fengwang@nudt.edu.cn>
763
764 * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
765 to zero on label_tree.
766
ce2df7c6
FW
7672005-03-15 Feng Wang <fengwang@nudt.edu.cn>
768
769 PR fortran/18827
770 * io.c (resolve_tag): Add checking on assigned label.
771 (match_dt_format): Does not set symbol assign attribute.
772 * match.c (gfc_match_goto):Does not set symbol assign attribute.
773 * resolve.c (resolve_code): Add checking on assigned label.
774 * trans-common.c (build_field): Deals with common variable assigned
775 a label.
776 * trans-stmt.c (gfc_conv_label_variable): New function.
777 (gfc_trans_label_assign): Use it.
778 (gfc_trans_goto): Ditto.
779 * trans-io.c (set_string): Ditto.
780 * trans.h (gfc_conv_label_variable): Add prototype.
781
2bb02bf0
TS
7822005-03-14 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
783
784 PR fortran/20467
785 * symbol.c (check_conflict): A dummy argument can't be a statement
786 function.
787
f1b19062
ZD
7882005-03-14 Zdenek Dvorak <dvorakz@suse.cz>
789
790 * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
791 the argument of the shift to the unsigned type.
792
ee943062
TS
7932005-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
794
795 PR fortran/16907
796 * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
797
8f9c06ca
TS
7982005-03-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
799
800 PR fortran/20323
801 * resolve.c (gfc_resolve): Check if character lengths are
802 specification expressions.
803
bae88af6
TS
8042005-03-12 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
805
806 PR fortran/20361
807 * trans-array.c (gfc_stack_space_left): Remove unused variable.
808 (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
809 code.
810 * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
811 Remove declaration / prototype.
812 * trans-common.c (build_equiv_decl): Give union a name. Check if
813 it can be put on the stack.
814 * trans-decl.c (gfc_stack_space_left): Move function here.
815 (gfc_build_qualified_array): Fix comment typo.
816 * trans.h (gfc_put_var_on_stack): Add prototype.
817
5f42ddb0
KG
8182005-03-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
819
820 * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
821 * decl.c, trans.c: Don't use C++ style comments.
822 * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
823 ifsrc): Give names to enums and use ENUM_BITFIELD.
824 (gfc_access): Remove trailing comma.
825
87ebdf2f
SK
8262005-03-05 Steven G. Kargl <kargls@comcast.net>
827
828 PR 19936
829 * primary.c (match_complex_constant): Mangled complex constant may
830 be an implied do-loop. Give implied do-loop matcher a chance.
831
a1286ef5 8322005-03-05 Steven G. Kargl <kargls@comcast.net>
2c5ed587
SK
833
834 PR fortran/19754
835 * resolve.c (compare_shapes): New function.
836 (resolve_operator): Use it.
837
19db01bb
TS
8382005-03-05 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
839
840 * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
841 type for COMPLEX constants.
842
3852e8b8
TS
8432005-03-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
844
845 PR fortran/19673
846 * trans-expr.c (gfc_conv_function_call): Correctly dereference
847 argument from a pointer function also if it has a result clause.
848
8492005-03-04 Steven G. Kargl <kargls@comcast.net>
37e860a2
SK
850
851 * expr.c (gfc_copy_shape_excluding): Change && to ||.
852
4b9b6210
TS
8532005-03-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
854
855 * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
856 clarify comment.
857
2a4a7830
TS
8582005-02-28 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
859 (port from g95)
860
861 PR fortran/19479
862 * simplify.c (gfc_simplify_bound): Rename to ...
863 (simplify_bound): ... this and overhaul.
864
d436d3de
SK
8652005-02-28 Steven G. Kargl <kargl@gcc.gnu.org>
866
867 * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
868 (gfc_conv_intrinsic_function): update function calls
869
f4e7375a
SK
8702005-02-27 Steven G. Kargl <kargl@gcc.gnu.org>
871
872 PR fortran/20058
873 * trans-types.c (gfc_max_integer_kind): Declare
874 (gfc_init_kinds): Initialize it.
875 * gfortran.h (gfc_max_integer_kind): extern it.
876 * primary.c (match_boz_constant): Use it; remove gfortran extension
877 of kind suffixes on BOZ literal constants
878
879
5a95dfde
SK
8802005-02-27 Steven G. Kargl <kargls@comcast.net>
881
882 * arith.c (gfc_check_real_range): Remove multiple returns
883 (check_result): New function.
884 (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
885 gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
886
887
2054fc29
VR
8882005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
889
890 * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
891
9c6a7ecc
TS
892
8932005-02-24 Tobias Schl"uter <tobias.schlueter@physik.uni-meunchen.de>
894
895 Unrevert previously reverted patch. Adding this fix:
896 * module.c (find_true_name): Deal with NULL module.
897
f5e9e99c
TS
8982005-02-24 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
899
900 Revert yesterday's patch:
901 2005-02-23 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
902
903 * gfortran.h (gfc_component, gfc_actual_arglist, ...
904 ... argument. Copy string instead of pointing to it.
905
0366dfe9
TS
9062005-02-23 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
907
908 * gfortran.h (gfc_get_namespace): Add second argument to prototype.
909 * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
910 gfc_get_namespace.
911 * module.c (mio_namespace_ref, load_needed): Likewise.
912 * parse.c (parse_interface, parse_contained): Likewise. Here the
913 correct second argument matters.
914 * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
915 parent's implicit types if this is set.
916 (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
917 * trans-common.c (build_common_decl): Likewise.
918
d1303acd
TS
919 * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
920 formatting.
921 * symbol.c (gfc_set_default_type): Issue error only once, by setting
922 and checking 'untyped' attribute.
923
58b03ab2
TS
924 * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
925 fields into new struct 'op' inside the 'value' union.
926 * arith.c (eval_intrinsic): Adapt all users.
927 * dependency.c (gfc_check_dependency): Likewise.
928 * dump-parse-tree.c (gfc_show_expr): Likewise.
929 * expr.c (gfc_get_expr): Don't clear removed fields.
930 (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
931 gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
932 check_intrinsic_op): Adapt to new field names.
933 * interface.c (gfc_extend_expr): Likewise. Also explicitly
934 nullify 'esym' and 'isym' fields of new function call.
935 * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
936 Adapt to renamed structure fields.
937 * matchexp.c (build_node, match_level_1, match_expr): Likewise.
938 * module.c (mio_expr): Likewise.
939 * resolve.c (resolve_operator): Likewise.
940 (gfc_find_forall_index): Likewise. Only look through operands
941 if dealing with EXPR_OP
942 * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
943 * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
944 gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
945
f5e9e99c 946 [ Reverted ]
e9444bd5
TS
947 * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
948 'name' a 'const char *'.
949 (gfc_symbol): Likewise, also for 'module'.
950 (gfc_symtree): Make 'name' a 'const char *'.
951 (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
952 (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
953 'char *' argument.
954 (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
955 initialize 'SYM->module'.
956 * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
957 pointer instead of empty string.
958 * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
959 * interface.c (gfc_compare_types): Adapt check to account for possible
960 NULL pointer.
961 (compare_actual_formal): Check for NULL pointer instead of empty
962 string.
963 * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
a1286ef5 964 Add 'const' qualifier.
e9444bd5
TS
965 (conv_name): Return a heap allocated string.
966 (find_conv): Add 'const' qualifier to 'target'.
967 (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
968 (make_generic): Check for NULL pointer instead of empty string.
969 (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
970 (add_conv): No need to strcpy result from 'conv_name'.
971 (sort_actual): Check for NULL pointer instead of empty string.
972 * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
973 Adapt prototype.
974 * module.c (compare_true_names): Compare pointers instead of strings
975 for 'module' member.
976 (find_true_name): Initialize string fields with gfc_get_string.
977 (mio_pool_string): New function.
978 (mio_internal_string): Adapt comment.
979 (mio_component_ref, mio_component, mio_actual_arg): Use
980 'mio_pool_string' instead of 'mio_internal_string'.
981 (mio_symbol_interface): Add 'const' qualifier to string arguments.
982 Add level of indirection. Use 'mio_pool_string' instead of
983 'mio_internal_string'.
984 (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
985 (write_common, write_symbol): Use 'mio_pool_string' instead of
986 'mio_internal_string'.
987 (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
988 instead of empty string.
989 (write_operator, write_generic): Pass correct type variable to
990 'mio_symbol_interface'.
991 (write_symtree): Use 'mio_pool_string' instead of
992 'mio_internal_string'.
993 * primary.c (match_keyword_arg): Adapt check to possible
994 case of NULL pointer. Use 'gfc_get_string' instead of 'strcpy'.
995 * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
996 gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
997 'strcpy'.
998 (ambiguous_symbol): Check for NULL pointer instead of empty string.
999 (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
1000 arguments.
1001 * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
1002 pointer instead of empty string.
1003 * trans-decl.c (gfc_sym_mangled_identifier,
1004 gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
1005 gfc_get_symbol_decl): Likewise.
1006 * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
1007 argument. Copy string instead of pointing to it.
1008
f439764f
KH
10092005-02-23 Kazu Hirata <kazu@cs.umass.edu>
1010
1011 * intrinsic.h, st.c: Update copyright.
1012
eebc3ee0
SK
10132005-02-20 Steven G. Kargl <kargls@comcast.net>
1014
1015 * symbol.c: Typos in comments.
1016
687fcae7
SK
10172005-02-20 Steven G. Kargl <kargls@comcast.net>
1018
1019 * expr.c (gfc_type_convert_binary): Typo in comment.
1020
145cf79b 10212005-02-19 Steven G. Kargl <kargls@comcast.net>
a1286ef5 1022
145cf79b
SK
1023 * check.c (gfc_check_selected_int_kind): New function.
1024 * intrinsic.h: Prototype it.
1025 * intrinsic.c (add_function): Use it.
1026 * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
1027 BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
1028
c60d77d4 10292005-02-19 Steven G. Kargl <kargls@comcast.net>
a1286ef5 1030
c60d77d4
SK
1031 * check.c (gfc_check_int): improve checking of optional kind
1032 * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
1033
332e7efe 10342005-02-19 Steven G. Kargl <kargls@comcast.net>
a1286ef5 1035
332e7efe
SK
1036 * check.c (gfc_check_achar): New function
1037 * intrinsic.h: Prototype it.
1038 * intrinsic.c (add_function): Use it.
1039
1ac26262
TS
10402005-02-13 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1041
1042 * trans-stmt.c (generate_loop_for_temp_to_lhs,
1043 generate_loop_for_rhs_to_temp): Remove if whose condition is
1044 always true.
1045
1e6283cb
TS
10462005-02-12 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1047
1048 * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
1049 (gfc_use_derived): ... this function.
1050
c6a912da
RH
10512005-02-09 Richard Henderson <rth@redhat.com>
1052
1053 * f95-lang.c (gfc_init_builtin_functions): Call
1054 build_common_builtin_nodes; do not define any functions handled
1055 by it.
1056
eac33acc
TS
10572005-02-08 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1058
1059 * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
1060 EXPR_SUBSTRING.
1061 (gfc_is_constant_expr): Check 'ref' to determine if substring
1062 reference is constant.
1063 (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
1064 (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
1065 and 'op2'.
1066 * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
1067
231b2fcc
TS
10682005-02-07 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1069
1070 * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
1071 gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
1072 gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
1073 gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
1074 gfc_add_procedure): Add argument.
1075 * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
1076 gfc_match_null, match_type_spec, match_attr_spec,
1077 gfc_match_formal_arglist, match_result, gfc_match_function_decl):
1078 Update callers to match.
1079 (gfc_match_entry) : Likewise, fix comment typo.
1080 (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
1081 access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
1082 gfc_match_derived_decl): Update callers.
1083 * interface.c (gfc_match_interface): Likewise.
1084 * match.c (gfc_match_label, gfc_add_flavor,
1085 gfc_match_call, gfc_match_common, gfc_match_block_data,
1086 gfc_match_namelist, gfc_match_module, gfc_match_st_function):
1087 Likewise.
1088 * parse.c (parse_derived, parse_interface, parse_contained),
1089 primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
1090 * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
1091 * symbol.c (check_conflict, check_used): Add new 'name' argument,
1092 use when printing error message.
1093 (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
1094 gfc_add_generic, gfc_add_in_common, gfc_add_data,
1095 gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
1096 gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
1097 gfc_add_procedure): Add new 'name' argument. Pass along to
1098 check_conflict and check_used.
1099 (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
1100 gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
1101 gfc_add_pure, gfc_add_recursive, gfc_add_intent,
1102 gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
1103 argument in calls to any of the modified functions.
1104
706bb773
JM
11052005-02-06 Joseph S. Myers <joseph@codesourcery.com>
1106
1107 * gfortran.texi: Don't give last update date.
1108
61e067cc
RH
11092006-01-30 Richard Henderson <rth@redhat.com>
1110
1111 * options.c (gfc_init_options): Zero flag_errno_math.
1112
985aff9c
PB
11132005-01-29 Paul Brook <paul@codesourcery.com>
1114
1115 PR fortran/18565
1116 * check.c (real_or_complex_check): New function.
1117 (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
1118 * intrinsic.c (add_functions): Use new check functions.
1119 * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
1120 Add prototypes.
1121
f240b896
SK
11222005-01-29 Steven G. Kargl <kargls@comcast.net>
1123
1124 PR fortran/19589
1125 * expr.c (gfc_check_assign): Check for conformance of logical operands
1126
c006df4e
SB
11272004-01-27 Steven Bosscher <stevenb@suse.de>
1128
1129 * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
1130 TREE_USED for all labels.
1131 (gfc_trans_entry_master_switch): Use it instead of building a
1132 label by hand.
1133 * trans-io.c (add_case): Likewise.
1134 * trans-stmt.c (gfc_trans_integer_select): Likewise.
1135
69029c61
PB
11362004-01-23 Paul Brook <paul@codesourcery.com>
1137 Steven G. Kargl <kargls@comcast.net>
1138
1139 PR fortran/17941
1140 * arith.c (gfc_convert_real): Remove sign handling.
1141 * primary.c (match_digits): Allow whitespace after initial sign.
1142 (match_real_const): Handle signs here. Allow whitespace after
1143 initial sign. Remove dead code.
1144 (match_const_complex_part): Remove.
1145 (match_complex_part): Use match_{real,integer}_const.
1146 (match_complex_constant): Cross-promote integer types.
1147
58757957
JM
11482005-01-23 James A. Morrison <phython@gcc.gnu.org>
1149
1150 PR fortran/19294
1151 * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
1152 transpose_c8 for complex types.
1153
e7dc5b4f
KH
11542005-01-23 Kazu Hirata <kazu@cs.umass.edu>
1155
1156 * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
1157 trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
1158 trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
1159 Follow spelling conventions.
1160
dae24534
BD
11612005-01-22 Bud Davis <bdavis9659@comcast.net>
1162
1163 PR fortran/19313
1164 * trans-io.c (gfc_trans_inquire): Added code to support
1165 pad.
1166
19060788
SK
11672005-01-22 Steven G. Kargl <kargls@comcast.net>
1168
a1286ef5 1169 * intrinsic.c (make_alias): Add standard argument.
19060788
SK
1170 (add_functions): Update make_alias calls.
1171
1438a8c9
PB
11722005-01-22 Paul Brook <paul@codesourcery.com>
1173
1174 * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
1175
af30f793
PB
11762005-01-22 Paul Brook <paul@codesourcery.com>
1177
1178 * gfortran.h (gfc_check_access): Add prototype.
1179 * match.c (gfc_match_namelist): Remove TODO.
1180 * module.c (check_access): Rename ...
1181 (gfc_check_access): ... to this. Boolify. Update callers.
1182 * resolve.c (resolve_symbol): Check for private objects in public
1183 namelists.
1184
0dd973dd
PB
11852005-01-22 Paul Brook <paul@codesourcery.com>
1186
1187 * primary.c (gfc_match_rvalue): Only apply implicit type if variable
1188 does not have an explicit type.
1189 (gfc_match_variable): Resolve implicit derived types in all cases.
1190 Resolve contained function types from their own namespace, not the
1191 parent.
1192 * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
1193 checking. Resolve from the contained namespace, not the parent.
1194
6ba692b4
TS
11952005-01-22 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1196
1197 PR fortran/19543
1198 * trans-const.c (gfc_conv_constant_to_tree): Give logical
1199 constants the correct type.
1200
b8d5e926
TS
1201 PR fortran/19194
1202 * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
1203 length parameters.
1204 (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
1205 pointer fields.
1206
ec378180
KH
12072005-01-18 Kazu Hirata <kazu@cs.umass.edu>
1208
1209 * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
1210 gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
1211 match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
1212 scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
1213 trans-io.c, trans-stmt.c, trans.c: Update copyright.
1214
33d4098d
SB
12152005-01-17 Ira Rosen <irar@il.ibm.com>
1216
1217 * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
1218
dfbb4318
TS
12192005-01-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1220
1221 PR fortran/19182
1222 * error.c (error_char): Line-buffer errors / warnings.
1223
de46b505
TS
12242005-01-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1225
1226 * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
1227 unsigned issue. Use build_int_cst instead of converting
1228 integer_zero_node. Remove unnecessary conversion.
1229
5e3b8727
TS
1230 * trans-types.c (gfc_get_character_type_len): : Use
1231 gfc_charlen_type_node as basic type for the range field.
1232
e805a599
TS
1233 * trans-intrinsic.c (build_fixbound_expr,
1234 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
1235 gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
1236 gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
1237 of converting 'integer_zero_node' or 'integer_one_node'
1238 respectively.
1239 (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
1240 evade re-building.
1241 (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
1242 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
1243 'build_int_cst' instead of converting 'integer_zero_node' or
1244 'integer_one_node' respectively.
0da87370
TS
1245
1246 * trans-intrinsic.c (gfc_conv_intrinsic_index,
1247 gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
1248 'gfc'-prefix from local variable, remove dead code, use correct
1249 type when inserting argument.
1250
ef1b6bcd
TS
1251 * trans-intrinsic.c, trans-types.c: Update copyright years.
1252
5352b89f
SK
12532005-01-16 Steven G. Kargl <kargls@comcast.net>
1254
1255 PR 19168
1256 * resolve.c (check_case_overlap): Typo in comment.
1257 (validate_case_label_expr): Fix up kinds of case values
1258 (resolve_select): Properly handle kind mismatches.
1259
36c028f6
PB
12602004-01-16 Paul Brook <paul@codesourcery.com>
1261
1262 PR fortran/17675
1263 * trans-common.c (translate_common): Remove duplicate function call.
1264 (finish_equivalences): Preserve alignment when biasing offsets.
1265
da8309c6
TS
12662005-01-15 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de
1267
1268 * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
1269 ASCII-like character encoding.
1270
c224550f
SK
12712005-01-14 Steven G. Kargl <kargls@comcast.net>
1272
1273 * resolve.c (compare_case): Cleanup.
1274
6e06dac5
SK
12752005-01-14 Steven G. Kargl <kargls@comcast.net>
1276
1277 * resolve.c (compare_case): Give arguments correct type.
1278
43a5ef69
KH
12792005-01-13 Kazu Hirata <kazu@cs.umass.edu>
1280
1281 * iresolve.c, trans-common.c, trans-types.c: Fix comment
1282 typos.
1283
832ef1ce
PB
12842005-01-09 Paul Brook <paul@codesourcery.com>
1285
1286 PR fortran/17675
1287 * trans-common.c (current_common, current_offset): Remove.
1288 (create_common): Add head argument.
1289 (align_segment): New function.
1290 (apply_segment_offset): New function.
1291 (translate_common): Merge code from new_segment. Handle alignment.
1292 (new_segment): Remove.
1293 (finish_equivalences): Ensure proper alignment.
1294
92574caf
TS
12952005-01-08 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1296
1297 * trans-const.c: Don't include unused math.h.
1298
b36cd00b
TS
1299 * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
1300 gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
1301 gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
1302 trailing whitespace.
1303 (prepare_arg_info): Fix formatting, indenting and remove trailing
1304 whitespace.
1305 (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
27dfc9c4
TS
1306 trailing whitespace.
1307
1308 * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
1309 gfc_constant_result, gfc_range_check, gfc_arith_power,
1310 eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
1311 gfc_real2complex, gfc_complex2int, gfc_complex2real,
1312 gfc_complex2complex): Fix whitespace issues.
e6edaeb2 1313 * check.c (must_be, type_check, numeric_check, int_or_real_check,
27dfc9c4
TS
1314 logical_array_check, array_check, scalar_check, nonoptional_check,
1315 variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
1316 gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
1317 gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
1318 gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
1319 gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
1320 gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
1321 gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
1322 gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
1323 gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
1324 gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
1325 gfc_check_lbound, gfc_check_logical, min_max_args,
1326 gfc_check_min_max_integer, gfc_check_min_max_real,
1327 gfc_check_min_max_double, gfc_check_matmul,
1328 gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
1329 gfc_check_pack, gfc_check_precision, gfc_check_radix,
1330 gfc_check_range, gfc_check_real, gfc_check_repeat,
1331 gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
1332 gfc_check_set_exponent): Fix formatting issues.
1333 (gfc_check_size, gfc_check_sign): Alphabetize function order,
1334 remove whitespace-only line.
1335 (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
1336 gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
1337 gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
1338 gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
1339 gfc_check_random_number, gfc_check_random_seed,
1340 gfc_check_second_sub, gfc_check_system_clock,
1341 gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
1342 gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
1343 gfc_check_unlink_sub): Fix formatting issues.
a1286ef5 1344
779fae71
TS
13452005-01-08 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
1346
1347 * gfortran.h: Remove outdated comment. Don't include stdio.h
1348 explicitly.
1349
12d3e34b
TS
13502005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1351
1352 * gfortranspec.c (lang_specific_driver): Change year to 2005 in
1353 output of 'gfortran --version'.
1354
d22e4895
SK
13552005-01-03 Steven G. Kargl <kargls@comcast.net>
1356
1357 * arith.c: Add system.h; remove string.h
1358 * decl.c: Ditto
1359 * matchexp.c: Ditto
1360 * parse.c: Ditto
1361 * resolve.c: Ditto
1362 * st.c: Ditto
1363 * check.c: Remove stdlib.h and stdarg.h
1364 * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
1365 * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
1366 * f95-lang.c: Add system.h; remove stdio.h
1367 * interface.c: Add system.h; remove stdlib.h and string.h
1368 * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
1369 * io.c: Remove string.h
1370 * simplify.c: Ditto
1371 * match.c: Remove stdarg.h and string.h
1372 * misc.c: Update copyright; add system.h; remove stdlib.h,
1373 string.h, and sys/stat.h
1374 * module.c: Add system.h; remove string.h, stdio.h, errno.h,
1375 unistd.h, and time.h
1376 * option.c: Remove string.h and stdlib.h
1377 * primary.c: Ditto
1378 * scanner.c: Update copyright; add system.h; remove stdlib.h,
1379 stdio.h, string.h, and strings.h
1380 * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
1381 * trans-array.c: Remove stdio.h and gmp.h
1382 * trans-const.c: Ditto
1383 * trans-expr.c: Ditto
1384 * trans-io.c: Ditto
1385 * trans-stmt.c: Ditto
1386 * trans.c: Ditto
1387 * trans-intrinsic.c: Remove stdio.h and string.h
1388
410d1a45
SK
13892004-12-29 Steven G. Kargl <kargls@comcast.net>
1390
1391 * gfortran.h (gfc_case): fix typo in comment.
1392
a1286ef5 13932004-12-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
56746a07
TS
1394
1395 * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
1396 logical shift. Call fold. Remove 0-bit shift shortcut.
1397 (gfc_conv_intrinsic_ishftc): Convert first argument to at least
1398 4 bytes bits. Convert 2nd and 3rd argument to 4 bytes. Convert
1399 result if width(arg 1) < 4 bytes. Call fold.
1400
e98a8b5b
TS
1401 PR fortran/19032
1402 * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
1403 in front of function to match the standard. Correct handling
1404 of MODULO.
1405
14062004-12-27 Andrew Pinski <pinskia@physics.uc.edu>
1407
1408 * trans-expr.c (gfc_conv_cst_int_power): Only check for
1409 flag_unsafe_math_optimizations if we have a float type.
1410
f300468a
SK
14112004-12-23 Steven G. Kargl <kargls@comcast.net>
1412
1413 * gfortran.texi: Fix typo.
1414
4fdb5c71
TS
14152004-12-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1416
1417 * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
1418 comment typo.
1419
172b8799
TS
14202004-12-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1421
1422 PR fortran/18993
1423 * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
1424 (gfc_match_nullify): Make sure that ')' is in front of the end of
1425 statement.
1426
e2435498
TS
1427 * scanner.c (skip_fixed_comments): Fix typo in comment preceding
1428 function.
1429
6b25a558
RH
14302004-12-14 Richard Henderson <rth@redhat.com>
1431
1432 * gfortran.h (gfc_expr.function.name): Make const.
1433 (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1434 (gfc_get_string): Update prototype.
1435 * iresolve.c: Include tree.h.
1436 (string_node, HASH_SIZE, string_head, hash): Remove.
1437 (gfc_get_string): Use vsnprintf, get_identifier.
1438 (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
1439 * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
1440 (gfc_done_1): Don't call gfc_iresolve_done_1.
1441 * module.c (mio_allocated_string): Take and return const char *,
1442 instead of modifying char**.
1443 (mio_expr): Update to match.
1444 * resolve.c (pure_function): Constify name argument.
1445 (resolve_function): Constify name.
1446 * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
1447
7f68c75f
RH
14482004-12-12 Richard Henderson <rth@redhat.com>
1449
1450 * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
1451 gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
1452 gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
1453 gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
1454 gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
1455 gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
1456 gfc_resolve_unpack: Use PREFIX.
1457
23acf4d4
TS
14582004-12-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1459
1460 PR fortran/18869
1461 * match.c (gfc_match_common): Skip whitespace.
1462
c3d003d2
SK
14632004-12-12 Steven G. Kargl <kargls@comcast.net>
1464
1465 PR fortran/16581
1466 * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
1467 gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
1468 integer kind check; Issue error for -std=f95 when needed.
1469 * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
1470 GFC_STD_F95.
1471 * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
1472 Promote arguments to same kind.
1473
8d5cfa27
SK
14742004-12-12 Steven G. Kargl <kargls@comcast.net>
1475 Paul Brook <paul@codesourcery.com>
1476
1477 PR fortran/16222
1478 * resolve.c (gfc_resolve_iterator_expr): New function.
1479 (gfc_resolve_iterator): Use it. Add real_ok argument. Convert
1480 start, end and stride to correct type.
1481 (resolve_code): Pass extra argument.
1482 * array.c (resolve_array_list): Pass extra argument.
1483 * gfortran.h (gfc_resolve): Add prototype.
1484 * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
1485 Handle real type iterators.
1486
6ee42e01 14872004-12-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
49e4d580
TS
1488
1489 PR fortran/17175
1490 * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
1491 same kind as C's 'int'.
6ee42e01 1492 (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
49e4d580 1493
323c74da
RH
14942004-12-08 Richard Henderson <rth@redhat.com>
1495
1496 * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
1497 to the output expression.
1498 * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
1499 warning conversion.
1500 (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
1501 to index kind.
1502
40f2165e
TS
15032004-12-08 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1504
baa8edda 1505 PR fortran/18826
40f2165e
TS
1506 * resolve.c (resolve_code): Impose correct restrictions on
1507 assigned variable.
1508
59ce85b5
TS
1509 * decl.c (gfc_match_end): Use locus of END when eos is an error.
1510
df65f093
SK
15112004-12-02 Steven G. Kargl <kargls@comcast.net>
1512 Paul Brook <paul@codesourcery.com>
1513
1514 * check.c (gfc_check_flush, gfc_check_fnum): New functions.
1515 (gfc_check_fstat, gfc_check_fstat_sub): New functions.
1516 (gfc_check_stat, gfc_check_stat_sub): New functions.
1517 * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
1518 * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
1519 fstat, and stat to intrinsics symbol tables.
1520 * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
1521 (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
1522 * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
1523 (gfc_resolve_stat, gfc_resolve_flush): New functions.
1524 (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
1525 * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
1526
1270d633
SK
15272004-12-02 Steven G. Kargl <kargls@comcast.net>
1528
1529 * intrinsic.c: Fix and add comments, fix function declarations
1530 (OPTIONAL,REQUIRED): New symbols
1531 (add_functions,add_subroutines): Use symbols
1532 (gmp.h): Remove unused include
1533
597cdf4f
JM
15342004-11-25 Joseph S. Myers <joseph@codesourcery.com>
1535
1536 * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
1537 in diagnostics.
1538
39afeb1a
SB
15392004-11-24 Steven Bosscher <stevenb@suse.de>
1540
1541 * options.c (gfc_post_options): Don't clear flag_inline_functions.
1542
d8fe26b2
SK
15432004-11-20 Steven G. Kargl <kargls@comcast.net>
1544
1545 * check.c (gfc_check_getcwd_sub): Fix seg fault.
1546
1547 * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
1548 gfc_check_unlink,gfc_check_unlink_sub): New functions
1549 * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
1550 * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
1551 exit to intrinsics symbol tables.
1552 * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
1553 gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
1554 gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
1555 gfc_resolve_unlink_sub): Add and sort prototypes.
1556 * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
1557 gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
1558 * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
1559
40b026d8
PB
15602004-11-16 Paul Brook <paul@codesourcery.com>
1561
1562 PR fortran/13010
1563 * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
1564 (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
1565 * trans-types.c (gfc_get_dtype): Accept array type rather than element
1566 type.
1567 (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
1568 (gfc_get_array_type_bounds): Ditto.
1569 (gfc_get_derived_type): Recurse into derived type pointers.
1570 * trans-types.h (gfc_get_dtype): Add prototype.
1571 * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
1572
c4759ce3
PB
15732004-11-15 Paul Brook <paul@codesourcery.com>
1574
1575 * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
1576
96654664
PB
15772004-11-10 Paul Brook <paul@codesourcery.com>
1578
1579 PR fortran/18375
1580 * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
1581 * trans-io.c (transfer_array_component): Ditto.
1582
851739ea
PB
15832004-11-10 Paul Brook <paul@codesourcery.com>
1584
1585 * invoke.texi: Fix typo.
1586
f7b529fa
KH
15872004-11-08 Kazu Hirata <kazu@cs.umass.edu>
1588
1589 * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
1590 gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
1591 module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
1592 trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
1593 trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
1594
c1df75d1
TS
15952004-11-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1596
1597 PR fortran/18023
1598 * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
1599
882f2b8e
KH
16002004-11-06 Kazu Hirata <kazu@cs.umass.edu>
1601
1602 * gfortranspec.c: Replace GNU CC with GCC.
1603
20a209b5
TS
16042004-11-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1605
1606 * gfortranspec.c (lang_specific_driver): Change year to 2004.
1607
ca0e9281
TS
16082004-11-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1609
1610 PR fortran/18111
1611 * trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
1612 hidden parameters.
1613
adf3ed3f
TS
16142004-11-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1615
1616 PR fortran/15164
1617 * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
1618 module procedures as if they were module variables.
1619
36f4d144
TS
16202004-11-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1621
1622 PR fortran/17535
1623 PR fortran/17583
1624 PR fortran/17713
1625 * module.c (write_symbol1): Set module_name for dummy arguments.
1626
9e660c49
PB
16272004-11-02 Paul Brook <paul@codesourcery.com>
1628
1629 * intrinsic.c (check_intrinsic_standard): Include error locus.
1630 Remove VLA.
1631 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
1632 locus to check_intrinsic_standard.
1633
b7892582
JB
16342004-10-31 Janne Blomqvist <jblomqvi@cc.hut.fi>
1635
1636 PR fortran/17590
1637 * gfortran.h: Change GFC_STD_* flags to more appropriate
1638 ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
1639 gfc_option_t): Add field for warning about use of nonstandard
1640 intrinsics.
1641 * intrinsic.c (add_sym): Add parameter for standard version, check
1642 this against current standard.
1643 (add_sym_0): Pass standard parameter to add_sym.
1644 (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
1645 (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
1646 (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
1647 (make_generic): Add parameter for standard, check this
1648 against currently selected standard.
1649 (add_functions, add_subroutines): Add parameter to tell which
1650 standard an intrinsic belongs to.
1651 (check_intrinsic_standard): New function.
1652 (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
1653 (gfc_intrinsic_sub_interface): Ditto.
1654 * lang.opt: Add Wnonstd-intrinsics option.
1655 * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
1656 init new warning.
1657 (set_Wall): Add warning about nonstd intrinsics.
1658 (gfc_handle_option): Change to use new GFC_STD_* flags,
1659 handle new warning.
1660 * invoke.texi: Update manual to include -Wnonstd-intrinsics.
1661
f88cf205
AP
16622004-10-30 Andrew Pinski <pinskia@physics.uc.edu>
1663
1664 * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
1665
b7398e72
TS
16662004-10-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1667
1668 * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
1669
bf737879
TS
16702004-10-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1671
1672 * trans.c (gfc_trans_code): Set global locus after recursing. Fix
1673 comment typo.
1674
7a003d8e
CY
16752004-10-30 Canqun Yang <canqun@nudt.edu.cn>
1676
a1286ef5 1677 * check.c (gfc_check_rand): Allow missing optional argument.
7a003d8e
CY
1678 (gfc_check_irand): Ditto.
1679 * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
1680
be3a985e
SRL
16812004-10-28 Scott Robert Ladd <scott.ladd@coyotegulch.com>
1682
1683 PR fortran/13490, PR fortran/17912
1684 * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
1685 * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
7a003d8e 1686 * gcc/fortran/arith.c: Added support for an "asymmetric integer"
be3a985e
SRL
1687 warning when compiling with pedantic.
1688 * gcc/fortran/arith.c: Set minimum integer values to reflect
1689 realities of two's complement signed integers. Added
1690 pedantic minimum.
1691
974ede64
AP
16922004-10-17 Andrew Pinski <pinskia@physics.uc.edu>
1693
1694 * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
1695 (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
1696 link it in.
1697
19e4c59d
TS
16982004-10-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1699
1700 * trans-decl.c (generate_local_decl): Simplify logic, fix comment
1701 typo.
1702 (gfc_generate_function_code): Fix formatting issue.
1703
711f8369
TS
17042004-10-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1705
1706 * module.c: Fix formatting issues.
1707
5c76089a
TS
17082004-10-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1709
1710 * module.c (mio_interface_rest): Set where member of interface
1711 while loading.
1712
2d0b4bcd
AP
17132004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
1714
1715 PR fortran/17901
1716 * options.c (gfc_handle_option): Add break after handing the
1717 J/M option.
1718
26810721
TS
17192004-10-08 Tobias Schlueter <tobias.shclueter@physik.uni-muenchen.de>
1720
1721 * arith.c: Fix formatting issues.
a1286ef5 1722
edbfca8f
TS
17232004-10-07 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1724
1725 PR fortran/17676
1726 * resolve.c (resolve_operator): Use correct operator name in message.
1727
5d874166
TS
17282004-10-07 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1729
1730 * primary.c (match_boz_constant): Allow kind parameter suffixes.
1731 Move standard warning further to the front.
1732
54c2d931
KH
17332004-10-07 Kazu Hirata <kazu@cs.umass.edu>
1734
1735 * trans-stmt.c: Fix a comment typo.
1736
2b58638b
PB
17372004-10-07 Paul Brook <paul@codesourcery.com>
1738
1739 PR fortran/17678
1740 * trans-array.c (gfc_trans_deferred_array): Leave use associated
1741 variables alone.
1742
5d24a977
TS
17432004-10-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1744
1745 PR fortran/17568
1746 * simplify.c (twos_complement): New function.
1747 (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
1748
c45abcaf
TS
1749 * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
1750
fbdad37d
PB
17512004-10-06 Paul Brook <paul@codesourcery.com>
1752
1753 * trans-stmt.c (gfc_trans_simple_do): New function.
1754 (gfc_trans_do): Use it. Evaluate iteration bounds before entering
1755 loop. Update comments.
1756
58c5b409
TS
17572004-10-04 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1758
1759 PR fortran/17283
1760 * iresolve.c (gfc_resolve_pack): Choose function depending if mask
1761 is scalar.
1762
ee569894
TS
1763 PR fortran/17631
1764 * intrinsic.c (add_sym_5): Remove.
1765 (add_subroutines): Add resolution function for MVBITS.
1766 * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
1767 MVBITS
1768 * iresolve.c (gfc_resolve_mvbits): New function.
1769 (gfc_resolve_random_number): Remove empty line at end of function.
1770
73a014b5
TS
1771 * trans-const.c (gfc_build_cstring_const): New function.
1772 (gfc_init_cst): Use new function.
1773 * trans-const.h (gfc_build_cstring_const): Add prototype.
1774 * trans-io.c (set_string, set_error_locus): Use new function.
1775 * trans-stmt.c (gfc_trans_goto): Use new function.
a1286ef5 1776
73a014b5
TS
1777 PR fortran/17708
1778 * parse.c (accept_statement): Don't treat END DO like END IF and
1779 END SELECT.
1780 (parse_do_block): Generate possible END DO label inside END DO
1781 block.
1782
5b1374e9
TS
1783 PR fortran/17776
1784 * check.c (gfc_check_system_sub): New function.
1785 * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
1786 * intrinsic.c (add_functions): Add 'system'.
1787 (add_subroutines): Add 'system'.
1788 * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
1789 Move prototypes to other suborutines.
1790 (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
1791 Add prototype.
1792 (gfc_resolve_system_clock): Fix formatting of prototype.
1793 * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
1794 functions.
1795 * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
1796 GFC_ISYM_SYSTEM.
1797
d7d528c8
ES
17982004-10-04 Erik Schnetter <schnetter@aei.mpg.de>
1799
1800 * scanner.c (preprocessor_line): Accept preprocessor lines without
1801 file names. Check file names for closing quotes. Handle escaped
1802 quotes in file names.
1803
ca2940c3
TS
18042004-10-04 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1805 Paul Brook <paul@codesourcery.com>
1806
1807 * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
1808 Use gfc_get_expr_charlen.
1809 * trans-expr.c (gfc_get_expr_charlen): New function.
1810 * trans.h (gfc_get_expr_charlen): Add prototype.
1811
b805ea17
KH
18122004-10-04 Kazu Hirata <kazu@cs.umass.edu>
1813
1814 * trans-intrinsic.c: Fix a comment typo.
1815
03ddaf35
TS
18162004-10-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1817
1818 * simplify.c (range_check): Remove blank line at beginning of function.
1819 (gfc_simplify_dint): Same at end of function.
1820 (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
1821 (gfc_simplify_bound): Fix indentation.
1822 (gfc_simplify_log10): Simplify calculation.
1823 (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
1824 of function.
1825 (gfc_simplify_nearest): Same at end of function.
1826 (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
1827 function.
1828 (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
1829 gfc_simplify_spacing): Simplify calulations.
1830
046dcd57
FW
18312004-10-03 Feng Wang <fengwang@nudt.edu.cn>
1832
1833 * trans-intrinsic.c: Fix comments on spacing and rrspacing
1834 (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
1835
0f0377f6
JH
18362004-10-01 Jan Hubicka <jh@suse.cz>
1837
1838 * f95-lang.c (gfc_expand_function): Update call of
1839 tree_rest_of_compilation.
1840 * trans-decl.c (gfc_generate_constructors): Likewise.
1841
68629d16
TS
18422004-09-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1843
1844 * trans-intrinsic.c: Comment fixes.
1845
75d17889
TS
18462004-09-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1847
1848 * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
1849
206fb0a7
TS
18502004-09-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1851
1852 * trans-types.c (gfc_return_by_reference): Remove superfluous
1853 assertion.
1854
c0c07d7b
TS
1855 * intrinsic.h (gfc_resolve_getcwd): Update prototype.
1856 * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
1857
1858 PR fortran/17615
1859 * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
1860 function to determine return type.
a1286ef5 1861
8f235343
JH
18622004-09-20 Jan Hubicka <jh@suse.cz>
1863
1864 * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
1865 tree.
1866 (gfc_generate_function_code): Likewise.
1867
da89fba8
TS
18682004-09-20 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1869
1870 PR fortran/15957
1871 * simplify.c (gfc_simplify_reshape): Set shape of return value
1872 correctly.
1873
6615c446
JO
18742004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
1875 Zack Weinberg <zack@codesourcery.com>
1876
1877 * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
1878 enumeration constants.
1879
4cdf7223
PB
18802004-09-17 Paul Brook <paul@codesourcery.com>
1881
1882 * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
1883 (gfc_linebuf_header_size): Define.
1884 * scanner.c (load_file): Use it.
1885
1f2959f0
KH
18862004-09-16 Kazu Hirata <kazu@cs.umass.edu>
1887
1888 * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
1889 interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
1890 resolve.c, scanner.c, trans-array.c, trans-array.h,
1891 trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
1892 trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
1893 trans.h: Fix comment typos. Follow spelling conventions.
1894
d2ccf6aa
VL
18952004-09-16 Victor Leikehman <lei@il.ibm.com>
1896
1897 PR/15364
1898 * trans-io.c (transfer_array_component): New function.
1899 (transfer_expr): For array fields, call transfer_array_component.
1900
de787a96
KH
19012004-09-16 Kazu Hirata <kazu@cs.umass.edu>
1902
1903 * gfortran.texi: Fix a typo.
1904
f13ab1ee
AL
19052004-09-15 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
1906
1907 * parse.c (eof_buf): Rename eof to eof_buf.
1908 (unexpected_eof): Same.
1909 (gfc_parse_file): Same.
1910
0110c1ec
SK
19112004-09-15 Steven G. Kargl <kargls@comcast.net>
1912
1913 * check.c (gfc_check_getcwd_sub): New function.
1914 * gfortran.h (GFC_ISYM_GETCWD): New symbol.
1915 * intrinsic.c (add_functions): Add function definition;
1916 Use symbol.
1917 * intrinsic.c (add_subroutines): Add subroutine definitions.
1918 * intrinsic.h: Add prototypes.
1919 * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
1920 New functions.
1921 * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
1922
4672f86a
TS
19232004-09-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1924
1925 PR fortran/16485
1926 * module.c (write_symbol): Don't fill in module name here.
1927 (write_symbol0): Fill in here instead.
1928
13795658
KH
19292004-09-14 Kazu Hirata <kazu@cs.umass.edu>
1930
1931 * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
1932 trans-array.c, trans-common.c, trans-expr.c,
1933 trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
1934 comment typos. Follow spelling conventions.
1935
4d28e183
PB
19362004-09-09 Paul Brook <paul@codesourcery.com>
1937
1938 * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
1939
6e45f57b
PB
19402004-09-08 Paul Brook <paul@codesourcery.com>
1941
1942 * array.c: Don't include assert.h.
1943 * data.c: Don't include assert.h. Replace assert and abort with
1944 gcc_assert and gcc_unreachable.
1945 * dependency.c: Ditto.
1946 * f95-lang.c: Ditto.
1947 * iresolve.c: Ditto.
1948 * resolve.c: Ditto.
1949 * simplify.c: Ditto.
1950 * symbol.c: Ditto.
1951 * trans-array.c: Ditto.
1952 * trans-common.c: Ditto.
1953 * trans-const.c: Ditto.
1954 * trans-decl.c: Ditto.
1955 * trans-expr.c: Ditto.
1956 * trans-intrinsic.c: Ditto.
1957 * trans-io.c: Ditto.
1958 * trans-stmt.c: Ditto.
1959 * trans-types.c: Ditto.
1960 * trans.c: Ditto.
1961
c8cc8542
PB
19622004-09-07 Per Bothner <per@bothner.com>
1963 Paul Brook <paul@codesourcery.com>
1964
1965 * error.c (show_locus): Handle mapped locations.
1966 * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
1967 * gfortran.h: Include input.h.
1968 (struct gfc_linebuf): Use source_location.
1969 * scanner.c (get_file): Initialize linemap.
1970 (preprocessor_line): Pass extra argument to get_file.
1971 (load_file): Ditto. Setup linemap.
1972 (gfc_new_file): Handle mapped locations.
1973 * trans-common.c (build_field, build_equiv_decl, build_common_decl):
1974 Set decl source locations.
1975 (gfc_trans_common): Set blank common block location.
1976 * trans-decl.c (gfc_set_decl_location): New function.
1977 (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
1978 (trans_function_start): Move call to gfc_set_backend_locus..
1979 (build_function_decl): ... to here.
1980 (build_entry_thunks): Set and restore the backend locus.
1981 (gfc_generate_constructors): Remove excess arguments to
1982 init_function_start.
1983 (gfc_generate_block_data): Add comments. Set the decl locus.
1984 * trans-io.c (set_error_locus): Handle mapped locations.
1985 * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
1986 (gfc_trans_code): Use SET_EXPR_LOCATION.
1987 (gfc_generate_code): Override the location of the new symbol.
1988 * trans.h (gfc_set_decl_location): Add prototype.
1989
4c97f95a
PB
19902004-08-31 Paul Brook <paul@codesourcery.com>
1991
1992 * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
1993
c3d0559d
TS
19942004-09-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1995
1996 PR fortran/15327
1997 * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
1998 strings.
1999
0e6928d8
TS
20002004-09-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2001
2002 PR fortran/16400
2003 PR fortran/16404
2004 (port from g95)
2005 * resolve.c (resolve_transfer): New function.
2006 (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
2007
149a42dd
TS
20082004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2009
2010 PR fortran/16579
2011 * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
2012 unsigned char.
2013
c4dd5a8d
TS
20142004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2015
2016 * CONTRIB, NEWS, README, TODO: Remove obsolete files.
2017
cf73cdac
TS
20182004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2019
2020 PR fortran/17244
2021 * trans-types.c (gfc_return_by_reference): Remove TODO error,
2022 add comment pointing out possible issue WRT compatibility with g77.
2023
d7177ab2
TS
20242004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2025
2026 * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
2027 all occurences of 'gfc_strlen_type_node' by
2028 'gfc_charlen_type_node'.
2029 * trans-types.h: Same. Also update comment accordingly.
2030
d1d61a00
TS
20312004-08-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2032
2033 * primary.c: Update copyright boilerplate to say GCC.
f36327db 2034 * f95-lang.c: Change initial comment to say gfortran.
d1d61a00 2035
da17f559
PB
20362004-08-31 Paul Brook <paul@codesourcery.com>
2037
2038 * trans-types.h: Add comments.
2039 (intmax_type_node, string_type_node, const_string_type_node): Remove.
2040
e2cad04b
RH
20412004-08-30 Richard Henderson <rth@redhat.com>
2042
2043 * Make-lang.in (fortran/f95-lang.o): Update dependencies.
2044 (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
2045 * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
2046 c_long, c_long_long.
2047 (gfc_logical_info): Add c_bool.
2048 (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
2049 * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
2050 rather than gfc_int[48]_type_node for allocate choice.
2051 * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
2052 local copies of some kind type nodes.
2053 (gfc_build_builtin_function_decls): Likewise.
2054 * trans-expr.c (gfc_conv_power_op): Likewise.
2055 * trans-intrinsic.c (gfc_conv_intrinsic_index,
2056 gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
2057 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
2058 * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
2059 gfc_trans_character_select, gfc_trans_allocate): Likewise.
2060 * trans-io.c (gfc_pint4_type_node): Move into ...
2061 (gfc_build_io_library_fndecls): ... here. Cache local copies of
2062 some kind type nodes.
2063 * trans-types.c (gfc_type_nodes): Remove.
2064 (gfc_character1_type_node, gfc_strlen_type_node): New.
2065 (gfc_integer_types, gfc_logical_types): New.
2066 (gfc_real_types, gfc_complex_types): New.
2067 (gfc_init_kinds): Fill in real mode_precision.
2068 (gfc_build_int_type, gfc_build_real_type): New.
2069 (gfc_build_complex_type, gfc_build_logical_type): New.
2070 (c_size_t_size): New.
2071 (gfc_init_types): Loop over kinds.
2072 (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
2073 (gfc_get_complex_type, gfc_get_logical_type): Likewise.
2074 (gfc_get_character_type_len): Likewise.
2075 (gfc_type_for_size): Loop over kinds; use a reduced set of
2076 unsigned type nodes.
2077 (gfc_type_for_mode): Loop over kinds.
2078 (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
2079 (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
2080 * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
2081 F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
2082 F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
2083 F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
2084 F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
2085 F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
2086 gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
2087 gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
2088 gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
2089 gfc_complex8_type_node, gfc_complex16_type_node,
2090 gfc_logical1_type_node, gfc_logical2_type_node,
2091 gfc_logical4_type_node, gfc_logical8_type_node,
2092 gfc_logical16_type_node, gfc_strlen_kind): Remove.
2093 (gfc_character1_type_node): Turn in to a variable.
2094 (gfc_strlen_type_node): Likewise.
2095
0de4325e
TS
20962004-08-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2097
2098 * gfortran.h (gfc_namespace): Add new field is_block_data.
2099 * parse.c (accept_statement): Remove special handling for BLOCK DATA.
2100 (parse_block_data): Record BLOCK DATA name, set is_block_data field.
2101 * trans.c (gfc_generate_code): Handle BLOCK DATA units.
2102 * trans.h (gfc_generate_block_data): Add prototype.
2103 * trans-decl.c (gfc_generate_block_data): New function.
2104
04204c2f
RH
21052004-08-29 Richard Henderson <rth@redhat.com>
2106
2107 * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
2108 * trans-types.c (gfc_init_kinds): Reject integer kinds larger
2109 than two HOST_WIDE_INT.
2110
294fbfc8
TS
21112004-08-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2112
2113 PR fortran/13910
2114 * decl.c (free_variable, free_value, gfc_free_data, var_list,
2115 var_element, top_var_list, match_data_constant, top_val_list,
2116 gfc_match_data): Move here from match.c.
2117 (match_old_style_init): New function.
2118 (variable_decl): Match old-style initialization.
2119 * expr.c (gfc_get_variable_expr): New function.
2120 * gfortran.h (gfc_get_variable_expr): Add prototype.
2121 * gfortran.texi: Start documentation for supported extensions.
2122 * match.c: Remove the functions moved to decl.c.
2123 * match.h (gfc_match_data): Move prototype to under decl.c.
2124 * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
2125 comments.
2126
e8525382
SK
21272004-08-29 Steven G. Kargl <kargls@comcast.net>
2128 Paul Brook <paul@codesourcery.com>
2129
2130 * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
2131 * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
2132 (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2133 (build_builtin_fntypes): New function.
2134 (gfc_init_builtin_functions): Use it.
2135 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
2136 and GFC_ISYM_ERF{,C}.
2137 (gfc_c_int_kind): Declare.
2138 * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
2139 * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
2140 gfc_resolve_g77_math1): Add prototypes.
2141 * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
2142 * mathbuiltins.def: Add comment. Change third argument. Use
2143 DEFINE_MATH_BUILTIN_C. Add bessel and error functions.
2144 * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
2145 (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
2146 * trans-types.c (gfc_c_int_kind): Declare.
2147 (gfc_init_kinds): Set it.
2148
4c0c6b9f
SK
21492004-08-29 Steven G. Kargl <kargls@comcast.net>
2150 Paul Brook <paul@codesourcery.com>
2151
2152 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
2153 (gfc_check_f, gfc_simplify_f): Add f0.
2154 * intrinsic.c (do_check): Call f0. Flatten.
2155 (add_sym_0): Fix prototype. Set f0.
2156 (add_functions): Add getgid, getgid and getuid.
2157 (resolve_intrinsic): Remove obsolete comment.
2158 (do_simplify): Call f0.
2159 * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
2160 gfc_resolve_getuid): Add prototypes.
2161 * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
2162 gfc_resolve_getuid): New functions.
2163 * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
2164 GFC_ISYM_GET?ID.
2165
1f05db63
TS
21662004-08-28 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2167
2168 * error.c (gfc_error_init_1): Remove blank line in front of
2169 function body. Add missing blank.
2170 (gfc_buffer_error, error_char, error_string): Remove blank line in
2171 front of function body.
2172 (show_locus): Add comma in comment.
2173 (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
2174 gfc_push_error, gfc_pop_error): Remove blank line in front of
2175 function body.
2176 (gfc_get_errors): Typo fix in comment in front of function. Remove
2177 blank line in front of function body.
2178
9d64df18
TS
21792004-08-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2180
2181 * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
2182 variable declaration of same name.
2183 * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
2184 intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
2185 resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
2186 Replace all calls to gfc_default_*_kind with variable accesses.
2187 * trans-types.c: Same as above.
2188 (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
2189 static qualifier. Replace all occurences.
2190 (gfc_default_*_kind): Remove functions.
2191
5e8e542f
RH
21922004-08-26 Richard Henderson <rth@redhat.com>
2193
6615c446
JO
2194 * arith.c: Include system.h, not real system headers.
2195 (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
2196 DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
2197 GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
2198 GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
2199 (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
2200 gfc_index_integer_kind, gfc_default_integer_kind,
2201 gfc_default_real_kind,gfc_default_double_kind,
2202 gfc_default_character_kind, gfc_default_logical_kind,
2203 gfc_default_complex_kind, validate_integer, validate_real,
2204 validate_logical, validate_character,
2205 gfc_validate_kind): Move to trans-types.c.
2206 (gfc_set_model_kind): Use gfc_validate_kind.
2207 (gfc_set_model): Just copy the current precision to default.
2208 (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
2209 * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
2210 * gfortran.h: Update file commentary.
2211 * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
2212 (gfc_default_integer_kind_1, gfc_default_real_kind_1,
2213 gfc_default_double_kind_1, gfc_default_character_kind_1,
2214 gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
2215 (gfc_init_kinds): New.
2216 (gfc_init_types): Don't set gfc_index_integer_kind here.
2217 * trans-types.h (gfc_init_kinds): Declare.
5e8e542f
RH
2218 * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
2219
a1bab9ea
TS
22202004-08-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2221
2222 * check.c (gfc_check_atan2): New function.
2223 * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
2224 * intrinsic.h (gfc_check_atan2): Add prototype.
2225
e7a2d5fb
RH
22262004-08-25 Richard Henderson <rth@redhat.com>
2227
2228 * arith.c (gfc_validate_kind): Add may_fail argument; abort if
2229 false and we don't validate the kind.
2230 (gfc_check_integer_range, gfc_check_real_range): Update to match.
2231 * check.c (kind_check): Likewise.
2232 * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
2233 (match_char_spec, match_logical_spec): Likewise.
2234 * gfortran.h (gfc_validate_kind): Likewise.
2235 * options.c (gfc_handle_option): Likewise.
2236 * primary.c (match_integer_constant, match_real_constant,
2237 match_string_constant, match_logical_constant,
2238 match_const_complex_part): Likewise.
2239 * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
2240 gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
2241 gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
2242 gfc_simplify_maxexponent, gfc_simplify_minexponent,
2243 gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
2244 gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
2245 gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
2246 gfc_simplify_tiny): Likewise.
2247 * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
2248 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2249 prepare_arg_info): Likewise.
2250
6d1c50cc
TS
22512004-08-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2252
2253 * expr.c (gfc_check_assign): Add comment. Add new warning.
2254 * trans-expr.c (gfc_conv_function_call): Correctly dereference
2255 result of pointer valued function when not in pointer assignment.
2256
75101feb
PB
22572004-08-25 Paul Brook <paul@codesourcery.com>
2258
2259 * config-lang.in: Remove dead commented line.
2260 * module.c: Replace g95 with gfortran in comment.
2261
9ca2b0db
PB
22622004-08-25 Paul Brook <paul@codesourcery.com>
2263
2264 PR fortran/17190
2265 * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
2266
40f20186
PB
22672004-08-25 Paul Brook <paul@codesourcery.com>
2268
2269 PR fortran/17144
2270 * trans-array.c (gfc_trans_allocate_temp_array): Remove
2271 string_length argument.
2272 (gfc_trans_array_ctor_element): New function.
2273 (gfc_trans_array_constructor_subarray): Use it.
2274 (gfc_trans_array_constructor_value): Ditto. Handle constant
2275 character arrays.
2276 (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
2277 (gfc_trans_array_constructor): Use them.
2278 (gfc_add_loop_ss_code): Update to new gfc_ss layout.
2279 (gfc_conv_ss_descriptor): Remember section string length.
2280 (gfc_conv_scalarized_array_ref): Ditto. Remove dead code.
2281 (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
2282 (gfc_conv_expr_descriptor): Ditto.
2283 (gfc_conv_loop_setup): Ditto. Spelling fixes.
2284 * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
2285 * trans-const.c (gfc_conv_constant): Update to new gfc_ss layout.
2286 * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
2287 (gfc_conv_variable): Set string_length from section.
2288 (gfc_conv_function_call): Remove extra argument.
2289 (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
2290 * trans-types.c (gfc_get_character_type_len): New function.
2291 (gfc_get_character_type): Use it.
2292 (gfc_get_dtype): Return zero for internal types.
2293 * trans-types.h (gfc_get_character_type_len): Add prototype.
2294 * trans.h (struct gfc_ss): Move string_length out of union.
2295
923ab88c
TS
22962004-08-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2297
2298 * trans.h (build2_v, build3_v): New macros.
2299 (build_v): Remove.
2300 * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
2301 build.
2302 * trans-array.c (gfc_conv_descriptor_data,
2303 gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
6615c446 2304 gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
923ab88c
TS
2305 gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
2306 gfc_trans_allocate_temp_array,
2307 gfc_trans_array_constructor_subarray,
2308 gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
2309 gfc_trans_array_bound_check, gfc_conv_array_index_offset,
2310 gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
2311 gfc_conv_array_ref, gfc_trans_preloop_setup,
2312 gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
2313 gfc_conv_loop_setup, gfc_array_init_size,
2314 gfc_conv_array_initializer, gfc_trans_array_bounds,
2315 gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2316 gfc_conv_expr_descriptor, gfc_conv_array_parameter,
2317 gfc_trans_deferred_array): Use buildN and buildN_v macros instead
2318 of build and build_v as appropriate.
2319 * trans-common.c (create_common): Same.
2320 * trans-decl.c (gfc_trans_auto_character_variable,
2321 gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
2322 * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
2323 gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
2324 gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
2325 gfc_conv_expr_op, gfc_conv_function_call,
2326 gfc_trans_structure_assign): Same.
2327 * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
2328 gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
2329 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2330 gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
2331 gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
2332 gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
2333 gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
2334 gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
2335 gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
2336 gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2337 gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
2338 gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
2339 gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2340 gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
2341 gfc_conv_intrinsic_iargc): Same.
2342 * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
2343 set_flag, add_case, io_result, transfer_namelist_element,
2344 transfer_expr): Same.
2345 * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
2346 gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
2347 gfc_trans_integer_select, gfc_trans_logical_select,
2348 gfc_trans_character_select, gfc_trans_forall_loop,
2349 gfc_trans_nested_forall_loop, gfc_do_allocate,
2350 generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
2351 compute_inner_temp_size, compute_overall_iter_number,
2352 allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
2353 gfc_trans_forall_1, gfc_evaluate_where_mask,
2354 gfc_trans_where_assign, gfc_trans_allocate): Same.
2355 * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
2356 * trans.c (gfc_add_modify_expr, gfc_finish_block,
2357 gfc_build_array_ref, gfc_build_function_call,
2358 gfc_trans_runtime_check): Same.
2359
0cc4be67
TS
23602004-08-25 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2361
6615c446 2362 * trans-const.c (gfc_conv_mpz_to_tree): Change call to
0cc4be67
TS
2363 build_int_cst to build_int_cst_wide in accordance to Nathan's
2364 previous patch.
2365
7d60be94
NS
23662004-08-25 Nathan Sidwell <nathan@codesourcery.com>
2367
2368 * trans-array.c (gfc_trans_array_constructor_value): Adjust
2369 build_int_cst calls.
2370 * trans-const.c (gfc_build_string_const, gfc_init_constants,
2371 gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
2372 * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
2373 gfc_trans_entry_master_switch): Likewise.
2374 * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2375 gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2376 * trans-io.c (add_case, set_error_locus,
2377 transfer_namelist_element, transfer_expr): Likewise.
2378 * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2379 gfc_trans_stop, gfc_trans_character_select): Likewise.
2380 * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2381 * trans.c (gfc_trans_runtime_check): Likewise.
2382
45ede75e
TS
23832004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2384
6615c446 2385 * trans-decl.c, trans-types.c: Add and remove blank lines as
45ede75e
TS
2386 required.
2387
0c8eb998
RH
23882004-08-24 Richard Henderson <rth@redhat.com>
2389
2390 * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
2391
de37af8c
TS
23922004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2393
6615c446 2394 * resolve.c (merge_argument_lists): Revert unintentionally
de37af8c 2395 committed change.
6615c446 2396
7be7d41b
TS
23972004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2398
2399 * trans-decl.c (build_function_decl): Fix spelling in comment.
2400 (build_entry_thunks): Remove code with no function.
2401 (gfc_build_intrinsic_function_decls): Remove empty line.
2402
2403 * resolve.c (resolve_entries): Fix a bunch of comment typos.
2404
8c1d6d62
NS
24052004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2406
7d60be94 2407 * f95-lang.c (gfc_init_decl_processing): Adjust
8c1d6d62
NS
2408 build_common_tree_nodes call.
2409
436529ea
TS
24102004-08-24 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2411
2412 * trans-types.c: Spelling and formatting fixes.
2413
5f0ae953
RH
24142004-08-23 Richard Henderson <rth@redhat.com>
2415
2416 * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
2417 of going through an intermediate string. Fix 32/64 int/long bug.
2418
f676971a
EC
24192004-08-23 Eric Christopher <echristo@redhat.com>
2420
2421 * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
2422 usage. Use build_vector_type_for_mode for vector types.
2423
b8502435
RH
24242004-08-22 Richard Henderson <rth@redhat.com>
2425
2426 PR 13465
6615c446
JO
2427 * data.c (find_con_by_offset): Search ordered list; handle
2428 elements with repeat counts.
2429 (gfc_assign_data_value_range): New.
2430 * gfortran.h (struct gfc_data_value): Make repeat unsigned.
2431 (gfc_assign_data_value_range): Declare.
2432 * match.c (top_val_list): Extract repeat count into a temporary.
2433 * resolve.c (values): Make left unsigned.
2434 (next_data_value): Don't decrement left.
2435 (check_data_variable): Use gfc_assign_data_value_range.
b8502435 2436
f8d0aee5
TS
24372004-08-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2438
2439 * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
2440
617097a3
TS
24412004-08-22 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2442
2443 * check.c (gfc_check_reduction): Rename to ...
f676971a 2444 (check_reduction): ... this. Make static. Don't check type of
617097a3
TS
2445 first argument.
2446 (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
2447 * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
2448 SUM to use new check functions.
2449 (check_specific): Change logic to call new functions.
2450 * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
2451 Add prototypes.
2452 (gfc_check_reduction): Remove prototype.
2453
841b0c1f
PB
24542004-08-20 Paul Brook <paul@codesourcery.com>
2455 Canqun Yang <canqun@nudt.edu.cn>
2456
2457 PR fortran/17077
2458 * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
2459 for automatic arrays.
2460 * trans-types.c (gfc_get_nodesc_array_type): Add comment.
2461
c874ae73 24622004-08-19 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
841b0c1f 2463 (Port from g95)
c874ae73 2464
841b0c1f 2465 PR fortran/17074
c874ae73
TS
2466 * match.c (match_simple_forall, match_simple_where): Forward-declare.
2467 (gfc_match_if): Order statement list alphabetically, add WHERE and
841b0c1f 2468 FORALL, remove double PAUSE.
c874ae73 2469 (gfc_match_simple_where, match_forall_header,
841b0c1f 2470 gfc_match_simple_forall): New functions.
c874ae73 2471 (gfc_match_forall): Use match_forall_header.
f676971a 2472
bbef13dc
PB
24732004-08-19 Paul Brook <paul@codesourcery.com>
2474
2475 PR fortran/17091
2476 * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
2477 * symbol.c (gfc_clear_attr): Use memset.
2478
ec53454b
PB
24792004-08-19 Paul Brook <paul@codesourcery.com>
2480
2481 PR fortran/14976
f676971a 2482 PR fortran/16228
ec53454b
PB
2483 * data.c (assign_substring_data_value): Remove.
2484 (create_character_intializer): New function.
2485 (gfc_assign_data_value): Track the typespec for the current
2486 subobject. Use create_character_intializer.
2487
292e0d3a
ES
24882004-08-19 Erik Schnetter <schnetter@aei.mpg.de>
2489
2490 PR fortran/16946
2491 * check.c (gfc_check_reduction): New function.
2492 (gfc_check_minval_maxval): Removed.
2493 (gfc_check_product): Removed.
2494 (gfc_check_sum): Removed.
2495 * intrinsic.h: Add/remove declarations for these.
2496 * gfortran.h: Add field f3red to union gfc_check_f.
2497 * intrinsic.c (add_sym_3red): New function.
2498 (add_functions): Register maxval, minval, product, and sum intrinsics
2499 through add_sym_3red.
2500 (check_specific): Handle f3red union field.
2501 * iresolve.c: Whitespace change.
2502
1619aa6f
PB
25032004-08-18 Paul Brook <paul@codesourcery.com>
2504
2505 * trans-types.c (gfc_sym_type): Use pointer types for optional args.
2506
3bc268e6
VL
25072004-08-18 Victor Leikehman <lei@il.ibm.com>
2508
2509 PR fortran/13278
2510 * trans-io.c (transfer_namelist_element): New. Recursively handle
2511 derived-type variables. Pass string lengths.
2512 (build_dt): Code moved to build_namelist, with some
2513 changes and additions.
2514 (gfc_build_io_library_fndecls): Declare the fifth
2515 argument in st_set_nml_var_char -- string_length.
2516
3d79abbd
PB
25172004-08-17 Paul Brook <paul@codesourcery.com>
2518 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2519
2520 PR fortran/13082
2521 * decl.c (get_proc_name): Update mystery comment.
2522 (gfc_match_entry): Check for errors earlier. Add entry point to list.
2523 * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
2524 * gfortran.h (symbol_attribute): Add entry_master. Document entry.
2525 (struct gfc_entry_list): Define.
2526 (gfc_get_entry_list): Define.
2527 (struct gfc_namespace): Add refs and entries.
2528 (enum gfc_exec_op): Add EXEC_ENTRY.
2529 (struct gfc_code): Add ext.entry.
2530 * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
2531 (mio_symbol_attribute): Don't save/reture addr->entry.
2532 (mio_namespace_ref): Refcount namespaces.
2533 * parse.c (accept_statement): Handle ST_ENTRY.
2534 (gfc_fixup_sibling_symbols): Mark symbol as referenced.
2535 (parse_contained): Fixup sibling references to entry points
2536 after parsing the procedure body.
2537 * resolve.c (resolve_contained_fntype): New function.
2538 (merge_argument_lists, resolve_entries): New functions.
2539 (resolve_contained_functions): Use them.
2540 (resolve_code): Handle EXEC_ENTRY.
2541 (gfc_resolve): Call resolve_entries.
2542 * st.c (gfc_free_statement): Handle EXEC_ENTRY.
2543 * symbol.c (gfc_get_namespace): Refcount namespaces.
2544 (gfc_free_namespace): Ditto.
2545 * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
2546 optional when multiple entry points are present.
2547 * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
2548 (gfc_get_extern_function_decl): Add assertion. Fix coment.
2549 (create_function_arglist, trans_function_start, build_entry_thunks):
2550 New functions.
2551 (gfc_build_function_decl): Rename ...
2552 (build_function_decl): ... to this.
2553 (gfc_create_function_decl): New function.
2554 (gfc_generate_contained_functions): Use it.
2555 (gfc_trans_entry_master_switch): New function.
2556 (gfc_generate_function_code): Use new functions.
2557 * trans-stmt.c (gfc_trans_entry): New function.
2558 * trans-stmt.h (gfc_trans_entry): Add prototype.
2559 * trans-types.c (gfc_get_function_type): Add entry point argument.
2560 * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
2561 (gfc_generate_module_code): Call gfc_create_function_decl.
2562 * trans.h (gfc_build_function_decl): Remove.
2563 (gfc_create_function_decl): Add prototype.
2564
ead6d15f
AP
25652004-08-15 Andrew Pinski <apinski@apple.com>
2566
2567 PR fortran/17030
2568 * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
2569 for cabs{,f} and copysign{,f}.
f676971a
EC
2570 * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
2571 (gfor_fndecl_math_cabs): Delete.
2572 (gfor_fndecl_math_sign4): Delete.
2573 (gfor_fndecl_math_sign8): Delete.
ead6d15f
AP
2574 (gfc_build_intrinsic_function_decls): Remove the
2575 initializing of cabs{,f} and copysign{,f} functions.
2576 * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
2577 instead of the functions definitions.
2578 (gfc_conv_intrinsic_sign): Likewise.
f676971a
EC
2579 * trans.h (gfor_fndecl_math_cabsf): Delete.
2580 (gfor_fndecl_math_cabs): Delete.
2581 (gfor_fndecl_math_sign4): Delete.
2582 (gfor_fndecl_math_sign8): Delete.
ead6d15f 2583
4a90aeeb
NS
25842004-08-15 Nathan Sidwell <nathan@codesourcery.com>
2585
2586 * trans-array.c (gfc_trans_array_constructor_value): Use
f676971a 2587 build_int_cst.
4a90aeeb
NS
2588 * trans-const.c (gfc_build_string_const,
2589 gfc_init_constants, gfc_conv_mpz_to_tree,
f676971a 2590 gfc_conv_constant_to_tree): Likewise.
4a90aeeb
NS
2591 * trans-decl.c (gfc_get_symbol_decl): Likewise.
2592 * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
2593 gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
2594 * trans-io.c (add_case, set_error_locus, build_dt,
2595 transfer_expr): Likewise.
2596 * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
2597 gfc_trans_stop, gfc_trans_character_select): Likewise.
2598 * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
2599 * trans.c (gfc_trans_runtime_check): Likewise.
2600
1d754240
PB
26012004-08-14 Paul Brook <paul@codesourcery.com>
2602
2603 * trans-decl.c (gfc_build_function_decl): Remove dead code.
2604
3ef059b4
PB
26052004-08-14 Paul Brook <paul@codesourcery.com>
2606
2607 * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
2608
4f613946
TS
26092004-08-13 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2610
2611 * gfortran.h: Add comments.
2612 * parse.c (parse_contained): Fix comment typo.
2613 * resolve.c (was_declared): Ditto.
2614 * symbol.c: Ditto.
2615
3ec0f302
PB
26162004-08-11 Paul Brook <paul@codeourcery.com>
2617
2618 PR fortran/16917
2619 * intrinsic.c (add_functions): Add dfloat as an alias for dble.
2620
1a186ec5
RH
26212004-08-10 Richard Henderson <rth@redhat.com>
2622
2623 * f95-lang.c (gfc_init_builtin_functions): Remove
2624 __builtin_stack_alloc, add __builtin_alloca.
2625 * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
2626 * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
2627
2bf26ede
PB
26282004-08-10 Paul Brook <paul@codesourcery.com>
2629
2630 * trans-io.c (transfer_expr): Handle pointters.
2631
e9cfef64
PB
26322004-08-10 Paul Brook <paul@codesourcery.com>
2633
2634 PR fortran/16919
2635 * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
2636 (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
2637 (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
2638 Handle GFC_SS_COMPONENT.
2639 (gfc_conv_ss_startstride): Ditto. Set ss->shape.
2640 (gfc_conv_loop_setup): Tweak commends. Remove dead code.
2641 Use ss->shape.
2642 (gfc_conv_array_initializer): Call specific initializer routines.
2643 * trans-expr.c (gfc_trans_structure_assign): New function.
2644 (gfc_trans_subarray_assign): New function.
2645 (gfc_trans_subcomponent_assign): New fucntion
2646 (gfc_conv_structure): Use them.
2647 * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
2648 (gfc_ss): Add shape.
2649
94538bd1
VL
26502004-08-08 Victor Leikehman <lei@il.ibm.com>
2651
2652 * simplify.c (gfc_simplify_shape): Bugfix.
2653 * expr.c (gfc_copy_shape_excluding): New function.
2654 * gfortran.h (gfc_get_shape): Bugfix.
2655 (gfc_copy_shape_excluding): Added declaration.
2656 * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
2657 gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
2658 gfc_resolve_ubound, gfc_resolve_transpose): Added compile
2659 time resolution of shape.
2660
aa6fc635
JB
26612004-08-06 Janne Blomqvist <jblomqvi@cc.hut.fi>
2662
2663 * intrinsic.c (add_subroutines): Add getenv and
2664 get_environment_variable. (add_sym_5s): New function.
2665 * intrinsic.h (gfc_resolve_get_environment_variable): Add
2666 prototype.
2667 * iresolve.c (gfc_resolve_get_environment_variable): New
2668 function.
2669
c7d78bbe
FW
26702004-08-06 Feng Wang <fengwang@nudt.edu.cn>
2671
2672 * f95-lang.c (gfc_init_builtin_functions): Fix the number of
2673 __builtin_pow[f] arguments.
2674
f8e566e5
SK
26752004-08-06 Steven G. Kargl <kargls@comcast.net>
2676
2677 * arith.c: Add #define for model numbers. Remove global GMP variables.
2678 (natural_logarithm,common_logarithm,exponential,sine,
2679 cosine,arctangent,hypercos,hypersine ): Remove.
2680 (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
2681 (arctangent2,gfc_arith_init_1,gfc_arith_done_1
2682 gfc_check_real_range, gfc_constant_result, gfc_range_check,
2683 gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
2684 gfc_arith_divide,complex_reciprocal,complex_pow_ui,
2685 gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
2686 gfc_convert_complex,gfc_int2real,gfc_int2complex,
2687 gfc_real2int,gfc_real2real,gfc_real2complex,
2688 gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
2689 to MPFR, use new functions.
2690 * arith.h: Remove extern global variables.
2691 (natural_logarithm,common_logarithm,exponential, sine, cosine,
2692 arctangent,hypercos,hypersine): Remove prototypes.
2693 (arctangent2): Update prototype from GMP to MPFR.
2694 (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
2695 * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
2696 * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
2697 * gfortran.h (GFC_REAL_BITS): Remove.
2698 (arith): Add ARITH_NAN.
2699 Include mpfr.h. Define GFC_RND_MODE.
2700 Rename GCC_GFORTRAN_H GFC_GFC_H.
2701 (gfc_expr): Convert GMP to MPFR.
2702 * module.c: Add arith.h, correct type in comment.
2703 (mio_gmp_real): Convert GMP to MPFR.
2704 (mio_expr): Use gfc_set_model_kind().
2705 * primary.c: Update copyright date with 2004.
2706 (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
2707 * simplify.c: Remove global GMP variables
2708 (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
2709 gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
2710 gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
2711 gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
2712 gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
2713 gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
2714 gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
2715 gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
2716 gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
2717 gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
2718 gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
2719 gfc_simplify_rrspacing,gfc_simplify_scale,
2720 gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
2721 gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
2722 gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
2723 gfc_simplify_init_1,gfc_simplify_done_1): Convert GMP to MPFR.
2724 Use new functions.
2725 * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
2726 gfc_conv_mpf_to_tree. Convert it to use MPFR
2727 (gfc_conv_constant_to_tree): Use it.
2728 * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
2729 * trans-intrinsic.c: Add arith.h, remove gmp.h
2730 (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
2731
fc90a8f2
PB
27322004-08-06 Victor Leikehman <lei@il.ibm.com>
2733 Paul Brook <paul@codesourcery.com>
2734
2735 * trans-array.c (gfc_trans_allocate_array_storage,
2736 gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
2737 gfc_conv_loop_setup): For functions, if the shape of the result
2738 is not known in compile-time, generate an empty array descriptor for
2739 the result and let the callee to allocate the memory.
2740 (gfc_trans_dummy_array_bias): Do nothing for pointers.
2741 (gfc_conv_expr_descriptor): Use function return values directly.
2742 * trans-expr.c (gfc_conv_function_call): Always add byref call
2743 insn to pre chain.
2744 (gfc_trans_pointer_assignment): Add comments.
2745 (gfc_trans_arrayfunc_assign): Don't chain on expression.
2746
fc2d8429
RS
27472004-08-01 Roger Sayle <roger@eyesopen.com>
2748
2749 * options.c (gfc_init_options): Don't warn about the use GNU
2750 extensions by default.
2751 (gfc_post_options): Warn about GNU extensions with -pedantic.
2752 (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
2753
0534fa56
RH
27542004-07-30 Richard Henderson <rth@redhat.com>
2755
2756 * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
2757 for TREE_CONSTANTs.
2758
b785f485
RH
27592004-07-25 Richard Henderson <rth@redhat.com>
2760
2761 * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
2762 and DECL_IGNORED_P on RESULT_DECL.
2763 (gfc_generate_constructors): Likewise.
2764
f56c5d5d
TS
27652004-07-18 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2766
2767 PR fortran/16465
2768 * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
2769 options.
2770 (ffixed-line-length-80, ffixed-line-length-132): Remove.
2771 * options.c (gfc_handle_options): Deal with changed options.
2772 * scanner.c (load_line): Change second arg to 'char **',
2773 allocate if pointing to NULL. Keep track of buffer's length.
2774 Adapt buffer size to overlong lines. Pad lines to full length
2775 in fixed form.
2776 (load_file): Adapt to new interface of load_line.
2777
6e34d3a3
JM
27782004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
2779
2780 * trans.h (builtin_function): Declare.
2781
c9583ed2
TS
27822004-07-16 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2783
2784 PR fortran/16404
2785 (parts ported from g95)
2786 * parse.h (gfc_state_data): New field do_variable.
2787 (gfc_check_do_variable): Add prototype.
2788 * parse.c (push_state): Initialize field 'do_variable'.
2789 (gfc_check_do_variable): New function.
2790 (parse_do_block): Remember do iterator variable.
2791 (parse_file): Initialize field 'do_variable'.
2792 * match.c (gfc_match_assignment, gfc_match_do,
2793 gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
2794 Add previously missing checks.
2795 (gfc_match_return): Reformat error message.
2796 * io.c (match_out_tag): New function.
2797 (match_open_element, match_close_element,
2798 match_file_element, match_dt_element): Call match_out_tag
2799 instead of match_vtag where appropriate.
2800 (match_io_iterator, match_io_element): Add missing check.
2801 (match_io): Reformat error message.
2802 (match_inquire_element): Call match_out_tag where appropriate.
2803
b38b6477
TS
2804 * parse.c (gfc_check_do_variable): Fix error locus.
2805
d157d978
TS
28062004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2807
2808 PR fortran/15129
2809 * trans-decl.c (gfc_build_function_decl): Create a new chardecl
2810 for every assumed length character dummy argument.
2811
c5a41953
TS
2812 PR fortran/15140
2813 * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
0c0df4b3
TS
2814
2815 PR fortran/13792
2816 * simplify.c (gfc_simplify_bound): Copy the bound expression.
2817
20c9dc8a
TS
28182004-07-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2819
769d99d9 2820 PR fortran/15324
20c9dc8a
TS
2821 * trans-array.c gfc_trans_g77_array,
2822 gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
2823 for assumed length characters.
2824 (gfc_conv_expr_descriptor): Set se->string_length if dealing
2825 with a character expression.
2826 (gfc_cvonv_array_parameter): Pass string length when passing
2827 character array according to g77 conventions.
2828
597073ac
PB
28292004-07-12 Paul Brook <paul@codesourcery.com>
2830
2831 * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
2832 * trans-array.c (gfc_trans_auto_array_allocation): Remove
2833 initialization code.
2834 * trans-common.c (create_common): Use gfc_conv_initializer.
2835 * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
2836 * trans-expr.c (gfc_conv_initializer): New function.
2837 (gfc_conv_structure): Use it.
2838 * trans.h (gfc_conv_initializer): Add prototype.
2839
682e69e1
PB
28402004-07-11 Paul Brook <paul@codesourcery.com>
2841
2842 PR fortran/15986
2843 * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
2844 variables.
2845 (parse_contained): Mark contained symbols as referenced.
2846
87bdc5f8
TS
28472004-07-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2848
953e6630 2849 PR fortran/16455
87bdc5f8
TS
2850 * module.c (gfc_dump_module, gfc_use_module): Print locus
2851 when opening of module file fails.
2852
cdde7b65
TS
2853 PR fortran/16404
2854 * io.c (match_io): Flag 'WRITE(...), ...' as extension.
e08b5a75
TS
2855
2856 PR fortran/16404
2857 * match.c (gfc_match_program): A program name is obligatory.
2858 (gfc_match_return): RETURN in main program is an extension.
2859 (gfc_match_block_data): A space is required before a block data
2860 name.
88199e7c
TS
2861
2862 PR fortran/16433
2863 * primary.c (match_boz_constant): Call gfc_notify_std only if
2864 we actually have a non-standard boz-literal-constant.
2865
f23c5627
TS
2866 PR fortran/15754
2867 * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
2868 warning if assigning NULL().
2869
9dcf6e73
JM
28702004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
2871
2872 * f95-lang.c (set_block): Remove.
2873 (gfc_clear_binding_stack): New.
2874 (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
2875 (struct binding_level): Remove block_created_by_back_end.
2876 (clear_binding_level): Likewise.
2877 (poplevel): Don't handle block_created_by_back_end.
2878
9cbf8b41
TS
28792004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2880
2881 * trans-decl.c (gfc_create_module_variable): Nothing to do if
2882 symbol is in common, because we ...
2883 (gfc_generate_module_vars): Call gfc_trans_common.
2884
331c72f3
PB
28852004-07-10 Paul Brook <paul@codesourcery.com>
2886
2887 * trans-array.c (gfc_build_null_descriptor): New function.
2888 (gfc_trans_static_array_pointer): Use it.
2889 * trans-array.h (gfc_build_null_descriptor): Add prototype.
2890 * trans-expr.c (gfc_conv_structure): Handle array pointers.
2891
53814b8f 28922004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
f676971a 2893
53814b8f
TS
2894 PR fortran/16336
2895 * decl.c (gfc_match_save): Use-associated common block
2896 doesn't collide.
2897 * gfortran.h (gfc_common_head): Add new field 'name'.
2898 Fix typo in comment after #endif.
2899 * match.c (gfc_get_common): Add new argument from_common,
2900 mangle name if flag is set, fill in new field in structure
2901 gfc_common_head.
2902 (match_common): Set new arg in call to gfc_get_common,
2903 use-associated common block doesn't collide.
2904 * match.h (gfc_get_common): Adapt prototype.
2905 * module.c (load_commons): Set new arg in call to
2906 gfc_get_common.
2907 * symbol.c (free_common_tree): New function.
2908 (gfc_free_namespace): Call new function.
2909 * trans-common.c (several functions): Remove argument
2910 'name', use name from gfc_common_head instead.
2911
7d76d73a
TS
29122004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2913
2914 * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
2915 and RHS match. Return early if the RHS is NULL().
2916
794ba78b
TS
2917 PR fortran/16336
2918 * match.c (match_common): Fix error reporting for used common.
2919
104b260c
TS
2920 PR fortran/15969
2921 * trans-expr.c (gfc_conv_structure): Handle initialization
2922 of scalar pointer components.
2923
24727d92
TS
2924 * parse.c (decode_statement): Fix matching of BLOCK DATA.
2925
77dc4103
TS
2926 * trans-decl.c (generate_local_decl): Remove workaround obsoleted
2927 by fix for PR 15481.
f676971a 2928
a8a6b603
TS
29292004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2930
2931 * trans-common.c: Fix whitespace issues, make variable names
2932 more readable.
2933 (create_common): Additionally, make loop logic more obvious.
2934
29352004-07-10 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
ad6e2a18
TS
2936 Paul Brook <paul@codesourcery.com>
2937
2938 PR fortran/13415
2939 * trans-common.c (calculate_length): Remove ...
2940 (get_segment_info): Merge into here. Save field type.
2941 (build_field): Use saved type.
2942 (create_common, new_condition, new_segment, finish_equivalences):
2943 Use new get_segment_info.
2944 * trans-types.c: Update comment.
2945
8598a113 29462004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
f676971a 2947
8598a113
TS
2948 PR fortran/14077
2949 * moduele.c (mio_symbol): Don't I/O initial values unless
2950 symbol is a parameter.
2951
4077d207 29522004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
f676971a 2953
4077d207
TS
2954 PR fortran/13201
2955 * resolve.c (resolve_symbol): Verify that the shape of a
2956 parameter array is not only explicit, but also constant.
2957 * array.c (gfc_is_compile_time_shape): New function.
2958 * gfortran.h (gfc_is_compile_time_shape): Add prototype.
2959
51281118
TS
29602004-07-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
2961
2962 PR fortran/15481
2963 PR fortran/13372
2964 PR fortran/13575
2965 PR fortran/15978
2966 * module.c (write_symbol, write_symtree): Remove workaround.
2967 * primary.c (match_actual_arglist): Enhance comment.
2968 (gfc_match_rvalue): Handle function call with first argument
2969 a keyword argument correctly.
2970 * resolve.c (resolve_symbol): Change call to
2971 gfc_set_default_type to issue error if no implicit type
2972 can be found.
2973 * trans-decl.c (gfc_create_module_variable): Remove workaround.
f676971a 2974
60c9a35b
PB
29752004-07-08 Paul Brook <paul@codesourcery.com>
2976
2977 * intrinsic.c (add_sym_4s): New function.
2978 (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
2979
b41b2534
JB
29802004-07-04 Janne Blomqvist <jblomqvi@cc.hut.fi>
2981 Paul Brook <paul@codesourcery.com>
2982
2983 PR fortran/15280
2984 PR fortran/15665
2985 * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
2986 GFC_ISYM_COMMAND_ARGUMENT_COUNT.
2987 * intrinsic.c (add_functions): Identify iargc. Add
2988 command_argument_count.
2989 (add_subroutines): Resolve getarg. Add get_command and
2990 get_command_argument.
2991 * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
2992 gfc_resolve_get_command_argument): Add prototypes.
2993 * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
2994 gfc_resolve_get_command_argument): New functions.
2995 * trans-decl.c (gfor_fndecl_iargc): New variable.
2996 (gfc_build_intrinsic_function_decls): Set it.
2997 * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
2998 (gfc_conv_intrinsic_function): Use it.
2999 * trans.h (gfor_fndecl_iargc): Declare.
3000
e62be46e
MK
30012004-07-04 Matthias Klose <doko@debian.org>
3002
3003 * Make-lang.in: Generate and install gfortran man page.
3004 * invoke.texi: Remove extra '@c man end'.
3005
8fff4fc1
RH
30062004-07-04 Richard Henderson <rth@redhat.com>
3007
3008 * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
3009
1107b970
PB
30102004-07-04 Paul Brook <paul@codesourcery.com>
3011
3012 * decl.c (gfc_match_implicit_range): Don't use typespec.
3013 (gfc_match_implicit): Handle character selectors.
3014 * gfortran.h (gfc_set_implicit): Remove prototype.
3015 (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
3016 * parse.c (accept_statement): Don't call gfc_set_implicit.
3017 * symbol.c (new_ts): Remove.
3018 (gfc_set_implicit_none): Use same loop bounds as other functions.
3019 (gfc_set_implicit): Remove.
3020 (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
3021 (gfc_merge_new_implicit): Combine with gfc_set_implicit.
3022
4025c040
RH
30232004-06-30 Richard Henderson <rth@redhat.com>
3024
276b3fab
RH
3025 * match.c (var_element): Remove unused variable.
3026
4025c040
RH
3027 * trans-decl.c (gfc_generate_function_code): Don't set
3028 x_whole_function_mode_p.
3029 (gfc_generate_constructors): Likewise.
3030
6a0bec2c
RH
30312004-06-30 Richard Henderson <rth@redhat.com>
3032
3033 * trans-decl.c (gfc_generate_function_code): Don't set
3034 immediate_size_expand.
3035 (gfc_generate_constructors): Likewise.
3036
e5ddaa24
TS
30372004-06-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3038
3039 PR fortran/16161
3040 * decl.c (gfc_match_type_spec): Rename second argument to
3041 'implicit_flag', reverse meaning. Don't match_char_spec if
3042 'implicit_flag' is set. Rename to ...
3043 (match_type_spec): ... this.
3044 (gfc_match_implicit_none, match_implicit_range): Move here
3045 from match.c.
3046 (gfc_match_implicit): Move here from match.c, try to
3047 match_char_len if match_implicit_range doesn't succeed for
3048 CHARACTER implicits. Call renamed fucntion match_type_spec.
3049 (gfc_match_data_decl, match_prefix): Call renamed function
3050 match_type_spec.
3051 * match.c (gfc_match_implicit_none, match_implicit_range,
3052 gfc_match_implicit): Move to decl.c.
3053 * match.h (gfc_match_implicit_none, gfc_match_implicit):
3054 Move protoypes to section 'decl.c'.
3055 (gfc_match_type_spec): Remove prototype.
3056
ef558756
TS
30572004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3058
f676971a 3059 * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
ef558756
TS
3060 copyright years.
3061
7ab92584
SB
30622004-06-29 Steven Bosscher <stevenb@suse.de>
3063
3064 Make sure types in assignments are compatible. Mostly mechanical.
3065 * trans-const.h (gfc_index_one_node): New define.
3066 * trans-array.c (gfc_trans_allocate_array_storage,
3067 gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
3068 gfc_trans_array_constructor_value, gfc_trans_array_constructor,
3069 gfc_conv_array_ubound, gfc_conv_array_ref,
3070 gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
3071 gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
3072 gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
3073 gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
3074 types in assignments, conversions and conditionals for expressions.
3075 * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
3076 gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
3077 gfc_conv_function_call, gfc_trans_pointer_assignment,
3078 gfc_trans_scalar_assign): Likewise.
3079 * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
3080 gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
3081 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
3082 gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
3083 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
3084 gfc_conv_allocated, gfc_conv_associated,
3085 gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
3086 * trans-io.c (set_string): Likewise.
3087 * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
3088 gfc_do_allocate, generate_loop_for_temp_to_lhs,
3089 generate_loop_for_rhs_to_temp, compute_inner_temp_size,
3090 compute_overall_iter_number, gfc_trans_assign_need_temp,
3091 gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
3092 gfc_evaluate_where_mask, gfc_trans_where_assign,
3093 gfc_trans_where_2): Likewise.
3094 * trans-types.c (gfc_get_character_type, gfc_build_array_type,
3095 gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
3096
3097 * trans.c (gfc_add_modify_expr): Add sanity check that types
3098 for the lhs and rhs are the same for scalar assignments.
3099
fbc9b453
TS
31002004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3101
3102 * dump-parse-tree.c (show_common): New function.
3103 (gfc_show_namespace): Show commons.
3104
9056bd70
TS
31052004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3106 Andrew Vaught <andyv@firstinter.net>
3107
3108 PR fortran/13249
3109 PR fortran/15481
ef558756 3110 * decl.c (gfc_match_save): Adapt to new common structures,
9056bd70
TS
3111 don't allow saving USE-associated common.
3112 * dump-parse-tree (gfc_show_attr): (saved_)common are not
3113 symbol attributes any longer.
3114 (gfc_show_symbol): Don't show old-style commons any longer.
3115 (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
3116 interface.
3117 * gfortran.h (symbol_attribute): Remove common and saved_common
3118 attributes.
3119 (gfc_symbol): Remove common_head element.
3120 (gfc_common_head): New struct.
3121 (gfc_get_common_head): New macro.
3122 (gfc_symtree): Add field 'common' to union.
3123 (gfc_namespace): Add field 'common_root'; change type of field
3124 'blank_common' to blank_common.
3125 (gfc_add_data): New prototype.
3126 (gfc_traverse_symtree): Expect a symtree as first argument
3127 instead of namespace.
3128 * match.c (gfc_get_common): New function.
3129 (match_common_name): Change to take char * as argument, adapt,
3130 fix bug with empty name.
3131 (gfc_match_common): Adapt to new data structures. Disallow
3132 redeclaration of USE-associated COMMON-block. Fix bug with
3133 empty common.
3134 (var_element): Adapt to new common structures.
3135 * match.h (gfc_get_common): Declare.
3136 * module.c: Add 2004 to copyright years, add commons to module
3137 file layout description.
3138 (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
3139 for removed attributes.
3140 (mio_symbol): Adapt to new way of storing common relations.
3141 (load_commons): New function.
3142 (read_module): Skip common list on first pass, load_commons at
3143 second.
3144 (write_commons): New function.
3145 (write_module): Call write_commons().
3146 * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
3147 functions related to removed attributes.
3148 (gfc_add_data): New function.
3149 (gfc_clear_attr): Don't set removed attributes.
3150 (gfc_copy_attr): Don't copy removed attributes.
3151 (traverse_symtree): Remove.
f676971a 3152 (gfc_traverse_symtree): Don't traverse symbol
9056bd70
TS
3153 tree of the passed namespace, but require a symtree to be passed
3154 instead. Unify with traverse_symtree.
3155 (gfc_traverse_ns): Call gfc_traverse_symtree according to new
3156 interface.
3157 (save_symbol): Remove setting of removed attribute.
3158 * trans-common.c (gfc_sym_mangled_common_id): Change to
3159 take 'char *' argument instead of 'gfc_symbol'.
3160 (build_common_decl, new_segment, translate_common): Adapt to new
3161 data structures, add new
3162 argument name.
3163 (create_common): Adapt to new data structures, add new
3164 argument name. Fix typo in intialization of derived types.
3165 (finish_equivalences): Add second argument in call to
3166 create_common.
3167 (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
3168 (gfc_trans_common): Adapt to new data structures.
f676971a 3169 * trans-decl.c (gfc_create_module_variables): Remove test for
e23667c6 3170 removed attribute.
9056bd70 3171
50d78f96
TS
31722004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3173
3174 * io.c: Add 2004 to copyright years.
3175
c9543002
TS
31762004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3177 Andrew Vaught <andyv@firstinter.net>
3178
3179 * gfortran.h (gfc_gsymbol): New typedef.
3180 (gfc_gsym_root): New variable.
3181 (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
3182 * parse.c (global_used): New function.
3183 (parse_block_data): Check for double empty BLOCK DATA,
3184 use global symbol table.
3185 (parse_module): Use global symbol table.
3186 (add_global_procedure, add_global_program): New functions.
3187 (gfc_parse_file): Use global symbol table.
3188 * symbol.c (gfc_gsym_root): New variable.
3189 (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
3190 functions.
3191
78f2fb08
TS
31922004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3193
3194 * module.c (mio_gmp_real): Correct writing of negative numbers.
3195
31962004-06-29 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
e063a048
TS
3197
3198 PR fortran/15963
3199 * expr.c (check_intrinsic_op): Allow comparison of characters.
3200 Make logic easier.
3201
ddc9ce91
TS
32022004-06-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3203 Andrew Vaught <andyv@firstinter.net>
3204
3205 * decl.c (contained_procedure): New function.
3206 (match_end): Verify correctness of END STATEMENT in
3207 all cases.
3208
32092004-06-26 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3210 Andrew Vaught <andyv@firstinter.net>
0ff0dfbf
TS
3211
3212 PR fortran/15190
3213 * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
3214 (decode_statement): Enforce required space in free-form.
3215
ddc9ce91 32162004-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
44de5aeb
RK
3217
3218 * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
3219 * trans-array.c (gfc_conv_descriptor_data): Add operand
3220 for COMPONENT_REF.
3221 (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
3222 (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
3223 (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
3224 * trans-common.c (create_common): Likewise.
3225 * trans-expr.c (gfc_conv_component_ref): Likewise.
3226 * trans-io.c (set_parameter_value): Likewise.
3227 (set_parameter_ref, set_string, set_flag, io_result): Likewise.
3228 (transfer_expr): Likewise.
3229 * trans-decl.c (gfc_trans_auto_character_variable):
3230 Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
ddc9ce91 3231 (gfc_gimplify_function): New function.
44de5aeb
RK
3232 (gfc_generate_function-code): Properly handle nested functions.
3233 * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
3234
8750f9cd
JB
32352004-06-22 Janne Blomqvist <jblomqvi@cc.hut.fi>
3236
3237 PR fortran/15750
3238 * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
3239 (gfc_resolve_inquire): Resolve the iolength tag. Return
3240 SUCCESS at end of function if no failure has occured.
3241 * resolve.c (resolve_code): Resolve if iolength is encountered.
3242 * trans-io.c: (ioparm_iolength, iocall_iolength,
3243 iocall_iolength_done): New variables.
3244 (last_dt): Add IOLENGTH.
3245 (gfc_build_io_library_fndecls ): Set iolength related variables.
3246 (gfc_trans_iolength): Implement.
3247 (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
3248
fa841200
TS
32492004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de
3250
3251 PR fortran/15511
3252 * scanner.c (load_line): Don't truncate preprocessor lines.
3253 Reformat error message.
3254 (preprocessor_line): Issue warning in case of malformed
f676971a 3255 preprocessor line.
fa841200 3256
f5e440e1
TS
32572004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3258
3259 * resolve.c (resolve_symbol): Add comment in function body.
3260 (check_data_variable): Change type of mark to ar_type, adapt code
3261 accordingly.
3262
da4f9e3b
TS
32632004-06-21 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3264
3265 * array.c (gfc_insert_constructor): Avoid redundant call to
3266 mpz_comp. Add 2004 to copyright years.
f676971a 3267
b40410b9
JM
32682004-06-21 Joseph S. Myers <jsm@polyomino.org.uk>
3269
3270 * trans.h (stmtblock_t): Change has_scope to unsigned int.
3271
160874e4
SK
32722004-06-20 Steven G. Kargl <kargls@comcast.net>
3273
3274 * arith.c (gfc_range_check): correct complex underflow.
3275
6ef42154
TS
32762004-06-15 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3277
3278 PR fortran/15962
3279 * match.c (match_case_selector): Call gfc_match_init_expr
3280 instead of gfc_match_expr.
3281 * resolve.c (validate_case_label_expr): No need to check for
3282 constant, since it wouldn't have been matched with the fix to
3283 match.c.
3284
f51d8522 32852004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
7031baf4
TS
3286
3287 PR fortran/15211
3288 * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
f676971a 3289 of strings.
7031baf4 3290
ce738b86
TS
32912004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3292
3293 PR fortran/15510
3294 * trans-deecl.c (generate_local_decl): Do not issue warning for
3295 unused variables if they're use associated.
3296
32972004-06-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
6615c446 3298 Andrew Vaught <andyv@firstinter.net>
f3207b37
TS
3299
3300 PR fortran/14928
3301 * gfortran.h (gfc_check_f): Add new field f3ml.
3302 * check.c (gfc_check_minloc_maxloc): Take argument list instead
3303 of individual arguments, reorder if necessary.
3304 * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
3305 * intrinsic.c (add_sym_3ml): New function.
3306 (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
f676971a 3307 (check_specific): Catch special case MINLOC, MAXLOC.
f3207b37 3308
6956a6f3
PB
33092004-06-14 Paul Brook <paul@codesourcery.com>
3310
3311 * intrinsic.c (add_sym_2s): Use correct function types.
3312
fd528377
TS
33132004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3314
b3b65c9a 3315 * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize. Move data.c
fd528377
TS
3316 * data.c (gfc_get_section_index): Remove dependency on trans.h.
3317
2bd74949
SK
33182004-06-12 Steven G. Kargl <kargls@comcast.net>
3319
3320 * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
3321 gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
3322 * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
3323 GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
3324 * trans-intrinsic.c: Use symbols.
3325 * intrinsic.c (add_sym_2s): New function.
3326 * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
3327 * intrinsic.h: Function prototypes.
f676971a 3328 * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
2bd74949
SK
3329 gfc_resolve_srand): New functions.
3330
c52eae8d
TS
33312004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3332
3333 PR fortran/14957
3334 * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
3335 contained procedure.
f676971a 3336
662ef0f5
TS
33372004-06-12 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3338
3339 PR fortran/12841
3340 * interface.c (compare_parameter, compare_actual_formal): Don't
3341 check types and array shapes for NULL()
3342 * trans-expr.c (conv_function_call): No double indirection for
f676971a 3343 NULL()
662ef0f5 3344
293155b0
TM
33452004-06-09 Toon Moene <toon@moene.indiv.nluug.nl>
3346
3347 * trans-expr.c (gfc_conv_cst_int_power): Compute
3348 x**(-n) by converting it to (1/x)**n instead of
3349 1/x**n.
3350
62f1d470
TS
33512004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3352
3353 PR fortran/13372
3354 * module.c (write_symbol, write_symtree): Don't write symbols
3355 wrongly added to namespace.
3356 * trans-decl.c (gfc_create_module_variable): Don't create a
3357 backend decl for a symbol incorrectly added to namespace.
3358
a4ac5dd3
TS
33592004-06-09 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3360
3361 PR fortran/13201
3362 * resolve.c (resolve_symbol): Verify that parameter array has an
3363 explicit shape. Fix typos and coding style issues in surrounding
3364 lines.
3365
33662004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
e0f2a7c6
TS
3367
3368 PR fortran/15478
3369 * gfortran.texi: The documentation doesn't contain infomration on
3370 how to report bugs, and shouldn't, so remove the line which
3371 says it does.
3372
f9fed73b
TS
33732004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3374
f676971a 3375 * intrinsic.c (sort_actual): Keep track of type of missing
f9fed73b
TS
3376 arguments. (Missing from previous commit.)
3377
1600fe22
TS
33782004-06-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3379
3380 * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
3381 * interface.c (compare_actual_formal): Keep type of omitted
3382 optional arguments.
3383 * trans-expr.c (gfc_conv_function_call): Add string length
3384 argument for omitted string argument.
3385
33862004-06-03 Paul Brook <paul@codesourcery.com>
7c87eac6
PB
3387
3388 * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
3389 lists instead of compound expr chains.
3390 (gfc_trans_code): Annotate statement lists.
3391
13413760
TS
33922004-06-03 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3393
3394 * trans-array.c: Fix spelling in comments.
3395
2fa54841
TS
33962004-06-02 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3397
3398 PR fortran/15557
3399 * data.c (assign_substring_data_value): New function.
3400 (gfc_assign_data_value): Call the new function if we're dealing
3401 with a substring LHS.
3402
ea0ece09
TS
34032004-06-01 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3404
3405 PR fortran/15477
3406 * gfortran.h (GFC_VERSION): Remove.
3407 * gfortran.texi (version-gfortran): Remove, replace by version-GCC
3408 where used.
3409
c3e8c6b8
TS
34102004-05-31 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3411
3412 * trans-types.c: Fix spelling & layout in comments.
3413
94716287
TS
34142004-05-30 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3415
3416 PR fortran/14067
3417 * trans-const.c (gfc_conv_string_init): Allow variable string
3418 length lower than initialization string length.
3419
7b5b57b7
PB
34202004-05-30 Paul Brook <paul@codesourcery.com>
3421
3422 PR fortran/15620
3423 * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
3424 * trans-expr.c (gfc_trans_string_copy): New function.
3425 (gfc_conv_statement_function): Use them. Create temp vars. Enforce
3426 character lengths.
3427 (gfc_conv_string_parameter): Use gfc_trans_string_copy.
3428 * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
3429 * trans.h (struct gfc_saved_var): Define.
3430 (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
3431
5f251c26
SK
34322004-05-30 Steven G. Kargl <kargls@comcast.net>
3433
3434 * iresolve.c (gfc_resolve_random_number): Clean up conditional.
3435
e73c80ae
SK
34362004-05-29 Steven G. Kargl <kargls@comcast.net>
3437
3438 * simplify.c (gfc_simplify_log): Remove useless line of code.
3439
353c3b7e
PB
34402004-05-29 Paul Brook <paul@codesourcery.com>
3441
3442 * trans-common.c (find_equivalence): Find multiple rules.
3443
63645982
TS
34442004-05-27 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
3445
3446 * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
3447 (gfc_current_locus): Declare new global variable.
3448 * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
3449 (gfc_current_locus1): Rename ...
3450 (gfc_current_locus): ... to this.
3451 (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
3452 skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
3453 gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
3454 gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
3455 and gfc_current_locus(), respectively.
3456 * array.c (match_subscript, gfc_match_array_ref, match_array_list,
3457 match_array_cons_element, gfc_match_array_constructor):
3458 Read/modify gfc_current_locus instead of calling gfc_set_locus()
3459 and gfc_current_locus().
3460 * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
3461 match_attr_spec, gfc_match_function_decl, gfc_match_end,
3462 attr_decl1, gfc_match_save): Likewise.
3463 * error.c (error_print, gfc_internal_error): Likewise.
3464 * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
3465 * interface.c (gfc_add_interface): Likewise.
3466 * io.c (gfc_match_format, match_dt_format, match_dt_element,
3467 match_io_iterator, match_io): Likewise.
3468 * match.c (gfc_match_space, gfc_match_eos,
3469 gfc_match_small_literal_int, gfc_match_st_label,
3470 gfc_match_strings, gfc_match_name, gfc_match_iterator,
3471 gfc_match_char, gfc_match, gfc_match_assignment,
3472 gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
3473 gfc_match_nullify, gfc_match_call, match_implicit_range,
3474 gfc_match_implicit, gfc_match_data, match_case_selector,
3475 gfc_match_case, match_forall_iterator): Likewise.
3476 * matchexp.c (gfc_match_defined_op_name, next_operator,
3477 match_level_1, match_mult_operand, match_ext_mult_operand,
3478 match_add_operand, match_ext_add_operand, match_level_2,
3479 match_level_3, match_level_4, match_and_operand, match_or_operand,
3480 match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
3481 * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
3482 * parse.c (match_word, decode_statement, next_free, next_fixed,
3483 add_statement, verify_st_order, parse_if_block, gfc_parse_file):
3484 Likewise.
3485 * primary.c (match_digits, match_integer_constant,
3486 match_boz_constant, match_real_constant, match_substring,
3487 next_string_char, match_charkind_name, match_string_constant,
3488 match_logical_constant, match_const_complex_part,
3489 match_complex_constant, match_actual_arg, match_keyword_arg,
3490 gfc_match_actual_arglist, gfc_match_structure_constructor,
3491 gfc_match_rvalue, gfc_match_variable): Likewise.
3492 * st.c (gfc_get_code): Likewise.
3493 * symbol.c (check_conflict, check_used, check_done,
3494 duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
3495 gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
3496 gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
3497
4eeaf81e
RS
34982004-05-26 Roger Sayle <roger@eyesopen.com>
3499
3500 * io.c (format_asterisk): Silence compiler warnings by correcting
3501 the number of elements of a "locus" initializer.
3502
a2f29587
RS
35032004-05-25 Roger Sayle <roger@eyesopen.com>
3504
3505 PR fortran/13912
3506 * matchexp.c: Allow unary operators after arithmetic operators
3507 as a GNU extension.
3508 (match_ext_mult_operand, match_ext_add_operand): New functions.
3509 (match_mult_operand): Tweak to call match_ext_mult_operand.
3510 (match_add_operand): Tweak to call match_ext_mult_operand.
3511 (match_level_2): Rearrange to call match_ext_add_operand.
3512
45aae8f2
PB
35132004-05-25 Paul Brook <paul@codesourcery.com>
3514
3515 * expr.c (check_inquiry): Remove bogus tests.
3516
40e929f3
PB
35172004-05-23 Paul Brook <paul@codesourcery.com>
3518
3519 PR fortran/13773
3520 * expr.c (restricted_args): Remove redundant checks/argument.
3521 (external_spec_function): Update to match.
3522 (restricted_intrinsic): Rewrite.
3523
5291e69a
PB
35242004-05-23 Paul Brook <paul@codesourcery.com>
3525 Victor Leikehman <lei@haifasphere.co.il>
3526
3527 * gfortran.h (struct gfc_symbol): Add equiv_built.
3528 * trans-common.c: Change int to HOST_WIDE_INT. Capitalize error
3529 messages.
3530 (current_length): Remove.
3531 (add_segments): New function.
3532 (build_equiv_decl): Create initialized common blocks.
3533 (build_common_decl): Always add decl to bindings.
3534 (create_common): Create initializers.
3535 (find_segment_info): Reformat to match coding conventions.
3536 (new_condition): Use add_segments.
3537 (add_condition, find_equivalence, add_equivalences): Move iteration
3538 inside functions. Only process each segment once.
3539 (new_segment, finish_equivalences, translate_common): Simplify.
3540
95d3f567
SK
35412004-05-23 Steven G. Kargl <kargls@comcast.net>
3542
3543 * check.c (gfc_check_random_seed): Issue for too many arguments.
3544
c1c52409
PB
35452004-05-22 Steven G. Kargl <kargls@comcast.net>
3546
3547 * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
3548
35492004-05-22 Paul Brook <paul@codesourcery.com>
1854117e
PB
3550
3551 * dump-parse-tree.c (gfc_show_equiv): New function.
3552 (gfc_show_namespace): Use it.
3553
b6720768
VL
35542004-05-22 Victor Leikehman <lei@haifasphere.co.il>
3555
3556 PR fortran/13249
3557 * symbol.c (gfc_add_common): Disable checks to work around other more
3558 fundamental inadequacies.
3559
8c1d6d62 3560