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