OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [fortran/] [ChangeLog] - Blame information for rev 20

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 12 jlechner
2006-05-24  Release Manager
2
 
3
        * GCC 4.1.1 released.
4
 
5
2006-05-17  H.J. Lu  
6
 
7
        * Make-lang.in: Undo the last change.
8
 
9
2006-05-17  Francois-Xavier Coudert  
10
 
11
        PR fortran/27553
12
        * parse.c (next_free): Return instead of calling decode_statement
13
        upon error.
14
 
15
2006-05-16  H.J. Lu  
16
 
17
        PR driver/26885
18
        * Make-lang.in (GFORTRAN_D_OBJS): Replace gcc.o with
19
        $(GCC_OBJS).
20
 
21
2006-05-11  Francois-Xavier Coudert  
22
 
23
        PR fortran/24549
24
        * parse.c (reject_statement): Clear gfc_new_block.
25
 
26
2006-05-11  Francois-Xavier Coudert  
27
 
28
        PR fortran/20460
29
        * resolve.c (gfc_resolve_index): Make REAL array indices a
30
        GFC_STD_LEGACY feature.
31
 
32
2006-05-08  Francois-Xavier Coudert  
33
 
34
        PR fortran/27378
35
        * parse.c (next_statement): Add check to avoid an ICE when
36
        gfc_current_locus.lb is not set.
37
 
38
2006-05-08  Paul Thomas  
39
 
40
        PR fortran/24813
41
        * trans-array.c (get_array_ctor_strlen): Remove static attribute.
42
        * trans.h: Add prototype for get_array_ctor_strlen.
43
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Switch on EXPR_ARRAY
44
        and call get_array_ctor_strlen.
45
 
46
        PR fortran/27269
47
        * module.c: Add static flag in_load_equiv.
48
        (mio_expr_ref): Return if no symtree and in_load_equiv.
49
        (load_equiv): If any of the equivalence members have no symtree, free
50
        the equivalence and the associated expressions.
51
 
52
        PR fortran/27324
53
        * trans-common.c (gfc_trans_common): Invert the order of calls to
54
        finish equivalences and gfc_commit_symbols.
55
 
56
        PR fortran/25099
57
        * resolve.c (resolve_call): Check conformity of elemental
58
        subroutine actual arguments.
59
 
60
2006-05-05  Francois-Xavier Coudert  
61
 
62
        PR fortran/25681
63
        * simplify.c (simplify_len): Character variables with constant
64
        length can be simplified.
65
 
66
2006-05-04  Tobias Schlüter  
67
 
68
        Backport r113523 from the trunk
69
        * simplify.c (ascii_table): Fix wrong entry.
70
 
71
2006-04-29  Thomas Koenig  
72
 
73
        PR fortran/26017
74
        Backport from trunk
75
        * trans-array.c(gfc_array_init_size):  Introduce or_expr
76
        which is true if the size along any dimension
77
        is negative.  Create a temporary variable with base
78
        name size.  If or_expr is true, set the temporary to 0,
79
        to the normal size otherwise.
80
 
81
2006-04-23  Paul Thomas  
82
 
83
        PR fortran/27122
84
        * resolve.c (resolve_function): Remove general restriction on auto
85
        character length function interfaces.
86
        (gfc_resolve_uops): Check restrictions on defined operator
87
        procedures.
88
        (resolve_types): Call the check for defined operators.
89
 
90
        PR fortran/27113
91
        * trans-array.c (get_array_ctor_var_strlen): Remove typo in enum.
92
        Part of the fix in 4.2, which does not work in 4.1 because the
93
        divergence is now too great.
94
 
95
        PR fortran/26822
96
        * intrinsic.c (add_functions): Mark LOGICAL as elemental.
97
 
98
        PR fortran/26787
99
        * expr.c (gfc_check_assign): Extend scope of error to include
100
        assignments to a procedure in the main program or, from a
101
        module or internal procedure that is not that represented by
102
        the lhs symbol. Use VARIABLE rather than l-value in message.
103
 
104
        PR fortran/25597
105
        * trans-decl.c (gfc_trans_deferred_vars): Check if an array
106
        result, is also automatic character length.  If so, process
107
        the character length. Note that this fixes the bug in 4.2
108
        but not here in 4.1 because the trees have diverged too much.
109
        Manifestly correct, so applied anyway.
110
 
111
        PR fortran/18803
112
        PR fortran/25669
113
        PR fortran/26834
114
        * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set
115
        data.info.dimen for bound intrinsics.
116
        * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and
117
        UBOUND intrinsics and supply their shape information to the ss
118
        and the loop.
119
 
120
        PR fortran/27124
121
        * trans_expr.c (gfc_trans_function_call):  Add a new block, post,
122
        in to which all the argument post blocks are put.  Add this block
123
        to se->pre after a byref call or to se->post, otherwise.
124
 
125
2006-04-22  Jakub Jelinek  
126
 
127
        PR fortran/26769
128
        * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16).
129
        (gfc_resolve_transpose): Use transpose_r16 for real(16).
130
 
131
2006-04-18  Steve Ellcey  
132
 
133
        * trans-io.c (gfc_build_io_library_fndecls): Align pad.
134
 
135
2006-04-16  Thomas Koenig  
136
 
137
        PR fortran/26769
138
        * iresolve.c (gfc_resolve_reshape):  Remove doubling of
139
        kind for complex. For real(kind=10), call reshape_r10.
140
        (gfc_resolve_transpose):  For real(kind=10), call
141
        transpose_r10.
142
 
143
2006-04-12  H.J. Lu  
144
 
145
        PR fortran/25619
146
        Backport from mainline
147
        2006-04-04  H.J. Lu  
148
 
149
        * trans-array.c (gfc_conv_expr_descriptor): Only dereference
150
        character pointer when copying temporary.
151
 
152
        PR fortran/23634
153
        Backport from mainline
154
        2006-04-04  H.J. Lu  
155
 
156
        * trans-array.c (gfc_conv_expr_descriptor): Properly copy
157
        temporary character with non constant size.
158
 
159
2006-04-11  Paul Thomas  
160
 
161
        PR fortran/26257
162
        * trans-array.c (gfc_conv_expr_descriptor): Exclude calculation
163
        of the offset and data when se->data_not_needed is set.
164
        * trans.h: Include the data_not_need bit in gfc_se.
165
        * trans-intrinsic.c (gfc_conv_intrinsic_size): Set it for SIZE.
166
 
167
2006-04-08  Thomas Koenig  
168
 
169
        PR fortran/25031
170
        Backport from mainline
171
        * trans-array.h:  Adjust gfc_array_allocate prototype.
172
        * trans-array.c (gfc_array_allocate):  Change type of
173
        gfc_array_allocatate to bool.  Function returns true if
174
        it operates on an array.  Change second argument to gfc_expr.
175
        Find last reference in chain.
176
        If the function operates on an allocatable array, emit call to
177
        allocate_array() or allocate64_array().
178
        * trans-stmt.c (gfc_trans_allocate):  Code to follow to last
179
        reference has been moved to gfc_array_allocate.
180
        * trans.h:  Add declaration for gfor_fndecl_allocate_array and
181
        gfor_fndecl_allocate64_array.
182
        (gfc_build_builtin_function_decls):  Add gfor_fndecl_allocate_array
183
        and gfor_fndecl_allocate64_array.
184
 
185
2006-04-07 Jerry DeLisle  
186
 
187
        PR fortran/19101
188
        * gfortran.h: Add warn_ampersand.
189
        * invoke.texi: Add documentation for new option.
190
        * lang.opt: Add Wampersand.
191
        * options.c (gfc_init_options): Initialize warn_ampersand.
192
        (gfc_post_options): Set the warn if pedantic.
193
        (set_Wall): Set warn_ampersand.
194
        (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003.
195
        * scanner.c (gfc_next_char_literal): Add test for missing '&' in
196
        continued character constant and give warning if missing.
197
 
198
2006-04-07  Paul Thomas  
199
 
200
        PR fortran/26891
201
        * trans.h : Prototype for gfc_conv_missing_dummy.
202
        * trans-expr (gfc_conv_missing_dummy): New function
203
        (gfc_conv_function_call): Call it and tidy up some of the code.
204
        * trans-intrinsic (gfc_conv_intrinsic_function_args): The same.
205
 
206
        PR fortran/26976
207
        * array.c (gfc_array_dimen_size): If available, return shape[dimen]
208
        * resolve.c (resolve_function): If available, use the argument shape
209
        for the function expression.
210
        * iresolve.c (gfc_resolve_transfer): Set shape[0] = size.
211
 
212
        PR fortran/26779
213
        *resolve.c (resolve_fl_procedure): Do not check the access of
214
        derived types for internal procedures.
215
 
216
2006-03-31  Asher Langton  
217
 
218
        PR fortran/25358
219
        *expr.c (gfc_check_assign): Allow cray pointee to be assumes-size.
220
 
221
2006-03-31  Thomas Koenig  
222
 
223
        PR fortran/19303
224
        Backport from mainline
225
        * gfortran.h (gfc_option_t):  Add record_marker.
226
        * lang.opt:  Add -frecord-marker=4 and -frecord-marker=8.
227
        * trans-decl.c:  Add gfor_fndecl_set_record_marker.
228
        (gfc_build_builtin_function_decls): Set
229
        gfor_fndecl_set_record_marker.
230
        (gfc_generate_function_code):  If we are in the main program
231
        and -frecord-marker was provided, call set_record_marker.
232
        * options.c (gfc_handle_option):  Add handling for
233
        -frecord-marker=4 and -frecord-marker=8.
234
        * invoke.texi:  Document -frecord-marker.
235
 
236
2006-03-28  Steven G. Kargl  
237
 
238
        * intrinsic.texi: s/floor/float in previous commit.
239
 
240
2006-03-28  Steven G. Kargl  
241
 
242
        PR fortran/26816
243
        * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds.
244
        * intrinsic.texi: Document FLOAT.
245
 
246
2006-03-27  Thomas Koenig  
247
 
248
        PR fortran/20935
249
        Backport from mainline
250
        * iresolve.c (gfc_resolve_maxloc):   If mask is scalar,
251
        prefix the function name with an "s".  If the mask is scalar
252
        or if its kind is smaller than gfc_default_logical_kind,
253
        coerce it to default kind.
254
        (gfc_resolve_maxval):  Likewise.
255
        (gfc_resolve_minloc):  Likewise.
256
        (gfc_resolve_minval):  Likewise.
257
        (gfc_resolve_product):  Likewise.
258
        (gfc_resolve_sum):  Likewise.
259
 
260
2006-03-27  Paul Thomas  
261
 
262
        PR fortran/25378
263
        Backport from mainline
264
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the
265
        initial position to zero and modify the condition for updating
266
        it, to implement the F2003 requirement for all(mask) is false.
267
 
268
2006-03-27  Jakub Jelinek  
269
 
270
        * io.c (check_io_constraints): Don't look at
271
        dt->advance->value.charater.string, unless it is a CHARACTER
272
        constant.
273
 
274
        * f95-lang.c (gfc_get_alias_set): New function.
275
        (LANG_HOOKS_GET_ALIAS_SET): Define.
276
 
277
2006-03-22  Paul Thomas  
278
 
279
        PR fortran/17298
280
        *trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
281
        function to implement array valued TRANSFER intrinsic.
282
        (gfc_conv_intrinsic_function): Call the new function if TRANSFER
283
        and non-null se->ss.
284
        (gfc_walk_intrinsic_function): Treat TRANSFER as one of the
285
        special cases by calling gfc_walk_intrinsic_libfunc directly.
286
 
287
2006-03-19  Tobias Schlüter  
288
 
289
        (backport r110993)
290
        PR fortran/26277
291
        * io.c (match_ltag): Mark label as referenced.
292
 
293
2006-03-19  Paul Thomas  
294
 
295
        PR fortran/26741
296
        *expr.c (external_spec_function): Permit elemental functions.
297
 
298
        PR fortran/26716
299
        *interface.c (compare_actual_formal): Detect call for procedure
300
        usage and require rank checking, in this case, for assumed shape
301
        and deferred shape arrays.
302
        (gfc_procedure_use): Revert to pre-PR25070 call to
303
        compare_actual_formal that does not require rank checking..
304
 
305
2006-03-11  Toon Moene  
306
 
307
        PR fortran/26054
308
        * options.c: Do not warn for Fortran 2003 features
309
        by default.
310
 
311
2006-03-07  H.J. Lu  
312
 
313
        PR fortran/26041
314
        PR fortran/26064
315
        Backport from mainline
316
        * resolve.c (resolve_types): New function.
317
        (resolve_codes): Likewise.
318
        (gfc_resolve): Use them.
319
 
320
2006-03-07  Paul Thomas  
321
 
322
        PR fortran/26107
323
        * resolve.c (resolve_function): Add name after test for pureness.
324
 
325
        * iresolve.c (gfc_resolve_dot_product):  Remove any difference in
326
        treatment of logical types.
327
        * trans-intrinsic.c (gfc_conv_intrinsic_dot_product):  New function.
328
 
329
        PR fortran/26393
330
        * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols
331
        must be referenced to include unreferenced symbols in an interface
332
        body.
333
 
334
        PR fortran/20938
335
        * trans-array.c (gfc_conv_resolve_dependencies): Add call to
336
        gfc_are_equivalenced_arrays.
337
        * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New
338
        functions. (gfc_free_namespace): Call them.
339
        * trans-common.c (copy_equiv_list_to_ns): New function.
340
        (add_equivalences): Call it.
341
        * gfortran.h: Add equiv_lists to gfc_namespace and define
342
        gfc_equiv_list and gfc_equiv_info.
343
        * dependency.c (gfc_are_equivalenced_arrays): New function.
344
        (gfc_check_dependency): Call it.
345
        * dependency.h: Prototype for gfc_are_equivalenced_arrays.
346
 
347
        PR fortran/24519
348
        * dependency.c (gfc_is_same_range): Correct typo.
349
        (gfc_check_section_vs_section): Call gfc_is_same_range.
350
 
351
        PR fortran/25395
352
        * trans-common.c (add_equivalences): Add a new flag that is set when
353
        an equivalence is seen that prevents more from being reset until the
354
        start of a new traversal of the list, thus ensuring completion of
355
        all the equivalences.
356
 
357
        PR fortran/25054
358
        * resolve.c (is_non_constant_shape_array): New function.
359
        (resolve_fl_variable): Remove code for the new function and call it.
360
        (resolve_fl_namelist): New function.  Add test for namelist array
361
        with non-constant shape, using is_non_constant_shape_array.
362
        (resolve_symbol): Remove code for resolve_fl_namelist and call it.
363
 
364
        PR fortran/25089
365
        * match.c (match_namelist): Increment the refs field of an accepted
366
        namelist object symbol.
367
        * resolve.c (resolve_fl_namelist): Test namelist objects for a conflict
368
        with contained or module procedures.
369
 
370
        PR fortran/24557
371
        * trans-expr.c (gfc_add_interface_mapping): Use the actual argument
372
        for character(*) arrays, rather than casting to the type and kind
373
        parameters of the formal argument.
374
 
375
2006-03-05  Thomas Koenig 
376
 
377
        PR fortran/23092
378
        backport from mainline
379
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc):
380
        If the mask expression exists and has rank 0, enclose the
381
        generated loop in an "if (mask)".  Put the default
382
        initialization into the else branch.
383
        * trans-intrinsic.c (gfc_conv_intrinsic_arith):  If the
384
        mask expression exists and has rank 0, enclose the generated
385
        loop in an "if (mask)".
386
        * (gfc_conv_intrinsic_minmaxloc):  Likewise.
387
 
388
2006-03-05  Thomas Koenig 
389
 
390
        backport from mainline
391
        * gfortran.texi:  Document environment variables which
392
        influence runtime behavior.
393
 
394
2006-03-04  Thomas Koenig  
395
 
396
        PR fortran/25045
397
        PR fortran/25075
398
        backport from mainline
399
        * check.c (dim_check):  Perform all checks if dim is optional.
400
        (gfc_check_minloc_maxloc):  Use dim_check and dim_rank_check
401
        to check dim argument.
402
        (check_reduction):  Likewise.
403
        check.c (identical_dimen_shape):  New function.
404
        (check_dot_product):  Use identical_dimen_shape() to check sizes
405
        for dot_product.
406
        (gfc_check_matmul):  Likewise.
407
        (gfc_check_merge):  Check conformance between tsource and fsource
408
        and between tsource and mask.
409
        (gfc_check_pack):  Check conformance between array and mask.
410
 
411
2006-03-04  Francois-Xavier Coudert  
412
 
413
        PR libfortran/21303
414
        * gfortran.h (notification): New enumeration.
415
        (gfc_notification_std): Prototype for the new function.
416
        * error.c (gfc_notification_std): New function.
417
        * io.c (check_format): Handle the case of a L format descriptor
418
        without a width.
419
 
420
2006-02-28  Release Manager
421
 
422
        * GCC 4.1.0 released.
423
 
424
2006-02-20  Erik Edelmann  
425
 
426
        PR fortran/26201
427
        * intrinsic.c (gfc_convert_type_warn): Call
428
        gfc_intrinsic_symbol() on the newly created symbol.
429
 
430
2006-02-14  Erik Edelmann  
431
 
432
        PR fortran/25806
433
        * trans-array.c (gfc_trans_allocate_array_storage): New argument
434
        dealloc; free the temporary only if dealloc is true.
435
        (gfc_trans_allocate_temp_array): New argument bool dealloc, to be
436
        passed onwards to gfc_trans_allocate_array_storage.
437
        (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
438
        gfc_trans_allocate_temp_array.
439
        * trans-array.h (gfc_trans_allocate_temp_array): Update function
440
        prototype.
441
        * trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc'
442
        to gfc_trans_allocate_temp_array to false in case of functions
443
        returning pointers.
444
        (gfc_trans_arrayfunc_assign): Return NULL for functions returning
445
        pointers.
446
 
447
2006-02-14  Francois-Xavier Coudert  
448
 
449
        PR libfortran/25425
450
        * trans-decl.c (gfc_generate_function_code): Add new argument,
451
        pedantic, to set_std call.
452
 
453
2006-02-13  Paul Thomas  
454
 
455
        PR fortran/26074
456
        PR fortran/25103
457
        * resolve.c (resolve_symbol): Extend the requirement that module
458
        arrays have constant bounds to those in the main program.  At the
459
        same time simplify the array bounds, to avoiding trapping parameter
460
        array references, and exclude automatic character length from main
461
        and modules. Rearrange resolve_symbol and resolve_derived to put as
462
        each flavor together, as much as is possible and move all specific
463
        code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new
464
        functions.
465
        (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure):
466
        New functions to do work of resolve_symbol.
467
        (resolve_index_expr): New function that is called from resolved_symbol
468
        and is extracted from resolve_charlen.
469
        (resolve_charlen): Call this new function.
470
        (resolve_fl_derived): Renamed resolve_derived to be consistent with
471
        the naming of the new functions for the other flavours.  Change the
472
        charlen checking so that the style is consistent with other similar
473
        checks. Add the generation of the gfc_dt_list, removed from resolve_
474
        symbol.
475
 
476
        PR fortran/20861
477
        * resolve.c (resolve_actual_arglist): Prevent internal procedures
478
        from being dummy arguments.
479
 
480
        PR fortran/20871
481
        * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic
482
        procedures from being dummy arguments.
483
 
484
        PR fortran/25083
485
        * resolve.c (check_data_variable): Add test that data variable is in
486
        COMMON.
487
 
488
        PR fortran/25088
489
        * resolve.c (resolve_call): Add test that the subroutine does not
490
        have a type.
491
 
492
2006-02-13  Paul Thomas  
493
 
494
        PR fortran/26038
495
        * trans-stmt.c (gfc_trans_allocate): Provide assumed character length
496
        scalar with missing backend_decl for the hidden dummy charlen.
497
 
498
        PR fortran/25059
499
        * interface.c (gfc_extend_assign): Remove detection of non-PURE
500
        subroutine in assignment interface, with gfc_error, and put it in
501
        * resolve.c (resolve_code).
502
 
503
        PR fortran/25070
504
        * interface.c (gfc_procedure_use): Flag rank checking for non-
505
        elemental, contained or interface procedures in call to
506
        (compare_actual_formal), where ranks are checked for assumed
507
        shape arrays..
508
 
509
2006-02-11  Tobias Schlüter  
510
 
511
        Backport r110819 and r110840 from the trunk
512
        PR fortran/14771
513
        * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES.
514
        * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES.
515
        * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as
516
        if it were INTRINSIC_UPLUS.
517
        * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES.
518
        * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES.
519
        * matchexp.c (match_primary): Record parentheses surrounding
520
        numeric expressions.
521
        * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module
522
        dumping.
523
        * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES.
524
 
525
        PR fortran/14771
526
        * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES.
527
        * expr.c (check_intrinsic_op): Likewise.
528
        * module.c (mio_expr): Likewise.
529
 
530
2006-02-10  Steven G. Kargl  
531
 
532
        PR fortran/25756
533
        * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove
534
        unneeded parenthesis. Fix-up the head of the list (2 lines gleaned
535
        from g95).
536
 
537
2006-02-10  Steven G. Kargl  
538
 
539
        PR fortran/20858
540
        *decl.c (variable_decl): Improve error message.  Remove initialization
541
        typespec.  Wrap long line.
542
        *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type,
543
        and rank.
544
        *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank
545
        are set.
546
 
547
 
548
2005-02-08  Thomas Koenig  
549
 
550
        PR libfortran/23815
551
        * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
552
        variable.
553
        * invoke.texi:  Mention the "Runtime" chapter.
554
        Document the -fconvert= option.
555
        * gfortran.h:  Add options_convert.
556
        * lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
557
        fconvert=native and fconvert=swap.
558
        * trans-decl.c (top level):  Add gfor_fndecl_set_convert.
559
        (gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
560
        (gfc_generate_function_code):  If -fconvert was specified,
561
        and this is the main program, add a call to set_convert().
562
        * options.c:  Handle the -fconvert options.
563
 
564
2006-02-05  Jakub Jelinek  
565
 
566
        * resolve.c (resolve_symbol): Initialize constructor_expr to NULL.
567
 
568
2006-02-04  Thomas Koenig  
569
 
570
        PR fortran/26039
571
        PR fortran/25046
572
        * expr.c (gfc_check_conformance):  Reorder error message
573
        to avoid plural.
574
        * check.c(gfc_check_minloc_maxloc):  Call gfc_check_conformance
575
        for checking arguments array and mask.
576
        (check_reduction):  Likewise.
577
 
578
2006-02-03  Steven G. Kargl  
579
            Paul Thomas  
580
 
581
        PR fortran/20845
582
        * resolve.c (resolve_symbol): Default initialization of derived type
583
        component reguires the SAVE attribute.
584
 
585
2006-02-02  Steven G. Kargl  
586
 
587
        PR fortran/24958
588
        match.c (gfc_match_nullify):  Free the list from head not tail.
589
 
590
        PR fortran/25072
591
        * match.c (match_forall_header): Fix internal error caused by bogus
592
        gfc_epxr pointers.
593
 
594
2005-01-31  Erik Edelmann  
595
 
596
        PR fortran/24266
597
        * trans-io.c (set_internal_unit): Check the rank of the
598
        expression node itself instead of its symbol.
599
 
600
2006-01-30  Paul Thomas  
601
 
602
        PR fortran/18578
603
        PR fortran/18579
604
        PR fortran/20857
605
        PR fortran/20885
606
        * interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT)
607
        if actual argument is not a variable.
608
 
609
        PR fortran/17911
610
        * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if
611
        the lvalue is a use associated procedure.
612
 
613
        PR fortran/20895
614
        PR fortran/25030
615
        * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue
616
        character lengths are not the same.  Use gfc_dep_compare_expr for the
617
        comparison.
618
        * gfortran.h: Add prototype for gfc_dep_compare_expr.
619
        * dependency.h: Remove prototype for gfc_dep_compare_expr.
620
 
621
2005-01-27  Paul Thomas  
622
 
623
        PR fortran/25951
624
        * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of
625
        generic_ids exempted from assumed size checking.
626
 
627
        PR fortran/25964
628
        * resolve.c (resolve_function): Exclude statement functions from
629
        global reference checking.
630
 
631
        PR fortran/25084
632
        PR fortran/20852
633
        PR fortran/25085
634
        PR fortran/25086
635
        * resolve.c (resolve_function): Declare a gfc_symbol to replace the
636
        references through the symtree to the symbol associated with the
637
        function expresion. Give error on reference to an assumed character
638
        length function is defined in an interface or an external function
639
        that is not a dummy argument.
640
        (resolve_symbol): Give error if an assumed character length function
641
        is array-valued, pointer-valued, pure or recursive. Emit warning
642
        that character(*) value functions are obsolescent in F95.
643
 
644
        PR fortran/25416
645
        * trans-expr.c (gfc_conv_function_call): The above patch to resolve.c
646
        prevents any assumed character length function call from getting here
647
        except intrinsics such as SPREAD. In this case, ensure that no
648
        segfault occurs from referencing non-existent charlen->length->
649
        expr_type and provide a backend_decl for the charlen from the charlen
650
        of the first actual argument.
651
 
652
        Cure temp name confusion.
653
        * trans-expr.c (gfc_get_interface_mapping_array): Change name of
654
        temporary from "parm" to "ifm" to avoid clash with temp coming from
655
        trans-array.c.
656
 
657
        PR fortran/25124
658
        PR fortran/25625
659
        * decl.c (get_proc_name): If there is an existing
660
        symbol in the encompassing namespace, call errors
661
        if it is a procedure of the same name or the kind
662
        field is set, indicating a type declaration.
663
 
664
        PR fortran/20881
665
        PR fortran/23308
666
        PR fortran/25538
667
        PR fortran/25710
668
        * decl.c (add_global_entry): New function to check
669
        for existing global symbol with this name and to
670
        create new one if none exists.
671
        (gfc_match_entry): Call add_global_entry before
672
        matching argument lists for subroutine and function
673
        entries.
674
        * gfortran.h: Prototype for existing function, global_used.
675
        * resolve.c (resolve_global_procedure): New function
676
        to check global symbols for procedures.
677
        (resolve_call, resolve_function): Calls to this
678
        new function for non-contained and non-module
679
        procedures.
680
        * match.c (match_common): Add check for existing
681
        global symbol, creat one if none exists and emit
682
        error if there is a clash.
683
        * parse.c (global_used): Remove static and use the
684
        gsymbol name rather than the new_block name, so that
685
        the function can be called from resolve.c.
686
        (parse_block_data, parse_module, add_global_procedure):
687
        Improve checks for existing gsymbols.  Emit error if
688
        already defined or if references were to another type.
689
        Set defined flag.
690
 
691
        PR fortran/24276
692
        * trans-expr.c (gfc_conv_aliased_arg): New function called by
693
        gfc_conv_function_call that coverts an expression for an aliased
694
        component reference to a derived type array into a temporary array
695
        of the same type as the component.  The temporary is passed as an
696
        actual argument for the procedure call and is copied back to the
697
        derived type after the call.
698
        (is_aliased_array): New function that detects an array reference
699
        that is followed by a component reference.
700
        (gfc_conv_function_call): Detect an aliased actual argument with
701
        is_aliased_array and convert it to a temporary and back again
702
        using gfc_conv_aliased_arg.
703
 
704
2006-01-27  Jakub Jelinek  
705
 
706
        PR fortran/25324
707
        * Make-lang.in (fortran/scanner.o): Depend on toplev.h.
708
        * lang.opt (fpreprocessed): New option.
709
        * scanner.c: Include toplev.h.
710
        (gfc_src_file, gfc_src_preprocessor_lines): New variables.
711
        (preprocessor_line): Unescape filename if there were any
712
        backslashes.
713
        (load_file): If initial and gfc_src_file is not NULL,
714
        use it rather than opening the file.  If gfc_src_preprocessor_lines
715
        has non-NULL elements, pass it to preprocessor_line.
716
        (unescape_filename, gfc_read_orig_filename): New functions.
717
        * gfortran.h (gfc_option_t): Add flag_preprocessed.
718
        (gfc_read_orig_filename): New prototype.
719
        * options.c (gfc_init_options): Clear flag_preprocessed.
720
        (gfc_post_options): If flag_preprocessed, call
721
        gfc_read_orig_filename.
722
        (gfc_handle_option): Handle OPT_fpreprocessed.
723
        * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing
724
        sources.
725
 
726
2005-01-27  Erik Edelmann  
727
 
728
        PR fortran/25716
729
        * symbol.c (free_old_symbol): New function.
730
        (gfc_commit_symbols): Use it.
731
        (gfc_commit_symbol): New function.
732
        (gfc_use_derived): Use it.
733
        * gfortran.h: Add prototype for gfc_commit_symbol.
734
        * intrinsic.c (gfc_find_function): Search in 'conversion'
735
        if not found in 'functions'.
736
        (gfc_convert_type_warn): Add a symtree to the new
737
        expression node, and commit the new symtree->n.sym.
738
        * resolve.c (gfc_resolve_index): Make sure typespec is
739
        properly initialized.
740
 
741
2005-01-25  Steven Bosscher  
742
        Tobias Schlüter  
743
 
744
        PR fortran/18540
745
        * resolve.c (resolve_branch): Allow FORTRAN 66 cross-block GOTOs
746
        as extension.
747
 
748
2005-01-23  Paul Thomas  
749
 
750
        Fix regression in testing of admissability of attributes.
751
        * symbol.c (gfc_add_attribute): If the current_attr has non-zero
752
        intent, do not do the check for a dummy being used.
753
        * decl.c (attr_decl1): Add current_attr.intent as the third argument
754
        in the call to gfc_add_attribute.
755
        * gfortran.h: Add the third argument to the prototype for
756
        gfc_add_attribute.
757
 
758
2006-01-21  Joseph S. Myers  
759
 
760
        * gfortranspec.c (lang_specific_driver): Update copyright notice
761
        date.
762
 
763
2006-01-18  Paul Thomas  
764
 
765
        PR fortran/20869
766
        PR fortran/20875
767
        PR fortran/25024
768
        * symbol.c (check_conflict): Add pointer valued elemental
769
        functions and internal procedures with the external attribute
770
        to the list of conflicts.
771
        (gfc_add_attribute): New catch-all function to perform the
772
        checking of symbol attributes for attribute declaration
773
        statements.
774
        * decl.c (attr_decl1): Call gfc_add_attribute for each of -
775
        (gfc_match_external, gfc_match_intent, gfc_match_intrinsic,
776
        gfc_match_pointer, gfc_match_dimension, gfc_match_target):
777
        Remove spurious calls to checks in symbol.c.  Set the
778
        attribute directly and use the call to attr_decl() for
779
        checking.
780
        * gfortran.h:  Add prototype for gfc_add_attribute.
781
 
782
        PR fortran/25785
783
        * resolve.c (resolve_function): Exclude PRESENT from assumed size
784
        argument checking. Replace strcmp's with comparisons with generic
785
        codes.
786
 
787
2006-01-14  Paul Thomas  
788
 
789
        PR fortran/22146
790
        * trans-array.c (gfc_reverse_ss): Remove static attribute.
791
        (gfc_walk_elemental_function_args): Replace gfc_expr * argument for
792
        the function call with the corresponding gfc_actual_arglist*.  Change
793
        code accordingly.
794
        (gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
795
        now requires the actual argument list instead of the expression for
796
        the function call.
797
        * trans-array.h: Modify the prototype for gfc_walk_elemental_function_args
798
        and provide a prototype for gfc_reverse_ss.
799
        * trans-stmt.h (gfc_trans_call): Add the scalarization code for the case
800
        where an elemental subroutine has array valued actual arguments.
801
 
802
        PR fortran/25029
803
        PR fortran/21256
804
        PR fortran/20868
805
        PR fortran/20870
806
        * resolve.c (check_assumed_size_reference): New function to check for upper
807
        bound in assumed size array references.
808
        (resolve_assumed_size_actual): New function to do a very restricted scan
809
        of actual argument expressions of those procedures for which incomplete
810
        assumed size array references are not allowed.
811
        (resolve_function, resolve_call): Switch off assumed size checking of
812
        actual arguments, except for elemental procedures and intrinsic
813
        inquiry functions, in some circumstances.
814
        (resolve_variable): Call check_assumed_size_reference.
815
 
816
2006-01-11  Bernhard Fischer  
817
 
818
        PR fortran/25486
819
        * scanner.c (load_line): use maxlen to determine the line-length used
820
        for padding lines in fixed form.
821
 
822
2005-01-11  Paul Thomas  
823
 
824
        PR fortran/25730
825
        * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for
826
        character lengths.
827
 
828
2006-01-09  Andrew Pinski  
829
 
830
        fortran/24936
831
        * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Use fold_convert
832
        to avoid type mismatch.
833
 
834
2006-01-09  Andrew Pinski  
835
 
836
        PR fortran/21977
837
        * trans-decl.c (gfc_generate_function_code): Move the NULLing of
838
        current_fake_result_decl down to below generate_local_vars.
839
 
840
2005-01-09  Erik Edelmann  
841
 
842
        PR fortran/25093
843
        * resolve.c (resolve_fntype): Check that PUBLIC functions
844
        aren't of PRIVATE type.
845
 
846
2006-01-09  Feng Wang  
847
 
848
        PR fortran/12456
849
        * trans-expr.c (gfc_to_single_character): New function that converts
850
        string to single character if its length is 1.
851
        (gfc_build_compare_string):New function that compare string and handle
852
        single character specially.
853
        (gfc_conv_expr_op): Use gfc_build_compare_string.
854
        (gfc_trans_string_copy): Use gfc_to_single_character.
855
        * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Use
856
        gfc_build_compare_string.
857
        * trans.h (gfc_build_compare_string): Add prototype.
858
 
859
2006-01-09  Feng Wang  
860
 
861
        * simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal
862
        constant.
863
        (gfc_simplify_ichar): Get the result from unsinged char and in the
864
        range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX.
865
 
866
2006-01-07  Jerry DeLisle  
867
 
868
        PR fortran/24268
869
        * io.c (next_char_not_space): New function that returns the next
870
        character that is not white space.
871
        (format_lex): Use the new function to skip whitespace within
872
        a format string.
873
 
874
2006-01-06 Steven G. Kargl  
875
 
876
        PR fortran/25101
877
        * resolve.c (resolve_forall_iterators):  Check for scalar variables;
878
        Check stride is nonzero.
879
 
880
        PR fortran/24640
881
        * parse.c (next_free): Check for whitespace after the label;
882
        Update copyright year.
883
        * match.c (gfc_match_small_literal_int): Initialize cnt variable;
884
        Update copyright year.
885
 
886
 
887
2006-01-05  Erik Edelmann  
888
 
889
        PR fortran/23675
890
        * expr.c (gfc_expr_set_symbols_referenced): New function.
891
        * gfortran.h: Add a function prototype for it.
892
        * resolve.c (resolve_function): Use it for
893
        use associated character functions lengths.
894
        * expr.c, gfortran.h, resolve.c: Updated copyright years.
895
 
896
2005-12-31  Steven G. Kargl 
897
 
898
        PR fortran/25106
899
        PR fortran/25055
900
        * io.c (match_dt_format): Remove second arg in gfc_match_st_label.
901
        * match.c (gfc_match_small_literal_int): Add cnt argument;
902
        (gfc_match_st_label,gfc_match_stopcode): Account for cnt argument.
903
        (gfc_match_st_label): Remove allow_zero (second argument), and use
904
        cnt for errors.
905
        (gfc_match_do,gfc_match_goto):  Remove second arg in gfc_match_st_label
906
        * match.h (gfc_match_small_literal_int,gfc_match_st_label):
907
        Update prototypes.
908
        * decl.c (match_char_length,gfc_match_old_kind_spec): Account for cnt.
909
        * parse.c (next_free): Account for cnt; Remove second arg in
910
        gfc_match_st_label
911
        * primary.c (match_kind_param): Ditto.
912
 
913
2005-12-30  Erik Edelmann  
914
 
915
        PR fortran/22607
916
        * trans-decl.c(gfc_get_extern_function_decl): Don't set
917
        DECL_IS_PURE (fndecl) = 1 for return-by-reference
918
        functions.
919
 
920
        fortran/PR 25396
921
        * interface.c (gfc_extend_expr): Initialize
922
        e->value.function.name to NULL.
923
 
924
2005-12-29  Paul Thomas  
925
 
926
        PR fortran/25532
927
        * trans-types.c (copy_dt_decls_ifequal): Copy declarations for
928
        components of derived type components by recursing into
929
        gfc_get_derived_type.
930
 
931
2005-12-28  Andrew Pinski  
932
 
933
        PR fortran/25587
934
        * trans-io.c (gfc_build_st_parameter): Correct off by one error.
935
 
936
2005-12-26  Paul Thomas  
937
 
938
        PR fortran/20889
939
        * resolve.c (resolve_structure_cons): Do not attempt to convert
940
        the type of mismatched pointer type components, except when
941
        the constructor component is BT_UNKNOWN; emit error instead.
942
 
943
        PR fortran/25018
944
        * expr.c (check_inquiry): Return FAILURE if there is no symtree to
945
        provide a name. Error/warning for assumed character length argument
946
        to LEN for an initialization expression, using GFC_GNU_STD. Add an
947
        argument to flag that the expression is not restricted.
948
        (check_init_expr): Improve the message for a failing variable.
949
        (gfc_match_init_expr): Call check_enquiry again to make sure that
950
        unsimplified expressions are not causing unnecessary errors.
951
 
952
        PR fortran/19362
953
        PR fortran/20244
954
        PR fortran/20864
955
        PR fortran/25391
956
        * interface.c (gfc_compare_types): Broken into two.
957
        (gfc_compare_derived_types): Second half of gfc_compare_types with
958
        corrections for a missing check that module name is non-NULL and
959
        a check for private components.
960
        * symbol.c (gfc_free_dt_list): New function.
961
        (gfc_free_namespace): Call gfc_free_dt_list.
962
        * resolve.c (resolve_symbol): Build the list of derived types in the
963
        symbols namespace.
964
        * gfortran.h: Define the structure type gfc_dt_list.  Add a new field,
965
        derived_types to gfc_namespace.  Provide a prototye for the new
966
        function gfc_compare_derived_types.
967
        * trans_types.c(gfc_get_derived_type): Test for the derived type being
968
        available in the host namespace. In this case, the host backend
969
        declaration is used for the structure and its components.  If an
970
        unbuilt, equal structure that is not use associated is found in the
971
        host namespace, build it there and then.  On exit,traverse the
972
        namespace of the derived type to see if there are equal but unbuilt.
973
        If so, copy the structure and its component declarations.
974
        (copy_dt_decls_ifequal): New functions to copy declarations to other
975
        equal structure types.
976
 
977
        PR fortran/20862
978
        * io.c (gfc_match_format): Make the appearance of a format statement
979
        in a module specification block an error.
980
 
981
        PR fortran/23152
982
        * match.c (gfc_match_namelist): Set assumed shape arrays in
983
        namelists as std=GFC_STD_GNU and assumed size arrays as an
984
        unconditional error.
985
 
986
        PR fortran/25069
987
        * match.c (gfc_match_namelist): Set the respecification of a USE
988
        associated namelist group as std=GFC_STD_GNU.  Permit the concatenation
989
        on no error.
990
 
991
        PR fortran/25053
992
        PR fortran/25063
993
        PR fortran/25064
994
        PR fortran/25066
995
        PR fortran/25067
996
        PR fortran/25068
997
        PR fortran/25307
998
        * io.c (resolve_tag): Change std on IOSTAT != default integer to
999
        GFC_STD_GNU and change message accordingly.  Add same error for
1000
        SIZE.
1001
        (match_dt_element, gfortran.h): Add field err_where to gfc_dt and
1002
        set it when tags are being matched.
1003
        (gfc_resolve_dt): Remove tests that can be done before resolution
1004
        and add some of the new ones here.
1005
        (check_io_constraints): New function that checks for most of the
1006
        data transfer constraints. Some of these were previously done in
1007
        match_io, from where this function is called, and some were done
1008
        in gfc_resolve_dt.
1009
        (match_io): Remove most of the tests of constraints and add the
1010
        call to check_io_constraints.
1011
 
1012
2005-12-24  Tobias Schl"uter  
1013
 
1014
        PR fortran/18990
1015
        * gfortran.h (gfc_charlen): Add resolved field.
1016
        * expr.c (gfc_specification_expr): Accept NULL argument.
1017
        * resolve.c (gfc_resolve_charlen, gfc_resolve_derived): New.
1018
        (gfc_resolve_symbol): Resolve derived type definitions.  Use
1019
        resolve_charlen to resolve character lengths.
1020
 
1021
2005-12-22  Steven G. Kargl  
1022
 
1023
        * decl.c (gfc_match_old_kind_spec,match_type_spec): Use gfc_std_notify
1024
        to report nonstandard intrinsic type declarations.
1025
 
1026
2005-12-21  Erik Edelmann  
1027
 
1028
        PR fortran/25423
1029
        * parse.c (parse_where_block): break instead of "fall
1030
        through" after parsing nested WHERE construct.
1031
 
1032
2005-12-20  Jerry DeLisle  
1033
 
1034
        PR fortran/24268
1035
        * io.c (format_lex): Allow whitespace within text of format specifier.
1036
 
1037
2005-12-20  Steven G. Kargl  
1038
            Tobias Schlueter 
1039
 
1040
        PR fortran/25458
1041
        * simplify.c (gfc_simplify_ibset, gfc_simplify_not): Add call to
1042
        twos_complement.
1043
 
1044
2005-12-14  Erik Edelmann  
1045
 
1046
        PR fortran/18197
1047
        * resolve.c (resolve_formal_arglist): Remove code to set
1048
        the type of a function symbol from it's result symbol.
1049
 
1050
2005-12-12  Steven G. Kargl  
1051
 
1052
        PR fortran/25078
1053
        * match.c (gfc_match_equivalence):  Count number of objects.
1054
 
1055
2005-12-13  Thomas Koenig  
1056
 
1057
        PR fortran/23815
1058
        * io.c (top level):  Add convert to io_tag.
1059
        (resolve_tag):  convert is GFC_STD_GNU.
1060
        (match_open_element):  Add convert.
1061
        (gfc_free_open):  Likewise.
1062
        (gfc_resolve_open):  Likewise.
1063
        (gfc_free_inquire):  Likewise.
1064
        (match_inquire_element):  Likewise.
1065
        * dump-parse-tree.c (gfc_show_code_node):  Add
1066
        convet for open and inquire.
1067
        gfortran.h: Add convert to gfc_open and gfc_inquire.
1068
        * trans-io.c (gfc_trans_open):  Add convert.
1069
        (gfc_trans_inquire):  Likewise.
1070
        * ioparm.def:  Add convert to open and inquire.
1071
        * gfortran.texi:  Document CONVERT.
1072
 
1073
2005-12-08  Erik Edelmann  
1074
 
1075
        PR fortran/25292
1076
        * check.c (gfc_check_associated): Allow function results
1077
        as actual arguments to ASSOCIATED.  Moved a misplaced
1078
        comment.
1079
 
1080
2005-12-07  Paul Thomas  
1081
 
1082
        PR fortran/15809
1083
        * trans-decl.c (gfc_get_symbol_decl):  In the case of automatic
1084
        character length, dummy pointer arrays, build an expression for
1085
        unit size of the array elements, to be picked up and used in the
1086
        descriptor dtype.
1087
        * trans-io.c (gfc_trans_transfer):  Modify the detection of
1088
        components of derived type arrays to use the gfc_expr references
1089
        instead of the array descriptor dtype.  This allows the latter
1090
        to contain expressions.
1091
 
1092
2005-12-02  Francois-Xavier Coudert  
1093
 
1094
        PR fortran/23912
1095
        * iresolve.c (gfc_resolve_dim, gfc_resolve_mod,
1096
        gfc_resolve_modulo): When arguments have different kinds, fold
1097
        the lower one to the largest kind.
1098
        * check.c (gfc_check_a_p): Arguments of different kinds is not
1099
        a hard error, but an extension.
1100
        * simplify.c (gfc_simplify_dim, gfc_simplify_mod,
1101
        gfc_simplify_modulo): When arguments have different kinds, fold
1102
        the lower one to the largest kind.
1103
 
1104
2005-12-01  Erik Schnetter  
1105
 
1106
        * decl.c (gfc_match_old_kind_spec):  Improve handling of old style
1107
        COMPLEX*N
1108
 
1109
2005-12-01  Bernhard Fischer 
1110
 
1111
        PR fortran/21302
1112
        * lang.opt: New options -ffree-line-length- and -ffree-line-length-none.
1113
        * gfortran.h: Add free_line_length and add description of
1114
        free_line_length and fixed_line_length.
1115
        * options.c (gfc_init_options, gfc_handle_option): Initialize
1116
        and set free_line_length and fixed_line_length.
1117
        * scanner.c (load_line): Set free_line_length to 132 and
1118
        fixed_line_length to 72 or user requested values.
1119
        * scanner.c: Typo in comment.
1120
        * invoke.texi: Document -ffree-line-length- and
1121
        -ffree-line-length-none
1122
 
1123
2005-11-30  Paul Thomas  
1124
 
1125
        PR fortran/24223
1126
        * resolve.c (resolve_contained_fntype) Error if an internal
1127
        function is assumed character length.
1128
 
1129
        PR fortran/24705
1130
        * trans-decl.c (gfc_create_module_variable) Skip ICE in
1131
        when backend decl has been built and the symbol is marked
1132
        as being in an equivalence statement.
1133
 
1134
2005-11-29  Jakub Jelinek  
1135
 
1136
        * io.c (gfc_resolve_open): RESOLVE_TAG access field as well.
1137
 
1138
2005-11-27 Bernhard Fischer 
1139
 
1140
        * gfortran.h: remove superfluous whitespace and use GNU
1141
        comment-style for the documentation of backend_decl.
1142
 
1143
2005-11-26  Steven G. Kargl  
1144
 
1145
        PR fortran/24917
1146
        * primary.c (match_boz_constant):  Implement postfix BOZ constants;
1147
        (match_string_constant): Peek for b, o, z, and x
1148
 
1149
        * gfortran.dg/boz_6.f90: New test.
1150
 
1151
2005-11-21  Jakub Jelinek  
1152
 
1153
        PR fortran/14943
1154
        PR fortran/21647
1155
        * Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def.
1156
        * dump-parse-tree.c (gfc_show_code_node): Dump c->block for
1157
        EXEC_{READ,WRITE,IOLENGTH} nodes.
1158
        * io.c (terminate_io, match_io, gfc_match_inquire): Put data
1159
        transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block.
1160
        * resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}.
1161
        * trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor,
1162
        ioparm_list_format, ioparm_library_return, ioparm_iostat,
1163
        ioparm_exist, ioparm_opened, ioparm_number, ioparm_named,
1164
        ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in,
1165
        ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len,
1166
        ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len,
1167
        ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len,
1168
        ioparm_position, ioparm_position_len, ioparm_action,
1169
        ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad,
1170
        ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance,
1171
        ioparm_advance_len, ioparm_name, ioparm_name_len,
1172
        ioparm_internal_unit, ioparm_internal_unit_len,
1173
        ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len,
1174
        ioparm_direct, ioparm_direct_len, ioparm_formatted,
1175
        ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len,
1176
        ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len,
1177
        ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name,
1178
        ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg,
1179
        ioparm_iomsg_len, ioparm_var): Remove.
1180
        (enum ioparam_type, enum iofield_type, enum iofield,
1181
        enum iocall): New enums.
1182
        (gfc_st_parameter_field, gfc_st_parameter): New typedefs.
1183
        (st_parameter, st_parameter_field, iocall): New variables.
1184
        (ADD_FIELD, ADD_STRING): Remove.
1185
        (dt_parm, dt_post_end_block): New variables.
1186
        (gfc_build_st_parameter): New function.
1187
        (gfc_build_io_library_fndecls): Use it.  Initialize iocall
1188
        array rather than ioparm_*, add extra first arguments to
1189
        the function types.
1190
        (set_parameter_const): New function.
1191
        (set_parameter_value): Add type argument, return a bitmask.
1192
        Changed to set a field in automatic structure variable rather
1193
        than set a field in a global _gfortran_ioparm variable.
1194
        (set_parameter_ref): Likewise.  If requested var has different
1195
        size than what field should point to, call with a temporary and
1196
        then copy into the user variable.  Add postblock argument.
1197
        (set_string): Remove var_len argument, add type argument, return
1198
        a bitmask.  Changed to set fields in automatic structure variable
1199
        rather than set a field in a global _gfortran_ioparm variable.
1200
        (set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments,
1201
        add var argument.  Return a bitmask.  Changed to set fields in
1202
        automatic structure variable rather than set a field in a global
1203
        _gfortran_ioparm variable.
1204
        (set_flag): Removed.
1205
        (io_result): Add var argument.  Changed to read common.flags field
1206
        from automatic structure variable and bitwise AND it with 3.
1207
        (set_error_locus): Add var argument.  Changed to set fields in
1208
        automatic structure variable rather than set a field in a global
1209
        _gfortran_{filename,line} variables.
1210
        (gfc_trans_open): Use gfc_start_block rather than gfc_init_block.
1211
        Create a temporary st_parameter_* structure.  Adjust callers of
1212
        all above mentioned functions.  Pass address of the temporary
1213
        variable as first argument to the generated function call.
1214
        Use iocall array rather than ioparm_* separate variables.
1215
        (gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise.
1216
        (build_dt): Likewise.  Change first argument to tree from tree *.
1217
        Don't dereference code->ext.dt if last_dt == INQUIRE.  Emit
1218
        IOLENGTH argument setup here.  Set dt_parm/dt_post_end_block
1219
        variables and gfc_trans_code the nested data transfer commands
1220
        in code->block.
1221
        (gfc_trans_iolength): Just set last_dt and call build_dt immediately.
1222
        (transfer_namelist_element): Pass address of dt_parm variable
1223
        to generated functions.  Use iocall array rather than ioparm_*
1224
        separate variables.
1225
        (gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind,
1226
        gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array
1227
        rather than ioparm_* separate variables.
1228
        (gfc_trans_dt_end): Likewise.  Pass address of dt_parm variable
1229
        as first argument to generated function.  Adjust io_result caller.
1230
        Prepend dt_post_end_block before io_result code.
1231
        (transfer_expr): Use iocall array rather than ioparm_* separate
1232
        variables.  Pass address of dt_parm variables as first argument
1233
        to generated functions.
1234
        * ioparm.def: New file.
1235
 
1236
2005-11-20  Toon Moene  
1237
 
1238
        * invoke.texi: Remove superfluous @item.
1239
 
1240
2005-11-20  Janne Blomqvist  
1241
 
1242
        PR fortran/24862
1243
        * trans-io.c (gfc_trans_transfer): Handle arrays of derived type.
1244
 
1245
2005-11-17  Francois-Xavier Coudert  
1246
 
1247
        PR fortran/20811
1248
        * scanner.c (gfc_open_included_file): Add an extra include_cwd
1249
        argument. Only include files in the current working directory if
1250
        its value is true.
1251
        * gfortran.h: Change prototype for gfc_open_included_file.
1252
        (load_file): Don't search for include files in the current working
1253
        directory.
1254
        * options.c (gfc_post_options): Add the directory of the source file
1255
        to the list of paths for included files.
1256
        * module.c (gfc_use_module): Look for module files in the current
1257
        directory.
1258
 
1259
2005-11-16  Alan Modra  
1260
 
1261
        PR fortran/24096
1262
        * trans-types.c (gfc_init_kinds): Use one less for max_exponent
1263
        of IBM extended double format.
1264
 
1265
2005-11-13  Francois-Xavier Coudert  
1266
 
1267
        * intrinsic.c (add_functions): Add COMPLEX, FTELL, FGETC, FGET,
1268
        FPUTC, FPUT, AND, XOR and OR intrinsic functions.
1269
        (add_subroutines): Add FGETC, FGET, FPUTC, FPUT and FTELL intrinsic
1270
        subroutines.
1271
        * gfortran.h: Add GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET,
1272
        GFC_ISYM_FGETC, GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL,
1273
        GFC_ISYM_OR, GFC_ISYM_XOR.
1274
        * iresolve.c (gfc_resolve_and, gfc_resolve_complex,
1275
        gfc_resolve_or, gfc_resolve_fgetc, gfc_resolve_fget,
1276
        gfc_resolve_fputc, gfc_resolve_fput, gfc_resolve_ftell,
1277
        gfc_resolve_xor, gfc_resolve_fgetc_sub, gfc_resolve_fget_sub,
1278
        gfc_resolve_fputc_sub, gfc_resolve_fput_sub, gfc_resolve_ftell_sub):
1279
        New functions.
1280
        * check.c (gfc_check_complex, gfc_check_fgetputc_sub,
1281
        gfc_check_fgetputc, gfc_check_fgetput_sub, gfc_check_fgetput,
1282
        gfc_check_ftell, gfc_check_ftell_sub, gfc_check_and): New functions.
1283
        * simplify.c (gfc_simplify_and, gfc_simplify_complex, gfc_simplify_or,
1284
        gfc_simplify_xor): New functions.
1285
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
1286
        GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, GFC_ISYM_FGETC,
1287
        GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, GFC_ISYM_OR and
1288
        GFC_ISYM_XOR.
1289
        * intrinsic.h: Add prototypes for all functions added to iresolve.c,
1290
        simplify.c and check.c.
1291
 
1292
2005-11-10  Paul Thomas  
1293
            Steven G. Kargl 
1294
 
1295
        PR fortran/15976
1296
        * resolve.c (resolve_symbol): Disallow automatic arrays in module scope.
1297
 
1298
2005-11-10  Paul Thomas  
1299
 
1300
        PR fortran/24655
1301
        PR fortran/24755
1302
        * match.c (recursive_stmt_fcn): Add checks that symtree exists
1303
        for the expression to weed out inline intrinsic functions and
1304
        parameters.
1305
 
1306
        PR fortran/24409
1307
        * module.c (mio_symtree_ref): Correct the patch of 0923 so that
1308
        a symbol is not substituted for by a the symbol for the module
1309
        itself and to prevent the promotion of a formal argument.
1310
 
1311
2005-11-10  Tobias Schl"uter  
1312
 
1313
        PR fortran/24643
1314
        * primary.c (match_varspec): Check for implicitly typed CHARACTER
1315
        variables before matching substrings.
1316
 
1317
2005-11-09  Steven G. Kargl  
1318
 
1319
        * trans-intrinsic.c: Typo in comment.
1320
 
1321
2005-11-09  Erik Edelmann  
1322
 
1323
        PR fortran/22607
1324
        * trans-decl.c(build_function_decl): Don't set
1325
        DECL_IS_PURE (fndecl) = 1 for return-by-reference
1326
        functions.
1327
 
1328
2005-11-08  Tobias Schl"uter  
1329
 
1330
        * dump-parse-tree.c: Fix comment typo, add a few blank lines.
1331
 
1332
2005-11-07  Steven G. Kargl  
1333
 
1334
        * error.c: Use flag_fatal_error.
1335
        * invoke.texi:  Remove -Werror from list of options.
1336
 
1337
2005-11-06  Paul Thomas  
1338
 
1339
        PR fortran/24534
1340
        * resolve.c (resolve_symbol): Exclude case of PRIVATE declared
1341
        within derived type from error associated with PRIVATE type
1342
        components within derived type.
1343
 
1344
        PR fortran/20838
1345
        PR fortran/20840
1346
        * gfortran.h: Add prototype for gfc_has_vector_index.
1347
        * io.c (gfc_resolve_dt): Error if internal unit has a vector index.
1348
        * expr.c (gfc_has_vector_index): New function to check if any of
1349
        the array references of an expression have vector inidices.
1350
        (gfc_check_pointer_assign): Error if internal unit has a vector index.
1351
 
1352
        PR fortran/17737
1353
        * data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
1354
        and replace by a standard dependent warning/error if overwriting an
1355
        existing initialization.
1356
        * decl.c (gfc_data_variable): Remove old error for already initialized
1357
        variable and the unused error check for common block variables.  Add
1358
        error for hots associated variable and standard dependent error for
1359
        common block variables, outside of blockdata.
1360
        * symbol.c (check_conflict): Add constraints for DATA statement.
1361
 
1362
2005-11-06  Janne Blomqvist 
1363
 
1364
        PR fortran/24174
1365
        PR fortran/24305
1366
        * fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind
1367
        argument to transfer_array.
1368
        (transfer_array_desc): Add kind argument.
1369
 
1370
2005-11-06  Francois-Xavier Coudert  
1371
 
1372
        * intrinsic.c (add_functions): Add ctime and fdate intrinsics.
1373
        (add_subroutines): Likewise.
1374
        * intrinsic.h: Prototypes for gfc_check_ctime,
1375
        gfc_check_ctime_sub, gfc_check_fdate_sub, gfc_resolve_ctime,
1376
        gfc_resolve_fdate, gfc_resolve_ctime_sub, gfc_resolve_fdate_sub.
1377
        * gfortran.h: Add GFC_ISYM_CTIME and GFC_ISYM_FDATE.
1378
        * iresolve.c (gfc_resolve_ctime, gfc_resolve_fdate,
1379
        gfc_resolve_ctime_sub, gfc_resolve_fdate_sub): New functions.
1380
        * trans-decl.c (gfc_build_intrinsic_function_decls): Add
1381
        gfor_fndecl_fdate and gfor_fndecl_ctime.
1382
        * check.c (gfc_check_ctime, gfc_check_ctime_sub,
1383
        gfc_check_fdate_sub): New functions.
1384
        * trans-intrinsic.c (gfc_conv_intrinsic_ctime,
1385
        gfc_conv_intrinsic_fdate): New functions.
1386
        (gfc_conv_intrinsic_function): Add cases for GFC_ISYM_CTIME
1387
        and GFC_ISYM_FDATE.
1388
        * intrinsic.texi: Documentation for the new CTIME and FDATE
1389
        intrinsics.
1390
        * trans.h: Declarations for gfor_fndecl_ctime and gfor_fndecl_fdate.
1391
 
1392
2005-11-05  Kazu Hirata  
1393
 
1394
        * decl.c, trans-decl.c: Fix comment typos.
1395
        * gfortran.texi: Fix a typo.
1396
 
1397
2005-11-05  Francois-Xavier Coudert  
1398
 
1399
        * intrinsic.c (add_functions): Add function version of TTYNAM.
1400
        * intrinsic.h: Add prototypes for gfc_check_ttynam and
1401
        gfc_resolve_ttynam.
1402
        * gfortran.h: Add case for GFC_ISYM_TTYNAM.
1403
        * iresolve.c (gfc_resolve_ttynam): New function.
1404
        * trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree
1405
        for function call to library ttynam.
1406
        * check.c (gfc_check_ttynam): New function.
1407
        * trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function.
1408
        (): Call gfc_conv_intrinsic_ttynam.
1409
        * trans.h: Add prototype for gfor_fndecl_ttynam.
1410
 
1411
2005-11-04  Steven G. Kargl 
1412
 
1413
        PR fortran/24636
1414
        * match.c (gfc_match_stopcode):  Set stop_code = -1.
1415
 
1416
2005-11-04  Francois-Xavier Coudert  
1417
 
1418
        PR fortran/18452
1419
        * lang-specs.h: Pass -lang-fortran to the preprocessor.
1420
 
1421
2005-11-02  Andrew Pinski  
1422
 
1423
        PR fortran/18157
1424
        * trans-array.c (gfc_conv_resolve_dependencies): Use the correct
1425
        type for the temporary array.
1426
        * trans-expr.c (gfc_trans_assignment): Pass lss
1427
        instead of lss_section
1428
        to gfc_conv_resolve_dependencies to get the
1429
        correct type.
1430
 
1431
2005-11-02  Tobias Schl"uter  
1432
 
1433
        * decl.c (gfc_match_entry): Function entries don't need an argument
1434
        list if there's no RESULT clause.
1435
 
1436
2005-11-01  Tobias Schl"uter  
1437
 
1438
        PR fortran/24008
1439
        * decl.c (gfc_match_entry): Function entries need an argument list.
1440
 
1441
2005-11-01  Erik Edelmann  
1442
 
1443
        PR 24245
1444
        * trans.c (gfc_generate_code): Move code to create a main
1445
        program symbol from here ...
1446
        * parse.c (main_program_symbol): ... to this new
1447
        function, setting the locus from gfc_current_locus
1448
        instead of ns->code->loc.
1449
        (gfc_parse_file):  Call main_program_symbol for main programs.
1450
 
1451
2005-11-01  Tobias Schl"uter  
1452
 
1453
        PR fortran/24404
1454
        * resolve.c (resolve_symbol): Output symbol names in more error
1455
        messages, clarify error message.
1456
 
1457
2005-11-01  Tobias Schl"uter  
1458
 
1459
        * dump-parse-tree.c (show_symtree): Revert change unintentionally
1460
        committed in r106246.
1461
 
1462
2005-11-01  Paul Thomas  
1463
 
1464
        PR fortran/21565
1465
        * symbol.c (check_conflict): An object cannot be in a namelist and in
1466
        block data.
1467
 
1468
        PR fortran/18737
1469
        * resolve.c (resolve_symbol): Set the error flag to
1470
        gfc_set_default_type, in the case of an external symbol, so that
1471
        an error message is emitted if IMPLICIT NONE is set.
1472
 
1473
        PR fortran/14994
1474
        * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SECNDS to enum.
1475
        * check.c (gfc_check_secnds): New function.
1476
        * intrinsic.c (add_functions): Add call to secnds.
1477
        * iresolve.c (gfc_resolve_secnds): New function.
1478
        * trans-intrinsic (gfc_conv_intrinsic_function): Add call to
1479
        secnds via case GFC_ISYM_SECNDS.
1480
        * intrinsic.texi: Add documentation for secnds.
1481
 
1482
2005-10-31  Andreas Schwab  
1483
 
1484
        * Make-lang.in (GFORTRAN_TARGET_INSTALL_NAME): Define.
1485
        (GFORTRAN_CROSS_NAME): Remove.
1486
        (fortran.install-common): Correctly install a cross compiler.
1487
        (fortran.uninstall): Use GFORTRAN_TARGET_INSTALL_NAME instead of
1488
        GFORTRAN_CROSS_NAME.
1489
 
1490
2005-10-30  Erik Edelmann  
1491
 
1492
        * gfortran.texi: Update contributors.
1493
 
1494
2005-10-30  Erik Edelmann  
1495
 
1496
        PR fortran/18883
1497
        * trans-decl.c (gfc_finish_var_decl): Add decl to the
1498
        current function, rather than the parent.  Make
1499
        assertion accept fake result variables.
1500
        * trans-expr.c (gfc_conv_variable): If the character
1501
        length of an ENTRY isn't set, get the length from
1502
        the master function instead.
1503
 
1504
2005-10-30  Thomas Koenig  
1505
 
1506
        * gfortran.texi:  Remove reservations about I/O usability.  Document
1507
        that array intrinsics mostly work.
1508
 
1509
2005-10-30  Tobias Schl"uter  
1510
 
1511
        * gfortran.texi: Move license stuff to back.  Add information
1512
        on ENUM and ENUMERATOR.
1513
        * invoke.texi: Document -fshort-enums.
1514
 
1515
2005-10-30  Gaurav Gautam  
1516
            Tobias Schl"uter  
1517
 
1518
        * arith.c (gfc_enum_initializer): New function.
1519
        (gfc_check_integer_range): Made extern.
1520
        * decl.c (enumerator_history): New typedef.
1521
        (last_initializer, enum_history, max_enum): New variables.
1522
        (create_enum_history, gfc_free_enum_history): New functions.
1523
        (add_init_expr_to_sym): Call create_enum_history if parsing ENUM.
1524
        (variable_decl): Modified to parse enumerator definition.
1525
        (match_attr_spec): Add PARAMETER attribute to ENUMERATORs.
1526
        (gfc_match_data_decl): Issues error, if match_type_spec do not
1527
        return desired return values.
1528
        (set_enum_kind, gfc_match_enum, gfc_match_enumerator_def): New
1529
        functions.
1530
        (gfc_match_end): Deal with END ENUM.
1531
        * gfortran.h (gfc_statement): ST_ENUM, ST_ENUMERATOR, ST_END_ENUM
1532
        added.
1533
        (symbol_attribute): Bit field for enumerator added.
1534
        (gfc_options): Add fshort_enums.
1535
        (gfc_enum_initializer, gfc_check_integer_range): Add prototypes.
1536
        * options.c: Include target.h
1537
        (gfc_init_options): Initialize fshort_enums.
1538
        (gfc_handle_option): Deal with fshort_enums.
1539
        * parse.c (decode_statement): Match ENUM and ENUMERATOR statement.
1540
        (gfc_ascii_statement): Deal with the enumerator statements.
1541
        (parse_enum): New function to parse enum construct.
1542
        (parse_spec): Added case ST_ENUM.
1543
        * parse.h (gfc_compile_state): COMP_ENUM added.
1544
        (gfc_match_enum, gfc_match_enumerator_def, gfc_free_enum_history):
1545
        Prototype added.
1546
        * symbol.c (gfc_copy_attr): Copy enumeration attribute.
1547
        * lang.opt (fshort-enums): Option added.
1548
 
1549
2005-10-30  Francois-Xavier Coudert  
1550
 
1551
        * check.c (gfc_check_malloc, gfc_check_free): New functions.
1552
        * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_MALLOC.
1553
        * intrinsic.c (add_functions): Add symbols for MALLOC function.
1554
        (add_subroutines): Add symbol for FREE subroutine.
1555
        * intrinsic.h: Prototypes for gfc_check_malloc, gfc_check_free,
1556
        gfc_resolve_malloc and gfc_resolve_free.
1557
        * intrinsic.texi: Add doc for FREE and MALLOC intrinsics.
1558
        * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): New
1559
        functions.
1560
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case for
1561
        GFC_ISYM_MALLOC.
1562
 
1563
2005-10-30  Steven Bosscher  
1564
 
1565
        * gfortran.texi: Update contributors.
1566
 
1567
2005-10-29  Steven Bosscher  
1568
 
1569
        * interface.c: Fix previous checkin (an incomplete patch
1570
        was commited for me).
1571
 
1572
2005-10-29  Joseph S. Myers  
1573
 
1574
        * intrinsic.texi: Remove empty @cindex line.
1575
 
1576
2005-10-28  Francois-Xavier Coudert  
1577
 
1578
        * check.c (gfc_check_alarm_sub, gfc_check_signal,
1579
        gfc_check_signal_sub): New functions.
1580
        * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIGNAL.
1581
        * intrinsic.c (add_functions): Add signal intrinsic.
1582
        (add_subroutines): Add signal and alarm intrinsics.
1583
        * intrinsic.texi: Document the new intrinsics.
1584
        * iresolve.c (gfc_resolve_signal, gfc_resolve_alarm_sub,
1585
        gfc_resolve_signal_sub): New functions.
1586
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Add case
1587
        for GFC_ISYM_SIGNAL.
1588
        * intrinsic.h: Add prototypes for gfc_check_alarm_sub,
1589
        gfc_check_signal, gfc_check_signal_sub, gfc_resolve_signal,
1590
        gfc_resolve_alarm_sub, gfc_resolve_signal_sub.
1591
 
1592
2005-10-28  Steven Bosscher  
1593
 
1594
        PR fortran/24545
1595
        * interface.c (gfc_match_end_interface): Fix typo in
1596
        INTERFACE_USER_OP case.
1597
 
1598
2005-10-26  Francois-Xavier Coudert  
1599
 
1600
        PR fortran/15586
1601
        * resolve.c (resolve_symbol): Remove the use of whynot, so that
1602
        error messages are not built from pieces.
1603
 
1604
2005-10-26  Paul Thomas  
1605
 
1606
        PR fortran/24158
1607
        * decl.c (gfc_match_data_decl): Correct broken bit of code
1608
        that prevents undefined derived types from being used as
1609
        components of another derived type.
1610
        * resolve.c (resolve_symbol): Add backstop error when derived
1611
        type variables arrive here with a type that has no components.
1612
 
1613
2005-10-25  Jakub Jelinek  
1614
 
1615
        * trans.h (gfc_conv_cray_pointee): Remove.
1616
        * trans-expr.c (gfc_conv_variable): Revert 2005-10-24 change.
1617
        * trans-array.c (gfc_conv_array_parameter): Likewise.
1618
        * trans-decl.c (gfc_conv_cray_pointee): Remove.
1619
        (gfc_finish_cray_pointee): New function.
1620
        (gfc_finish_var_decl): Use it.  Don't return early for Cray
1621
        pointees.
1622
        (gfc_create_module_variable): Revert 2005-10-24 change.
1623
        * decl.c (cray_pointer_decl): Update comment.
1624
        * gfortran.texi: Don't mention Cray pointees aren't visible in the
1625
        debugger.
1626
 
1627
        * symbol.c (check_conflict): Add conflict between cray_pointee
1628
        and in_common resp. in_equivalence.
1629
        * resolve.c (resolve_equivalence): Revert 2005-10-24 change.
1630
 
1631
        * module.c (ab_attribute): Add AB_CRAY_POINTER and AB_CRAY_POINTEE.
1632
        (attr_bits): Likewise.
1633
        (mio_symbol_attribute): Save and restore cray_pointe{r,e} attributes.
1634
        (mio_symbol): For cray_pointee write/read cp_pointer reference.
1635
 
1636
2005-10-25  Feng Wang  
1637
 
1638
        PR fortran/22290
1639
        * trans-decl.c (gfc_add_assign_aux_vars): New function. Add two
1640
        auxiliary variables.
1641
        (gfc_get_symbol_decl): Use it when a variable, including dummy
1642
        argument, is assigned a label.
1643
        (gfc_trans_assign_aux_var): New function. Set initial value of
1644
        the auxiliary variable explicitly.
1645
        (gfc_trans_deferred_vars): Use it.
1646
        * trans-stmt.c (gfc_conv_label_variable): Handle dummy argument.
1647
 
1648
2005-10-24  Asher Langton  
1649
 
1650
        PR fortran/17031
1651
        PR fortran/22282
1652
        * check.c (gfc_check_loc): New function.
1653
        * decl.c (variable_decl): New variables cp_as and sym.  Added a
1654
        check for variables that have already been declared as Cray
1655
        Pointers, so we can get the necessary attributes without adding
1656
        a new symbol.
1657
        (attr_decl1): Added code to catch pointee symbols and "fix"
1658
        their array specs.
1659
        (cray_pointer_decl): New method.
1660
        (gfc_match_pointer): Added Cray pointer parsing code.
1661
        (gfc_mod_pointee_as): New method.
1662
        * expr.c (gfc_check_assign): Added a check to catch vector-type
1663
        assignments to pointees with an unspecified final dimension.
1664
        * gfortran.h: (GFC_ISYM_LOC): New.
1665
        (symbol_attribute): Added cray_pointer and cray_pointee bits.
1666
        (gfc_array_spec): Added cray_pointee and cp_was_assumed bools.
1667
        (gfc_symbol): Added gfc_symbol *cp_pointer.
1668
        (gfc_option): Added flag_cray_pointer.
1669
        (gfc_add_cray_pointee): Declare.
1670
        (gfc_add_cray_pointer ): Declare.
1671
        (gfc_mod_pointee_as): Declare.
1672
        * intrinsic.c (add_functions): Add code for loc() intrinsic.
1673
        * intrinsic.h (gfc_check_loc): Declare.
1674
        (gfc_resolve_loc): Declare.
1675
        * iresolve.c (gfc_resolve_loc): New.
1676
        * lang.opt: Added fcray-pointer flag.
1677
        * options.c (gfc_init_options): Initialized.
1678
        gfc_match_option.flag_cray_pointer.
1679
        (gfc_handle_option): Deal with -fcray-pointer.
1680
        * parse.c:(resolve_equivalence): Added code prohibiting Cray
1681
        pointees in equivalence statements.
1682
        * resolve.c (resolve_array_ref): Added code to prevent bounds
1683
        checking for Cray Pointee arrays.
1684
        (resolve_equivalence): Prohibited pointees in equivalence
1685
        statements.
1686
        * symbol.c (check_conflict): Added Cray pointer/pointee
1687
        attribute checking.
1688
        (gfc_add_cray_pointer): New.
1689
        (gfc_add_cray_pointee): New.
1690
        (gfc_copy_attr): New code for Cray pointers and pointees.
1691
        * trans-array.c (gfc_trans_auto_array_allocation): Added code to
1692
        prevent space from being allocated for pointees.
1693
        (gfc_conv_array_parameter): Added code to catch pointees and
1694
        correctly set their base address.
1695
        * trans-decl.c (gfc_finish_var_decl): Added code to prevent
1696
        pointee declarations from making it to the back end.
1697
        (gfc_create_module_variable): Same.
1698
        * trans-expr.c (gfc_conv_variable): Added code to detect and
1699
        translate pointees.
1700
        (gfc_conv_cray_pointee): New.
1701
        * trans-intrinsic.c (gfc_conv_intrinsic_loc): New.
1702
        (gfc_conv_intrinsic_function): Added entry point for loc
1703
        translation.
1704
        * trans.h (gfc_conv_cray_pointee): Declare.
1705
 
1706
        * gfortran.texi: Added section on Cray pointers, removed Cray
1707
        pointers from list of proposed extensions.
1708
        * intrinsic.texi: Added documentation for loc intrinsic.
1709
        * invoke.texi: Documented -fcray-pointer flag.
1710
 
1711
2005-10-24  Asher Langton  
1712
 
1713
        * decl.c (gfc_match_save): Changed duplicate SAVE errors to
1714
        warnings in the absence of strict standard conformance
1715
        * symbol.c (gfc_add_save): Same.
1716
 
1717
2005-10-24  Francois-Xavier Coudert  
1718
 
1719
        PR fortran/15586
1720
        * arith.c (gfc_arith_error): Change message to include locus.
1721
        (check_result, eval_intrinsic, gfc_int2int, gfc_real2real,
1722
        gfc_real2complex, gfc_complex2real, gfc_complex2complex): Use
1723
        the new gfc_arith_error.
1724
        (arith_error): Rewrite full error messages instead of building
1725
        them from pieces.
1726
        * check.c (must_be): Removed.
1727
        (type_check, numeric_check, int_or_real_check, real_or_complex_check,
1728
        kind_check, double_check, logical_array_check, array_check,
1729
        scalar_check, same_type_check, rank_check, kind_value_check,
1730
        variable_check, gfc_check_allocated, gfc_check_associated,
1731
        gfc_check_cmplx, gfc_check_dcmplx, gfc_check_dot_product,
1732
        gfc_check_index, gfc_check_kind, gfc_check_matmul, gfc_check_null,
1733
        gfc_check_pack, gfc_check_precision, gfc_check_present,
1734
        gfc_check_spread): Rewrite full error messages instead of
1735
        building them from pieces.
1736
        * decl.c (gfc_match_entry): Rewrite full error messages instead
1737
        of building them from pieces.
1738
        * parse.c (gfc_state_name): Remove.
1739
        * parse.h: Remove prototype for gfc_state_name.
1740
 
1741
2005-10-23  Andrew Pinski  
1742
 
1743
        PR fortran/23635
1744
        * check.c (gfc_check_ichar_iachar): Move the code around so
1745
        that the check on the length is after check for
1746
        references.
1747
 
1748
2005-10-23  Asher Langton  
1749
 
1750
        * decl.c (match_type_spec): Add a BYTE type as an extension.
1751
 
1752
2005-10-23  Paul Thomas  
1753
 
1754
        PR fortran/18022
1755
        * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL
1756
        if there is a component ref during an array ref to force
1757
        use of temporary in assignment.
1758
 
1759
        PR fortran/24311
1760
        PR fortran/24384
1761
        * fortran/iresolve.c (check_charlen_present): New function to
1762
        add a charlen to the typespec, in the case of constant
1763
        expressions.
1764
        (gfc_resolve_merge, gfc_resolve_spread): Call.the above.
1765
        (gfc_resolve_spread): Make calls to library functions that
1766
        handle the case of the spread intrinsic with a scalar source.
1767
 
1768
2005-10-22  Erik Edelmann  
1769
 
1770
        PR fortran/24426
1771
        * decl.c (variable_decl): Don't assign default initializers to
1772
        pointers.
1773
 
1774
2005-10-21  Jakub Jelinek  
1775
 
1776
        * interface.c (compare_actual_formal): Issue error when attempting
1777
        to pass an assumed-size array as assumed-shape array argument.
1778
 
1779
2005-10-20  Erik Edelmann  
1780
 
1781
        PR fortran/21625
1782
        * resolve.c (expr_to_initialize): New function.
1783
        (resolve_allocate_expr): Take current statement as new
1784
        argument. Add default initializers to variables of
1785
        derived types, if they need it.
1786
        (resolve_code): Provide current statement as argument to
1787
        resolve_allocate_expr().
1788
 
1789
2005-10-19  Paul Thomas  
1790
 
1791
        PR fortran/24440
1792
        * resolve.c (resolve_symbol): Correct error in check for
1793
        assumed size array with default initializer by testing
1794
        for arrayspec before dereferencing it.
1795
 
1796
2005-10-17  Paul Thomas  
1797
 
1798
        PR fortran/23446
1799
        * gfortran.h: Primitive for gfc_is_formal_arg.
1800
        * resolve.c(gfc_is_formal_arg): New function to signal across
1801
        several function calls that formal argument lists are being
1802
        processed.
1803
        (resolve_formal_arglist): Set/reset the flag for gfc_is_formal_arg.
1804
        *expr.c(check_restricted): Add check, via gfc_is_formal_arg, if
1805
        symbol is part of an formal argument declaration.
1806
 
1807
        PR fortran/21459
1808
        * decl.c (add_init_expr_to_sym): Make a new character
1809
        length for each variable, when the expression is NULL
1810
        and link to cl_list.
1811
 
1812
        PR fortran/20866
1813
        * match.c (recursive_stmt_fcn): New function that tests if
1814
        a statement function resurses through itself or other other
1815
        statement functions.
1816
        (gfc_match_st_function): Call recursive_stmt_fcn to check
1817
        if this is recursive and to raise error if so.
1818
 
1819
        PR fortran/20849
1820
        PR fortran/20853
1821
        * resolve.c (resolve_symbol): Errors for assumed size arrays
1822
        with default initializer and for external objects with an
1823
        initializer.
1824
 
1825
        PR fortran/20837
1826
        * decl.c (match_attr_spec): Prevent PUBLIC from being used
1827
        outside a module.
1828
 
1829
2005-10-16  Erik Edelmann  
1830
 
1831
        PR 22273
1832
        * expr.c (check_inquiry): Add "len" to inquiry_function.
1833
 
1834
2005-10-14  Jakub Jelinek  
1835
 
1836
        * primary.c (match_boz_constant): Add missing break after gfc_error.
1837
 
1838
2005-10-12  Paul Thomas  
1839
 
1840
        PR fortran/24092
1841
        * trans-types.c (gfc_get_derived_type): Insert code to obtain backend
1842
        declaration for derived types, building if necessary.  Return the
1843
        derived type if the fields have been built by this process.  Otherwise,
1844
        continue as before but using the already obtained backend_decls for the
1845
        derived type components.  Change the gcc_assert to act on the field.
1846
 
1847
2005-10-12  Paul Thomas  
1848
 
1849
        PR fortran/18082
1850
        * decl.c (variable_decl): Make a new copy of the character
1851
        length for each variable, when the expression is not a
1852
        constant.
1853
 
1854
2005-10-12  Francois-Xavier Coudert  
1855
 
1856
        * gfortran.h: Add bitmasks for different FPE traps. Add fpe
1857
        member to options_t.
1858
        * invoke.texi: Document the new -ffpe-trap option.
1859
        * lang.opt: Add -ffpe-trap option.
1860
        * options.c (gfc_init_options): Initialize the FPE option.
1861
        (gfc_handle_fpe_trap_option): New function to parse the argument
1862
        of the -ffpe-trap option.
1863
        (gfc_handle_option): Add case for -ffpe-trap.
1864
        * trans-decl.c: Declare a tree for the set_fpe library function.
1865
        (gfc_build_builtin_function_decls): Build this tree.
1866
        (gfc_generate_function_code): Generate a call to set_fpe at
1867
        the beginning of the main program.
1868
        * trans.h: New tree for the set_fpe library function.
1869
 
1870
2005-10-12  Paul Thomas  
1871
 
1872
        PR fortran/20847
1873
        PR fortran/20856
1874
        * symbol.c (check_conflict): Prevent common variables and
1875
        function results from having the SAVE attribute,as required
1876
        by the standard.
1877
 
1878
2005-10-12  Paul Thomas  
1879
 
1880
        PR fortran/24207
1881
        * resolve.c (resolve_symbol): Exclude use and host associated
1882
        symbols from the test for private objects in a public namelist.
1883
 
1884
2005-10-12  Jakub Jelinek  
1885
 
1886
        * trans-common.c (build_field): Fix comment typo.
1887
        (create_common): Set backend_decl of COMMON or EQUIVALENCEd
1888
        variables to a VAR_DECL with the COMPONENT_REF in
1889
        DECL_HAS_VALUE_EXPR rather than COMPONENT_REF directly.
1890
        * f95-lang.c (gfc_expand_function): Emit debug info for
1891
        EQUIVALENCEd variables if the equiv union is going to be output.
1892
 
1893
2005-10-11  Steven G. Kargl  
1894
 
1895
        PR fortran/20786
1896
        * iresolve.c (gfc_resolve_aint, gfc_resolve_anint): Type conversion
1897
        of the argument.
1898
 
1899
2005-10-11  Jakub Jelinek  
1900
 
1901
        * f95-lang.c (gfc_init_decl_processing): Initialize
1902
        void_list_node.
1903
 
1904
2005-10-07  Erik Edelmann  
1905
 
1906
        PR 18568
1907
        * resolve.c (find_array_spec): Search through the list of
1908
        components in the symbol of the type instead of the symbol of the
1909
        variable.
1910
 
1911
2005-10-05  Richard Guenther  
1912
 
1913
        PR fortran/24176
1914
        * parse.c (gfc_parse_file): Exit early for empty files.
1915
 
1916
2005-10-03  Steve Ellcey  
1917
 
1918
        * fortran/trans-types.c (gfc_init_kinds): Only pass float, double,
1919
        and long double floating point types through to Fortran compiler.
1920
 
1921
2005-10-03  Francois-Xavier Coudert  
1922
 
1923
        PR fortran/20120
1924
        * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
1925
        double builtin function.
1926
        (gfc_init_builtin_functions): Add mfunc_longdouble,
1927
        mfunc_clongdouble and func_clongdouble_longdouble trees. Build
1928
        them for round, trunc, cabs, copysign and pow functions.
1929
        * iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
1930
        case for kind 10 and 16.
1931
        * trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
1932
        exponent10 and exponent16.
1933
        (gfc_build_intrinsic_function_decls): Build nodes for int16,
1934
        real10, real16, complex10 and complex16 types. Build all possible
1935
        combinations for function _gfortran_pow_?n_?n. Build function
1936
        calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
1937
        * trans-expr.c (gfc_conv_power_op): Add case for integer(16),
1938
        real(10) and real(16).
1939
        * trans-intrinsic.c: Add suppport for long double builtin
1940
        functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
1941
        macros.
1942
        (gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
1943
        real(16) kinds.
1944
        (gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
1945
        and real16_decl in library functions.
1946
        (gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
1947
        kinds 10 and 16.
1948
        (gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
1949
        kinds.
1950
        (gfc_conv_intrinsic_sign): Likewise.
1951
        (gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
1952
        * trans-types.c (gfc_get_int_type, gfc_get_real_type,
1953
        gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
1954
        the case of kinds not available.
1955
        * trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
1956
        exponent10 and exponent16.
1957
 
1958
2005-10-01  Paul Thomas  
1959
 
1960
        PR fortran/16404
1961
        PR fortran/20835
1962
        PR fortran/20890
1963
        PR fortran/20899
1964
        PR fortran/20900
1965
        PR fortran/20901
1966
        PR fortran/20902
1967
        * gfortran.h: Prototype for gfc_add_in_equivalence.
1968
        * match.c (gfc_match_equivalence): Make a structure component
1969
        an explicit,rather than a syntax, error in an equivalence
1970
        group.  Call gfc_add_in_equivalence to add the constraints
1971
        imposed in check_conflict.
1972
        * resolve.c (resolve_symbol): Add constraints: No public
1973
        structures with private-type components and no public
1974
        procedures with private-type dummy arguments.
1975
        (resolve_equivalence_derived): Add constraint that prevents
1976
        a structure equivalence member from having a default
1977
        initializer.
1978
        (sequence_type): New static function to determine whether an
1979
        object is default numeric, default character, non-default
1980
        or mixed sequence. Add corresponding enum typespec.
1981
        (resolve_equivalence): Add constraints to equivalence groups
1982
        or their members: No more than one initialized member and
1983
        that different types are not equivalenced for std=f95.  All
1984
        the simple constraints have been moved to check_conflict.
1985
        * symbol.c (check_conflict): Simple equivalence constraints
1986
        added, including those removed from resolve_symbol.
1987
        (gfc_add_in_equivalence): New function to interface calls
1988
        match_equivalence to check_conflict.
1989
 
1990
2005-09-27  Jakub Jelinek  
1991
 
1992
        PR fortran/18518
1993
        * trans-common.c (build_equiv_decl): Add IS_SAVED argument.
1994
        If it is true, set TREE_STATIC on the decl.
1995
        (create_common): If any symbol in equivalence has SAVE attribute,
1996
        pass true as last argument to build_equiv_decl.
1997
 
1998
2005-09-24  Janne Blomqvist  
1999
 
2000
        * trans-io.c (gfc_build_io_library_fndecls): Add entry
2001
        iocall_x_array for transfer_array.
2002
        (transfer_array_desc): New function.
2003
        (gfc_trans_transfer): Add code to call transfer_array_desc.
2004
 
2005
2005-09-26  Jakub Jelinek  
2006
 
2007
        PR fortran/23677
2008
        * symbol.c (gfc_is_var_automatic): Return true if character length
2009
        is non-constant rather than constant.
2010
        * resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic
2011
        here.
2012
        * options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size
2013
        to 0 for -fno-automatic.
2014
 
2015
2005-09-23  Paul Thomas  
2016
 
2017
        PR fortran/16861
2018
        * module.c (mio_component_ref): Return if the symbol is NULL
2019
        and wait for another iteration during module reads.
2020
        (mio_symtree_ref): Suppress the writing of contained symbols,
2021
        when a symbol is available in the main namespace.
2022
        (read_module): Restrict scope of special treatment of contained
2023
        symbols to variables only and suppress redundant call to
2024
        find_true_name.
2025
 
2026
2005-09-22  Steven G. Kargl  
2027
 
2028
        PR fortran/24005
2029
        * interface.c (check_interface1): Fix NULL dereference.
2030
 
2031
2005-09-22  Erik Edelmann  
2032
 
2033
        PR fortran/23843
2034
        * resolve.c (derived_inaccessible): New function.
2035
        (resolve_transfer): Use it to check for private
2036
        components.
2037
 
2038
2005-09-22  Steven G. Kargl  
2039
 
2040
        PR fortran/23516
2041
        * intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART
2042
        intrinsics.
2043
        * intrinsic.h: Prototypes for gfc_simplify_realpart and
2044
        gfc_resolve_realpart.
2045
        * intrinsic.texi: Document intrinsic procedures.
2046
        * simplify.c (gfc_simplify_realpart): New function.
2047
        * irseolve.c (gfc_resolve_realpart): New function.
2048
 
2049
2005-09-21  Erik Edelmann  
2050
 
2051
        PR fortran/19929
2052
        * trans-stmt.c (gfc_trans_deallocate): Check if the
2053
        object to be deallocated is an array by looking at
2054
        expr->rank instead of expr->symtree->n.sym->attr.dimension.
2055
 
2056
2005-09-20  Tobias Schl"uter  
2057
 
2058
        PR fortran/23420
2059
        * io.c (resolve_tag): Don't allow non-CHARACTER constants as formats.
2060
        (match_io): Fix usage of gfc_find_symbol.
2061
 
2062
2005-09-20  Jakub Jelinek  
2063
 
2064
        PR fortran/23663
2065
        * primary.c (match_actual_arg): Handle ENTRY the same way
2066
        as FUNCTION.
2067
 
2068
2005-09-18  Francois-Xavier Coudert  
2069
 
2070
        * Make-lang.in: Make check-fortran alias for check-gfortran.
2071
 
2072
2005-09-18  Andreas Jaeger  
2073
 
2074
        * module.c (read_module): Add missed line from last patch.
2075
 
2076
2005-09-18  Erik Edelmann  
2077
 
2078
        PR fortran/15975
2079
        * resolve.c (resolve_symbol): Don't assign default
2080
        initializer to pointers.
2081
 
2082
2005-09-18  Paul Thomas  
2083
 
2084
        PR fortran/16861
2085
        * module.c (read_module): Give symbols from module procedures
2086
        different true_name entries to those from the module proper.
2087
 
2088
2005-09-17  Francois-Xavier Coudert  
2089
 
2090
        PR fortran/15586
2091
        * arith.c (gfc_arith_error): Add translation support for error
2092
        messages.
2093
        * array.c (gfc_match_array_ref): Likewise.
2094
        (gfc_match_array_spec): Likewise.
2095
        * check.c (must_be): Add msgid convention to third argument.
2096
        (same_type_check): Add translation support for error message.
2097
        (rank_check): Likewise.
2098
        (kind_value_check): Likewise.
2099
        (gfc_check_associated): Correct typo.
2100
        (gfc_check_reshape): Add translation support for error message.
2101
        (gfc_check_spread): Likewise.
2102
        * error.c (error_printf): Add nocmsgid convention to argument.
2103
        (gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check)
2104
        (gfc_error, gfc_error_now): Likewise.
2105
        (gfc_status): Add cmsgid convention to argument.
2106
        * expr.c (gfc_extract_int): Add translation support for error
2107
        messages.
2108
        (gfc_check_conformance): Add msgid convention to argument.
2109
        (gfc_check_pointer_assign): Correct tabbing.
2110
        * gfortran.h: Include intl.h header. Remove prototype for gfc_article.
2111
        * gfortranspec.c: Include intl.h header.
2112
        (lang_specific_driver): Add translation support for --version.
2113
        * io.c (check_format): Add translation support for error message.
2114
        (format_item_1): Likewise.
2115
        (data_desc): Likewise.
2116
        * matchexp.c: Likewise.
2117
        * misc.c (gfc_article): Remove function.
2118
        * module.c (bad_module): Use msgid convention. Add translation support
2119
        for error messages.
2120
        (require_atom): Add translation support for error messages.
2121
        * parse.c (gfc_ascii_statement): Likewise.
2122
        (gfc_state_name): Likewise.
2123
        * primary.c (match_boz_constant): Reorganise error messages for
2124
        translations.
2125
        * resolve.c (resolve_entries): Likewise.
2126
        (resolve_operator): Add translation support for error messages.
2127
        (gfc_resolve_expr): Use msgid convention. Reorganise error messages
2128
        for translations.
2129
        (resolve_symbol): Add translation support for error messages.
2130
        * symbol.c (gfc_add_procedure): Remove use of gfc_article function.
2131
        * trans-const.c (gfc_build_string_const): Use msgid convention.
2132
 
2133
2005-09-16  Paul Brook  
2134
 
2135
        PR fortran/23906
2136
        * dependency.c (transform_sections): Divide by correct value.
2137
        Elaborate comment.
2138
 
2139
2005-09-14  Paul Thomas  
2140
 
2141
        PR fortran/21875 Internal Unit Array I/O, NIST
2142
        * fortran/trans-io.c (gfc_build_io_library_fndecls): Add field for
2143
        array descriptor to IOPARM structure.
2144
        * fortran/trans-io.c (set_internal_unit): New function to generate code
2145
        to store the character (array) and the character length for an internal
2146
        unit.
2147
        * fortran/trans-io (build_dt): Use the new function set_internal_unit.
2148
 
2149
2005-09-14  Paul Thomas  
2150
 
2151
        PR fortran/19358
2152
        * trans-array.c (gfc_trans_dummy_array_bias): correct the typo
2153
        which uses dim[i].upper for lbound, rather than dim[i].lower.
2154
 
2155
2005-09-13  Erik Edelmann  
2156
 
2157
        PR fortran/17740
2158
        * trans-expr.c (gfc_trans_arrayfunc_assign): Check value
2159
        of attr.elemental for specific function instead of generic name.
2160
 
2161
2005-09-13  Richard Sandiford  
2162
 
2163
        PR fortran/18899
2164
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization
2165
        of argse.  Remove now-redundant want_pointer assignment.
2166
        * trans-array.c (gfc_conv_expr_descriptor): When not assigning to
2167
        a pointer, keep the original bounds of a full array reference.
2168
 
2169
2005-09-13  Richard Sandiford  
2170
 
2171
        PR target/19269
2172
        * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
2173
        (gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
2174
        (gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
2175
        for character-based operations.
2176
        (gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
2177
        (gfc_resolve_unpack): Copy the whole typespec from the vector.
2178
        * trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
2179
        case, get the string length from the scalarization state.
2180
 
2181
2005-09-14  Francois-Xavier Coudert  
2182
 
2183
        * Make-lang.in: Change targets prefixes from f95 to fortran.
2184
        * config-lang.in: Change language name to "fortran".
2185
        * lang.opt: Change language name to "fortran".
2186
        * options.c: Change CL_F95 to CL_Fortran.
2187
 
2188
2005-09-09  Thomas Koenig  
2189
 
2190
        gfortran.texi:  Document IOSTAT= specifier.
2191
 
2192
2005-09-09  Thomas Koenig  
2193
 
2194
        * gfortran.h:  Add iomsg to gfc_open, gfc_close, gfc_filepos,
2195
        gfc_inquire and gfc_dt.
2196
        * dump-parse-tree.c (gfc_show_code_node):  Add iomsg
2197
        for open, close, file positioning, inquire and namelist.
2198
        * io.c (io_tag):  Add tag_iomsg.
2199
        (resolve_tag): Add standards warning for iomsg.
2200
        (match_open_element):  Add iomsg.
2201
        (gfc_free_open):  Add iomsg.
2202
        (gfc_resolve_open):  Add iomsg.
2203
        (gfc_free_close):  Add iomsg.
2204
        (match_close_element):  Add iomsg.
2205
        (gfc_resolve_close):  Add iomsg.
2206
        (gfc_free_filepos):  Add iomsg.
2207
        (match_file_element):  Add iomsg.
2208
        (gfc_resolve_filepos):  Add iostat and iomsg.
2209
        (match-dt_element):  Add iomsg.
2210
        (gfc_free_dt):  Add iomsg.
2211
        (gfc_resolve_dt):  Add iomsg.
2212
        (gfc_free_inquire):  Add iomsg.
2213
        (match_inquire_element):  Add iomsg.
2214
        (gfc_resolve_inquire):  Add iomsg.
2215
        * trans_io.c:  Add ioparm_iomsg and ioparm_iomsg_len.
2216
        (gfc_build_io_library_fndecls):  Add iomsg as last field.
2217
        (gfc_trans_open):  Add iomsg.
2218
        (gfc_trans_close):  Add iomsg.
2219
        (build_fileos):  Call set_string for iomsg.
2220
        (gfc_trans_inquire):  Add iomsg.
2221
        (build_dt):  Add iomsg.
2222
 
2223
2005-09-09  Richard Sandiford  
2224
 
2225
        * match.h (gfc_match_equiv_variable): Declare.
2226
 
2227
2005-09-09  Richard Sandiford  
2228
 
2229
        PR fortran/19239
2230
        * Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
2231
        * dependency.h (gfc_ref_needs_temporary_p): Declare.
2232
        * dependency.c (gfc_ref_needs_temporary_p): New function.
2233
        (gfc_check_fncall_dependency): Use it instead of inlined check.
2234
        By so doing, take advantage of the fact that character substrings
2235
        within an array reference also need a temporary.
2236
        * trans.h (GFC_SS_VECTOR): Adjust comment.
2237
        * trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
2238
        (gfc_set_vector_loop_bounds): New function.
2239
        (gfc_add_loop_ss_code): Call it after evaluating the subscripts of
2240
        a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
2241
        the vector expression and caching its descriptor for use within
2242
        the loop.
2243
        (gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
2244
        (gfc_conv_array_index_offset): Handle scalar, vector and range
2245
        dimensions as separate cases of a switch statement.  In the vector
2246
        case, use the loop variable to calculate a vector index and use the
2247
        referenced element as the dimension's index.  Perform bounds checking
2248
        on this final index.
2249
        (gfc_conv_section_upper_bound): Return null for vector indexes.
2250
        (gfc_conv_section_startstride): Give vector indexes a start value
2251
        of 0 and a stride of 1.
2252
        (gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
2253
        (gfc_conv_expr_descriptor): Expand comments.  Generalize the
2254
        handling of the !want_pointer && !direct_byref case.  Use
2255
        gfc_ref_needs_temporary_p to decide whether the variable case
2256
        needs a temporary.
2257
        (gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
2258
        GFC_SS_VECTOR index.
2259
        * trans-expr.c: Include dependency.h.
2260
        (gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
2261
 
2262
2005-09-09  Richard Sandiford  
2263
 
2264
        PR fortran/21104
2265
        * trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
2266
        from trans-expr.c.
2267
        (gfc_init_interface_mapping, gfc_free_interface_mapping)
2268
        (gfc_add_interface_mapping, gfc_finish_interface_mapping)
2269
        (gfc_apply_interface_mapping): Declare.
2270
        * trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
2271
        (gfc_trans_allocate_temp_array): Add pre and post block arguments.
2272
        * trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
2273
        (gfc_trans_allocate_array_storage): Replace loop argument with
2274
        separate pre and post blocks.
2275
        (gfc_trans_allocate_temp_array): Add pre and post block arguments.
2276
        Update call to gfc_trans_allocate_array_storage.
2277
        (gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
2278
        interface to gfc_trans_allocate_temp_array.
2279
        * trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
2280
        Moved to trans.h.
2281
        (gfc_init_interface_mapping, gfc_free_interface_mapping)
2282
        (gfc_add_interface_mapping, gfc_finish_interface_mapping)
2283
        (gfc_apply_interface_mapping): Make extern.
2284
        (gfc_conv_function_call): Build an interface mapping for array
2285
        return values too.  Call gfc_set_loop_bounds_from_array_spec.
2286
        Adjust call to gfc_trans_allocate_temp_array so that code is
2287
        added to SE rather than LOOP.
2288
 
2289
2005-09-09  Richard Sandiford  
2290
 
2291
        PR fortran/12840
2292
        * trans.h (gfor_fndecl_internal_realloc): Declare.
2293
        (gfor_fndecl_internal_realloc64): Declare.
2294
        * trans-decl.c (gfor_fndecl_internal_realloc): New variable.
2295
        (gfor_fndecl_internal_realloc64): New variable.
2296
        (gfc_build_builtin_function_decls): Initialize them.
2297
        * trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
2298
        * trans-array.c (gfc_trans_allocate_array_storage): Add an argument
2299
        to say whether the array can grow later.  Don't allocate the array
2300
        on the stack if so.  Don't call malloc for zero-sized arrays.
2301
        (gfc_trans_allocate_temp_array): Add a similar argument here.
2302
        Pass it along to gfc_trans_allocate_array_storage.
2303
        (gfc_get_iteration_count, gfc_grow_array): New functions.
2304
        (gfc_iterator_has_dynamic_bounds): New function.
2305
        (gfc_get_array_constructor_element_size): New function.
2306
        (gfc_get_array_constructor_size): New function.
2307
        (gfc_trans_array_ctor_element): Replace pointer argument with
2308
        a descriptor tree.
2309
        (gfc_trans_array_constructor_subarray): Likewise.  Take an extra
2310
        argument to say whether the variable-sized part of the constructor
2311
        must be allocated using realloc.  Grow the array when this
2312
        argument is true.
2313
        (gfc_trans_array_constructor_value): Likewise.
2314
        (gfc_get_array_cons_size): Delete.
2315
        (gfc_trans_array_constructor): If the loop bound has not been set,
2316
        split the allocation into a static part and a dynamic part.  Set
2317
        loop->to to the bounds for static part before allocating the
2318
        temporary.  Adjust call to gfc_trans_array_constructor_value.
2319
        (gfc_conv_loop_setup): Allow any constructor to determine the
2320
        loop bounds.  Check whether the constructor has a dynamic size
2321
        and prefer to use something else if so.  Expect the loop bound
2322
        to be set later.  Adjust call to gfc_trans_allocate_temp_array.
2323
        * trans-expr.c (gfc_conv_function_call): Adjust another call here.
2324
 
2325
2005-09-09  Paul Thomas  
2326
 
2327
        PR fortran/18878
2328
        * module.c (find_use_name_n): Based on original
2329
        find_use_name. Either counts number of use names for a
2330
        given real name or returns use name n.
2331
        (find_use_name, number_use_names): Interfaces to the
2332
        function find_use_name_n.
2333
        (read_module): Add the logic and calls to these functions,
2334
        so that mutiple reuses of the same real name are loaded.
2335
 
2336
2005-09-09  Paul Thomas  
2337
 
2338
        PR fortran/22304
2339
        PR fortran/23270
2340
        PR fortran/18870
2341
        PR fortran/16511
2342
        PR fortran/17917
2343
        * gfortran.h: Move definition of BLANK_COMMON_NAME from trans-
2344
        common.c so that it is accessible to module.c. Add common_head
2345
        field to gfc_symbol structure. Add field for the equivalence
2346
        name AND new attr field, in_equivalence.
2347
        * match.c (gfc_match_common, gfc_match_equivalence): In loops
2348
        that flag common block equivalences, emit an error if the
2349
        common blocks are different, using sym->common_head as the
2350
        common block identifier. Ensure that symbols that are equivalence
2351
        associated with a common block are marked as being in_common.
2352
        * module.c (write_blank_common): New.
2353
        (write_common): Use unmangled common block name.
2354
        (load_equiv): New function ported from g95.
2355
        (read_module): Call load_equiv.
2356
        (write_equiv): New function ported from g95. Correct
2357
        string referencing for gfc functions. Give module
2358
        equivalences a unique name.
2359
        (write_module): Call write_equiv and write_blank_common.
2360
        * primary.c (match_variable) Old gfc_match_variable, made
2361
        static and third argument provided to indicate if parent
2362
        namespace to be visited or not.
2363
        (gfc_match_variable) New. Interface to match_variable.
2364
        (gfc_match_equiv_variable) New. Interface to match_variable.
2365
        * trans-common.c (finish_equivalences): Provide the call
2366
        to create_common with a gfc_common_header so that
2367
        module equivalences are made external, rather than local.
2368
        (find_equivalences): Ensure that all members in common block
2369
        equivalences are marked as used. This prevents the subsequent
2370
        call to this function from making local unions.
2371
        * trans-decl.c (gfc_generate_function_code): Move the call to
2372
        gfc_generate_contained_functions to after the call to
2373
        gfc_trans_common so the use-associated, contained common
2374
        blocks produce the correct references.
2375
        (gfc_create_module_variable): Return for equivalenced symbols
2376
        with existing backend declaration.
2377
 
2378
2005-09-08  Tobias Schl"uter  
2379
 
2380
        PR fortran/23765
2381
        * match.c (gfc_match_common): Remove unnecessary / wrong special
2382
        cases for end-of-statement.
2383
 
2384
2005-09-08  Janne Blomqvist  
2385
 
2386
        * gfortran.texi: Add section about implemented F2003 features.
2387
 
2388
2005-09-08  Richard Sandiford  
2389
 
2390
        PR fortran/15326
2391
        * trans-array.c (gfc_add_loop_ss_code): Set ss->string_length in
2392
        the GFC_SS_FUNCTION case too.
2393
        * trans-expr.c (gfc_conv_function_val): Allow symbols to be bound
2394
        to function pointers as well as function decls.
2395
        (gfc_interface_sym_mapping, gfc_interface_mapping): New structures.
2396
        (gfc_init_interface_mapping, gfc_free_interface_mapping)
2397
        (gfc_get_interface_mapping_charlen, gfc_get_interface_mapping_array)
2398
        (gfc_set_interface_mapping_bounds, gfc_add_interface_mapping)
2399
        (gfc_finish_interface_mapping, gfc_apply_interface_mapping_to_cons)
2400
        (gfc_apply_interface_mapping_to_ref)
2401
        (gfc_apply_interface_mapping_to_expr)
2402
        (gfc_apply_interface_mapping): New functions.
2403
        (gfc_conv_function_call): Evaluate the arguments before working
2404
        out where the result should go.  Make the null pointer case provide
2405
        the string length in parmse.string_length.  Cope with non-constant
2406
        string lengths, using the above functions to evaluate such lengths.
2407
        Use a temporary typespec; don't assign to sym->cl->backend_decl.
2408
        Don't assign to se->string_length when returning a cached array
2409
        descriptor.
2410
 
2411
2005-09-08  Richard Sandiford  
2412
 
2413
        PR fortran/19928
2414
        * trans-array.c (gfc_conv_array_ref): Call gfc_advance_se_ss_chain
2415
        after handling scalarized references.  Make "indexse" inherit from
2416
        "se" when handling AR_ELEMENTs.
2417
        (gfc_walk_variable_expr): Add GFC_SS_SCALAR entries for each
2418
        substring or scalar reference that follows an array section.
2419
        * trans-expr.c (gfc_conv_variable): When called from within a
2420
        scalarization loop, start out with "ref" pointing to the scalarized
2421
        part of the reference.  Don't call gfc_advance_se_ss_chain here.
2422
 
2423
2005-09-07  Richard Sandiford  
2424
 
2425
        PR fortran/23373
2426
        * trans-expr.c (gfc_trans_pointer_assignment): Assign to a temporary
2427
        descriptor if the rhs is not a null pointer or variable.
2428
 
2429
2005-09-07  Thomas Koenig  
2430
 
2431
        PR fortran/20848
2432
        * symbol.c(check_conflict):  Add conflict for parameter/save,
2433
 
2434
2005-09-06  Richard Sandiford  
2435
 
2436
        PR fortran/19269
2437
        * simplify.c (gfc_simplify_transpose): Set the result's typespec from
2438
        the source, not the first element of the return value.
2439
 
2440
2005-09-04  Tobias Schl"uter  
2441
 
2442
        PR fortran/23661
2443
        * io.c (match_io): Correctly backup if PRINT followed by
2444
        symbol which is not a namelist.  Force blank between PRINT
2445
        and namelist in free form.
2446
 
2447
2005-08-31  Francois-Xavier Coudert  
2448
 
2449
        PR fortran/20592
2450
        * gfortran.h (gfc_option_t): Add flag_automatic.
2451
        * invoke.texi: Document the -fno-automatic option.
2452
        * lang.opt: Add a -fautomatic option.
2453
        * options.c (gfc_init_options): Default for -fautomatic is on.
2454
        (gfc_handle_option): Add handling of -fautomatic option.
2455
        * resolve.c (gfc_resolve): When -fno-automatic is used, mark
2456
        needed variables as SAVE.
2457
 
2458
2005-08-27  Erik Edelmann  
2459
 
2460
        * trans-array.c (gfc_trans_deferred_array): Fix comments.
2461
 
2462
2005-08-27  Erik Schnetter  
2463
 
2464
        * primary.c (match_charkind_name): Fix typo in comment leading to
2465
        function.
2466
 
2467
2005-08-25  Erik Edelmann  
2468
 
2469
        PR fortran/20363
2470
        * symbol.c (find_special): Remove.
2471
        (build_sym, add_init_expr, attr_decl1): Remove calls to
2472
        find_special in favor of calls to gfc_get_symbol.
2473
 
2474
2005-08-24  Thomas Koenig  
2475
 
2476
        PR fortran/17758
2477
        * gfortran.h (symbol_attribute):  Add noreturn to the structure.
2478
        (gfc_intrinsic_sym):  Add noreturn to the structure.
2479
        * intrinsic.c (make_noreturn):  New function.
2480
        (add_subroutines):  Mark subroutines abort and exit as noreturn.
2481
        (gfc_intrinsic_sub_interface):  Copy noreturn attribute from
2482
        isym to the resolved symbol.
2483
        * trans-decl.c (gfc_get_extern_function_decl): Set function
2484
        as VOLATILE (== noreturn) if the noreturn attribute is set.
2485
 
2486
2005-08-21  Steven G. Kargl  
2487
 
2488
        * decl.c: Typo in comment.
2489
 
2490
2005-08-21  Steven G. Kargl  
2491
 
2492
        * array.c: Bump GFC_MAX_AC_EXPAND from 100 to 65535.
2493
 
2494
2005-08-21  Tobias Schl"uter  
2495
 
2496
        * gfortran.h (gfc_option_t): Remove source field.  Add
2497
        flag_d_lines field.
2498
        (gfc_new_file): Remove arguments in prototype.
2499
        (gfc_source_file): Make 'const char *'.
2500
        * f95-lang.c (gfc_init): Use gfc_source_file instead of
2501
        gfc_option.source.  Call gfc_new_file without arguments.
2502
        * invoke.texi: Document new options '-fd-lines-as-code' and
2503
        '-fd-lines-as-comment'.
2504
        * lang.opt: Add new options.  Alphabetize.
2505
        * options.c (gfc_init_options): Initialize gfc_source_file instead
2506
        of gfc_option.source.  Initialize gfc_option.flag_d_lines.
2507
        (form_from_filename): Move here from scanner.c.  Make
2508
        'filename' argument 'const'.
2509
        (gfc_post_options): Set gfc_source_file.  Determine source form.
2510
        Warn if 'd-lines*' are used in free form.
2511
        * scanner.c (gfc_source_file): Constify.
2512
        (skip_fixed_comments): Deal with d-lines.
2513
        (get_file): Constify argument 'name'.
2514
        (load_file): Constify argument 'filename'.
2515
        (form_from_filename): Moved to options.c.
2516
        (gfc_new_file): Remove arguments.  Don't initialize
2517
        gfc_source_file, don't determine source form.
2518
        * trans-const.c (gfc_init_constants): Use gfc_source_file instead
2519
        of gfc_option.source.
2520
 
2521
2005-08-19  Steven G. Kargl  
2522
 
2523
        PR fortran/23065
2524
        * gfortran.h: Remove PATH_MAX definition.
2525
        * module.c (write_module, gfc_dump_module): Use alloca to allocate
2526
        buffers.
2527
        * scanner.c (gfc_release_include_path, form_from_filename): Ditto.
2528
 
2529
2004-08-16  Huang Chun  
2530
 
2531
        * trans-expr.c (gfc_conv_power_op): Evaluate the expression before
2532
        expand.
2533
 
2534
2005-08-14  Asher Langton  
2535
 
2536
        * parse.c (match): Enclose macro in do...while(0) and braces.
2537
 
2538
2005-08-14  Paul Thomas  
2539
 
2540
        PR fortran/21432.
2541
        * gfortran.texi: Document PRINT namelist.
2542
 
2543
2005-08-14  Paul Thomas  
2544
 
2545
        PR fortran/21432.
2546
        * io.c (match_io): Add code to implement PRINT namelist.
2547
 
2548
2005-08-14  Canqun Yang  
2549
 
2550
        * trans-stmt.c (gfc_trans_arithmetic_if): Optimized in case of equal
2551
        labels.
2552
 
2553
2005-08-11  Francois-Xavier Coudert  
2554
            Steven Bosscher  
2555
 
2556
        PR libfortran/20006
2557
        * gfortran.h: Add is_main_program member to symbol_attribute.
2558
        * trans-decl: Add a gfor_fndecl_set_std tree.
2559
        (gfc_build_builtin_function_decls): Create it.
2560
        (gfc_generate_function_code): Add this call at the beginning of
2561
        the main program.
2562
        * trans.c (gfc_generate_code): Move main_program and attr.
2563
        * trans.h: Add declaration for gfor_fndecl_set_std.
2564
 
2565
2005-08-10  Thomas Koenig  
2566
 
2567
        PR libfortran/22143
2568
        gfortran.h:  Declare new function gfc_resolve_dim_arg.
2569
        resolve.c:  New function gfc_resolve_dim_arg.
2570
        iresolve.c (gfc_resolve_all):  Use gfc_resolve_dim_arg.
2571
        (gfc_resolve_any):  Likewise.
2572
        (gfc_resolve_count):  Likewise.
2573
        (gfc_resolve_cshift):  Likewise.  If the kind of shift is less
2574
        gfc_default_integer_kind, convert it to default integer type.
2575
        (gfc_resolve_eoshift):  Likewise.
2576
        (gfc_resolve_maxloc):  Use gfc_resolve_dim_arg.
2577
        (gfc_resolve_maxval):  Likewise.
2578
        (gfc_resolve_minloc):  Likewise.
2579
        (gfc_resolve_minval):  Likewise.
2580
        (gfc_resolve_product):  Likewise.
2581
        (gfc_resolve_spread):  Likewise.
2582
        (gfc_resolve_sum):  Likewise.
2583
 
2584
2005-08-09  Francois-Xavier Coudert  
2585
 
2586
        * check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add check
2587
        functions for new intrinsics TTYNAM and ISATTY.
2588
        * intrinsic.c (add_functions, add_subroutines): Add new
2589
        intrinsics.
2590
        * intrinsic.h: Add prototypes for new check and resolve
2591
        functions.
2592
        * iresolve.c (gfc_resolve_isatty, gfc_resolve_ttynam_sub): New
2593
        resolve functions for intrinsics TTYNAM and ISATTY.
2594
        * gfortran.h (gfc_generic_isym_id): Add symbol for ISATTY.
2595
        * trans-intrinsic.c: Add case for GFC_ISYM_ISATTY.
2596
 
2597
2005-08-09  Jakub Jelinek  
2598
 
2599
        * scanner.c (preprocessor_line): Don't write beyond the end of flag
2600
        buffer.
2601
 
2602
2005-08-07   Janne Blomqvist  
2603
 
2604
        PR fortran/22390
2605
        * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH.
2606
        * gfortran.h: Add enums for FLUSH.
2607
        * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify
2608
        comment appropriately.  (gfc_match_flush): New function.
2609
        * match.c (gfc_match_if): Add match for flush.
2610
        * match.h: Add prototype.
2611
        * parse.c (decode_statement): Add flush to 'f' case.
2612
        (next_statement): Add case for flush. (gfc_ascii_statement): Likewise.
2613
        * resolve.c (resolve_code): Add flush case.
2614
        * st.c (gfc_free_statement): Add flush case.
2615
        * trans-io.c: Add prototype for flush.
2616
        (gfc_build_io_library_fndecls): Build fndecl for flush.
2617
        (gfc_trans_flush): New function.
2618
        * trans-stmt.h: Add prototype.
2619
        * trans.c (gfc_trans_code): Add case for flush.
2620
 
2621
2005-08-06  Francois-Xavier Coudert  
2622
 
2623
        * primary.c (match_hollerith_constant): Fix typo.
2624
 
2625
2005-08-06  Kazu Hirata  
2626
 
2627
        * decl.c, dump-parse-tree.c, gfortran.texi, intrinsic.texi,
2628
        invoke.texi, resolve.c, trans-array.c, trans-array.h,
2629
        trans-common.c, trans-expr.c, trans-io.c, trans.h: Fix
2630
        comment/doc typos.  Follow spelling conventions.
2631
 
2632
2005-08-06  Jakub Jelinek  
2633
 
2634
        PR fortran/18833
2635
        PR fortran/20850
2636
        * primary.c (match_varspec): If equiv_flag, don't look at sym's
2637
        attributes, call gfc_match_array_ref up to twice and don't do any
2638
        substring or component processing.
2639
        * resolve.c (resolve_equivalence): Transform REF_ARRAY into
2640
        REF_SUBSTRING or nothing if needed.  Check that substrings
2641
        don't have zero length.
2642
 
2643
2005-08-05  Thomas Koenig  
2644
 
2645
        * trans-expr.c  (gfc_build_builtin_function_decls):  Mark
2646
        stop_numeric and stop_string as non-returning.
2647
 
2648
2005-08-04  Paul Brook  
2649
 
2650
        * trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments.
2651
        (gfc_conv_expr_lhs): Fix assertion.
2652
        (gfc_conv_expr_val): Merge post block.  Set se.expr to new value.
2653
 
2654
2005-08-02  David Edelsohn  
2655
 
2656
        PR fortran/22491
2657
        * expr.c (simplify_parameter_variable): Do not copy the subobject
2658
        references if the expression value is a constant.
2659
 
2660
        * expr.c (gfc_simplify_expr): Evaluate constant substrings.
2661
 
2662
2005-07-31  Jerry DeLisle  
2663
 
2664
        * intrinsic.texi: Add documentation for exponent, floor, and fnum and
2665
        fix description of ceiling in index.
2666
 
2667
2005-07-31  Steven Bosscher  
2668
 
2669
        * trans-decl.c (gfc_build_builtin_function_decls): Give the internal
2670
        malloc functions the 'malloc' attribute.  Give runtime_error the
2671
        'noreturn' attribute.
2672
 
2673
2005-07-31  Steven Bosscher  
2674
 
2675
        * trans-stmt.c (gfc_trans_goto): Jump to the known label instead
2676
        of the assigned goto variable.
2677
 
2678
2005-07-29  Steven Bosscher  
2679
 
2680
        * trans-types.h (gfc_array_range_type): Add missing GTY decl for this.
2681
 
2682
2005-07-28  Andrew Pinski  
2683
 
2684
        * fortran/f95-lang.c (language_function): Remove
2685
        named_labels, shadowed_labels, returns_value, returns_abnormally,
2686
        warn_about_return_type, and extern_inline fields.
2687
        (named_labels): Remove variable.
2688
        (gfc_init_decl_processing): Remove setting of named_labels.
2689
 
2690
2005-07-27  Volker Reichelt  
2691
 
2692
        PR fortran/22503
2693
        * resolve.c (resolve_operator): Improve diagnostic for comparison
2694
        of logicals with invalid operator.
2695
 
2696
2005-07-25  Jakub Jelinek  
2697
 
2698
        PR fortran/20063
2699
        * data.c (gfc_assign_data_value_range): Call
2700
        create_character_initializer if last_ts is a character type.
2701
 
2702
2005-07-22  Manfred Hollstein  
2703
 
2704
        * match.c (gfc_match_symbol): Fix uninitialised warnings.
2705
        * matchexp.c (gfc_match_expr): Likewise.
2706
 
2707
2005-07-20  Giovanni Bajo  
2708
 
2709
        Make CONSTRUCTOR use VEC to store initializers.
2710
        * trans-array.c (gfc_build_null_descriptor,
2711
        gfc_trans_array_constructor_value, gfc_conv_array_initializer):
2712
        Update to cope with VEC in CONSTRUCTOR_ELTS.
2713
        * trans-common.c (create_common): Likewise.
2714
        * trans-expr.c (gfc_conv_structure): Likewise.
2715
        * trans-stmt.c (gfc_trans_character_select): Use
2716
        build_constructor_from_list instead of build_constructor.
2717
 
2718
2005-07-19  Paul Thomas  
2719
 
2720
        PR fortran/16940
2721
        * resolve.c (resolve_symbol): A symbol with FL_UNKNOWN
2722
        is matched against interfaces in parent namespaces. If there
2723
        the symtree is set to point to the interface.
2724
 
2725
2005-07-16  David Edelsohn  
2726
 
2727
        PR fortran/21730
2728
        * decl.c (do_parm): Adjust character initializer to character length
2729
        of symbol before assigning.
2730
 
2731
2005-07-14  Steve Ellcey  
2732
 
2733
        * trans-types.c (MAX_REAL_KINDS): Increase from 4 to 5.
2734
 
2735
2005-07-14  Jakub Jelinek  
2736
 
2737
        * gfortran.h (MAX_ERROR_MESSAGE): Remove.
2738
        (gfc_error_buf): Add allocated and index fields.  Change message
2739
        field from array to a pointer.
2740
        * error.c (use_warning_buffer, error_ptr, warning_ptr): Remove.
2741
        (cur_error_buffer): New variable.
2742
        (error_char): Use cur_error_buffer->{message,index} instead of
2743
        {warning,error}_{buffer.message,ptr}.  Reallocate message buffer
2744
        if too small.
2745
        (gfc_warning, gfc_notify_std, gfc_error, gfc_error_now): Setup
2746
        cur_error_buffer and its index rather than {warning,error}_ptr
2747
        and use_warning_buffer.
2748
        (gfc_warning_check, gfc_error_check): Don't print anything if
2749
        message is NULL.
2750
        (gfc_push_error): Allocate saved message with xstrdup.
2751
        (gfc_pop_error): Free saved message with gfc_free.
2752
        (gfc_free_error): New function.
2753
        * primary.c (match_complex_constant): Call gfc_free_error if
2754
        gfc_pop_error will not be called.
2755
        * match.c (gfc_match_st_function): Likewise.
2756
 
2757
        PR fortran/22417
2758
        * scanner.c (preprocessor_line): Don't treat flag 3 as the start of a new
2759
        file.  Fix file left but not entered warning.
2760
 
2761
2005-07-14  Feng Wang  
2762
        Steven G. Kargl  
2763
 
2764
        * array.c (resolve_character_array_constructor): Allocate gfc_charlen
2765
        for the array and attach to namespace list for automatic deallocation.
2766
 
2767
2005-07-13  Andreas Schwab  
2768
 
2769
        * Make-lang.in (fortran/dependency.o): Depend on
2770
        $(GFORTRAN_TRANS_DEPS).
2771
 
2772
2005-07-11  Jakub Jelinek  
2773
 
2774
        * trans-stmt.c (gfc_trans_forall_loop): Clear maskindex before
2775
        the outermost loop.
2776
        (gfc_trans_assign_need_temp, gfc_trans_pointer_assign_need_temp,
2777
        gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_2):
2778
        Don't clear maskindexes here.
2779
 
2780
2005-07-08  Daniel Berlin  
2781
 
2782
        * trans-decl.c (create_function_arglist): DECL_ARG_TYPE_AS_WRITTEN
2783
        is removed.
2784
 
2785
2005-07-08  Jakub Jelinek  
2786
 
2787
        * primary.c (gfc_match_rvalue): Handle ENTRY the same way
2788
        as FUNCTION.
2789
 
2790
2005-07-07  Jakub Jelinek  
2791
 
2792
        * scanner.c (load_line): Add pbuflen argument, don't make
2793
        buflen static.  If maxlen == 0 or preprocessor_flag,
2794
        don't truncate at buflen, but at maxlen.  In xrealloc add
2795
        1 byte at the end for the terminating '\0'.  Don't fill
2796
        with spaces up to buflen, but gfc_option.fixed_line_length.
2797
        (load_file): Adjust load_line caller.  Add line_len variable.
2798
 
2799
        * scanner.c (preprocessor_line): Only set current_file->line when errors
2800
        have not been encountered.  Warn and don't crash if a file leave
2801
        preprocessor line has no corresponding entering line.  Formatting.
2802
 
2803
2005-07-07  Steven Bosscher  
2804
 
2805
        * primary.c (match_hollerith_constant): Use int, not unsigned int,
2806
        for the hollerith length.  Fix indentation.
2807
 
2808
2005-07-07  Feng Wang  
2809
 
2810
        PR fortran/16531
2811
        PR fortran/15966
2812
        PR fortran/18781
2813
        * arith.c (gfc_hollerith2int, gfc_hollerith2real,
2814
        gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
2815
        New functions.
2816
        (eval_intrinsic): Don't evaluate if Hollerith constant arguments exist.
2817
        * arith.h (gfc_hollerith2int, gfc_hollerith2real,
2818
        gfc_hollerith2complex, gfc_hollerith2character, gfc_hollerith2logical):
2819
        Add prototypes.
2820
        * expr.c (free_expr0): Free memery allocated for Hollerith constant.
2821
        (gfc_copy_expr): Allocate and copy string if Expr is from Hollerith.
2822
        (gfc_check_assign): Enable conversion from Hollerith to other.
2823
        * gfortran.h (bt): Add BT_HOLLERITH.
2824
        (gfc_expr): Add from_H flag.
2825
        * intrinsic.c (gfc_type_letter): Return 'h' for BT_HOLLERITH.
2826
        (add_conversions): Add conversions from Hollerith constant to other.
2827
        (do_simplify): Don't simplify if  Hollerith constant arguments exist.
2828
        * io.c (resolve_tag): Enable array in FORMAT tag under GFC_STD_GNU.
2829
        * misc.c (gfc_basetype_name): Return "HOLLERITH" for BT_HOLLERITH.
2830
        (gfc_type_name): Print "HOLLERITH" for BT_HOLLERITH.
2831
        * primary.c (match_hollerith_constant): New function.
2832
        (gfc_match_literal_constant): Add match Hollerith before Integer.
2833
        * simplify.c (gfc_convert_constant): Add conversion from Hollerith
2834
        to other.
2835
        * trans-const.c (gfc_conv_constant_to_tree): Use VIEW_CONVERT_EXPR to
2836
        convert Hollerith constant to tree.
2837
        * trans-io.c (gfc_convert_array_to_string): Get array's address and
2838
        length to set string expr.
2839
        (set_string): Deal with array assigned Hollerith constant and character
2840
        array.
2841
        * gfortran.texi: Document Hollerith constants as extention support.
2842
 
2843
2005-07-07  Feng Wang  
2844
 
2845
        PR fortran/22327
2846
        * trans-array.c (gfc_trans_array_constructor_value): Fix index of data.
2847
 
2848
2005-07-07  Jakub Jelinek  
2849
 
2850
        * decl.c (gfc_match_entry): Allow ENTRY without parentheses
2851
        even in FUNCTIONs.
2852
 
2853
2005-07-03  Kazu Hirata  
2854
 
2855
        * gfortran.texi, intrinsic.texi: Fix typos.
2856
        * symbol.c: Fix a comment typo.
2857
 
2858
2005-07-03  Kaveh R. Ghazi  
2859
 
2860
        * error.c (error_printf, error_print): Use ATTRIBUTE_GCC_GFC.
2861
        * gfortran.h (ATTRIBUTE_GCC_GFC): New.
2862
        (gfc_warning, gfc_warning_now, gfc_error, gfc_error_now,
2863
        gfc_fatal_error, gfc_internal_error, gfc_notify_std): Use
2864
        ATTRIBUTE_GCC_GFC.
2865
 
2866
2005-07-03  Francois-Xavier Coudert  
2867
 
2868
        PR fortran/20842
2869
        * io.c (match_dt_element): Do not allow END tag in PRINT or
2870
        WRITE statement.
2871
 
2872
2005-07-02  Joseph S. Myers  
2873
 
2874
        * lang.opt: Remove "." from end of help texts.
2875
 
2876
2005-07-01  Jerry DeLisle  
2877
 
2878
        * gfortran.texi: Fix typos and grammar.
2879
        * invoke.texi: Fix typos and grammar.
2880
        * intrinsic.texi: Add documentaion for eoshift, epsilon, etime, and
2881
        exit. Fixed alignment of text for dtime syntax. Fixed a few line
2882
        lengths.
2883
 
2884
2005-06-25  Jakub Jelinek  
2885
 
2886
        * trans-stmt.c (gfc_trans_forall_1): Prefer to use smaller logical
2887
        type than boolean_type_node.
2888
 
2889
2005-06-25  Kelley Cook  
2890
 
2891
        * all files: Update FSF address in copyright headers.
2892
 
2893
2005-06-24  Jerry DeLisle  
2894
 
2895
        PR fortran/21915
2896
        * gfortran.h: Add symbols for new intrinsic functions.
2897
        * intrinsic.c: Add new functions acosh, asinh, and atanh.
2898
        * intrinsic.h: Add prototypes for the new functions.
2899
        * iresolve.c (gfc_resolve_acosh): New function.
2900
        (gfc_resolve_asinh): New function.
2901
        (gfc_resolve_atanh): New function.
2902
        * mathbuiltins.def: Add defines.
2903
        * simplify.c (gfc_simplify_acosh): New function.
2904
        (gfc_simplify_asinh): New function.
2905
        (gfc_simplify_atanh): New function.
2906
 
2907
2005-06-24  Feng Wang  
2908
 
2909
        * simplify.c (gfc_simplify_modulo): Don't clear before get result.
2910
 
2911
2005-06-22  Paul Brook  
2912
 
2913
        PR fortran/21034
2914
        * symbol.c (gfc_is_var_automatic): New function.
2915
        (save_symbol): Use it.
2916
 
2917
2005-06-21  Tobias Schlueter  
2918
            Paul Thomas  
2919
 
2920
        PR fortran/22010
2921
        Port from g95.
2922
        * module.c (mio_namelist): New function. Correct to set
2923
        namelist_tail and to give error on renaming namelist by use
2924
        association.
2925
        (mio_symbol): Call mio_namelist.
2926
 
2927
2005-06-19  Francois-Xavier Coudert  
2928
 
2929
        * gfortran.h: Add flag_backslash compile-time option.
2930
        * lang.opt: Add support for -fbackslash option.
2931
        * options.c: Likewise.
2932
        * primary.c: Implement behavior for -fno-backslash.
2933
        * invoke.texi: Add doc for -fbackslash option.
2934
        * gfortran.texi: Remove mention of -fno-backslash as a
2935
        possible extension.
2936
 
2937
2005-06-20  Steven G. Kargl  
2938
        (port from g95)
2939
 
2940
        PR fortran/21257
2941
        * match.c (gfc_match_label): Detect duplicate labels.
2942
 
2943
 
2944
2005-06-20  Erik Edelmann  
2945
 
2946
        * intrinsic.c (check_intrinsic_standard): Fix spelling error
2947
        in a warning message.
2948
 
2949
2005-06-18  Erik Edelman  
2950
            Steven G. Kargl  
2951
 
2952
        PR fortran/19926
2953
        * primary.c (gfc_match_rvalue):  expr_type can be EXPR_CONSTANT
2954
        for an array; check that sym->as is NULL.
2955
 
2956
 
2957
2005-06-18  Steven G. Kargl  
2958
 
2959
        * intrinsic.c (gfc_intrinsic_func_interface): Enable errors for generic
2960
        functions whose simplification routine return FAILURE.
2961
 
2962
2005-06-13  Geoffrey Keating  
2963
 
2964
        * Make-lang.in (fortran.install-man): Doesn't depend on installdirs.
2965
        (rule for installing f95.1 manpage): Does depend on installdirs.
2966
 
2967
2005-06-13  Jakub Jelinek  
2968
 
2969
        PR fortran/22038
2970
        * trans-stmt.c (gfc_trans_forall_loop): Only increment maskindex
2971
        in the innermost loop.
2972
 
2973
        * trans-expr.c (gfc_conv_function_call): Return int instead of
2974
        void.  Use a local variable for has_alternate_specifier and
2975
        return it.  Avoid modification of function type's return value
2976
        in place, since it may be shared.
2977
        * trans.h (has_alternate_specifier): Remove.
2978
        (gfc_conv_function_call): Change return type.
2979
        * trans-stmt.c (has_alternate_specifier): Remove.
2980
        (gfc_trans_call): Add a local has_alternate_specifier variable,
2981
        set it from gfc_conv_function_call return value.
2982
 
2983
2005-06-12  Richard Henderson  
2984
 
2985
        * trans-array.c (gfc_conv_descriptor_data_get): Rename from
2986
        gfc_conv_descriptor_data.  Cast the result to the DATAPTR type.
2987
        (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): New.
2988
        (gfc_trans_allocate_array_storage): Use them.
2989
        (gfc_array_allocate, gfc_array_deallocate): Likewise.
2990
        (gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor): Likewise.
2991
        (gfc_trans_deferred_array): Likewise.
2992
        * trans-expr.c (gfc_conv_function_call): Likewise.
2993
        (gfc_trans_subcomponent_assign): Likewise.
2994
        (gfc_trans_pointer_assignment): Likewise.
2995
        * trans-intrinsic.c (gfc_conv_allocated): Likewise.
2996
        * trans-types.c (gfc_array_descriptor_base): New.
2997
        (gfc_get_element_type): Use GFC_TYPE_ARRAY_DATAPTR_TYPE.
2998
        (gfc_get_array_descriptor_base): Break out from ...
2999
        (gfc_get_array_type_bounds): ... here.  Create type variants.
3000
        * trans-array.h (gfc_conv_descriptor_data_get): Declare.
3001
        (gfc_conv_descriptor_data_set, gfc_conv_descriptor_data_addr): Declare.
3002
 
3003
2005-06-12  Tobias Schl"uter  
3004
 
3005
        * trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
3006
        calling conventions.  Look at sym instead of sym->result.
3007
        * trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
3008
        Remove condition which is always false with workaround removed.
3009
        (gfc_return_by_reference): Always look at sym, never at sym->result.
3010
 
3011
2005-06-11  Steven G. Kargl  
3012
 
3013
        PR fortran/17792
3014
        PR fortran/21375
3015
        * trans-array.c (gfc_array_deallocate): pstat is new argument
3016
        (gfc_array_allocate): update gfc_array_deallocate() call.
3017
        (gfc_trans_deferred_array): ditto.
3018
        * trans-array.h: update gfc_array_deallocate() prototype.
3019
        * trans-decl.c (gfc_build_builtin_function_decls): update declaration
3020
        * trans-stmt.c (gfc_trans_deallocate): Implement STAT= feature.
3021
 
3022
2005-06-07  Jerry DeLisle  
3023
 
3024
        * intrinsic.texi: Add documentation for dcmplx, digits,
3025
        dim, idim, ddim, dot_product, dprod, dreal, and dtime.
3026
 
3027
2005-06-05  Tobias Schl"uter  
3028
 
3029
        PR fortran/21912
3030
        * trans-array.c (gfc_trans_array_constructor_value): Slightly reorder.
3031
        Generate correct exit condition in case of negative steps in
3032
        implied-do loops.
3033
 
3034
        * invoke.texi: Fix description of flags required for compatibility
3035
        with g77.
3036
 
3037
2005-06-04  Tobias Schl"uter  
3038
        Erik Schnetter  
3039
 
3040
        PR fortran/19195
3041
        * trans.c (gfc_get_backend_locus): Remove unnecessary adjustment,
3042
        remove FIXME comment.
3043
 
3044
2005-06-04  Tobias Schl"uter  
3045
 
3046
        * match.c (match_forall_iterator): Don't immediately give error if '='
3047
        is not followed by an expression.
3048
 
3049
2005-06-04  Tobias Schl"uter  
3050
        Erik Edelmann  
3051
 
3052
        * array.c (gfc_match_array_constructor): Disallow empty array
3053
        constructor.
3054
 
3055
2005-06-03  Jerry DeLisle  
3056
 
3057
        * fortran/intrinsic.texi: Add documentation for
3058
        command_argument_count, conjg, dconjg, count,
3059
        cpu_time, cshift, date_and_time, dble, dfloat.
3060
 
3061
2005-06-01  Roger Sayle  
3062
 
3063
        * intrinsic.c (add_conv): No longer take a "simplify" argument as
3064
        its always gfc_convert_constant, instead take a "standard" argument.
3065
        (add_conversions): Change all existing calls of add_conv to pass
3066
        GFC_STD_F77 as appropriate.  Additionally, if we're allowing GNU
3067
        extensions support integer-logical and logical-integer conversions.
3068
        (gfc_convert_type_warn): Warn about use the use of these conversions
3069
        as a extension when appropriate, i.e. with -pedantic.
3070
        * simplify.c (gfc_convert_constant): Add support for integer to
3071
        logical and logical to integer conversions, using gfc_int2log and
3072
        gfc_log2int.
3073
        * arith.c (gfc_log2int, gfc_int2log): New functions.
3074
        * arith.h (gfc_log2int, gfc_int2log): Prototype here.
3075
        * gfortran.texi: Document this new GNU extension.
3076
 
3077
2005-06-01  Paul Thomas  
3078
 
3079
        * fortran/trans-expr.c (gfc_conv_variable): Clean up bracketting.
3080
        * fortran/trans-expr.c (gfc_conv_function_call): Insert spaces.
3081
        Correct comments and replace convert of integer_one_node with
3082
        build_int_cst.
3083
 
3084
2005-06-01  Jakub Jelinek  
3085
 
3086
        PR fortran/21729
3087
        * resolve.c (resolve_contained_fntype): Use sym->attr.untyped
3088
        to avoid giving error multiple times.
3089
        (resolve_entries): Don't error about BT_UNKNOWN here.
3090
        (resolve_unknown_f): Capitalize IMPLICIT for consistency.
3091
        (resolve_fntype): New function.
3092
        (gfc_resolve): Call resolve_fntype.
3093
 
3094
2005-06-01  Feng Wang  
3095
 
3096
        PR fortran/20883
3097
        * fortran/io.c (resolve_tag): Fix error message.
3098
 
3099
2005-05-31  Kaveh R. Ghazi  
3100
 
3101
        * fortran/trans-decl.c: Don't include errors.h.
3102
        * fortran/Make-lang.in: Updates dependencies.
3103
 
3104
2005-05-31  Paul Thomas  
3105
 
3106
        PR fortran/18109
3107
        PR fortran/18283
3108
        PR fortran/19107
3109
        * fortran/trans-array.c (gfc_conv_expr_descriptor): Obtain the
3110
        string length from the expression typespec character length value
3111
        and set temp_ss->stringlength and backend_decl. Obtain the
3112
        tree expression from gfc_conv_expr rather than gfc_conv_expr_val.
3113
        Dereference the expression to obtain the character.
3114
        * fortran/trans-expr.c (gfc_conv_component_ref): Remove the
3115
        dereference of scalar character pointer structure components.
3116
        * fortran/trans-expr.c (gfc_trans_subarray_assign): Obtain the
3117
        string length for the structure component from the component
3118
        expression.
3119
 
3120
2005-05-30  Roger Sayle  
3121
 
3122
        * gfortran.h (GFC_STD_LEGACY): New "standard" macro.  Reindent.
3123
        * options.c (gfc_init_options): By default, allow legacy extensions
3124
        but warn about them.
3125
        (gfc_post_options): Make -pedantic warn about legacy extensions
3126
        even with -std=legacy.
3127
        (gfc_handle_option): Make -std=gnu follow the default behaviour
3128
        of warning about legacy extensions, but allowing them. Make the
3129
        new -std=legacy accept everything and warn about nothing.
3130
        * lang.opt (std=legacy): New F95 command line option.
3131
        * invoke.texi: Document both -std=f2003 and -std=legacy.
3132
        * gfortran.texi: Explain the two types of extensions and document
3133
        how they are affected by the various -std= command line options.
3134
 
3135
2005-05-30  Kazu Hirata  
3136
 
3137
        * trans-expr.c: Remove trailing ^M.
3138
 
3139
        * trans-expr.c: Fix comment typos.
3140
 
3141
2005-05-29  Paul Thomas  
3142
 
3143
        PR fortran/16939
3144
        PR fortran/17192
3145
        PR fortran/17193
3146
        PR fortran/17202
3147
        PR fortran/18689
3148
        PR fortran/18890
3149
        * fortran/trans-array.c (gfc_conv_resolve_dependencies): Add string
3150
        length to temp_ss for character pointer array assignments.
3151
        * fortran/trans-expr.c (gfc_conv_variable): Correct errors in
3152
        dereferencing of characters and character pointers.
3153
        * fortran/trans-expr.c (gfc_conv_function_call): Provide string
3154
        length as return argument for various kinds of handling of return.
3155
        Return a char[]* temporary for character pointer functions and
3156
        dereference the temporary upon return.
3157
 
3158
2005-05-29  Janne Blomqvist  
3159
            Steven G. Kargl  
3160
 
3161
        fortran/PR20846
3162
        * io.c (gfc_match_inquire): Implement constraints on UNIT and FILE usage.
3163
 
3164
2005-05-29  Francois-Xavier Coudert  
3165
 
3166
        PR libfortran/20006
3167
        * io.c (format_item_1): Add check and extension warning for
3168
        $ edit descriptor.
3169
 
3170
2005-05-28  Steven G. Kargl  
3171
 
3172
        * arith.c (gfc_arith_init_1): Fix off by one problem;
3173
        (gfc_check_integer_range): Chop extra bits in subnormal numbers.
3174
 
3175
2005-05-28  Jerry DeLisle   
3176
            Steven G. Kargl  
3177
 
3178
        * intrinsic.texi: added documentation for BIT_SIZE, BTEST, CHAR, CEILING
3179
        and CMPLX
3180
 
3181
2005-05-27  Steven G. Kargl  
3182
 
3183
        * trans-array.c (gfc_trans_deferred_array): Use build_int_cst to force
3184
        like types in comparsion.
3185
 
3186
2005-05-26  Kazu Hirata  
3187
 
3188
        * data.c, parse.c, trans-array.c, trans-decl.c,
3189
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
3190
        trans.h: Fix comment typos.  Follow spelling conventions.
3191
 
3192
2005-05-22  Roger Sayle  
3193
 
3194
        * gfortran.texi: Document some more GNU extensions.
3195
 
3196
2005-05-22  Francois-Xavier Coudert  
3197
 
3198
        * error.c (gfc_warning): Fix typo in comment.
3199
 
3200
2005-05-18  Thomas Koenig  
3201
 
3202
        PR libfortran/21127
3203
        * fortran/iresolve.c (gfc_resolve_reshape): Add
3204
        gfc_type_letter (BT_COMPLEX) for complex to
3205
        to resolved function name.
3206
 
3207
2005-05-18  Erik Edelmann  
3208
 
3209
        * array.c (gfc_match_array_constructor): Support [ ... ]
3210
        style array constructors.
3211
 
3212
2005-05-18  Tobias Schl"uter  
3213
 
3214
        * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_TRUNC
3215
        and BUILT_IN_TRUNCF instead of BUILT_IN_FLOOR and BUILT_IN_FLOORF.
3216
        * trans-intrinsic.c (build_fix_expr): Change 'op' argument
3217
        to correct enum type.
3218
        (gfc_conv_intrinsic_aint): Likewise.  Clarify comment in front of
3219
        function.  Add default case to switch, deal with FIX_TRUNC_EXPR
3220
        instead of FIX_FLOOR_EXPR.
3221
 
3222
2005-05-18  Feng Wang  
3223
 
3224
        PR fortran/20954
3225
        * trans-const.c (gfc_conv_const_charlen): Use gfc_charlen_type_node to
3226
        build character length.
3227
 
3228
2005-05-17  Zdenek Dvorak  
3229
 
3230
        * trans-types.c (gfc_array_range_type): New variable.
3231
        (gfc_init_types): Initialize gfc_array_range_type.
3232
        (gfc_get_array_type_bounds): Use gfc_array_range_type.
3233
 
3234
2005-05-17  Jakub Jelinek  
3235
 
3236
        PR fortran/15080
3237
        * trans-stmt.c (generate_loop_for_temp_to_lhs): Remove SIZE and COUNT2
3238
        arguments.  If LSS is gfc_ss_terminator, increment COUNT1 by 1, instead
3239
        of incrementing COUNT2 and using COUNT1+COUNT2 increment COUNT1 and use
3240
        just that as index.
3241
        (generate_loop_for_rhs_to_temp): Likewise.
3242
        (compute_overall_iter_number): Add INNER_SIZE_BODY argument.
3243
        It non-NULL, add it to body.
3244
        (allocate_temp_for_forall_nest_1): New function, split from
3245
        allocate_temp_for_forall_nest.
3246
        (allocate_temp_for_forall_nest): Add INNER_SIZE_BODY argument,
3247
        propagate it down to compute_overall_iter_number.  Use
3248
        allocate_temp_for_forall_nest_1.
3249
        (gfc_trans_assign_need_temp): Remove COUNT2.  Call
3250
        compute_inner_temp_size into a new stmtblock_t.  Adjust calls to
3251
        allocate_temp_for_forall_nest, generate_loop_for_rhs_to_temp
3252
        and generate_loop_for_temp_to_lhs.
3253
        (gfc_trans_pointer_assign_need_temp): Adjust calls to
3254
        allocate_temp_for_forall_nest.
3255
        (gfc_evaluate_where_mask): Call compute_inner_temp_size into a new
3256
        stmtblock_t.  Call compute_overall_iter_number just once, then
3257
        allocate_temp_for_forall_nest_1 twice with the same size.
3258
        Initialize mask indexes if nested_forall_info != NULL.
3259
        (gfc_trans_where_2): Initialize mask indexes before calling
3260
        gfc_trans_nested_forall_loop.
3261
 
3262
2005-05-15  Feng Wang  
3263
        Jerry DeLisle  
3264
 
3265
        PR fortran/17432
3266
        * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to
3267
        resolve ICE on assign of format label.
3268
        * trans-io.c (set_string): add fold-convert to properly
3269
        handle assigned format label in write.
3270
 
3271
2005-05-13  Paul Brook  
3272
 
3273
        * trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
3274
 
3275
2005-05-12  Tobias Schl"uter  
3276
 
3277
        * trans-types.c (gfc_is_nodesc_array): Remove redundant check.
3278
 
3279
2005-05-11  Tobias Schl"uter  
3280
 
3281
        PR fortran/21260
3282
        * io.c (check_format): Look for literal characters inside
3283
        hollerith constant.
3284
 
3285
2005-05-11  Tobias Schl"uter  
3286
 
3287
        * resolve.c (resolve_symbol): Copy 'pointer' and 'dimension'
3288
        attribute from result symbol to function symbol.
3289
        * trans-expr.c (gfc_conv_function_call): Look at sym->attr.dimension
3290
        instead of sym->result->attr.dimension.
3291
 
3292
2005-05-10  Tobias Schl"uter  
3293
 
3294
        PR fortran/20178
3295
        * gfortran.h (gfc_option): Add flag_f2c.
3296
        * invoke.texi: Document '-ff2c' command line option.  Adapt
3297
        documentation for '-fno-second-underscore' and '-fno-underscoring'.
3298
        * lang.opt (ff2c): New entry.
3299
        * options.c (gfc-init_options): Set default calling convention
3300
        to -fno-f2c.  Mark -fsecond-underscore unset.
3301
        (gfc_post_options): Set -fsecond-underscore if not explicitly set
3302
        by user.
3303
        (handle_options): Set gfc_option.flag_f2c according to requested
3304
        calling convention.
3305
        * trans-decl.c (gfc_get_extern_function_decl): Use special f2c
3306
        intrinsics where necessary.
3307
        (gfc_trans_deferred_vars): Change todo error to assertion.
3308
        * trans-expr.c (gfc_conv_variable): Dereference access
3309
        to hidden result argument.
3310
        (gfc_conv_function_call): Add hidden result argument to argument
3311
        list if f2c calling conventions requested.  Slightly restructure
3312
        tests.  Convert result of default REAL function to requested type
3313
        if f2c calling conventions are used.  Dereference COMPLEX result
3314
        if f2c cc are used.
3315
        * trans-types.c (gfc_sym_type):  Return double for default REAL
3316
        function if f2c cc are used.
3317
        (gfc_return_by_reference): Slightly restructure logic.  Return
3318
        COMPLEX by reference depending on calling conventions.
3319
        (gfc_get_function_type): Correctly make hidden result argument a
3320
        pass-by-reference argument for COMPLEX.  Remove old code which does
3321
        this for derived types.
3322
 
3323
2005-05-09  Tobias Schl"uter  
3324
 
3325
        * match.c (gfc_match_return): Only require space after keyword when
3326
        it is obligatory.  Only give stdwarn to after matching is successful.
3327
        * dump-parse-tree.c (gfc_show_symbol): Deal with alternate returns.
3328
 
3329
2005-05-08  Kazu Hirata  
3330
 
3331
        * intrinsic.texi: Fix typos.
3332
 
3333
2005-05-07  Steven G. Kargl  
3334
 
3335
        * intrinsic.texi:  Document ASSOCIATED and ATAN2.  Update Bessel function
3336
        description to include information about scalar arguments.
3337
 
3338
2005-05-03  Kazu Hirata  
3339
 
3340
        * Make-lang.in, dump-parse-tree.c, invoke.texi, lang.opt,
3341
        match.h, trans-array.h: Update copyright.
3342
 
3343
2005-04-29  Tom Tromey  
3344
 
3345
        * f95-lang.c (poplevel): Updated for change to build_block.
3346
 
3347
2005-04-29  Jakub Jelinek  
3348
 
3349
        PR fortran/13082
3350
        PR fortran/18824
3351
        * trans-expr.c (gfc_conv_variable): Handle return values in functions
3352
        with alternate entry points.
3353
        * resolve.c (resolve_entries): Remove unnecessary string termination
3354
        after snprintf.  Set result of entry master.
3355
        If all entries have the same type, set entry master's type
3356
        to that common type, otherwise set mixed_entry_master attribute.
3357
        * trans-types.c (gfc_get_mixed_entry_union): New function.
3358
        (gfc_get_function_type): Use it for mixed_entry_master functions.
3359
        * gfortran.h (symbol_attribute): Add mixed_entry_master bit.
3360
        * decl.c (gfc_match_entry): Set entry->result properly for
3361
        function ENTRY.
3362
        * trans-decl.c (gfc_get_symbol_decl): For entry_master, skip over
3363
        __entry argument.
3364
        (build_entry_thunks): Handle return values in entry thunks.
3365
        Clear BT_CHARACTER's ts.cl->backend_decl, so that it is not
3366
        shared between multiple contexts.
3367
        (gfc_get_fake_result_decl): Use DECL_ARGUMENTS from
3368
        current_function_decl instead of sym->backend_decl.  Skip over
3369
        entry master's entry id argument.  For mixed_entry_master entries or
3370
        their results, return a COMPONENT_REF of the fake result.
3371
        (gfc_trans_deferred_vars): Don't warn about missing return value if
3372
        at least one entry point uses RESULT.
3373
        (gfc_generate_function_code): For entry master returning
3374
        CHARACTER, copy ts.cl->backend_decl to all entry result syms.
3375
        * trans-array.c (gfc_trans_dummy_array_bias): Don't consider return
3376
        values optional just because they are in entry master.
3377
 
3378
2005-04-29  Francois-Xavier Coudert  
3379
 
3380
        * gfortran.h (gfc_namespace): Add seen_implicit_none field,
3381
        Tobias forgot this in previous commit.
3382
 
3383
2005-04-29  Paul Brook   
3384
 
3385
        * trans-expr.c (gfc_conv_expr_present): Fix broken assert.  Update
3386
        comment.
3387
 
3388
2005-04-29  Tobias Schl"uter  
3389
 
3390
        * gfortran.h (gfc_namespace): Add seen_implicit_none field.
3391
        * symbol.c (gfc_set_implicit_none): Give error if there's a previous
3392
        IMPLICIT NONE, set seen_implicit_none.
3393
        (gfc_merge_new_implicit): Error if there's an IMPLICIT NONE statement.
3394
 
3395
2005-04-28  Tobias Schl"uter  
3396
 
3397
        * gfortran.h (gfc_gsymbol): Make name a const char *.
3398
        * symbol.c (gfc_get_gsymbol): Allocate gsymbol name via
3399
        gfc_get_string.
3400
 
3401
2005-04-28  Francois-Xavier Coudert  
3402
 
3403
        PR fortran/20865
3404
        * resolve.c (resolve_actual_arglist): Issue an error if a statement
3405
        functions is used as actual argument.
3406
 
3407
2005-04-27  Francois-Xavier Coudert  
3408
 
3409
        PR fortran/21177
3410
        * interface.c (compare_parameter): Ignore type for EXPR_NULL
3411
        only if type is BT_UNKNOWN.
3412
 
3413
2005-04-25  Paul Brook  
3414
        Steven G. Kargl  
3415
 
3416
        PR fortran/20879
3417
        * check.c (gfc_check_ichar_iachar): New function.
3418
        * instinsic.h (gfc_check_ichar_iachar): Add prototype.
3419
        * intrinsic.c (add_functions): Use it.
3420
        * primary.c (match_varspec, gfc_match_rvalue): Clear incorrect
3421
        character expression lengths.
3422
 
3423
2005-04-24  Tobias Schl"uter  
3424
 
3425
        PR fortran/20059
3426
        * trans-common.c (translate_common): Cast offset and
3427
        common_segment->offset to type int for warning message.
3428
 
3429
2005-04-23  DJ Delorie  
3430
 
3431
        * trans-decl.c: Adjust warning() callers.
3432
 
3433
2005-04-23  Tobias Schl"uter  
3434
 
3435
        * trans-const.c (gfc_conv_mpfr_to_tree): Use hexadecimal string as
3436
        intermediate representation.  Fix typo in comment.
3437
 
3438
2005-04-21  Steven G. Kargl  
3439
 
3440
        * trans-const.c (gfc_conv_mpfr_to_tree): Remove unneeded computation;
3441
        simplify logic; Add a gcc_assert.
3442
 
3443
2005-04-19  Steven G. Kargl  
3444
 
3445
        * trans-const.c (gfc_conv_mpz_to_tree): Fix comment.
3446
 
3447
2005-04-19  Arnaud Desitter  
3448
            Steven G. Kargl  
3449
 
3450
        * invoke.texi: Update -Waliasing description
3451
 
3452
2005-04-19  Francois-Xavier Coudert  
3453
 
3454
        PR fortran/16861
3455
        * resolve.c (resolve_variable): If e->symtree is not set, this
3456
        ought to be a FAILURE, and not a segfault.
3457
 
3458
2005-04-17  Paul Thomas  
3459
 
3460
        PR fortran/17472
3461
        PR fortran/18209
3462
        PR fortran/18396
3463
        PR fortran/19467
3464
        PR fortran/19657
3465
        * fortran/trans-io.c (gfc_build_io_library_fndecls): Create
3466
        declaration for st_set_nml_var and st_set_nml_var_dim. Remove
3467
        declarations of old namelist functions.
3468
        (build_dt): Simplified call to transfer_namelist_element.
3469
        (nml_get_addr_expr): Generates address expression for start of
3470
        object data. New function.
3471
        (nml_full_name): Qualified name for derived type components. New
3472
        function.
3473
        (transfer_namelist_element): Modified for calls to new functions
3474
        and improved derived type handling.
3475
 
3476
2005-04-17  Richard Guenther  
3477
 
3478
        * scanner.c (gfc_next_char_literal): Reset truncation flag
3479
        for lines ending in a comment for both fixed and free form.
3480
        (load_line): Do not set truncated flag if only truncating
3481
        the EOL marker.
3482
 
3483
2005-04-15  Richard Guenther  
3484
 
3485
        PR fortran/14569
3486
        * gfortran.h (gfc_linebuf): Add truncated field.
3487
        * parse.c (next_statement): Handle warning for truncated
3488
        lines.
3489
        * scanner.c (load_line): Return if line was truncated.
3490
        No longer warn for truncated lines.  Remove unused parameters.
3491
        (load_file): Store load_line return value to linebuf.
3492
        (gfc_error_recovery): Do not advance line at the end.
3493
 
3494
2005-04-14  Steven G. Kargl  
3495
 
3496
        * gfortran.h (gfc_real_info): Add subnormal struct member.
3497
        * arith.c (gfc_arith_init_1): Set it.
3498
        (gfc_check_real_range): Use it.
3499
        * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
3500
 
3501
2005-04-12  Kazu Hirata  
3502
 
3503
        * simplify.c: Fix a comment typo.
3504
 
3505
2005-04-11  Richard Sandiford  
3506
 
3507
        * lang.opt: Refer to the GCC internals documentation instead of c.opt.
3508
 
3509
2005-04-11  Tobias Schl"uter  
3510
 
3511
        * simplify.c (gfc_simplify_nearest): Overhaul.
3512
 
3513
2005-04-10  Kazu Hirata  
3514
 
3515
        * interface.c: Fix a comment typo.
3516
 
3517
2005-04-10  Francois-Xavier Coudert  
3518
 
3519
        * match.c (match_arithmetic_if): Arithmetic IF is obsolete in
3520
        Fortran 95.
3521
 
3522
2005-04-09  Steven G. Kargl  
3523
 
3524
        * simplify.c (gfc_simplify_anint): Use mpfr_round()
3525
        (gfc_simplify_dnint): ditto.
3526
        (gfc_simplify_nint): ditto.
3527
 
3528
2005-04-09  Andrew Pinski  
3529
 
3530
        PR fortran/13257
3531
        * io.c (check_format): Allow an optional comma
3532
        between descriptors.
3533
 
3534
2005-04-09  Francois-Xavier Coudert  
3535
 
3536
        * match.c (match_arithmetic_if): Remove gfc_ prefix and correct
3537
        comment according to GNU coding style.
3538
        (gfc_match_if): Remove gfc_ prefix in call to
3539
        match_arithmetic_if.
3540
 
3541
2005-04-08  Diego Novillo  
3542
 
3543
        * match.c (gfc_match_arithmetic_if): Declare static.
3544
 
3545
2005-04-08  Francois-Xavier Coudert  
3546
 
3547
        PR fortran/17229
3548
        * match.c (gfc_match_arithmetic_if): New function to match an
3549
        arithmetic IF statement.
3550
        (gfc_match_if): Use gfc_match_arithmetic_if to match an
3551
        arithmetic IF statement embedded in a simple IF statement.
3552
 
3553
2005-04-07  Steven G. Kargl  
3554
 
3555
        * simplify.c (gfc_simplify_exponent): Fix exponent(tiny(x))
3556
 
3557
2005-04-06  Steven G. Kargl  
3558
 
3559
        * invoke.texi: Remove documentation of -std=f90
3560
 
3561
2005-04-06  Tobias Schl"uter  
3562
 
3563
        * expr.c (gfc_check_assign): Don't allow NULL as rhs in a
3564
        non-pointer assignment.
3565
 
3566
2005-04-05  Feng Wang  
3567
 
3568
        PR fortran/15959
3569
        PR fortran/20713
3570
 
3571
        * array.c (resolve_character_array_constructor): New function. Set
3572
        constant character array's character length.
3573
        (gfc_resolve_array_constructor): Use it.
3574
        * decl.c (add_init_expr_to_sym): Set symbol and initializer character
3575
        length.
3576
        (gfc_set_constant_character_len): New function. Set constant character
3577
        expression according the given length.
3578
        * match.h (gfc_set_constant_character_len): Add prototype.
3579
 
3580
2005-04-04  Francois-Xavier Coudert  
3581
 
3582
        * intrinsic.texi: BES?? functions are not in the f95 standard.
3583
 
3584
2005-04-03  Francois-Xavier Coudert  
3585
 
3586
        * intrinsic.texi: Document COS, EXP, LOG, LOG10, SIN, SQRT, TAN.
3587
 
3588
2005-04-03  Francois-Xavier Coudert  
3589
 
3590
        * intrinsic.texi: Document BESJ0, BESJ1, BESJN, BESY0, BESY1,
3591
        BESYN, ATAN, COSH, ERF, ERC, SINH, TANH.
3592
 
3593
2005-04-02  Steven G. Kargl  
3594
 
3595
        * intrinsic.texi: Document ALLOCATED, ANINT, ANY, ASIN; fix typos
3596
 
3597
2005-04-01  Kazu Hirata  
3598
 
3599
        * decl.c, f95-lang.c, interface.c, module.c, trans-stmt.c,
3600
        trans.h: Fix comment typos.
3601
 
3602
2005-03-29  Steven G. Kargl  
3603
 
3604
        * gfortran.h (option_t): Change d8, i8, r8 to flag_default_double,
3605
        flag_default_integer, flag_default_real
3606
        * invoke.texi: Update documentation
3607
        * lang.opt: Remove d8, i8, r8 definitions; Add fdefault-double-8
3608
        fdefault-integer-8, and fdefault-real-8 definitions.
3609
        * options.c (gfc_init_options): Set option defaults
3610
        (gfc_handle_option): Handle command line options.
3611
        * trans-types.c (gfc_init_kinds): Use options.
3612
 
3613
2005-03-29  Keith Besaw  
3614
 
3615
        * f95-lang.c (builtin_function): Process the attrs parameter
3616
        and apply the "const" attribute to the builtin if found.
3617
 
3618
2005-03-27  Steven G. Kargl  
3619
 
3620
        * intrinsic.texi: Document AIMAG, AINT, ALL
3621
 
3622
2005-03-26  Steven G. Kargl  
3623
 
3624
        * arith.c (check_result): Fix illogical logic.
3625
 
3626
2005-03-26  Canqun Yang  
3627
 
3628
        * trans-common.c (create_common): Build RECORD_NODE for common blocks
3629
        contain no equivalence objects.
3630
        (add_equivalences): New argument saw_equiv.
3631
        (trans_common): New local variable saw_equiv.
3632
        (finish_equivalences): Add a local variable dummy, Always pass true
3633
        for the 3rd parameter to create_common.
3634
 
3635
2005-03-25  Steven G. Kargl  
3636
 
3637
        * intrinsic.texi: Fix "make dvi"
3638
 
3639
2005-03-24  Steven G. Kargl  
3640
 
3641
        * intrinsic.texi: New file.
3642
        * gfortran.texi: Include it; white space change; fix typo.
3643
 
3644
2005-03-23  Joseph S. Myers  
3645
 
3646
        * f95-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
3647
 
3648
2005-03-23  Steven Bosscher  
3649
 
3650
        * convert.c (convert): Replace fold (buildN (...)) with fold_buildN.
3651
        * trans-array.c (gfc_trans_allocate_array_storage,
3652
        gfc_trans_allocate_temp_array gfc_trans_array_constructor_value,
3653
        gfc_conv_array_index_ref, gfc_trans_array_bound_check,
3654
        gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
3655
        gfc_conv_array_ref, gfc_trans_preloop_setup, gfc_conv_ss_startstride,
3656
        gfc_conv_loop_setup, gfc_array_init_size, gfc_trans_array_bounds,
3657
        gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
3658
        gfc_conv_expr_descriptor): Likewise.
3659
        * trans-expr.c (gfc_conv_powi, gfc_conv_string_tmp,
3660
        gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
3661
        * trans-intrinsic.c (build_round_expr, gfc_conv_intrinsic_bound,
3662
        gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_sign,
3663
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
3664
        gfc_conv_intrinsic_btest, gfc_conv_intrinsic_bitop,
3665
        gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ibits,
3666
        gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_ishftc,
3667
        gfc_conv_intrinsic_merge, prepare_arg_info,
3668
        gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_repeat): Likewise.
3669
        * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do, gfc_trans_do_while,
3670
        gfc_trans_forall_loop, gfc_do_allocate, generate_loop_for_temp_to_lhs,
3671
        generate_loop_for_rhs_to_temp, compute_inner_temp_size,
3672
        allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
3673
        gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_where_assign):
3674
        Likewise.
3675
        * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Likewise.
3676
        * trans.c (gfc_add_modify_expr): Likewise.
3677
 
3678
2005-03-22  Francois-Xavier Coudert  
3679
 
3680
        * check.c (gfc_check_chdir, gfc_check_chdir_sub, gfc_check_kill,
3681
        gfc_check_kill_sub, gfc_check_link, gfc_check_link_sub,
3682
        gfc_check_symlnk, gfc_check_symlnk_sub, gfc_check_rename,
3683
        gfc_check_rename_sub, gfc_check_sleep_sub, gfc_check_gerror,
3684
        gfc_check_getlog, gfc_check_hostnm, gfc_check_hostnm_sub,
3685
        gfc_check_perror): new functions to check newly implemented
3686
        g77 intrinsics.
3687
        * gfortran.h: adding symbols for new intrinsics.
3688
        * intrinsic.c (add_functions): adding new intrinsics.
3689
        (add_subroutines): adding new intrinsics.
3690
        * intrinsic.h: prototype for all checking and resolving
3691
        functions.
3692
        * iresolve.c (gfc_resolve_chdir, gfc_resolve_chdir_sub,
3693
        gfc_resolve_hostnm, gfc_resolve_ierrno, gfc_resolve_kill,
3694
        gfc_resolve_link, gfc_resolve_rename, gfc_resolve_symlnk,
3695
        gfc_resolve_time, gfc_resolve_time8, gfc_resolve_rename_sub,
3696
        gfc_resolve_kill_sub, gfc_resolve_link_sub,
3697
        gfc_resolve_symlnk_sub, gfc_resolve_sleep_sub,
3698
        gfc_resolve_gerror, gfc_resolve_getlog, gfc_resolve_hostnm_sub,
3699
        gfc_resolve_perror): new functions to resolve intrinsics.
3700
        * trans-intrinsic.c (gfc_conv_intrinsic_function): add case
3701
        for new symbols.
3702
 
3703
2005-03-19  Tobias Schl"uter  
3704
 
3705
        * dump-parse-tree.c (gfc_show_expr): Dump name of namespace
3706
        in which the variable is declared.
3707
 
3708
        PR fortran/18525
3709
        * resolve.c (was_declared): Also check for dummy attribute.
3710
 
3711
2005-03-19  Tobias Schl"uter  
3712
 
3713
        * gfortran.h (arith): Remove ARITH_0TO0.
3714
        * arith.c (gfc_arith_error): Remove handling of ARITH_0TO0.
3715
        (gfc_arith_power): Remove special casing of zero to integral
3716
        power zero.
3717
 
3718
2005-03-18  Kaveh R. Ghazi  
3719
 
3720
        * Make-lang.in (fortran-warn): Remove -Wno-error.
3721
        (expr.o-warn, resolve.o-warn, simplify.o-warn,
3722
        trans-common.o-warn): Specify -Wno-error.
3723
 
3724
2005-03-17  Tobias Schl"uter  
3725
 
3726
        * trans-array.c (gfc_trans_static_array_pointer,
3727
        get_array_ctor_var_strlen, gfc_conv_array_index_offset): Fix
3728
        comment and formatting typos.
3729
 
3730
2005-03-17  Francois-Xavier Coudert  
3731
 
3732
        * invoke.texi: Fix typos.
3733
 
3734
2005-03-15  Zack Weinberg  
3735
 
3736
        * Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
3737
 
3738
2005-03-15  Feng Wang  
3739
 
3740
        * trans-stmt.c (gfc_trans_label_assign): Don't set DECL_ARTIFICIAL flag
3741
        to zero on label_tree.
3742
 
3743
2005-03-15  Feng Wang  
3744
 
3745
        PR fortran/18827
3746
        * io.c (resolve_tag): Add checking on assigned label.
3747
        (match_dt_format): Does not set symbol assign attribute.
3748
        * match.c (gfc_match_goto):Does not set symbol assign attribute.
3749
        * resolve.c (resolve_code): Add checking on assigned label.
3750
        * trans-common.c (build_field): Deals with common variable assigned
3751
        a label.
3752
        * trans-stmt.c (gfc_conv_label_variable): New function.
3753
        (gfc_trans_label_assign): Use it.
3754
        (gfc_trans_goto): Ditto.
3755
        * trans-io.c (set_string): Ditto.
3756
        * trans.h (gfc_conv_label_variable): Add prototype.
3757
 
3758
2005-03-14  Tobias Schl"uter  
3759
 
3760
        PR fortran/20467
3761
        * symbol.c (check_conflict): A dummy argument can't be a statement
3762
        function.
3763
 
3764
2005-03-14  Zdenek Dvorak  
3765
 
3766
        * fortran/trans-intrinsic.c (gfc_conv_intrinsic_ishft): Convert
3767
        the argument of the shift to the unsigned type.
3768
 
3769
2005-03-13  Tobias Schl"uter  
3770
 
3771
        PR fortran/16907
3772
        * resolve.c (gfc_resolve_index): Allow REAL indices as an extension.
3773
 
3774
2005-03-13  Tobias Schl"uter  
3775
 
3776
        PR fortran/20323
3777
        * resolve.c (gfc_resolve): Check if character lengths are
3778
        specification expressions.
3779
 
3780
2005-03-12  Tobias Schl"uter  
3781
 
3782
        PR fortran/20361
3783
        * trans-array.c (gfc_stack_space_left): Remove unused variable.
3784
        (gfc_can_put_var_on_stack): Move to trans-decl.c, remove #if 0'ed
3785
        code.
3786
        * trans-array.h (gfc_stack_space_left, gfc_can_put_var_on_stack):
3787
        Remove declaration / prototype.
3788
        * trans-common.c (build_equiv_decl): Give union a name.  Check if
3789
        it can be put on the stack.
3790
        * trans-decl.c (gfc_stack_space_left): Move function here.
3791
        (gfc_build_qualified_array): Fix comment typo.
3792
        * trans.h (gfc_put_var_on_stack): Add prototype.
3793
 
3794
2005-03-11  Kaveh R. Ghazi  
3795
 
3796
        * Make-lang.in (fortran-warn): Set to $(STRICT_WARN) -Wno-error.
3797
        * decl.c, trans.c: Don't use C++ style comments.
3798
        * gfortran.h (sym_flavor, procedure_type, sym_intent, gfc_access,
3799
        ifsrc): Give names to enums and use ENUM_BITFIELD.
3800
        (gfc_access): Remove trailing comma.
3801
 
3802
2005-03-05  Steven G. Kargl  
3803
 
3804
        PR 19936
3805
        * primary.c (match_complex_constant): Mangled complex constant may
3806
        be an implied do-loop.  Give implied do-loop matcher a chance.
3807
 
3808
2005-03-05  Steven G. Kargl  
3809
 
3810
        PR fortran/19754
3811
        * resolve.c (compare_shapes):  New function.
3812
        (resolve_operator): Use it.
3813
 
3814
2005-03-05  Tobias Schl"uter  
3815
 
3816
        * trans-const.c (gfc_conv_constant_to_tree): Use correct tree
3817
        type for COMPLEX constants.
3818
 
3819
2005-03-04  Tobias Schl"uter  
3820
 
3821
        PR fortran/19673
3822
        * trans-expr.c (gfc_conv_function_call): Correctly dereference
3823
        argument from a pointer function also if it has a result clause.
3824
 
3825
2005-03-04  Steven G. Kargl  
3826
 
3827
        * expr.c (gfc_copy_shape_excluding): Change && to ||.
3828
 
3829
2005-03-04  Tobias Schl"uter  
3830
 
3831
        * trans-intrinsic.c (gfc_get_symbol_for_expr): Fix comment typo,
3832
        clarify comment.
3833
 
3834
2005-02-28  Tobias Schl"uter  
3835
        (port from g95)
3836
 
3837
        PR fortran/19479
3838
        * simplify.c (gfc_simplify_bound): Rename to ...
3839
        (simplify_bound): ... this and overhaul.
3840
 
3841
2005-02-28  Steven G. Kargl  
3842
 
3843
        * trans-intrinsic.c (gfc_conv_intrinsic_iargc): remove boolean argument.
3844
        (gfc_conv_intrinsic_function): update function calls
3845
 
3846
2005-02-27  Steven G. Kargl  
3847
 
3848
        PR fortran/20058
3849
        * trans-types.c (gfc_max_integer_kind): Declare
3850
        (gfc_init_kinds): Initialize it.
3851
        * gfortran.h (gfc_max_integer_kind): extern it.
3852
        * primary.c (match_boz_constant): Use it; remove gfortran extension
3853
        of kind suffixes on BOZ literal constants
3854
 
3855
 
3856
2005-02-27  Steven G. Kargl  
3857
 
3858
        * arith.c (gfc_check_real_range):  Remove multiple returns
3859
        (check_result): New function.
3860
        (gfc_arith_uminus,gfc_arith_plus,gfc_arith_times,
3861
        gfc_arith_divide,gfc_arith_power,gfc_arith_minus): Use it.
3862
 
3863
 
3864
2005-02-24  Volker Reichelt  
3865
 
3866
        * decl.c, resolve.c, trans-array.c, trans.h: Fix comment typo(s).
3867
 
3868
 
3869
2005-02-24  Tobias Schl"uter  
3870
 
3871
        Unrevert previously reverted patch.  Adding this fix:
3872
        * module.c (find_true_name): Deal with NULL module.
3873
 
3874
2005-02-24  Tobias Schl"uter  
3875
 
3876
        Revert yesterday's patch:
3877
        2005-02-23  Tobias Schl"uter  
3878
 
3879
                * gfortran.h (gfc_component, gfc_actual_arglist, ...
3880
                ... argument.  Copy string instead of pointing to it.
3881
 
3882
2005-02-23  Tobias Schl"uter  
3883
 
3884
        * gfortran.h (gfc_get_namespace): Add second argument to prototype.
3885
        * intrinsic.c (gfc_intrinsic_init_1): Pass second argument to
3886
        gfc_get_namespace.
3887
        * module.c (mio_namespace_ref, load_needed): Likewise.
3888
        * parse.c (parse_interface, parse_contained): Likewise.  Here the
3889
        correct second argument matters.
3890
        * symbol.c (gfc_get_namespace): Add parent_types argument, only copy
3891
        parent's implicit types if this is set.
3892
        (gfc_symbol_init_2): Pass second argument to gfc_get_namespace.
3893
        * trans-common.c (build_common_decl): Likewise.
3894
 
3895
        * gfortran.h (symbol_attribute): New 'untyped' field, fix comment
3896
        formatting.
3897
        * symbol.c (gfc_set_default_type): Issue error only once, by setting
3898
        and checking 'untyped' attribute.
3899
 
3900
        * gfortran.h (gfc_expr): Move 'operator', 'op1', 'op2', and 'uop'
3901
        fields into new struct 'op' inside the 'value' union.
3902
        * arith.c (eval_intrinsic): Adapt all users.
3903
        * dependency.c (gfc_check_dependency): Likewise.
3904
        * dump-parse-tree.c (gfc_show_expr): Likewise.
3905
        * expr.c (gfc_get_expr): Don't clear removed fields.
3906
        (free_expr0, gfc_copy_expr, gfc_type_convert_binary,
3907
        gfc_is_constant_expr, simplify_intrinsic_op, check_init_expr,
3908
        check_intrinsic_op): Adapt to new field names.
3909
        * interface.c (gfc_extend_expr): Likewise.  Also explicitly
3910
        nullify 'esym' and 'isym' fields of new function call.
3911
        * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
3912
        Adapt to renamed structure fields.
3913
        * matchexp.c (build_node, match_level_1, match_expr): Likewise.
3914
        * module.c (mio_expr): Likewise.
3915
        * resolve.c (resolve_operator): Likewise.
3916
        (gfc_find_forall_index): Likewise.  Only look through operands
3917
        if dealing with EXPR_OP
3918
        * trans-array.c (gfc_walk_op_expr): Adapt to renamed fields.
3919
        * trans-expr.c (gfc_conv_unary_op, gfc_conv_power_op,
3920
        gfc_conv_concat_op, gfc_conv_expr_op): Likewise.
3921
 
3922
        [ Reverted ]
3923
        * gfortran.h (gfc_component, gfc_actual_arglist, gfc_user_op): Make
3924
        'name' a 'const char *'.
3925
        (gfc_symbol): Likewise, also for 'module'.
3926
        (gfc_symtree): Make 'name' a 'const char *'.
3927
        (gfc_intrinsic_sym): Likewise, also for 'lib_name'.
3928
        (gfc_get_gsymbol, gfc_find_gsymbol): Add 'const' qualifier to
3929
        'char *' argument.
3930
        (gfc_intrinsic_symbol): Use 'gfc_get_string' instead of 'strcpy' to
3931
        initialize 'SYM->module'.
3932
        * check.c (gfc_check_minloc_maxloc, check_reduction): Check for NULL
3933
        pointer instead of empty string.
3934
        * dump-parse-tree.c (gfc_show_actual_arglist): Likewise.
3935
        * interface.c (gfc_compare_types): Adapt check to account for possible
3936
        NULL pointer.
3937
        (compare_actual_formal): Check for NULL pointer instead of empty
3938
        string.
3939
        * intrinsic.c (gfc_current_intrinsic, gfc_current_intrinsic_arg):
3940
        Add 'const' qualifier.
3941
        (conv_name): Return a heap allocated string.
3942
        (find_conv): Add 'const' qualifier to 'target'.
3943
        (add_sym): Use 'gfc_get_string' instead of 'strcpy'.
3944
        (make_generic): Check for NULL pointer instead of empty string.
3945
        (make_alias): Use 'gfc_get_string' instead of 'strcpy'.
3946
        (add_conv): No need to strcpy result from 'conv_name'.
3947
        (sort_actual): Check for NULL pointer instead of empty  string.
3948
        * intrinsic.h (gfc_current_intrinsic, gfc_current_intrinsic_arg):
3949
        Adapt prototype.
3950
        * module.c (compare_true_names): Compare pointers instead of strings
3951
        for 'module' member.
3952
        (find_true_name): Initialize string fields with gfc_get_string.
3953
        (mio_pool_string): New function.
3954
        (mio_internal_string): Adapt comment.
3955
        (mio_component_ref, mio_component, mio_actual_arg): Use
3956
        'mio_pool_string' instead of 'mio_internal_string'.
3957
        (mio_symbol_interface): Add 'const' qualifier to string arguments.
3958
        Add level of indirection. Use 'mio_pool_string' instead of
3959
        'mio_internal_string'.
3960
        (load_needed, read_module): Use 'gfc_get_string' instead of 'strcpy'.
3961
        (write_common, write_symbol): Use 'mio_pool_string' instead of
3962
        'mio_internal_string'.
3963
        (write_symbol0, write_symbol1): Likewise, also check for NULL pointer
3964
        instead of empty string.
3965
        (write_operator, write_generic): Pass correct type variable to
3966
        'mio_symbol_interface'.
3967
        (write_symtree): Use 'mio_pool_string' instead of
3968
        'mio_internal_string'.
3969
        * primary.c (match_keyword_arg): Adapt check to possible
3970
        case of NULL pointer.  Use 'gfc_get_string' instead of 'strcpy'.
3971
        * symbol.c (gfc_add_component, gfc_new_symtree, delete_symtree,
3972
        gfc_get_uop, gfc_new_symbol): Use 'gfc_get_string' instead of
3973
        'strcpy'.
3974
        (ambiguous_symbol): Check for NULL pointer instead of empty string.
3975
        (gfc_find_gsymbol, gfc_get_gsymbol): Add 'const' qualifier on string
3976
        arguments.
3977
        * trans-array.c (gfc_trans_auto_array_allocation): Check for NULL
3978
        pointer instead of empty string.
3979
        * trans-decl.c (gfc_sym_mangled_identifier,
3980
        gfc_sym_mangled_function_id, gfc_finish_var_decl, gfc_get_symbol_decl,
3981
        gfc_get_symbol_decl): Likewise.
3982
        * trans-io.c (gfc_new_nml_name_expr): Add 'const' qualifier to
3983
        argument.  Copy string instead of pointing to it.
3984
 
3985
2005-02-23  Kazu Hirata  
3986
 
3987
        * intrinsic.h, st.c: Update copyright.
3988
 
3989
2005-02-20  Steven G. Kargl  
3990
 
3991
        * symbol.c: Typos in comments.
3992
 
3993
2005-02-20  Steven G. Kargl  
3994
 
3995
        * expr.c (gfc_type_convert_binary): Typo in comment.
3996
 
3997
2005-02-19  Steven G. Kargl  
3998
 
3999
        * check.c (gfc_check_selected_int_kind): New function.
4000
        * intrinsic.h: Prototype it.
4001
        * intrinsic.c (add_function): Use it.
4002
        * simplify (gfc_simplify_ceiling,gfc_simplify_floor): Change
4003
          BT_REAL to BT_INTEGER and use gfc_default_integer_kind.
4004
 
4005
2005-02-19  Steven G. Kargl  
4006
 
4007
        * check.c (gfc_check_int): improve checking of optional kind
4008
        * simplify.c (gfc_simplify_int): Change BT_REAL to BT_INTEGER
4009
 
4010
2005-02-19  Steven G. Kargl  
4011
 
4012
        * check.c (gfc_check_achar): New function
4013
        * intrinsic.h: Prototype it.
4014
        * intrinsic.c (add_function): Use it.
4015
 
4016
2005-02-13  Tobias Schl"uter  
4017
 
4018
        * trans-stmt.c (generate_loop_for_temp_to_lhs,
4019
        generate_loop_for_rhs_to_temp): Remove if whose condition is
4020
        always true.
4021
 
4022
2005-02-12  Tobias Schl"uter  
4023
 
4024
        * symbol.c (gfc_use_ha_derived): Remove, fold functionality into ...
4025
        (gfc_use_derived): ... this function.
4026
 
4027
2005-02-09  Richard Henderson  
4028
 
4029
        * f95-lang.c (gfc_init_builtin_functions): Call
4030
        build_common_builtin_nodes; do not define any functions handled
4031
        by it.
4032
 
4033
2005-02-08  Tobias Schl"uter  
4034
 
4035
        * expr.c (gfc_copy_expr): Don't copy 'op1' and 'op2' for
4036
        EXPR_SUBSTRING.
4037
        (gfc_is_constant_expr): Check 'ref' to determine if substring
4038
        reference is constant.
4039
        (gfc_simplify_expr): Simplify 'ref' instead of 'op1' and 'op2'.
4040
        (check_init_expr, check_restricted): Check 'ref' instead of 'op1'
4041
        and 'op2'.
4042
        * module.c (mio_expr): Read / write 'ref' instead of 'op1' and 'op2'.
4043
 
4044
2005-02-07  Tobias Schl"uter  
4045
 
4046
        * gfortran.h (gfc_add_dimension, gfc_add_result, gfc_add_save,
4047
        gfc_add_dummy, gfc_add_generic, gfc_add_in_common, gfc_add_data,
4048
        gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
4049
        gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
4050
        gfc_add_procedure): Add argument.
4051
        * array.c (gfc_set_array_spec), decl.c (var_element, get_proc_name,
4052
        gfc_match_null, match_type_spec, match_attr_spec,
4053
        gfc_match_formal_arglist, match_result, gfc_match_function_decl):
4054
        Update callers to match.
4055
        (gfc_match_entry): Likewise, fix comment typo.
4056
        (gfc_match_subroutine, attr_decl1, gfc_add_dimension,
4057
        access_attr_decl, do_parm, gfc_match_save, gfc_match_modproc,
4058
        gfc_match_derived_decl): Update callers.
4059
        * interface.c (gfc_match_interface): Likewise.
4060
        * match.c (gfc_match_label, gfc_add_flavor,
4061
        gfc_match_call, gfc_match_common, gfc_match_block_data,
4062
        gfc_match_namelist, gfc_match_module, gfc_match_st_function):
4063
        Likewise.
4064
        * parse.c (parse_derived, parse_interface, parse_contained),
4065
        primary.c (gfc_match_rvalue, gfc_match_variable): Likewise.
4066
        * resolve.c (resolve_formal_arglist, resolve_entries): Update callers.
4067
        * symbol.c (check_conflict, check_used): Add new 'name' argument,
4068
        use when printing error message.
4069
        (gfc_add_dimension, gfc_add_result, gfc_add_save, gfc_add_dummy,
4070
        gfc_add_generic, gfc_add_in_common, gfc_add_data,
4071
        gfc_add_in_namelist, gfc_add_sequence, gfc_add_function,
4072
        gfc_add_subroutine, gfc_add_access, gfc_add_flavor, gfc_add_entry,
4073
        gfc_add_procedure): Add new 'name' argument.  Pass along to
4074
        check_conflict and check_used.
4075
        (gfc_add_allocatable, gfc_add_external, gfc_add_intrinsic,
4076
        gfc_add_optional, gfc_add_pointer, gfc_add_target, gfc_add_elemental,
4077
        gfc_add_pure, gfc_add_recursive, gfc_add_intent,
4078
        gfc_add_explicit_interface, gfc_copy_attr): Pass NULL for new
4079
        argument in calls to any of the modified functions.
4080
 
4081
2005-02-06  Joseph S. Myers  
4082
 
4083
        * gfortran.texi: Don't give last update date.
4084
 
4085
2006-01-30  Richard Henderson  
4086
 
4087
        * options.c (gfc_init_options): Zero flag_errno_math.
4088
 
4089
2005-01-29  Paul Brook  
4090
 
4091
        PR fortran/18565
4092
        * check.c (real_or_complex_check): New function.
4093
        (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc): New functions.
4094
        * intrinsic.c (add_functions): Use new check functions.
4095
        * intrinsic.h (gfc_check_fn_c, gfc_check_fn_r, gfc_check_fn_rc):
4096
        Add prototypes.
4097
 
4098
2005-01-29  Steven G. Kargl  
4099
 
4100
        PR fortran/19589
4101
        * expr.c (gfc_check_assign):  Check for conformance of logical operands
4102
 
4103
2004-01-27  Steven Bosscher  
4104
 
4105
        * trans-decl.c (gfc_build_label_decl): Set DECL_ARTIFICAL and
4106
        TREE_USED for all labels.
4107
        (gfc_trans_entry_master_switch): Use it instead of building a
4108
        label by hand.
4109
        * trans-io.c (add_case): Likewise.
4110
        * trans-stmt.c (gfc_trans_integer_select): Likewise.
4111
 
4112
2004-01-23  Paul Brook  
4113
        Steven G. Kargl  
4114
 
4115
        PR fortran/17941
4116
        * arith.c (gfc_convert_real): Remove sign handling.
4117
        * primary.c (match_digits): Allow whitespace after initial sign.
4118
        (match_real_const): Handle signs here.  Allow whitespace after
4119
        initial sign.  Remove dead code.
4120
        (match_const_complex_part): Remove.
4121
        (match_complex_part): Use match_{real,integer}_const.
4122
        (match_complex_constant): Cross-promote integer types.
4123
 
4124
2005-01-23  James A. Morrison  
4125
 
4126
        PR fortran/19294
4127
        * iresolve.c (gfc_resolve_transpose): Resolve to transpose_c4 or
4128
        transpose_c8 for complex types.
4129
 
4130
2005-01-23  Kazu Hirata  
4131
 
4132
        * data.c, dependency.c, f95-lang.c, io.c, trans-array.c,
4133
        trans-decl.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
4134
        trans-stmt.c, trans-types.c, trans.h: Fix comment typos.
4135
        Follow spelling conventions.
4136
 
4137
2005-01-22  Bud Davis  
4138
 
4139
        PR fortran/19313
4140
        * trans-io.c (gfc_trans_inquire): Added code to support
4141
        pad.
4142
 
4143
2005-01-22  Steven G. Kargl  
4144
 
4145
        * intrinsic.c (make_alias):  Add standard argument.
4146
        (add_functions): Update make_alias calls.
4147
 
4148
2005-01-22  Paul Brook  
4149
 
4150
        * trans-expr.c (gfc_conv_function_call): Remove bogus TODO.
4151
 
4152
2005-01-22  Paul Brook  
4153
 
4154
        * gfortran.h (gfc_check_access): Add prototype.
4155
        * match.c (gfc_match_namelist): Remove TODO.
4156
        * module.c (check_access): Rename ...
4157
        (gfc_check_access): ... to this.  Boolify.  Update callers.
4158
        * resolve.c (resolve_symbol): Check for private objects in public
4159
        namelists.
4160
 
4161
2005-01-22  Paul Brook  
4162
 
4163
        * primary.c (gfc_match_rvalue): Only apply implicit type if variable
4164
        does not have an explicit type.
4165
        (gfc_match_variable): Resolve implicit derived types in all cases.
4166
        Resolve contained function types from their own namespace, not the
4167
        parent.
4168
        * resolve.c (resolve_contained_fntype): Remove duplicate sym->result
4169
        checking.  Resolve from the contained namespace, not the parent.
4170
 
4171
2005-01-22  Tobias Schl"uter  
4172
 
4173
        PR fortran/19543
4174
        * trans-const.c (gfc_conv_constant_to_tree): Give logical
4175
        constants the correct type.
4176
 
4177
        PR fortran/19194
4178
        * trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
4179
        length parameters.
4180
        (gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
4181
        pointer fields.
4182
 
4183
2005-01-18  Kazu Hirata  
4184
 
4185
        * arith.c, array.c, check.c, decl.c, expr.c, f95-lang.c,
4186
        gfortran.h, interface.c, intrinsic.c, io.c, iresolve.c,
4187
        match.c, matchexp.c, misc.c, module.c, options.c, parse.c,
4188
        scanner.c, simplify.c, symbol.c, trans-array.c, trans-expr.c,
4189
        trans-io.c, trans-stmt.c, trans.c: Update copyright.
4190
 
4191
2005-01-17  Ira Rosen  
4192
 
4193
        * f95-lang.c (gfc_init_builtin_functions): Call targetm.init_builtins.
4194
 
4195
2005-01-16  Tobias Schlueter  
4196
 
4197
        PR fortran/19182
4198
        * error.c (error_char): Line-buffer errors / warnings.
4199
 
4200
2005-01-16  Tobias Schlueter  
4201
 
4202
        * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Fix signed /
4203
        unsigned issue.  Use build_int_cst instead of converting
4204
        integer_zero_node.  Remove unnecessary conversion.
4205
 
4206
        * trans-types.c (gfc_get_character_type_len): Use
4207
        gfc_charlen_type_node as basic type for the range field.
4208
 
4209
        * trans-intrinsic.c (build_fixbound_expr,
4210
        gfc_conv_intrinsic_bound, gfc_conv_intrinsic_anyall,
4211
        gfc_conv_intrinsic_count, gfc_conv_intrinsic_btest,
4212
        gfc_conv_intrinsic_singlebitop): Use 'build_int_cst' instead
4213
        of converting 'integer_zero_node' or 'integer_one_node'
4214
        respectively.
4215
        (gfc_conv_intrinsic_ishftc): Same, but store in local variable to
4216
        evade re-building.
4217
        (gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_rrspacing,
4218
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_iargc): Use
4219
        'build_int_cst' instead of converting 'integer_zero_node' or
4220
        'integer_one_node' respectively.
4221
 
4222
        * trans-intrinsic.c (gfc_conv_intrinsic_index,
4223
        gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify): Remove
4224
        'gfc'-prefix from local variable, remove dead code, use correct
4225
        type when inserting argument.
4226
 
4227
        * trans-intrinsic.c, trans-types.c: Update copyright years.
4228
 
4229
2005-01-16  Steven G. Kargl  
4230
 
4231
        PR 19168
4232
        * resolve.c (check_case_overlap): Typo in comment.
4233
        (validate_case_label_expr):  Fix up kinds of case values
4234
        (resolve_select): Properly handle kind mismatches.
4235
 
4236
2004-01-16  Paul Brook  
4237
 
4238
        PR fortran/17675
4239
        * trans-common.c (translate_common): Remove duplicate function call.
4240
        (finish_equivalences): Preserve alignment when biasing offsets.
4241
 
4242
2005-01-15  Tobias Schl"uter  
4243
 
4244
        * primary.c (check_digit): Call 'ISXDIGIT' instead of assuming
4245
        ASCII-like character encoding.
4246
 
4247
2005-01-14  Steven G. Kargl  
4248
 
4249
        * resolve.c (compare_case): Cleanup.
4250
 
4251
2005-01-14  Steven G. Kargl  
4252
 
4253
        * resolve.c (compare_case): Give arguments correct type.
4254
 
4255
2005-01-13  Kazu Hirata  
4256
 
4257
        * iresolve.c, trans-common.c, trans-types.c: Fix comment
4258
        typos.
4259
 
4260
2005-01-09  Paul Brook  
4261
 
4262
        PR fortran/17675
4263
        * trans-common.c (current_common, current_offset): Remove.
4264
        (create_common): Add head argument.
4265
        (align_segment): New function.
4266
        (apply_segment_offset): New function.
4267
        (translate_common): Merge code from new_segment.  Handle alignment.
4268
        (new_segment): Remove.
4269
        (finish_equivalences): Ensure proper alignment.
4270
 
4271
2005-01-08  Tobias Schl"uter  
4272
 
4273
        * trans-const.c: Don't include unused math.h.
4274
 
4275
        * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl,
4276
        gfc_conv_intrinsic_bound, gfc_conv_intrinsic_minmaxloc,
4277
        gfc_conv_intrinsic_ishft, gfc_conv_intrinsic_len): Remove
4278
        trailing whitespace.
4279
        (prepare_arg_info): Fix formatting, indenting and remove trailing
4280
        whitespace.
4281
        (gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_trim): Remove
4282
        trailing whitespace.
4283
 
4284
        * arith.c (arctangent2, gfc_arith_init_1, gfc_arith_done_1,
4285
        gfc_constant_result, gfc_range_check, gfc_arith_power,
4286
        eval_type_intrinsic0, eval_intrinsic_f2, gfc_real2real,
4287
        gfc_real2complex, gfc_complex2int, gfc_complex2real,
4288
        gfc_complex2complex): Fix whitespace issues.
4289
        * check.c (must_be, type_check, numeric_check, int_or_real_check,
4290
        logical_array_check, array_check, scalar_check, nonoptional_check,
4291
        variable_check, dim_check, check_a_kind, gfc_check_a_ikind,
4292
        gfc_check_a_xkind, gfc_check_abs, gfc_check_all_any,
4293
        gfc_check_allocated, gfc_check_a_p, gfc_check_besn,
4294
        gfc_check_btest, gfc_check_char, gfc_check_cmplx, gfc_check_count,
4295
        gfc_check_cshift, gfc_check_dcmplx, gfc_check_dble,
4296
        gfc_check_digits, gfc_check_dot_product, gfc_check_eoshift,
4297
        gfc_check_fnum, gfc_check_g77_math1, gfc_check_huge, gfc_check_i,
4298
        gfc_check_iand, gfc_check_ibclr, gfc_check_ibits, gfc_check_ibset,
4299
        gfc_check_idnint, gfc_check_ieor, gfc_check_index, gfc_check_int,
4300
        gfc_check_ior, gfc_check_ishft, gfc_check_ishftc, gfc_check_kind,
4301
        gfc_check_lbound, gfc_check_logical, min_max_args,
4302
        gfc_check_min_max_integer, gfc_check_min_max_real,
4303
        gfc_check_min_max_double, gfc_check_matmul,
4304
        gfc_check_minval_maxval, gfc_check_merge, gfc_check_nearest,
4305
        gfc_check_pack, gfc_check_precision, gfc_check_radix,
4306
        gfc_check_range, gfc_check_real, gfc_check_repeat,
4307
        gfc_check_scale, gfc_check_scan, gfc_check_selected_real_kind,
4308
        gfc_check_set_exponent): Fix formatting issues.
4309
        (gfc_check_size, gfc_check_sign): Alphabetize function order,
4310
        remove whitespace-only line.
4311
        (gfc_check_fstat, gfc_check_fstat_sub, gfc_check_stat,
4312
        gfc_check_stat_sub, gfc_check_transfer, gfc_check_transpose,
4313
        gfc_check_ubound, gfc_check_unpack, gfc_check_verify, gfc_check_x,
4314
        gfc_check_cpu_time, gfc_check_date_and_time, gfc_check_mvbits,
4315
        gfc_check_random_number, gfc_check_random_seed,
4316
        gfc_check_second_sub, gfc_check_system_clock,
4317
        gfc_check_getcwd_sub, gfc_check_exit, gfc_check_flush,
4318
        gfc_check_umask, gfc_check_umask_sub, gfc_check_unlink,
4319
        gfc_check_unlink_sub): Fix formatting issues.
4320
 
4321
2005-01-08  Tobias Schl"uter  
4322
 
4323
        * gfortran.h: Remove outdated comment.  Don't include stdio.h
4324
        explicitly.
4325
 
4326
2005-01-06  Tobias Schlueter  
4327
 
4328
        * gfortranspec.c (lang_specific_driver): Change year to 2005 in
4329
        output of 'gfortran --version'.
4330
 
4331
2005-01-03  Steven G. Kargl  
4332
 
4333
        * arith.c: Add system.h; remove string.h
4334
        * decl.c: Ditto
4335
        * matchexp.c: Ditto
4336
        * parse.c: Ditto
4337
        * resolve.c: Ditto
4338
        * st.c: Ditto
4339
        * check.c: Remove stdlib.h and stdarg.h
4340
        * error.c: Remove stdlib.h, stdarg.h, stdio.h, string.h
4341
        * expr.c: Add system.h; remove stdarg.h, stdio.h, and string.h
4342
        * f95-lang.c: Add system.h; remove stdio.h
4343
        * interface.c: Add system.h; remove stdlib.h and string.h
4344
        * intrinsic.c: Remove stdarg.h, stdio.h, and string.h
4345
        * io.c: Remove string.h
4346
        * simplify.c: Ditto
4347
        * match.c: Remove stdarg.h and string.h
4348
        * misc.c: Update copyright; add system.h; remove stdlib.h,
4349
        string.h, and sys/stat.h
4350
        * module.c: Add system.h; remove string.h, stdio.h, errno.h,
4351
        unistd.h, and time.h
4352
        * option.c: Remove string.h and stdlib.h
4353
        * primary.c: Ditto
4354
        * scanner.c: Update copyright; add system.h; remove stdlib.h,
4355
        stdio.h, string.h, and strings.h
4356
        * symbol.c: Add system.h; remove stdlib.h, stdio.h, and string.h
4357
        * trans-array.c: Remove stdio.h and gmp.h
4358
        * trans-const.c: Ditto
4359
        * trans-expr.c: Ditto
4360
        * trans-io.c: Ditto
4361
        * trans-stmt.c: Ditto
4362
        * trans.c: Ditto
4363
        * trans-intrinsic.c: Remove stdio.h and string.h
4364
 
4365
2004-12-29  Steven G. Kargl  
4366
 
4367
        * gfortran.h (gfc_case): fix typo in comment.
4368
 
4369
2004-12-27  Tobias Schlueter  
4370
 
4371
        * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Change to
4372
        logical shift.  Call fold.  Remove 0-bit shift shortcut.
4373
        (gfc_conv_intrinsic_ishftc): Convert first argument to at least
4374
        4 bytes bits.  Convert 2nd and 3rd argument to 4 bytes.  Convert
4375
        result if width(arg 1) < 4 bytes.  Call fold.
4376
 
4377
        PR fortran/19032
4378
        * trans-intrinsic.c (gfc_conv_intrinsic_mod): Update comment
4379
        in front of function to match the standard.  Correct handling
4380
        of MODULO.
4381
 
4382
2004-12-27  Andrew Pinski  
4383
 
4384
        * trans-expr.c (gfc_conv_cst_int_power): Only check for
4385
        flag_unsafe_math_optimizations if we have a float type.
4386
 
4387
2004-12-23  Steven G. Kargl  
4388
 
4389
        * gfortran.texi: Fix typo.
4390
 
4391
2004-12-16  Tobias Schlueter  
4392
 
4393
        * trans-intrinsic.c (build_fixbound_expr): Clarify comment, fix
4394
        comment typo.
4395
 
4396
2004-12-15  Tobias Schlueter  
4397
 
4398
        PR fortran/18993
4399
        * match.c (gfc_match_if): Don't explicitly skip optional whitespace.
4400
        (gfc_match_nullify): Make sure that ')' is in front of the end of
4401
        statement.
4402
 
4403
        * scanner.c (skip_fixed_comments): Fix typo in comment preceding
4404
        function.
4405
 
4406
2004-12-14  Richard Henderson  
4407
 
4408
        * gfortran.h (gfc_expr.function.name): Make const.
4409
        (gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
4410
        (gfc_get_string): Update prototype.
4411
        * iresolve.c: Include tree.h.
4412
        (string_node, HASH_SIZE, string_head, hash): Remove.
4413
        (gfc_get_string): Use vsnprintf, get_identifier.
4414
        (free_strings, gfc_iresolve_init_1, gfc_iresolve_done_1): Remove.
4415
        * misc.c (gfc_init_1): Don't call gfc_iresolve_init_1.
4416
        (gfc_done_1): Don't call gfc_iresolve_done_1.
4417
        * module.c (mio_allocated_string): Take and return const char *,
4418
        instead of modifying char**.
4419
        (mio_expr): Update to match.
4420
        * resolve.c (pure_function): Constify name argument.
4421
        (resolve_function): Constify name.
4422
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Likewise.
4423
 
4424
2004-12-12  Richard Henderson  
4425
 
4426
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
4427
        gfc_resolve_cshift, gfc_resolve_dot_product, gfc_resolve_eoshift,
4428
        gfc_resolve_matmul, gfc_resolve_maxloc, gfc_resolve_maxval,
4429
        gfc_resolve_minloc, gfc_resolve_minval, gfc_resolve_pack,
4430
        gfc_resolve_product, gfc_resolve_reshape, gfc_resolve_shape,
4431
        gfc_resolve_spread, gfc_resolve_sum, gfc_resolve_transpose,
4432
        gfc_resolve_unpack: Use PREFIX.
4433
 
4434
2004-12-12  Tobias Schlueter  
4435
 
4436
        PR fortran/18869
4437
        * match.c (gfc_match_common): Skip whitespace.
4438
 
4439
2004-12-12  Steven G. Kargl  
4440
 
4441
        PR fortran/16581
4442
        * check.c (gfc_check_iand, gfc_check_ibclr, gfc_check_ibits,
4443
        gfc_check_ibset, gfc_check_ieor, gfc_check_ior): Remove default
4444
        integer kind check; Issue error for -std=f95 when needed.
4445
        * intrinsic.c (add_functions): Change ieor from GFC_STD_GNU to
4446
        GFC_STD_F95.
4447
        * iresolve.c (gfc_resolve_iand, gfc_resolve_ieor, gfc_resolve_ior):
4448
        Promote arguments to same kind.
4449
 
4450
2004-12-12  Steven G. Kargl  
4451
        Paul Brook  
4452
 
4453
        PR fortran/16222
4454
        * resolve.c (gfc_resolve_iterator_expr): New function.
4455
        (gfc_resolve_iterator): Use it.  Add real_ok argument.  Convert
4456
        start, end and stride to correct type.
4457
        (resolve_code): Pass extra argument.
4458
        * array.c (resolve_array_list): Pass extra argument.
4459
        * gfortran.h (gfc_resolve): Add prototype.
4460
        * trans-stmt.c (gfc_trans_do): Remove redundant type conversions.
4461
        Handle real type iterators.
4462
 
4463
2004-12-11  Tobias Schlueter  
4464
 
4465
        PR fortran/17175
4466
        * iresolve.c (gfc_resolve_scale): Convert 'I' argument if not of
4467
        same kind as C's 'int'.
4468
        (gfc_resolve_set_exponent): Convert 'I' argument if not of kind 4.
4469
 
4470
2004-12-08  Richard Henderson  
4471
 
4472
        * intrinsic.c (gfc_convert_type_warn): Propagate the input shape
4473
        to the output expression.
4474
        * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift): Suppress
4475
        warning conversion.
4476
        (gfc_resolve_reshape): Force convert SHAPE and ORDER parameters
4477
        to index kind.
4478
 
4479
2004-12-08  Tobias Schlueter  
4480
 
4481
        PR fortran/18826
4482
        * resolve.c (resolve_code): Impose correct restrictions on
4483
        assigned variable.
4484
 
4485
        * decl.c (gfc_match_end): Use locus of END when eos is an error.
4486
 
4487
2004-12-02  Steven G. Kargl  
4488
        Paul Brook  
4489
 
4490
        * check.c (gfc_check_flush, gfc_check_fnum): New functions.
4491
        (gfc_check_fstat, gfc_check_fstat_sub): New functions.
4492
        (gfc_check_stat, gfc_check_stat_sub): New functions.
4493
        * gfortran.h (GFC_ISYM_FNUM,GFC_ISYM_FSTAT,GFC_ISYM_STAT): New symbols
4494
        * intrinsic.c (add_functions,add_subroutines): Add flush, fnum,
4495
        fstat, and stat to intrinsics symbol tables.
4496
        * intrinsic.h (gfc_check_flush, gfc_resolve_stat_sub): Add prototypes.
4497
        (gfc_resolve_fstat_sub, gfc_resolve_stat): Ditto.
4498
        * iresolve.c (gfc_resolve_fnum, gfc_resolve_fstat): New functions.
4499
        (gfc_resolve_stat, gfc_resolve_flush): New functions.
4500
        (gfc_resolve_stat_sub,gfc_resolve_fstat_sub): New functions
4501
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Add new intrinsics.
4502
 
4503
2004-12-02  Steven G. Kargl  
4504
 
4505
        * intrinsic.c: Fix and add comments, fix function declarations
4506
        (OPTIONAL,REQUIRED): New symbols
4507
        (add_functions,add_subroutines): Use symbols
4508
        (gmp.h): Remove unused include
4509
 
4510
2004-11-25  Joseph S. Myers  
4511
 
4512
        * f95-lang.c, gfortranspec.c, trans-decl.c: Avoid ` as left quote
4513
        in diagnostics.
4514
 
4515
2004-11-24  Steven Bosscher  
4516
 
4517
        * options.c (gfc_post_options): Don't clear flag_inline_functions.
4518
 
4519
2004-11-20  Steven G. Kargl  
4520
 
4521
        * check.c (gfc_check_getcwd_sub): Fix seg fault.
4522
 
4523
        * check.c (gfc_check_exit,gfc_check_umask,gfc_check_umask_sub,
4524
        gfc_check_unlink,gfc_check_unlink_sub): New functions
4525
        * gfortran.h (GFC_ISYM_UMASK,GFC_ISYM_UNLINK): New symbols
4526
        * intrinsic.c (add_functions,add_subroutines): Add umask, unlink,
4527
        exit to intrinsics symbol tables.
4528
        * intrinsic.h (gfc_check_umask,gfc_check_unlink,gfc_check_exit,
4529
        gfc_check_umask_sub,gfc_check_unlink_sub,gfc_resolve_umask,
4530
        gfc_resolve_unlink,gfc_resolve_exit,gfc_resolve_umask_sub,
4531
        gfc_resolve_unlink_sub): Add and sort prototypes.
4532
        * iresolve.c (gfc_resolve_umask,gfc_resolve_unlink,gfc_resolve_exit,
4533
        gfc_resolve_umask_sub,gfc_resolve_unlink_sub): New functions
4534
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbols
4535
 
4536
2004-11-16  Paul Brook  
4537
 
4538
        PR fortran/13010
4539
        * trans-array.c (gfc_trans_allocate_temp_array): Use gfc_get_dtype.
4540
        (gfc_array_init_size, gfc_conv_expr_descriptor): Ditto.
4541
        * trans-types.c (gfc_get_dtype): Accept array type rather than element
4542
        type.
4543
        (gfc_get_nodesc_array_type): Don't set GFC_TYPE_ARRAY_DTYPE.
4544
        (gfc_get_array_type_bounds): Ditto.
4545
        (gfc_get_derived_type): Recurse into derived type pointers.
4546
        * trans-types.h (gfc_get_dtype): Add prototype.
4547
        * trans.h (GFC_TYPE_ARRAY_DTYPE): Add comment.
4548
 
4549
2004-11-15  Paul Brook  
4550
 
4551
        * trans-types.c (gfc_get_dtype): Remove obsolete TODO.
4552
 
4553
2004-11-10  Paul Brook  
4554
 
4555
        PR fortran/18375
4556
        * trans-expr.c (gfc_trans_subarray_assign): Free shape before ss.
4557
        * trans-io.c (transfer_array_component): Ditto.
4558
 
4559
2004-11-10  Paul Brook  
4560
 
4561
        * invoke.texi: Fix typo.
4562
 
4563
2004-11-08  Kazu Hirata  
4564
 
4565
        * arith.c, array.c, decl.c, expr.c, f95-lang.c, gfortran.h,
4566
        gfortranspec.c, interface.c, intrinsic.c, iresolve.c, match.c,
4567
        module.c, parse.c, parse.h, primary.c, resolve.c, scanner.c,
4568
        trans-array.c, trans-array.h, trans-expr.c, trans-intrinsic.c,
4569
        trans-io.c, trans-stmt.c, trans.h: Fix comment formatting.
4570
 
4571
2004-11-06  Tobias Schlueter  
4572
 
4573
        PR fortran/18023
4574
        * io.c (resolve_tag): Tighten up exception for assigned FORMAT.
4575
 
4576
2004-11-06  Kazu Hirata  
4577
 
4578
        * gfortranspec.c: Replace GNU CC with GCC.
4579
 
4580
2004-11-05  Tobias Schlueter  
4581
 
4582
        * gfortranspec.c (lang_specific_driver): Change year to 2004.
4583
 
4584
2004-11-05  Tobias Schlueter  
4585
 
4586
        PR fortran/18111
4587
        *  trans-decl.c (create_function_arglist): Set DECL_ARTIFICIAL for
4588
        hidden parameters.
4589
 
4590
2004-11-05  Tobias Schlueter  
4591
 
4592
        PR fortran/15164
4593
        * trans-decl.c (gfc_finish_var_decl): Don't declare arguments to
4594
        module procedures as if they were module variables.
4595
 
4596
2004-11-03  Tobias Schlueter  
4597
 
4598
        PR fortran/17535
4599
        PR fortran/17583
4600
        PR fortran/17713
4601
        * module.c (write_symbol1): Set module_name for dummy arguments.
4602
 
4603
2004-11-02  Paul Brook  
4604
 
4605
        * intrinsic.c (check_intrinsic_standard): Include error locus.
4606
        Remove VLA.
4607
        (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Pass
4608
        locus to check_intrinsic_standard.
4609
 
4610
2004-10-31  Janne Blomqvist  
4611
 
4612
        PR fortran/17590
4613
        * gfortran.h: Change GFC_STD_* flags to more appropriate
4614
        ones. (struct gfc_intrinsic_isym): Add field for standard. (struct
4615
        gfc_option_t): Add field for warning about use of nonstandard
4616
        intrinsics.
4617
        * intrinsic.c (add_sym): Add parameter for standard version, check
4618
        this against current standard.
4619
        (add_sym_0): Pass standard parameter to add_sym.
4620
        (add_sym_1, add_sym_0s, add_sym_1s, add_sym_1m, add_sym_2): Ditto.
4621
        (add_sym_2s, add_sym_3, add_sym_3ml, add_sym_3red, add_sym_3s): Ditto.
4622
        (add_sym_4, add_sym_4s, add_sym_5, add_sym_5s): Ditto.
4623
        (make_generic): Add parameter for standard, check this
4624
        against currently selected standard.
4625
        (add_functions, add_subroutines): Add parameter to tell which
4626
        standard an intrinsic belongs to.
4627
        (check_intrinsic_standard): New function.
4628
        (gfc_intrinsic_func_interface): Add call to check_intrinsic_standard.
4629
        (gfc_intrinsic_sub_interface): Ditto.
4630
        * lang.opt: Add Wnonstd-intrinsics option.
4631
        * options.c (gfc_init_options): Change to use new GFC_STD_* flags,
4632
        init new warning.
4633
        (set_Wall): Add warning about nonstd intrinsics.
4634
        (gfc_handle_option): Change to use new GFC_STD_* flags,
4635
        handle new warning.
4636
        * invoke.texi: Update manual to include -Wnonstd-intrinsics.
4637
 
4638
2004-10-30  Andrew Pinski  
4639
 
4640
        * f95-lang.c (lang_tree_node): Add chain_next to be the TREE_CHAIN.
4641
 
4642
2004-10-30  Tobias Schlueter  
4643
 
4644
        * simplify.c (twos_complement): Calculate mask in GMP arithmetic.
4645
 
4646
2004-10-30  Tobias Schlueter  
4647
 
4648
        * trans.c (gfc_trans_code): Set global locus after recursing. Fix
4649
        comment typo.
4650
 
4651
2004-10-30  Canqun Yang  
4652
 
4653
        * check.c (gfc_check_rand): Allow missing optional argument.
4654
        (gfc_check_irand): Ditto.
4655
        * intrinsic.c (add_functions): Set arg optional flag for {i,}rand.
4656
 
4657
2004-10-28  Scott Robert Ladd  
4658
 
4659
        PR fortran/13490, PR fortran/17912
4660
        * gcc/fortran/gfortran.h: Added pedantic_min_int to gfc_integer_info
4661
        * gcc/fortran/gfortran.h: Added ARITH_ASYMMETRIC to arith
4662
        * gcc/fortran/arith.c: Added support for an "asymmetric integer"
4663
        warning when compiling with pedantic.
4664
        * gcc/fortran/arith.c: Set minimum integer values to reflect
4665
        realities of two's complement signed integers. Added
4666
        pedantic minimum.
4667
 
4668
2004-10-17  Andrew Pinski  
4669
 
4670
        * Make-lang.in (F95_ADDITIONAL_OBJS): Kill.
4671
        (f951): Do not depend on F95_ADDITIONAL_OBJS and don't
4672
        link it in.
4673
 
4674
2004-10-14  Tobias Schlueter  
4675
 
4676
        * trans-decl.c (generate_local_decl): Simplify logic, fix comment
4677
        typo.
4678
        (gfc_generate_function_code): Fix formatting issue.
4679
 
4680
2004-10-10  Tobias Schlueter  
4681
 
4682
        * module.c: Fix formatting issues.
4683
 
4684
2004-10-09  Tobias Schlueter  
4685
 
4686
        * module.c (mio_interface_rest): Set where member of interface
4687
        while loading.
4688
 
4689
2004-10-08  Andrew Pinski  
4690
 
4691
        PR fortran/17901
4692
        * options.c (gfc_handle_option): Add break after handing the
4693
        J/M option.
4694
 
4695
2004-10-08  Tobias Schlueter  
4696
 
4697
        * arith.c: Fix formatting issues.
4698
 
4699
2004-10-07  Tobias Schlueter  
4700
 
4701
        PR fortran/17676
4702
        * resolve.c (resolve_operator): Use correct operator name in message.
4703
 
4704
2004-10-07  Tobias Schlueter  
4705
 
4706
        * primary.c (match_boz_constant): Allow kind parameter suffixes.
4707
        Move standard warning further to the front.
4708
 
4709
2004-10-07  Kazu Hirata  
4710
 
4711
        * trans-stmt.c: Fix a comment typo.
4712
 
4713
2004-10-07  Paul Brook  
4714
 
4715
        PR fortran/17678
4716
        * trans-array.c (gfc_trans_deferred_array): Leave use associated
4717
        variables alone.
4718
 
4719
2004-10-06  Tobias Schlueter  
4720
 
4721
        PR fortran/17568
4722
        * simplify.c (twos_complement): New function.
4723
        (gfc_simplify_ishft, gfc_simplify_ishftc): Revise.
4724
 
4725
        * simplify.c (gfc_simplify_abs): Use mpfr_hypot for CABS.
4726
 
4727
2004-10-06  Paul Brook  
4728
 
4729
        * trans-stmt.c (gfc_trans_simple_do): New function.
4730
        (gfc_trans_do): Use it.  Evaluate iteration bounds before entering
4731
        loop.  Update comments.
4732
 
4733
2004-10-04  Tobias Schlueter  
4734
 
4735
        PR fortran/17283
4736
        * iresolve.c (gfc_resolve_pack): Choose function depending if mask
4737
        is scalar.
4738
 
4739
        PR fortran/17631
4740
        * intrinsic.c (add_sym_5): Remove.
4741
        (add_subroutines): Add resolution function for MVBITS.
4742
        * intrinsic.h (gfc_resolve_mvbits): Declare resolution function for
4743
        MVBITS
4744
        * iresolve.c (gfc_resolve_mvbits): New function.
4745
        (gfc_resolve_random_number): Remove empty line at end of function.
4746
 
4747
        * trans-const.c (gfc_build_cstring_const): New function.
4748
        (gfc_init_cst): Use new function.
4749
        * trans-const.h (gfc_build_cstring_const): Add prototype.
4750
        * trans-io.c (set_string, set_error_locus): Use new function.
4751
        * trans-stmt.c (gfc_trans_goto): Use new function.
4752
 
4753
        PR fortran/17708
4754
        * parse.c (accept_statement): Don't treat END DO like END IF and
4755
        END SELECT.
4756
        (parse_do_block): Generate possible END DO label inside END DO
4757
        block.
4758
 
4759
        PR fortran/17776
4760
        * check.c (gfc_check_system_sub): New function.
4761
        * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SYSTEM.
4762
        * intrinsic.c (add_functions): Add 'system'.
4763
        (add_subroutines): Add 'system'.
4764
        * intrinsic.h (gfc_check_etime_sub, gfc_check_getcwd_sub):
4765
        Move prototypes to other suborutines.
4766
        (gfc_check_system_sub, gfc_resolve_system, gfc_resolve_system_sub):
4767
        Add prototype.
4768
        (gfc_resolve_system_clock): Fix formatting of prototype.
4769
        * iresolve.c (gfc_resolve_system, gfc_resolve_system_sub): New
4770
        functions.
4771
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Deal with
4772
        GFC_ISYM_SYSTEM.
4773
 
4774
2004-10-04  Erik Schnetter  
4775
 
4776
        * scanner.c (preprocessor_line): Accept preprocessor lines without
4777
        file names.  Check file names for closing quotes.  Handle escaped
4778
        quotes in file names.
4779
 
4780
2004-10-04  Tobias Schlueter  
4781
        Paul Brook  
4782
 
4783
        * trans-array.c (gfc_conv_expr_descriptor): Check for substriungs.
4784
        Use gfc_get_expr_charlen.
4785
        * trans-expr.c (gfc_get_expr_charlen): New function.
4786
        * trans.h (gfc_get_expr_charlen): Add prototype.
4787
 
4788
2004-10-04  Kazu Hirata  
4789
 
4790
        * trans-intrinsic.c: Fix a comment typo.
4791
 
4792
2004-10-03  Tobias Schlueter  
4793
 
4794
        * simplify.c (range_check): Remove blank line at beginning of function.
4795
        (gfc_simplify_dint): Same at end of function.
4796
        (gfc_simplify_exponent, gfc_simplify_fraction): Simplify calculations.
4797
        (gfc_simplify_bound): Fix indentation.
4798
        (gfc_simplify_log10): Simplify calculation.
4799
        (gfc_simplify_min, gfc_simplify_max): Remove blank line at beginning
4800
        of function.
4801
        (gfc_simplify_nearest): Same at end of function.
4802
        (gfc_simplify_nint, gfc_simplify_idnint): Same at beginning of
4803
        function.
4804
        (gfc_simplify_rrspacing, gfc_simplify_set_exponent,
4805
        gfc_simplify_spacing): Simplify calulations.
4806
 
4807
2004-10-03  Feng Wang  
4808
 
4809
        * trans-intrinsic.c: Fix comments on spacing and rrspacing
4810
        (gfc_conv_intrinsic_rrspacing): Add fold on constant trees.
4811
 
4812
2004-10-01  Jan Hubicka  
4813
 
4814
        * f95-lang.c (gfc_expand_function): Update call of
4815
        tree_rest_of_compilation.
4816
        * trans-decl.c (gfc_generate_constructors): Likewise.
4817
 
4818
2004-09-26  Tobias Schlueter  
4819
 
4820
        * trans-intrinsic.c: Comment fixes.
4821
 
4822
2004-09-25  Tobias Schlueter  
4823
 
4824
        * decl.c (add_init_expr_to_sym, variable_decl): Comment fixes.
4825
 
4826
2004-09-24  Tobias Schlueter  
4827
 
4828
        * trans-types.c (gfc_return_by_reference): Remove superfluous
4829
        assertion.
4830
 
4831
        * intrinsic.h (gfc_resolve_getcwd): Update prototype.
4832
        * iresolve.c (gfc_resolve_getcwd): Add second argument to function.
4833
 
4834
        PR fortran/17615
4835
        * trans-expr.c (gfc_trans_arrayfunc_assign): Look at resolved
4836
        function to determine return type.
4837
 
4838
2004-09-20  Jan Hubicka  
4839
 
4840
        * trans-decl.c (build_entry_thunks): Finalize the function; do not lower
4841
        tree.
4842
        (gfc_generate_function_code): Likewise.
4843
 
4844
2004-09-20  Tobias Schlueter  
4845
 
4846
        PR fortran/15957
4847
        * simplify.c (gfc_simplify_reshape): Set shape of return value
4848
        correctly.
4849
 
4850
2004-09-17  Jeffrey D. Oldham  
4851
            Zack Weinberg  
4852
 
4853
        * f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
4854
        enumeration constants.
4855
 
4856
2004-09-17  Paul Brook  
4857
 
4858
        * gfortran.h (struct gfc_linebuf): Don't use C99 empty arrays.
4859
        (gfc_linebuf_header_size): Define.
4860
        * scanner.c (load_file): Use it.
4861
 
4862
2004-09-16  Kazu Hirata  
4863
 
4864
        * array.c, data.c, decl.c, dependency.c, error.c, f95-lang.c,
4865
        interface.c, intrinsic.c, io.c, misc.c, module.c, parse.h,
4866
        resolve.c, scanner.c, trans-array.c, trans-array.h,
4867
        trans-common.c, trans-const.h, trans-decl.c, trans-expr.c,
4868
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.c,
4869
        trans.h: Fix comment typos.  Follow spelling conventions.
4870
 
4871
2004-09-16  Victor Leikehman  
4872
 
4873
        PR/15364
4874
        * trans-io.c (transfer_array_component): New function.
4875
        (transfer_expr): For array fields, call transfer_array_component.
4876
 
4877
2004-09-16  Kazu Hirata  
4878
 
4879
        * gfortran.texi: Fix a typo.
4880
 
4881
2004-09-15  Aaron W. LaFramboise  
4882
 
4883
        * parse.c (eof_buf): Rename eof to eof_buf.
4884
        (unexpected_eof): Same.
4885
        (gfc_parse_file): Same.
4886
 
4887
2004-09-15  Steven G. Kargl  
4888
 
4889
        * check.c (gfc_check_getcwd_sub): New function.
4890
        * gfortran.h (GFC_ISYM_GETCWD): New symbol.
4891
        * intrinsic.c (add_functions): Add function definition;
4892
        Use symbol.
4893
        * intrinsic.c (add_subroutines): Add subroutine definitions.
4894
        * intrinsic.h: Add prototypes.
4895
        * iresolve.c (gfc_resolve_getcwd, gfc_resolve_getcwd_sub):
4896
        New functions.
4897
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Use symbol.
4898
 
4899
2004-09-15  Tobias Schlueter  
4900
 
4901
        PR fortran/16485
4902
        * module.c (write_symbol): Don't fill in module name here.
4903
        (write_symbol0): Fill in here instead.
4904
 
4905
2004-09-14  Kazu Hirata  
4906
 
4907
        * data.c, decl.c, f95-lang.c, gfortran.h, match.c,
4908
        trans-array.c, trans-common.c, trans-expr.c,
4909
        trans-intrinsic.c, trans-stmt.c, trans-types.c, trans.h: Fix
4910
        comment typos.  Follow spelling conventions.
4911
 
4912
2004-09-09  Paul Brook  
4913
 
4914
        * scanner.c (get_file): Add ATTRIBUTE_UNUSED.
4915
 
4916
2004-09-08  Paul Brook  
4917
 
4918
        * array.c: Don't include assert.h.
4919
        * data.c: Don't include assert.h.  Replace assert and abort with
4920
        gcc_assert and gcc_unreachable.
4921
        * dependency.c: Ditto.
4922
        * f95-lang.c: Ditto.
4923
        * iresolve.c: Ditto.
4924
        * resolve.c: Ditto.
4925
        * simplify.c: Ditto.
4926
        * symbol.c: Ditto.
4927
        * trans-array.c: Ditto.
4928
        * trans-common.c: Ditto.
4929
        * trans-const.c: Ditto.
4930
        * trans-decl.c: Ditto.
4931
        * trans-expr.c: Ditto.
4932
        * trans-intrinsic.c: Ditto.
4933
        * trans-io.c: Ditto.
4934
        * trans-stmt.c: Ditto.
4935
        * trans-types.c: Ditto.
4936
        * trans.c: Ditto.
4937
 
4938
2004-09-07  Per Bothner  
4939
        Paul Brook  
4940
 
4941
        * error.c (show_locus): Handle mapped locations.
4942
        * f95-lang.c (gfc_be_parse_file): Initialize mapped locations.
4943
        * gfortran.h: Include input.h.
4944
        (struct gfc_linebuf): Use source_location.
4945
        * scanner.c (get_file): Initialize linemap.
4946
        (preprocessor_line): Pass extra argument to get_file.
4947
        (load_file): Ditto.  Setup linemap.
4948
        (gfc_new_file): Handle mapped locations.
4949
        * trans-common.c (build_field, build_equiv_decl, build_common_decl):
4950
        Set decl source locations.
4951
        (gfc_trans_common): Set blank common block location.
4952
        * trans-decl.c (gfc_set_decl_location): New function.
4953
        (gfc_get_label_decl, gfc_get_symbol_decl): Use it.
4954
        (trans_function_start): Move call to gfc_set_backend_locus..
4955
        (build_function_decl): ... to here.
4956
        (build_entry_thunks): Set and restore the backend locus.
4957
        (gfc_generate_constructors): Remove excess arguments to
4958
        init_function_start.
4959
        (gfc_generate_block_data): Add comments.  Set the decl locus.
4960
        * trans-io.c (set_error_locus): Handle mapped locations.
4961
        * trans.c (gfc_get_backend_locus, gfc_get_backend_locus): Ditto.
4962
        (gfc_trans_code): Use SET_EXPR_LOCATION.
4963
        (gfc_generate_code): Override the location of the new symbol.
4964
        * trans.h (gfc_set_decl_location): Add prototype.
4965
 
4966
2004-08-31  Paul Brook  
4967
 
4968
        * trans-types.c (gfc_type_for_mode): Return NULL for unknown modes.
4969
 
4970
2004-09-01  Tobias Schlueter  
4971
 
4972
        PR fortran/15327
4973
        * trans-intrinsic.c (gfc_conv_intrinsic_merge): Do the right thing for
4974
        strings.
4975
 
4976
2004-09-01  Tobias Schlueter  
4977
 
4978
        PR fortran/16400
4979
        PR fortran/16404
4980
        (port from g95)
4981
        * resolve.c (resolve_transfer): New function.
4982
        (resolve_code): Call resolve_transfer in case of EXEC_TRANSFER.
4983
 
4984
2004-08-31  Tobias Schlueter  
4985
 
4986
        PR fortran/16579
4987
        * trans-types.c (gfc_init_types): Make gfc_character1_type_node an
4988
        unsigned char.
4989
 
4990
2004-08-31  Tobias Schlueter  
4991
 
4992
        * CONTRIB, NEWS, README, TODO: Remove obsolete files.
4993
 
4994
2004-08-31  Tobias Schlueter  
4995
 
4996
        PR fortran/17244
4997
        * trans-types.c (gfc_return_by_reference): Remove TODO error,
4998
        add comment pointing out possible issue WRT compatibility with g77.
4999
 
5000
2004-08-31  Tobias Schlueter  
5001
 
5002
        * trans-decl.c, trans-expr.c, trans-io.c, trans-types.c: Replace
5003
        all occurences of 'gfc_strlen_type_node' by
5004
        'gfc_charlen_type_node'.
5005
        * trans-types.h: Same. Also update comment accordingly.
5006
 
5007
2004-08-31  Tobias Schlueter  
5008
 
5009
        * primary.c: Update copyright boilerplate to say GCC.
5010
        * f95-lang.c: Change initial comment to say gfortran.
5011
 
5012
2004-08-31  Paul Brook  
5013
 
5014
        * trans-types.h: Add comments.
5015
        (intmax_type_node, string_type_node, const_string_type_node): Remove.
5016
 
5017
2004-08-30  Richard Henderson  
5018
 
5019
        * Make-lang.in (fortran/f95-lang.o): Update dependencies.
5020
        (fortran/trans-decl.o, fortran/trans-types.o): Likewise.
5021
        * gfortran.h (gfc_integer_info): Add c_char, c_short, c_int,
5022
        c_long, c_long_long.
5023
        (gfc_logical_info): Add c_bool.
5024
        (gfc_real_info): Add mode_precision, c_float, c_double, c_long_double.
5025
        * trans-array.c (gfc_array_allocate): Use TYPE_PRECISION
5026
        rather than gfc_int[48]_type_node for allocate choice.
5027
        * trans-decl.c (gfc_build_intrinsic_function_decls): Cache
5028
        local copies of some kind type nodes.
5029
        (gfc_build_builtin_function_decls): Likewise.
5030
        * trans-expr.c (gfc_conv_power_op): Likewise.
5031
        * trans-intrinsic.c (gfc_conv_intrinsic_index,
5032
        gfc_conv_intrinsic_scan, gfc_conv_intrinsic_verify,
5033
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat): Likewise.
5034
        * trans-stmt.c (gfc_trans_pause, gfc_trans_stop,
5035
        gfc_trans_character_select, gfc_trans_allocate): Likewise.
5036
        * trans-io.c (gfc_pint4_type_node): Move into ...
5037
        (gfc_build_io_library_fndecls): ... here.  Cache local copies of
5038
        some kind type nodes.
5039
        * trans-types.c (gfc_type_nodes): Remove.
5040
        (gfc_character1_type_node, gfc_strlen_type_node): New.
5041
        (gfc_integer_types, gfc_logical_types): New.
5042
        (gfc_real_types, gfc_complex_types): New.
5043
        (gfc_init_kinds): Fill in real mode_precision.
5044
        (gfc_build_int_type, gfc_build_real_type): New.
5045
        (gfc_build_complex_type, gfc_build_logical_type): New.
5046
        (c_size_t_size): New.
5047
        (gfc_init_types): Loop over kinds.
5048
        (gfc_get_int_type, gfc_get_real_type): Use gfc_validate_kind.
5049
        (gfc_get_complex_type, gfc_get_logical_type): Likewise.
5050
        (gfc_get_character_type_len): Likewise.
5051
        (gfc_type_for_size): Loop over kinds; use a reduced set of
5052
        unsigned type nodes.
5053
        (gfc_type_for_mode): Loop over kinds.
5054
        (gfc_signed_or_unsigned_type): Use gfc_type_for_size.
5055
        (gfc_unsigned_type, gfc_signed_type): Use gfc_signed_or_unsigned_type.
5056
        * trans-types.h (F95_INT1_TYPE, F95_INT2_TYPE, F95_INT4_TYPE,
5057
        F95_INT8_TYPE, F95_INT16_TYPE, F95_REAL4_TYPE, F95_REAL8_TYPE,
5058
        F95_REAl16_TYPE, F95_COMPLEX4_TYPE, F95_COMPLEX8_TYPE,
5059
        F95_COMPLEX16_TYPE, F95_LOGICAL1_TYPE, F95_LOGICAL2_TYPE,
5060
        F95_LOGICAL4_TYPE, F95_LOGICAL8_TYPE, F95_LOGICAL16_TYPE,
5061
        F95_CHARACTER1_TYPE, NUM_F95_TYPES, gfc_type_nodes,
5062
        gfc_int1_type_node, gfc_int2_type_node, gfc_int4_type_node,
5063
        gfc_int8_type_node, gfc_int16_type_node, gfc_real4_type_node,
5064
        gfc_real8_type_node, gfc_real16_type_node, gfc_complex4_type_node,
5065
        gfc_complex8_type_node, gfc_complex16_type_node,
5066
        gfc_logical1_type_node, gfc_logical2_type_node,
5067
        gfc_logical4_type_node, gfc_logical8_type_node,
5068
        gfc_logical16_type_node, gfc_strlen_kind): Remove.
5069
        (gfc_character1_type_node): Turn in to a variable.
5070
        (gfc_strlen_type_node): Likewise.
5071
 
5072
2004-08-30  Tobias Schlueter  
5073
 
5074
        * gfortran.h (gfc_namespace): Add new field is_block_data.
5075
        * parse.c (accept_statement): Remove special handling for BLOCK DATA.
5076
        (parse_block_data): Record BLOCK DATA name, set is_block_data field.
5077
        * trans.c (gfc_generate_code): Handle BLOCK DATA units.
5078
        * trans.h (gfc_generate_block_data): Add prototype.
5079
        * trans-decl.c (gfc_generate_block_data): New function.
5080
 
5081
2004-08-29  Richard Henderson  
5082
 
5083
        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_export.
5084
        * trans-types.c (gfc_init_kinds): Reject integer kinds larger
5085
        than two HOST_WIDE_INT.
5086
 
5087
2004-08-29  Tobias Schlueter  
5088
 
5089
        PR fortran/13910
5090
        * decl.c (free_variable, free_value, gfc_free_data, var_list,
5091
        var_element, top_var_list, match_data_constant, top_val_list,
5092
        gfc_match_data): Move here from match.c.
5093
        (match_old_style_init): New function.
5094
        (variable_decl): Match old-style initialization.
5095
        * expr.c (gfc_get_variable_expr): New function.
5096
        * gfortran.h (gfc_get_variable_expr): Add prototype.
5097
        * gfortran.texi: Start documentation for supported extensions.
5098
        * match.c: Remove the functions moved to decl.c.
5099
        * match.h (gfc_match_data): Move prototype to under decl.c.
5100
        * symbol.c (gfc_find_sym_tree, gfc_find_symbol): Add/correct
5101
        comments.
5102
 
5103
2004-08-29  Steven G. Kargl  
5104
        Paul Brook  
5105
 
5106
        * check.c (gfc_check_besn, gfc_check_g77_math1): New functions.
5107
        * f95-lang.c (DO_DEFINE_MATH_BUILTIN): Define.
5108
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
5109
        (build_builtin_fntypes): New function.
5110
        (gfc_init_builtin_functions): Use it.
5111
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_{J,Y}{0,1,N}
5112
        and GFC_ISYM_ERF{,C}.
5113
        (gfc_c_int_kind): Declare.
5114
        * intrinsic.c (add_functions): Add [d]bes* and [d]erf*.
5115
        * intrinsic.h (gfc_check_besn, gfc_check_g77_math1, gfc_resolve_besn,
5116
        gfc_resolve_g77_math1): Add prototypes.
5117
        * resolve.c (gfc_resolve_besn, gfc_resolve_g77_math1): New functions.
5118
        * mathbuiltins.def: Add comment.  Change third argument.  Use
5119
        DEFINE_MATH_BUILTIN_C.  Add bessel and error functions.
5120
        * trans-intrinsic.c (BUILT_IN_FUNCTION): Define.
5121
        (DEFINE_MATH_BUILTIN, DEFINE_MATH_BUILTIN_C): Use it.
5122
        * trans-types.c (gfc_c_int_kind): Declare.
5123
        (gfc_init_kinds): Set it.
5124
 
5125
2004-08-29  Steven G. Kargl  
5126
        Paul Brook  
5127
 
5128
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_GET?ID.
5129
        (gfc_check_f, gfc_simplify_f): Add f0.
5130
        * intrinsic.c (do_check): Call f0.  Flatten.
5131
        (add_sym_0): Fix prototype.  Set f0.
5132
        (add_functions): Add getgid, getgid and getuid.
5133
        (resolve_intrinsic): Remove obsolete comment.
5134
        (do_simplify): Call f0.
5135
        * intrinsic.h (gfc_resolve_getgid, gfc_resolve_getpid,
5136
        gfc_resolve_getuid): Add prototypes.
5137
        * iresolve.c (gfc_resolve_getgid, gfc_resolve_getpid,
5138
        gfc_resolve_getuid): New functions.
5139
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Handle
5140
        GFC_ISYM_GET?ID.
5141
 
5142
2004-08-28  Tobias Schlueter  
5143
 
5144
        * error.c (gfc_error_init_1): Remove blank line in front of
5145
        function body. Add missing blank.
5146
        (gfc_buffer_error, error_char, error_string): Remove blank line in
5147
        front of function body.
5148
        (show_locus): Add comma in comment.
5149
        (gfc_clear_warning, gfc_warning_check, gfc_clear_error,
5150
        gfc_push_error, gfc_pop_error): Remove blank line in front of
5151
        function body.
5152
        (gfc_get_errors): Typo fix in comment in front of function. Remove
5153
        blank line in front of function body.
5154
 
5155
2004-08-27  Tobias Schlueter  
5156
 
5157
        * gfortran.h (gfc_default_*_kind): Remove prototypes, add extern
5158
        variable declaration of same name.
5159
        * arith.c, check.c, decl.c, dump_parse_tree.c, expr.c,
5160
        intrinsic.c, io.c, iresolve.c, match.c, options.c, primary.c,
5161
        resolve.c, simplify.c, symbol.c, trans-const.c, trans-io.c:
5162
        Replace all calls to gfc_default_*_kind with variable accesses.
5163
        * trans-types.c: Same as above.
5164
        (gfc_default_*_kind_1): Rename to gfc_default_*_kind, remove
5165
        static qualifier. Replace all occurences.
5166
        (gfc_default_*_kind): Remove functions.
5167
 
5168
2004-08-26  Richard Henderson  
5169
 
5170
        * arith.c: Include system.h, not real system headers.
5171
        (MPZ_NULL, MPF_NULL, DEF_GFC_INTEGER_KIND, DEF_GFC_LOGICAL_KIND,
5172
        DEF_GFC_REAL_KIND, GFC_SP_KIND, GFC_SP_PREC, GFC_SP_EMIN, GFC_SP_EMAX,
5173
        GFC_DP_KIND, GFC_DP_PREC, GFC_DP_EMIN, GFC_DP_EMAX, GFC_QP_KIND,
5174
        GFC_QP_PREC, GFC_QP_EMIN, GFC_QP_EMAX): Remove.
5175
        (gfc_integer_kinds, gfc_logical_kinds, gfc_real_kinds,
5176
        gfc_index_integer_kind, gfc_default_integer_kind,
5177
        gfc_default_real_kind,gfc_default_double_kind,
5178
        gfc_default_character_kind, gfc_default_logical_kind,
5179
        gfc_default_complex_kind, validate_integer, validate_real,
5180
        validate_logical, validate_character,
5181
        gfc_validate_kind): Move to trans-types.c.
5182
        (gfc_set_model_kind): Use gfc_validate_kind.
5183
        (gfc_set_model): Just copy the current precision to default.
5184
        (gfc_arith_init_1): Use mpfr precision 128 for integer setup.
5185
        * f95-lang.c (gfc_init_decl_processing): Invoke gfc_init_kinds.
5186
        * gfortran.h: Update file commentary.
5187
        * trans-types.c (MAX_INT_KINDS, MAX_REAL_KINDS): New.
5188
        (gfc_default_integer_kind_1, gfc_default_real_kind_1,
5189
        gfc_default_double_kind_1, gfc_default_character_kind_1,
5190
        gfc_default_logical_kind_1, gfc_default_complex_kind_1): New.
5191
        (gfc_init_kinds): New.
5192
        (gfc_init_types): Don't set gfc_index_integer_kind here.
5193
        * trans-types.h (gfc_init_kinds): Declare.
5194
        * doc/invoke.texi: Clarify DOUBLE PRECISION behaviour wrt -r8.
5195
 
5196
2004-08-26  Tobias Schlueter  
5197
 
5198
        * check.c (gfc_check_atan2): New function.
5199
        * intrinsic.c (add_functions): Use gfc_check_atan2 for ATAN2
5200
        * intrinsic.h (gfc_check_atan2): Add prototype.
5201
 
5202
2004-08-25  Richard Henderson  
5203
 
5204
        * arith.c (gfc_validate_kind): Add may_fail argument; abort if
5205
        false and we don't validate the kind.
5206
        (gfc_check_integer_range, gfc_check_real_range): Update to match.
5207
        * check.c (kind_check): Likewise.
5208
        * decl.c (gfc_match_old_kind_spec, gfc_match_kind_spec): Likewise.
5209
        (match_char_spec, match_logical_spec): Likewise.
5210
        * gfortran.h (gfc_validate_kind): Likewise.
5211
        * options.c (gfc_handle_option): Likewise.
5212
        * primary.c (match_integer_constant, match_real_constant,
5213
        match_string_constant, match_logical_constant,
5214
        match_const_complex_part): Likewise.
5215
        * simplify.c (get_kind, gfc_simplify_bit_size, gfc_simplify_digits,
5216
        gfc_simplify_epsilon, gfc_simplify_huge, gfc_simplify_ibclr,
5217
        gfc_simplify_ibset, gfc_simplify_ishft, gfc_simplify_ishftc,
5218
        gfc_simplify_maxexponent, gfc_simplify_minexponent,
5219
        gfc_simplify_nearest, gfc_simplify_not, gfc_simplify_precision,
5220
        gfc_simplify_radix, gfc_simplify_range, gfc_simplify_rrspacing,
5221
        gfc_simplify_scale, gfc_simplify_spacing, gfc_simplify_tan,
5222
        gfc_simplify_tiny): Likewise.
5223
        * trans-intrinsic.c (gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
5224
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
5225
        prepare_arg_info): Likewise.
5226
 
5227
2004-08-25  Tobias Schlueter  
5228
 
5229
        * expr.c (gfc_check_assign): Add comment. Add new warning.
5230
        * trans-expr.c (gfc_conv_function_call): Correctly dereference
5231
        result of pointer valued function when not in pointer assignment.
5232
 
5233
2004-08-25  Paul Brook  
5234
 
5235
        * config-lang.in: Remove dead commented line.
5236
        * module.c: Replace g95 with gfortran in comment.
5237
 
5238
2004-08-25  Paul Brook  
5239
 
5240
        PR fortran/17190
5241
        * arith.c (gfc_mpfr_to_mpz): Workaround mpfr bug.
5242
 
5243
2004-08-25  Paul Brook  
5244
 
5245
        PR fortran/17144
5246
        * trans-array.c (gfc_trans_allocate_temp_array): Remove
5247
        string_length argument.
5248
        (gfc_trans_array_ctor_element): New function.
5249
        (gfc_trans_array_constructor_subarray): Use it.
5250
        (gfc_trans_array_constructor_value): Ditto.  Handle constant
5251
        character arrays.
5252
        (get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
5253
        (gfc_trans_array_constructor): Use them.
5254
        (gfc_add_loop_ss_code): Update to new gfc_ss layout.
5255
        (gfc_conv_ss_descriptor): Remember section string length.
5256
        (gfc_conv_scalarized_array_ref): Ditto.  Remove dead code.
5257
        (gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
5258
        (gfc_conv_expr_descriptor): Ditto.
5259
        (gfc_conv_loop_setup): Ditto.  Spelling fixes.
5260
        * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
5261
        * trans-const.c (gfc_conv_constant):  Update to new gfc_ss layout.
5262
        * trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
5263
        (gfc_conv_variable): Set string_length from section.
5264
        (gfc_conv_function_call): Remove extra argument.
5265
        (gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
5266
        * trans-types.c (gfc_get_character_type_len): New function.
5267
        (gfc_get_character_type): Use it.
5268
        (gfc_get_dtype): Return zero for internal types.
5269
        * trans-types.h (gfc_get_character_type_len): Add prototype.
5270
        * trans.h (struct gfc_ss): Move string_length out of union.
5271
 
5272
2004-08-25  Tobias Schlueter  
5273
 
5274
        * trans.h (build2_v, build3_v): New macros.
5275
        (build_v): Remove.
5276
        * f95-lang.c (gfc_truthvalue_conversion): Use build2 instead of
5277
        build.
5278
        * trans-array.c (gfc_conv_descriptor_data,
5279
        gfc_conv_descriptor_offset, gfc_conv_descriptor_dimension,
5280
        gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
5281
        gfc_conv_descriptor_ubound, gfc_trans_allocate_array_storage,
5282
        gfc_trans_allocate_temp_array,
5283
        gfc_trans_array_constructor_subarray,
5284
        gfc_trans_array_constructor_value, gfc_conv_array_index_ref,
5285
        gfc_trans_array_bound_check, gfc_conv_array_index_offset,
5286
        gfc_conv_scalarized_array_ref, gfc_conv_array_ref,
5287
        gfc_conv_array_ref, gfc_trans_preloop_setup,
5288
        gfc_trans_scalarized_loop_end, gfc_conv_ss_startstride,
5289
        gfc_conv_loop_setup, gfc_array_init_size,
5290
        gfc_conv_array_initializer, gfc_trans_array_bounds,
5291
        gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
5292
        gfc_conv_expr_descriptor, gfc_conv_array_parameter,
5293
        gfc_trans_deferred_array): Use buildN and buildN_v macros instead
5294
        of build and build_v as appropriate.
5295
        * trans-common.c (create_common): Same.
5296
        * trans-decl.c (gfc_trans_auto_character_variable,
5297
        gfc_trans_entry_master_switch, gfc_generate_function_code): Same.
5298
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
5299
        gfc_conv_component_ref, gfc_conv_unary_op, gfc_conv_powi,
5300
        gfc_conv_cst_int_power, gfc_conv_string_tmp, gfc_conv_concat_op,
5301
        gfc_conv_expr_op, gfc_conv_function_call,
5302
        gfc_trans_structure_assign): Same.
5303
        * trans-intrinsic.c (build_fixbound_expr, build_round_expr,
5304
        gfc_conv_intrinsic_aint, gfc_conv_intrinsic_bound,
5305
        gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
5306
        gfc_conv_intrinsic_dim, gfc_conv_intrinsic_sign,
5307
        gfc_conv_intrinsic_dprod, gfc_conv_intrinsic_minmax,
5308
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
5309
        gfc_conv_intrinsic_arith, gfc_conv_intrinsic_minmaxloc,
5310
        gfc_conv_intrinsic_minmaxval, gfc_conv_intrinsic_btest,
5311
        gfc_conv_intrinsic_bitop, gfc_conv_intrinsic_singlebitop,
5312
        gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
5313
        gfc_conv_intrinsic_merge, gfc_conv_intrinsic_strcmp,
5314
        gfc_conv_allocated, gfc_conv_associated, prepare_arg_info,
5315
        gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
5316
        gfc_conv_intrinsic_trim, gfc_conv_intrinsic_repeat,
5317
        gfc_conv_intrinsic_iargc): Same.
5318
        * trans-io.c (set_parameter_value, set_parameter_ref, set_string,
5319
        set_flag, add_case, io_result, transfer_namelist_element,
5320
        transfer_expr): Same.
5321
        * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_if_1,
5322
        gfc_trans_arithmetic_if, gfc_trans_do, gfc_trans_do_while,
5323
        gfc_trans_integer_select, gfc_trans_logical_select,
5324
        gfc_trans_character_select, gfc_trans_forall_loop,
5325
        gfc_trans_nested_forall_loop, gfc_do_allocate,
5326
        generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
5327
        compute_inner_temp_size, compute_overall_iter_number,
5328
        allocate_temp_for_forall_nest, gfc_trans_pointer_assign_need_temp,
5329
        gfc_trans_forall_1, gfc_evaluate_where_mask,
5330
        gfc_trans_where_assign, gfc_trans_allocate): Same.
5331
        * trans-types.c (gfc_get_dtype, gfc_get_array_type_bounds): Same.
5332
        * trans.c (gfc_add_modify_expr, gfc_finish_block,
5333
        gfc_build_array_ref, gfc_build_function_call,
5334
        gfc_trans_runtime_check): Same.
5335
 
5336
2004-08-25  Tobias Schlueter  
5337
 
5338
        * trans-const.c (gfc_conv_mpz_to_tree): Change call to
5339
        build_int_cst to build_int_cst_wide in accordance to Nathan's
5340
        previous patch.
5341
 
5342
2004-08-25  Nathan Sidwell  
5343
 
5344
        * trans-array.c (gfc_trans_array_constructor_value): Adjust
5345
        build_int_cst calls.
5346
        * trans-const.c (gfc_build_string_const, gfc_init_constants,
5347
        gfc_conv_mpz_to_tree, gfc_conv_constant_to_tree): Likewise.
5348
        * trans-decl.c (gfc_get_symbol_decl, build_entry_thunks,
5349
        gfc_trans_entry_master_switch): Likewise.
5350
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
5351
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
5352
        * trans-io.c (add_case, set_error_locus,
5353
        transfer_namelist_element, transfer_expr): Likewise.
5354
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
5355
        gfc_trans_stop, gfc_trans_character_select): Likewise.
5356
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
5357
        * trans.c (gfc_trans_runtime_check): Likewise.
5358
 
5359
2004-08-24  Tobias Schlueter  
5360
 
5361
        * trans-decl.c, trans-types.c: Add and remove blank lines as
5362
        required.
5363
 
5364
2004-08-24  Richard Henderson  
5365
 
5366
        * trans-const.c (gfc_conv_mpz_to_tree): Fix 64-bit shift warning.
5367
 
5368
2004-08-24  Tobias Schlueter  
5369
 
5370
        * resolve.c (merge_argument_lists): Revert unintentionally
5371
        committed change.
5372
 
5373
2004-08-24  Tobias Schlueter  
5374
 
5375
        * trans-decl.c (build_function_decl): Fix spelling in comment.
5376
        (build_entry_thunks): Remove code with no function.
5377
        (gfc_build_intrinsic_function_decls): Remove empty line.
5378
 
5379
        * resolve.c (resolve_entries): Fix a bunch of comment typos.
5380
 
5381
2004-08-24  Nathan Sidwell  
5382
 
5383
        * f95-lang.c (gfc_init_decl_processing): Adjust
5384
        build_common_tree_nodes call.
5385
 
5386
2004-08-24  Tobias Schlueter  
5387
 
5388
        * trans-types.c: Spelling and formatting fixes.
5389
 
5390
2004-08-23  Richard Henderson  
5391
 
5392
        * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_getlimbn instead
5393
        of going through an intermediate string.  Fix 32/64 int/long bug.
5394
 
5395
2004-08-23  Eric Christopher  
5396
 
5397
        * trans-types.c (gfc_type_for_mode): Remove VECTOR_TYPE_SUPPORTED_P
5398
        usage. Use build_vector_type_for_mode for vector types.
5399
 
5400
2004-08-22  Richard Henderson  
5401
 
5402
        PR 13465
5403
        * data.c (find_con_by_offset): Search ordered list; handle
5404
        elements with repeat counts.
5405
        (gfc_assign_data_value_range): New.
5406
        * gfortran.h (struct gfc_data_value): Make repeat unsigned.
5407
        (gfc_assign_data_value_range): Declare.
5408
        * match.c (top_val_list): Extract repeat count into a temporary.
5409
        * resolve.c (values): Make left unsigned.
5410
        (next_data_value): Don't decrement left.
5411
        (check_data_variable): Use gfc_assign_data_value_range.
5412
 
5413
2004-08-22  Tobias Schlueter  
5414
 
5415
        * trans-const.c, trans-decl.c, trans-expr.c: Spelling fixes.
5416
 
5417
2004-08-22  Tobias Schlueter  
5418
 
5419
        * check.c (gfc_check_reduction): Rename to ...
5420
        (check_reduction): ... this. Make static. Don't check type of
5421
        first argument.
5422
        (gfc_check_minval_maxval, gfc_check_prodcut_sum): New functions.
5423
        * intrinsic.c (add_functions): Change MAXVAL, MINVAL, PRODUCT and
5424
        SUM to use new check functions.
5425
        (check_specific): Change logic to call new functions.
5426
        * intrinsic.h (gfc_check_minval_maxval, gfc_check_product_sum):
5427
        Add prototypes.
5428
        (gfc_check_reduction): Remove prototype.
5429
 
5430
2004-08-20  Paul Brook  
5431
        Canqun Yang  
5432
 
5433
        PR fortran/17077
5434
        * trans-array.c (gfc_conv_array_parameter): Pass correct pointer
5435
        for automatic arrays.
5436
        * trans-types.c (gfc_get_nodesc_array_type): Add comment.
5437
 
5438
2004-08-19  Tobias Schlueter  
5439
        (Port from g95)
5440
 
5441
        PR fortran/17074
5442
        * match.c (match_simple_forall, match_simple_where): Forward-declare.
5443
        (gfc_match_if): Order statement list alphabetically, add WHERE and
5444
        FORALL, remove double PAUSE.
5445
        (gfc_match_simple_where, match_forall_header,
5446
        gfc_match_simple_forall): New functions.
5447
        (gfc_match_forall): Use match_forall_header.
5448
 
5449
2004-08-19  Paul Brook  
5450
 
5451
        PR fortran/17091
5452
        * gfortran.h (gfc_access): Give ACCESS_UNKNOWN value 0.
5453
        * symbol.c (gfc_clear_attr): Use memset.
5454
 
5455
2004-08-19  Paul Brook  
5456
 
5457
        PR fortran/14976
5458
        PR fortran/16228
5459
        * data.c (assign_substring_data_value): Remove.
5460
        (create_character_intializer): New function.
5461
        (gfc_assign_data_value): Track the typespec for the current
5462
        subobject.  Use create_character_intializer.
5463
 
5464
2004-08-19  Erik Schnetter  
5465
 
5466
        PR fortran/16946
5467
        * check.c (gfc_check_reduction): New function.
5468
        (gfc_check_minval_maxval): Removed.
5469
        (gfc_check_product): Removed.
5470
        (gfc_check_sum): Removed.
5471
        * intrinsic.h: Add/remove declarations for these.
5472
        * gfortran.h: Add field f3red to union gfc_check_f.
5473
        * intrinsic.c (add_sym_3red): New function.
5474
        (add_functions): Register maxval, minval, product, and sum intrinsics
5475
        through add_sym_3red.
5476
        (check_specific): Handle f3red union field.
5477
        * iresolve.c: Whitespace change.
5478
 
5479
2004-08-18  Paul Brook  
5480
 
5481
        * trans-types.c (gfc_sym_type): Use pointer types for optional args.
5482
 
5483
2004-08-18  Victor Leikehman  
5484
 
5485
        PR fortran/13278
5486
        * trans-io.c (transfer_namelist_element): New. Recursively handle
5487
        derived-type variables.  Pass string lengths.
5488
        (build_dt): Code moved to build_namelist, with some
5489
        changes and additions.
5490
        (gfc_build_io_library_fndecls): Declare the fifth
5491
        argument in st_set_nml_var_char -- string_length.
5492
 
5493
2004-08-17  Paul Brook  
5494
        Tobias Schlueter  
5495
 
5496
        PR fortran/13082
5497
        * decl.c (get_proc_name): Update mystery comment.
5498
        (gfc_match_entry): Check for errors earlier.  Add entry point to list.
5499
        * dump-parse-tree.c (gfc_show_code_node): Print EXEC_ENTRY nodes.
5500
        * gfortran.h (symbol_attribute): Add entry_master.  Document entry.
5501
        (struct gfc_entry_list): Define.
5502
        (gfc_get_entry_list): Define.
5503
        (struct gfc_namespace): Add refs and entries.
5504
        (enum gfc_exec_op): Add EXEC_ENTRY.
5505
        (struct gfc_code): Add ext.entry.
5506
        * module.c (ab_attribute, attr_bits): Remove AB_ENTRY.
5507
        (mio_symbol_attribute): Don't save/reture addr->entry.
5508
        (mio_namespace_ref): Refcount namespaces.
5509
        * parse.c (accept_statement): Handle ST_ENTRY.
5510
        (gfc_fixup_sibling_symbols): Mark symbol as referenced.
5511
        (parse_contained): Fixup sibling references to entry points
5512
        after parsing the procedure body.
5513
        * resolve.c (resolve_contained_fntype): New function.
5514
        (merge_argument_lists, resolve_entries): New functions.
5515
        (resolve_contained_functions): Use them.
5516
        (resolve_code): Handle EXEC_ENTRY.
5517
        (gfc_resolve): Call resolve_entries.
5518
        * st.c (gfc_free_statement): Handle EXEC_ENTRY.
5519
        * symbol.c (gfc_get_namespace): Refcount namespaces.
5520
        (gfc_free_namespace): Ditto.
5521
        * trans-array.c (gfc_trans_dummy_array_bias): Treat all args as
5522
        optional when multiple entry points are present.
5523
        * trans-decl.c (gfc_get_symbol_decl): Remove incorrect check.
5524
        (gfc_get_extern_function_decl): Add assertion.  Fix coment.
5525
        (create_function_arglist, trans_function_start, build_entry_thunks):
5526
        New functions.
5527
        (gfc_build_function_decl): Rename ...
5528
        (build_function_decl): ... to this.
5529
        (gfc_create_function_decl): New function.
5530
        (gfc_generate_contained_functions): Use it.
5531
        (gfc_trans_entry_master_switch): New function.
5532
        (gfc_generate_function_code): Use new functions.
5533
        * trans-stmt.c (gfc_trans_entry): New function.
5534
        * trans-stmt.h (gfc_trans_entry): Add prototype.
5535
        * trans-types.c (gfc_get_function_type): Add entry point argument.
5536
        * trans.c (gfc_trans_code): Handle EXEC_ENTRY.
5537
        (gfc_generate_module_code): Call gfc_create_function_decl.
5538
        * trans.h (gfc_build_function_decl): Remove.
5539
        (gfc_create_function_decl): Add prototype.
5540
 
5541
2004-08-15  Andrew Pinski  
5542
 
5543
        PR fortran/17030
5544
        * f95-lang.c (gfc_init_builtin_functions): Initialize the builtins
5545
        for cabs{,f} and copysign{,f}.
5546
        * trans-decl.c (gfor_fndecl_math_cabsf): Delete.
5547
        (gfor_fndecl_math_cabs): Delete.
5548
        (gfor_fndecl_math_sign4): Delete.
5549
        (gfor_fndecl_math_sign8): Delete.
5550
        (gfc_build_intrinsic_function_decls): Remove the
5551
        initializing of cabs{,f} and copysign{,f} functions.
5552
        * trans-intrinsic.c (gfc_conv_intrinsic_abs): Use the builtins
5553
        instead of the functions definitions.
5554
        (gfc_conv_intrinsic_sign): Likewise.
5555
        * trans.h (gfor_fndecl_math_cabsf): Delete.
5556
        (gfor_fndecl_math_cabs): Delete.
5557
        (gfor_fndecl_math_sign4): Delete.
5558
        (gfor_fndecl_math_sign8): Delete.
5559
 
5560
2004-08-15  Nathan Sidwell  
5561
 
5562
        * trans-array.c (gfc_trans_array_constructor_value): Use
5563
        build_int_cst.
5564
        * trans-const.c (gfc_build_string_const,
5565
        gfc_init_constants, gfc_conv_mpz_to_tree,
5566
        gfc_conv_constant_to_tree): Likewise.
5567
        * trans-decl.c (gfc_get_symbol_decl): Likewise.
5568
        * trans-intrinsic.c (gfc_conv_intrinsic_ibits,
5569
        gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
5570
        * trans-io.c (add_case, set_error_locus, build_dt,
5571
        transfer_expr): Likewise.
5572
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
5573
        gfc_trans_stop, gfc_trans_character_select): Likewise.
5574
        * trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
5575
        * trans.c (gfc_trans_runtime_check): Likewise.
5576
 
5577
2004-08-14  Paul Brook  
5578
 
5579
        * trans-decl.c (gfc_build_function_decl): Remove dead code.
5580
 
5581
2004-08-14  Paul Brook  
5582
 
5583
        * trans-arry.c (gfc_trans_auto_array_allocation): Remove unused var.
5584
 
5585
2004-08-13  Tobias Schlueter  
5586
 
5587
        * gfortran.h: Add comments.
5588
        * parse.c (parse_contained): Fix comment typo.
5589
        * resolve.c (was_declared): Ditto.
5590
        * symbol.c: Ditto.
5591
 
5592
2004-08-11  Paul Brook  
5593
 
5594
        PR fortran/16917
5595
        * intrinsic.c (add_functions): Add dfloat as an alias for dble.
5596
 
5597
2004-08-10  Richard Henderson  
5598
 
5599
        * f95-lang.c (gfc_init_builtin_functions): Remove
5600
         __builtin_stack_alloc, add __builtin_alloca.
5601
        * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
5602
        * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
5603
 
5604
2004-08-10  Paul Brook  
5605
 
5606
        * trans-io.c (transfer_expr): Handle pointters.
5607
 
5608
2004-08-10  Paul Brook  
5609
 
5610
        PR fortran/16919
5611
        * trans-array.c (gfc_add_loop_ss_code): Handle GFC_SS_COMPONENT.
5612
        (gfc_conv_array_index_offset): Allow "temporary" with nonzero delta.
5613
        (gfc_trans_preloop_setup, gfc_trans_scalarized_loop_boundary):
5614
        Handle GFC_SS_COMPONENT.
5615
        (gfc_conv_ss_startstride): Ditto.  Set ss->shape.
5616
        (gfc_conv_loop_setup): Tweak commends. Remove dead code.
5617
        Use ss->shape.
5618
        (gfc_conv_array_initializer): Call specific initializer routines.
5619
        * trans-expr.c (gfc_trans_structure_assign): New function.
5620
        (gfc_trans_subarray_assign): New function.
5621
        (gfc_trans_subcomponent_assign): New fucntion
5622
        (gfc_conv_structure): Use them.
5623
        * trans.h (gfc_ss_type): Add GFC_SS_COMPONENT.
5624
        (gfc_ss): Add shape.
5625
 
5626
2004-08-08  Victor Leikehman  
5627
 
5628
        * simplify.c (gfc_simplify_shape): Bugfix.
5629
        * expr.c (gfc_copy_shape_excluding): New function.
5630
        * gfortran.h (gfc_get_shape): Bugfix.
5631
        (gfc_copy_shape_excluding): Added declaration.
5632
        * iresolve.c (gfc_resolve_all, gfc_resolve_any, gfc_resolve_count,
5633
        gfc_resolve_cshift, gfc_resolve_eoshift, gfc_resolve_lbound,
5634
        gfc_resolve_ubound, gfc_resolve_transpose): Added compile
5635
        time resolution of shape.
5636
 
5637
2004-08-06  Janne Blomqvist  
5638
 
5639
        * intrinsic.c (add_subroutines): Add getenv and
5640
        get_environment_variable. (add_sym_5s): New function.
5641
        * intrinsic.h (gfc_resolve_get_environment_variable): Add
5642
        prototype.
5643
        * iresolve.c (gfc_resolve_get_environment_variable): New
5644
        function.
5645
 
5646
2004-08-06  Feng Wang  
5647
 
5648
        * f95-lang.c (gfc_init_builtin_functions): Fix the number of
5649
        __builtin_pow[f] arguments.
5650
 
5651
2004-08-06  Steven G. Kargl  
5652
 
5653
        * arith.c: Add #define for model numbers.  Remove global GMP variables.
5654
        (natural_logarithm,common_logarithm,exponential,sine,
5655
        cosine,arctangent,hypercos,hypersine ): Remove.
5656
        (gfc_mpfr_to_mpz,gfc_set_model_kind,gfc_set_model): New functions.
5657
        (arctangent2,gfc_arith_init_1,gfc_arith_done_1
5658
        gfc_check_real_range, gfc_constant_result, gfc_range_check,
5659
        gfc_arith_uminus,gfc_arith_plus, gfc_arith_minus, gfc_arith_times,
5660
        gfc_arith_divide,complex_reciprocal,complex_pow_ui,
5661
        gfc_arith_power,gfc_compare_expr,compare_complex,gfc_convert_real,
5662
        gfc_convert_complex,gfc_int2real,gfc_int2complex,
5663
        gfc_real2int,gfc_real2real,gfc_real2complex,
5664
        gfc_complex2int,gfc_complex2real,gfc_complex2complex): Convert GMP
5665
        to MPFR, use new functions.
5666
        * arith.h: Remove extern global variables.
5667
        (natural_logarithm,common_logarithm,exponential, sine, cosine,
5668
        arctangent,hypercos,hypersine): Remove prototypes.
5669
        (arctangent2): Update prototype from GMP to MPFR.
5670
        (gfc_mpfr_to_mpz, gfc_set_model_kind,gfc_set_model): Add prototypes.
5671
        * dump-parse-tree.c (gfc_show_expr): Convert GMP to MPFR.
5672
        * expr.c (free_expr0,gfc_copy_expr): Convert GMP to MPFR.
5673
        * gfortran.h (GFC_REAL_BITS): Remove.
5674
        (arith): Add ARITH_NAN.
5675
        Include mpfr.h.  Define GFC_RND_MODE.
5676
        Rename GCC_GFORTRAN_H GFC_GFC_H.
5677
        (gfc_expr): Convert GMP to MPFR.
5678
        * module.c: Add arith.h, correct type in comment.
5679
        (mio_gmp_real): Convert GMP to MPFR.
5680
        (mio_expr):  Use gfc_set_model_kind().
5681
        * primary.c:  Update copyright date with 2004.
5682
        (match_real_constant,match_const_complex_part): Convert GMP to MPFR.
5683
        * simplify.c: Remove global GMP variables
5684
        (gfc_simplify_abs,gfc_simplify_acos,gfc_simplify_aimag,
5685
        gfc_simplify_aint,gfc_simplify_dint,gfc_simplify_anint,
5686
        gfc_simplify_dnint,gfc_simplify_asin,gfc_simplify_atan,
5687
        gfc_simplify_atan2,gfc_simplify_ceiling,simplify_cmplx,
5688
        gfc_simplify_conjg,gfc_simplify_cos,gfc_simplify_cosh,
5689
        gfc_simplify_dim,gfc_simplify_dprod,gfc_simplify_epsilon,
5690
        gfc_simplify_exp,gfc_simplify_exponent,gfc_simplify_floor,
5691
        gfc_simplify_fraction,gfc_simplify_huge,gfc_simplify_int,
5692
        gfc_simplify_ifix,gfc_simplify_idint,gfc_simplify_log,
5693
        gfc_simplify_log10,simplify_min_max,gfc_simplify_mod,
5694
        gfc_simplify_modulo,gfc_simplify_nearest,simplify_nint,
5695
        gfc_simplify_rrspacing,gfc_simplify_scale,
5696
        gfc_simplify_set_exponent,gfc_simplify_sign,gfc_simplify_sin,
5697
        gfc_simplify_sinh,gfc_simplify_spacing,gfc_simplify_sqrt,
5698
        gfc_simplify_tan,gfc_simplify_tanh,gfc_simplify_tiny,
5699
        gfc_simplify_init_1,gfc_simplify_done_1):  Convert GMP to MPFR.
5700
        Use new functions.
5701
        * trans-const.c (gfc_conv_mpfr_to_tree): Rename from
5702
        gfc_conv_mpf_to_tree.  Convert it to use MPFR
5703
        (gfc_conv_constant_to_tree): Use it.
5704
        * trans-const.h: Update prototype for gfc_conv_mpfr_to_tree().
5705
        * trans-intrinsic.c: Add arith.h, remove gmp.h
5706
        (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod): Convert GMP to MPFR.
5707
 
5708
2004-08-06  Victor Leikehman  
5709
        Paul Brook  
5710
 
5711
        * trans-array.c (gfc_trans_allocate_array_storage,
5712
        gfc_trans_allocate_temp_array, gfc_add_loop_ss_code,
5713
        gfc_conv_loop_setup): For functions, if the shape of the result
5714
        is not known in compile-time, generate an empty array descriptor for
5715
        the result and let the callee to allocate the memory.
5716
        (gfc_trans_dummy_array_bias): Do nothing for pointers.
5717
        (gfc_conv_expr_descriptor): Use function return values directly.
5718
        * trans-expr.c (gfc_conv_function_call): Always add byref call
5719
        insn to pre chain.
5720
        (gfc_trans_pointer_assignment): Add comments.
5721
        (gfc_trans_arrayfunc_assign): Don't chain on expression.
5722
 
5723
2004-08-01  Roger Sayle  
5724
 
5725
        * options.c (gfc_init_options): Don't warn about the use GNU
5726
        extensions by default.
5727
        (gfc_post_options): Warn about GNU extensions with -pedantic.
5728
        (gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
5729
 
5730
2004-07-30  Richard Henderson  
5731
 
5732
        * trans-expr.c (gfc_conv_expr_reference): Create a CONST_DECL
5733
        for TREE_CONSTANTs.
5734
 
5735
2004-07-25  Richard Henderson  
5736
 
5737
        * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
5738
        and DECL_IGNORED_P on RESULT_DECL.
5739
        (gfc_generate_constructors): Likewise.
5740
 
5741
2004-07-18  Tobias Schlueter  
5742
 
5743
        PR fortran/16465
5744
        * lang.opt (ffixed-line-length-none, ffixed-line-length-): New
5745
        options.
5746
        (ffixed-line-length-80, ffixed-line-length-132): Remove.
5747
        * options.c (gfc_handle_options): Deal with changed options.
5748
        * scanner.c (load_line): Change second arg to 'char **',
5749
        allocate if pointing to NULL. Keep track of buffer's length.
5750
        Adapt buffer size to overlong lines. Pad lines to full length
5751
        in fixed form.
5752
        (load_file): Adapt to new interface of load_line.
5753
 
5754
2004-07-17  Joseph S. Myers  
5755
 
5756
        * trans.h (builtin_function): Declare.
5757
 
5758
2004-07-16  Tobias Schlueter  
5759
 
5760
        PR fortran/16404
5761
        (parts ported from g95)
5762
        * parse.h (gfc_state_data): New field do_variable.
5763
        (gfc_check_do_variable): Add prototype.
5764
        * parse.c (push_state): Initialize field 'do_variable'.
5765
        (gfc_check_do_variable): New function.
5766
        (parse_do_block): Remember do iterator variable.
5767
        (parse_file): Initialize field 'do_variable'.
5768
        * match.c (gfc_match_assignment, gfc_match_do,
5769
        gfc_match_allocate, gfc_match_nullify, gfc_match_deallocate):
5770
        Add previously missing checks.
5771
        (gfc_match_return): Reformat error message.
5772
        * io.c (match_out_tag): New function.
5773
        (match_open_element, match_close_element,
5774
        match_file_element, match_dt_element): Call match_out_tag
5775
        instead of match_vtag where appropriate.
5776
        (match_io_iterator, match_io_element): Add missing check.
5777
        (match_io): Reformat error message.
5778
        (match_inquire_element): Call match_out_tag where appropriate.
5779
 
5780
        * parse.c (gfc_check_do_variable): Fix error locus.
5781
 
5782
2004-07-15  Tobias Schlueter  
5783
 
5784
        PR fortran/15129
5785
        * trans-decl.c (gfc_build_function_decl): Create a new chardecl
5786
        for every assumed length character dummy argument.
5787
 
5788
        PR fortran/15140
5789
        * trans-decl.c (gfc_trans_deferred_vars): Remove bogus assertion.
5790
 
5791
        PR fortran/13792
5792
        * simplify.c (gfc_simplify_bound): Copy the bound expression.
5793
 
5794
2004-07-15  Tobias Schlueter  
5795
 
5796
        PR fortran/15324
5797
        * trans-array.c gfc_trans_g77_array,
5798
        gfc_trans_dummy_array_bias): Don't call gfc_trans_string_init
5799
        for assumed length characters.
5800
        (gfc_conv_expr_descriptor): Set se->string_length if dealing
5801
        with a character expression.
5802
        (gfc_cvonv_array_parameter): Pass string length when passing
5803
        character array according to g77 conventions.
5804
 
5805
2004-07-12  Paul Brook  
5806
 
5807
        * expr.c (gfc_check_assign_symbol): Handle pointer assignments.
5808
        * trans-array.c (gfc_trans_auto_array_allocation): Remove
5809
        initialization code.
5810
        * trans-common.c (create_common): Use gfc_conv_initializer.
5811
        * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_initializer.
5812
        * trans-expr.c (gfc_conv_initializer): New function.
5813
        (gfc_conv_structure): Use it.
5814
        * trans.h (gfc_conv_initializer): Add prototype.
5815
 
5816
2004-07-11  Paul Brook  
5817
 
5818
        PR fortran/15986
5819
        * parse.c (gfc_fixup_sibling_symbols): Also look for untyped
5820
        variables.
5821
        (parse_contained): Mark contained symbols as referenced.
5822
 
5823
2004-07-11  Tobias Schlueter  
5824
 
5825
        PR fortran/16455
5826
        * module.c (gfc_dump_module, gfc_use_module): Print locus
5827
        when opening of module file fails.
5828
 
5829
        PR fortran/16404
5830
        * io.c (match_io): Flag 'WRITE(...), ...' as extension.
5831
 
5832
        PR fortran/16404
5833
        * match.c (gfc_match_program): A program name is obligatory.
5834
        (gfc_match_return): RETURN in main program is an extension.
5835
        (gfc_match_block_data): A space is required before a block data
5836
        name.
5837
 
5838
        PR fortran/16433
5839
        * primary.c (match_boz_constant): Call gfc_notify_std only if
5840
        we actually have a non-standard boz-literal-constant.
5841
 
5842
        PR fortran/15754
5843
        * expr.c (gfc_check_assign): Print ranks if incompatible. Issue
5844
        warning if assigning NULL().
5845
 
5846
2004-07-11  Joseph S. Myers  
5847
 
5848
        * f95-lang.c (set_block): Remove.
5849
        (gfc_clear_binding_stack): New.
5850
        (LANG_HOOKS_CLEAR_BINDING_STACK): Define.
5851
        (struct binding_level): Remove block_created_by_back_end.
5852
        (clear_binding_level): Likewise.
5853
        (poplevel): Don't handle block_created_by_back_end.
5854
 
5855
2004-07-10  Tobias Schlueter  
5856
 
5857
        * trans-decl.c (gfc_create_module_variable): Nothing to do if
5858
        symbol is in common, because we ...
5859
        (gfc_generate_module_vars): Call gfc_trans_common.
5860
 
5861
2004-07-10  Paul Brook  
5862
 
5863
        * trans-array.c (gfc_build_null_descriptor): New function.
5864
        (gfc_trans_static_array_pointer): Use it.
5865
        * trans-array.h (gfc_build_null_descriptor): Add prototype.
5866
        * trans-expr.c (gfc_conv_structure): Handle array pointers.
5867
 
5868
2004-07-10  Tobias Schlueter  
5869
 
5870
        PR fortran/16336
5871
        * decl.c (gfc_match_save): Use-associated common block
5872
        doesn't collide.
5873
        * gfortran.h (gfc_common_head): Add new field 'name'.
5874
        Fix typo in comment after #endif.
5875
        * match.c (gfc_get_common): Add new argument from_common,
5876
        mangle name if flag is set, fill in new field in structure
5877
        gfc_common_head.
5878
        (match_common): Set new arg in call to gfc_get_common,
5879
        use-associated common block doesn't collide.
5880
        * match.h (gfc_get_common): Adapt prototype.
5881
        * module.c (load_commons): Set new arg in call to
5882
        gfc_get_common.
5883
        * symbol.c (free_common_tree): New function.
5884
        (gfc_free_namespace): Call new function.
5885
        * trans-common.c (several functions): Remove argument
5886
        'name', use name from gfc_common_head instead.
5887
 
5888
2004-07-10  Tobias Schlueter  
5889
 
5890
        * expr.c (gfc_check_pointer_assign): Verify that rank of the LHS
5891
        and RHS match. Return early if the RHS is NULL().
5892
 
5893
        PR fortran/16336
5894
        * match.c (match_common): Fix error reporting for used common.
5895
 
5896
        PR fortran/15969
5897
        * trans-expr.c (gfc_conv_structure): Handle initialization
5898
        of scalar pointer components.
5899
 
5900
        * parse.c (decode_statement): Fix matching of BLOCK DATA.
5901
 
5902
        * trans-decl.c (generate_local_decl): Remove workaround obsoleted
5903
        by fix for PR 15481.
5904
 
5905
2004-07-10  Tobias Schlueter  
5906
 
5907
        * trans-common.c: Fix whitespace issues, make variable names
5908
        more readable.
5909
        (create_common): Additionally, make loop logic more obvious.
5910
 
5911
2004-07-10  Tobias Schlueter  
5912
        Paul Brook  
5913
 
5914
        PR fortran/13415
5915
        * trans-common.c (calculate_length): Remove ...
5916
        (get_segment_info): Merge into here.  Save field type.
5917
        (build_field): Use saved type.
5918
        (create_common, new_condition, new_segment, finish_equivalences):
5919
        Use new get_segment_info.
5920
        * trans-types.c: Update comment.
5921
 
5922
2004-07-09  Tobias Schlueter  
5923
 
5924
        PR fortran/14077
5925
        * moduele.c (mio_symbol): Don't I/O initial values unless
5926
        symbol is a parameter.
5927
 
5928
2004-07-09  Tobias Schlueter  
5929
 
5930
        PR fortran/13201
5931
        * resolve.c (resolve_symbol): Verify that the shape of a
5932
        parameter array is not only explicit, but also constant.
5933
        * array.c (gfc_is_compile_time_shape): New function.
5934
        * gfortran.h (gfc_is_compile_time_shape): Add prototype.
5935
 
5936
2004-07-09  Tobias Schlueter  
5937
 
5938
        PR fortran/15481
5939
        PR fortran/13372
5940
        PR fortran/13575
5941
        PR fortran/15978
5942
        * module.c (write_symbol, write_symtree): Remove workaround.
5943
        * primary.c (match_actual_arglist): Enhance comment.
5944
        (gfc_match_rvalue): Handle function call with first argument
5945
        a keyword argument correctly.
5946
        * resolve.c (resolve_symbol): Change call to
5947
        gfc_set_default_type to issue error if no implicit type
5948
        can be found.
5949
        * trans-decl.c (gfc_create_module_variable): Remove workaround.
5950
 
5951
2004-07-08  Paul Brook  
5952
 
5953
        * intrinsic.c (add_sym_4s): New function.
5954
        (add_subroutines): Change gfc_add_sym_? to gfc_add_sym_?s.
5955
 
5956
2004-07-04  Janne Blomqvist  
5957
        Paul Brook  
5958
 
5959
        PR fortran/15280
5960
        PR fortran/15665
5961
        * gfortran.h (enum gfc_generic_isym_id): Add GFC_ISYM_IARGC and
5962
        GFC_ISYM_COMMAND_ARGUMENT_COUNT.
5963
        * intrinsic.c (add_functions):  Identify iargc.  Add
5964
        command_argument_count.
5965
        (add_subroutines): Resolve getarg.  Add get_command and
5966
        get_command_argument.
5967
        * intrinsic.h (gfc_resolve_getarg, gfc_resolve_get_command,
5968
        gfc_resolve_get_command_argument): Add prototypes.
5969
        * iresolve.c (gfc_resolve_getarg, gfc_resolve_get_command,
5970
        gfc_resolve_get_command_argument): New functions.
5971
        * trans-decl.c (gfor_fndecl_iargc): New variable.
5972
        (gfc_build_intrinsic_function_decls): Set it.
5973
        * trans-intrinsic.c (gfc_conv_intrinsic_iargc): New function.
5974
        (gfc_conv_intrinsic_function): Use it.
5975
        * trans.h (gfor_fndecl_iargc): Declare.
5976
 
5977
2004-07-04  Matthias Klose  
5978
 
5979
        * Make-lang.in: Generate and install gfortran man page.
5980
        * invoke.texi: Remove extra '@c man end'.
5981
 
5982
2004-07-04  Richard Henderson  
5983
 
5984
        * f95-lang.c (gfc_mark_addressable): Don't put_var_into_stack.
5985
 
5986
2004-07-04  Paul Brook  
5987
 
5988
        * decl.c (gfc_match_implicit_range): Don't use typespec.
5989
        (gfc_match_implicit): Handle character selectors.
5990
        * gfortran.h (gfc_set_implicit): Remove prototype.
5991
        (gfc_add_new_implicit_range, gfc_merge_new_implicit): Update.
5992
        * parse.c (accept_statement): Don't call gfc_set_implicit.
5993
        * symbol.c (new_ts): Remove.
5994
        (gfc_set_implicit_none): Use same loop bounds as other functions.
5995
        (gfc_set_implicit): Remove.
5996
        (gfc_clear_new_implicit, gfc_add_new_implicit_range): Only set flags.
5997
        (gfc_merge_new_implicit): Combine with gfc_set_implicit.
5998
 
5999
2004-06-30  Richard Henderson  
6000
 
6001
        * match.c (var_element): Remove unused variable.
6002
 
6003
        * trans-decl.c (gfc_generate_function_code): Don't set
6004
        x_whole_function_mode_p.
6005
        (gfc_generate_constructors): Likewise.
6006
 
6007
2004-06-30  Richard Henderson  
6008
 
6009
        * trans-decl.c (gfc_generate_function_code): Don't set
6010
        immediate_size_expand.
6011
        (gfc_generate_constructors): Likewise.
6012
 
6013
2004-06-30  Tobias Schlueter  
6014
 
6015
        PR fortran/16161
6016
        * decl.c (gfc_match_type_spec): Rename second argument to
6017
        'implicit_flag', reverse meaning. Don't match_char_spec if
6018
        'implicit_flag' is set. Rename to ...
6019
        (match_type_spec): ... this.
6020
        (gfc_match_implicit_none, match_implicit_range): Move here
6021
        from match.c.
6022
        (gfc_match_implicit): Move here from match.c, try to
6023
        match_char_len if match_implicit_range doesn't succeed for
6024
        CHARACTER implicits. Call renamed fucntion match_type_spec.
6025
        (gfc_match_data_decl, match_prefix): Call renamed function
6026
        match_type_spec.
6027
        * match.c (gfc_match_implicit_none, match_implicit_range,
6028
        gfc_match_implicit): Move to decl.c.
6029
        * match.h (gfc_match_implicit_none, gfc_match_implicit):
6030
        Move protoypes to section 'decl.c'.
6031
        (gfc_match_type_spec): Remove prototype.
6032
 
6033
2004-06-29  Tobias Schlueter  
6034
 
6035
        * decl.c, interface.c, symbol.c, trans-common.c: Add 2004 to
6036
        copyright years.
6037
 
6038
2004-06-29  Steven Bosscher  
6039
 
6040
        Make sure types in assignments are compatible.  Mostly mechanical.
6041
        * trans-const.h (gfc_index_one_node): New define.
6042
        * trans-array.c (gfc_trans_allocate_array_storage,
6043
        gfc_trans_allocate_temp_array, gfc_trans_array_constructor_subarray,
6044
        gfc_trans_array_constructor_value, gfc_trans_array_constructor,
6045
        gfc_conv_array_ubound, gfc_conv_array_ref,
6046
        gfc_trans_scalarized_loop_end, gfc_conv_section_startstride,
6047
        gfc_conv_ss_startstride, gfc_conv_loop_setup, gfc_array_init_size,
6048
        gfc_trans_array_bounds, gfc_trans_dummy_array_bias,
6049
        gfc_conv_expr_descriptor, gfc_trans_deferred_array): Use the correct
6050
        types in assignments, conversions and conditionals for expressions.
6051
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_substring,
6052
        gfc_conv_unary_op, gfc_conv_cst_int_power, gfc_conv_string_tmp,
6053
        gfc_conv_function_call, gfc_trans_pointer_assignment,
6054
        gfc_trans_scalar_assign): Likewise.
6055
        * trans-intrinsic.c (build_fixbound_expr, gfc_conv_intrinsic_bound,
6056
        gfc_conv_intrinsic_anyall, gfc_conv_intrinsic_count,
6057
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_btest,
6058
        gfc_conv_intrinsic_singlebitop, gfc_conv_intrinsic_ishft,
6059
        gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_strcmp,
6060
        gfc_conv_allocated, gfc_conv_associated,
6061
        gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_trim): Likewise.
6062
        * trans-io.c (set_string): Likewise.
6063
        * trans-stmt.c (gfc_trans_do, gfc_trans_forall_loop,
6064
        gfc_do_allocate, generate_loop_for_temp_to_lhs,
6065
        generate_loop_for_rhs_to_temp, compute_inner_temp_size,
6066
        compute_overall_iter_number, gfc_trans_assign_need_temp,
6067
        gfc_trans_pointer_assign_need_temp, gfc_trans_forall_1,
6068
        gfc_evaluate_where_mask, gfc_trans_where_assign,
6069
        gfc_trans_where_2): Likewise.
6070
        * trans-types.c (gfc_get_character_type, gfc_build_array_type,
6071
        gfc_get_nodesc_array_type, gfc_get_array_type_bounds): Likewise.
6072
 
6073
        * trans.c (gfc_add_modify_expr): Add sanity check that types
6074
        for the lhs and rhs are the same for scalar assignments.
6075
 
6076
2004-06-29  Tobias Schlueter  
6077
 
6078
        * dump-parse-tree.c (show_common): New function.
6079
        (gfc_show_namespace): Show commons.
6080
 
6081
2004-06-29  Tobias Schlueter  
6082
        Andrew Vaught  
6083
 
6084
        PR fortran/13249
6085
        PR fortran/15481
6086
        * decl.c (gfc_match_save): Adapt to new common structures,
6087
        don't allow saving USE-associated common.
6088
        * dump-parse-tree (gfc_show_attr): (saved_)common are not
6089
        symbol attributes any longer.
6090
        (gfc_show_symbol): Don't show old-style commons any longer.
6091
        (gfc_show_namespace): Adapt call to gfc_traverse_symtree to new
6092
        interface.
6093
        * gfortran.h (symbol_attribute): Remove common and saved_common
6094
        attributes.
6095
        (gfc_symbol): Remove common_head element.
6096
        (gfc_common_head): New struct.
6097
        (gfc_get_common_head): New macro.
6098
        (gfc_symtree): Add field 'common' to union.
6099
        (gfc_namespace): Add field 'common_root'; change type of field
6100
        'blank_common' to blank_common.
6101
        (gfc_add_data): New prototype.
6102
        (gfc_traverse_symtree): Expect a symtree as first argument
6103
        instead of namespace.
6104
        * match.c (gfc_get_common): New function.
6105
        (match_common_name): Change to take char * as argument, adapt,
6106
        fix bug with empty name.
6107
        (gfc_match_common): Adapt to new data structures. Disallow
6108
        redeclaration of USE-associated COMMON-block. Fix bug with
6109
        empty common.
6110
        (var_element): Adapt to new common structures.
6111
        * match.h (gfc_get_common): Declare.
6112
        * module.c: Add 2004 to copyright years, add commons to module
6113
        file layout description.
6114
        (ab_attribute, attr_bits, mio_symbol_attributes): Remove code
6115
        for removed attributes.
6116
        (mio_symbol): Adapt to new way of storing common relations.
6117
        (load_commons): New function.
6118
        (read_module): Skip common list on first pass, load_commons at
6119
        second.
6120
        (write_commons): New function.
6121
        (write_module): Call write_commons().
6122
        * symbol.c (gfc_add_saved_comon, gfc_add_common): Remove
6123
        functions related to removed attributes.
6124
        (gfc_add_data): New function.
6125
        (gfc_clear_attr): Don't set removed attributes.
6126
        (gfc_copy_attr): Don't copy removed attributes.
6127
        (traverse_symtree): Remove.
6128
        (gfc_traverse_symtree): Don't traverse symbol
6129
        tree of the passed namespace, but require a symtree to be passed
6130
        instead. Unify with traverse_symtree.
6131
        (gfc_traverse_ns): Call gfc_traverse_symtree according to new
6132
        interface.
6133
        (save_symbol): Remove setting of removed attribute.
6134
        * trans-common.c (gfc_sym_mangled_common_id): Change to
6135
        take 'char *' argument instead of 'gfc_symbol'.
6136
        (build_common_decl, new_segment, translate_common): Adapt to new
6137
        data structures, add new
6138
        argument name.
6139
        (create_common): Adapt to new data structures, add new
6140
        argument name. Fix typo in intialization of derived types.
6141
        (finish_equivalences): Add second argument in call to
6142
        create_common.
6143
        (named_common): take 'gfc_symtree' instead of 'gfc_symbol'.
6144
        (gfc_trans_common): Adapt to new data structures.
6145
        * trans-decl.c (gfc_create_module_variables): Remove test for
6146
        removed attribute.
6147
 
6148
2004-06-29  Tobias Schlueter  
6149
 
6150
        * io.c: Add 2004 to copyright years.
6151
 
6152
2004-06-29  Tobias Schlueter  
6153
        Andrew Vaught  
6154
 
6155
        * gfortran.h (gfc_gsymbol): New typedef.
6156
        (gfc_gsym_root): New variable.
6157
        (gfc_get_gsymbol, gfc_find_gsym): New prototypes.
6158
        * parse.c (global_used): New function.
6159
        (parse_block_data): Check for double empty BLOCK DATA,
6160
        use global symbol table.
6161
        (parse_module): Use global symbol table.
6162
        (add_global_procedure, add_global_program): New functions.
6163
        (gfc_parse_file): Use global symbol table.
6164
        * symbol.c (gfc_gsym_root): New variable.
6165
        (gfc_find_gsym, gsym_compare, gfc_get_gsymbol): New
6166
        functions.
6167
 
6168
2004-06-29  Tobias Schlueter  
6169
 
6170
        * module.c (mio_gmp_real): Correct writing of negative numbers.
6171
 
6172
2004-06-29  Tobias Schlueter  
6173
 
6174
        PR fortran/15963
6175
        * expr.c (check_intrinsic_op): Allow comparison of characters.
6176
        Make logic easier.
6177
 
6178
2004-06-26  Tobias Schlueter  
6179
        Andrew Vaught  
6180
 
6181
        * decl.c (contained_procedure): New function.
6182
        (match_end): Verify correctness of END STATEMENT in
6183
        all cases.
6184
 
6185
2004-06-26  Tobias Schlueter  
6186
        Andrew Vaught  
6187
 
6188
        PR fortran/15190
6189
        * decl.c (gfc_match_type_spec), io.c (match_io), parse.c
6190
        (decode_statement): Enforce required space in free-form.
6191
 
6192
2004-06-22  Richard Kenner  
6193
 
6194
        * f95-lang.c (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Deleted.
6195
        * trans-array.c (gfc_conv_descriptor_data): Add operand
6196
        for COMPONENT_REF.
6197
        (gfc_conv_descriptor_offset, gfc_conv_descriptor_dtype): Likewise.
6198
        (gfc_conv_descriptor_dimension, gfc_conv_descriptor_stride): Likewise.
6199
        (gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound): Likewise.
6200
        * trans-common.c (create_common): Likewise.
6201
        * trans-expr.c (gfc_conv_component_ref): Likewise.
6202
        * trans-io.c (set_parameter_value): Likewise.
6203
        (set_parameter_ref, set_string, set_flag, io_result): Likewise.
6204
        (transfer_expr): Likewise.
6205
        * trans-decl.c (gfc_trans_auto_character_variable):
6206
        Set up to get DECL_SIZE and DECL_SIZE_UNIT gimplified.
6207
        (gfc_gimplify_function): New function.
6208
        (gfc_generate_function-code): Properly handle nested functions.
6209
        * trans.c (gfc_build_array_ref): Add two new operands for ARRAY_REF.
6210
 
6211
2004-06-22  Janne Blomqvist  
6212
 
6213
        PR fortran/15750
6214
        * io.c (gfc_match_inquire): Bugfix for iolength related stuff.
6215
        (gfc_resolve_inquire): Resolve the iolength tag.  Return
6216
        SUCCESS at end of function if no failure has occured.
6217
        * resolve.c (resolve_code): Resolve if iolength is encountered.
6218
        * trans-io.c: (ioparm_iolength, iocall_iolength,
6219
        iocall_iolength_done): New variables.
6220
        (last_dt): Add IOLENGTH.
6221
        (gfc_build_io_library_fndecls ): Set iolength related variables.
6222
        (gfc_trans_iolength): Implement.
6223
        (gfc_trans_dt_end): Treat iolength as a third form of data transfer.
6224
 
6225
2004-06-21  Tobias Schlueter  
6226
 
6227
        PR fortran/15511
6228
        * scanner.c (load_line): Don't truncate preprocessor lines.
6229
        Reformat error message.
6230
        (preprocessor_line): Issue warning in case of malformed
6231
        preprocessor line.
6232
 
6233
2004-06-21  Tobias Schlueter  
6234
 
6235
        * resolve.c (resolve_symbol): Add comment in function body.
6236
        (check_data_variable): Change type of mark to ar_type, adapt code
6237
        accordingly.
6238
 
6239
2004-06-21  Tobias Schlueter  
6240
 
6241
        * array.c (gfc_insert_constructor): Avoid redundant call to
6242
        mpz_comp. Add 2004 to copyright years.
6243
 
6244
2004-06-21  Joseph S. Myers  
6245
 
6246
        * trans.h (stmtblock_t): Change has_scope to unsigned int.
6247
 
6248
2004-06-20  Steven G. Kargl  
6249
 
6250
        * arith.c (gfc_range_check): correct complex underflow.
6251
 
6252
2004-06-15  Tobias Schlueter  
6253
 
6254
        PR fortran/15962
6255
        * match.c (match_case_selector): Call gfc_match_init_expr
6256
        instead of gfc_match_expr.
6257
        * resolve.c (validate_case_label_expr): No need to check for
6258
        constant, since it wouldn't have been matched with the fix to
6259
        match.c.
6260
 
6261
2004-06-14  Tobias Schlueter  
6262
 
6263
        PR fortran/15211
6264
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Deal with arrays
6265
        of strings.
6266
 
6267
2004-06-14  Tobias Schlueter  
6268
 
6269
        PR fortran/15510
6270
        * trans-deecl.c (generate_local_decl): Do not issue warning for
6271
        unused variables if they're use associated.
6272
 
6273
2004-06-14  Tobias Schlueter  
6274
        Andrew Vaught  
6275
 
6276
        PR fortran/14928
6277
        * gfortran.h (gfc_check_f): Add new field f3ml.
6278
        * check.c (gfc_check_minloc_maxloc): Take argument list instead
6279
        of individual arguments, reorder if necessary.
6280
        * intrinsic.h (gfc_check_minloc_maxloc): ... adapt prototype.
6281
        * intrinsic.c (add_sym_3ml): New function.
6282
        (add_functions): Change to add_sym_3ml for MINLOC, MAXLOC.
6283
        (check_specific): Catch special case MINLOC, MAXLOC.
6284
 
6285
2004-06-14  Paul Brook  
6286
 
6287
        * intrinsic.c (add_sym_2s): Use correct function types.
6288
 
6289
2004-06-12  Tobias Schlueter  
6290
 
6291
        * Make-lang.in (F95_OBJS, F95_PARSER_OBJS): Alphabetize.  Move data.c
6292
        * data.c (gfc_get_section_index):  Remove dependency on trans.h.
6293
 
6294
2004-06-12  Steven G. Kargl  
6295
 
6296
        * check.c (gfc_check_second_sub, gfc_check_irand, gfc_check_rand
6297
        gfc_check_srand, gfc_check_etime, gfc_check_etime_sub): New functions.
6298
        * gfortran.h (gfc_generic_isym_id): New symbols GFC_ISYM_ETIME,
6299
        GFC_ISYM_IRAND, GFC_ISYM_RAND, GFC_ISYM_SECOND.
6300
        * trans-intrinsic.c:  Use symbols.
6301
        * intrinsic.c (add_sym_2s): New function.
6302
        * intrinsic.c: Add etime, dtime, irand, rand, second, srand.
6303
        * intrinsic.h: Function prototypes.
6304
        * iresolve.c (gfc_resolve_etime_sub, gfc_resolve_second_sub
6305
        gfc_resolve_srand):  New functions.
6306
 
6307
2004-06-12  Tobias Schlueter  
6308
 
6309
        PR fortran/14957
6310
        * decl.c (gfc_match_end): Require END {SUBROUTINE|FUNCTION} for
6311
        contained procedure.
6312
 
6313
2004-06-12  Tobias Schlueter  
6314
 
6315
        PR fortran/12841
6316
        * interface.c (compare_parameter, compare_actual_formal): Don't
6317
        check types and array shapes for NULL()
6318
        * trans-expr.c (conv_function_call): No double indirection for
6319
        NULL()
6320
 
6321
2004-06-09  Toon Moene  
6322
 
6323
        * trans-expr.c (gfc_conv_cst_int_power): Compute
6324
        x**(-n) by converting it to (1/x)**n instead of
6325
        1/x**n.
6326
 
6327
2004-06-09  Tobias Schlueter  
6328
 
6329
        PR fortran/13372
6330
        * module.c (write_symbol, write_symtree): Don't write symbols
6331
        wrongly added to namespace.
6332
        * trans-decl.c (gfc_create_module_variable): Don't create a
6333
        backend decl for a symbol incorrectly added to namespace.
6334
 
6335
2004-06-09  Tobias Schlueter  
6336
 
6337
        PR fortran/13201
6338
        * resolve.c (resolve_symbol): Verify that parameter array has an
6339
        explicit shape. Fix typos and coding style issues in surrounding
6340
        lines.
6341
 
6342
2004-06-05  Tobias Schlueter  
6343
 
6344
        PR fortran/15478
6345
        * gfortran.texi: The documentation doesn't contain infomration on
6346
        how to report bugs, and shouldn't, so remove the line which
6347
        says it does.
6348
 
6349
2004-06-05  Tobias Schlueter  
6350
 
6351
        * intrinsic.c (sort_actual): Keep track of type of missing
6352
        arguments. (Missing from previous commit.)
6353
 
6354
2004-06-03  Tobias Schlueter  
6355
 
6356
        * gfortran.h (gfc_actual_arglist): New field missing_arg_type.
6357
        * interface.c (compare_actual_formal): Keep type of omitted
6358
        optional arguments.
6359
        * trans-expr.c (gfc_conv_function_call): Add string length
6360
        argument for omitted string argument.
6361
 
6362
2004-06-03  Paul Brook  
6363
 
6364
        * trans.c (gfc_finish_block, gfc_add_expr_to_block): Build statement
6365
        lists instead of compound expr chains.
6366
        (gfc_trans_code): Annotate statement lists.
6367
 
6368
2004-06-03  Tobias Schlueter  
6369
 
6370
        * trans-array.c: Fix spelling in comments.
6371
 
6372
2004-06-02  Tobias Schlueter  
6373
 
6374
        PR fortran/15557
6375
        * data.c (assign_substring_data_value): New function.
6376
        (gfc_assign_data_value): Call the new function if we're dealing
6377
        with a substring LHS.
6378
 
6379
2004-06-01  Tobias Schlueter  
6380
 
6381
        PR fortran/15477
6382
        * gfortran.h (GFC_VERSION): Remove.
6383
        * gfortran.texi (version-gfortran): Remove, replace by version-GCC
6384
        where used.
6385
 
6386
2004-05-31  Tobias Schlueter  
6387
 
6388
        * trans-types.c: Fix spelling & layout in comments.
6389
 
6390
2004-05-30  Tobias Schlueter  
6391
 
6392
        PR fortran/14067
6393
        * trans-const.c (gfc_conv_string_init): Allow variable string
6394
        length lower than initialization string length.
6395
 
6396
2004-05-30  Paul Brook  
6397
 
6398
        PR fortran/15620
6399
        * trans-decl.c (gfc_shadow_sym, gfc_restore_sym): New functions.
6400
        * trans-expr.c (gfc_trans_string_copy): New function.
6401
        (gfc_conv_statement_function): Use them.  Create temp vars.  Enforce
6402
        character lengths.
6403
        (gfc_conv_string_parameter): Use gfc_trans_string_copy.
6404
        * trans-stmt.c (gfc_trans_forall_1): Use gfc_{shadow,restore}_sym.
6405
        * trans.h (struct gfc_saved_var): Define.
6406
        (gfc_shadow_sym, gfc_restore_sym): Add prototypes.
6407
 
6408
2004-05-30  Steven G. Kargl  
6409
 
6410
        * iresolve.c (gfc_resolve_random_number): Clean up conditional.
6411
 
6412
2004-05-29  Steven G. Kargl  
6413
 
6414
        * simplify.c (gfc_simplify_log): Remove useless line of code.
6415
 
6416
2004-05-29  Paul Brook  
6417
 
6418
        * trans-common.c (find_equivalence): Find multiple rules.
6419
 
6420
2004-05-27  Tobias Schlueter  
6421
 
6422
        * gfortran.h (gfc_current_locus, gfc_set_locus): Remove.
6423
        (gfc_current_locus): Declare new global variable.
6424
        * scanner.c (gfc_current_locus, gfc_set_locus): Remove.
6425
        (gfc_current_locus1): Rename ...
6426
        (gfc_current_locus): ... to this.
6427
        (gfc_at_eof, gfc_at_bol, gfc_at_eol, gfc_advance_line, next_char,
6428
        skip_fixed_comments, skip_free_comments, gfc_next_char_literal,
6429
        gfc_peek_char, gfc_gobble_whitespace, gfc_new_file): Use
6430
        gfc_current_locus instead of gfc_current_locus1, gfc_set_locus()
6431
        and gfc_current_locus(), respectively.
6432
        * array.c (match_subscript, gfc_match_array_ref, match_array_list,
6433
        match_array_cons_element, gfc_match_array_constructor):
6434
        Read/modify gfc_current_locus instead of calling gfc_set_locus()
6435
        and gfc_current_locus().
6436
        * decl.c (gfc_match_null, variable_decl, gfc_match_kind_spec,
6437
        match_attr_spec, gfc_match_function_decl, gfc_match_end,
6438
        attr_decl1, gfc_match_save): Likewise.
6439
        * error.c (error_print, gfc_internal_error): Likewise.
6440
        * expr.c (gfc_int_expr, gfc_default_logical_kind): Likewise.
6441
        * interface.c (gfc_add_interface): Likewise.
6442
        * io.c (gfc_match_format, match_dt_format, match_dt_element,
6443
        match_io_iterator, match_io): Likewise.
6444
        * match.c (gfc_match_space, gfc_match_eos,
6445
        gfc_match_small_literal_int, gfc_match_st_label,
6446
        gfc_match_strings, gfc_match_name, gfc_match_iterator,
6447
        gfc_match_char, gfc_match, gfc_match_assignment,
6448
        gfc_match_pointer_assignment, gfc_match_if, gfc_match_do,
6449
        gfc_match_nullify, gfc_match_call, match_implicit_range,
6450
        gfc_match_implicit, gfc_match_data, match_case_selector,
6451
        gfc_match_case, match_forall_iterator): Likewise.
6452
        * matchexp.c (gfc_match_defined_op_name, next_operator,
6453
        match_level_1, match_mult_operand, match_ext_mult_operand,
6454
        match_add_operand, match_ext_add_operand, match_level_2,
6455
        match_level_3, match_level_4, match_and_operand, match_or_operand,
6456
        match_equiv_operand, match_level_5, gfc_match_expr): Likewise.
6457
        * module.c (gfc_match_use, mio_array_ref, mio_expr): Likewise.
6458
        * parse.c (match_word, decode_statement, next_free, next_fixed,
6459
        add_statement, verify_st_order, parse_if_block, gfc_parse_file):
6460
        Likewise.
6461
        * primary.c (match_digits, match_integer_constant,
6462
        match_boz_constant, match_real_constant, match_substring,
6463
        next_string_char, match_charkind_name, match_string_constant,
6464
        match_logical_constant, match_const_complex_part,
6465
        match_complex_constant, match_actual_arg, match_keyword_arg,
6466
        gfc_match_actual_arglist, gfc_match_structure_constructor,
6467
        gfc_match_rvalue, gfc_match_variable): Likewise.
6468
        * st.c (gfc_get_code): Likewise.
6469
        * symbol.c (check_conflict, check_used, check_done,
6470
        duplicate_attr, add_flavor, gfc_add_procedure, gfc_add_intent,
6471
        gfc_add_access, gfc_add_explicit_interface, gfc_add_type,
6472
        gfc_add_component, gfc_reference_st_label, gfc_new_symbol): Likewise.
6473
 
6474
2004-05-26  Roger Sayle  
6475
 
6476
        * io.c (format_asterisk): Silence compiler warnings by correcting
6477
        the number of elements of a "locus" initializer.
6478
 
6479
2004-05-25  Roger Sayle  
6480
 
6481
        PR fortran/13912
6482
        * matchexp.c: Allow unary operators after arithmetic operators
6483
        as a GNU extension.
6484
        (match_ext_mult_operand, match_ext_add_operand): New functions.
6485
        (match_mult_operand): Tweak to call match_ext_mult_operand.
6486
        (match_add_operand): Tweak to call match_ext_mult_operand.
6487
        (match_level_2): Rearrange to call match_ext_add_operand.
6488
 
6489
2004-05-25  Paul Brook  
6490
 
6491
        * expr.c (check_inquiry): Remove bogus tests.
6492
 
6493
2004-05-23  Paul Brook  
6494
 
6495
        PR fortran/13773
6496
        * expr.c (restricted_args): Remove redundant checks/argument.
6497
        (external_spec_function): Update to match.
6498
        (restricted_intrinsic): Rewrite.
6499
 
6500
2004-05-23  Paul Brook  
6501
        Victor Leikehman  
6502
 
6503
        * gfortran.h (struct gfc_symbol): Add equiv_built.
6504
        * trans-common.c: Change int to HOST_WIDE_INT.  Capitalize error
6505
        messages.
6506
        (current_length): Remove.
6507
        (add_segments): New function.
6508
        (build_equiv_decl): Create initialized common blocks.
6509
        (build_common_decl): Always add decl to bindings.
6510
        (create_common): Create initializers.
6511
        (find_segment_info): Reformat to match coding conventions.
6512
        (new_condition): Use add_segments.
6513
        (add_condition, find_equivalence, add_equivalences): Move iteration
6514
        inside functions.  Only process each segment once.
6515
        (new_segment, finish_equivalences, translate_common): Simplify.
6516
 
6517
2004-05-23  Steven G. Kargl  
6518
 
6519
        * check.c (gfc_check_random_seed): Issue for too many arguments.
6520
 
6521
2004-05-22  Steven G. Kargl  
6522
 
6523
        * intrinsic.c (add_subroutines): Use add_sym_3s for random_seed.
6524
 
6525
2004-05-22  Paul Brook  
6526
 
6527
        * dump-parse-tree.c (gfc_show_equiv): New function.
6528
        (gfc_show_namespace): Use it.
6529
 
6530
2004-05-22  Victor Leikehman  
6531
 
6532
        PR fortran/13249
6533
        * symbol.c (gfc_add_common): Disable checks to work around other more
6534
        fundamental inadequacies.
6535
 
6536
2004-05-22  Tobias Schlüter  
6537
 
6538
        * trans-decl.c (gfc_get_extern_function_decl): Set DECL_IS_PURE
6539
        only for functions.
6540
        (gfc_build_function_decl): Likewise.
6541
 
6542
2004-05-22  Steven G. Kargl  
6543
 
6544
        * check.c (gfc_check_system_clock): New function.
6545
        * intrinsic.c (add_sym_3s): New function.
6546
        (add_subroutines): Use it.
6547
        * intrinsic.h (gfc_check_system_clock, gfc_resolve_system_clock):
6548
        Add prototypes.
6549
        * iresolve.c (gfc_resolve_system_clock): New function.
6550
 
6551
2004-05-22  Steven G. Kargl  
6552
 
6553
        * invoke.texi: Document -Wunderflow and spell check.
6554
        * lang.opt: Add Wunderflow.
6555
        * gfortran.h (gfc_option_t): Add warn_underflow option.
6556
        * options.c (gfc_init_options, set_Wall): Use it.
6557
        * primary.c (match_real_constant): Explicitly handle UNDERFLOW.
6558
        * arith.c (gfc_arith_uminus, gfc_arith_plus, gfc_arith_minus,
6559
        gfc_arith_times, gfc_arith_divide, gfc_arith_power, gfc_real2real,
6560
        gfc_real2complex, gfc_complex2real, gfc_complex2complex): Ditto.
6561
        * arith.c (common_logarithm): Fix typo in comment.
6562
 
6563
2004-05-21  Roger Sayle  
6564
 
6565
        * io.c (check_format): As a GNU extension, allow the comma after a
6566
        string literal to be optional in a format.  Use gfc_notify_std to
6567
        issue an error/warning as appropriate.
6568
 
6569
2004-05-21  Roger Sayle  
6570
 
6571
        * io.c (check_format): Use gfc_notify_std to determine whether to
6572
        issue an error/warning for omitting the digits from the X format.
6573
 
6574
2004-05-20  Roger Sayle  
6575
 
6576
        * io.c (check_format): Allow the number before the X format to
6577
        be optional when not -pedantic.
6578
 
6579
2004-05-18  Feng Wang  
6580
        Paul Brook  
6581
 
6582
        * f95-lang.c (gfc_init_builtin_functions): Use vold_list_node.
6583
        Create decls for __builtin_pow{,f}.
6584
        * gfortran.h (PREFIX_LEN): Define.
6585
        * trans-decl.c (gfor_fndecl_math_powi): Add.
6586
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
6587
        (gfc_build_intrinsic_function_decls): Create decls for powi.
6588
        * trans-expr.c (powi_table): Add.
6589
        (gfc_conv_integer_power): Remove.
6590
        (gfc_conv_powi): New function.
6591
        (gfc_conv_cst_int_power): New function.
6592
        (gfc_conv_power_op): Use new powi routines.
6593
        * trans.h (struct gfc_powdecl_list): Add.
6594
        (gfor_fndecl_math_powi): Add.
6595
        (gfor_fndecl_math_powf, gfor_fndecl_math_pow): Remove.
6596
 
6597
2004-05-18  Tobias Schlueter  
6598
 
6599
        * trans.c, trans-decl.c: Fix comment typos.
6600
 
6601
2004-05-18  Tobias Schlueter  
6602
 
6603
        * trans-const.c (gfc_conv_mpf_to_tree): Fix typo.
6604
 
6605
2004-05-18  Steve Kargl  
6606
 
6607
        * arith.c (gfc_int2complex): Fix incorrect range checking.
6608
 
6609
2004-05-18  Paul Brook  
6610
 
6611
        PR fortran/13930
6612
        * decl.c (add_init_expr_to_sym): Remove incorrect check.
6613
        (default_initializer): Move to expr.c.
6614
        (variable_decl): Don't assign default initializer to variables.
6615
        * expr.c (gfc_default_initializer): Move to here.
6616
        * gfortran.h (gfc_default_initializer): Add prototype.
6617
        * resolve.c (resolve_symbol): Check for illegal initializers.
6618
        Assign default initializer.
6619
 
6620
2004-05-17  Steve Kargl  
6621
 
6622
        * arith.c (gfc_arith_power): Complex number raised to 0 power is 1.
6623
 
6624
2004-05-17  Steve Kargl  
6625
 
6626
        * arith.c (gfc_real2complex): Range checking wrong part of complex
6627
        number.
6628
 
6629
2004-05-16  Paul Brook  
6630
 
6631
        * options.c (gfc_handle_module_path_options): Fix buffer overrun.
6632
 
6633
2004-05-16  Paul Brook  
6634
 
6635
        * arith.c (gfc_range_check): Fix logic error.
6636
 
6637
2004-05-16  Steve Kargl  
6638
 
6639
        * arith.c: Fix comment typos.
6640
 
6641
2004-05-15  Tobias Schlueter  
6642
 
6643
        PR fortran/13742
6644
        * decl.c (add_init_expr_to_sym): Verify that COMMON variable is
6645
        not initialized in a disallowed fashion.
6646
        * match.c (gfc_match_common): Likewise.
6647
        (var_element): Verify that variable is not in the blank COMMON,
6648
        if it is in a common.
6649
 
6650
2004-05-15  Joseph S. Myers  
6651
 
6652
        * Make-lang.in (f95.generated-manpages): Remove.
6653
        (f95.srcextra): New.
6654
        (f95.info, fortran/gfortran.info, fortran/gfortran.dvi,
6655
        f95.maintainer-clean): Generate info and dvi files in objdir/doc.
6656
        (f95.dvi): Remove.
6657
        (dvi): New.
6658
        (f95.install-info): Remove.
6659
        (install-info): New.
6660
 
6661
2004-05-15  Victor Leikehman  
6662
 
6663
        * decl.c (add_init_expr_to_sym): Check for variable size arrays.
6664
 
6665
2004-05-15  Tobias Schlueter  
6666
 
6667
        * primary.c (match_boz_constant): Use gfc_notify_std() for
6668
        issuing a warning or an error.
6669
 
6670
2004-05-15  Tobias Schlueter  
6671
 
6672
        PR fortran/13826
6673
        * primary.c (match_structure_constructor): Rename ...
6674
        (gfc_match_structure_constructor): ... to this. Make non-static.
6675
        (gfc_match_rvalue): Call renamed function.
6676
        * match.h (gfc_match_structure_constructor): Declare.
6677
        * match.c (gfc_match_data_constant): Handle structure
6678
        constructor.
6679
 
6680
2004-05-15  Tobias Schlueter  
6681
 
6682
        PR fortran/13702
6683
        (Port from g95)
6684
        * gfortran.h (gfc_linebuf): New typedef.
6685
        (linebuf): Remove.
6686
        (gfc_file): Revamped, use new gfc_linebuf.
6687
        (locus): Revamped, use new types.
6688
        (gfc_current_file): Remove.
6689
        (gfc_current_form, gfc_source_file): New global variables.
6690
        * match.c (gfc_match_space, gfc_match_strings): Use
6691
        gfc_current_form to find source form.
6692
        * module.c (gfc_dump_module): Use gfc_source_file when printing
6693
        module header.
6694
        * error.c (show_locus, show_loci) Use new data structures to print
6695
        locus.
6696
        * scanner.c (first_file, first_duplicated_file, gfc_current_file):
6697
        Remove.
6698
        (file_head, current_file, gfc_current_form, line_head, line_tail,
6699
        gfc_current_locus1, gfc_source_file): New global variables.
6700
        (gfc_scanner_init1): Set new global variables.
6701
        (gfc_scanner_done1): Free new data structures.
6702
        (gfc_current_locus): Return pointer to gfc_current_locus1.
6703
        (gfc_set_locus): Set gfc_current_locus1.
6704
        (gfc_at_eof): Set new variables.
6705
        (gfc_at_bol, gfc_at_eol, gfc_advance_line, gfc_next_char): Adapt
6706
        to new locus structure.
6707
        (gfc_check_include): Remove.
6708
        (skip_free_comments, skip_fixed_comments): Use gfc_current_locus1.
6709
        (gfc_skip_comments): Use gfc_current_form, find locus with
6710
        gfc_current_locus1.
6711
        (gfc_next_char): Use gfc_current_form.
6712
        (gfc_peek_char, gfc_gobble_whitespace): Use gfc_current_locus1.
6713
        (load_line): Use gfc_current_form. Recognize ^Z as EOF. Fix
6714
        comment formatting.
6715
        (get_file): New function.
6716
        (preprocessor_line, include_line): New functions.
6717
        (load_file): Move down, rewrite to match new data structures.
6718
        (gfc_new_file): Rewrite to match new data structures.
6719
        * parse.c (next_statement): Remove code which is now useless. Use
6720
        gfc_source_form and gfc_source_file where appropriate.
6721
        * trans-decl.c (gfc_get_label_decl): adapt to new data structures
6722
        when determining locus of frontend code.
6723
        * trans-io.c (set_error_locus): Same.
6724
        * trans.c (gfc_get_backend_locus, gfc_set_backend_locus): Likewise.
6725
        * lang-specs.h (@f77-cpp-input, @f95-cpp-input): Remove '-P' from
6726
        preprocessor flags.
6727
        (all): Add missing initializers.
6728
 
6729
2004-05-15  Tobias Schlueter  
6730
 
6731
        * Make-lang.in (trans-common.o): Remove redundant dependency.
6732
        (data.c): Replace object file name ...
6733
        (data.o): ... by the correct one.
6734
 
6735
2004-05-14  Tobias Schlueter  
6736
 
6737
        * dump-parse-tree.c (gfc_show_array_ref): Print colon only
6738
        for ranges when dumping array references.
6739
 
6740
2004-05-14  Victor Leikehman  
6741
 
6742
        * decl.c (variable_decl): Always apply default initializer.
6743
 
6744
2004-05-08  Tobias Schlüter  
6745
 
6746
        PR fortran/15206
6747
        * trans-intrinsic.c (gfc_conv_intrinsic_rrspacing): Fixed to
6748
        handle zero correctly.
6749
 
6750
2004-05-14  Tobias Schlueter  
6751
 
6752
        * match.c (gfc_match): Eliminate dead code.
6753
 
6754
2004-05-14  Tobias Schlueter  
6755
 
6756
        * parse.c (gfc_statement_next_fixed): (Change from Andy's tree)
6757
        Detect bad continuation line in fixed form sources.
6758
 
6759
2004-05-14  Tobias Schlueter  
6760
 
6761
        PR fortran/15205
6762
        * iresolve.c (gfc_resolve_nearest): Add new function.
6763
        * intrinsic.h: ... declare it here.
6764
        * intrinsic.c (add_functions): ... add it as resolving function
6765
        for NEAREST.
6766
 
6767
2004-05-14  Tobias Schlueter  
6768
 
6769
        PR fortran/14066
6770
        * match.c (gfc_match_do): Allow infinite loops with
6771
        label-do-stmt. Do not enforce space after comma.
6772
 
6773
2004-05-14  Tobias Schlueter  
6774
 
6775
        PR fortran/15051
6776
        * parse.c (parse_interface): Allow empty INTERFACE, remove
6777
        seen_body.
6778
 
6779
2004-05-14  Tobias Schlueter  
6780
 
6781
        * Make-lang.in, arith.c, arith.h, array.c, bbt.c, check.c,
6782
        decl.c, dependency.c, dependency.h, dump-parse-tree.c, error.c,
6783
        expr.c, f95-lang.c, gfortran.h, interface.c, intrinsic.c,
6784
        intrinsic.h, io.c, iresolve.c, lang-specs.h, match.c, match.h,
6785
        matchexp.c, misc.c, module.c, options.c, parse.c, parse.h,
6786
        primary.c, resolve.c, scanner.c, simplify.c, st.c, symbol.c,
6787
        trans-array.c, trans-array.h, trans-common.c, trans-const.c,
6788
        trans-const.h, trans-decl.c, trans-expr.c, trans-intrinsic.c,
6789
        trans-io.c, trans-stmt.c, trans-stmt.h, trans-types.c,
6790
        trans-types.h, trans.c, trans.h: Update copyright years and
6791
        boilerplate.
6792
        * data.c: Likewise, also removed two whitespace-only lines.
6793
        * gfortranspec.c, lang.opt: Update copyright years.
6794
 
6795
2004-05-14  Tobias Schlueter  
6796
 
6797
        PR fortran/14568
6798
        * trans-decl.c (generate_local_decl): Don't warn for unused
6799
        variables which are in common blocks.
6800
 
6801
2004-05-13  Diego Novillo  
6802
 
6803
        * Make-lang.in, f95-lang.c, trans-array.c, trans-decl.c,
6804
        trans-expr.c, trans-intrinsic.c, trans-io.c, trans-stmt.c,
6805
        trans.c: Rename tree-simple.[ch] to tree-gimple.[ch].
6806
 
6807
2004-05-13  Victor Leikehman  
6808
 
6809
        PR fortran/15314
6810
        * trans-expr.c (gfc_conv_structure): Use field type, not expr type.
6811
 
6812
2004-05-13  Joseph S. Myers  
6813
 
6814
        * gfortran.texi: Use @table @emph instead of @itemize @emph.
6815
        Remove "set DEVELOPMENT".
6816
        (Compiling GFORTRAN): Remove.
6817
 
6818
2004-05-09  Tobias Schlüter  
6819
 
6820
        * array.c (match_subscript, match_array_ref): Add comments
6821
        explaining argument 'init'.
6822
        * decl.c, f95-lang.c, match.c, resolve.c, trans-array.c,
6823
        trans-expr.c, trans.c: Fix some typos in comments.
6824
        * dump-parse-tree.c (gfc_show_expr): Remove wrong comment.
6825
        * primary.c (match_digits, match_integer_constant): Add comment
6826
        explaining signflag.
6827
 
6828
2004-05-01  Tobias Schlüter  
6829
 
6830
        PR fortran/13940
6831
        * primary.c: Include system.h and flags.h, needed for pedantic.
6832
        (match_boz_constant): Allow "x" for hexadecimal constants, warn if
6833
        pedantic is set.
6834
 
6835
2004-05-01  Tobias Schlüter  
6836
 
6837
        PR fortran/13940
6838
        * match.c (match_data_constant): Handle case where
6839
        gfc_find_symbol sets sym to NULL
6840
 
6841
2004-04-28  Tobias Schlüter  
6842
 
6843
        * Make-lang.in (f95-lang.o, trans-intrinsic.o): Add missing
6844
        dependency on mathbuiltins.def
6845
 
6846
2004-04-24  Victor Leikehman  
6847
 
6848
        * trans-io.c (transfer_expr): Implemented recursive printing
6849
        of derived types.
6850
 
6851
2004-04-24  Andrew Pinski  
6852
 
6853
        * gfortranspec.c: Do not include multilib.h.
6854
 
6855
2004-04-24  Tobias Schlüter  
6856
 
6857
        * trans-intrinsic.c: Fix comment, this is not trans-expr.c. Add
6858
        2004 to copyright years.
6859
        * trans-expr.c, trans-decl.c: Comment update, we now generate
6860
        GENERIC, not SIMPLE. Add 2004 to copyright years.
6861
 
6862
2004-04-24  Paul Brook  
6863
 
6864
        * Make-lang.in (gfortranspec.o): Add dependency on $(TM_H).
6865
 
6866
2004-04-24  Feng Wang  
6867
 
6868
        PR 14817
6869
        * arith.c (gfc_arith_divide): Fix complex divide.
6870
 
6871
2004-04-23  Andrew Pinski  
6872
 
6873
        * gfortranspec.c: Include the target headers.
6874
 
6875
2004-04-18  Feng Wang  
6876
 
6877
        PR fortran/14921
6878
        PR fortran/14540
6879
        * arith.c (arctangent2): New function.
6880
        * arith.h (arctangent2): Add function prototype.
6881
        * simplify.c (gfc_simplify_atan2): Use it.
6882
        (gfc_simplify_log): Use it.
6883
 
6884
2004-04-12  Diego Novillo  
6885
 
6886
        * fortran/f95-lang.c (gfc_expand_stmt): Remove.
6887
        (LANG_HOOKS_RTL_EXPAND_STMT): Remove.
6888
 
6889
2004-04-11  Bud Davis  
6890
 
6891
        PR fortran/14872
6892
        * trans-io.c (build_dt): Change REC to value.
6893
 
6894
2004-04-11  Feng Wang  
6895
 
6896
        PR 14394
6897
        * trans-const.c (gfc_conv_mpf_to_tree): Loosen the maximum digits of
6898
        the real value when converting mpf to string.
6899
 
6900
2004-04-11  Feng Wang  
6901
 
6902
        PR 14395
6903
        * trans-intrinsic.c (gfc_conv_intrinsic_cmplx): Fix the imag part of
6904
        the result.
6905
 
6906
2004-04-11  Feng Wang  
6907
 
6908
        PR fortran/14377
6909
        * simplify.c (simplify_min_max): Convert the type of the result.
6910
 
6911
2004-04-11  Paul Brook  
6912
 
6913
        * gfortran.texi: Use full target triplet.
6914
 
6915
2004-04-11  Paul Brook  
6916
 
6917
        * Make-lang.in (GFORTRAN_TEXI): Set it.
6918
        (fortran/dfortran.dvi): Use it.  Add fortran to include paths.
6919
        (fortran/gfortran.info): Ditto.
6920
        * gfortran.texi: Major update.
6921
        * invoke.texi: New file.
6922
 
6923
2004-04-10  Paul Brook  
6924
 
6925
        * trans-array.c (gfc_trans_allocate_temp_array,
6926
        gfc_conv_tmp_array_ref): Don't use GFC_DECL_STRING.
6927
        * trans-decl.c (gfc_build_dummy_array_decl,
6928
        gfc_get_symbol_decl, gfc_build_function_decl,
6929
        gfc_create_module_variable): Ditto.
6930
        * trans-expr.c (gfc_conv_variable): Ditto.
6931
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Ditto.
6932
        * trans.h (GFC_DECL_STRING): Remove.
6933
        (GFC_DECL_PACKED_ARRAY, GFC_DECL_PARTIAL_PACKED_ARRAY,
6934
        GFC_DECL_ASSIGN): Renumber flags.
6935
 
6936
2004-04-05  Paul Brook  
6937
 
6938
        PR 13252
6939
        PR 14081
6940
        * f95-lang.c (gfc_init_builtin_functions): Add stack_alloc, stack_save
6941
        and stack_restore.
6942
        * gfortran.h (struct gfc_charlen): Add backend_decl.
6943
        * trans-array.c (gfc_trans_allocate_temp_array,
6944
        gfc_conv_temp_array_ref, gfc_conv_resolve_dependencies,
6945
        (gfc_conv_loop_setup, gfc_array_allocate, gfc_conv_array_init_size):
6946
        Remove old, broken string handling.
6947
        (gfc_trans_auto_array_allocation, gfc_trans_g77_array,
6948
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
6949
        gfc_trans_deferred_array): Handle character arrays.
6950
        * trans-const.c (gfc_conv_const_charlen): New function.
6951
        * trans-const.h (gfc_conv_const_charlen): Add prototype.
6952
        * trans-decl.c (gfc_finish_var_decl): Don't mark automatic variables
6953
        as static.
6954
        (gfc_build_dummy_array_decl): Handle arrays with unknown element size.
6955
        (gfc_create_string_length): New function.
6956
        (gfc_get_symbol_decl): Create lengths for character variables.
6957
        (gfc_get_fake_result_decl): Ditto.
6958
        (gfc_build_function_decl): Only set length for assumed length
6959
        character arguments.
6960
        (gfc_trans_dummy_character): New function.
6961
        (gfc_trans_auto_character_variable): Rewrite.
6962
        (gfc_trans_deferred_vars): Handle more types of character variable.
6963
        (gfc_create_module_variable): String lengths have moved.
6964
        (gfc_generate_function_code): Initialize deferred var chain earlier.
6965
        * trans-expr.c (gfc_conv_init_string_length): Rename ...
6966
        (gfc_trans_init_string_length):  ... to this.
6967
        (gfc_conv_component_ref, gfc_conv_variable, gfc_conv_concat_op,
6968
        gfc_conv_function_call): Update to new format for character variables.
6969
        (gfc_conv_string_length): Remove.
6970
        (gfc_conv_string_parameter): Update assertion.
6971
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Use new location.
6972
        * trans-io.c (set_string): Use new macro names.
6973
        * trans-stmt.c (gfc_trans_label_assign. gfc_trans_goto): Ditto.
6974
        * trans-types.c (gfc_get_character_type): Use existing length expr.
6975
        (gfc_is_nodesc_array): Make public.
6976
        (gfc_get_dtype_cst): Rename ...
6977
        (gfc_get_dtype): ... to this.  Handle unknown size arrays.
6978
        (gfc_get_nodesc_array_type): Use new name.
6979
        (gfc_sym_type): New character variable code.
6980
        (gfc_get_derived_type): Ditto.
6981
        (gfc_get_function_type): Evaluate character variable lengths.
6982
        * trans-types.h (gfc_strlen_kind): Define.
6983
        (gfc_is_nodesc_array): Add prototype.
6984
        * trans.h: Update prototypes.
6985
        (struct lang_type): Update comments.
6986
        (GFC_DECL_STRING_LEN): New name for GFC_DECL_STRING_LENGTH.
6987
        (GFC_KNOWN_SIZE_STRING_TYPE): Remove.
6988
 
6989
2004-04-04  Paul Brook  
6990
 
6991
        * gfortran.h (struct gfc_option_t): Remove flag_g77_calls.
6992
        * options.c (gfc_init.options, gfc_handle_option): Ditto.
6993
        * trans-expr.c (gfc_conv_function_call): Ditto.
6994
        * trans-types.c (gfc_is_nodesc_array): Ditto
6995
        * lang.opt (fg77-calls): Remove.
6996
 
6997
2004-04-04  Paul Brook  
6998
 
6999
        * trans-array.c (OFFSET_FIELD): Rename from BASE_FIELD.
7000
        (gfc_conv_descriptor_base): Rename ...
7001
        (gfc_conv_descriptor_offset): ... to this.
7002
        (gfc_trans_allocate_array_storage): Set offset to zero.
7003
        (gfc_conv_array_base): Rename ...
7004
        (gfc_conv_array_offset): ... to this.
7005
        (gfc_conv_array_index_ref): Add offset parameter.
7006
        (gfc_conv_array_ref): Include offset.
7007
        (gfc_trans_preloop_setup): Use existing offset.
7008
        (gfc_trans_allocate_temp_array,  gfc_array_allocate,
7009
        gfc_trans_auto_array_allocation, gfc_trans_g77_array,
7010
        gfc_trans_dummy_array_bias, gfc_conv_expr_descriptor,
7011
        gfc_conf_ss_descriptor): Set offset.
7012
        * trans-array.h: Rename prototypes.
7013
        * trans-const.h (gfc_index_zero_node): Define.
7014
        * trans-decl.c (gfc_build_qualified_array): Change base to offset.
7015
        * trans-types.c (gfc_get_array_type_bounds): Ditto.
7016
        (gfc_get_nodesc_array_type): Calculate offset before upper bound.
7017
 
7018
2004-03-25  Diego Novillo  
7019
 
7020
        * convert.c (convert): Don't handle WITH_RECORD_EXPR.
7021
 
7022
2004-03-24  Bud Davis  
7023
 
7024
        PR 14055
7025
        * arith.c (gfc_convert_integer,gfc_convert_real):  Removed leading '+'
7026
        before conversion by gmp library call.
7027
 
7028
2004-03-24  Bud Davis  
7029
 
7030
        PR 12921
7031
        * trans-io.c (gfc_trans_open): Change RECL= to a value parameter.
7032
 
7033
2004-02-24  Richard Henderson  
7034
 
7035
        * trans-array.c (gfc_trans_dummy_array_bias): Fix typo.
7036
 
7037
2004-02-19  Loren J. Rittle  
7038
 
7039
        * Make-lang.in ($(srcdir)/fortran/gfortran.info): Move...
7040
        (fortran/gfortran.info): ... to here.
7041
        (f95.srcinfo): New.
7042
 
7043
2004-02-16  Richard Henderson  
7044
 
7045
        * Make-lang.in (f95-lang.o, trans-decl.o): Depend on cgraph.h.
7046
        * f95-lang.c (LANG_HOOKS_EXPAND_DECL): Remove.
7047
        (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): New.
7048
        (gfc_expand_function): Rename from expand_function_body, make static,
7049
        don't do anything except invoke tree_rest_of_compilation.
7050
        (gfc_be_parse_file): Invoke cgraph.
7051
        (gfc_expand_decl): Remove.
7052
        (gfc_init_builtin_functions): Add __builtin_init_trampoline and
7053
        __builtin_adjust_trampoline.
7054
        * trans-decl.c (gfc_get_extern_function_decl): Don't set DECL_CONTEXT.
7055
        (gfc_finalize): New.
7056
        (gfc_generate_function_code): Use it.  Lower nested functions.
7057
        * trans-expr.c (gfc_conv_function_call): Add static chain operand
7058
        to call_expr.
7059
        * trans.c (gfc_build_function_call): Likewise.
7060
        * trans.h (expand_function_body): Remove.
7061
 
7062
2004-02-15  Victor Leikehman  
7063
 
7064
        PR gfortran/13433
7065
        * trans-decl.c (gfc_build_function_decl) For functions
7066
        returning CHARACTER pass an extra length argument,
7067
        following g77 calling conventions.
7068
        * trans-types.c (gfc_get_function_type) Ditto.
7069
        * trans-expr.c (gfc_conv_function_call) Ditto.
7070
 
7071
2004-02-14  Paul Brook  
7072
 
7073
        * f95-lang.c (gfc_init_builtin_functions): Build chain properly.
7074
 
7075
2004-02-12  Paul Brook  
7076
 
7077
        * BUGS: Remove.
7078
 
7079
2004-02-08  Steve Kargl  
7080
 
7081
        * gfortran.texi: Fix typos.
7082
 
7083
2004-02-07  Bud Davis  
7084
 
7085
        PR gfortran/13909
7086
        * intrinsic.c (add_conversions) Use logical conversion instead
7087
        of real.
7088
        * trans-types.c (gfc_get_logical_type) implemented logical*1
7089
        and logical*2.
7090
 
7091
2004-01-17  Paul Brook  
7092
 
7093
        * lang-specs.h: Remove %
7094
 
7095
2004-01-15  Toon Moene  
7096
 
7097
        * lang-specs.h: Enable preprocessing of source files
7098
        ending in .F, .fpp, .FPP, .F90 and .F95.
7099
 
7100
2004-01-13  Toon Moene  
7101
 
7102
        PR fortran/12912
7103
        * lang-specs.h: Enable compilation of files ending
7104
        in .f, .for and .FOR.
7105
 
7106
2004-01-11  Paul Brook  
7107
 
7108
        * trans-stmt.c (gfc_trans_if_1): New function.
7109
        (gfc_trans_if): Use it.
7110
 
7111
2004-01-11  Erik Schnetter  
7112
 
7113
        * gfortran.h (GFC_MAX_SYMBOL_LEN): Increase.
7114
        (gfc_option_t): Add max_identifier_length.
7115
        * lang.opt: Add fmax-identifier-length.
7116
        * match.c (parse_name): Use limit.
7117
        * options.c (gfc_init_options): Set max_identifier_length.
7118
        (gfc_handle_option): Ditto.
7119
 
7120
2004-01-11  Feng Wang  
7121
 
7122
        * intrinsic.c (add_functions): Add resolve function to dcmplx.
7123
        * intrinsic.h (gfc_resolve_dcmplx): Add prototype.
7124
        * iresolve.c (gfc_resolve_dcmplx): New function.
7125
 
7126
2004-01-10  Paul Brook  
7127
 
7128
        * trans-decl.c (gfc_get_symbol_decl): Don't set subroutine attr.
7129
        * trans-types.c (gfc_sym_type): Handle external dummy procedures.
7130
        (gfc_return_by_reference): Correct condition.
7131
        (gfc_get_function_type): Ditto.
7132
 
7133
2004-01-10  Paul Brook  
7134
 
7135
        * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Convert mismatched
7136
        types.
7137
 
7138
2004-01-10  Huang Chun  
7139
 
7140
        * iresolve.c: Use correct kind.
7141
 
7142
2004-01-10  Huang Chun  
7143
 
7144
        PR fortran/13467
7145
        * trans-decl.c (gfc_create_module_variable):  Output array valued
7146
        parameters.
7147
 
7148
2004-01-10  Paul Brook  
7149
 
7150
        * resolve.c (resolve_branch): Get error message right way round.
7151
 
7152
2004-01-10  Canqun Yang  
7153
 
7154
        * trans-array (gfc_conv_loop_setup): Adjust comment to track
7155
        reality.
7156
        (gfc_array_allocate): Don't count size of element twice.
7157
 
7158
2004-01-04  Paul Brook  
7159
 
7160
        * lang.opt (i8, r8, std=*): Remove RejectNegative.
7161
 
7162
2004-01-04  Paul Brook  
7163
 
7164
        * error.c (gfc_notify_std): New function.
7165
        * gfortran.h (gfc_notify_std): Declare.
7166
        (GFC_STD_*): Define.
7167
        (gfc_option_t): Add warn_std and allow_std.
7168
        * intrinsic.c (gfc_init_expr_extensions): Fix logic.
7169
        (gfc_intrinsic_func_interface): Use gfc_notify_std.
7170
        * check.c (check_rest): Use gfc_notify_std.
7171
        * match.c (gfc_match_pause): Ditto.
7172
        (gfc_match_assign): Ditto.
7173
        (gfc_match_goto): Ditto.
7174
        * resolve.c (resolve_branch): Ditto.
7175
        * lang.opt: Add std= and w.
7176
        * options.c (gfc_init_options): Set allow_std and warn_std.
7177
        (gfc_handle_option): Handle OPT_std_* and OPT_w.
7178
 
7179
2004-01-01  Paul Brook  
7180
 
7181
        * array.c (gfc_append_constructor): Take constructor, not expression.
7182
        * data.c (struct gfc_expr_stack): Remove.
7183
        (expr_stack): Remove.
7184
        (find_con_by_offset): Rename from find_expr_in_con.
7185
        (find_con_by_component): Rename from find_component_in_con.
7186
        (gfc_get_expr_stack): Remove.
7187
        (gfc_assign_data_value): Rewrite.
7188
        (gfc_expr_push): Remove.
7189
        (gfc_expr_pop): Remove.
7190
        (gfc_advance_section): Rename from
7191
        gfc_modify_index_and_calculate_offset.  Handle unbounded sections.
7192
        (gfc_get_section_index): Handle unbounded sections.
7193
        * gfortran.h: Update prototypes.
7194
        * resolve.c (check_data_variable): Array section maight not be the
7195
        last ref.
7196
 
7197
2004-01-01  Paul Brook  
7198
 
7199
        PR fortran/13432
7200
        * resolve.c (resolve_symbol): Allow assumed length function results.
7201
 
7202
2004-01-01  Steve Kargl  
7203
 
7204
        * match.c (gfc_match_pause): Fix spelling.
7205
 
7206
2004-01-01  Steven Bosscher  
7207
 
7208
        PR fortran/13251
7209
        * trans-expr.c (gfc_conv_variable): Take the type kind of a substring
7210
        reference from the expression.
7211
 
7212
2003-12-26  Feng Wang  
7213
 
7214
        * dump-parse-tree.c (gfc_show_code_node): Add ASSIGN and ASSIGNED GOTO
7215
        dumping.
7216
        * gfortran.h (gfc_statement): New ST_LABEL_ASSIGNMENT.
7217
        (gfc_exec_op): New EXEC_LABEL_ASSIGN.
7218
        (symbol_attribute):New variable attribute: assign.
7219
        * io.c (resolve_tag):Integer variable is allowed.
7220
        (match_dt_format): Add ASSIGN statement. Set assign flag.
7221
        * match.c (gfc_match_if): Change ST_NONE to ST_LABEL_ASSIGNMENT.
7222
        (gfc_match_assign): Add ASSIGN statement. Set assign flag.
7223
        (gfc_match_goto): Add ASSIGNED GOTO statement. Set assign flag.
7224
        * parse.c (decode_statement): Add ST_LABEL_ASSIGNMENT.
7225
        (next_statement): Add ST_LABEL_ASSIGNMENT.
7226
        (gfc_ascii_statement): Add ST_LABEL_ASSIGNMENT.
7227
        * resolve.c (resolve_code): Resolve ASSIGN and ASSIGNED GOTO statement.
7228
        (resolve_blocks): Resolve ASSIGNED GOTO statement label list.
7229
        * st.c (gfc_free_statement): Add EXEC_LABEL_ASSIGN.
7230
        * trans-decl.c (gfc_get_symbol_decl): Create the shadow variable for
7231
        assign.  Put them into the stuct lang_decl.
7232
        * trans-io.c (set_string): Add the assign statement.
7233
        * trans-stmt.c (gfc_trans_label_assign): New function.
7234
        (gfc_trans_goto): Translate ASSIGNED GOTO statement.
7235
        * trans-stmt.h (gfc_trans_label_assign): Added function prototype.
7236
        * trans.c (gfc_trans_code): Add EXEC_LABEL_ASSIGN.
7237
        * trans.h (lang_decl):Add shadow variable decl tree needed by assign.
7238
        (GFC_DECL_ASSIGN_ADDR(node)): New macro to access this.
7239
        (GFC_DECL_ASSIGN(node)): New macro to access flag.
7240
 
7241
2003-12-31  Huang Chun  
7242
 
7243
        PR fortran/13434
7244
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Fixed bug in
7245
        minval/maxval.
7246
 
7247
2003-12-22  Toon Moene  
7248
 
7249
        * options.c (gfc_init_options): Set flag_argument_noalias to 2, to indicate
7250
        that arguments to subroutines/functions can't alias themselves, nor global
7251
        memory.
7252
 
7253
2003-12-20  Steven Bosscher  
7254
 
7255
        * trans-expr.c (gfc_conv_expr_op): Fold the result expression.
7256
        * trans.c (gfc_add_modify_expr, gfc_add_expr_to_block): Likewise.
7257
 
7258
2003-12-12  Huang Chun  
7259
 
7260
        * primary.c (match_substring): Fix substring bug for start point
7261
        or end point is NULL.
7262
        * trans-expr.c (gfc_conv_substring): Ditto
7263
        * trans-types.c (gfc_sym_type): Get correct type of scalar
7264
        character variables.
7265
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle character in
7266
        derived type.
7267
 
7268
2003-12-10  Richard Henderson  
7269
 
7270
        * options.c (gfc_post_options): Don't ever use rtl inlining.
7271
 
7272
2003-12-05  Canqun Yang  
7273
 
7274
        * trans-common.c: Re-implement COMMON blocks and EQUIVALENCE lists.
7275
        * trans-equivalence.c: Remove.
7276
        * trans-decl.c (gfc_get_symbol_decl): Update to match.
7277
        (gfc_generate_function_code): Ditto.
7278
        * trans-array.c (gfc_conv_array_parameter): Ditto.
7279
        * Make-lang.in (F95_OBJS): Remove fortran/trans-equivalence.o
7280
        (F95_ADDITIONAL_OBJS): Add stor-layout.o
7281
        * trans.h (gfc_trans_equivalence): Remove.
7282
        * gfortran.h (struct gfc_equiv): Add used field.
7283
        (struct gfc_symbol): Remove addr_base, addr_offset, equiv_ring,
7284
        equiv_offset fields.
7285
 
7286
2003-12-05  Richard Henderson  
7287
 
7288
        * trans.c (gfc_build_addr_expr): New.
7289
        (gfc_build_indirect_ref, gfc_build_array_ref): New.
7290
        * trans.h: Declare them.
7291
        * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-io.c,
7292
        trans-stmt.c, trans.c (*): Use them.
7293
 
7294
        * f95-lang.c (gfc_post_options): Remove dead prototype.
7295
        * trans-array.c (gfc_trans_deferred_vars): Remove unused variable.
7296
        * trans-stmt.c (gfc_evaluate_where_mask): Fix temporary_list
7297
        allocation size.
7298
 
7299
2003-12-01  Feng Wang  
7300
 
7301
        * io.c (gfc_match_format): Check for missing format label.
7302
 
7303
2003-11-30 Huang Chun  
7304
 
7305
        PR fortran/13155
7306
        * trans-decl.c (gfc_sym_mangled_function_id): Don't mangle symbols
7307
        from interfaces in modules.
7308
 
7309
2003-11-30  Paul Brook  
7310
 
7311
        * trans-array.c (gfc_trans_g77_array): Make non-static.
7312
        (gfc_trans_assumed_size): Remove.
7313
        (gfc_trans_dummy_array_bias): Explicitly free temporary.
7314
        * trans-array.h (gfc_trans_g77_array): Add prototype.
7315
        (gfc_trans_assumed_size): Remove.
7316
        * trans-decls.c (gfor_fndecl_push_context): Remove.
7317
        (gfor_fndecl_pop_context): Remove.
7318
        (gfc_build_function)decls): Don't create them.
7319
        (gfc_trans_deferred_vars): Update to match. Remove dead code.
7320
        * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Free temp.
7321
 
7322
2003-11-30  Kejia Zhao  
7323
 
7324
        * trans-array.c (gfc_conv_array_parameter): Simplify
7325
        array argument passing for array name actual argument.
7326
        * trans-expr.c (gfc_conv_function_call): Ditto
7327
        * trans-types.c (gfc_is_nodesc_array):Ditto.
7328
 
7329
2003-11-30  Paul Brook  
7330
 
7331
        * f95-lang.c (gfc_post_options): Move ...
7332
        * options.c (gfc_post_options): .. to here.  Handle inlining options.
7333
        * gfortran.h (gfc_post_options): Add prototype.
7334
 
7335
2003-11-28  Richard Henderson  
7336
 
7337
        * trans.c (gfc_create_var_np): Use create_tmp_var_raw.
7338
 
7339
2003-11-28 Huang Chun  
7340
 
7341
        * trans.h (has_alternate_specifier): New global variable.
7342
        * match.c (gfc_match_call): Handle actual arguments associated with
7343
        alternate return indicators.
7344
        * trans-expr.c (gfc_conv_function_call): Ditto
7345
        * trans-stmt.c (gfc_trans_call): Ditto
7346
        (gfc_trans_return): Handle return statement with value.
7347
        * trans-decl.c (gfc_generate_function_code): Handle functions with
7348
        asterisk dummy.
7349
        (gfc_get_fake_result_decl): Ditto
7350
        * trans-types.c (gfc_get_function_type): Ditto
7351
        * resolve.c (resolve_actual_arglist): Check alternate return indicators.
7352
        (resolve_formal_arglist): Check asterisk dummy.
7353
 
7354
2003-11-27  Paul Brook  
7355
 
7356
        * trans-array.c (gfc_tran_allocate_array_storage): Use new memory
7357
        allocation interface.
7358
        (gfc_conv_ array_parameter): Ditto.
7359
        (gfc_trans_auto_array_allocation): Ditto. Also free the memory.
7360
        * trans-array.c: Update prototype.
7361
        * trans-decl.c (gfc_build_builtin_function_decls): Update prototypes.
7362
        (gfc_trans_auto_character_variable): Use new memory alloc interface.
7363
        * trans-expr.c (gfc_conv_string_tmp): Ditto.
7364
        (gfc_conv_function_call): Use gfc_conv_string_tmp.
7365
        * trans-stmt.c (gfc_do_allocate):  Use new memory alloc interface.
7366
        * trans-intrinsic.c (gfc_conv_intrinsic_trim): Ditto.
7367
        * trans.h (gfc_ss_info): Remove unused pdata field.
7368
        * trans.c (gfc_create_var_np): Change T to V.
7369
 
7370
2003-11-26  Richard Henderson  
7371
 
7372
        * mathbuiltins.def: Move acos, asin, cosh, log10, sinh, tanh from ...
7373
        * trans-intrinsic.c (gfc_intrinsic_map): ... here.  Add SCALE,
7374
        FRACTION, NEAREST, SET_EXPONENT.
7375
        (gfc_intrinsic_map_t): Add libm_name, complex_available, is_constant.
7376
        Fix GTY marking.  Remove unnecessary const's.
7377
        (LIBM_FUNCTION): Rename from I_LIB.
7378
        (LIBF_FUNCTION): New.
7379
        (gfc_get_intrinsic_lib_fndecl): Handle libm and libgfortran naming
7380
        conventions.  Assume the expr signature is correct.  Mark const.
7381
        (gfc_conv_intrinsic_exponent): Use library functions.
7382
        (gfc_conv_intrinsic_set_exponent): Remove.
7383
        (gfc_conv_intrinsic_scale): Remove.
7384
        (gfc_conv_intrinsic_nearest): Remove.
7385
        (gfc_conv_intrinsic_fraction): Remove.
7386
        (gfc_conv_intrinsic_function): Update.
7387
        * trans-decl.c (gfor_fndecl_math_exponent4): New.
7388
        (gfor_fndecl_math_exponent8): New.
7389
        (gfc_build_intrinsic_function_decls): Set them.
7390
        * trans.h: Declare them.
7391
 
7392
2003-11-25  Canqun Yang  
7393
 
7394
        * trans-common.c (gfc_layout_global_equiv): Locate the error for
7395
        underflow COMMON block.
7396
        (gfc_trans_one_common): Fix bug for size of COMMON block containing
7397
        EQUIVALENCE object. Also fix typo in an error message.
7398
 
7399
2003-11-25  Diego Novillo  
7400
 
7401
        * Make-lang.in: Add check-gfortran to lang_checks.
7402
        (check-f95): Alias for check-gfortran.
7403
 
7404
2003-11-25  Jason Merrill  
7405
 
7406
        * Make-lang.in (f95.tags): Create TAGS.sub files in each
7407
        directory and TAGS files that include them for each front end.
7408
 
7409
2003-11-24  Paul Brook  
7410
 
7411
        PR fortran/13154
7412
        * trans-decl.c (gfc_greate_module_variable): Skip COMMON blocks.
7413
 
7414
2003-11-24  Paul Brook  
7415
 
7416
        * expr.c (simplify_const_ref): Return SUCCESS for things we don't
7417
        handle.
7418
        * resolve.c (gfc_resolve_expr): Resolve contents before rank/shape.
7419
 
7420
2003-11-24  Paul Brook  
7421
 
7422
        PR fortran/13105
7423
        * array.c (gfc_array_ref_shape): Handle elemental dimensions.
7424
        * trans-array.c (gfc_trans_preloop_setup): Use correct dim lookup.
7425
 
7426
2003-11-20  Richard Henderson  
7427
 
7428
        * trans-array.c (gfc_trans_allocate_array_storage): Use convert.
7429
        (gfc_conv_array_base): Likewise.
7430
        * trans-decl.c (gfc_trans_auto_character_variable): Likewise.
7431
        * trans-expr.c (gfc_conv_string_tmp): Likewise.
7432
        * trans-intrinsic.c (gfc_conv_intrinsic_trim): Likewise.
7433
        * trans-stmt.c (gfc_trans_character_select): Likewise.
7434
 
7435
2003-11-13  Paul Brook  
7436
 
7437
        * trans-decl.c (gfc_sym_mangled_function_id): Dont mangle externals.
7438
 
7439
2003-11-13  Canqun Yang  
7440
 
7441
        * resolve.c (gfc_resolve): Also resolve EQUIVALENCE objects.
7442
        (resolve_equivalence): New function.
7443
        (resolve_equivalence_derived): New function.
7444
 
7445
2003-11-12  Richard Henderson  
7446
 
7447
        * trans.c (gfc_trans_code): Use annotate_with_locus instead of
7448
        annotate_all_with_locus.
7449
 
7450
2003-11-11  Canqun Yang  
7451
 
7452
        * options.c (gfc_init_options): Set flag_max_stack_var_size as 32768.
7453
        * trans-decl.c (gfc_finish_var_decl): Modified.
7454
 
7455
2003-11-08  Paul Brook  
7456
 
7457
        PR fortran/12704
7458
        * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Handle zero-size
7459
        arrays.
7460
 
7461
2003-11-06  Paul Brook  
7462
 
7463
        * trans-intrinsic.c (gfc_conv_intrinsics_minmaxloc): Initialize pos.
7464
 
7465
2003-11-02  Canqun Yang  
7466
 
7467
        * match.c (gfc_match_stopcode): Assign '0' to stop_code.
7468
 
7469
2003-10-27  Anthony Green  
7470
 
7471
        * Make-lang.in (f95.stageprofile): Use tabs, not spaces.
7472
        (f95.stagefeedback): Ditto.
7473
 
7474
2003-10-27  Andrew Pinski  
7475
 
7476
        PR fortran/12682
7477
        * Make-lang.in (f95.stageprofile): Add.
7478
        (f95.stagefeedback): Add.
7479
 
7480
2003-10-23  Richard Henderson  
7481
 
7482
        * f96-lang.c (gfc_gimplify_expr): Remove.
7483
        (LANG_HOOKS_GIMPLIFY_EXPR): Remove.
7484
        (LANG_HOOKS_GIMPLE_BEFORE_INLINING): New.
7485
 
7486
2003-10-23  Richard Henderson  
7487
 
7488
        * f95-lang.c (gfc_gimplify_expr): Return gimplify_status.
7489
 
7490
2003-10-20  Paul Brook  
7491
 
7492
        * trans-expr.c (gfc_conv_integer_power): Use boolean_type_node.
7493
        * trans-stmt.c (gfc_trans_do_while): Ditto.
7494
 
7495
2003-10-17  Paul Brook  
7496
 
7497
        * simplify.c (gfc_simplify_shape): Use gfc_array_dimen_size.
7498
 
7499
2003-10-17  Paul Brook  
7500
 
7501
        * trans-io.c (gfc_build_io_library_fndecls): Set TREE_PUBLIC.
7502
 
7503
2003-10-17  Feng Wang  
7504
 
7505
        * iresolve.c (gfc_resolve_maxloc): Change the result's kind and type.
7506
        (gfc_resolve_minloc): Ditto.
7507
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use correct types.
7508
        Return the value after subtracting the lower bound.
7509
 
7510
2003-10-16  Richard Henderson  
7511
 
7512
        * f95-lang.c (expand_function_body): Don't check flag_disable_gimple.
7513
 
7514
2003-10-16  Steven Bosscher  
7515
 
7516
        * lang.c: Remove -M option for now, it's in the way for C.
7517
 
7518
2003-10-14  Jason Merrill  
7519
 
7520
        * Make-lang.in (f95.tags): New rule.
7521
 
7522
2003-10-13  Richard Henderson  
7523
 
7524
        * trans.c (gfc_trans_code): Use annotate_all_with_locus.
7525
 
7526
2003-10-13  Paul Brook  
7527
 
7528
        * trans-decl.c (generate_local_decl): Don't create junk variables.
7529
 
7530
2003-10-13  Paul Brook  
7531
 
7532
        * resolve.c (resolve_formal_arglist): Use function result decl in
7533
        preference to function decl.
7534
 
7535
2003-10-12  Richard Henderson  
7536
 
7537
        * f95-lang.c (gfc_define_builtin): New const_p argument.  Set
7538
        TREE_READONLY.  Update all callers.
7539
 
7540
2003-10-12  Feng Wang  
7541
 
7542
        * iresolve.c (gfc_resolve_cshift): Change to match implementation.
7543
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Remove CSHIFT.
7544
        (gfc_is_intrinsic_libcall): Add CSHIFT.
7545
 
7546
2003-10-12  Richard Henderson  
7547
 
7548
        * trans-array.c (gfc_trans_static_array_pointer): Set TREE_INVARIANT.
7549
        (gfc_trans_array_constructor_value): Likewise.
7550
        (gfc_conv_array_initializer): Likewise.
7551
        * trans-stmt.c (gfc_trans_character_select): Likewise.
7552
 
7553
2003-11-12  Kejia Zhao  
7554
 
7555
        * trans-intrinsic.c (integer_kind_info, real_kind_info): Remove.
7556
 
7557
2003-10-11  Huang Chun  
7558
 
7559
        * check.c (gfc_check_repeat): Check arguments are scalar.
7560
        (gfc_check_trim): New function.
7561
        * intrinsic.h (gfc_check_trim): Add prototype.
7562
        * intrinsic.c (add_functions): Use it.
7563
        * trans.h (gfor_fndecl_string_trim, gfor_fndecl_string_repeat):
7564
        Decalare.
7565
        * trans-decl.c: Ditto.
7566
        (gfc_build_intrinsic_fucntion_decls): Set them.
7567
        * trans-intrinsic.c (gfc_conv_intrinsic_len): Handle result vars.
7568
        (gfc_conv_intrinsic_trim): New function.
7569
        (gfc_conv_intrinsic_repeat): New function.
7570
        (gfc_conv_intrinsic_function): Use them.
7571
 
7572
2003-10-11  Huang Chun  
7573
 
7574
        * trans-types.c (gfc_sym_type): Handle result variables.
7575
 
7576
2003-10-11  Huang Chun  
7577
 
7578
        * trans-intrinsic.c (gfc_conv_intrinsic_char): Don't use
7579
        gfc_get_character_type.
7580
 
7581
2003-10-11  Feng Wang  
7582
 
7583
        * trans-expr.c (gfc_conv_variable): Check sym->ts, not the decl.
7584
 
7585
2003-10-11  Paul Brook  
7586
 
7587
        * iresolve.c (gfc_resolve_dint, gfc_resolve_dnint): New functions.
7588
        (gfc_resolve_dprod): New function.
7589
        (gfc_resolve_aint, gfc_resolve_anint): Only base name on arg type.
7590
        * intrinsic.h (gfc_resolve_dint, gfc_resolve_dnint): Declare.
7591
        (gfc_resolve_dprod): Declare.
7592
        * intrinsic.c (add_functions): Use them.
7593
        * trans-decl.c (gfc_get_extern_function_decl): Only pass one arg.
7594
 
7595
2003-10-06  Richard Henderson  
7596
 
7597
        * f95-lang.c (gfc_init_builtin_functions): Add clzll.
7598
        * trans-intrinsic.c (call_builtin_clz): Use it.
7599
 
7600
2003-10-05  Paul Brook  
7601
 
7602
        * f95-lang.c (expand_function_body): Call (push|pop)_function_context.
7603
        * trans-decl.c (gfc_generate_function_code): Set
7604
        cfun->function_end_locus.
7605
 
7606
2003-09-24  Jason Merrill  
7607
 
7608
        * f95-lang.c, trans-decl.c: Use DECL_SOURCE_LOCATION instead of
7609
        TREE_LOCUS.
7610
 
7611
2003-09-21  Lifang Zeng  
7612
        Paul Brook  
7613
 
7614
        * Make-lang.in (F95_OBJS): Add fortran/data.o.
7615
        * array.c (gfc_inser_constructor): New function.
7616
        (gfc_get_constructor): New function.
7617
        (gfc_free_constructor): Initialize offset and repeat.
7618
        (iterator_stack): Remove.
7619
        (expand_info): Add offset, component and repeat fields.
7620
        (expand_constructor): Set them.
7621
        (expand): Set new fields.
7622
        (gfc_copy_constructor): Ditto. Avoid recursion.
7623
        * gfortran.h: Add prototypes for new functions.
7624
        (gfc_constructor): Add offset, component and repeat.
7625
        (iteratio_stack): Move to here.
7626
        * resolve.c (check_data_variable): Convert data values into variable
7627
        initializers.
7628
        (traverse_data_list): Build implicit loop chain.
7629
        (gfc_resolve): Ditto.
7630
        * trans-array.c (gfc_conv_array_intializer): Handle repeat count.
7631
        * trans-decl.c (gfc_get_symbol_decl): Use gfc_conv_structure.
7632
        * trans-expr.c (gfc_conv_structure): Handle array initializers.
7633
        (gfc_conv_expr): Update to match.
7634
        * trans.h (gfc_conv_structure): Declare.
7635
        * data.c: New file.
7636
 
7637
2003-09-20  Kejia Zhao  
7638
 
7639
        * trans.h: Add declarations for gfor_fndecl_si_kind and
7640
        gfor_fndecl_sr_kind.
7641
        * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
7642
        * trans-intrinsic.c (g95_conv_intrinsic_si_kind): New function.
7643
        (g95_conv_intrinsic_sr_kind): New function.
7644
        (g95_conv_intrinsic_function): Add SELECTED_INT_KIND and
7645
        SELECTED_REAL_KIND.
7646
 
7647
2003-09-17  Lars Segerlund  
7648
 
7649
        * iresolve.c (gfc_resolve_random_number): Generate _r4 & _r8
7650
        instead of _4 and _8 as postfix for libgfortran calls.
7651
 
7652
2003-09-16  Paul Brook  
7653
 
7654
        * array.c (compare_bounds): New function.
7655
        (gfc_compare_array_spec): Use it.
7656
 
7657
2003-09-14  Paul Brook  
7658
 
7659
        * primary.c (gfc_match_rvalue): Make sure sym->result is set.
7660
        * trans-expr.c (gfc_conv_string_parameter): Also allow PRAM_DECLs.
7661
 
7662
2003-09-14  Paul Brook  
7663
 
7664
        * check.c (dim_rank_check): Allow assumed bounds if requested.
7665
        (gfc_check_lbound): Call it.
7666
        (gfc_check_ubound): Ditto.
7667
        (gfc_check_size): Change to match.
7668
        * simplify.c (gfc_simplify_bound): New function.
7669
        (gfc_simplify_lbound): New function.
7670
        (gfc_simplify_ubound): New function.
7671
        * intrinsic.h: Declare them.
7672
        * intrinsic.c (add_functions): Use them.
7673
 
7674
2003-09-14  Paul Brook  
7675
 
7676
        * io.c (format_lex): Initialize negative_flag.
7677
        (check_format): Intialize repeat.
7678
        * trans-io.c (gfc_new_nml_name_expr): Declare static.
7679
        (gfc_new_var_expr): Ditto.
7680
 
7681
2003-09-14  Paul Brook  
7682
 
7683
        * trans-array.c (gfc_conv_array_initializer): Handle derived types.
7684
        * trans-decl.c (gfc_get_symbol_decl): Only do local scalar values.
7685
 
7686
2003-09-12  Paul Brook  
7687
 
7688
        * trans-intrinsic.c (gfc_conv_intrinsic_sign): Call fold.
7689
 
7690
2003-09-12  Zdenek Dvorak  
7691
 
7692
        * fortran/trans.c (gfc_finish_block): Call rationalize_compound_expr
7693
        for a correct expression.
7694
 
7695
2003-09-10  Kejia Zhao  
7696
 
7697
        * trans-intrinsic.c (real_compnt_info): New struct.
7698
        (prepare_arg_info): New function.
7699
        (gfc_conv_intrinsic_set_exponent): New function.
7700
        (gfc_conv_intrinsic_scale): New function.
7701
        (gfc_conv_intrinsic_nearest): New function.
7702
        (gfc_conv_intrinsic_fraction): New function.
7703
        (gfc_conv_intrinsic_exponent): New function.
7704
        (gfc_conv_intrinsic_spacing): New function.
7705
        (gfc_conv_intrinsic_rrspacing): New function.
7706
        (gfc_conv_intrinsic_function): Use them.
7707
 
7708
2003-08-24 XiaoQiang Zhang  (zhangapache@yahoo.com>
7709
 
7710
        * trans-const.c (gfc_conv_mpz_to_tree): Fix bug, parameter for
7711
        build_int_2 changed from (high, low) to (low, high).
7712
        * trans-io.c (ioparm_namelist_name, ioparm_namelist_name_len,
7713
        ioparm_namelist_read_mode, iocall_set_nml_val_int,
7714
        iocall_set_nml_val_float, iocall_set_nml_val_char,
7715
        iocall_set_nml_val_complex, iocall_set_nml_val_log): New declaration.
7716
        (gfc_build_io_library_fndecls): Add variable initialization.
7717
        (gfc_new_nml_name_expr, get_new_var_expr): New function.
7718
        (build_dt): Add namelist support.
7719
        * io.c (value): New variable.
7720
        (check_format): Support FMT_H now.
7721
 
7722
2003-09-07  Paul Brook  
7723
 
7724
        * io.c (gfc_resolve_dt): Error if format label is not defined.
7725
 
7726
2003-09-07  Kejia Zhao  
7727
 
7728
        * trans-intrinsic.c (gfc_conv_intrinsic_aint): Fix two bugs. One is
7729
        about case_switch's break. The other is about building the condition
7730
        statement tree, which judges the argument in the range of the
7731
        corresponding integer type.
7732
        * trans-intrinsic.c (gfc_conv_intrinsic_mod): MOD and MODULO can work
7733
        for the large values.
7734
 
7735
2003-09-05  Paul Brook  
7736
 
7737
        * f95-lang.c (expand_function_body): Gimplify the function.
7738
 
7739
2003-09-04  Jeff Law  
7740
 
7741
        * f95-lang.c (DEFINE_MATH_BUILTIN): C arrays start at
7742
        index zero!
7743
 
7744
2003-09-04  Paul Brook  
7745
 
7746
        * f95-lang.c (gfc_define_builtin): Also set implicit_built_in_decls.
7747
        (gfc_expand_stmt): New function.
7748
        (LANG_HOOKS_RTL_EXPAND_STMT): Define.
7749
        (expand_function_body): Use tree_rest_of_compilation.
7750
        * trans-decl.c (gfc_generate_function_code): Don't free cfun.
7751
 
7752
2003-09-03  Jeff Law  
7753
 
7754
        * f95-lang.c (gfc_init_builtin_functions): C arrays start at
7755
        index zero!
7756
 
7757
2003-08-30  Paul Brook  
7758
 
7759
        * f95-lang.c (builtin_function): Remove #if 0 code.
7760
        (gfc_define_builtin): New function.
7761
        (gfc_init_builtin_functions): Use mathbuiltins.def not ../builtins.def.
7762
        * mathbuiltins.def: New file.
7763
        * trans-intrinsic.c (gfc_intrinsic_map_t): Add builtin code fields.
7764
        (gfc_intrinsic_map): Use mathbuiltins.def.
7765
        (gfc_intrinsic_builtin_t): Remove.
7766
        (gfc_build_intrinsic_lib_fndecls): Update.
7767
        * trans-types.c (gfc_init_types): Remove redundant initilaization of
7768
        signed_size_type_node.
7769
 
7770
2003-08-29  Paul Brook  
7771
 
7772
        * arith.c (gfc_real_kinds): Use correct minimum exponents.
7773
 
7774
2003-08-22  Kejia Zhao  
7775
 
7776
        * trans-instinsic.c (gfc_conv_intrinsic_mod): Also do MODULO.
7777
        (gfc_conv_intrinsic_function): Add MODULO.
7778
 
7779
2003-08-22  Jason Merrill  
7780
 
7781
        * trans-array.c (gfc_conv_expr_descriptor): Update use of predicates.
7782
 
7783
2003-08-22  Andreas Jaeger  
7784
 
7785
        * Make-lang.in (f95.install-common): Add DESTDIR support.
7786
        * (f95.install-info): Likewise.
7787
        (f95.uninstall): Likewise.
7788
 
7789
2003-08-19  Diego Novillo  
7790
 
7791
        * trans-types.c (gfc_init_types): Initialize
7792
        signed_size_type_node with size_type_node.
7793
 
7794
2003-08-18  Paul Brook  
7795
 
7796
        * dependency.c (gfc_dependency): New enum.
7797
        (check_another_array_ref): Remove.
7798
        (gfc_get_array_from_component): Remove.
7799
        (get_x): Remove.
7800
        (get_range): Remove.
7801
        (get_no_of_elements): Use mpz_t, not mpf_t.
7802
        (transform_sections): New function.
7803
        (gfc_check_range_range): Rename ...
7804
        (gfc_check_section_vs_section): ... to this.  Use new function.
7805
        (gfc_is_inside_range): Rewrite to match.
7806
        (gfc_check_element_vs_section): Ditto.
7807
        (gfc_check_element_vs_element): Ditto.
7808
        (get_deps): Ditto.
7809
        (gfc_dep_resolver): Ditto.  Remove unused parameter.
7810
        * Dependency.h (gfc_check_range_range, gfc_check_element_vs_section,
7811
        gfc_check_element_vs_element, gfc_is_inside_range,
7812
        gfc_get_array_from_component): Remove prototypes for static functions.
7813
        (gfc_dep_resolver): Update prototype.
7814
        * trans-array.c (gfc_conv_resolve_dependencies): Change to match.
7815
 
7816
2003-08-15  Paul Brook  
7817
 
7818
        * trans-decl.c (gfc_build_qualified_array): Don't add symbols for
7819
        return values to parent scope.
7820
        (gfc_build_dummy_array_decl): Ditto.
7821
 
7822
2003-08-14  Paul Brook  
7823
 
7824
        * trans-stmt.c (gfc_trans_allocate): Handle NULL refs. Allocate the
7825
        size of the type, not the pointer.
7826
        * resolve.c (resolve_symbol): Give more accurate error message.
7827
 
7828
2003-08-10  Paul Brook  
7829
 
7830
        * trans-decl.c (gfc_build_function_decl): Only mangle global symbols.
7831
 
7832
2003-08-10  Paul Brook  
7833
 
7834
        * trans-stmt.c (gfc_trans_allocate): Correctly handle non-array derived
7835
        type components.
7836
 
7837
2003-08-10  Chun Huang  
7838
 
7839
        * resolve.c (resolve_formal_arglist): Resolve STATEMENT function.
7840
        (resolve_symbol): Ditto.
7841
        * trans-expr.c (gfc_conv_statement_function): New function.
7842
        (gfc_conv_function_expr): Use it.
7843
 
7844
2003-08-10  Paul Brook  
7845
 
7846
        * trans-array.c (gfc_conv_ss_startstride): Handle functions.
7847
        (walk_function_expr): Set section rank.
7848
        * trans-intrinsic.c (gfc_walk_intrinsic_libfunc): Ditto.
7849
 
7850
2003-08-10  Paul Brook  
7851
 
7852
        * intrinsic.c (add_sym): Prefix names with correct string.
7853
        (add_sym_0s): New function.
7854
        (add_subroutines): Register abort.
7855
 
7856
2003-08-10  Erik Schnetter  
7857
 
7858
        * gfortran.h: Introduce options to control the mangling.
7859
        * lang.opt: Likewise.
7860
        * options.c (gfc_init_options): Handle the options.
7861
        * trans-common.c (gfc_sym_mangled_common_id): New function.
7862
        (gfc_build_common_decl): Call it.
7863
        * trans-decl.c (gfc_sym_mangled_function_id): New function.
7864
        (gfc_get_extern_function_decl, gfc_build_function_decl): Call it.
7865
 
7866
2003-08-09  Paul Brook  
7867
 
7868
        * module.c (mio_symbol): Always ouput a namespace for formal args.
7869
        (load_needed): Namespace now belong to their proper symbol.
7870
        (gfc_dump_module): Change G95=>GFORTRAN.
7871
 
7872
2003-08-05  Paul Brook  
7873
 
7874
        * options.c: Force -fg77-calls.
7875
 
7876
2003-08-02  Paul Brook  
7877
 
7878
        * Makelang.in: Rename G95_* to GFORTRAN_*.
7879
        * All sources: Rename G95_* to GFC_*.
7880
 
7881
2003-08-01  Paul Brook  
7882
 
7883
        * fortran/Make-lang.in: Use GMPLIBS.
7884
        * fortran/config-lang.in: Set need_gmp.
7885
        * trans-expr.c (gfc_conv_variable): Remove incorrect assertion.
7886
 
7887
2003-07-27  Andreas Jaeger  
7888
 
7889
        * trans-decl.c (gfc_generate_constructors): Convert prototype to
7890
        ISO C90.
7891
        * trans-const.c (gfc_init_constants): Likewise.
7892
        * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Likewise.
7893
 
7894
        * gfortranspec.c: Convert to ISO C90.
7895
        (lang_specific_driver): Correct copyright, remove ALT_LIBM usage.
7896
 
7897
2003-07-26  Paul Brook  
7898
 
7899
        * lang.opt: Add -fdump-parse-tree.
7900
        * options.c (gfc_handle_option): Ditto.
7901
        * resolve.c (resolve_forall_iterators): Convert to proper type.
7902
        * trans-stmt.c (gfc_trans_forall_1): Create temp var with correct type.
7903
 
7904
2003-07-26  Paul Brook  
7905
 
7906
        * Makefile.in: Add build dependencies on files common with rest of gcc.
7907
 
7908
2003-07-26  Lifang Zeng  
7909
 
7910
        * trans.h: Declare g95_trans_pointer_assignment.
7911
        * trans-expr.c (g95_trans_pointer_assignment): New function.
7912
        (g95_trans_pointer_assign): Use it.
7913
        * trans-stmt.c (g95_trans_forall_1): Handle pointer assignment.
7914
        (g95_trans_pointer_assign_need_temp): New function.
7915
 
7916
2003-07-26  Paul Brook  
7917
 
7918
        * gfortran.texi: Replace references to g95.
7919
 
7920
2003-07-26  Paul Brook  
7921
 
7922
        Rename g95_* to gfc_*.
7923
 
7924
2003-07-25  Paul Brook  
7925
 
7926
        * gfortran.h: Rename from g95.h.
7927
        * trans-types.c (boolean_type_node, booelan_true_node,
7928
        boolean_false_node): Remove.
7929
        * trans-types.h: Ditto.
7930
 
7931
2003-07-25  Chun Huang  
7932
 
7933
        * parse.c (accept_statement): Implement BLOCK DATA statement.
7934
        * trans-expr.c (g95_conv_variable): Fix bug for dereference pointer
7935
        variables.
7936
 
7937
2003-07-24  Lifang Zeng  
7938
 
7939
        * trans-stmt.c (temporary_list): Define.
7940
        (g95_trans_assign_need_temp): New function.
7941
        (g95_trans_forall_1): Modified for WHERE.
7942
        (g95_trans_where_assign): Modified.
7943
        (g95_trans_where_2): Modified.
7944
        (g95_evaluate_where_mask): Modified.
7945
        (g95_trans_where): Modified.
7946
        (g95_get_temp_expr): Removed.
7947
        (g95_add_to_where_stmt_list): Removed.
7948
        (compute_overall_iter_number): Modified for WHERE.
7949
        * trans.h: Remove where_stmt_list.
7950
 
7951
2003-07-24  Arnaud Desitter  
7952
 
7953
        * lang.opt: Correct description of options -J and -M.
7954
 
7955
2003-07-23  Steven Bosscher   
7956
 
7957
        * lang.opt: Move help text to here.
7958
        * lang-options.h: Remove.
7959
 
7960
2003-07-23  Arnaud Desitter  
7961
        * iresolve.c (g95_resolve_transpose): Proper variable in switch.
7962
        * simplify.c (g95_simplify_nearest): Fix typo and use a correct test
7963
        on kind.
7964
 
7965
2003-07-22  Steven Bosscher  
7966
        Paul Brook  
7967
 
7968
        * check.c (check_rest): Use global pedantic flag.
7969
        * io.c (data_desc): Ditto.
7970
        * error.c (g95_warning, g95_warning_now): Use global flag.
7971
        * f95-lang.c (LANG_HOOKS_HANDLE_OPTION): Rename from DECODE.
7972
        (expand_function_body): Update to new prototypes.
7973
        (g95_init): Use new option names.
7974
        * g95.h (g95_option_t): Standardize names.
7975
        (g95_init_options, g95_handle_option): Update prototypes.
7976
        * interface.c: Use new option names.
7977
        * match.c: Ditto.
7978
        * module.c: Ditto.
7979
        * parse.c: Ditto.
7980
        * primary.c: Ditto.
7981
        * resolve.c: Ditto.
7982
        * scanner.c: Ditto.
7983
        * simplify.c: Ditto.
7984
        * symbol.c: Ditto.
7985
        * trans-array.c: Ditto.
7986
        * trans-expr.c: Ditto.
7987
        * trans-types.c: Ditto.
7988
        * trans-decl.c: Ditto.
7989
        (g95_build_library_function_decl): Remove obsolete VPARAMS.
7990
        * trans.h: Ditto.
7991
        * options.c (g95_display_help): Remove.
7992
        (g95_init_options): Convert to new scheme.
7993
        (set_Wall): Ditto
7994
        (g95module_option): Ditto, rename from g95_parse_arg.
7995
        (g95_handle_module_path_options): New function.
7996
        * trans-equivalence.c: Fix error message.
7997
        * lang.opt: Corrections.
7998
 
7999
2003-07-21  Steven Bosscher  
8000
 
8001
        * lang.opt: New file.
8002
 
8003
2003-07-21  Arnaud Desitter  
8004
 
8005
        * decl.c (match_attr_spec): Set colon_seen.
8006
 
8007
2003-07-14  Paul Brook  
8008
 
8009
        * trans-array.c: Update comment.
8010
        (g95_trans_array_constructor_subarray): Cleanup loopinfo data.
8011
        * trans-intrinsic.c (g95_conv_intrinsic_anyall,count,arith,
8012
        minmaxloc,minmaxval): Ditto.
8013
        * trans-io.c (g95_trans_transfer): Ditto.
8014
        * trans-stmt.c: Remove unneeded prototypes.
8015
        (generate_loop_for_lhs_to_rhs): Rename vars. Add loop post chain.
8016
        (generate_loop_for_rhs_to_temp): Rename vars. Don't share loopinfo.
8017
        (compute_inner_temp_size): Remove bits of dead code. Add comments.
8018
        Don't share loopinfo.
8019
        (compute_overall_iter_number): Declare as static.
8020
        (allocate_temp_for_forall_nest): Ditto.
8021
        (g95_trans_forall_1): Don't pass shared loopinfo.
8022
        * trans.c (g95_start_block): Expand comment.
8023
 
8024
2003-07-12  Paul Brook  
8025
 
8026
        * arith.c (g95_index_integer_kind): Remove unused initializer.
8027
        * trans-stmt.c (generate_loop_for_temp_to_lhs): Don't multiply array
8028
        index by size of element.
8029
        (generate_loop_for_rhs_to_temp): Ditto.
8030
        (allocate_temp_for_forall_nest): Use element size, not index size.
8031
 
8032
2003-07-11  Arnaud Desitter  
8033
 
8034
        * arith.c (g95_index_integer_kind): Add a TODO.
8035
        * simplify.c (g95_simplify_nearest): Add a TODO.
8036
 
8037
2003-07-09  Chun Huang  
8038
 
8039
        * trans.h: Add declarations for gfor_fndecl_string_scan and
8040
        gfor_fndecl_string_verify.
8041
        * trans-decl.c (g95_build_intrinsic_function_decls): Build them.
8042
        * trans-intrinsic.c (g95_conv_intrinsic_scan): New function.
8043
        (g95_conv_intrinsic_verify): New function.
8044
        (g95_conv_intrinsic_function): Add SCAN and VERIFY.
8045
        * simplify.c (g95_simplify_scan, g95_simplify_verify): Fix bug in case
8046
        of parameter 'BACK=.TRUE.'
8047
 
8048
2003-07-05  Lifang Zeng  
8049
 
8050
        * trans-stmt.c (iter_info, forall_info): Define.
8051
        (g95_trans_forall_block): Remove.
8052
        (g95_trans_forall_loop): Use forall info blocks.
8053
        (g95_trans_nested_forall_loop): New function.
8054
        (g95_do_allocate): Handle things other than logical masks.
8055
        (generate_loop_for_temp_to_lhs): New function.
8056
        (generate_loop_for_rsh_to_temp): New function.
8057
        (compute_inner_temp_size): New function.
8058
        (compute_overall_iter_number): New function.
8059
        (allocate_temp_for_forall_nest): New function.
8060
        (g95_trans_forall): Move body ...
8061
        (g95_trans_forall_1): ... to here.  Handle loops with temporaries.
8062
 
8063
2003-07-02  Paul Brook  
8064
 
8065
        * trans-decl.c (create_index_var, g95_build_qualified_array): Put vars
8066
        in correct scope.  Change callers to match.
8067
        * trans-types.c (g95_get_dtype_cst): Allow rank 7 arrays.
8068
        * iresolve.c (g95_resolve_reshape): Only use constant shapes.
8069
 
8070
2003-07-02  Paul Brook  
8071
 
8072
        * trans-array.c (g95_conv_loop_setup): Remove dead var.  Use
8073
        expression shape for all expressions.
8074
        * trans-decl.c (g95_symbol_init): Allow adding at very end of list.
8075
 
8076
2003-07-03  Arnaud Desitter  
8077
 
8078
        * g95.h (g95_option_t), lang-options.h, options.c (g95_init_options,
8079
        g95_parse_arg), intrinsic.c (g95_convert_type): support of
8080
        -Wconversion.
8081
        * intrinsic.c, g95.h: Add g95_convert_type_warn,
8082
        * resolve.c (g95_resolve_index): Call it.
8083
 
8084
2003-07-02  Paul Brook  
8085
 
8086
        * iresolve.c (g95_resolve_reshape): Set expression shape.
8087
        (g95_resolve_shape): Ditto.
8088
        * simplify.c (g95_simplify_shape): Move common code outside condition.
8089
        * trans-array.c (g95_conv_array_initializer): Teach it how to count.
8090
 
8091
2003-07-01  Arnaud Desitter  
8092
 
8093
        * array.c (g95_array_dimen_size): Deal with EXPR_ARRAY to improve
8094
        conformance checks.
8095
 
8096
2003-06-29  Paul Brook  
8097
 
8098
        * array.c (g95_simplify_iterator_var): Don't bother with return value.
8099
        * expr.c (find_array_element, find_component_ref): New functions.
8100
        (remove_subobject_ref): New function.
8101
        (simplify_const_ref): Use them.  Rename from simplify_component_ref.
8102
        (simplify_ref_chain): New function.
8103
        (g95_simplify_expr): Use it.  Simplify parameter variable subobjects.
8104
        (g95_specification_expr): Simplify the expression.
8105
        * resolve.c (resolve_operator): Check simplifications return code.
8106
        (g95_resolve_expr): Ditto.
8107
 
8108
2003-06-26  Paul Brook  
8109
 
8110
        * expr.c (simplify_component_ref): New function.
8111
        (g95_simplify_expr): Use it.
8112
        * resolve.c (resolve_structure_cons): Handle references.
8113
 
8114
2003-06-25  Paul Brook  
8115
 
8116
        * trans-io.c (build_dt): Handle internal units.
8117
 
8118
2003-06-25  Canqun Yang  
8119
 
8120
        * trans-common.c (g95_build_common_decl): Array index range starts at 0.
8121
        (g95_build_common_decl, g95_layout_global_equiv, g95_trans_one_common):
8122
        Use g95_array_index_type instead of integer_type_node.
8123
        (g95_build_common_decl, g95_set_common_master_type): Use
8124
        g95_character1_type_node instead of char_type_node.
8125
        * trans-equivalence.c (g95_layout_local_equiv): As above.
8126
 
8127
2003-06-24  Steven G. Kargl  
8128
 
8129
        * g95.h (g95_option_t), options.c (g95_init_options, g95_parse_arg):
8130
        remove last remains of -fquiet.
8131
 
8132
2003-06-22  Paul Brook  
8133
 
8134
        * resolve.c (resolve_operator): Don't fail if we can't simplify.
8135
        (g95_resolve_expr): Ditto.
8136
        (resolce_code): Mark as static.
8137
        * trans-stmt.c (g95_trans_chaaracter_select): Mark labels because the
8138
        gimplifer doesn't (yet).
8139
 
8140
2003-06-20  Paul Brook  
8141
 
8142
        * g95.h: Add ST_PAUSE and EXEC_PAUSE.
8143
        * match.c (g95_match_if): Add ST_PAUSE.
8144
        (g95_match_stopcode): New function.
8145
        (g95_match_pause, g95_match_stop): Use it.
8146
        * parse.c (g95_ascii_statement): Handle ST_PAUSE.
8147
        (decode_stmt, next_statement, parse_executable): Ditto.
8148
        * resolve.c (resolve_code): Ditto.
8149
        * st.c (g95_free_statement): Ditto.
8150
        * trans-stmt.c (g95_trans_pause): New function.
8151
        * trans-stmt.h: Declare it.
8152
        * trans.c (g95_trans_code): Use it.
8153
        * trans-decl.c (gfor_fndecl_pause_numeric, gfor_fndecl_pause_string):
8154
        Declare.
8155
        (g95_build_builtin_function_decls): Initialize them.
8156
        * trans.h: Ditto.
8157
        * dump-parse-tree.c (g95_show_code_node): Handle EXEC_PAUSE.
8158
 
8159
2003-06-18  Arnaud Desitter  
8160
 
8161
        * io.c (g95_match_open , g95_match_close, g95_match_inquire,
8162
        match_filepos): Fix error handling.
8163
 
8164
2003-06-18  Arnaud Desitter  
8165
 
8166
        * array.c (spec_dimen_size, ref_dimen_size, g95_array_dimen_size):
8167
        Add assertions on arguments.
8168
        * resolve.c (expression_shape): Remove useless &.
8169
        * simplify.c (get_kind, g95_simplify_bit_size, g95_simplify_digits,
8170
        g95_simplify_ibclr, g95_simplify_ibits, g95_simplify_ibset,
8171
        g95_simplify_ishft,g95_simplify_ishftc, g95_simplify_maxexponent,
8172
        g95_simplify_minexponent, g95_simplify_radix, g95_simplify_range
8173
        g95_simplify_rrspacing, g95_simplify_scale, g95_simplify_spacing,
8174
        g95_simplify_tan, g95_simplify_tiny): Clean predicates and assertions.
8175
        (g95_simplify_not, g95_simplify_scale): Add assertions.
8176
 
8177
2003-06-15  Paul Brook  
8178
 
8179
        Clean up stuff to work with the ssa optimizers.
8180
        * convert.c (convert): Handle BOOLEAN_TYPEs.
8181
        * f95-lang.c (g95_truthvalue_conversion): Implement.
8182
        * trans-array.c (g95_trans_array_constructor_value): Group multiple
8183
        scalar values.
8184
        * trans.h (g95_truthvalue_conversion): Declare.
8185
        * trans-intrinsic.c (g95_conv_intrinsic_anyall): Use bool constants.
8186
        * trans-stmt.c (g95_trans_character_select): Don't create array
8187
        assignments.  Mark labels as indirect jump targets.
8188
        * trans-types.h (g95_init_types): Use BOOLEAN_TYPE nodes.
8189
        (g95_get_dtype_cst): Handle LOGICAL types.
8190
 
8191
2003-06-14  Paul Brook  
8192
 
8193
        * f95-lang.c (g95_gimplify_expr): New function.
8194
        * trans-array.c (g95_trans_array_constructor_value): Don't create
8195
        array assignments.
8196
        (g95_conv_expr_descriptor): Rename simple->gimple.
8197
        * trans-expr.c (conv_expr_op): Use proper logical operators.
8198
        * trans-intrinsic.c (build_fixbound_expr): New function.
8199
        (build_fix_expr): Ditto.
8200
        (g95_conv_intinsic_aint): Use them. Use builtin functions.
8201
        (g95_conv_intrinsic_function): Add FLOOR and CEILING.
8202
 
8203
2003-06-10  Arnaud Desitter  
8204
 
8205
        * array.c (g95_compare_array_spec): Remove unreachable code.
8206
        * expr.c (g95_copy_expr): Likewise.
8207
        * intrinsic.c (g95_convert_type): Likewise.
8208
        * misc.c (g95_code2string): Likewise.
8209
        * simplify.c (g95_simplify_ishft, g95_simplify_real,
8210
        g95_simplify_reshape, g95_simplify_sign, g95_simplify_sqrt): Likewise.
8211
        * trans-stmt.c (g95_trans_select): Likewise.
8212
        * primary.c (extend_ref): Add an assertion.
8213
        * simplify.c (g95_convert_constant): Add const.
8214
        * intrinsic.h: Remove g95_check_x_ni.
8215
        * f95-lang.c (g95_finish): Call g95_release_include_path.
8216
 
8217
2003-06-10  Arnaud Desitter  
8218
 
8219
        * resolve.c (resolve_contained_functions): Fix typo introduced on
8220
        2003-01-13.
8221
 
8222
2003-06-09  Paul Brook  
8223
 
8224
        * g95.h: Include system.h not hwint.h.
8225
        * many: use safe-ctype.h not ctype.h.  Change isalpha -> ISALPHA, etc.
8226
        * misc.c (g95_getmem): Use xmalloc/memset instead of calloc.
8227
 
8228
2003-06-09  Paul Brook  
8229
 
8230
        * g95.h (g95_symbol): Add fields for COMMON and EQUIVALENCE variables.
8231
        * Make-lang.in (F95_OBJS): Add files for COMMON and EQUIVALENCE.
8232
        * trans-decl.c (g95_add_decl_to_functions): Make non-static.
8233
        (g95_get_symbol_decl): Handle COMMON and EQUIVALENCE objects.
8234
        (g95_generate_function_code): Translate COMMON and EQUIVALENCE
8235
        objects.
8236
        * trans.h (g95_trans_equivalence, g95_trans_common,
8237
        g95_add_decl_to_function): Declare.
8238
        * trans-common.c, trans-equivalence.c: New files.
8239
 
8240
2003-06-08  Steven Bosscher  
8241
 
8242
        * intrinsic.c (g95_intrinsic_extension): Remove.
8243
        (add_functions): Substitute g95_check_x for g95_check_x_ni
8244
        everywhere.
8245
        (g95_init_expr_extensions): New function.
8246
        (g95_intrinsic_func_interface): Use it.
8247
        * intrinsic.h: Remove extern decl for g95_intrinsic_extension.
8248
        * check.c (g95_check_digit, g95_check_huge, g95_check_kind,
8249
        g95_check_precision, g95_check_present, g95_check_radix,
8250
        g95_check_range, g95_check_selected_real_kind): Do not set
8251
        g95_intrinsic_extension.
8252
        (g95_check_x_ni): Remove now duplicate of g95_check_x.
8253
 
8254
        * expr.c (check_inquiry): Add FIXME, fixup some code style.
8255
 
8256
2003-06-06  Arnaud Desitter  
8257
 
8258
        * g95.h (ref_type): Name this type explicitly.
8259
        * module.c (MIO_NAME): Add specialisations of mio_name.
8260
        (mio_symbol_attribute, mio_typespec, mio_array_ref,
8261
        mio_array_spec, mio_ref, mio_expr, mio_symbol): Use them.
8262
        (ab_attribute): Name this type explicitly.
8263
        (mio_symbol_attribute, mio_expr): Add cast to call to find_enum.
8264
 
8265
2003-06-05  Kejia Zhao  
8266
 
8267
        * trans-intrinsic.c (g95_conv_allocated): New function.
8268
        (g95_conv_intrinsic_function): Make G95_ISYM_ALLOCATED work.
8269
 
8270
2003-06-05  Steven Bosscher  
8271
 
8272
        * f95-lang.c: Don't include g95-support.h
8273
        (g95_mark_addressable): Add prototype.
8274
        (g95_init_decl_processing): Remove C front end hack.
8275
        * f95-tree.c: Remove file.
8276
        * support.c: Remove file.
8277
        * g95-support.h: Remove file.
8278
        * trans-types.c (g95_init_types): Set up boolean
8279
        type related tree nodes.
8280
        * Make-lang.in: Remove rules for dead files and
8281
        dependencies on them.
8282
 
8283
2003-06-05  Steven Bosscher  
8284
 
8285
        * Make-lang.in (F95_ADDITIONAL_OBJS): Remove the final
8286
        C front end dependency.  Also, convert.c does not depend on
8287
        g95-support.h anymore.
8288
        * convert.c: Don't include c-common.h and g95-support.h
8289
        * f95-lang.c: Don't inlude c-common.h and c-common.def (3x).
8290
        (g95_stmt_tree, g95_scope_stmt_stack, anon_aggr_type_p,
8291
        stmts_are_full_exprs_p, current_stmt_tree,
8292
        current_scope_stmt_stack): Remove.
8293
        * g95-support.h (unsigned_conversion_warning): Kill proto.
8294
        (boolean_type_node, boolean_true_node, boolean_false_node):
8295
        Don't define here.  Instead, make then true tree nodes in
8296
        trans-types.
8297
        * support.c (c_global_trees): Die, C front end, die!!!
8298
        (g95_init_c_decl_hacks): Don't touch intmax_type_node,
8299
        uintmax_type_node, string_type_node and const_string_type_node.
8300
        (decl_constant_value, overflow_warning): Make static functions.
8301
        They are in death row too, though.
8302
        (default_conversion, c_expand_asm_operands): Remove.
8303
        * trans-array.c, trans-expr.c, trans-intrinsic.c, trans-stmt.c,
8304
        trans.c: Don't include c-common.h.
8305
        * trans-types.c (boolean_type_node, boolean_true_node,
8306
        boolean_false_node): Make them real tree nodes.
8307
        * trans-types.h (intmax_type_node, string_type_node,
8308
        const_string_type_node): Hack to work around C dependencies
8309
        in builtin-types.def.
8310
 
8311
2003-06-04  Arnaud Desitter  
8312
 
8313
        * decl.c (decl_types): Add some iterators-like sentinels.
8314
        * decl.c (match_attr_spec): Use them.
8315
        Use "decl_types" instead of "int".
8316
        Add cast in call to g95_match_strings.
8317
        * dump-parse-tree.c (g95_show_namespace):  Use "g95_intrinsic_op"
8318
        instead of "int".
8319
        * g95.h (g95_intrinsic_op): Add some iterators-like sentinels.
8320
        (g95_interface_info): Use "g95_intrinsic_op".
8321
        * dump-parse-tree.c (g95_show_namespace): Use them.
8322
        * interface.c (g95_check_interfaces): Use them.
8323
        * module.c (read_module, write_module): Use them.
8324
        * symbol.c (g95_get_namespace, g95_free_namespace): Use them.
8325
        Use "g95_intrinsic_op".
8326
        * interface.c (check_operator_interface): Use "g95_intrinsic_op".
8327
        Add a default case in switch statement.
8328
        * intrinsic.h (g95_generic_isym_id): Moved to...
8329
        * g95.h (g95_generic_isym_id): here.
8330
        (g95_intrinsic_sym): Use "g95_generic_isym_id".
8331
        * intrinsic.c (make_generic): Use "g95_generice_isym_id".
8332
        * trans-intrinsic.c (g95_intrinsic_map_t,
8333
         g95_conv_intrinsic_lib_funtion): Use "g95_generice_isym_id".
8334
        * match.c (g95_match_intrinsic_op): Add cast in call to
8335
        g95_match_strings.
8336
 
8337
2003-06-03  Steven Bosscher  
8338
 
8339
        * support.c (skip_evaluation, warn_conversion, lvalue_p,
8340
        lvalue_or_else, pedantic_lvalue_warning, warn_for_assignment,
8341
        constant_fits_type_p, convert_and_check,
8342
        unsigned_conversion_warning): Remove these ugly remnants
8343
        we inherited from the C front end.
8344
        (function_types_compatible): Remove '#if 0'-edcode.
8345
        (build_modify_expr): Likewise.
8346
        (convert_for_assignment): Don't use the deceased functions.
8347
        The parameter fundecl is now unused.
8348
        (decl_constant_value): Always just return decl.  In fact
8349
        this function is not used at present, but it might be in
8350
        the future, when we start using the tree inliner.
8351
        (overflow_warning, default_conversion, c_expand_asm_operands):
8352
        Abort when these are called, they are part of the C type
8353
        checking implementation and therefore poison to Fortran.
8354
 
8355
2003-06-04  Steven Bosscher  
8356
 
8357
        * Make-lang.in (F95_ADDITIONAL_OBJS): Don't depend on
8358
        c-pretty-print.o and c-dump.o.  Add a comment on why we
8359
        depend on c-semantics.c.
8360
        * f95-lang.c (LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN):
8361
        Don't use the C front end tree dumper hook to dump the
8362
        language specific tree representation -- we don't have
8363
        one.  So instead, inherit the default langhook.
8364
 
8365
2003-06-02  Paul Brook  
8366
 
8367
        * trans-expr.c (g95_conv_variable): Remove incorrent assertion.
8368
 
8369
2003-06-02  Arnaud Desitter  
8370
 
8371
        * check.c (g95_check_associated): Use proper types.  Remove
8372
        extraneous argument in call to g95_error().
8373
 
8374
2003-06-02  Kejia Zhao  
8375
 
8376
        * resolve.c (resolve_operator): Make logical operands convert to the
8377
        type with higher kind.
8378
 
8379
2003-06-02  Kejia Zhao  
8380
 
8381
        * check.c (g95_check_associated): Make sure both pointer and target has
8382
        the same type and rank. Null pointer or array section with vector
8383
        subscript as target are not allowed.
8384
        * trans.h: Declare gfor_fndecl_associated.
8385
        * trans-decl.c: (g95_build_builtin_function_decls): Initialize
8386
        gfor_fndecl_associated.
8387
        * trans-intrinsic.c (g95_conv_associated): New function.
8388
        (g95_conv_intrinsic_function): Make G95_ISYM_ASSOCIATED work.
8389
 
8390
2003-06-02  Kejia Zhao  
8391
 
8392
        * trans-array.c (g95_conv_expr_descriptor): Set the base of POINTER
8393
        according to POINTER itself rather than TARGET.
8394
        (g95_conv_expr_descriptor): Make lbound start at 1.
8395
        * trans-expr.c (g95_trans_pointer_assign): Fix a bug for Nullify.
8396
 
8397
2003-06-01  Paul Brook  
8398
 
8399
        * expr.c (g95_type_convert_binary): Make it match the standard.
8400
        * g95.texi: Remove dead link.
8401
 
8402
2003-06-01  Steven Bosscher  
8403
 
8404
        * g95.texi: Cleanup somewhat in preparation for inclusion
8405
        in GCC CVS.
8406
 
8407
2003-05-23  Arnaud Desitter  
8408
            Canqun Yang  
8409
 
8410
        * resolve.c (compare_bound_int, resolve_where_shape): Proper return
8411
        type.
8412
        (g95_find_forall_index): Return proper value.
8413
        (g95_resolve_assign_in_forall, g95_resolve_forall): Use proper type to
8414
        compare the return value from g95_find_forall_index.
8415
 
8416
2003-05-23  Arnaud Desitter  
8417
        * g95.h, io.c (g95_st_label): Remove "length".
8418
        (g95_symtree): Remove "link".
8419
        (g95_case): Remove "code".
8420
        * arith.c, arith.h (g95_compare_string, g95_convert_integer,
8421
        g95_convert_real): Make an argument pointer to const.
8422
        * decl.c (colon_seen): Add a TODO.
8423
        * interface.c (g95_compare_types): Fix typo.
8424
        * interface.c (compare_interfaces): Preserve value of "p".
8425
        * intrinsic.c (sort_actual): Remove "i".
8426
        * match.c (g95_match_assign): Proper type in call to g95_match().
8427
        * parse.c (next_free): Avoid duplicate call due to macro.
8428
        * parse.c (check_statement_label): wrong type in call to g95_error.
8429
        * primary.c (match_real_constant): Add a TODO.
8430
        * resolve.c (resolve_select):  Remove useless conditional.
8431
        * simplify.c (g95_simplify_repeat): Proper assignment to
8432
        "value.character.string".
8433
        * simplify.c (g95_simplify_reshape): Wrong variable in call to
8434
        g95_error.
8435
 
8436
2003-05-20  Canqun Yang  
8437
 
8438
        * trans-stmt.c: Remove unnecessary include file defaults.h.
8439
 
8440
2003-05-19  Lifang Zeng  
8441
 
8442
        * trans-stmt.c (g95_trans_forall_loop): Handle FORALL with negative
8443
        stride.
8444
        (g95_trans_forall): Allow arbitrary number of FORALL indexes and
8445
        actual variables used as FORALL indexes.
8446
 
8447
2003-05-15  Paul Brook  
8448
 
8449
        * trans-array.c (g95_trans_static_array_pointer): Use
8450
        null_pointer_node.
8451
        (g95_trans_deferred_array): Initialize static array pointers.
8452
        * trans-expr.c (g95_conv_function_call): Use formal arglist to
8453
        correctly pass POINTER and absent CHARACTER arguments.
8454
 
8455
2003-05-14  Lifang Zeng  
8456
 
8457
        * resolve.c (g95_resolve_forall): Resolve FORALL construct/statement.
8458
        (g95_resolve_forall_body): Resolve FORALL body.
8459
        (g95_resolve_where_code_in_forall): Resolve WHERE inside FORALL.
8460
        (g95_resolve_assign_in_forall): Resolve assignment inside FORALL.
8461
        (g95_find_forall_index): Check whether the FORALL index appears in
8462
        the expression or not.
8463
        (resolve_code): Modified.
8464
 
8465
2003-05-14  Paul Brook  
8466
 
8467
        * iresolve.c (g95_resolve_spread): Convert ncopies to index_type.
8468
 
8469
2003-05-13  Paul Brook  
8470
 
8471
        * trans-types.c (g95_max_array_element_size): Now a tree node.
8472
        (g95_init_types): Work out max size properly.
8473
        (g95_get_dtype_cst): Modify to match.
8474
 
8475
2003-05-11  Paul Brook  
8476
 
8477
        * trans-io.c (add_case): Create a label decl for case labels.
8478
 
8479
2003-05-11  Paul Brook  
8480
 
8481
        * arith.c (g95_integer_index_kind): New variable.
8482
        * f95-lang.c (g95_init): Move frontend initialization here ...
8483
        (g95_post_options): ... from here.
8484
        * g95.h (g95_index_integer_kind, g95_resolve_index): Declare.
8485
        * intrinsic.c (add_functions): Use index kinds.
8486
        * iresolve.c: Convert to index_kind where needed.
8487
        * resolve.c (g95_resolve_index): Make public, use index_kind.
8488
        (resolve_array_ref): Adjust to match.
8489
        * trans-array.c: Rename g95_array_index_kind to g95_index_integer_kind.
8490
        * trans-stmt.c: Ditto.
8491
        * trans-types.c: Ditto.
8492
        * trans-types.h (g95_array_index_kind): Remove declaration.
8493
        * trans-expr.c (g95_conv_expr_present): Use null_pointer_node.
8494
 
8495
2003-05-07  Paul Brook  
8496
 
8497
        * trans-const.c (g95_conv_mpz_to_tree): Typecast constant.
8498
        * trans-intrinsic.c (g95_conv_intrinsic_bound): Convert type
8499
        of bound indices.
8500
 
8501
2003-05-07  Paul Brook  
8502
 
8503
        * trans-array.c (trans_static_array_pointer,
8504
        g95_trans_array_constructor_value, g95_conv_array_initializer,
8505
        g95_conv_structure): CONSTRUCTOR nodes only have one operand.
8506
        (g95_add_loop_ss_code): Convert subscripts to the correct type.
8507
        * trans-stmt.c (g95_trans_character_select): Ditto.
8508
        * trans-types.c (g95_init_types): Ditto.
8509
 
8510
2003-05-07  Steven Bosscher  
8511
 
8512
        * f95-lang.c (expand_function_body): Use input_line, not lineno.
8513
        * trans-decl.c (g95_generate_function_code,
8514
        g95_generate_constructors): Likewise.
8515
        * trans.c (g95_trans_runtime_check, g95_add_block_to_block,
8516
        g95_get_backend_locus, g95_set_backend_locus, g95_trans_code):
8517
        Likewise.
8518
 
8519
2003-05-07  Kejia Zhao  
8520
        * trans-types.c (g95_get_derived_type): Fix bug for DERIVED type
8521
        with components point to the DERIVED type itself, and two DERIVED
8522
        type with components point to each other.
8523
        * trans-expr.c (g95_conv_componet_ref): Modified
8524
 
8525
2003-05-07  Kejia Zhao  
8526
        * trans-expr.c (g95_conv_expr): Translate EXPR_NULL into
8527
        null_pointer_node.
8528
        (g95_trans_pointer_assign): Implement Nullify.
8529
 
8530
2003-05-01  Paul Brook  
8531
 
8532
        * trans-array.c (g95_walk_function_expr): Cope with NULL esym.
8533
        * trans-decl.c (g95_get_symbol_decl): Don't mangle dummy functions.
8534
 
8535
2003-05-01  Paul Brook  
8536
 
8537
        * trans-array.c, trans.c, trans-expr.c, trans-intrinsic.c,
8538
        trans-stmt.c: Replace empty_stmt_node with build_empty_stmt () and
8539
        IS_EMPTY_STMT.
8540
 
8541
2003-05-01  Canqun Yang  
8542
 
8543
        * trans-stmt.c (g95_trans_integer_select): Add a parameter to build
8544
        CASE_LABEL_EXPR.
8545
 
8546
2003-04-28  Paul Brook  
8547
 
8548
        * iresolve.c (g95_resolve_transpose): COMPLEX types are twice as big
8549
        as their kind suggests.
8550
        (g95_resolve_reshape): Ditto.
8551
 
8552
2003-04-28  Chun Huang  
8553
 
8554
        * trans-expr.c (g95_conv_substring_expr): New function.
8555
        (g95_conv_expr): Use it.
8556
 
8557
2003-04-28  Paul Brook  
8558
 
8559
        * iresolve.c (g95_resolve_transpose): Make it match the
8560
        implementation.
8561
        * trans-intrinsic.c (g95_is_intrinsic_libcall): Add TRANSPOSE.
8562
 
8563
2003-04-18  Steven Bosscher  
8564
 
8565
        * trans-types.c (g95_add_field_to_struct): New function to
8566
        add a field to a UNION_TYPE or RECORD_TYPE.
8567
        * trans-types.h (g95_add_field_to_struct): Prototype.
8568
        (g95_get_derived_type): Use g95_add_field_to_struct to add
8569
        components.
8570
        * trans-io.c (g95_add_field): Remove.
8571
        (ADD_FIELD): Use new g95_add_field_to_struct function.
8572
        (ADD_STRING): Likewise.
8573
        * trans-stmt.c (g95_trans_select): Likewise.
8574
        (g95_add_field): Remove duplicated function.
8575
 
8576
2003-04-18  Canqun Yang  
8577
 
8578
        Port implementation for CHARACTER SELECT from Andy's tree.
8579
        * trans-stmt.c (g95_trans_character_select): Implement character
8580
        select. (g95_add_field): New function.
8581
        * trans-decl.c: Declare 'gfor_gndecl_select_string'.
8582
        (g95_build_builtin_function_decls): Add 'gfor_fndecl_select_string'.
8583
        * g95.h (struct g95_case): Add field 'int n'.
8584
        * trans.h: Declare 'gfor_fndecl_select_string'.
8585
 
8586
2003-04-18  Steven Bosscher  
8587
 
8588
        * bbt.c (duplicate_key, g95_insert_bbt_with_overlap): Remove.
8589
        (g95_insert_bbd): Die on duplicates.
8590
        * g95.h (g95_insert_bbt_with_overlap): Delete prototype.
8591
 
8592
2003-04-14  Steven Bosscher  
8593
 
8594
        * g95.texi: Require GMP 4.0 -- like we actually
8595
        do.  Explain the testsuite and what-goes-where.
8596
        Don't use undefined texinfo symbol.  Break very
8597
        long line.  Remove finished item from the list
8598
        of open projects.
8599
 
8600
2003-04-11  Canqun Yang  
8601
 
8602
        * trans-stmt.c (g95_evaluate_where_mask): Give mask temporaries
8603
        LOGICAL type.
8604
 
8605
2003-04-10  Canqun Yang  
8606
 
8607
        * trans-stmt.c (g95_trans_forall): Implement WHERE inside FORALL.
8608
        (g95_trans_forall_body): New function.
8609
 
8610
2003-04-10  Canqun Yang  
8611
 
8612
        * resolve.c (resove_where): New function.
8613
        (resolve_where_shape): New function.
8614
        (resolve_code): Add call to 'resolve_where'
8615
        * trans-stmt.c (g95_trans_where): Modified.
8616
        (g95_trans_where_2): New function.
8617
        (g95_trans_where_assign): New function.
8618
        (g95_evaluate_where_mask): New function.
8619
        (g95_add_to_stmt_list): New function.
8620
        (g95_get_temp_expr): New function.
8621
        * trans.h (where_stmt_list): New structure.
8622
 
8623
2003-04-10  Paul Brook  
8624
 
8625
        * g95spec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
8626
        (DEFAULT_WORD_SWITCH_TAKES_ARG): Ditto.
8627
 
8628
2003-04-10  Steven Bosscher  
8629
 
8630
        Update after mainline -> tree-ssa-branch merge.
8631
        * f95-lang.c (g95_mark_addressable): Update put_var_into_stack
8632
        call.
8633
        (g95_init): Update for new lang_hooks definition.
8634
        (g95_post_options): New langhook.
8635
        (LANG_HOOK_POST_OPTIONS): Clear, then define to g95_post_options.
8636
        * scanner.c (g95_new_file): Comment update.
8637
 
8638
2003-04-09  Arnaud Desitter  
8639
 
8640
        * g95.h, lang-options.h: Add -Wimplicit-interface.
8641
        * options.c (g95_init_options, g95_parse_arg): Set it.
8642
        * interface.c (check_intents): Warn about call with implicit
8643
        interface.
8644
        * resolve.c (resolve_unknown_f, resolve_unknown_s): Call
8645
        g95_procedure_use.
8646
 
8647
2003-04-05  Paul Brook  
8648
 
8649
        * iresolve.c (g95_resolve_spread): Don't resole based on type.
8650
        * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_SPREAD.
8651
 
8652
2003-03-29  Paul Brook  
8653
 
8654
        * iresolve.c (g95_resolve_pack): Don't bother resolving based on type.
8655
        (g95_resolve_unpack): Ditto.
8656
        * trans-intrinsic.c (g95_conv_intrinsic_merge): New Function.
8657
        (g95_conv_intrinsic_function): Use it.  Remove PACK and UNPACK.
8658
        (g95_is_intrinsic_libcall): Add PACK and UNPACK.
8659
 
8660
2003-03-25  Paul Brook  
8661
 
8662
        * arith.c (g95_unary_user, g95_user): Remove dead functions.
8663
        * arith.h: Ditto.
8664
        * array.c (g95_free_array_ref): Ditto.
8665
        * g95.h: Ditto.
8666
        * symbol.c (g95_use_derived_tree): Ditto.
8667
        * intrinsic.c (add_functions): Use simplification for SCALE.
8668
        * primary.c (g95_match_rvalue): Test sym, not symtree.
8669
 
8670
2003-03-25  Paul Brook  
8671
 
8672
        * trans-decl.c (build_function_decl): Add parameter before it gets
8673
        turned into a constant.
8674
        * iresolve.c (g95_resolve_eoshift): Resolve to a useful name.
8675
        * trans-intrinsic.c (g95_is_intrinsic_libcall): Add G95_ISYM_EOSHIFT.
8676
        * trans-decl.c (g95_create_module_variable): Don't pushdecl constants.
8677
 
8678
2003-03-22  Paul Brook  
8679
 
8680
        * trans-array.c (g95_conv_array_initializer): Allow scalar
8681
        expressions.
8682
        * trans-decl.c (g95_finish_var_decl): Result variables are not
8683
        module variables.
8684
        * trans-intrinsic.c (g95_conv_intrinsic_transfer): New function.
8685
        (g95_conv_intrinsic_function): Use it.
8686
        * trans-types.h (g95_type_spec): Remove dead declaration.
8687
 
8688
2003-03-21  Paul Brook  
8689
 
8690
        * trans-decl.c (g95_build_function_decl): Mark string parameters.
8691
 
8692
2003-03-20  Paul Brook  
8693
 
8694
        * trans-decl.c (g95_build_function_decl): Put character length
8695
        parameters at the end of the function declaration.
8696
        * trans-expr.c (g95_conv_function_call): Ditto.
8697
        * trans-types.c (g95_get_function_type): Ditto.
8698
 
8699
2003-03-20  Arnaud Desitter  
8700
 
8701
        * resolve.c (resolve_formal_arglist): Don't impose intent for
8702
        procedure arguments of pure functions.
8703
        (resolve_select): Remove redundant assignment.
8704
 
8705
2003-03-19  Arnaud Desitter  
8706
 
8707
        * arith.c (validate_logical), g95.h, options.c (g95_init_options):
8708
        Remove option l1.
8709
        * g95.h, intrinsic.c(g95_get_intrinsic_sub_symbol): Add const.
8710
        * iresolve.c(g95_resolve_cpu_time, g95_resolve_random_number): Add
8711
        const.
8712
        * lang-options.h: Remove -finline-repack-arrays. Add -fg77-calls.
8713
        Order list.
8714
        * symbol.c (g95_add_type): Fix typo in comment.
8715
 
8716
 
8717
2003-03-16  Paul Brook  
8718
 
8719
        * dump-parse-tree.c (g95_show_code_node): Print resolved sym name.
8720
        * expr.c (g95_build_call): Remove.
8721
        * f95-lang.c (puchdecl_top_level): New function.
8722
        * g95.h (g95_code): Store resolved symbol, not just the name.
8723
        * intrinsic.c (g95_intrinsic_namespace): New global namespace.
8724
        (g95_intirinsic_init_1, g95_intrinsic_done_1): Use it.
8725
        (g95_get_intrinsic_sub_symbol): New function.
8726
        * iresolve.c (g95_resolve_cpu_time): Use it.
8727
        (g95_resolve_random_number): Ditto.
8728
        * resolve.c: Set code->resolved_sym instead of code->sub_name.
8729
        * trans-decl.c (g95_get_extern_function_decl): Give external decls
8730
        the correct DECL_CONTEXT.  Add global symbold to the global scope.
8731
        * trans-stmt.c (g95_trans_code): Remove hacks now the fronted is
8732
        fixed.
8733
 
8734
2003-03-16  Paul Brook  
8735
 
8736
        * g95.h (g95_option_t): Add g77_calls. Remove inline_repack_arrays.
8737
        * options.c (g95_parse_arg): Ditto.
8738
        * module.c (mio_symbol_attribute): Handle the always_explicit bit.
8739
        * resolve.c (resolve_formal_arglist): The always_explicit sould be set
8740
        for the procedure, not the parameter.
8741
        * trans-array.c (g95_trans_g77_array): New function.
8742
        (g95_trans_assumed_size): Use it.
8743
        (g95_trans_dummy_array_bias): Ditto.
8744
        (g95_conv_array_parameter): Handle g77 arrays. Move existing body ...
8745
        (g95_conv_expr_descriptor): ... to here.  Update callers.
8746
        * trans-decl.c (g95_build_dummy_array_decl): Handle g77 arrays.
8747
        (g95_get_symbol_decl): Avoid processing g77 arrays multiple times.
8748
        * trans-expr.c (g95_conv_function_call): Handle g77 arrays.
8749
        * trans-intrinsic.c (g95_get_symbol_for_expr): Never use g77 arrays.
8750
        * trans-types.c (g95_is_nodesc_array): Handle g77 arrays.
8751
        (g95_sym_type): Ditto.
8752
 
8753
2003-03-15  Paul Brook  
8754
 
8755
        * trans-array.c (g95_walk_elemental_function_args): Don't amputate the
8756
        first chain.
8757
        * trans-expr.c (g95_conv_function_call): Use the resolved symbol.
8758
 
8759
2003-03-14  Paul Brook  
8760
 
8761
        * trans-array.c (g95_array_is_packed): Remove.
8762
        (g95_conv_array_base): Correctly handle all descriptorless cases.
8763
        (g95_conv_array_stride): Use descriptorless strides.
8764
        (g95_trans_dummy_array_bias): Don't always repack the array.
8765
        (g95_build_dummy_array_decl): Automatic dummy arrays are only partial
8766
        packed.
8767
        * trans-types.c (g95_get_nodesc_array_type): Differentiate between
8768
        dummy and non-dummy arrays...
8769
        (g95_sym_type, g95_get_derived_type): ... like these.
8770
        (g95_get_array_type_bounds): Allow discontiguous arrays.
8771
 
8772
2003-03-12  Paul Brook  
8773
 
8774
        * array.c (g95_resolve_array_spec): Fix comment.
8775
        * g95.h (symbol_attributes): New flag always_explicit.
8776
        * resolve.c (resolve_formal_arglist): Set it always_explicit.
8777
        * iresolve.c (g95_resolve_lbound, g95_resolve_ubound): Simplify.
8778
        * trans-array.c (g95_conv_descriptor_dimension): Remove dead assert.
8779
        (g95_trans_array_bounds): Allow assumed shape arrays.
8780
        (g95_trans_repack_array): Remove.
8781
        (g95_trans_dummy_array_bias): Rewite to use descriptorless arrays.
8782
        * trans-decl.c (g95_build_qualified_array): Only ignore absent
8783
        bounds for assumed size arrays.
8784
        (g95_build_dummy_array_decl): Use descriptorless arrays.
8785
        * trans-expr.c (g95_conv_expr_present): Allow descriptorless arrays.
8786
        (g95_trans_pointer_assign): Fix typo.
8787
        * trans-intrinsic.c (g95_conv_intrinsic_function_args): Remove dead
8788
        code.
8789
        (g95_conv_intrinsic_bound): Rewrite to handle descriptorless arrays.
8790
        * trans-types.c (g95_get_nodesc_array_type): Allow non-packed arrays.
8791
        Also modify callers.
8792
        * trans-types.h (g95_get_nodesc_array_type): Modify prototype.
8793
 
8794
2003-03-08  Paul Brook  
8795
 
8796
        * trans-array.c (g95_walk_elemental_functions): Don't reverse the SS.
8797
        (g95_conv_array_ubound): Provide dummy value for assumed size arrays.
8798
        * resolve.c (compare_spec_to_ref): Allow full array sections.
8799
 
8800
2003-03-08  Paul Brook  
8801
 
8802
        * expr.c (g95_simplify_expr): Also simplify array index and
8803
        substring expressions.
8804
        * resolve.c (compare_spec_to_ref): Check for assumed size bounds.
8805
        * trans-array.c (g95_trans_array_bounds): New function.
8806
        (g95_trans_auto_array_allocation): Use it.
8807
        (g95_trans_assumed_size): Rewrite.
8808
        * trans-decl.c (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
8809
        (gfor_fndecl_repack): Remove.
8810
        (g95_build_qualified_array): Handle absent upper bounds.
8811
        (g95_build_dummy_array_decl): Assumed shape arrays are descriptorless.
8812
        (g95_get_symbol_decl): Update.
8813
        (g95_build_intrinsic_function_decls): Initialize new decls.
8814
        * trans.h (gfor_fndecl_in_pack, gfor_fndecl_in_unpack): Declare.
8815
        (gfor_fndecl_repack): Remove.
8816
        * trans-io.c (g95_build_io_library_fndecls): Correct prototypes.
8817
        * trans-types.c: (g95_build_array_type): Merge duplicated code..
8818
        (g95_get_nodesc_array_type): Handle absent bounds.
8819
        * trans-types.h (g95_get_nodesc_array_type): Declare.
8820
 
8821
2003-03-04  Paul Brook  
8822
 
8823
        * f95-lang.c (DEF_FUNCTION_TYPE_VAR_3): Define before including
8824
        builtin-types.def.
8825
 
8826
2003-03-02  Paul Brook  
8827
 
8828
        * options.c (g95_init_options): Drfault to 1.
8829
        (g95_pasrse_arg): Add -frepack-arrays, use strcmp.
8830
        * trans-array.c (g95_conv_array_data, g95_conv_array_base,
8831
        g95_conv_array_stride,g95_conv_array_lbound, g95_conv_array_ubound):
8832
        Handle non-constant size automatic arrays.
8833
        (g95_conv_section_upper_bound, g95_conv_section_startstride): Use
8834
        generic bound functions.
8835
        (g95_trans_auto_array_allocation): Don't create a descriptor.
8836
        (g95_trans_assumed_size): New function (broken).
8837
        (g95_trans_dummy_array_bias): Remove unused var.
8838
        * trans-array.h (g95_trans_assumed_size): Declare.
8839
        * trans-decl.c (create_index_var): New fuction.
8840
        (g95_build_qualified_array): New function.
8841
        (g95_get_symbol_decl): Use it.
8842
        (g95_trans_deferred_vars): Handle assumed shape seperately.
8843
        * trans-types.c (get_element_type): Handle heap allocated arrays.
8844
        (g95_is_nodesc_array): Include non-const size arrays.
8845
        (g95_get_nodesc_array_type): Ditto.
8846
 
8847
2003-02-23  Paul Brook  
8848
 
8849
        * trans-array.c (g95_array_init_size): Should use stride, not size of
8850
        last dimension.
8851
 
8852
2003-02-18  Paul Brook  
8853
 
8854
        * trans-expr.c (g95_trans_arrayfunc_assign): Nove elemental check
8855
        after intrinsic function check.
8856
 
8857
2003-02-18  Arnaud Desitter  
8858
 
8859
        * io.c (match_io): Fix missing return value and remove useless
8860
        assignment.
8861
        * match.c (g95_match): Remove useless assignment.
8862
        * module.c (parse_string):  Remove useless post increment.
8863
        * simplify.c (g95_simplify_verify): Remove useless assignment.
8864
 
8865
2003-02-15  Paul Brook  
8866
 
8867
        * expr.c (restricted_intrinsic): Handle bad values gracefully.
8868
        * g95.h (symbol_attribute): Add referenced member.
8869
        (g95_symbol): Add dummy_order member.
8870
        (g95_set_sym_referenced): Declare.
8871
        * match.c (g95_match_assignment, g95_match_call): Use it
8872
        * primary.c (match_actual_arg, g95_match_rvalue,
8873
        g95_match_variable): Ditto.
8874
        * symbol.c (next_dummy_order): New variable.
8875
        (g95_set_sym_referenced): New function.
8876
        (check_done): New function.
8877
        (g95_add_*): Use it.
8878
        * trans-decl.c: Make formatting conform to GCC standards.
8879
        (g95_defer_symbol_init): Add dummy variables in the right order.
8880
        (g95_get_symbol_decl): Only accept referenced variables.
8881
        (g95_create_module_variable): Module variables are always required.
8882
        (generatr_local_decls): New function.
8883
        (generate_local_vars): New function.
8884
        (g95_generate_function_code): Use it.
8885
 
8886
2003-02-13  Paul Brook  
8887
 
8888
        * trans-decl.c (g95_conv_struct_cons): Remove.
8889
        (g95_get_symbol_decl): Use g95_conv_expr for structure initializers.
8890
        * trans-expr.c (g95_conv_structure): New function.
8891
        (g95_conv_expr): Use it.
8892
 
8893
2003-02-09  Paul Brook  
8894
 
8895
        * trans-array.c (g95_array_init_size): Don't evaluate the linit
8896
        expressions multiple times.
8897
        (g95_trans_auto_arry_allocation): Use pointer not tmp.
8898
 
8899
2003-02-08  Paul Brook  
8900
 
8901
        * module.c (mio_symtree_ref): Declare as static.
8902
        (mio_expr): Remove dead code.
8903
        (read_module): Set the symtree link for fixups.
8904
        * trans-intrinsic.c (g95_conv_intrinsic_round): Rename...
8905
        (build_round_expr): ... to this.
8906
        (g95_conv_intrinsic_aint): New function.
8907
        (g95_conv_intrinsic_function): Use it.
8908
 
8909
2003-02-08  Paul Brook  
8910
 
8911
        * trans-array.c (g95_trans_array_constructor_value): Use the acutal
8912
        offset after modificaton, not the increment expression.
8913
        * dependency.c: Kill excess whitespace.
8914
 
8915
2003-02-07  Sanjiv Gupta  
8916
 
8917
        * dependency.h: Remove some function declarations.
8918
        * dependency.c (get_no_of_elements): Change this function not to
8919
        return int.
8920
        * other: Add comments for all modified functions.
8921
 
8922
2003-02-06  Paul Brook  
8923
 
8924
        * g95spec.c (lang_specific_functions): Fix initializer warning.
8925
        * dump-parse-tree.c (g95_show_expr): Use typespec instead of symtree
8926
        for structure type names.
8927
        * trans-decl.c (g95_cons_structure_cons): New function.
8928
        (g95_get_symbol_decl): Use it.
8929
        * trans-expr.c (g95_conv_component_ref): Remove duplicate pointer
8930
        referencing code.
8931
 
8932
2003-02-06  Arnaud Desitter  
8933
 
8934
        * resolve.c (compare_cases): Add const to casts.
8935
 
8936
2003-01-30  Arnaud Desitter  
8937
 
8938
        * g95.h (g95_check_f): Change a1 to f1m.
8939
        * intrinsic.c (add_sym_1m, check_specific,
8940
        g95_intrinsic_func_interface): Use it.
8941
 
8942
        * module.c (init_pi_tree): Remove useless cast.
8943
        (fp2): Fix argument type.
8944
 
8945
        * parse.c (parse_select_block): Add comment.
8946
 
8947
2003-02-05  Toon Moene  
8948
 
8949
        * lang-options.h: Fix warning involving C90 concatenated
8950
        strings.
8951
 
8952
2003-02-06  Steven Bosscher  
8953
            Arnaud Desitter  
8954
 
8955
        * io.c (format_asterisk): Complete initializer to kill warning.
8956
        * arith.c (DEF_G95_INTEGER_KIND, DEF_G95_LOGICAL_KIND,
8957
        DEF_G95_REAL_KIND, MPZ_NULL, MPF_NULL): New #defines.
8958
        (g95_integer_kinds, g95_logical_kinds, g95_real_kinds): Use the
8959
        new defines to complete initializers.  Kills all warnings.
8960
 
8961
        * Make-lang.in: Comment cleanup.
8962
 
8963
2003-02-05  Paul Brook  
8964
 
8965
        * array.c (g95_free_constructor): Handle NULL expressions.
8966
        * resolve.c (resolve_structure_cons): Ditto.
8967
        * decl.c (g95_match_null): New Function.
8968
        (variable_decl): Use it.
8969
        * module.c (mio_expr): Don't bother saving symtree for EXPR_STRUCTURE.
8970
        * primary.c (g95_match_runtime): Don't use symtree for EXPR_STRUCTURE.
8971
        * trans-types.c (g95_set_decl_attributes): Remove empty function.
8972
 
8973
2003-02-05  Paul Brook  
8974
 
8975
        * trans.h (build1_v): New macro.
8976
        (build_v): Remove pointless and incorrect prototype.
8977
        * various: Use build1_v for GOTO_EXPR and LABEL_EXPRs.
8978
        * f95-lang.c (g95_init_builtin_decls): DEF_BUILTIN takes 10 args.
8979
 
8980
2003-02-01  Steven Bosscher  
8981
 
8982
        * Make-lang.in (F95_OBJS): Remove one more dead file.
8983
 
8984
2003-02-01  Paul Brook  
8985
 
8986
        * lang-specs.h: Don't pass -ffixed-form to the linker.
8987
        * trans-decl.c (g95_generate_function_code): Clear saved decl chain.
8988
 
8989
2003-02-01  Paul Brook  
8990
 
8991
        * Make-lang.in (F95_OBJS): Remove dead files.
8992
        * trans-array.c (g95_array_init_size): Do the right thing when
8993
        ubound=NULL.
8994
        * trans-decl.c (g95_generate_function_code): Initialize deffered
8995
        symbol list before translating contained subroutines.
8996
        * trans-expr.c (g95_conv_expr, g95_conv_expr_reference): Substitute
8997
        scalar invariant values here...
8998
        (g95_conv_variable, g95_conv_function_call): ... instead of here ...
8999
        * trans-intrinsic.c (g95_conv_intrinsic_function_args): .. and here.
9000
 
9001
2003-01-29  Paul Brook  
9002
 
9003
        * trans-array.c (g95_add_loop_code): Put pre code in the right block.
9004
        (g95_walk_elemental_function_args): Reverse chains before adding.
9005
        (g95_reverse_ss): Move about a bit.
9006
        * trans-expr.c (g95_conv_function_call): Handle scalar intrinsic
9007
        function arguments.
9008
 
9009
2003-01-28  Paul Brook  
9010
 
9011
        * intrinsic.c (resolve_intrinsic): Use correct union member.
9012
        * trans-array.c (g95_trans_dummy_array_bias): Don't touch absent
9013
        parameters.
9014
        * trans-decl.c (g95_get_symbol_decl): Don't translate initializers for
9015
        use associated variables.
9016
        * trans-intrinsic.c (g95_conv_intrinsic_present): Move body ...
9017
        * trans-expr.c (g95_conv_expr_present): ... to here.
9018
        * trans.h: Declare it.
9019
        * trans-types.c (g95_sym_type): Assume subroutine if not specified.
9020
 
9021
2003-01-28  Arnaud Desitter  
9022
 
9023
        * array.c (expand_iterator): Suppress useless assignment.
9024
        * decl.c (match_char_spec): Ditto.
9025
        * io.c (match_io_iterator): Ditto.
9026
        * primary.c (match_real_constant): Ditto.
9027
        * interface.c (fold_unary, g95_free_interface, g95_extend_expr):
9028
        Ditto.  Also, use g95_intrinsic_op not int for intrinsic operators.
9029
        * matchexp.c (match_add_operand, match_level_5): Likewise.
9030
        * module.c (parse_atom, find_enum): Likewise.
9031
        * resolve.c: move #include 
9032
        (resolve_select): Fix serious typo.
9033
 
9034
2003-01-28  Steven Bosscher  
9035
 
9036
        * Make-lang.in: Don't build with broken tree-ssa-pre.
9037
 
9038
2003-01-28  Steven Bosscher  
9039
 
9040
        * resolve.c (resolve_index): Add a TODO.
9041
        * symbol.c: Remove useless "#include ".
9042
 
9043
2003-01-27  Paul Brook  
9044
 
9045
        * check.c (check_rest): Allow different type kinds as an extension.
9046
        * g95.h (g95_resolve_f): Add f1m.
9047
        * intrinsic.c (add_sym_1m, resolve_intrinsic): Use it.
9048
        * intrinsic.h: Chenge prototypes for MIN and MAX.
9049
        * iresolve.c (g95_resolve_minmax): New function.
9050
        (g95_resolve_min, g95_resolve_max): Use it.
9051
        * trans-intrinsic.c (g95_trans_intrinsic_minmax): Only evaluate
9052
        arguments once.
9053
        (g95_conv_intrinsic_present): Fix logic.
9054
 
9055
2003-01-27  Steven Bossche  
9056
 
9057
        * g95.h (g95_case): Don't be a tree, be a double linked list.
9058
        * match.c (match_case_selector): Remove redundant semantics check.
9059
        Clean up a few goto's to make it a tiny little bit faster.
9060
        * resolve.c (case_tree): Die.
9061
        (compare_cases): Accept and compare unbounded cases too.
9062
        (check_case_overlap): Don't build a tree.  Instead, merge-sort the
9063
        whole list of g95_cases passed from resolve_select.
9064
        (sane_logical_select): Die.
9065
        (check_case_expr): Return FAILURE if a CASE label is of the wrong
9066
        type kind.
9067
        (resolve_select): Fixup case expression for computed GOTOs, put it
9068
        in expr, not expr2, for easier handing in the parse tree dumper and
9069
        the code generator.  Rewrite the rest of the function: Kill
9070
        unreachable case labels and unreachable case blocks.
9071
        * dump-parse-tree.c (g95_show_code_node): Always dump expr for
9072
        an EXEC_SELECT, not case2 anymore.
9073
        * trans-const.c (g95_conv_constant_to_tree): New function.
9074
        (g95_conv_constant): Use it.
9075
        * trans-const.h: Declare prototype for the new function.
9076
        * trans-stmt.c (g95_trans_integer_select, g95_trans_logical_select,
9077
        g95_trans_character_select): New static functions.
9078
        (g95_trans_select): Rewrite.
9079
 
9080
2003-01-26  Paul Brook  
9081
 
9082
        * intrinsic.c (add_fnctions): Properly add dreal.
9083
        * trans-intrinsic.c (g95_conv_intrinsic_present): New function.
9084
        (g95_conv_intrinsic_function): Use it.
9085
        * trans-io.c (build_dt): Abort on internal files (unimplemented).
9086
 
9087
2003-01-26  Paul Brook  
9088
 
9089
        Widespread changes to the handling of symbols in expressions.  These
9090
        are now linked via g95_symtree nodes.
9091
        * parse.c (g95_fixup_sibling symbols): New function.
9092
        (parse_contained): Use it.
9093
        * g95.h (symbol_attribute): Add contained.  Indicates a symbol is a
9094
        contained procedure that has bee correctly fixed up.
9095
        (g95_code, g95_expr): Point to a g95_symtree, not a g95_symbol.
9096
 
9097
2003-01-24  Paul Brook  
9098
 
9099
        * trans-array.c (g95_walk_expr): Function result attributes are in
9100
        sym->result.
9101
        * trans-expr.c (g95_conv_function_call,
9102
        g95_trans_arrayfunc_assign): Ditto.
9103
        * trans-decl.c (g95_get_symbol_for_expr): Set sym->result.
9104
 
9105
2003-01-23  Steven Bosscher  
9106
 
9107
        * expr.c (check_restricted): Fix error message.
9108
        * symbol.c (free_st_labels): Plug memleak.
9109
 
9110
2003-01-22  Steven Bosscher  
9111
 
9112
        * arith.c (reduce_unary, reduce_binary_ac, reduce_binary_ca,
9113
        reduce_binary_aa, reduce_binary, eval_intrinsic,
9114
        eval_intrinsic_f2): Use typesafe prototypes for eval functions.
9115
        * g95.h (g95_check_f, g95_simplify_f, g95_resolve_f): New unions
9116
        for typesafe intrinsics helper functions.
9117
        (g95_intrinsic_sym): Use them.
9118
        * intrinsic.c (do_check, add_sym, add_sym_0, add_sym_1,
9119
        add_sym_1s, add_sym_1m, add_sym_2, add_sym_3, add_sym_4,
9120
        add_sym_5, add_conv, resolve_intrinsic, do_simplify,
9121
        check_specific, g95_intrinsic_func_interface,
9122
        g95_intrinsic_sub_interface): Adjust all calls to intrinsics
9123
        helper functions.
9124
        * trans-decl.c (g95_get_extern_function_decl): Likewise.
9125
        * Make-lang.in: Don't disable warnings for strict prototypes
9126
        any longer, everything is typesafe now.
9127
 
9128
2003-01-22  Steven Bosscher  
9129
 
9130
        * bbt.c (duplicate_node): Make static.
9131
        * module.c (module_name): Make static.
9132
        * scanner.c (include_dirs): Make static.
9133
 
9134
2003-01-20  Steven Bosscher  
9135
 
9136
        Hard coded _gfor_'s should not show up anymore.
9137
        * g95.h (PREFIX): New macro.
9138
        * iresolve.c (g95_resolve_cpu_time): Use PREFIX, not
9139
        hard-coded "_gfor".
9140
        (g95_resolve_random_number): Likewise.
9141
        * trans-decl.c (g95_build_intrinsic_function_decls): Likewise.
9142
        * trans-io.c: Remove 'prefix' macro.  Replace all uses with
9143
        the new PREFIX macro from g95.h.
9144
 
9145
2003-01-20  Steven Bosscher  
9146
 
9147
        The troubles of forking... Andy implemented this just now too.
9148
        Let's stick to that and keep the trees close.
9149
        * g95.h (g95_st_label): 'format' member is now a g95_expr.
9150
        * io.c: Revert previous changes.
9151
        (g95_match_format): Match the format string as a character
9152
        literal expression.
9153
        * match.h (g95_statement_label): Declare external.
9154
        * parse.c: Revert previous changes.
9155
        * symbol.c (g95_free_st_label): Free a g95_expr instead
9156
        if a 'char *'.
9157
        * trans-io.c: Revert previous changes.
9158
        (build_dt): Use set_string to set the format string.
9159
 
9160
2003-01-20  Steven Bosscher  
9161
 
9162
        * io.c (format_string): Make non-static.
9163
        (g95_match_format): Remember the format string.
9164
        (terminate_io): Add I/O termination for empty I/O lists.
9165
        * match.h: Declare external format_string.
9166
        * parse.c (check_statement_label): Attack the format string
9167
        to a format label for FORMAT statements.
9168
        * trans-io.c (g95_add_field): Define prefix macro.  Replace
9169
        all uses of PREFIX define with a use of this macro.
9170
        (build_dt): Implement formatted I/O for format labels.
9171
 
9172
2003-01-20  Steven Bosscher  
9173
 
9174
        * lang-options.h: Kill "-std=F".
9175
        * options.c: Remove unimplemented "-std=F".  Modify
9176
        web address.
9177
        * misc.c (g95_terminal_width): New function.
9178
        * error.c (g95_error_init_1): Use g95_terminal_width.
9179
        * g95.h: Add prototype for g95_terminal_width, remove
9180
        fmode flag.
9181
 
9182
2003-01-19  Steven Bosscher  
9183
 
9184
        * Make-lang.in: Fix typo.
9185
 
9186
2003-01-18  Steven Bosscher  
9187
 
9188
        * g95.h (struct g95_case): Remove unused cruft, new member
9189
        'where' to keep track of the locus of the default case.
9190
        * match.c (g95_match_case): Add locus to the current case.
9191
        (match_case_selector): Likewise.
9192
        * parse.c (parse_select_block): Move semantics check for
9193
        multiple DEFAULT cases out of here to...
9194
        * resolve.c (check_case_overlap): ...here.  Return sooner
9195
        when possible.
9196
        (check_case_expr): Take two g95_cases now, use to sure the
9197
        expression kinds are the same.
9198
        (resolve_select): Cleanup.
9199
 
9200
2003-01-18  Paul Brook  
9201
 
9202
        * trans-io.c: Fix typos in ported IO work (set_fla[tg]).
9203
        * trans-decl.c (g95_set_symbol_decl): Handle non-array result
9204
        variables.
9205
        (g95_get_extern_function_decl): Put decls in the correct context.
9206
 
9207
2003-01-18  Steven Bosscher  
9208
 
9209
        * trans-io.c: Port changes from Andy to set ERR flag.
9210
 
9211
2003-01-17  Paul Brook  
9212
 
9213
        * trans-array.c: Add various comments.
9214
        (g95_ss_terminator): Declare as const.
9215
        (g95_walk_expr): Remove first parameter and update all callers.
9216
        (g95_walk_op_expr): Initialize scalar SS properly.
9217
        * trans-array.h (g95_walk_expr): Update prototype.
9218
        * trans-expr.c: Update for new g95_walk_expr.
9219
        * trans-intrinsic.c: Ditto.
9220
        * trans-io.c: Ditto.
9221
        * trans.h: Various comments for SS chains.
9222
 
9223
2003-01-17  Paul Brook  
9224
 
9225
        * intrinsic.h (g95_generic_isym_id): Add G95_ISYM_S?_KIND, SPACING
9226
        and RRSPACING.
9227
        * intrinsic.c (add_functions): Use them.
9228
        * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto.
9229
        * trans-expr.c (g95_conv_expr_lhs): Abort on impossible error.
9230
 
9231
2003-01-17  Steven Bosscher  
9232
 
9233
        Fallout of a small merge conflict:
9234
        * intrinsic.c: Un-revert lost patch (G95_ISYM_SCALE).
9235
 
9236
2003-01-17  Steven Bosscher  
9237
 
9238
        * initrinsic.c: New add_sym_* functions for strong typing.
9239
        (add_conv): Make prototype strict.
9240
        * dump-parse-tree.c, dependency.c: Include config.h
9241
        * resolve.c, trans-io.c: Fix typos.
9242
 
9243
2003-01-17  Steven Bosscher  
9244
 
9245
        * dump-parse-tree.c (g95_show_code_node): Show the
9246
        condition for a computed GOTO that was transformed
9247
        to a SELECT CASE construct.
9248
        * resolve.c (check_case_overlap): Revert previous switch
9249
        to treaps, it was too slow and didn't catch all trouble.
9250
        (resolve_symbol): Be more flexible about module procedures.
9251
        * symbol.c (check_conflict): Point to relevant section in
9252
        the standard for dubious conflict.  Allow procedure
9253
        dummy arguments to be optional again.
9254
        * trans-io (add_field): Rename to g95_add_field.  Change
9255
        all callers.
9256
        * trans-stmt (trans_select): Handle unbounded cases for
9257
        integer SELECT CASE constructs.  Fix/add more comment.
9258
 
9259
2003-01-17  Steven Bosscher  
9260
 
9261
        * g95.h: Uses GCC's function attribute macros.
9262
        * error.c, module.c, parse.c, g95.h: More function attributes.
9263
 
9264
2003-01-16  Steven Bosscher  
9265
        Forgot a file...
9266
        * trans-decl.c (get_label_decl): Use TREE_LINENO instead
9267
        of DECL_SOURCE_LINE, and TREE_FILENAME instead of
9268
        DECL_SOURCE_FILE.
9269
 
9270
2003-01-16  Steven Bosscher  
9271
 
9272
        * f95-lang.c (pushdecl): Use TREE_LINENO instead of
9273
        DECL_SOURCE_LINE.
9274
        * trans.c (g95_trans_code): Use annotate_all_with_file_line
9275
        instead of nowdead wrap_all_with_wfl.
9276
 
9277
2003-01-14  Steven Bosscher  
9278
 
9279
        * parse.c (g95_parse_file): In verbose mode, dump the parse tree
9280
        before generating code, so we can still see it even if the code
9281
        generation phase dies.
9282
 
9283
2003-01-14  Steven Bosscher  
9284
 
9285
        * decl.c (build_sym): Split out initialization expression parts...
9286
        (add_init_expr_to_sym): ...to here.
9287
        (variable_decl): Add the symbol following an attribute list to the
9288
        symbol tree before parsing the optional initialization expression
9289
        if the symbol is not of a derived type.
9290
        * primary.c (g95_match_rvalue): Don't assume a symbol always has
9291
        a value if it is a PARAMETER.
9292
 
9293
2003-01-14  Steven Bosscher  
9294
 
9295
        * misc.c: Don't #include 
9296
        * module.c: Ditto.  Kill uses of mtrace, muntrace.  If there
9297
        ever was a glibc bug, then either this was never reported to
9298
        glibc people, or it has been fixed for so long that there's
9299
        no information you can find about it, anywhere.
9300
 
9301
2003-01-14  Steven Bosscher  
9302
 
9303
        Fix warnings:
9304
        * module.c (attr_bits, bt_types, array_spec_types):
9305
        Switch 'const' and 'static'.
9306
        * iresolve.c (g95_resolve_reshape): Make __resolve0 non-'const'.
9307
 
9308
        GNU'ify source code:
9309
        * trans-io.c: Numerous fixes, one fixed warning and a few
9310
        TODO markers so that we don't forget about them.
9311
 
9312
2003-01-13  Paul Brook  
9313
 
9314
        * intrinsic.c (add_functions): Add G95_ISYM_SCALE.
9315
        * intrinsic.h (g95_generic_isym_id): Remove bogus G95_ISYM_ANINIT.
9316
        Add G95_ISYM_SCALE.
9317
        * trans-intrinsic.c (g95_conv_intrinsic_function): Ditto
9318
        * match.c (g95_match_stop): Fix dumb == -> != error.
9319
 
9320
2003-01-13  Steven Bosscher  
9321
 
9322
        * dump-parse-tree.c (show_indent): Add line breaks.  This
9323
        whole dumping process needs cleanups.
9324
        * f95-lang.c (g95_mark_addressable): Fix prototype to match
9325
        the langhook.  Fix 'return's accordingly.
9326
        * g95-support.h: Adjust prototype.
9327
        * g95.h: Add 'no_backend' member to 'g95_option_t' struct.
9328
        * lang-options.h: Add '-fsyntax-only'.
9329
        * options.c (g95_init_options): Init 'no_backend'.
9330
        (g95_parse_arg): Deal with '-fsyntax-only'.
9331
        * parse.c (g95_parse_file): Do not generate code if 'no_backend'
9332
        is set.
9333
 
9334
2003-01-13  Steven Bosscher  
9335
        Patch from Arnaud
9336
        * resolve.c (resolve_symbol): Assumed shape arrays must be dummy
9337
        arguments.  Also make sure that if a symbol is marked INTRINSIC,
9338
        an intrinsic with the symbol's name actually exists.
9339
        (check_conflict): Make EXTERNAL and DIMENSION attributes conflict.
9340
        Do not allow PROCEDURES to have the SAVE, POINTER, TARGET,
9341
        ALLOCATABLE, RESULT, IN_NAMESPACE, OPTIONAL or FUNCTION attribute.
9342
 
9343
2003-01-13  Steven Bosscher  
9344
 
9345
        * resolve.c (resolve_contained_functions): Fix condition, don't
9346
        throw internal_error if a child namespace has no name.  Apparently
9347
        this can be the case?
9348
 
9349
2003-01-11  Paul Brook  
9350
 
9351
        Port changes from Andy's tree:
9352
        * g95.h (g95_code): Add stop_code.
9353
        * match.c (g95_match_stop): Detter syntax checking.
9354
        * resolve.c (resolve_generic_f0): Return match type.
9355
        (resolve_generic_f): Remove dead/duplicated code.
9356
        (resolve_specific_f): Ditto.
9357
        * dump-parse-tree.c (g95_show_code_node): Handle new STOP format.
9358
        * trans-decl.c (gfor_fndel_stop_*): New fndecl nodes.
9359
        * trans-stmt.c (g95_trans_stop): Handle new STOP format.
9360
 
9361
2003-01-11  Paul Brook  
9362
 
9363
        * trans-array.c: Various documentation/comment changes.
9364
        * trans-stmt.c: Ditto.
9365
 
9366
 
9367
2003-01-10  Paul Brook  
9368
 
9369
        * options.c/h: Add -fdump-parse-tree as alias of -v.
9370
 
9371
2003-01-10  Steven Bosscher  
9372
 
9373
        * dump-parse-tree.c (g95_show_namespace): Fixed another
9374
        typo.  Sorry, it's Friday...
9375
 
9376
2003-01-10  Steven Bosscher  
9377
 
9378
        Spotted by Tobi:
9379
        * trans-array.c, trans-array.h, trans.c, trans-const.c,
9380
        trans-const.h, trans-decl.c, trans-expr.c, trans.h
9381
        trans-intrinsic.c, trans-io.c, trans-stmt.c, trans-stmt.h
9382
        trans-types.c: Fix bogus copyright years, add 2003.
9383
        * trans-types.h: Give copyright header.
9384
 
9385
2003-01-10  Steven Bosscher  
9386
 
9387
        * dump-parse-tree.c (g95_show_namespace): Fixed typo.
9388
        * expr.c, options.c, scanner.c: Add some more 'const' markers.
9389
        * intrinsic.c: Some constant strings moved to read-only memory.
9390
        * io.c (format_asterisk): Move to...
9391
        * g95.h: ...here.
9392
 
9393
2003-01-10  Steven Bosscher  
9394
 
9395
        * dump-parse-tree.c (g95_show_namespace): Dump implicit
9396
        types for ranges instead of per-letter.  Indent the
9397
        'CONTAINS' just like everything else.
9398
        * resolve.c (resolve_contained_functions): Clarify comment.
9399
        Explain non-obvious conditional expression.  Improve
9400
        diagnostics if tyoe cannot be resolved.
9401
        Port semi-fix from Andy's tree:
9402
        (was_declared): Move up before first use.
9403
        (generic_sym, specific_sym): New functions.  Code moved
9404
        out if procedure_kind.
9405
        (procedure_kind): Simplify using new functions.
9406
        (resolve_generic_f): Make sure the functions we find in
9407
        a parent namespace is generic.
9408
        (resolve_specific_f): Ditto for specific functions.
9409
 
9410
2003-01-10  Steven Bosscher  
9411
 
9412
        * trans-stmt.c, trans.c: Fix some code style issues. Add
9413
        some more comment (but still not enough!).
9414
 
9415
2003-01-10  Steven Bosscher  
9416
 
9417
        * symbol.c (flavors, procedures, intents, acces_types,
9418
        access_types, ifsrc_types): Make const.
9419
        * misc.c (g95_string2code): Make 'm' param 'const'.
9420
        * module.c (find_enum, write_atom, mio_name): Make
9421
        'm' param 'const'.
9422
        (attr_bits, bt_types, array_spec_types, array_ref_types,
9423
        ref_types, expr_types): Make const.
9424
        * g95.h: Adjust external decls.
9425
 
9426
2003-01-09  Paul Brook  
9427
 
9428
        * Testsuite: Add a load of new cases.
9429
 
9430
2003-01-08  Steven Bosscher  
9431
 
9432
        * Make-file.in: Add dependency on back end header files;
9433
        a parallel build should work now.
9434
        * f95-lang-c (lang_identifier): Remove bogus comment.
9435
        (g95_be_parse_file): Fix prototype.
9436
        (g95_init): Make static.
9437
        (g95_finish): Make static.
9438
        * error.c (g95_syntax_error): Kill. Make define in...
9439
        * g95.h (g95_syntax_error): Define.
9440
        (g95.options): Make 'source' member 'const'.
9441
        * interface.c (g95_match_interface): Explain
9442
        hard-to-read condition.
9443
        (g95_match_end_interface): Ditto.
9444
        * trans_const.c (g95_build_string_const): Make 's' parameter
9445
        'const'.
9446
        * trans_const.h: Adjust protoype accordingly.
9447
        * trans-decl.c: Include tree-dump.h
9448
        (g95_generate_function_code): Build fixes for recent changes
9449
        in the tree-ssa branch.
9450
 
9451
2003-01-08  Steven Bosscher  
9452
 
9453
        * format.c: Kill, move code from here...
9454
        * io.c: ...to here.
9455
        * Make-lang.in: Adjust.
9456
        * MANIFEST: Ditto.
9457
        * match.h: Ditto.
9458
        * BUGS: Mention where to submit bugs.  Move old content...
9459
        * TODO: ...to here.  New file.
9460
 
9461
2003-01-08  Steven Bosscher  
9462
        Fix most warnings, and suppress the ones we can't fix for now.
9463
        * Make-lang.in: Suppress warnings about bad proto's in g95.h,
9464
        these warnings just clutter the screen and there's not much
9465
        we can do about them for now anyway.
9466
        * check.c, iresolve.c: Mark unused function parameters.
9467
        * dump-parse-tree.c (g95_show_array_spec): Punt on AS_UNKNOWN,
9468
        they should be resolved before they get here.
9469
        * error.c: Remove unused FILE *status_out.
9470
        * f95-lang.c (g95_init): Remove bogus cast.
9471
        * Many files: Make things 'const' where required.
9472
        * g95.h: Fix prototypes for all modified functions above.
9473
        (g95_options): Remove 'object' member.
9474
 
9475
2003-01-07  Steven Bosscher  
9476
 
9477
        * Make-file.in: Cleanup bogus targets.  Add more comment.
9478
        * lang-options.h: New option '-w'.
9479
        * g95.h: add no_options field to struct g95_options.
9480
        * options.c (g95_init_options): Default no_warnings to off.
9481
        (g95_parse_arg): Recognise the '-w' switch and its alias,
9482
        '-fno-warnings'.
9483
        * error.c (g95_warning, g95_warning_now): Don't emit warning if
9484
        no_warning option is set.
9485
        * iresolve.c (g95_resolve_shape): Fix warning.
9486
 
9487
2003-01-07  Steven Bosscher  
9488
 
9489
        * primary.c (g95_next_string_char): Rename next_string_char, and
9490
        make static.  Adjust callers accordingly.
9491
        * resolve.c (resolve_generic_f0): Return try, not match.  Adjust
9492
        callers accordingly.
9493
        * g95.h: Split out all g95_match* functions to...
9494
        * match.h: ...here. New file.
9495
        * array.c, decl.c, expr.c, format.c, interface.c, io.c, match.c,
9496
        matchexp.c, module.c, parse.c, primary.c: Inlcude match.h
9497
 
9498
2003-01-07  Steven Bosscher  
9499
 
9500
        * symbol.c (g95_clear_new_implicit, g95_add_new_implicit_range,
9501
        g95_merge_new_implicit): New functions.
9502
        (g95_match_implicit_none, g95_match_implicit): Move from here...
9503
        * match.c (g95_match_implicit_none, g95_match_implicit): ... to here.
9504
        Modify to use the new functions in symbol.c.
9505
        * g95.h: Add and move prototypes.
9506
 
9507
2003-01-06  Steven Bosscher  
9508
 
9509
        * bbt.c (insert): Use a typedef'ed compare_fn prototype for the
9510
        node compare function.
9511
        (g95_insert_bbt): Likewise.
9512
        (g95_insert_bbt_with_overlap): Likewise.
9513
        (g95_delete_bbt): Likewise.
9514
        (delete_treap): Likewise. Also fix a potential bug when calling it.
9515
        * module.c (compare_pointers): Change proto to compare_fn.
9516
        (compare_integers): Likewise.
9517
        (compare_true_names): Likewise.
9518
        (find_true_name): Adjust call to compare_true_names to match proto.
9519
        (require_atom, write_atom, mio_name): Fix 'const' warnings.
9520
        (init_pi_tree): Make compare a compare_fn instead of (int *).
9521
        * resolve.c (compare_cases): Change proto to compare_fn.
9522
        * symbol.c (g95_compare_symtree): Change proto to compare_fn, make
9523
        it static, and rename to compare_symtree.
9524
        (delete_symtree, g95_undo_symbols, g95_new_symtree): Use renamed
9525
        function.
9526
        * g95.h: Kill g95_compare_symtree prototype. Adjust prototypes
9527
        of g95_insert_bbt, g95_insert_bbt_with_overlap, and g95_delete_bbt.
9528
 
9529
2003-01-06  Steven Bosscher  
9530
        * Make-lang.in: Fix spaces/tabs issues from previous patch.
9531
        * patch.options: Blow away Paul's checkin mistake :-)
9532
        * io.c (terminate_io): Fix memory leak (Arnaud).
9533
 
9534
2003-01-06  Steven Bosscher  
9535
 
9536
        * Make-lang.in: Teach about building DVI, info manual.
9537
        * g95.texi: New file.
9538
 
9539
2003-01-02  Paul Brook  
9540
 
9541
        * trans-array.c (g95_reverse_ss): Make static and don't use.
9542
        (g95_conv_ss_descriptor): Don't use g95_loopinfo
9543
        (g95_conv_array_parameters): Modify for pointer assignments.
9544
        (g95_walk_subexpr): New function.
9545
        (g95_walk_expr*): Use it.
9546
        * trans-array.h (g95_reverse_ss): Remove prototype.
9547
        * trans-expr.c (g95_trans_pointer_assign): Implement.
9548
        (Many): Set se.want_pointer before calling g95_conv_array_parameter.
9549
        * trans-intrinsic.c: Sync with scalarizer changes.
9550
        * trans-io.c: Ditto.
9551
 
9552
2002-12-29  Paul Brook  
9553
 
9554
        * trans-array.c: Document calling convention for arrays.
9555
 
9556
2002-12-19  Paul Brook  
9557
 
9558
        * trans-intrinsic.c (g95_conv_intrsinsic_function): Remove incorrect
9559
        assertion. Remove intrinsic subroutine G95_ISYM_* cases. Always pass
9560
        optional parameters for some intrinsics.
9561
        (g95_is_intrinsic_libcall): Add G95_ISYM_RESHAPE.
9562
        * trans-expr.c (g95_conv_function_call): Pass NULL for absent
9563
        optional parameters.
9564
        * trans.h (g95_se): Add ignore_optional flag.
9565
 
9566
2002-12-15  Paul Brook  
9567
 
9568
        * trans-array.c (g95_conv_array_parameter): Fix partial rank sections.
9569
        * trans-decl.c (g95_generate_function_code): Use TDI_original.
9570
 
9571
2002-12-14  Paul Brook  
9572
 
9573
        * trans-stmt.c (g95_trans_call): Use resolved symbol name.
9574
 
9575
2002-12-12  Paul Brook  
9576
 
9577
        * trans-array.c (g95_trans_array_constructor_subarray): Fully
9578
        initialize the scalarizer.
9579
        (various): Update to new format of g95_expr->value.constructor.
9580
 
9581
2002-12-08  Paul Brook  
9582
 
9583
        * trans-array.c (g95_put_offset_into_var): New function.
9584
        (g95_trans_array_constructor_subarray): New function.
9585
        (g95_trans_array_constructor_value): Use it.
9586
        (g95_array_cons_size): Don't abort() on array components.
9587
 
9588
2002-12-08  Paul Brook  
9589
 
9590
        * Make-lang.in (F95_ADDITIONAL_OBJS): Remove tree-dchain.o.
9591
        * support.c: Update #includes.
9592
        (statement_code_p, c_size_in_bytes, s_size_type_node): Remove.
9593
        * trans-array.c: Update #includes.
9594
        * trans.c: Ditto.
9595
        * trans-const.c: Ditto.
9596
        * trans-io.c: Ditto.
9597
        * trans-types.c: Ditto.
9598
        (g95_init_types): Set size_type_node.
9599
        * trans-decl.c: Update #includes.
9600
        (gfor_fndecl_adjust{l,r}): Declare and initialize.
9601
        * trans-stmt.c: Update #includes.
9602
        (g95_trans_do_while): Generate LABEL_EXPR, not GOTO_EXPR.
9603
        (g95_trans_select): Fix check for unbounded ranges.
9604
        * trans-expr.c: Update #includes.
9605
        (g95_conv_string_tmp): New function.
9606
        (g95_conv_concat_op): Use it.
9607
        * trans.h (g95_conv_string_tmp, gfor_fndecl_adjust{l,r}): Declare.
9608
        * Trans-intrisic.c: Update #includes.
9609
        (g95_conv_intrinsic_strcmp): New function.
9610
        (g95_conv_intrinsic_adjust): Ditto.
9611
        (g95_conv_intrinsic_function: Use them.
9612
 
9613
2002-11-30  Paul Brook  
9614
 
9615
        * trans-array.c (g95_walk_function_expr): Handle non-array return by
9616
        reference.
9617
        * trans-dec.c (g95_build_function_decl): Handle character return
9618
        parammeters.
9619
        (g95_get_fake_result_decl): Ditto.
9620
        (g95_trans_deferred_vars): Ditto.
9621
        * trans-expr.c (g95_conv_function_call): Ditto.
9622
        (g95_trans_arrayfunc_assign) Limit to array valued functions.
9623
        * trans-intrinsic.c (g95_conv_intrinsic_char): New function.
9624
        (g95_conv_intrinsic_function): Use it.
9625
        * trans-types.c (g95_sym_type): Handle functions returning strings.
9626
        (g95_return_by_reference): Ditto.
9627
        (g95_get_function_type): Ditto.
9628
 
9629
2002-11-18  Paul Brook  
9630
 
9631
        * trans-stmt.c (g95_trans_if): Fix IF statements when the condition
9632
        requires a temporary.
9633
        (g95_trans_select): Handle computed gotos.
9634
        * trans-types.c (g95_build_array_type): Warn about non-functional
9635
        assumed shape arrays.
9636
        * trans-expr.c (g95_trans_scalar_assign): Correctly handle post
9637
        blocks.
9638
        * trans-intrinsic.c (g95_conv_intrinsic_round): New function.
9639
        (g95_conv_intrinsic_int): New function.
9640
        (g95_conv_intrinsic_mod): New function.
9641
        (g95_conv_intrinsic_ichar): New function.
9642
        (g95_conv_intrinsic_function): Use them.
9643
        (g95_conv_intrinsic_dim): Use g95_evaluate_now.
9644
 
9645
2002-11-17  Toon Moene  
9646
 
9647
        * trans-types.c (g95_build_array_type): Assumed
9648
        sized arrays can have rank > 1.
9649
        * trans.c (g95_trans_code): Remove erroneous
9650
        warning about CONTINUE.
9651
        * trans-expr.c (g95_conv_variable): Remove
9652
        erroneous assert.
9653
 
9654
2002-11-15  Paul Brook  
9655
 
9656
        * trans-array.c (g95_conv_array_parameter): Check for NULL stride.
9657
 
9658
2002-10-31  Paul Brook  
9659
 
9660
        * f95-tree.c: Remove tree copying stuff that's now in gimple.c
9661
        * trans-expr.c (g95_conv_component_ref): Handle character string
9662
        components.
9663
        (g95_conv_string_parameter): Ditto.
9664
        * trans-types.c (g95_get_derived_type): Add length decl to caracter
9665
        string components.
9666
 
9667
2002-10-10  Paul Brook  
9668
 
9669
        * trans-decl.c (gfor_fndecl_size?): Declare and initialize.
9670
        * trans-expr.c (g95_conv_function_call): Remove unreliable return value
9671
        check.
9672
        * trans-intrinsic.c (g95_conv_intrinsic_size): New function.
9673
        (g95_conv_intrinsic_function): Handle size and shape intrinsics.
9674
        (g95_is_intrinsic_libcall): Add G95_ISYM_SHAPE.
9675
        * trans-types.c (pvoid_type_node): Declare and initialize.
9676
        * trans-array.c: Fix typo COMPONENT_REF->REF_COMPONENT
9677
        (g95_array_allocate): Fix when base==data.
9678
        (g95_conv_array_parameter): Correctly handle reduced rank sections.
9679
        * trans-io.c (g95_trans_write): Correctly handle string modifiers.
9680
 
9681
2002-10-09  Paul Brook  
9682
 
9683
        * (g95_conv_expr_reference): Handle character strings correctly.
9684
 
9685
2002-10-07  Paul Brook  
9686
 
9687
        (g95_expand_decl): Rename from f95_expand_decl_stmt and use as
9688
        langhook.
9689
        * trans-array.c (g95_build_array_initializer): Remove.
9690
        (g95_conv_array_initializer): New Function.
9691
        (g95_trans_auto_arry_allocation): Cleanup.
9692
        (g95_trans_init_character_array): Remove.
9693
        * g95spec.c: Link in libgforbegin.
9694
        * trans.c (g95_generate_code): Rename main function to MAIN__.
9695
        (g95_create_var): New function.
9696
        (g95_create_var_np): New function.
9697
        (g95_evaluate_now): New function.
9698
        (g95_start_block): New function.
9699
        (g95_finish_block): New function.
9700
        (g95_add_expr_to_block): New function.
9701
        (g95_add_block_to_block): New function.
9702
        * trans-expr.c (g95_conv_componen_ref): New function.
9703
        * Make-lang.in (F95_ADDITIONAL_OBJS): Add gimplify.o.
9704
        (F95_OBJS): Add dependency.o.
9705
        * f95-lang.c (g95_is_simple_stmt): Remove.
9706
        * f95-tree.c (mark_not_simple): New function.
9707
        (unshare_all_trees): New function.
9708
        (create_tmp_var, create_tmp_alias_var): Remove.
9709
        * support.c (declare_tmp_vars, tree_last_decl): Remove.
9710
        * trans*: Convert to new IR using GENERIC trees.  Don't bother about
9711
        SIMPLE/GIMPLE rules, this is now done by Lang-independant code.
9712
 
9713
2002-10-01  Paul Brook  
9714
 
9715
        * trans-array.c: Add support for descriptorless arrays.
9716
        (g95_conv_array_data): New function.
9717
        (g95_conv_array_base): New function.
9718
        * trans-array.h: Declare these here.
9719
        * trans-decl.c(g95_create_mopdule_variable): Perform variable
9720
        initialization and creation here.
9721
        (g95_create_module_vars): Instead of here.
9722
        * trans.h (G95_TYPE_ARRAY_*: Rename from G95_TYPE_DESCRIPTOR_*.
9723
        * trans-intrinsic.c: Ditto.
9724
        * trans-types.c (g95_is_nodesc_array): New function.
9725
        (g95_get_nodesc_array_type): New function.
9726
        (g95_sym_type, g95_get_derived_type): Use them.
9727
        * trans-const.c (g95_conv_mpf_to_tree): Remove workaround.
9728
 
9729
2002-09-28  Paul Brook  
9730
 
9731
        * trans-const.c (g95_conv_mpf_to_tree): Work around backend bug.
9732
        * trans-intrinsic.c (g95_conv_intrinsic_abs): Correctly detect complex
9733
        parameters.
9734
 
9735
2002-09-24  Paul Brook  
9736
 
9737
        * f95-lang.c (listify): Remove declaration.
9738
        (expand_function_body): Use optimize >=1 instead of flag_tree_saa.
9739
        (listify)
9740
        * f95-tree.c (get_name): New function.
9741
        * trans.c (module_namespace): Remove.
9742
        * trans-decl.c: Use g95_chainon_list rather than chainon(listify()).
9743
        * trans-types.c: Ditto.
9744
 
9745
2002-09-19  Paul Brook  
9746
 
9747
        * trans-array.c (g95_get_array_cons_size): New Function.
9748
        (g95_con_ss_startstride): Handle Array constructors.
9749
        (g95_conv_loop_setup): Ditto.
9750
        (g95_conv_array_parameter): Ditto.
9751
        * tras-decl.c (g95_finish_var_decl): Make initializes variables
9752
        static.
9753
 
9754
2002-09-19  Paul Brook  
9755
 
9756
        * trans.c (g95_simple_fold_tmp): Detect variables inside
9757
        NON_LVALUE_EXPR.
9758
        * trans-stmt.c (g95_trans_arithmetic_if): Implement this.
9759
 
9760
2002-09-18  Steven Bosscher  
9761
 
9762
        * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree-ssa-dce.o
9763
 
9764
2002-09-14  Paul Brook  
9765
 
9766
        * trans.c (g95_create_module_variable): Move to trans-decl.c.
9767
        * trans-const.c (g95_conv_string_init): New Function.
9768
        * trans-const.h: Declare it.
9769
        * trans-decl.c (g95_get_symbol_decl): Handle initializers for static
9770
        variables. Don't bail on intrinsic symbols.
9771
        (get_extern_function_decl): Handle specific intrinsic functions.
9772
        * trans-types.c (g95_sym_type): Dummy functions don't return
9773
        reference types.
9774
        * trans-array.c (g95_build_array_initializer): New Function.
9775
        (g95_trans_auto_array_allocation): Build initializer for static decls.
9776
        Don't use mpz_addmul, it's GMP4 only.
9777
 
9778
2002-09-12  Paul Brook  
9779
 
9780
        * trans-decl.c (g95_generate_code): Fix thinko with return variable.
9781
        (g95_get_extern_function_decl, g95_build_function_decl): Mangle
9782
        assembler names for module procedures.
9783
 
9784
2002-09-11  Tobias Schlueter  
9785
 
9786
        * trans-array.c,h trans-expr.c, trans-stmt.c: Correct spelling of
9787
        dependency/
9788
 
9789
2002-09-10  Paul Brook  
9790
 
9791
        * trans-array.c: Change format of G95_SS_TEMP strictures.
9792
        (g95_check_fncall_dependancy): New function.
9793
        (trans_dummy_array_bias): stride[n], not stride[n-1]. for calculating
9794
        offsets.
9795
        * trans-decl.c (g95_get_symbol_decl): move assertion after handling of
9796
        result variables.
9797
        (g95_build_function_decl): Don't assume result arrays are packed.
9798
        (g95_trans-deferred-vars): Handle array result variables.
9799
        (g95_generate_fuction_code): Clear saved_function_decls.
9800
        * trans-expr.c (g95_conv_fnction_call): Handle direct array return by
9801
        reference.
9802
        (g95_trans_arrayfunc_assign): New function.
9803
        (g95_trans_assignment): Use it.
9804
        * trans.h (g95_ss): Add temp struct for G95_SS_TEMP.
9805
        (g95_se): Add direct_byref.
9806
        * trans-types.c: Use sym->result rather than sym where appropriate.
9807
        * trans-intrinsic.c (g95_conv_intrinsic_funcall): New function.
9808
        Update other functions to use this.
9809
        (g95_is_intrinsic_libcall): New function.
9810
        (g95_conv_intrinsic_function): Add MATMUL and PRODUCT intrinsics.
9811
        (g95_walk_intrinsic_function): Ditto.
9812
 
9813
2002-09-08  Paul Brook  
9814
 
9815
        * trans-types.c: Change rank field to dtype field in array descriptor.
9816
        * trans-array.c: Implement filling of dtype array descriptor field.
9817
        * trans-intrinsic.c: Fix broken LEN intrinsic.
9818
 
9819
2002-09-07  Paul Brook  
9820
 
9821
        * trans-intrinsic.c: Remove outdated todo intrinsic list.
9822
        (g95_get_symbol_for_expr): Remove hack for fortran based intrinsics.
9823
        (g95_walk_intrinsic_function): Add MINLOC and MAXLOC.
9824
 
9825
2002-09-06  Paul Brook  
9826
 
9827
        * Make-lang.in (F95_ADDITIONAL_OBJS): Add tree_alias_comon.o.
9828
        (gt-f95-trans-types.h): Add dependancy information.
9829
        * config-lang.in (gtfiles): Add trans-types.c
9830
        * f95-lang.c (g95_be_parse_file): Pass error and warning counts
9831
        back to top-level code.
9832
        * trans-array.c, trans-types.c: Change format of array descriptor.
9833
        (g95_conv_descriptor_dimension): New function.
9834
        * trans-types.h (g95_conv_descriptor_rank): define.
9835
        * trans-intrinsic.c: Implement PRODUCT, COUNT. MINLOC and MAXLOC
9836
        intrinsics.
9837
 
9838
2002-09-02  Steven Bosscher  
9839
 
9840
        * trans-array.c, trans-types.c: Add rank information to descriptor.
9841
 
9842
2002-09-06  Tobias Schlueter  
9843
 
9844
        * trans-stmt.c (g95_trans_allocate): Fix when ref==NULL.
9845
 
9846
2002-09-04  Paul Brook  
9847
 
9848
        * f95-lang.c (g95_create_decls): New function.
9849
        (g95_init):  Move initialization of external decls to above, and call
9850
        from g95_be_parse_file.
9851
        * trans.c (g95_finish_stmt): Don't amputate the decl chain.
9852
        * trans-types.c (g95_init_types): Always name integer and char types.
9853
        (g95_get_array_type_bounds): TYPE_NAME may be a TYPE_DECL.
9854
 
9855
2002-09-02  Steven Bosscher  
9856
 
9857
        * Make-lang.in: Add options.c to F95_PARSER_OBJS
9858
 
9859
2002-09-02  Paul Brook  
9860
 
9861
        * g95_generate_code: Clear the attr for __fortran_main.
9862
        * trans-types.c (g95_finish_type): New function.
9863
        * g95_init_io_state_type: Use g95_finish_type.
9864
        * g95_conv_intrinsic_anyall: Fix thinko in result initialization.
9865
 
9866
2002-09-01  Paul Brook  
9867
 
9868
        * README.backend: Warn about the dangers of extra config.h files.
9869
        Remove obsolete libgfor stuff.
9870
        * config-lang.in: Add target-libgfor dependancy.
9871
        * g95_conv_mpf_to_tree: Use & free allocated buffer p rather than buff.
9872
 
9873
2002-09-01  Toon Moene  
9874
 
9875
        * g95_conv_mpz_to_tree: Free storage pointed to by q,
9876
        not by buff.
9877
 
9878
2002-08-30  Paul Brook  
9879
 
9880
        * trans-intrinsic.c (g95_conv_intrinsic_function,
9881
        g95_walk_intrinsic_function): Added ANY and ALL.
9882
        (g95_conv_intrinsic_anyall): New function.
9883
        * iresolve.c (g95_resolve_any, g95_resolve_all): Include rank in
9884
        mangled name
9885
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.