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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [fortran/] [ChangeLog-2009] - Blame information for rev 328

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

Line No. Rev Author Line
1 285 jeremybenn
2009-12-29  Janus Weil  
2
 
3
        PR fortran/42517
4
        * invoke.texi: Document the interference of
5
        -fcheck=recursion and -fopenmp.
6
        * trans-decl.c (gfc_generate_function_code): Disable -fcheck=recursion
7
        when used with -fopenmp.
8
 
9
2009-12-28  Janus Weil  
10
 
11
        PR fortran/42353
12
        * symbol.c (gfc_find_derived_vtab): Make vtabs and vtypes private.
13
 
14
2009-12-27  Francois-Xavier Coudert  
15
            Daniel Kraft  
16
 
17
        PR fortran/22552
18
        * lang.opt (Wimplicit-procedure): New option.
19
        * gfortran.h (struct gfc_option_t): New member `warn_implicit_procedure'
20
        * options.c (gfc_handle_option): Handle -Wimplicit-procedure.
21
        * interface.c (gfc_procedure_use): Warn about procedure never
22
        explicitly declared if requested by the new flag.
23
        * invoke.texi: Document new flag -Wimplicit-procedure.
24
 
25
2009-12-17  Janus Weil  
26
 
27
        PR fortran/42144
28
        * trans-expr.c (select_class_proc): Skip abstract base types.
29
 
30
2009-12-16  Kazu Hirata  
31
 
32
        * gfc-internals.texi, gfortran.texi, invoke.texi: Fix typos.
33
        Follow spelling conventions.
34
 
35
2009-12-15  Tobias Burnus  
36
            Daniel Franke  
37
 
38
        PR fortran/41235
39
        * resolve.c (resolve_global_procedure): Add check for
40
        presence of an explicit interface for nonconstant,
41
        nonassumed character-length functions.
42
        (resolve_fl_procedure): Remove check for nonconstant
43
        character-length functions.
44
 
45
2009-12-14  Daniel Franke  
46
 
47
        PR fortran/42354
48
        * expr.c (check_init_expr): Do not check for specification functions.
49
 
50
2009-12-11  Janus Weil  
51
 
52
        PR fortran/42257
53
        * module.c (write_dt_extensions): Check for accessibility.
54
 
55
2009-12-11  Daniel Franke  
56
 
57
        PR fortran/40290
58
        * expr.c (gfc_type_convert_binary): Added warn-on-conversion flag,
59
        passed on to gfc_convert_type_warn() instead of gfc_convert_type();
60
        enabled warnings on all callers but ...
61
        * arith.c (eval_intrinsic): Disabled warnings on implicit type
62
        conversion.
63
        * gfortran.h gfc_type_convert_binary): Adjusted prototype.
64
 
65
2009-12-11  Janus Weil  
66
 
67
        PR fortran/42335
68
        * symbol.c (select_type_insert_tmp): Add an extra check for
69
        error recovery.
70
 
71
2009-12-10  Daniel Franke  
72
 
73
        PR fortran/40287
74
        * iresolve.c (resolve_mask_arg): Disabled warning on conversion
75
        to LOGICAL(1).
76
 
77
2009-12-10  Daniel Franke  
78
 
79
        PR fortran/41369
80
        * parse.c (match_deferred_characteristics): Removed check for empty
81
        types in function return values.
82
 
83
2009-12-10  Daniel Franke  
84
 
85
        PR fortran/34402
86
        * expr.c (check_alloc_comp_init): New.
87
        (check_init_expr): Verify that allocatable components
88
        are not data-initalized.
89
 
90
2008-12-08  Daniel Kraft  
91
 
92
        PR fortran/41177
93
        * gfortran.h (struct symbol_attribute): New flag `class_pointer'.
94
        * symbol.c (gfc_build_class_symbol): Set the new flag.
95
        * resolve.c (update_compcall_arglist): Remove wrong check for
96
        non-scalar base-object.
97
        (check_typebound_baseobject): Add the correct version here as well
98
        as some 'not implemented' message check in the old case.
99
        (resolve_typebound_procedure): Check that the passed-object dummy
100
        argument is scalar, non-pointer and non-allocatable as it should be.
101
 
102
2009-12-08  Tobias Burnus  
103
 
104
        PR fortran/40961
105
        PR fortran/40377
106
        * gfortran.texi (Non-Fortran Main Program): Add
107
        _gfortran_set_fpe documentation.
108
        (Interoperability with C): Mention array storage order.
109
 
110
2009-12-07  Daniel Franke  
111
 
112
        PR fortran/41940
113
        * match.c (gfc_match_allocate): Improved error message for
114
        allocatable scalars that are allocated with a shape.
115
 
116
2009-12-07  Kaveh R. Ghazi  
117
 
118
        PR other/40302
119
        * arith.c: Remove HAVE_mpc* checks throughout.
120
        * expr.c: Likewise.
121
        * gfortran.h: Likewise.
122
        * resolve.c: Likewise.
123
        * simplify.c: Likewise.
124
        * target-memory.c: Likewise.
125
        * target-memory.h: Likewise.
126
 
127
2009-12-06  Daniel Franke  
128
 
129
        PR fortran/40904
130
        * intrinsics.texi: Fixed description of COUNT.
131
 
132
2009-12-01  Janne Blomqvist  
133
 
134
        PR fortran/42131
135
        * trans-stmt.c (gfc_trans_do): Sign test using ternary operator.
136
 
137
2009-11-30  Janus Weil  
138
 
139
        PR fortran/42053
140
        * resolve.c (resolve_select_type): Check for duplicate CLASS IS blocks.
141
 
142
2009-11-30  Janus Weil  
143
 
144
        PR fortran/41631
145
        * decl.c (gfc_match_derived_decl): Set extension level.
146
        * gfortran.h (symbol_attribute): Expand 'extension' bit field to 8 bit.
147
        * iresolve.c (gfc_resolve_extends_type_of): Return value of
148
        'is_extension_of' has kind=4.
149
        * match.c (select_type_set_tmp,gfc_match_class_is): Create temporary
150
        for CLASS IS blocks.
151
        * module.c (MOD_VERSION): Bump module version.
152
        (ab_attribute,attr_bits): Remove AB_EXTENSION.
153
        (mio_symbol_attribute): Handle expanded 'extension' field.
154
        * resolve.c (resolve_select_type): Implement CLASS IS blocks.
155
        (resolve_fl_variable_derived): Show correct type name.
156
        * symbol.c (gfc_build_class_symbol): Set extension level.
157
 
158
2009-11-30  Janus Weil  
159
 
160
        * intrinsic.h (gfc_resolve_extends_type_of): Add prototype.
161
        * intrinsic.c (add_functions): Use 'gfc_resolve_extends_type_of'.
162
        * iresolve.c (gfc_resolve_extends_type_of): New function, which
163
        replaces the call to EXTENDS_TYPE_OF by the library function
164
        'is_extension_of' and modifies the arguments.
165
        * trans-intrinsic.c (gfc_conv_extends_type_of): Removed.
166
        (gfc_conv_intrinsic_function): FOR EXTENDS_TYPE_OF, don't call
167
        gfc_conv_extends_type_of but gfc_conv_intrinsic_funcall.
168
 
169
2009-11-30  Paul Thomas  
170
            Janus Weil  
171
 
172
        * decl.c (encapsulate_class_symbol): Replaced by
173
        'gfc_build_class_symbol'.
174
        (build_sym,build_struct): Call 'gfc_build_class_symbol'.
175
        (gfc_match_derived_decl): Replace vindex by hash_value.
176
        * dump-parse-tree.c (show_symbol): Replace vindex by hash_value.
177
        * gfortran.h (symbol_attribute): Add field 'vtab'.
178
        (gfc_symbol): Replace vindex by hash_value.
179
        (gfc_class_esym_list): Ditto.
180
        (gfc_get_derived_type,gfc_build_class_symbol,gfc_find_derived_vtab):
181
        New prototypes.
182
        * module.c (mio_symbol): Replace vindex by hash_value.
183
        * resolve.c (vindex_expr): Rename to 'hash_value_expr'.
184
        (resolve_class_compcall,resolve_class_typebound_call): Renamed
185
        'vindex_expr'.
186
        (resolve_select_type): Replace $vindex by $vptr->$hash.
187
        * symbol.c (gfc_add_save): Handle vtab symbols.
188
        (gfc_type_compatible): Rewrite.
189
        (gfc_build_class_symbol): New function which replaces
190
        'encapsulate_class_symbol'.
191
        (gfc_find_derived_vtab): New function to set up a vtab symbol for a
192
        derived type.
193
        * trans-decl.c (gfc_create_module_variable): Handle vtab symbols.
194
        * trans-expr.c (select_class_proc): Replace vindex by hash_value.
195
        (gfc_conv_derived_to_class): New function to construct a temporary
196
        CLASS variable from a derived type expression.
197
        (gfc_conv_procedure_call): Call 'gfc_conv_derived_to_class'.
198
        (gfc_conv_structure): Initialize the $extends and $size fields of
199
        vtab symbols.
200
        (gfc_trans_class_assign): Replace $vindex by $vptr. Remove the $size
201
        assignment.
202
        * trans-intrinsic.c (gfc_conv_same_type_as): Replace $vindex by
203
        $vptr->$hash, and replace vindex by hash_value.
204
        * trans-stmt.c (gfc_trans_allocate): Insert $vptr references, replace
205
        $vindex by $vptr. Remove the $size assignment.
206
        * trans-types.c (gfc_get_derived_type): Make it non-static.
207
 
208
2009-11-30  Thomas Koenig  
209
 
210
        PR fortran/42131
211
        * trans-stmt.c (gfc_trans_do):  Calculate loop count
212
        without if statements.
213
 
214
2009-11-28  Jakub Jelinek  
215
 
216
        * trans-common.c (create_common): Remove unused offset variable.
217
        * io.c (gfc_match_wait): Remove unused loc variable.
218
        * trans-openmp.c (gfc_trans_omp_clauses): Remove unused old_clauses
219
        variable.
220
        (gfc_trans_omp_do): Remove unused outermost variable.
221
        * iresolve.c (gfc_resolve_alarm_sub, gfc_resolve_fseek_sub): Remove
222
        unused status variable.
223
        * module.c (number_use_names): Remove unused c variable.
224
        (load_derived_extensions): Remove unused nuse variable.
225
        * trans-expr.c (gfc_conv_substring): Remove unused var variable.
226
        * trans-types.c (gfc_get_array_descr_info): Remove unused offset_off
227
        variable.
228
        * matchexp.c (match_primary): Remove unused where variable.
229
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Remove unused cond2
230
        variable.
231
        (gfc_conv_intrinsic_sizeof): Remove unused source variable.
232
        (gfc_conv_intrinsic_transfer): Remove unused stride variable.
233
        (gfc_conv_intrinsic_function): Remove unused isym variable.
234
        * arith.c (gfc_hollerith2real, gfc_hollerith2complex,
235
        gfc_hollerith2logical): Remove unused len variable.
236
        * parse.c (parse_derived): Remove unused derived_sym variable.
237
        * decl.c (variable_decl): Remove unused old_locus variable.
238
        * resolve.c (check_class_members): Remove unused tbp_sym variable.
239
        (resolve_ordinary_assign): Remove unused assign_proc variable.
240
        (resolve_equivalence): Remove unused value_name variable.
241
        * data.c (get_array_index): Remove unused re variable.
242
        * trans-array.c (gfc_conv_array_transpose): Remove unused src_info
243
        variable.
244
        (gfc_conv_resolve_dependencies): Remove unused aref and temp_dim
245
        variables.
246
        (gfc_conv_loop_setup): Remove unused dim and len variables.
247
        (gfc_walk_variable_expr): Remove unused head variable.
248
        * match.c (match_typebound_call): Remove unused var variable.
249
        * intrinsic.c (gfc_convert_chartype): Remove unused from_ts variable.
250
 
251
2009-11-26  Jerry DeLisle  
252
 
253
        PR fortran/41807
254
        * trans-const.c (gfc_conv_const): Set se->expr to a constant on error.
255
 
256
2009-11-26  Jerry DeLisle  
257
 
258
        PR fortran/41278
259
        * trans-array.c (gfc_conv_array_transpose): Delete unnecessary assert.
260
 
261
2009-11-26  Janus Weil  
262
 
263
        PR fortran/42048
264
        PR fortran/42167
265
        * gfortran.h (gfc_is_function_return_value): New prototype.
266
        * match.c (gfc_match_call): Use new function
267
        'gfc_is_function_return_value'.
268
        * primary.c (gfc_is_function_return_value): New function to check if a
269
        symbol is the return value of an encompassing function.
270
        (match_actual_arg,gfc_match_rvalue,match_variable): Use new function
271
        'gfc_is_function_return_value'.
272
        * resolve.c (resolve_common_blocks,resolve_actual_arglist): Ditto.
273
 
274
2009-11-25  Jakub Jelinek  
275
 
276
        PR fortran/42162
277
        * trans-openmp.c (gfc_trans_omp_do): When dovar isn't a VAR_DECL,
278
        don't use simple loop and handle clauses properly.
279
 
280
2009-11-24  Jerry DeLisle  
281
 
282
        PR fortran/42008
283
        * decl.c (variable_decl): Do not error on initialization within a
284
        derived type specification of a pure procedure.
285
 
286
2009-11-24  Janus Weil  
287
 
288
        PR fortran/42045
289
        * resolve.c (resolve_actual_arglist): Make sure procedure pointer
290
        actual arguments are resolved correctly.
291
        (resolve_function): An EXPR_FUNCTION which is a procedure pointer
292
        component, has already been resolved.
293
        (resolve_fl_derived): Procedure pointer components should not be
294
        implicitly typed.
295
 
296
2009-11-21  Jerry DeLisle  
297
 
298
        PR fortran/41807
299
        * trans-const.c (gfc_conv_const): Fix typo in comment. Replace assert
300
        with error message if not constant.
301
        * resolve.c (next_data_value): Delete check for constant.
302
 
303
2009-11-20  Janus Weil  
304
 
305
        * intrinsic.texi (C_F_PROCPOINTER): Remove obsolete comment.
306
 
307
2009-11-20  Paul Thomas  
308
            Janus Weil  
309
 
310
        PR fortran/42104
311
        * trans-expr.c (gfc_conv_procedure_call): If procedure pointer
312
        component call, use the component's 'always_explicit' attr
313
        for array arguments.
314
 
315
2009-11-19  Janus Weil  
316
 
317
        * trans-expr.c (conv_isocbinding_procedure): New function.
318
        (gfc_conv_procedure_call): Move ISO_C_BINDING stuff to
319
        separate function.
320
 
321
2009-11-19  Tobias Burnus  
322
 
323
        * gfortran.texi (Interoperable Subroutines and Functions): Fix
324
        example.
325
 
326
2009-11-18  Janus Weil  
327
 
328
        PR fortran/42072
329
        * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
330
        dummies which are passed to C_F_PROCPOINTER.
331
 
332
2009-11-18  Alexandre Oliva  
333
 
334
        * module.c (mio_f2k_derived): Initialize op.
335
 
336
2009-11-15  Janus Weil  
337
 
338
        PR fortran/42048
339
        * match.c (gfc_match_call): If we're inside a function with derived
340
        type return value, allow calling a TBP of the result variable.
341
 
342
2009-11-12  Tobias Burnus  
343
 
344
        * intrinsic.texi (XOR): Refer also to .NEQV.
345
        (ISO_FORTRAN_ENV): State which parameters are F2008.
346
 
347
2009-11-11  Janus Weil  
348
 
349
        PR fortran/41978
350
        * resolve.c (resolve_ref): Take care of procedure pointer component
351
        references.
352
 
353
2009-11-06  Jerry DeLisle  
354
 
355
        PR fortran/41909
356
        * resolve.c (is_illegal_recursion): Return false if sym is program.
357
 
358
2009-11-06  Steven G. Kargl  
359
 
360
        * resolve.c (check_typebound_override): Remove duplicate "in" in error
361
        message.
362
 
363
2009-11-05  Steven G. Kargl  
364
 
365
        PR fortran/41918
366
        * fortran/trans-decl.c: Silence intent(out) warning for derived type
367
        dummy arguments with default initialization.
368
 
369
2009-11-05  Janus Weil  
370
 
371
        PR fortran/41556
372
        * interface.c (matching_typebound_op,gfc_extend_assign): Handle CLASS
373
        variables.
374
 
375
2009-11-05  Janus Weil  
376
 
377
        PR fortran/41556
378
        PR fortran/41873
379
        * resolve.c (resolve_function,resolve_call): Prevent abstract interfaces
380
        from being called, but allow deferred type-bound procedures with
381
        abstract interface.
382
 
383
2009-11-04  Tobias Burnus 
384
            Janus Weil  
385
 
386
        PR fortran/41556
387
        PR fortran/41937
388
        * interface.c (gfc_check_operator_interface): Handle CLASS arguments.
389
        * resolve.c (resolve_allocate_expr): Handle allocatable components of
390
        CLASS variables.
391
 
392
2009-11-04  Richard Guenther  
393
 
394
        * options.c (gfc_post_options): Rely on common code processing
395
        LTO options.  Only enable -fwhole-file here.
396
 
397
2009-11-03  Tobias Burnus  
398
 
399
        PR fortran/41907
400
        * trans-expr.c (gfc_conv_procedure_call): Fix presence check
401
        for optional arguments.
402
 
403
2009-11-01  Tobias Burnus  
404
 
405
        PR fortran/41872
406
        * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
407
        autodeallocated allocatable scalars at the end of scope.
408
        (gfc_generate_function_code): Fix indention.
409
        * trans-expr.c (gfc_conv_procedure_call): For allocatable
410
        scalars, fix calling by reference and autodeallocating
411
        of intent out variables.
412
 
413
2009-11-01  Tobias Burnus  
414
 
415
        PR fortran/41850
416
        * trans-expr.c (gfc_conv_procedure_call): Deallocate intent-out
417
        variables only when present. Remove unneccessary present check.
418
 
419
2009-10-29  Tobias Burnus  
420
 
421
        PR fortran/41777
422
        * trans-expr.c (gfc_conv_procedure_call,gfc_conv_expr_reference):
423
        Use for generic EXPR_FUNCTION the attributes of the specific
424
        function.
425
 
426
2009-10-29  Janne Blomqvist  
427
 
428
        PR fortran/41860
429
        * resolve.c (apply_default_init_local): Treat -fno-automatic as if
430
        var was saved.
431
 
432
2009-10-28  Rafael Avila de Espindola  
433
 
434
        * trans-common.c (create_common): Set TREE_PUBLIC to false on
435
        fake variables.
436
 
437
2009-10-26  Janus Weil  
438
 
439
        PR fortran/41714
440
        * trans.c (gfc_trans_code): Remove call to
441
        'tree_annotate_all_with_location'. Location should already be set.
442
        * trans-openmp.c (gfc_trans_omp_workshare): Ditto.
443
        * trans-stmt.c (gfc_trans_allocate): Do correct data initialization for
444
        CLASS variables with SOURCE tag, plus some cleanup.
445
 
446
2009-10-24  Janus Weil  
447
            Paul Thomas  
448
 
449
        PR fortran/41784
450
        * module.c (load_derived_extensions): Skip symbols which are not being
451
        loaded.
452
 
453
2009-10-24  Paul Thomas  
454
 
455
        PR fortran/41772
456
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Stop'extent'
457
        from going negative.
458
 
459
2009-10-23  Janus Weil  
460
 
461
        PR fortran/41800
462
        * trans-expr.c (gfc_trans_scalar_assign): Handle CLASS variables.
463
 
464
2009-10-23  Janus Weil  
465
 
466
        PR fortran/41758
467
        * match.c (conformable_arrays): Move to resolve.c.
468
        (gfc_match_allocate): Don't resolve SOURCE expr yet, and move some
469
        checks to resolve_allocate_expr.
470
        * resolve.c (conformable_arrays): Moved here from match.c.
471
        (resolve_allocate_expr): Moved some checks here from gfc_match_allocate.
472
        (resolve_code): Resolve SOURCE tag for ALLOCATE expressions.
473
 
474
2009-10-22  Janus Weil  
475
 
476
        PR fortran/41781
477
        * resolve.c (resolve_codes): Don't clear 'cs_base' for BLOCK constructs,
478
        to make sure labels are treated correctly.
479
        * symbol.c (gfc_get_st_label): Create labels in the right namespace.
480
        For BLOCK constructs go into the parent namespace.
481
 
482
2009-10-21  Janus Weil  
483
 
484
        PR fortran/41706
485
        PR fortran/41766
486
        * match.c (select_type_set_tmp): Set flavor for temporary.
487
        * resolve.c (resolve_class_typebound_call): Correctly resolve actual
488
        arguments.
489
 
490
2009-10-20  Paul Thomas  
491
 
492
        PR fortran/41706
493
        * resolve.c (resolve_arg_exprs): New function.
494
        (resolve_class_compcall): Call the above.
495
        (resolve_class_typebound_call): The same.
496
 
497
2009-10-19  Janus Weil  
498
 
499
        PR fortran/41586
500
        * parse.c (parse_derived): Correctly set 'alloc_comp' and 'pointer_comp'
501
        for CLASS variables.
502
        * trans-array.c (structure_alloc_comps): Handle deallocation and
503
        nullification of allocatable scalar components.
504
        * trans-decl.c (gfc_get_symbol_decl): Remember allocatable scalars for
505
        automatic deallocation.
506
        (gfc_trans_deferred_vars): Automatically deallocate allocatable scalars.
507
 
508
2009-10-19  Tobias Burnus  
509
            Steven G. Kargl  
510
 
511
        PR fortran/41755
512
        * symbol.c (gfc_undo_symbols): Add NULL check.
513
        * match.c (gfc_match_equivalence): Add check for
514
        missing comma.
515
 
516
2009-10-19  Richard Guenther  
517
 
518
        PR fortran/41494
519
        * trans-expr.c (gfc_trans_scalar_assign): Do not call
520
        gfc_evaluate_now.
521
 
522
2009-10-17  Janus Weil  
523
            Paul Thomas  
524
 
525
        PR fortran/41608
526
        * decl.c (gfc_match_data_decl): Add BT_CLASS for undefined type
527
        and empty type errors.
528
        * parse.c (gfc_build_block_ns): Only set recursive if parent ns
529
        has a proc_name.
530
 
531
        PR fortran/41629
532
        PR fortran/41618
533
        PR fortran/41587
534
        * gfortran.h : Add class_ok bitfield to symbol_attr.
535
        * decl.c (build_sym): Set attr.class_ok if dummy, pointer or
536
        allocatable.
537
        (build_struct): Use gfc_try 't' to carry errors past the call
538
        to encapsulate_class_symbol.
539
        (attr_decl1): For a CLASS object, apply the new attribute to
540
        the data component.
541
        * match.c (gfc_match_select_type): Set attr.class_ok for an
542
        assigned selector.
543
        * resolve.c (resolve_fl_variable_derived): Check a CLASS object
544
        is dummy, pointer or allocatable by testing the class_ok and
545
        the use_assoc attribute.
546
 
547
2009-10-16  Janus Weil  
548
 
549
        PR fortran/41719
550
        * resolve.c (resolve_ordinary_assign): Reject intrinsic assignments
551
        to polymorphic variables.
552
 
553
2009-10-16  Paul Thomas  
554
 
555
        PR fortran/41648
556
        PR fortran/41656
557
        * trans-expr.c (select_class_proc): Convert the expression for the
558
        vindex, carried on the first member of the esym list.
559
        * gfortran.h : Add the vindex field to the esym_list structure.
560
        and eliminate the class_object field.
561
        * resolve.c (check_class_members): Remove the setting of the
562
        class_object field.
563
        (vindex_expr): New function.
564
        (get_class_from_expr): New function.
565
        (resolve_class_compcall): Call the above to find the ultimate
566
        class or derived component.  If derived, do not generate the
567
        esym list.  Add and expression for the vindex to the esym list
568
        by calling the above.
569
        (resolve_class_typebound_call): The same.
570
 
571
2009-10-15  Steven G. Kargl  
572
 
573
        PR fortran/41712
574
        * intrinsic.texi: Explicitly state that ETIME and DTIME take
575
        REAL(4) arguments.  Fix nearby typographically errors where
576
        /leq was used instead of \leq.
577
 
578
2009-10-13  Janus Weil  
579
 
580
        PR fortran/41581
581
        * decl.c (encapsulate_class_symbol): Add new component '$size'.
582
        * resolve.c (resolve_allocate_expr): Move CLASS handling to
583
        gfc_trans_allocate.
584
        (resolve_class_assign): Replaced by gfc_trans_class_assign.
585
        (resolve_code): Remove calls to resolve_class_assign.
586
        * trans.c (gfc_trans_code): Use new function gfc_trans_class_assign.
587
        * trans-expr.c (get_proc_ptr_comp): Fix a memory leak.
588
        (gfc_conv_procedure_call): For CLASS dummies, set the
589
        $size component.
590
        (gfc_trans_class_assign): New function, replacing resolve_class_assign.
591
        * trans-stmt.h (gfc_trans_class_assign): New prototype.
592
        * trans-stmt.c (gfc_trans_allocate): Use correct size when allocating
593
        CLASS variables. Do proper initialization. Move some code here from
594
        resolve_allocate_expr.
595
 
596
2009-10-11 Jerry DeLisle  
597
 
598
        PR fortran/38439
599
        * io.c (check_format): Fix locus for error messages and fix a comment.
600
 
601
2009-10-11  Paul Thomas  
602
 
603
        PR fortran/41583
604
        * decl.c (hash_value): New function.
605
        (gfc_match_derived_decl): Call it.
606
 
607
2009-10-09  Janus Weil  
608
 
609
        PR fortran/41585
610
        * decl.c (build_struct): Bugfix for CLASS components.
611
 
612
2009-10-09  Tobias Burnus  
613
 
614
        PR fortran/41582
615
        * decl.c (encapsulate_class_symbol): Save attr.abstract.
616
        * resolve.c (resolve_allocate_expr): Reject class allocate
617
        without typespec or source=.
618
        * trans-stmt.c (gfc_trans_allocate): Change gfc_warning
619
        into gfc_error for "not yet implemented".
620
 
621
2009-10-09  Janus Weil  
622
 
623
        PR fortran/41579
624
        * gfortran.h (gfc_select_type_stack): New struct, to be used as a stack
625
        for SELECT TYPE statements.
626
        (select_type_stack): New global variable.
627
        (type_selector,select_type_tmp): Removed.
628
        * match.c (type_selector,type_selector): Removed.
629
        (select_type_stack): New variable, serving as a stack for
630
        SELECT TYPE statements.
631
        (select_type_push,select_type_set_tmp): New functions.
632
        (gfc_match_select_type): Call select_type_push.
633
        (gfc_match_type_is): Call select_type_set_tmp.
634
        * parse.c (select_type_pop): New function.
635
        (parse_select_type_block): Call select_type_pop.
636
        * symbol.c (select_type_insert_tmp): New function.
637
        (gfc_find_sym_tree): Call select_type_insert_tmp.
638
 
639
2009-10-07  Kaveh R. Ghazi  
640
 
641
        * arith.c (arith_power): Use mpc_pow_z.
642
        * gfortran.h (HAVE_mpc_pow_z): Define.
643
 
644
2009-10-07  Daniel Kraft  
645
 
646
        PR fortran/41615
647
        * resolve.c (resolve_contained_fntype): Clarify error message for
648
        invalid assumed-length character result on module procedures.
649
 
650
2009-10-07  Janus Weil  
651
 
652
        * expr.c (gfc_check_pointer_assign): Do the correct type checking when
653
        CLASS variables are involved.
654
        * match.c (gfc_match_select_type): Parse associate-name in SELECT TYPE
655
        statements, and set up a local namespace for the SELECT TYPE block.
656
        * parse.h (gfc_build_block_ns): New prototype.
657
        * parse.c (parse_select_type_block): Return from local namespace to its
658
        parent after SELECT TYPE block.
659
        (gfc_build_block_ns): New function for setting up the local namespace
660
        for a BLOCK construct.
661
        (parse_block_construct): Use gfc_build_block_ns.
662
        * resolve.c (resolve_select_type): Insert assignment for the selector
663
        variable, in case an associate-name is given, and put the SELECT TYPE
664
        statement inside a BLOCK.
665
        (resolve_code): Call resolve_class_assign after checking the assignment.
666
        * symbol.c (gfc_find_sym_tree): Moved some code here from
667
        gfc_get_ha_sym_tree.
668
        (gfc_get_ha_sym_tree): Moved some code to gfc_find_sym_tree.
669
 
670
2009-10-07  Paul Thomas 
671
 
672
        PR fortran/41613
673
        * resolve.c (check_class_members): Reset compcall.assign.
674
 
675
2009-10-05  Paul Thomas  
676
 
677
        * trans-expr.c (select_class_proc): New function.
678
        (conv_function_val): Deal with class methods and call above.
679
        * symbol.c (gfc_type_compatible): Treat case where both ts1 and
680
        ts2 are BT_CLASS.
681
        gfortran.h : Add structure gfc_class_esym_list and include in
682
        the structure gfc_expr.
683
        * module.c (load_derived_extensions): New function.
684
        (read_module): Call above.
685
        (write_dt_extensions): New function.
686
        (write_derived_extensions): New function.
687
        (write_module): Use the above.
688
        * resolve.c (resolve_typebound_call): Add a function expression
689
        for class methods.  This carries the chain of symbols for the
690
        dynamic dispatch in select_class_proc.
691
        (resolve_compcall): Add second, boolean argument to indicate if
692
        a function is being handled.
693
        (check_members): New function.
694
        (check_class_members): New function.
695
        (resolve_class_compcall): New function.
696
        (resolve_class_typebound_call): New function.
697
        (gfc_resolve_expr): Call above for component calls..
698
 
699
2009-10-05  Daniel Kraft  
700
 
701
        PR fortran/41403
702
        * trans-stmt.c (gfc_trans_goto): Ignore statement list on assigned goto
703
        if it is present.
704
 
705
2009-10-03  Richard Guenther  
706
 
707
        * options.c (gfc_post_options): Handle -flto and -fwhopr.
708
 
709
2009-10-02  Tobias Burnus  
710
 
711
        PR fortran/41479
712
        * trans-decl.c (gfc_init_default_dt): Check for presence of
713
        the argument only if it is optional or in entry master.
714
        (init_intent_out_dt): Ditto; call gfc_init_default_dt
715
        for all derived types with initializers.
716
 
717
2009-10-01  Kaveh R. Ghazi  
718
 
719
        PR fortran/33197
720
        * gfortran.h (HAVE_mpc_arc): Define.
721
        * simplify.c (gfc_simplify_acos): Handle complex acos.
722
        (gfc_simplify_acosh): Likewise for acosh.
723
        (gfc_simplify_asin): Likewise for asin.
724
        (gfc_simplify_asinh): Likewise for asinh.
725
        (gfc_simplify_atan): Likewise for atan.
726
        (gfc_simplify_atanh): Likewise for atanh.
727
 
728
2009-10-01  Tobias Burnus  
729
 
730
        PR fortran/41515
731
        * decl.c (do_parm): Call add_init_expr_to_sym.
732
 
733
2009-09-30  Dennis Wassel  
734
 
735
        * gcc/fortran/trans-array.c (gfc_trans_array_bound_check): Improved
736
        bounds checking error messages. (gfc_conv_array_ref): Likewise.
737
        (gfc_conv_ss_startstride): Likewise.
738
 
739
2009-09-30  Janus Weil  
740
 
741
        * resolve.c (check_typebound_baseobject): Don't check for
742
        abstract types for CLASS.
743
        (resolve_class_assign): Adapt for RHS being a CLASS.
744
        * trans-intrinsic.c (gfc_conv_associated): Add component ref
745
        if expr is a CLASS.
746
 
747
2009-09-30  Janus Weil  
748
 
749
        * check.c (gfc_check_same_type_as): New function for checking
750
        SAME_TYPE_AS and EXTENDS_TYPE_OF.
751
        * decl.c (encapsulate_class_symbol): Set ABSTRACT attribute for class
752
        container, if the contained type has it. Add an initializer for the
753
        class container.
754
        (add_init_expr_to_sym): Handle BT_CLASS.
755
        (vindex_counter): New counter for setting vindices.
756
        (gfc_match_derived_decl): Set vindex for all derived types, not only
757
        those which are being extended.
758
        * expr.c (gfc_check_assign_symbol): Handle NULL initialization of class
759
        pointers.
760
        * gfortran.h (gfc_isym_id): New values GFC_ISYM_SAME_TYPE_AS and
761
        GFC_ISYM_EXTENDS_TYPE_OF.
762
        (gfc_type_is_extensible): New prototype.
763
        * intrinsic.h (gfc_check_same_type_as): New prototype.
764
        * intrinsic.c (add_functions): Add SAME_TYPE_AS and EXTENDS_TYPE_OF.
765
        * primary.c (gfc_expr_attr): Handle CLASS-valued functions.
766
        * resolve.c (resolve_structure_cons): Handle BT_CLASS.
767
        (type_is_extensible): Make non-static and rename to
768
        'gfc_type_is_extensible.
769
        (resolve_select_type): Renamed type_is_extensible.
770
        (resolve_class_assign): Handle NULL pointers.
771
        (resolve_fl_variable_derived): Renamed type_is_extensible.
772
        (resolve_fl_derived): Ditto.
773
        * trans-expr.c (gfc_trans_subcomponent_assign): Handle NULL
774
        initialization of class pointer components.
775
        (gfc_conv_structure): Handle BT_CLASS.
776
        * trans-intrinsic.c (gfc_conv_same_type_as,gfc_conv_extends_type_of):
777
        New functions.
778
        (gfc_conv_intrinsic_function): Handle SAME_TYPE_AS and EXTENDS_TYPE_OF.
779
 
780
2009-09-30  Janus Weil  
781
 
782
        * gfortran.h (type_selector, select_type_tmp): New global variables.
783
        * match.c (type_selector, select_type_tmp): New global variables,
784
        used for SELECT TYPE statements.
785
        (gfc_match_select_type): Better error handling. Remember selector.
786
        (gfc_match_type_is): Create temporary variable.
787
        * module.c (ab_attribute): New value 'AB_IS_CLASS'.
788
        (attr_bits): New string.
789
        (mio_symbol_attribute): Handle 'is_class'.
790
        * resolve.c (resolve_select_type): Insert pointer assignment statement,
791
        to assign temporary to selector.
792
        * symbol.c (gfc_get_ha_sym_tree): Replace selector by a temporary
793
        in SELECT TYPE statements.
794
 
795
2009-09-30  Janus Weil  
796
 
797
        * dump-parse-tree.c (show_code_node): Renamed 'alloc_list'.
798
        * gfortran.h (gfc_code): Rename 'alloc_list'. Add member 'ts'.
799
        (gfc_expr_to_initialize): New prototype.
800
        * match.c (alloc_opt_list): Correctly check type compatibility.
801
        Renamed 'alloc_list'.
802
        (dealloc_opt_list): Renamed 'alloc_list'.
803
        * resolve.c (expr_to_initialize): Rename to 'gfc_expr_to_initialize'
804
        and make it non-static.
805
        (resolve_allocate_expr): Set vindex for CLASS variables correctly.
806
        Move initialization code to gfc_trans_allocate. Renamed 'alloc_list'.
807
        (resolve_allocate_deallocate): Renamed 'alloc_list'.
808
        (check_class_pointer_assign): Rename to 'resolve_class_assign'. Change
809
        argument type. Adjust to work with ordinary assignments.
810
        (resolve_code): Call 'resolve_class_assign' for ordinary assignments.
811
        Renamed 'check_class_pointer_assign'.
812
        * st.c (gfc_free_statement): Renamed 'alloc_list'.
813
        * trans-stmt.c (gfc_trans_allocate): Renamed 'alloc_list'. Handle
814
        size determination and initialization of CLASS variables. Bugfix for
815
        ALLOCATE statements with default initialization and SOURCE block.
816
        (gfc_trans_deallocate): Renamed 'alloc_list'.
817
 
818
2009-09-30  Paul Thomas  
819
 
820
        * trans-expr.c (gfc_conv_procedure_call): Convert a derived
821
        type actual to a class object if the formal argument is a
822
        class.
823
 
824
2009-09-30  Janus Weil  
825
 
826
        PR fortran/40996
827
        * decl.c (build_struct): Handle allocatable scalar components.
828
        * expr.c (gfc_add_component_ref): Correctly set typespec of expression,
829
        after inserting component reference.
830
        * match.c (gfc_match_type_is,gfc_match_class_is): Make sure that no
831
        variables are being used uninitialized.
832
        * primary.c (gfc_match_varspec): Handle CLASS array components.
833
        * resolve.c (resolve_select_type): Transform EXEC_SELECT_TYPE to
834
        EXEC_SELECT.
835
        * trans-array.c (structure_alloc_comps,gfc_trans_deferred_array):
836
        Handle allocatable scalar components.
837
        * trans-expr.c (gfc_conv_component_ref): Ditto.
838
        * trans-types.c (gfc_get_derived_type): Ditto.
839
 
840
2009-09-30  Janus Weil  
841
 
842
        * decl.c (encapsulate_class_symbol): Modify names of class container
843
        components by prefixing with '$'.
844
        (gfc_match_end): Handle COMP_SELECT_TYPE.
845
        * expr.c (gfc_add_component_ref): Modify names of class container
846
        components by prefixing with '$'.
847
        * gfortran.h (gfc_statement): Add ST_SELECT_TYPE, ST_TYPE_IS and
848
        ST_CLASS_IS.
849
        (gfc_case): New field 'ts'.
850
        (gfc_exec_op): Add EXEC_SELECT_TYPE.
851
        (gfc_type_is_extension_of): New prototype.
852
        * match.h (gfc_match_select_type,gfc_match_type_is,gfc_match_class_is):
853
        New prototypes.
854
        * match.c (match_derived_type_spec): New function.
855
        (match_type_spec): Use 'match_derived_type_spec'.
856
        (match_case_eos): Modify error message.
857
        (gfc_match_select_type): New function.
858
        (gfc_match_case): Modify error message.
859
        (gfc_match_type_is): New function.
860
        (gfc_match_class_is): Ditto.
861
        * parse.h (gfc_compile_state): Add COMP_SELECT_TYPE.
862
        * parse.c (decode_statement): Handle SELECT TYPE, TYPE IS and CLASS IS
863
        statements.
864
        (next_statement): Handle ST_SELECT_TYPE.
865
        (gfc_ascii_statement): Handle ST_SELECT_TYPE, ST_TYPE_IS, ST_CLASS_IS.
866
        (parse_select_type_block): New function.
867
        (parse_executable): Handle ST_SELECT_TYPE.
868
        * resolve.c (resolve_deallocate_expr): Handle BT_CLASS. Modify names of
869
        class container components by prefixing with '$'.
870
        (resolve_allocate_expr): Ditto.
871
        (resolve_select_type): New function.
872
        (gfc_resolve_blocks): Handle EXEC_SELECT_TYPE.
873
        (check_class_pointer_assign): Modify names of class container
874
        components by prefixing with '$'.
875
        (resolve_code): Ditto.
876
        * st.c (gfc_free_statement): Ditto.
877
        * symbol.c (gfc_type_is_extension_of): New function.
878
        (gfc_type_compatible): Use 'gfc_type_is_extension_of', plus a bugfix.
879
        * trans.c (gfc_trans_code): Handel EXEC_SELECT_TYPE.
880
 
881
2009-09-30  Janus Weil  
882
            Paul Thomas 
883
 
884
        * check.c (gfc_check_move_alloc): Arguments don't have to be arrays.
885
        The second argument needs to be type-compatible with the first (not the
886
        other way around, which makes a difference for CLASS entities).
887
        * decl.c (encapsulate_class_symbol): New function.
888
        (build_sym,build_struct): Handle BT_CLASS, call
889
        'encapsulate_class_symbol'.
890
        (gfc_match_decl_type_spec): Remove warning, use BT_CLASS.
891
        (gfc_match_derived_decl): Set vindex;
892
        * expr.c (gfc_add_component_ref): New function.
893
        (gfc_copy_expr,gfc_check_pointer_assign,gfc_check_assign_symbol):
894
        Handle BT_CLASS.
895
        * dump-parse-tree.c (show_symbol): Print vindex.
896
        * gfortran.h (bt): New basic type BT_CLASS.
897
        (symbol_attribute): New field 'is_class'.
898
        (gfc_typespec): Remove field 'is_class'.
899
        (gfc_symbol): New field 'vindex'.
900
        (gfc_get_ultimate_derived_super_type): New prototype.
901
        (gfc_add_component_ref): Ditto.
902
        * interface.c (gfc_compare_derived_types): Pointer equality check
903
        moved here from gfc_compare_types.
904
        (gfc_compare_types): Handle BT_CLASS and use
905
        gfc_type_compatible.
906
        * match.c (gfc_match_allocate,gfc_match_deallocate,gfc_match_call):
907
        Handle BT_CLASS.
908
        * misc.c (gfc_clear_ts): Removed is_class.
909
        (gfc_basic_typename,gfc_typename): Handle BT_CLASS.
910
        * module.c (bt_types,mio_typespec): Handle BT_CLASS.
911
        (mio_symbol): Handle vindex.
912
        * primary.c (gfc_match_varspec,gfc_variable_attr): Handle BT_CLASS.
913
        * resolve.c (find_array_spec,check_typebound_baseobject):
914
        Handle BT_CLASS.
915
        (resolve_ppc_call,resolve_expr_ppc): Don't call 'gfc_is_proc_ptr_comp'
916
        inside 'gcc_assert'.
917
        (resolve_deallocate_expr,resolve_allocate_expr): Handle BT_CLASS.
918
        (check_class_pointer_assign): New function.
919
        (resolve_code): Handle BT_CLASS, call check_class_pointer_assign.
920
        (resolve_fl_var_and_proc,type_is_extensible,resolve_fl_variable_derived,
921
        resolve_fl_variable): Handle BT_CLASS.
922
        (check_generic_tbp_ambiguity): Add special case.
923
        (resolve_typebound_procedure,resolve_fl_derived): Handle BT_CLASS.
924
        * symbol.c (gfc_get_ultimate_derived_super_type): New function.
925
        (gfc_type_compatible): Handle BT_CLASS.
926
        * trans-expr.c (conv_parent_component_references): Handle CLASS
927
        containers.
928
        (gfc_conv_initializer): Handle BT_CLASS.
929
        * trans-types.c (gfc_typenode_for_spec,gfc_get_derived_type):
930
        Handle BT_CLASS.
931
 
932
2009-09-29  Daniel Kraft  
933
 
934
        PR fortran/39626
935
        * gfortran.h (enum gfc_statement): Add ST_BLOCK and ST_END_BLOCK.
936
        (struct gfc_namespace): Convert flags to bit-fields and add flag
937
        `construct_entities' for use with BLOCK constructs.
938
        (enum gfc_exec_code): Add EXEC_BLOCK.
939
        (struct gfc_code): Add namespace field to union for EXEC_BLOCK.
940
        * match.h (gfc_match_block): New prototype.
941
        * parse.h (enum gfc_compile_state): Add COMP_BLOCK.
942
        * trans.h (gfc_process_block_locals): New prototype.
943
        (gfc_trans_deferred_vars): Made public, new prototype.
944
        * trans-stmt.h (gfc_trans_block_construct): New prototype.
945
        * decl.c (gfc_match_end): Handle END BLOCK correctly.
946
        (gfc_match_intent): Error if inside of BLOCK.
947
        (gfc_match_optional), (gfc_match_value): Ditto.
948
        * match.c (gfc_match_block): New routine.
949
        * parse.c (decode_statement): Handle BLOCK statement.
950
        (case_exec_markers): Add ST_BLOCK.
951
        (case_end): Add ST_END_BLOCK.
952
        (gfc_ascii_statement): Handle ST_BLOCK and ST_END_BLOCK.
953
        (parse_spec): Check for statements not allowed inside of BLOCK.
954
        (parse_block_construct): New routine.
955
        (parse_executable): Parse BLOCKs.
956
        (parse_progunit): Disallow CONTAINS in BLOCK constructs.
957
        * resolve.c (is_illegal_recursion): Find real container procedure and
958
        don't get confused by BLOCK constructs.
959
        (resolve_block_construct): New routine.
960
        (gfc_resolve_blocks), (resolve_code): Handle EXEC_BLOCK.
961
        * st.c (gfc_free_statement): Handle EXEC_BLOCK statements.
962
        * trans-decl.c (saved_local_decls): New static variable.
963
        (add_decl_as_local): New routine.
964
        (gfc_finish_var_decl): Add variable as local if inside BLOCK.
965
        (gfc_trans_deferred_vars): Make public.
966
        (gfc_process_block_locals): New routine.
967
        * trans-stmt.c (gfc_trans_block_construct): New routine.
968
        * trans.c (gfc_trans_code): Handle EXEC_BLOCK statements.
969
 
970
2009-09-28  Jerry DeLisle  
971
 
972
        PR fortran/35862
973
        * io.c (format_token): Add enumerators for rounding format specifiers.
974
        (format_lex): Tokenize the rounding format specifiers.
975
        (gfc_match_open): Enable rounding modes in OPEN statement.
976
 
977
2009-09-28  Richard Henderson  
978
 
979
        * f95-lang.c (gfc_init_builtin_functions): Update call to
980
        build_common_builtin_nodes.
981
 
982
2009-09-25  Kaveh R. Ghazi  
983
 
984
        * simplify.c (gfc_simplify_acos, gfc_simplify_acosh,
985
        gfc_simplify_asin, gfc_simplify_asinh, gfc_simplify_atan,
986
        gfc_simplify_atanh): Fix error message.
987
 
988
2009-09-24  Steven G. Kargl  
989
 
990
        PR fortran/41459
991
        * error.c(gfc_warning_now): Move warnings_are_errors test to
992
        after actual emitting of the warning.
993
        * parse.c (next_free): Improve error locus printing.
994
        (next_fixed): Change gfc_warn to gfc_warning_now, and improve
995
        locus reporting.
996
 
997
2009-09-16  Michael Matz  
998
 
999
        PR fortran/41212
1000
        * trans.h (struct lang_type): Remove nontarget_type member.
1001
        * trans.c (gfc_add_modify): Don't access it.
1002
        * trans-decl.c (gfc_finish_var_decl): Don't allocate and set it,
1003
        instead set DECL_RESTRICTED_P on affected decls.
1004
 
1005
2009-09-14  Richard Henderson  
1006
 
1007
        * f95-lang.c (gfc_init_builtin_functions): Update call to
1008
        build_common_builtin_nodes.
1009
        (gfc_maybe_initialize_eh): Don't call
1010
        default_init_unwind_resume_libfunc.
1011
 
1012
2009-09-13  Richard Guenther  
1013
        Rafael Avila de Espindola  
1014
 
1015
        * f95-lang.c (gfc_maybe_initialize_eh): Do not init
1016
        eh_personality_libfunc.
1017
 
1018
2009-09-11  Janus Weil  
1019
 
1020
        PR fortran/41242
1021
        * resolve.c (resolve_ordinary_assign): Don't call resolve_code,
1022
        to avoid that subsequent codes are resolved more than once.
1023
        (resolve_code): Make sure that type-bound assignment operators are
1024
        resolved correctly.
1025
 
1026
 
1027
2009-09-10  Steven G. Kargl  
1028
 
1029
        PR fortran/31292
1030
        * fortran/decl.c(gfc_match_modproc): Check that module procedures
1031
        from a module can USEd in module procedure statements in other
1032
        program units.  Update locus for better error message display.
1033
        Detect intrinsic procedures in module procedure statements.
1034
 
1035
2009-09-09  Richard Guenther  
1036
 
1037
        PR fortran/41297
1038
        * trans-expr.c (gfc_trans_scalar_assign): Correct typo that
1039
        left 'tmp' unused in derived type assignment.
1040
 
1041
2009-09-07  Thomas Koenig  
1042
 
1043
        PR fortran/41197
1044
        * resolve_c (resolve_allocate_deallocate):  Complain
1045
        if stat or errmsg varaible is an array.
1046
 
1047
2009-09-05  Paul Thomas  
1048
 
1049
        PR fortran/41258
1050
        * primary.c (gfc_match_varspec): Do not look for typebound
1051
        procedures unless the derived type has a f2k_derived namespace.
1052
 
1053
2009-09-03  Diego Novillo  
1054
 
1055
        * f95-lang.c (lang_hooks): Remove const qualifier.
1056
 
1057
2009-09-01  Richard Guenther  
1058
 
1059
        * f95-lang.c (gfc_mark_addressable): Remove.
1060
        (LANG_HOOKS_MARK_ADDRESSABLE): Likewise.
1061
 
1062
2009-08-31  Jerry DeLisle  
1063
 
1064
        PR fortran/39229
1065
        * scanner.c (next_char): Fix typo in comment.
1066
        (gfc_get_char_literal): Warn if truncate flag is set for both fixed and
1067
        free form source, adjusting error locus as needed.
1068
        * parse.c (next_fixed): Clear the truncate flag.
1069
        (next_statement): Remove truncate warning.
1070
 
1071
2009-08-31  Janus Weil  
1072
            Paul Thomas  
1073
 
1074
        PR fortran/40940
1075
        * array.c (gfc_match_array_constructor): Rename gfc_match_type_spec.
1076
        * decl.c (gfc_match_type_spec): Rename to gfc_match_decl_type_spec,
1077
        and reject CLASS with -std=f95.
1078
        (gfc_match_implicit, gfc_match_data_decl,gfc_match_prefix,
1079
        match_procedure_interface): Rename gfc_match_type_spec.
1080
        * gfortran.h (gfc_type_compatible): Add prototype.
1081
        * match.h (gfc_match_type_spec): Rename to gfc_match_decl_type_spec.
1082
        * match.c (match_intrinsic_typespec): Rename to match_type_spec, and
1083
        add handling of derived types.
1084
        (gfc_match_allocate): Rename match_intrinsic_typespec and check
1085
        type compatibility of derived types.
1086
        * symbol.c (gfc_type_compatible): New function to check if two types
1087
        are compatible.
1088
 
1089
2009-08-31  Janus Weil  
1090
 
1091
        PR fortran/40996
1092
        * check.c (gfc_check_allocated): Implement allocatable scalars.
1093
        * resolve.c (resolve_allocate_expr,resolve_fl_var_and_proc): Ditto.
1094
        * trans-intrinsic.c (gfc_conv_allocated): Ditto.
1095
 
1096
2009-08-30  Daniel Kraft  
1097
 
1098
        PR fortran/37425
1099
        * dump-parse-tree.c (show_typebound_proc): Renamed from `show_typebound'
1100
        and accept gfc_typebound_proc and name instead of the symtree, needed
1101
        for intrinsic operator output.
1102
        (show_typebound_symtree): New method calling `show_typebound_proc'.
1103
        (show_f2k_derived): Output type-bound operators also.
1104
        (show_symbol): Moved output of `Procedure bindings:' label to
1105
        `show_f2k_derived'.
1106
        * gfortran.texi (Fortran 2003 status): Mention support of
1107
        array-constructors with explicit type specification, type-bound
1108
        procedures/operators, type extension, ABSTRACT types and DEFERRED.
1109
        Link to Fortran 2003 wiki page.
1110
        (Fortran 2008 status): Fix typo.  Link to Fortran 2008 wiki page.
1111
        * gfc-internals.texi (Type-bound Procedures): Document the new
1112
        members/attributes of gfc_expr.value.compcall used for type-bound
1113
        operators.
1114
        (Type-bound Operators): New section documenting their internals.
1115
 
1116
2009-08-27  Janus Weil  
1117
 
1118
        PR fortran/40869
1119
        * expr.c (gfc_check_pointer_assign): Enable interface check for
1120
        pointer assignments involving procedure pointer components.
1121
        * gfortran.h (gfc_compare_interfaces): Modified prototype.
1122
        * interface.c (gfc_compare_interfaces): Add argument 'name2', to be
1123
        used instead of s2->name. Don't rely on the proc_pointer attribute,
1124
        but instead on the flags handed to this function.
1125
        (check_interface1,compare_parameter): Add argument for
1126
        gfc_compare_interfaces.
1127
        * resolve.c (check_generic_tbp_ambiguity): Ditto.
1128
 
1129
2009-08-27  Daniel Kraft  
1130
 
1131
        PR fortran/37425
1132
        * gfortran.h (gfc_expr): Optionally store base-object in compcall value
1133
        and add a new flag to distinguish assign-calls generated.
1134
        (gfc_find_typebound_proc): Add locus argument.
1135
        (gfc_find_typebound_user_op), (gfc_find_typebound_intrinsic_op): Ditto.
1136
        (gfc_extend_expr): Return if failure was by a real error.
1137
        * interface.c (matching_typebound_op): New routine.
1138
        (build_compcall_for_operator): New routine.
1139
        (gfc_extend_expr): Handle type-bound operators, some clean-up and
1140
        return if failure was by a real error or just by not finding an
1141
        appropriate operator definition.
1142
        (gfc_extend_assign): Handle type-bound assignments.
1143
        * module.c (MOD_VERSION): Incremented.
1144
        (mio_intrinsic_op): New routine.
1145
        (mio_full_typebound_tree): New routine to make typebound-procedures IO
1146
        code reusable for type-bound user operators.
1147
        (mio_f2k_derived): IO of type-bound operators.
1148
        * primary.c (gfc_match_varspec): Initialize new fields in gfc_expr and
1149
        pass locus to gfc_find_typebound_proc.
1150
        * resolve.c (resolve_operator): Only output error about no matching
1151
        interface if gfc_extend_expr did not already fail with an error.
1152
        (extract_compcall_passed_object): Use specified base-object if present.
1153
        (update_compcall_arglist): Handle ignore_pass field.
1154
        (resolve_ordinary_assign): Update to handle extended code for
1155
        type-bound assignments, too.
1156
        (resolve_code): Handle EXEC_ASSIGN_CALL statement code.
1157
        (resolve_tb_generic_targets): Pass locus to gfc_find_typebound_proc.
1158
        (resolve_typebound_generic), (resolve_typebound_procedure): Ditto.
1159
        (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): Ditto.
1160
        (ensure_not_abstract_walker), (resolve_fl_derived): Ditto.
1161
        (resolve_typebound_procedures): Remove not-implemented error.
1162
        (resolve_typebound_call): Handle assign-call flag.
1163
        * symbol.c (find_typebound_proc_uop): New argument to pass locus for
1164
        error message about PRIVATE, verify that a found procedure is not marked
1165
        as erraneous.
1166
        (gfc_find_typebound_intrinsic_op): Ditto.
1167
        (gfc_find_typebound_proc), (gfc_find_typebound_user_op): New locus arg.
1168
 
1169
2009-08-22  Bud Davis 
1170
 
1171
        PR fortran/28093
1172
        * io.c: reverted previous patch.
1173
 
1174
2009-08-25  Janne Blomqvist  
1175
 
1176
        * gfortran.texi: Fix ENCODE example.
1177
 
1178
2009-08-25  Janus Weil  
1179
 
1180
        PR fortran/41139
1181
        * primary.c (gfc_match_varspec): Make sure EXPR_PPC is only used for
1182
        calls to procedure pointer components, other references to procedure
1183
        pointer components are EXPR_VARIABLE.
1184
        * resolve.c (resolve_actual_arglist): Bugfix (there can be calls without
1185
        actual arglist).
1186
        * trans-expr.c (gfc_get_proc_ptr_comp): Renamed to 'get_proc_ptr_comp',
1187
        removed argument 'se' and made static. Avoid inserting a temporary
1188
        variable for calling the PPC.
1189
        (conv_function_val): Renamed gfc_get_proc_ptr_comp.
1190
        (gfc_conv_procedure_call): Distinguish functions returning a procedure
1191
        pointer from calls to a procedure pointer. Distinguish calls to
1192
        procedure pointer components from procedure pointer components as
1193
        actual arguments.
1194
        * trans-stmt.h (gfc_get_proc_ptr_comp): Make it static.
1195
 
1196
2009-08-24  Jerry DeLisle  
1197
 
1198
        PR fortran/41162
1199
        * io.c (check_format): Fix to not error on slash after P. Fix some
1200
        error loci.
1201
 
1202
2009-08-24  Jerry DeLisle  
1203
 
1204
        PR fortran/41154
1205
        * io.c (check_format): Fix to not error on right paren after P.
1206
 
1207
2009-08-24  Aldy Hernandez  
1208
 
1209
        PR fortran/40660
1210
        * trans-io.c (build_dt): Pass UNKNOWN_LOCATION to build_call_expr_loc.
1211
        (transfer_array_desc): Same.
1212
 
1213
2009-08-23  Jerry DeLisle  
1214
 
1215
        PR fortran/35754
1216
        * io.c (check_format): Add checks for comma and the allowed
1217
        format specifiers after the 'P' specifier. Fix typo in error message
1218
        and adjust locus.
1219
 
1220
2009-08-23  Jerry DeLisle  
1221
 
1222
        PR fortran/37446
1223
        * io.c (enum format_token): Change FMT_EXT to FMT_EN and FMT_ES.
1224
        (format_lex): Likewise.
1225
        (token_to_string): New function.
1226
        (check_format): Use the new tokens and the new function. Add
1227
        check for positive width.
1228
 
1229
2009-08-22  Steven G. Kargl  
1230
 
1231
        * fortran/decl.c: Disallow procedure pointers with -std=f95.
1232
 
1233
2009-08-22 Steven K. kargl  
1234
           Paul Thomas  
1235
 
1236
        * fortran/decl.c (match_char_spec): Rename to gfc_match_char_spec,
1237
        and remove static.
1238
        * fortran/gfortran.h: Add *expr3 entity to gfc_code.  Add prototype
1239
        for gfc_match_char_spec.
1240
        * fortran/trans-stmt.c (gfc_trans_allocate): Translate the SOURCE=
1241
        tag.
1242
        * fortran/match.c (match_intrinsic_typespec): New function to match
1243
        F2003 intrinsic-type-spec.
1244
        (conformable_arrays): New function. Check SOURCE= and
1245
        allocation-object are conformable.
1246
        (gfc_match_allocate): Use new functions.  Match SOURCE= tag.
1247
 
1248
2009-08-22  Bud Davis 
1249
 
1250
        PR fortran/28093
1251
        * io.c : added variable to store original len of fmt
1252
        * io.c (check_format): Consume H items using next_char
1253
        in both modes to handle consecutive single quotes.
1254
        Test for extra characters in fmt, issue warning.
1255
 
1256
2009-08-21  Janus Weil  
1257
 
1258
        PR fortran/41106
1259
        * primary.c (gfc_variable_attr): Make it work also on EXPR_FUNCTION.
1260
        (gfc_expr_attr): Use gfc_variable_attr for procedure pointer components.
1261
        * resolve.c (resolve_fl_derived): Handle CHARACTER-valued procedure
1262
        pointer components.
1263
        * trans-expr.c (gfc_conv_component_ref): Ditto.
1264
        (gfc_conv_variable): Ditto.
1265
        (gfc_conv_procedure_call): Ditto.
1266
        (gfc_trans_pointer_assignment): Ditto.
1267
        * trans-types.c (gfc_get_derived_type): Ditto.
1268
 
1269
2009-08-20  Tobias Schlüter  
1270
 
1271
        * trans-stmt.c (gfc_trans_do): Add a few missing folds.
1272
 
1273
2009-08-20  Michael Matz  
1274
 
1275
        PR fortran/41126
1276
        * trans-expr.c (gfc_conv_string_tmp): Check type compatibility
1277
        instead of equality.
1278
 
1279
2009-08-20  Janus Weil  
1280
 
1281
        PR fortran/41121
1282
        * resolve.c (resolve_symbol): Don't resolve formal_ns of intrinsic
1283
        procedures.
1284
 
1285
2009-08-18  Michael Matz  
1286
 
1287
        * trans-expr.c (gfc_conv_substring): Don't evaluate casted decl early,
1288
        change order of length calculation to (end - start) + 1.
1289
        (gfc_get_interface_mapping_array): Adjust call to
1290
        gfc_get_nodesc_array_type.
1291
        * trans-array.c (gfc_trans_create_temp_array,
1292
        gfc_build_constant_array_constructor, gfc_conv_expr_descriptor): Ditto.
1293
        * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
1294
        * trans.c (gfc_add_modify): Assignment between base type and nontarget
1295
        type are equal enough.
1296
        (gfc_call_malloc): Use prvoid_type_node for return value of
1297
        __builtin_malloc.
1298
        (gfc_allocate_with_status): Ditto.
1299
        * trans-types.c (gfc_array_descriptor_base): Double size of this array.
1300
        (gfc_init_types): Build prvoid_type_node.
1301
        (gfc_build_array_type): New bool parameter "restricted".
1302
        (gfc_get_nodesc_array_type): Ditto, build restrict qualified pointers,
1303
        if it's true.
1304
        (gfc_get_array_descriptor_base): Ditto.
1305
        (gfc_get_array_type_bounds): Ditto.
1306
        (gfc_sym_type): Use symbol attributes to feed calls to above functions.
1307
        (gfc_get_derived_type): Ditto.
1308
        * trans.h (struct lang_type): Add nontarget_type member.
1309
        * trans-types.h (prvoid_type_node): Declare.
1310
        (gfc_get_array_type_bounds, gfc_get_nodesc_array_type): Declare new
1311
        parameter.
1312
        * trans-decl.c (gfc_finish_var_decl): Give scalars that can't be
1313
        aliased a type with a different alias set than the base type.
1314
        (gfc_build_dummy_array_decl): Adjust call to gfc_get_nodesc_array_type.
1315
 
1316
2009-08-18  Janus Weil  
1317
            Paul Thomas  
1318
 
1319
        PR fortran/40870
1320
        * trans-types.c (gfc_get_ppc_type): Include formal args in backend_decl
1321
        using the interface symbol. Character types are returned by reference.
1322
        (gfc_get_derived_type): Prevent infinite recursion loop
1323
        if a PPC has a derived-type formal arg.
1324
 
1325
2008-08-17  Paul Thomas  
1326
 
1327
        PR fortran/41062
1328
        * trans-decl.c (gfc_trans_use_stmts):  Keep going through use
1329
        list if symbol is not use associated.
1330
 
1331
2009-08-17  Daniel Kraft  
1332
 
1333
        PR fortran/37425
1334
        * resolve.c (get_checked_tb_operator_target): New routine to do checks
1335
        on type-bound operators in common between intrinsic and user operators.
1336
        (resolve_typebound_intrinsic_op): Call it.
1337
        (resolve_typebound_user_op): Ditto.
1338
 
1339
2009-08-17  Jerry DeLisle  
1340
 
1341
        PR fortran/41075
1342
        * scanner.c (gfc_next_char_literal): Add comment to improve
1343
        readability.
1344
        * io.c (enum format_token): Add FMT_STAR. (format_lex): Add case
1345
        for '*'. (check_format): Check for left paren after '*'.  Change
1346
        format checks to use %L to improve format string error locus.
1347
 
1348
2009-08-17  Janus Weil  
1349
 
1350
        PR fortran/40877
1351
        * array.c (gfc_resolve_character_array_constructor): Add NULL argument
1352
        to gfc_new_charlen.
1353
        * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec,
1354
        gfc_match_implicit): Ditto.
1355
        * expr.c (simplify_const_ref): Fix memory leak.
1356
        (gfc_simplify_expr): Add NULL argument to gfc_new_charlen.
1357
        * gfortran.h (gfc_new_charlen): Modified prototype.
1358
        * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Add NULL
1359
        argument to gfc_new_charlen.
1360
        * module.c (mio_charlen): Ditto.
1361
        * resolve.c (gfc_resolve_substring_charlen,
1362
        gfc_resolve_character_operator,fixup_charlen): Ditto.
1363
        (resolve_fl_derived,resolve_symbol): Add argument to gfc_charlen.
1364
        * symbol.c (gfc_new_charlen): Add argument 'old_cl' (to make a copy of
1365
        an existing charlen).
1366
        (gfc_set_default_type,generate_isocbinding_symbol): Fix memory leak.
1367
        (gfc_copy_formal_args_intr): Add NULL argument to gfc_new_charlen.
1368
        * trans-decl.c (create_function_arglist): Fix memory leak.
1369
 
1370
2009-08-17  Richard Guenther  
1371
 
1372
        * trans-expr.c (gfc_trans_scalar_assign): Replace hack with
1373
        more proper hack.
1374
 
1375
2009-08-15  Tobias Burnus  
1376
 
1377
        PR fortran/41080
1378
        * gfortranspec.c (lookup_option): Remove gfortran-specific
1379
        version of -dumpversion.
1380
 
1381
2009-08-14  Janus Weil  
1382
 
1383
        PR fortran/41070
1384
        * resolve.c (resolve_structure_cons): Make sure that ts.u.derived is
1385
        only used if type is BT_DERIVED.
1386
 
1387
2009-08-13  Janus Weil  
1388
 
1389
        PR fortran/40941
1390
        * gfortran.h (gfc_typespec): Put 'derived' and 'cl' into union.
1391
        * decl.c (build_struct): Make sure 'cl' is only used
1392
        if type is BT_CHARACTER.
1393
        * symbol.c (gfc_set_default_type): Ditto.
1394
        * resolve.c (resolve_symbol, resolve_fl_derived): Ditto.
1395
        (resolve_equivalence,resolve_equivalence_derived): Make sure 'derived'
1396
        is only used if type is BT_DERIVED.
1397
        * trans-io.c (transfer_expr): Make sure 'derived' is only used if type
1398
        is BT_DERIVED or BT_INTEGER (special case: C_PTR/C_FUNPTR).
1399
        * array.c: Mechanical replacements to accomodate union in gfc_typespec.
1400
        * check.c: Ditto.
1401
        * data.c: Ditto.
1402
        * decl.c: Ditto.
1403
        * dump-parse-tree.c: Ditto.
1404
        * expr.c: Ditto.
1405
        * interface.c: Ditto.
1406
        * iresolve.c: Ditto.
1407
        * match.c: Ditto.
1408
        * misc.c: Ditto.
1409
        * module.c: Ditto.
1410
        * openmp.c: Ditto.
1411
        * parse.c: Ditto.
1412
        * primary.c: Ditto.
1413
        * resolve.c: Ditto.
1414
        * simplify.c: Ditto.
1415
        * symbol.c: Ditto.
1416
        * target-memory.c: Ditto.
1417
        * trans-array.c: Ditto.
1418
        * trans-common.c: Ditto.
1419
        * trans-const.c: Ditto.
1420
        * trans-decl.c: Ditto.
1421
        * trans-expr.c: Ditto.
1422
        * trans-intrinsic.c: Ditto.
1423
        * trans-io.c: Ditto.
1424
        * trans-stmt.c: Ditto.
1425
        * trans-types.c: Ditto.
1426
 
1427
2009-08-13  Janus Weil  
1428
 
1429
        PR fortran/40995
1430
        * resolve.c (resolve_symbol): Move some checking code to
1431
        resolve_intrinsic, and call this from here.
1432
        (resolve_intrinsic): Some checking code moved here from resolve_symbol.
1433
        Make sure each intrinsic is only resolved once.
1434
 
1435
2009-08-12  Tobias Burnus  
1436
 
1437
        PR fortran/41034
1438
        * symbol.c (gfc_copy_attr): Merge bits instead of replace
1439
        bits in gfc_copy_attr.
1440
        * gfc_check_pointer_assign (gfc_check_pointer_assign):
1441
        Initialize ext_attr bits by zero.
1442
 
1443
2009-08-11  Richard Guenther  
1444
 
1445
        * trans-types.c (gfc_get_derived_type): Do not clear TYPE_CANONICAL.
1446
 
1447
2009-08-11  Janus Weil  
1448
 
1449
        PR fortran/41022
1450
        * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
1451
        components as actual arguments.
1452
 
1453
2009-08-10  Daniel Kraft  
1454
 
1455
        PR fortran/37425
1456
        * gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op.
1457
        (gfc_find_typebound_user_op): New routine.
1458
        (gfc_find_typebound_intrinsic_op): Ditto.
1459
        (gfc_check_operator_interface): Now public routine.
1460
        * decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=).
1461
        * interface.c (check_operator_interface): Made public, renamed to
1462
        `gfc_check_operator_interface' accordingly and hand in the interface
1463
        as gfc_symbol rather than gfc_interface so it is useful for type-bound
1464
        operators, too.  Return boolean result.
1465
        (gfc_check_interfaces): Adapt call to `check_operator_interface'.
1466
        * symbol.c (gfc_get_namespace): Initialize new field `tb_op'.
1467
        (gfc_free_namespace): Free `tb_uop_root'-based tree.
1468
        (find_typebound_proc_uop): New helper function.
1469
        (gfc_find_typebound_proc): Use it.
1470
        (gfc_find_typebound_user_op): New method.
1471
        (gfc_find_typebound_intrinsic_op): Ditto.
1472
        * resolve.c (resolve_tb_generic_targets): New helper function.
1473
        (resolve_typebound_generic): Use it.
1474
        (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New.
1475
        (resolve_typebound_procedures): Resolve operators, too.
1476
        (check_uop_procedure): New, code from gfc_resolve_uops.
1477
        (gfc_resolve_uops): Moved main code to new `check_uop_procedure'.
1478
 
1479
2009-08-10  Janus Weil  
1480
 
1481
        PR fortran/40940
1482
        * decl.c (gfc_match_type_spec): Match CLASS statement and warn about
1483
        missing polymorphism.
1484
        * gfortran.h (gfc_typespec): Add field 'is_class'.
1485
        * misc.c (gfc_clear_ts): Initialize 'is_class' to zero.
1486
        * resolve.c (type_is_extensible): New function to check if a derived
1487
        type is extensible.
1488
        (resolve_fl_variable_derived): Add error checks for CLASS variables.
1489
        (resolve_typebound_procedure): Disallow non-polymorphic passed-object
1490
        dummy arguments, turning warning into error.
1491
        (resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic
1492
        passed-object dummy arguments for procedure pointer components,
1493
        turning warning into error. Add error check for CLASS components.
1494
 
1495
2009-08-05  Tobias Burnus  
1496
 
1497
        PR fortran/40955
1498
        * gfortran.h (ext_attr_id_t): Add typedef for this enum.
1499
        (gfc_add_ext_attribute): Use it.
1500
        * decl.c (gfc_match_gcc_attributes): Ditto.
1501
        * expr.c (gfc_check_pointer_assign): Ditto.
1502
        * symbol.c (gfc_add_ext_attribute): Ditto.
1503
        (gfc_copy_attr): Copy also ext_attr.
1504
        * resolve.c (resolve_fl_derived,resolve_symbol): Ditto.
1505
        * module.c (mio_symbol_attribute): Save ext_attr in the mod file.
1506
 
1507
2009-08-05  Tobias Burnus  
1508
 
1509
        PR fortran/40969
1510
        Revert:
1511
        2009-08-04  Tobias Burnus  
1512
 
1513
        PR fortran/40949
1514
        * trans-types.c (gfc_get_function_type): Fix typelist of
1515
        functions without argument.
1516
 
1517
2009-08-05  Paul Thomas  
1518
 
1519
        PR fortran/40847
1520
        * iresolve.c (gfc_resolve_transfer): Correct error in 'mold'
1521
        character length for case where length expresson is NULL.
1522
 
1523
2009-08-04  Tobias Burnus  
1524
 
1525
        PR fortran/40949
1526
        * trans-types.c (gfc_get_function_type): Fix typelist of
1527
        functions without argument.
1528
 
1529
2009-08-04  Paul Thomas  
1530
 
1531
        PR fortran/40875
1532
        * decl.c (add_init_expr_to_sym): Character symbols can only be
1533
        initialized with character expressions.
1534
 
1535
2009-08-02  Janus Weil  
1536
 
1537
        PR fortran/40881
1538
        * decl.c (match_char_length): Warn about old-style character length
1539
        declarations.
1540
        * match.c (match_arithmetic_if,gfc_match_if): Modify warning message
1541
        for arithmetic if.
1542
        (gfc_match_goto): Warn about computed gotos.
1543
        (gfc_match_return): Warn about alternate return.
1544
        (gfc_match_st_function): Warn about statement functions.
1545
        * resolve.c (resolve_fl_procedure): Modify warning message for
1546
        assumed-length character functions.
1547
 
1548
2009-08-01  Paul Thomas  
1549
 
1550
        PR fortran/40011
1551
        * error.c : Add static flag 'warnings_not_errors'.
1552
        (gfc_error): If 'warnings_not_errors' is set, branch to code
1553
        from gfc_warning.
1554
        (gfc_clear_error): Reset 'warnings_not_errors'.
1555
        (gfc_errors_to_warnings): New function.
1556
        * options.c (gfc_post_options): If pedantic and flag_whole_file
1557
        change the latter to a value of 2.
1558
        * parse.c (parse_module): Add module namespace to gsymbol.
1559
        (resolve_all_program_units): New function.
1560
        (clean_up_modules): New function.
1561
        (translate_all_program_units): New function.
1562
        (gfc_parse_file): If whole_file, do not clean up module right
1563
        away and add derived types to namespace derived types. In
1564
        addition, call the three new functions above.
1565
        * resolve.c (not_in_recursive): New function.
1566
        (not_entry_self_reference): New function.
1567
        (resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN,
1568
        procedure must not be in the course of being resolved and
1569
        must return false for the two new functions. Pack away the
1570
        current derived type list before calling gfc_resolve for the
1571
        gsymbol namespace.  It is unconditionally an error if the ranks
1572
        of the reference and ther procedure do not match. Convert
1573
        errors to warnings during call to gfc_procedure_use if not
1574
        pedantic or legacy.
1575
        (gfc_resolve): Set namespace resolved flag to -1 during
1576
        resolution and store current cs_base.
1577
        * trans-decl.c (gfc_get_symbol_decl): If whole_file compilation
1578
        substitute a use associated variable, if it is available in a
1579
        gsymbolnamespace.
1580
        (gfc_get_extern_function_decl): If the procedure is use assoc,
1581
        do not attempt to find it in a gsymbol because it could be an
1582
        interface. If the symbol exists in a module namespace, return
1583
        its backend_decl.
1584
        * trans-expr.c (gfc_trans_scalar_assign): If a derived type
1585
        assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs.
1586
        * trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a
1587
        boolean argument. Copy component backend_decls directly if the
1588
        components are derived types and from_gsym is true.
1589
        (gfc_get_derived_type): If whole_file copy the derived type from
1590
        the module if it is use associated, otherwise, if can be found
1591
        in another gsymbol namespace, use the existing derived type as
1592
        the TYPE_CANONICAL and build normally.
1593
        * gfortran.h : Add derived_types and resolved fields to
1594
        gfc_namespace. Include prototype for gfc_errors_to_warnings.
1595
 
1596
2009-07-29  Tobias Burnus  
1597
 
1598
        PR fortran/40898
1599
        * trans-types.c (gfc_get_function_type): Do not add hidden
1600
        string-length argument for BIND(C) procedures.
1601
        * trans-decl.c (create_function_arglist): Skip over nonexisting
1602
        string-length arguments for BIND(C) procedures.
1603
 
1604
2009-07-28  Jakub Jelinek  
1605
 
1606
        PR fortran/40878
1607
        * openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of
1608
        gfc_error to diagnose invalid COLLAPSE arguments.
1609
 
1610
2009-07-28  Janus Weil  
1611
 
1612
        PR fortran/40882
1613
        * trans-types.c (gfc_get_ppc_type): For derived types, directly use the
1614
        backend_decl, instead of calling gfc_typenode_for_spec, to avoid
1615
        infinte loop.
1616
        (gfc_get_derived_type): Correctly handle PPCs returning derived types,
1617
        avoiding infinite recursion.
1618
 
1619
2009-07-27  Janus Weil  
1620
 
1621
        PR fortran/40848
1622
        * interface.c (gfc_compare_interfaces): Call 'count_types_test' before
1623
        'generic_correspondence', and only if checking a generic interface.
1624
 
1625
2009-07-27  Tobias Burnus  
1626
 
1627
        PR fortran/40851
1628
        * resolve.c (resolve_symbol): Do not initialize pointer derived-types.
1629
        * trans-decl.c (init_intent_out_dt): Ditto.
1630
        (generate_local_decl): No need to set attr.referenced for DT pointers.
1631
 
1632
2009-07-26  Tobias Burnus  
1633
 
1634
        PR fortran/33197
1635
        * intrinsic.c (make_generic): Remove assert as "atan" can be
1636
        both ISYM_ATAN and ISYM_ATAN2.
1637
        (add_functions): Add two-argument variant of ATAN.
1638
        * intrinsic.h (gfc_check_atan_2): Add check for it.
1639
        * intrinsic.texi (ATAN2): Correct and enhance description.
1640
        (ATAN): Describe two-argument variant of ATAN.
1641
 
1642
2009-07-25  Tobias Burnus  
1643
            Francois-Xavier Coudert  
1644
 
1645
        PR fortran/33197
1646
        * intrinsic.c (add_functions): Support complex arguments for
1647
        acos,acosh,asin,asinh,atan,atanh.
1648
        * invoke.texi (ACOS,ACOSH,ASIN,ASINH,ATAN,ATANH): Support
1649
        complex arguments.
1650
        * simplify.c (gfc_simplify_acos,gfc_simplify_acosh,
1651
        gfc_simplify_asin,gfc_simplify_asinh,gfc_simplify_atan,
1652
        gfc_simplify_atanh,gfc_simplify_atan,gfc_simplify_asinh,
1653
        gfc_simplify_acosh,gfc_simplify_atanh): Support
1654
        complex arguments.
1655
 
1656
2009-07-25  Richard Guenther  
1657
 
1658
        PR fortran/40005
1659
        * trans-types.c (gfc_get_array_type_bounds): Use
1660
        build_distinct_type_copy with a proper TYPE_CANONICAL and
1661
        re-use the type-decl of the original type.
1662
        * trans-decl.c (build_entry_thunks): Signal cgraph we may not
1663
        garbage collect.
1664
        (create_main_function): Likewise.
1665
        (gfc_generate_function_code): Likewise.
1666
        * trans-expr.c (gfc_trans_subcomponent_assign): Do not use
1667
        fold_convert on record types.
1668
 
1669
2009-07-25  Janus Weil  
1670
 
1671
        PR fortran/39630
1672
        * decl.c (match_ppc_decl): Implement the PASS attribute for procedure
1673
        pointer components.
1674
        (match_binding_attributes): Ditto.
1675
        * gfortran.h (gfc_component): Add member 'tb'.
1676
        (gfc_typebound_proc): Add member 'ppc' and make 'pass_arg' const.
1677
        * module.c (MOD_VERSION): Bump module version.
1678
        (binding_ppc): New string constants.
1679
        (mio_component): Only use formal args if component is a procedure
1680
        pointer and add 'tb' member.
1681
        (mio_typebound_proc): Include pass_arg and take care of procedure
1682
        pointer components.
1683
        * resolve.c (update_arglist_pass): Add argument 'name' and take care of
1684
        optional arguments.
1685
        (extract_ppc_passed_object): New function, analogous to
1686
        extract_compcall_passed_object, but for procedure pointer components.
1687
        (update_ppc_arglist): New function, analogous to
1688
        update_compcall_arglist, but for procedure pointer components.
1689
        (resolve_typebound_generic_call): Added argument to update_arglist_pass.
1690
        (resolve_ppc_call, resolve_expr_ppc): Take care of PASS attribute.
1691
        (resolve_fl_derived): Check the PASS argument for procedure pointer
1692
        components.
1693
        * symbol.c (verify_bind_c_derived_type): Reject procedure pointer
1694
        components in BIND(C) types.
1695
 
1696
2009-07-24  Janus Weil  
1697
 
1698
        PR fortran/40822
1699
        * array.c (gfc_resolve_character_array_constructor): Use new function
1700
        gfc_new_charlen.
1701
        * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec,
1702
        gfc_match_implicit): Ditto.
1703
        * expr.c (gfc_simplify_expr): Ditto.
1704
        * gfortran.h (gfc_new_charlen): New prototype.
1705
        * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Use new
1706
        function gfc_new_charlen.
1707
        * module.c (mio_charlen): Ditto.
1708
        * resolve.c (gfc_resolve_substring_charlen,
1709
        gfc_resolve_character_operator,fixup_charlen,resolve_fl_derived,
1710
        resolve_symbol): Ditto.
1711
        * symbol.c (gfc_new_charlen): New function to create a new gfc_charlen
1712
        structure and add it to a namespace.
1713
        (gfc_copy_formal_args_intr): Make sure ts.cl is present
1714
        for CHARACTER variables.
1715
 
1716
2009-07-24  Jakub Jelinek  
1717
 
1718
        PR fortran/40643
1719
        PR fortran/31067
1720
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
1721
        gfc_conv_intrinsic_minmaxval): Handle Infinities and NaNs properly,
1722
        optimize.
1723
        * trans-array.c (gfc_trans_scalarized_loop_end): No longer static.
1724
        * trans-array.h (gfc_trans_scalarized_loop_end): New prototype.
1725
 
1726
2009-07-23  Jakub Jelinek  
1727
 
1728
        PR fortran/40839
1729
        * io.c (gfc_resolve_dt): Add LOC argument.  Fail if
1730
        dt->io_unit is NULL.  Return FAILURE after issuing error about
1731
        negative UNIT number.
1732
        (match_io_element): Don't segfault if current_dt->io_unit is NULL.
1733
        * gfortran.h (gfc_resolve_dt): Adjust prototype.
1734
        * resolve.c (resolve_code): Adjust caller.
1735
 
1736
2009-07-22  Paul Thomas  
1737
 
1738
        PR fortran/40796
1739
        * trans-decl.c (generate_local_decl): Unreferenced result
1740
        variables with allocatable components should be treated like
1741
        INTENT_OUT dummy variables.
1742
 
1743
2009-07-22  Francois-Xavier Coudert  
1744
 
1745
        * trans.h (gfc_set_decl_assembler_name): New prototype.
1746
        * trans-decl.c (gfc_set_decl_assembler_name): New function.
1747
        (gfc_get_symbol_decl, gfc_get_extern_function_decl,
1748
        build_function_decl): Use gfc_set_decl_assembler_name instead of
1749
        SET_DECL_ASSEMBLER_NAME.
1750
        * trans-common.c (build_common_decl): Use
1751
        gfc_set_decl_assembler_name instead of SET_DECL_ASSEMBLER_NAME.
1752
 
1753
2009-07-21  Richard Guenther  
1754
 
1755
        PR fortran/40726
1756
        * trans-decl.c (gfc_get_extern_function_decl): Do not set
1757
        DECL_IS_MALLOC for pointer valued functions.
1758
        (build_function_decl): The same.
1759
 
1760
2009-07-19  Steven G. Kargl  
1761
 
1762
        PR fortran/40727
1763
        * fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that
1764
        the optional second argument isn't of COMPLEX type.
1765
 
1766
2009-07-17  Richard Guenther  
1767
 
1768
        PR c/40401
1769
        * f95-lang.c (gfc_be_parse_file): Do not finalize the CU here.
1770
        * trans-decl.c (gfc_gimplify_function): Remove.
1771
        (build_entry_thunks): Do not gimplify here.
1772
        (create_main_function): Likewise.
1773
        (gfc_generate_function_code): Likewise.
1774
 
1775
2009-07-17  Aldy Hernandez  
1776
            Manuel López-Ibáñez  
1777
 
1778
        PR 40435
1779
        * trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c,
1780
        trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location
1781
        argument to fold_{unary,binary,ternary}, fold_build[123],
1782
        build_call_expr, build_size_arg, build_fold_addr_expr,
1783
        build_call_array, non_lvalue, size_diffop,
1784
        fold_build1_initializer, fold_build2_initializer,
1785
        fold_build3_initializer, fold_build_call_array,
1786
        fold_build_call_array_initializer, fold_single_bit_test,
1787
        omit_one_operand, omit_two_operands, invert_truthvalue,
1788
        fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
1789
        combine_comparisons, fold_builtin_*, fold_call_expr,
1790
        build_range_check, maybe_fold_offset_to_address, round_up,
1791
        round_down.
1792
 
1793
2009-07-15  Janus Weil  
1794
 
1795
        PR fortran/40743
1796
        * resolve.c (resolve_symbol): Don't resolve the formal namespace of a
1797
        contained procedure.
1798
 
1799
2009-07-14  Taras Glek  
1800
            Rafael Espindola  
1801
 
1802
        * Make-lang.in (fortran.install-plugin): New target for
1803
        installing plugin headers.
1804
 
1805
2009-07-13  H.J. Lu  
1806
 
1807
        * module.c (mio_symbol): Remove the unused variable, formal.
1808
 
1809
2009-07-13  Janus Weil  
1810
 
1811
        PR fortran/40646
1812
        * module.c (mio_symbol): If the symbol has formal arguments,
1813
        the formal namespace will be present.
1814
        * resolve.c (resolve_actual_arglist): Correctly handle 'called'
1815
        procedure pointer components as actual arguments.
1816
        (resolve_fl_derived,resolve_symbol): Make sure the formal namespace
1817
        is present.
1818
        * trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal
1819
        arguments of procedure pointer components.
1820
 
1821
2009-07-12  Tobias Burnus  
1822
            Philippe Marguinaud 
1823
 
1824
        PR fortran/40588
1825
        * primary.c (match_charkind_name): Fix condition for $ matching.
1826
 
1827
        PR libfortran/22423
1828
        * libgfortran.h: Typedef the GFC_DTYPE_* enum.
1829
 
1830
2009-07-11  Tobias Burnus  
1831
 
1832
        PR fortran/33197
1833
        * check.c (gfc_check_fn_rc2008): New function.
1834
        * intrinsic.h (gfc_check_fn_rc2008): New prototype.
1835
        * intrinsic.c (add_functions): Add complex tan, cosh, sinh,
1836
        and tanh.
1837
 
1838
2009-07-10  Paul Thomas  
1839
 
1840
        PR fortran/39334
1841
        * primary.c (match_kind_param): Return MATCH_NO if the symbol
1842
        has no value.
1843
 
1844
2008-07-09  Paul Thomas  
1845
 
1846
        PR fortran/40629
1847
        * resolve.c (check_host_association):  Use the existing
1848
        accessible symtree and treat function expressions with
1849
        symbols that have procedure flavor.
1850
 
1851
2009-07-09  Janus Weil  
1852
 
1853
        PR fortran/40646
1854
        * dump-parse-tree.c (show_expr): Renamed 'is_proc_ptr_comp'.
1855
        * expr.c (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
1856
        (gfc_check_pointer_assign): Renamed 'is_proc_ptr_comp'.
1857
        (replace_comp,gfc_expr_replace_comp): New functions, analogous
1858
        to 'replace_symbol' and 'gfc_expr_replace_symbol', just with components
1859
        instead of symbols.
1860
        * gfortran.h (gfc_expr_replace_comp): New prototype.
1861
        (is_proc_ptr_comp): Renamed to 'gfc_is_proc_ptr_comp'.
1862
        * interface.c (compare_actual_formal): Renamed 'is_proc_ptr_comp'.
1863
        * match.c (gfc_match_pointer_assignment): Ditto.
1864
        * primary.c (gfc_match_varspec): Handle array-valued procedure pointers
1865
        and procedure pointer components. Renamed 'is_proc_ptr_comp'.
1866
        * resolve.c (resolve_fl_derived): Correctly handle interfaces with
1867
        RESULT statement, and handle array-valued procedure pointer components.
1868
        (resolve_actual_arglist,resolve_ppc_call,resolve_expr_ppc): Renamed
1869
        'is_proc_ptr_comp'.
1870
        * trans-array.c (gfc_walk_function_expr): Ditto.
1871
        * trans-decl.c (gfc_get_symbol_decl): Security check for presence of
1872
        ns->proc_name.
1873
        * trans-expr.c (gfc_conv_procedure_call): Handle array-valued procedure
1874
        pointer components. Renamed 'is_proc_ptr_comp'.
1875
        (conv_function_val,gfc_trans_arrayfunc_assign): Renamed
1876
        'is_proc_ptr_comp'.
1877
        (gfc_get_proc_ptr_comp): Do not modify the argument 'e', but instead
1878
        make a copy of it.
1879
        * trans-io.c (gfc_trans_transfer): Handle array-valued procedure
1880
        pointer components.
1881
 
1882
2009-07-09  Tobias Burnus  
1883
 
1884
        PR fortran/40604
1885
        * intrinsic.c (gfc_convert_type_warn): Set sym->result.
1886
        * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
1887
        for optional arguments.
1888
 
1889
2009-07-08  Tobias Burnus  
1890
 
1891
        PR fortran/40675
1892
        * simplify.c (gfc_simplify_sign): Handle signed zero correctly.
1893
        * trans-intrinsic.c (gfc_conv_intrinsic_sign): Support
1894
        -fno-sign-zero.
1895
        * invoke.texi (-fno-sign-zero): Add text regarding SIGN intrinsic.
1896
 
1897
2008-07-08  Paul Thomas  
1898
 
1899
        PR fortran/40591
1900
        * decl.c (match_procedure_interface):  Correct the association
1901
        or creation of the interface procedure's symbol.
1902
 
1903
2009-07-04  Jakub Jelinek  
1904
 
1905
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer
1906
        maxloc initialize limit to -huge-1 rather than just -huge.
1907
 
1908
2009-07-04  Janus Weil  
1909
 
1910
        PR fortran/40593
1911
        * interface.c (compare_actual_formal): Take care of proc-pointer-valued
1912
        functions as actual arguments.
1913
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
1914
        * resolve.c (resolve_specific_f0): Use the correct ts.
1915
 
1916
2009-07-02  Michael Matz  
1917
 
1918
        PR fortran/32131
1919
        * trans-array.c (gfc_conv_descriptor_stride_get): Return
1920
        constant one for strides in the first dimension of ALLOCATABLE
1921
        arrays.
1922
 
1923
2009-06-30  Janus Weil  
1924
 
1925
        PR fortran/40594
1926
        * trans-types.c (gfc_get_derived_type): Bugfix, reverting one hunk from
1927
        r147206.
1928
 
1929
2009-06-29  Tobias Burnus  
1930
 
1931
        PR fortran/40580
1932
        * trans-expr.c  (gfc_conv_procedure_call): Add -fcheck=pointer check.
1933
        * libgfortran.h: Add GFC_RTCHECK_POINTER.
1934
        * invoke.texi (-fcheck): Document new pointer option.
1935
        * options.c (gfc_handle_runtime_check_option): Handle pointer option.
1936
 
1937
        * gfortran.texi (C Binding): Improve wording.
1938
        * iso-c-binding.def: Remove obsolete comment.
1939
 
1940
2009-06-29  Paul Thomas  
1941
 
1942
        PR fortran/40551
1943
        * dependency.h : Add second bool* argument to prototype of
1944
        gfc_full_array_ref_p.
1945
        * dependency.c (gfc_full_array_ref_p): If second argument is
1946
        present, return true if last dimension of reference is an
1947
        element or has unity stride.
1948
        * trans-array.c : Add NULL second argument to references to
1949
        gfc_full_array_ref_p.
1950
        * trans-expr.c : The same, except for;
1951
        (gfc_trans_arrayfunc_assign): Return fail if lhs reference
1952
        is not a full array or a contiguous section.
1953
 
1954
2009-06-28  Tobias Burnus  
1955
            Francois-Xavier Coudert  
1956
 
1957
        PR fortran/34112
1958
        * symbol.c (gfc_add_ext_attribute): New function.
1959
        (gfc_get_sym_tree): New argument allow_subroutine.
1960
        (gfc_get_symbol,gfc_get_ha_sym_tree,gen_cptr_param,gen_fptr_param
1961
        gen_shape_param,generate_isocbinding_symbol): Use it.
1962
        * decl.c (find_special): New argument allow_subroutine.
1963
        (add_init_expr_to_sym,add_hidden_procptr_result,attr_decl1,
1964
        match_procedure_in_type,gfc_match_final_decl): Use it.
1965
        (gfc_match_gcc_attributes): New function.
1966
        * gfortran.texi (Mixed-Language Programming): New section
1967
        "GNU Fortran Compiler Directives".
1968
        * gfortran.h (ext_attr_t): New struct.
1969
        (symbol_attributes): Use it.
1970
        (gfc_add_ext_attribute): New prototype.
1971
        (gfc_get_sym_tree): Update pototype.
1972
        * expr.c (gfc_check_pointer_assign): Check whether call
1973
        convention is the same.
1974
        * module.c (import_iso_c_binding_module, create_int_parameter,
1975
        use_iso_fortran_env_module): Update gfc_get_sym_tree call.
1976
        * scanner.c (skip_gcc_attribute): New function.
1977
        (skip_free_comments,skip_fixed_comments): Use it.
1978
        (gfc_next_char_literal): Support !GCC$ lines.
1979
        * resolve.c (check_host_association): Update
1980
        gfc_get_sym_tree call.
1981
        * match.c (gfc_match_sym_tree,gfc_match_call): Update
1982
        gfc_get_sym_tree call.
1983
        * trans-decl.c (add_attributes_to_decl): New function.
1984
        (gfc_get_symbol_decl,get_proc_pointer_decl,
1985
        gfc_get_extern_function_decl,build_function_decl: Use it.
1986
        * match.h (gfc_match_gcc_attributes): Add prototype.
1987
        * parse.c (decode_gcc_attribute): New function.
1988
        (next_free,next_fixed): Support !GCC$ lines.
1989
        * primary.c (match_actual_arg,check_for_implicit_index,
1990
        gfc_match_rvalue,gfc_match_rvalue): Update
1991
        gfc_get_sym_tree call.
1992
 
1993
2009-06-28  Kaveh R. Ghazi  
1994
 
1995
        * gfortran.h: Define HAVE_mpc_pow.
1996
        * arith.c (complex_reciprocal, complex_pow): If HAVE_mpc_pow,
1997
        don't define these functions.
1998
        (arith_power): If HAVE_mpc_pow, use mpc_pow.
1999
 
2000
2009-06-26  Janus Weil  
2001
 
2002
        PR fortran/39997
2003
        PR fortran/40541
2004
        * decl.c (add_hidden_procptr_result): Copy the typespec to the hidden
2005
        result.
2006
        * expr.c (gfc_check_pointer_assign): Enable interface check for
2007
        procedure pointer assignments where the rhs is a function returning a
2008
        procedure pointer.
2009
        * resolve.c (resolve_symbol): If an external procedure with unspecified
2010
        return type can not be implicitly typed, it must be a subroutine.
2011
 
2012
2009-06-24  Janus Weil  
2013
 
2014
        PR fortran/40427
2015
        * gfortran.h (gfc_component): New member 'formal_ns'.
2016
        (gfc_copy_formal_args_ppc,void gfc_ppc_use): New.
2017
        * interface.c (gfc_ppc_use): New function, analogous to
2018
        gfc_procedure_use, but for procedure pointer components.
2019
        * module.c (MOD_VERSION): Bump module version.
2020
        (mio_component): Treat formal arguments.
2021
        (mio_formal_arglist): Changed argument from gfc_symbol to
2022
        gfc_formal_arglist.
2023
        (mio_symbol): Changed argument of mio_formal_arglist.
2024
        * resolve.c (resolve_ppc_call,resolve_expr_ppc): Call gfc_ppc_use,
2025
        to check actual arguments and treat formal args correctly.
2026
        (resolve_fl_derived): Copy formal args of procedure pointer components
2027
        from their interface.
2028
        * symbol.c (gfc_copy_formal_args_ppc): New function, analogous to
2029
        gfc_copy_formal_args, but for procedure pointer components.
2030
 
2031
2009-06-22  Janus Weil  
2032
 
2033
        PR fortran/37254
2034
        PR fortran/39850
2035
        * interface.c (compare_parameter): Set implicit type for function
2036
        actual arguments with BT_UNKNOWN.
2037
 
2038
2009-06-22  Tobias Burnus  
2039
 
2040
        PR fortran/40472
2041
        PR fortran/50520
2042
        * simplify.c (gfc_simplify_spread): Fix the case that source=
2043
        is a scalar.
2044
 
2045
2009-06-22  Paul Thomas  
2046
 
2047
        PR fortran/40443
2048
        * interface.c (gfc_search_interface): Hold back a match to an
2049
        elementary procedure until all other possibilities are
2050
        exhausted.
2051
 
2052
2009-06-22  Paul Thomas  
2053
 
2054
        PR fortran/40472
2055
        * simplify.c (gfc_simplify_spread): Restrict the result size to
2056
        the limit for an array constructor.
2057
 
2058
2009-06-21  Janus Weil  
2059
 
2060
        PR fortran/39850
2061
        * interface.c (gfc_compare_interfaces): Take care of implicit typing
2062
        when checking the function attribute. Plus another bugfix.
2063
        (compare_parameter): Set attr.function and attr.subroutine according
2064
        to the usage of a procedure as actual argument.
2065
 
2066
2009-06-20  Tobias Burnus  
2067
 
2068
        PR fortran/40452
2069
        * trans-decl.c (add_argument_checking): Disable bounds check
2070
        for allowed argument storage association.
2071
 
2072
2009-06-19  Paul Thomas  
2073
 
2074
        PR fortran/40440
2075
        * trans-expr.c (gfc_conv_procedure_call): Do not deallocate
2076
        allocatable components if the argument is a pointer.
2077
 
2078
2009-06-19  Kaveh R. Ghazi  
2079
 
2080
        * gfortran.h (gfc_expr): Use mpc_t to represent complex numbers.
2081
 
2082
        * arith.c, dump-parse-tree.c, expr.c, module.c, resolve.c,
2083
        simplify.c, target-memory.c, target-memory.h, trans-const.c,
2084
        trans-expr.c: Convert to mpc_t throughout.
2085
 
2086
2009-06-19  Ian Lance Taylor  
2087
 
2088
        * cpp.c (struct gfc_cpp_option_data): Give this struct, used for
2089
        the global variable gfc_cpp_option, a name.
2090
 
2091
2009-06-19  Janus Weil  
2092
 
2093
        PR fortran/40450
2094
        * trans-expr.c (gfc_conv_procedure_call): Only add an extra addr_expr
2095
        to a procedure pointer actual argument, if it is not itself a
2096
        dummy arg.
2097
 
2098
2009-06-18  Janus Weil  
2099
 
2100
        PR fortran/40451
2101
        * resolve.c (resolve_contained_fntype): Prevent implicit typing for
2102
        procedures with explicit interface.
2103
        * symbol.c (gfc_check_function_type): Ditto.
2104
 
2105
2009-06-16  Ian Lance Taylor  
2106
 
2107
        * decl.c (build_struct): Rewrite loop over constructor elements.
2108
 
2109
2009-06-16  Janus Weil  
2110
 
2111
        PR fortran/36947
2112
        PR fortran/40039
2113
        * expr.c (gfc_check_pointer_assign): Call 'gfc_compare_interfaces' with
2114
        error message.
2115
        * gfortran.h (gfc_compare_interfaces): Additional argument.
2116
        * interface.c (operator_correspondence): Removed.
2117
        (gfc_compare_interfaces): Additional argument to return error message.
2118
        Directly use the code from 'operator_correspondence' instead of calling
2119
        the function. Check for OPTIONAL. Some rearrangements.
2120
        (check_interface1): Call 'gfc_compare_interfaces' without error message.
2121
        (compare_parameter): Call 'gfc_compare_interfaces' with error message.
2122
        * resolve.c (check_generic_tbp_ambiguity): Call 'gfc_compare_interfaces'
2123
        without error message.
2124
 
2125
2009-06-16  Tobias Burnus  
2126
 
2127
        PR fortran/40383
2128
        * trans-decl.c (create_function_arglist): Copy formal charlist to
2129
        have a proper passed_length for -fcheck=bounds.
2130
 
2131
2009-06-12  Steven G. Kargl  
2132
 
2133
        * arith.c (gfc_enum_initializer): Move function ...
2134
        * decl.c: ... here.  Remove gfc_ prefix and make static.
2135
        (enumerator_decl): Update function call.
2136
        * gfortran.h:  Remove gfc_enum_initializer prototype.
2137
 
2138
2009-06-12  Aldy Hernandez  
2139
 
2140
        * trans-array.c (gfc_trans_allocate_array_storage): Pass
2141
        location on down.
2142
        (gfc_trans_array_constructor_value): Same.
2143
        (gfc_trans_scalarized_loop_end): Same.
2144
        (gfc_conv_ss_startstride): Same.
2145
        (gfc_trans_g77_array): Same.
2146
        (gfc_trans_dummy_array_bias): Same.
2147
        (gfc_conv_array_parameter): Same.
2148
        (structure_alloc_comps): Same.
2149
        * trans-expr.c (gfc_conv_function_call): Same.
2150
        (fill_with_spaces): Same.
2151
        (gfc_trans_string_copy): Same.
2152
        (gfc_trans_scalar_assign): Same.
2153
        * trans-stmt.c (gfc_trans_goto): Same.
2154
        (gfc_trans_if_1): Same.
2155
        (gfc_trans_simple_do): Same.
2156
        (gfc_trans_do): Same.
2157
        (gfc_trans_do_while): Same.
2158
        (gfc_trans_logical_select): Same.
2159
        (gfc_trans_select): Same.
2160
        (gfc_trans_forall_loop): Same.
2161
        (gfc_trans_nested_forall_loop): Same.
2162
        (generate_loop_for_temp_to_lhs): Same.
2163
        (generate_loop_for_rhs_to_temp): Same.
2164
        (gfc_trans_forall_1): Same.
2165
        (gfc_trans_where_assign): Same.
2166
        (gfc_trans_where_3): Same.
2167
        (gfc_trans_allocate): Same.
2168
        * trans.c (gfc_finish_block): Same.
2169
        (gfc_trans_runtime_check): Same.
2170
        (gfc_call_malloc): Same.
2171
        (gfc_allocate_with_status): Same.
2172
        (gfc_call_free): Same.
2173
        (gfc_deallocate_with_status): Same.
2174
        (gfc_call_realloc): Same.
2175
        (gfc_trans_code): Same.
2176
        * trans-decl.c (gfc_init_default_dt): Same.
2177
        (gfc_generate_constructors): Same.
2178
        * trans-io.c (gfc_trans_io_runtime_check): Same.
2179
        * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Same.
2180
        (gfc_conv_intrinsic_fdate): Same.
2181
        (gfc_conv_intrinsic_ttynam): Same.
2182
        (gfc_conv_intrinsic_minmax): Same.
2183
        (gfc_conv_intrinsic_minmax_char): Same.
2184
        (gfc_conv_intrinsic_anyall): Same.
2185
        (gfc_conv_intrinsic_count): Same.
2186
        (gfc_conv_intrinsic_arith): Same.
2187
        (gfc_conv_intrinsic_minmaxloc): Same.
2188
        (gfc_conv_intrinsic_minmaxval): Same.
2189
        (gfc_conv_intrinsic_rrspacing): Same.
2190
        (gfc_conv_intrinsic_array_transfer): Same.
2191
        (gfc_conv_intrinsic_trim): Same.
2192
        (gfc_conv_intrinsic_repeat): Same.
2193
 
2194
2009-06-12  Janus Weil  
2195
 
2196
        PR fortran/40176
2197
        * resolve.c (resolve_symbol): Additional error check, preventing an
2198
        infinite loop.
2199
 
2200
2009-06-11  Paul Thomas  
2201
 
2202
        PR fortran/40402
2203
        * resolve.c (next_data_value): It is an error if the value is
2204
        not constant.
2205
 
2206
2009-06-11  Francois-Xavier Coudert  
2207
 
2208
        PR fortran/38718
2209
        * intrinsic.c (add_functions): Add simplifiers for ISNAN,
2210
        IS_IOSTAT_END and IS_IOSTAT_EOR.
2211
        * intrinsic.h (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
2212
        gfc_simplify_isnan): New prototypes.
2213
        * intrinsic.c (gfc_simplify_is_iostat_end, gfc_simplify_is_iostat_eor,
2214
        gfc_simplify_isnan): New functions.
2215
 
2216
2009-06-11  Jakub Jelinek  
2217
 
2218
        * interface.c (fold_unary): Rename to...
2219
        (fold_unary_intrinsic): ... this.
2220
        (gfc_extend_expr): Adjust caller.
2221
        (gfc_match_generic_spec): Likewise.  Initialize *op to INTRINSIC_NONE
2222
        to avoid warnings.
2223
        * expr.c (gfc_simplify_expr): Initialize start and end before calling
2224
        gfc_extract_int.
2225
 
2226
2009-06-10  Dave Korn  
2227
 
2228
        * trans-decl.c (create_main_function):  Don't build main decl twice.
2229
 
2230
2009-06-09  Tobias Burnus  
2231
 
2232
        * trans-decl.c (gfc_generate_function_code): Use gfc_option.rtcheck
2233
        instead of flag_bounds_check.
2234
        * intrinsic.texi (ISO_FORTRAN_ENV): Document INT{8,16,32,64} and
2235
        REAL{32,64,128}.
2236
 
2237
2009-06-08  Paul Thomas  
2238
 
2239
        * trans-array.h : Replace prototypes for
2240
        gfc_conv_descriptor_offset, gfc_conv_descriptor_stride,
2241
        gfc_conv_descriptor_lbound, gfc_conv_descriptor_ubound with new
2242
        prototypes of the same names with _get or _set appended.
2243
        * trans-array.c : Make the originals of the above static and
2244
        new functions for the _get and _set functions. Update all the
2245
        references to these descriptor access functions.
2246
        * trans-expr.c : Update references to the above descriptor
2247
        access functions.
2248
        * trans-intrinsic.c : The same.
2249
        * trans-openmp.c : The same.
2250
        * trans-stmt.c : The same.
2251
 
2252
2009-06-08  Alexandre Oliva  
2253
 
2254
        * options.c (gfc_post_options): Disable dump_parse_tree
2255
        during -fcompare-debug-second.
2256
 
2257
2009-06-07  Jerry DeLisle  
2258
 
2259
        PR fortran/40008
2260
        * gfortran.h (gfc_open): Add newunit expression to structure.
2261
        * io.c (io_tag): Add new unit tag and fix whitespace.
2262
        (match_open_element): Add matching for newunit.
2263
        (gfc_free_open): Free the newunit expression.
2264
        (gfc_resolve_open): Add newunit to resolution and check constraints.
2265
        (gfc_resolve_close): Add check for non-negative unit.
2266
        (gfc_resolve_filepos): Likewise.
2267
        (gfc_resolve_dt): Likewise.
2268
        * trans-io.c (set_parameter_value): Build runtime checks for unit
2269
        numbers within range of kind=4 integer. (gfc_trans_open) Set the
2270
        newunit parameter.
2271
        * ioparm.def (IOPARM): Define the newunit parameter as a pointer
2272
        to GFC_INTEGER_4, pint4.
2273
 
2274
2009-06-07  Daniel Franke  
2275
 
2276
        PR fortran/25104
2277
        PR fortran/29962
2278
        * array.c (gfc_append_constructor): Added NULL-check.
2279
        * check.c (gfc_check_spread): Check DIM.
2280
        (gfc_check_unpack): Check that the ARRAY arguments provides enough
2281
        values for MASK.
2282
        * intrinsic.h (gfc_simplify_spread): New prototype.
2283
        (gfc_simplify_unpack): Likewise.
2284
        * intrinsic.c (add_functions): Added new simplifier callbacks.
2285
        * simplify.c (gfc_simplify_spread): New.
2286
        (gfc_simplify_unpack): New.
2287
        * expr.c (check_transformational): Allow additional transformational
2288
        intrinsics in initialization expression.
2289
 
2290
2009-06-07  Daniel Franke  
2291
 
2292
        PR fortran/25104
2293
        PR fortran/29962
2294
        * check.c (gfc_check_all_any): Check rank of DIM.
2295
        (gfc_check_count): Likewise.
2296
        * intrinsic.h (gfc_simplify_all): New prototype.
2297
        (gfc_simplify_any): Likewise.
2298
        (gfc_simplify_count): Likewise.
2299
        (gfc_simplify_sum): Likewise.
2300
        (gfc_simplify_product): Likewise.
2301
        * intrinsic.c (add_functions): Added new simplifier callbacks.
2302
        * simplify.c (transformational_result): New.
2303
        (simplify_transformation_to_scalar): New.
2304
        (simplify_transformation_to_array): New.
2305
        (gfc_count): New.
2306
        (gfc_simplify_all): New.
2307
        (gfc_simplify_any): New.
2308
        (gfc_simplify_count): New.
2309
        (gfc_simplify_sum): New.
2310
        (gfc_simplify_product): New.
2311
        * expr.c (check_transformational): Allow additional transformational
2312
        intrinsics in initialization expression.
2313
 
2314
2009-06-07  Daniel Franke  
2315
 
2316
        * check.c (dim_rank_check): Return SUCCESS if DIM=NULL.
2317
        (gfc_check_lbound): Removed (now) redundant check for DIM=NULL.
2318
        (gfc_check_minloc_maxloc): Likewise.
2319
        (check_reduction): Likewise.
2320
        (gfc_check_size): Likewise.
2321
        (gfc_check_ubound): Likewise.
2322
        (gfc_check_cshift): Added missing shape-conformance checks.
2323
        (gfc_check_eoshift): Likewise.
2324
        * gfortran.h (gfc_check_conformance): Modified prototype to printf-style.
2325
        * expr.c (gfc_check_conformance): Accept error-message chunks in
2326
        printf-style. Changed all callers.
2327
 
2328
 
2329
2009-06-07  Daniel Franke  
2330
 
2331
        PR fortran/25104
2332
        PR fortran/29962
2333
        * intrinsic.h (gfc_simplify_dot_product): New prototype.
2334
        (gfc_simplify_matmul): Likewise.
2335
        (gfc_simplify_transpose): Likewise.
2336
        * intrinsic.c (add_functions): Added new simplifier callbacks.
2337
        * simplify.c (init_result_expr): New.
2338
        (compute_dot_product): New.
2339
        (gfc_simplify_dot_product): New.
2340
        (gfc_simplify_matmul): New.
2341
        (gfc_simplify_transpose): New.
2342
        * expr.c (check_transformational): Allow transformational intrinsics
2343
        with simplifier in initialization expression.
2344
 
2345
2009-06-06  Daniel Franke  
2346
 
2347
        PR fortran/37203
2348
        * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty arrays
2349
        without padding.
2350
 
2351
2009-06-06  Daniel Franke  
2352
 
2353
        PR fortran/32890
2354
        * intrinsic.h (gfc_simplify_pack): New prototype.
2355
        * intrinsic.c (add_functions): Added
2356
        simplifier-callback to PACK.
2357
        * simplify.c (is_constant_array_expr): Moved
2358
        to beginning of file.
2359
        (gfc_simplify_pack): New.
2360
        * check.c (gfc_check_pack): Check that VECTOR has enough elements.
2361
        Added safeguards for empty arrays.
2362
 
2363
2009-06-05  Kaveh R. Ghazi  
2364
 
2365
        * simplify.c (call_mpc_func): Use mpc_realref/mpc_imagref
2366
        instead of MPC_RE/MPC_IM.
2367
 
2368
2009-06-05  Alexandre Oliva  
2369
 
2370
        * trans-decl.c (gfc_build_qualified_array): Don't skip generation
2371
        of range types.
2372
        * trans.h (struct lang_type): Add base_decls.
2373
        (GFC_TYPE_ARRAY_BASE_DECL): New.
2374
        * trans-types.c (gfc_get_array_type_bounds): Initialize base decls
2375
        proactively and excessively.
2376
        (gfc_get_array_descr_info): Use existing base decls if available.
2377
 
2378
2009-06-04  Daniel Franke  
2379
 
2380
        PR fortran/37203
2381
        * check.c (gfc_check_reshape): Additional checks for the
2382
        SHAPE and ORDER arguments.
2383
        * simplify.c (gfc_simplify_reshape): Converted argument checks
2384
        to asserts.
2385
 
2386
2009-06-03  Tobias Burnus  
2387
 
2388
        * gfortran.texi: Add mixed-language programming, mention
2389
        varying string lengths, some clean up of introduction parts.
2390
        * intrinsic.texi (instrinsic modules): Create @menu for subsections.
2391
        (ISO_C_BINDING): Support ISOCBINDING_INT_FAST128_T.
2392
        * libgfortran.h: Comment to rember to keep gfortran.texi in sync.
2393
        * iso-c-binding.def: Support ISOCBINDING_INT_FAST128_T.
2394
 
2395
2009-06-03  Francois-Xavier Coudert  
2396
            Tobias Burnus  
2397
 
2398
        * iso-c-binding.def: Use INTMAX_TYPE instead of intmax_type_node.
2399
        * trans-types.c (init_c_interop_kinds): Remove intmax_type_node.
2400
 
2401
2009-06-03  Alexandre Oliva  
2402
 
2403
        * module.c (mio_f2k_derived): Initialize cur.
2404
 
2405
2009-06-01  Tobias Burnus  
2406
 
2407
        PR fortran/40309
2408
        * trans-decl.c (gfc_sym_identifier): Use "MAIN__" for PROGRAM "main".
2409
        (create_main_function): Set main_identifier_node.
2410
 
2411
2009-05-29  Francois-Xavier Coudert  
2412
 
2413
        PR fortran/40019
2414
        * trans-types.c (gfc_build_uint_type): Make nonstatic.
2415
        * trans.h (gfor_fndecl_clz128, gfor_fndecl_ctz128): New prototypes.
2416
        * trans-types.h (gfc_build_uint_type): Add prototype.
2417
        * trans-decl.c (gfc_build_intrinsic_function_decls): Build
2418
        gfor_fndecl_clz128 and gfor_fndecl_ctz128.
2419
        * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
2420
        gfc_conv_intrinsic_trailz): Call the right builtins or library
2421
        functions, and cast arguments to unsigned types first.
2422
        * simplify.c (gfc_simplify_leadz): Deal with negative arguments.
2423
 
2424
2009-05-27  Ian Lance Taylor  
2425
 
2426
        * Make-lang.in (gfortran$(exeext)): Change $(COMPILER) to
2427
        $(LINKER).
2428
        (f951$(exeext)): Likewise.
2429
 
2430
2009-05-27  Tobias Burnus  
2431
 
2432
        PR fortran/40270
2433
        * trans-decl.c (create_main_function): Mark MAIN__ and
2434
        argc/argv as TREE_USED and push/pop function_decl context
2435
        if needed.
2436
 
2437
2009-05-26  Tobias Burnus  
2438
 
2439
        PR fortran/39178
2440
        * gfortranspec.c (lang_specific_driver): Stop linking
2441
        libgfortranbegin.
2442
        * trans-decl.c (gfc_build_builtin_function_decls): Stop
2443
        making MAIN__ publicly visible.
2444
        (gfc_build_builtin_function_decls): Add
2445
        gfor_fndecl_set_args.
2446
        (create_main_function) New function.
2447
        (gfc_generate_function_code): Use it.
2448
 
2449
2009-05-26  Tobias Burnus  
2450
 
2451
        PR fortran/40246
2452
        * match.c (gfc_match_nullify): NULLify freed pointer.
2453
 
2454
2009-05-26  Ian Lance Taylor  
2455
 
2456
        * Make-lang.in (gfortranspec.o): Use $(COMPILER).
2457
        (gfortran$(exeext), f951$(exeext), fortran/cpp.o): Likewise.
2458
 
2459
2009-05-26  Kaveh R. Ghazi  
2460
 
2461
        * gfortran.h (GFC_MPC_RND_MODE): New.
2462
        * simplify.c (call_mpc_func): New helper function.
2463
        (gfc_simplify_cos, gfc_simplify_exp, gfc_simplify_log,
2464
        gfc_simplify_sin, gfc_simplify_sqrt): Add MPC support.
2465
 
2466
2009-05-25  Janus Weil  
2467
 
2468
        PR fortran/40176
2469
        * primary.c (gfc_match_varspec): Handle procedure pointer components
2470
        with array return value.
2471
        * resolve.c (resolve_expr_ppc): Ditto.
2472
        (resolve_symbol): Make sure the interface of a procedure pointer has
2473
        been resolved.
2474
        * trans-array.c (gfc_walk_function_expr): Handle procedure pointer
2475
        components with array return value.
2476
        * trans-expr.c (gfc_conv_component_ref,gfc_conv_procedure_call,
2477
        gfc_trans_arrayfunc_assign): Ditto.
2478
        (gfc_trans_pointer_assignment): Handle procedure pointer assignments,
2479
        where the rhs is a dummy argument.
2480
        * trans-types.c (gfc_get_ppc_type,gfc_get_derived_type): Handle
2481
        procedure pointer components with array return value.
2482
 
2483
2009-05-24  Jerry DeLisle  
2484
            Dominique Dhumieres
2485
 
2486
        PR fortran/35732
2487
        PR fortran/39872
2488
        * trans-array.c (gfc_conv_ss_startstride): Add one to index.
2489
 
2490
2009-05-22  Francois-Xavier Coudert  
2491
 
2492
        PR fortran/40195
2493
        * module.c (read_md5_from_module_file): Close file before returning.
2494
 
2495
2009-05-18  Janus Weil  
2496
 
2497
        PR fortran/40164
2498
        * primary.c (gfc_match_rvalue): Handle procedure pointer components in
2499
        arrays.
2500
        * resolve.c (resolve_ppc_call,resolve_expr_ppc): Resolve component and
2501
        array references.
2502
        (resolve_fl_derived): Procedure pointer components are not required to
2503
        have constant array bounds in their return value.
2504
 
2505
2009-05-18  Janus Weil  
2506
 
2507
        * intrinsic.c (add_sym): Fix my last commit (r147655),
2508
        which broke bootstrap.
2509
 
2510
2009-05-18  Richard Guenther  
2511
 
2512
        PR fortran/40168
2513
        * trans-expr.c (gfc_trans_zero_assign): For local array
2514
        destinations use an assignment from an empty constructor.
2515
 
2516
2009-05-18  Janus Weil  
2517
 
2518
        PR fortran/36947
2519
        PR fortran/40039
2520
        * expr.c (gfc_check_pointer_assign): Check intents when comparing
2521
        interfaces.
2522
        * gfortran.h (typedef struct gfc_intrinsic_arg): Add 'intent' member.
2523
        (gfc_compare_interfaces): Additional argument.
2524
        * interface.c (operator_correspondence): Add check for equality of
2525
        intents, and new argument 'intent_check'.
2526
        (gfc_compare_interfaces): New argument 'intent_check', which is passed
2527
        on to operator_correspondence.
2528
        (check_interface1): Don't check intents when comparing interfaces.
2529
        (compare_parameter): Do check intents when comparing interfaces.
2530
        * intrinsic.c (add_sym): Add intents for arguments of intrinsic
2531
        procedures.
2532
        (add_sym_1,add_sym_1s,add_sym_1m,add_sym_2,add_sym_2s,add_sym_3,
2533
        add_sym_3ml,add_sym_3red,add_sym_3s,add_sym_4): Use INTENT_IN by
2534
        default.
2535
        (add_sym_1_intent,add_sym_1s_intent,add_sym_2s_intent,add_sym_3s_intent)
2536
        : New functions to add intrinsic symbols, specifying custom intents.
2537
        (add_sym_4s,add_sym_5s): Add new arguments to specify intents.
2538
        (add_functions,add_subroutines): Add intents for various intrinsics.
2539
        * resolve.c (check_generic_tbp_ambiguity): Don't check intents when
2540
        comparing interfaces.
2541
        * symbol.c (gfc_copy_formal_args_intr): Copy intent.
2542
 
2543
2009-05-17  Francois-Xavier Coudert  
2544
 
2545
        * iso-fortran-env.def: Define INT8, INT16, INT32, INT64, REAL32,
2546
        REAL64 and REAL128.
2547
        * gfortran.h (gfc_get_int_kind_from_width_isofortranenv,
2548
        gfc_get_real_kind_from_width_isofortranenv): New prototypes.
2549
        * iso-c-binding.def: Update definitions for the INT*_T,
2550
        INT_LEAST*_T and INT_FAST*_T named parameters.
2551
        * trans-types.c (get_typenode_from_name, get_int_kind_from_name,
2552
        gfc_get_real_kind_from_width_isofortranenv): New functions.
2553
 
2554
2009-05-17  Francois-Xavier Coudert  
2555
 
2556
        PR fortran/36260
2557
        * intrinsic.c (add_functions, add_subroutines): Fix argument
2558
        names and wrap long lines.
2559
        * intrinsic.texi: Fix documentation and argument names of
2560
        LOG_GAMMA, DATAN2, DBESJN, DTIME, ETIME, FSTAT, STAT, LSTAT,
2561
        GET_COMMAND, IDATE, LTIME, MOVE_ALLOC, NINT, OR, PRODUCT,
2562
        SUM, RAND, RANDOM_SEED, REAL, SELECTED_INT_KIND,
2563
        SELECTED_REAL_KIND and XOR.
2564
 
2565
2009-05-16  Francois-Xavier Coudert  
2566
 
2567
        PR fortran/33197
2568
        * intrinsic.c (add_functions): Use ERFC_SCALED simplification.
2569
        * intrinsic.h (gfc_simplify_erfc_scaled): New prototype.
2570
        * simplify.c (fullprec_erfc_scaled, asympt_erfc_scaled,
2571
        gfc_simplify_erfc_scaled): New functions.
2572
 
2573
2009-05-16  Francois-Xavier Coudert  
2574
 
2575
        PR fortran/31243
2576
        * resolve.c (resolve_substring): Don't allow too large substring
2577
        indexes.
2578
        (gfc_resolve_substring_charlen): Fix typo.
2579
        (gfc_resolve_character_operator): Fix typo.
2580
        (resolve_charlen): Catch unreasonably large string lengths.
2581
        * simplify.c (gfc_simplify_len): Don't error out on LEN
2582
        range checks.
2583
 
2584
2009-05-16  Francois-Xavier Coudert  
2585
 
2586
        PR fortran/36031
2587
        * decl.c (set_enum_kind): Use global short-enums flag.
2588
        * gfortran.h (gfc_option_t): Remove short_enums flag.
2589
        * lang.opt (-fshort-enums): Refer to C documentation.
2590
        * options.c (gfc_init_options, gfc_handle_option): Use global
2591
        short-enums flag.
2592
 
2593
2009-05-15  Tobias Burnus  
2594
 
2595
        PR fortran/39352
2596
        * f95-lang.c: Add gfc_maybe_initialize_eh.
2597
        * gfortran.h: Add gfc_maybe_initialize_eh prototype.
2598
        * Make-lang.in: Add new .h dendencies for f95-lang.c
2599
        * openmp.c (resolve_omp_do): Call gfc_maybe_initialize_eh.
2600
        * misc.c (gfc_free): Avoid #define trickery for free.
2601
 
2602
2009-05-14  Steven G. Kargl  
2603
 
2604
        * dump-parse-tree.c (show_code_node): Add ERRMSG to the dumping
2605
        of allocate and deallocate statements.
2606
 
2607
2009-05-14  Ian Lance Taylor  
2608
 
2609
        * decl.c (match_attr_spec): Change d to unsigned int.
2610
        * dump-parse-tree.c (show_namespace): Change op to int.  Add cast.
2611
        * interface.c (gfc_check_interfaces): Change i to int.  Add casts.
2612
        * module.c (read_module): Change i to int.  Add cast.
2613
        (write_module): Change i to int.
2614
        * symbol.c (gfc_get_namespace): Change in to int.
2615
        (gfc_free_namespace): Change i to int.
2616
        * trans-io.c (gfc_build_io_library_fndecls): Change ptype to
2617
        unsigned int.  Add cast.
2618
        * trans-types.c (gfc_init_kinds): Change mode to unsigned int.
2619
        Add casts.
2620
 
2621
2009-05-14  Daniel Kraft  
2622
 
2623
        PR fortran/40045
2624
        * dump-parse-tree.c (show_typebound): Fix missing adaption to new
2625
        type-bound procedure storage structure.
2626
 
2627
2009-05-14  Janus Weil  
2628
 
2629
        PR fortran/39996
2630
        * decl.c (gfc_match_function_decl): Use gfc_add_type.
2631
        * symbol.c (gfc_add_type): Better checking for duplicate types in
2632
        function declarations. And: Always give an error for duplicte types,
2633
        not just a warning with -std=gnu.
2634
 
2635
2009-05-14  Jakub Jelinek  
2636
 
2637
        PR fortran/39865
2638
        * io.c (resolve_tag_format): CHARACTER array in FMT= argument
2639
        isn't an extension.  Reject non-CHARACTER array element of
2640
        assumed shape or pointer or assumed size array.
2641
        * trans-array.c (array_parameter_size): New function.
2642
        (gfc_conv_array_parameter): Add size argument.  Call
2643
        array_parameter_size if it is non-NULL.
2644
        * trans-array.h (gfc_conv_array_parameter): Adjust prototype.
2645
        * trans-expr.c (gfc_conv_function_call, gfc_trans_arrayfunc_assign):
2646
        Adjust callers.
2647
        * trans-intrinsic.c (gfc_conv_intrinsic_loc): Likewise.
2648
        * trans-io.c (gfc_convert_array_to_string): Rewritten.
2649
 
2650
2009-05-13  Steven G. Kargl  
2651
 
2652
        * gfortran.h (gfc_code): Rename struct member expr to expr1.
2653
        * openmp.c (resolve_omp_atomic): Update expr to expr1.
2654
        * interface.c (gfc_extend_assign): Ditto.
2655
        * trans-expr.c (gfc_conv_expr_reference, gfc_trans_assignment,
2656
        gfc_trans_init_assign): Ditto.
2657
        * dump-parse-tree.c (show_code_node): Ditto.
2658
        * trans-openmp.c (gfc_trans_omp_atomic): Ditto.
2659
        * trans-stmt.c ( gfc_trans_label_assign, gfc_trans_goto, gfc_trans_call,
2660
        gfc_trans_return, gfc_trans_pause, gfc_trans_stop, gfc_trans_if_1,
2661
        gfc_trans_arithmetic_if, gfc_trans_do_while, gfc_trans_integer_select,
2662
        gfc_trans_logical_select, gfc_trans_character_select
2663
        forall_make_variable_temp, check_forall_dependencies
2664
        gfc_trans_forall_1, gfc_trans_where_2, gfc_trans_where_3
2665
        gfc_trans_where, gfc_trans_allocate, gfc_trans_deallocate): Ditto.
2666
        * io.c (match_io_element, gfc_match_inquire): Ditto.
2667
        * resolve.c (resolve_typebound_call, resolve_ppc_call,
2668
        resolve_allocate_expr, resolve_allocate_deallocate, resolve_select,
2669
        resolve_transfer, resolve_where, gfc_resolve_assign_in_forall,
2670
        gfc_resolve_blocks, resolve_code, build_init_assign): Ditto.
2671
        * st.c (gfc_free_statement): Ditto.
2672
        * match.c (gfc_match_assignment, gfc_match_pointer_assignment,
2673
        match_arithmetic_if, gfc_match_if, gfc_match_elseif
2674
        gfc_match_stopcode, gfc_match_assign, gfc_match_goto,
2675
        gfc_match_nullify, match_typebound_call, gfc_match_call
2676
        gfc_match_select, match_simple_where, gfc_match_where
2677
        gfc_match_elsewhere, match_simple_forall, gfc_match_forall): Ditto.
2678
        * trans-io.c (gfc_trans_transfer): Ditto.
2679
        * parse.c (parse_where_block, parse_if_block): Ditto.
2680
 
2681
2009-05-13  Steven G. Kargl  
2682
 
2683
        * gfortran.h (gfc_code): Rename struct member label to label1.
2684
        * dump-parse-tree.c (show_code_node): Update symbol.
2685
        * trans-stmt.c (gfc_trans_label_assign, gfc_trans_goto,
2686
        gfc_trans_arithmetic_if): Ditto.
2687
        * resolve.c (gfc_resolve_blocks, resolve_code): Ditto.
2688
        * match.c (match_arithmetic_if, gfc_match_if, gfc_reference_st_label,
2689
        gfc_match_assign, gfc_match_goto): Ditto.
2690
        * parse.c (parse_do_block): Ditto.
2691
 
2692
2009-05-13  Tobias Burnus  
2693
 
2694
        PR fortran/34153
2695
        * gfortran.h (gfc_exec_op): Add EXEC_END_PROCEDURE.
2696
        * dump-parse-tree.c (show_code_node): Use EXEC_END_PROCEDURE.
2697
        * trans.c (gfc_trans_code): Ditto.
2698
        * resolve.c (resolve_code): Ditto.
2699
        * st.c (gfc_free_statement): Ditto.
2700
        * parse.c (accept_statement): Ditto.
2701
 
2702
2009-05-12  Tobias Burnus  
2703
 
2704
        PR fortran/40110
2705
        * decl.c (gfc_match_kind_spec): Turn C kind error into a warning.
2706
 
2707
2009-05-11  Steve Ellcey  
2708
 
2709
        * resolve.c (check_host_association): Initialize tail.
2710
 
2711
2009-05-11  Janus Weil  
2712
 
2713
        PR fortran/40089
2714
        * resolve.c (resolve_fl_derived): Only return FAILURE if
2715
        gfc_notify_std fails.
2716
 
2717
2009-05-10  Ian Lance Taylor  
2718
 
2719
        * gfortran.h (enum gfc_omp_sched_kind): New enum, broken out of
2720
        gfc_omp_clauses.
2721
        (enum gfc_omp_default_sharing): Likewise.
2722
        * module.c (enum gfc_rsym_state): New enum, broken out of
2723
        pointer_info.
2724
        (enum gfc_wsym_state): Likewise.
2725
        * parse.c (enum state_order): New enum, broken out of st_state.
2726
 
2727
2009-05-10  Paul Thomas  
2728
 
2729
        PR fortran/40018
2730
        * trans-array.c (gfc_trans_array_constructor_value): Fold
2731
        convert numeric constants.
2732
        (gfc_build_constant_array_constructor): The same.
2733
 
2734
2009-05-10  Paul Thomas  
2735
 
2736
        PR fortran/38863
2737
        * trans-expr.c (gfc_conv_operator_assign): Remove function.
2738
        * trans.h : Remove prototype for gfc_conv_operator_assign.
2739
        * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize
2740
        derivde types with intent(out).
2741
        (gfc_trans_call): Add mask, count1 and invert arguments. Add
2742
        code to use mask for WHERE assignments.
2743
        (gfc_trans_forall_1): Use new arguments for gfc_trans_call.
2744
        (gfc_trans_where_assign): The gfc_symbol argument is replaced
2745
        by the corresponding code. If this has a resolved_sym, then
2746
        gfc_trans_call is called. The call to gfc_conv_operator_assign
2747
        is removed.
2748
        (gfc_trans_where_2): Change the last argument in the call to
2749
        gfc_trans_where_assign.
2750
        * trans-stmt.h : Modify prototype for gfc_trans_call.
2751
        * trans.c (gfc_trans_code): Use new args for gfc_trans_call.
2752
 
2753
2009-05-08  Janus Weil  
2754
 
2755
        PR fortran/39876
2756
        * intrinsic.c (gfc_is_intrinsic): Do not add the EXTERNAL attribute if
2757
        the symbol is a module procedure.
2758
 
2759
2009-05-08  Tobias Burnus  
2760
 
2761
        * invoke.texi: Add do/recursion to the -fcheck= summary.
2762
 
2763
2009-05-07  Francois-Xavier Coudert  
2764
 
2765
        PR fortran/38830
2766
        * gfortran.texi: Document that we don't support variable FORMAT
2767
        expressions.
2768
 
2769
2009-05-07  Francois-Xavier Coudert  
2770
 
2771
        PR fortran/39576
2772
        * error.c (error_print): Add missing break statement.
2773
 
2774
2009-05-07  Francois-Xavier Coudert  
2775
 
2776
        PR fortran/36382
2777
        * invoke.texi: Document that -fdollar-ok does not allow $ to be
2778
        used in IMPLICIT statement.
2779
 
2780
2009-05-06  Janus Weil  
2781
            Paul Thomas  
2782
 
2783
        PR fortran/39630
2784
        * decl.c (match_procedure_interface): New function to match the
2785
        interface for a PROCEDURE statement.
2786
        (match_procedure_decl): Call match_procedure_interface.
2787
        (match_ppc_decl): New function to match the declaration of a
2788
        procedure pointer component.
2789
        (gfc_match_procedure):  Call match_ppc_decl.
2790
        (match_binding_attributes): Add new argument 'ppc' and handle the
2791
        POINTER attribute for procedure pointer components.
2792
        (match_procedure_in_type,gfc_match_generic): Added new argument to
2793
        match_binding_attributes.
2794
        * dump-parse-tree.c (show_expr,show_components,show_code_node): Handle
2795
        procedure pointer components.
2796
        * expr.c (free_expr0,gfc_copy_expr,gfc_simplify_expr): Handle EXPR_PPC.
2797
        (gfc_check_pointer_assign): Handle procedure pointer components, but no
2798
        full checking yet.
2799
        (is_proc_ptr_comp): New function to determine if an expression is a
2800
        procedure pointer component.
2801
        * gfortran.h (expr_t): Add EXPR_PPC.
2802
        (symbol_attribute): Add new member 'proc_pointer_comp'.
2803
        (gfc_component): Add new member 'formal'.
2804
        (gfc_exec_op): Add EXEC_CALL_PPC.
2805
        (gfc_get_default_type): Changed first argument.
2806
        (is_proc_ptr_comp): Add prototype.
2807
        (gfc_match_varspec): Add new argument.
2808
        * interface.c (compare_actual_formal): Handle procedure pointer
2809
        components.
2810
        * match.c (gfc_match_pointer_assignment,match_typebound_call): Handle
2811
        procedure pointer components.
2812
        * module.c (mio_expr): Handle EXPR_PPC.
2813
        * parse.c (parse_derived): Handle procedure pointer components.
2814
        * primary.c (gfc_match_varspec): Add new argument 'ppc_arg' and handle
2815
        procedure pointer components.
2816
        (gfc_variable_attr): Handle procedure pointer components.
2817
        (gfc_match_rvalue): Added new argument to gfc_match_varspec and changed
2818
        first argument of gfc_get_default_type.
2819
        (match_variable): Added new argument to gfc_match_varspec.
2820
        * resolve.c (resolve_entries,set_type,resolve_fl_parameter): Changed
2821
        first argument of gfc_get_default_type.
2822
        (resolve_structure_cons,resolve_actual_arglist): Handle procedure
2823
        pointer components.
2824
        (resolve_ppc_call): New function to resolve a call to a procedure
2825
        pointer component (subroutine).
2826
        (resolve_expr_ppc): New function to resolve a call to a procedure
2827
        pointer component (function).
2828
        (gfc_resolve_expr): Handle EXPR_PPC.
2829
        (resolve_code): Handle EXEC_CALL_PPC.
2830
        (resolve_fl_derived): Copy the interface for a procedure pointer
2831
        component.
2832
        (resolve_symbol): Fix overlong line.
2833
        * st.c (gfc_free_statement): Handle EXEC_CALL_PPC.
2834
        * symbol.c (gfc_get_default_type): Changed first argument.
2835
        (gfc_set_default_type): Changed first argument of gfc_get_default_type.
2836
        (gfc_add_component): Initialize ts.type to BT_UNKNOWN.
2837
        * trans.h (gfc_conv_function_call): Renamed.
2838
        * trans.c (gfc_trans_code): Handle EXEC_CALL_PPC.
2839
        * trans-expr.c (gfc_conv_component_ref): Ditto.
2840
        (gfc_conv_function_val): Rename to 'conv_function_val', add new
2841
        argument 'expr' and handle procedure pointer components.
2842
        (gfc_conv_operator_assign): Renamed gfc_conv_function_val.
2843
        (gfc_apply_interface_mapping_to_expr): Handle EXPR_PPC.
2844
        (gfc_conv_function_call): Rename to 'gfc_conv_procedure_call', add new
2845
        argument 'expr' and handle procedure pointer components.
2846
        (gfc_get_proc_ptr_comp): New function to get the backend decl for a
2847
        procedure pointer component.
2848
        (gfc_conv_function_expr): Renamed gfc_conv_function_call.
2849
        (gfc_conv_structure): Handle procedure pointer components.
2850
        * trans-intrinsic.c (gfc_conv_intrinsic_funcall,
2851
        conv_generic_with_optional_char_arg): Renamed gfc_conv_function_call.
2852
        * trans-stmt.h (gfc_get_proc_ptr_comp): Add prototype.
2853
        * trans-stmt.c (gfc_trans_call): Renamed gfc_conv_function_call.
2854
        * trans-types.h (gfc_get_ppc_type): Add prototype.
2855
        * trans-types.c (gfc_get_ppc_type): New function to build a tree node
2856
        for a procedure pointer component.
2857
        (gfc_get_derived_type): Handle procedure pointer components.
2858
 
2859
2009-05-06  Tobias Burnus  
2860
 
2861
        PR fortran/40041
2862
        * resolve.c (resolve_symbol): Print no warning for implicitly
2863
        typed intrinsic functions.
2864
 
2865
2009-05-05  Janus Weil  
2866
 
2867
        PR fortran/39998
2868
        * expr.c (gfc_check_pointer_assign): Check for statement functions and
2869
        internal procedures in procedure pointer assignments.
2870
 
2871
2009-04-28  Janus Weil  
2872
 
2873
        PR fortran/39946
2874
        * resolve.c (resolve_symbol): Correctly copy the interface of a
2875
        PROCEDURE statement if the interface involves a RESULT variable.
2876
 
2877
2009-04-28  Janus Weil  
2878
 
2879
        PR fortran/39930
2880
        PR fortran/39931
2881
        * expr.c (gfc_check_pointer_assign): Correctly detect if the left hand
2882
        side is a pointer.
2883
        * parse.c (gfc_fixup_sibling_symbols): Don't check for ambiguity.
2884
 
2885
2009-04-28  Paul Thomas  
2886
 
2887
        PR fortran/39879
2888
        * trans_expr.c (gfc_conv_procedure_call): Deep copy a derived
2889
        type parentheses argument if it is a variable with allocatable
2890
        components.
2891
 
2892
2009-04-27  Ian Lance Taylor  
2893
 
2894
        * trans-intrinsic.c (DEFINE_MATH_BUILTIN): Add casts to enum
2895
        type.
2896
        * trans-io.c (st_parameter_field): Add casts to enum type.
2897
 
2898
2009-04-26  Steven G. Kargl  
2899
 
2900
        PR fortran/39893
2901
        fortran/data.c (gfc_assign_data_value): If the lvalue is an
2902
        assumed character length entity in a data statement, then
2903
        return FAILURE to prevent segmentation fault.
2904
 
2905
2009-04-26  Jakub Jelinek  
2906
 
2907
        * trans-decl.c: Include pointer-set.h.
2908
        (nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
2909
        (gfc_nonlocal_dummy_array_decl): New function.
2910
        (gfc_get_symbol_decl): Call it for non-local dummy args with saved
2911
        descriptor.
2912
        (gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
2913
        (gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
2914
        chain it to outermost block's vars, destroy it afterwards.
2915
        * Make-lang.in (trans-decl.o): Depend on pointer-set.h.
2916
 
2917
2009-04-25  Janus Weil  
2918
 
2919
        PR fortran/39688
2920
        * decl.c (gfc_match_import): Use 'sym->name' instead of 'name'.
2921
        They differ if the symbol has been use-renamed.
2922
 
2923
2009-04-24  Ian Lance Taylor  
2924
 
2925
        * gfortran.h (enum gfc_symbol_type): New named enum type, broken
2926
        out of struct gfc_symbol.
2927
        (struct gfc_symbol): Use enum gfc_symbol_type.
2928
        (enum gfc_array_ref_dimen_type): New named enum type, broken out
2929
        of struct gfc_array_ref).
2930
        (struct gfc_array_ref): Use enum gfc_array_ref_dimen_type.
2931
        (mod_pointee_as): Update declaration.
2932
        * decl.c (add_global_entry): Change type to enum gfc_symbol_type.
2933
        (gfc_mod_pointee_as): Change return type to "match".
2934
        * module.c (mio_array_ref): Add cast to enum type.
2935
        (mio_symbol): Likewise.
2936
        * resolve.c (resolve_global_procedure): Change type to enum
2937
        gfc_symbol_type.
2938
        * trans-io.c (gfc_build_st_parameter): Change type to unsigned
2939
        int.
2940
 
2941
2009-04-24  Daniel Kraft  
2942
 
2943
        * gfortran.h (gfc_get_typebound_proc): Removed as macro, now a function.
2944
        (struct gfc_symtree): Moved "typebound" member inside union.
2945
        (struct gfc_namespace): Add "tb_sym_root" as new symtree to sort out
2946
        type-bound procedures there.
2947
        (gfc_get_tbp_symtree): New procedure.
2948
        * symbol.c (tentative_tbp_list): New global.
2949
        (gfc_get_namespace): NULL new "tb_sym_root" member.
2950
        (gfc_new_symtree): Removed initialization of "typebound" member.
2951
        (gfc_undo_symbols): Process list of tentative tbp's.
2952
        (gfc_commit_symbols): Ditto.
2953
        (free_tb_tree): New method.
2954
        (gfc_free_namespace): Call it.
2955
        (gfc_get_typebound_proc): New method.
2956
        (gfc_get_tbp_symtree): New method.
2957
        (gfc_find_typebound_proc): Adapt to structural changes of gfc_symtree
2958
        and gfc_namespace with regards to tbp's.
2959
        * dump-parse-tree.c (show_typebound): Ditto.
2960
        * primary.c (gfc_match_varspec): Ditto.  Don't reference tbp-symbol
2961
        as it isn't a symbol any longer.
2962
        * module.c (mio_typebound_symtree): Adapt to changes.
2963
        (mio_typebound_proc): Ditto, create symtrees using "gfc_get_tbp_symtree"
2964
        rather than "gfc_get_sym_tree".
2965
        (mio_f2k_derived): Ditto.
2966
        * decl.c (match_procedure_in_type): Ditto.
2967
        (gfc_match_generic): Ditto.  Don't reference tbp-symbol.
2968
        * resolve.c (check_typebound_override): Adapt to changes.
2969
        (resolve_typebound_generic): Ditto.
2970
        (resolve_typebound_procedures): Ditto.
2971
        (ensure_not_abstract_walker): Ditto.
2972
        (ensure_not_abstract): Ditto.
2973
        (resolve_typebound_procedure): Ditto, ignore erraneous symbols (for
2974
        instance, through removed tentative ones).
2975
        * gfc-internals.texi (Type-bound procedures): Document changes.
2976
 
2977
2009-04-24  Janus Weil  
2978
 
2979
        PR fortran/39861
2980
        PR fortran/39864
2981
        * symbol.c (gfc_copy_formal_args_intr): Set attr.flavor and attr.dummy
2982
        for the formal arguments.
2983
 
2984
2009-04-21  Taras Glek 
2985
 
2986
        * f95-lang.c: Update GTY annotations to new syntax.
2987
        * trans-intrinsic.c: Likewise.
2988
        * trans-io.c: Likewise.
2989
        * trans.h: Likewise.
2990
 
2991
2009-04-22  Janus Weil  
2992
 
2993
        PR fortran/39735
2994
        * decl.c (add_hidden_procptr_result): Bugfix for procptr results.
2995
        (match_procedure_decl): Set if_source.
2996
        * expr.c (gfc_check_pointer_assign): Bugfix: Return after error.
2997
        And: Check interface also for IFSRC_UNKNOWN (return type may be known).
2998
        * gfortran.h (typedef enum ifsrc): Remove IFSRC_USAGE,
2999
        add documentation. Rename copy_formal_args and copy_formal_args_intr.
3000
        * interface.c (gfc_compare_interfaces): Check for return types,
3001
        handle IFSRC_UNKNOWN.
3002
        (compare_intr_interfaces,compare_actual_formal_intr): Obsolete, removed.
3003
        (gfc_procedure_use): Modified handling of intrinsics.
3004
        * intrinsic.c (add_functions): Bugfix for "dim".
3005
        * resolve.c (resolve_intrinsic): New function to resolve intrinsics,
3006
        which copies the interface from isym to sym.
3007
        (resolve_procedure_expression,resolve_function): Use new function
3008
        'resolve_intrinsic'.
3009
        (resolve_symbol): Add function attribute for externals with return type
3010
        and use new function 'resolve_intrinsic'.
3011
        * symbol.c (ifsrc_types): Remove string for IFSRC_USAGE.
3012
        (copy_formal_args): Renamed to gfc_copy_formal_args.
3013
        (copy_formal_args_intr): Renamed to gfc_copy_formal_args_intr.
3014
        * trans-const.c (gfc_conv_const_charlen): Handle cl==NULL.
3015
 
3016
2009-04-21  Joseph Myers  
3017
 
3018
        * ChangeLog, ChangeLog-2002, ChangeLog-2003, ChangeLog-2004,
3019
        ChangeLog-2005, ChangeLog-2006, ChangeLog-2007, ChangeLog-2008,
3020
        ChangeLog.ptr, config-lang.in, ioparm.def, mathbuiltins.def: Add
3021
        copyright and license notices.
3022
        * ChangeLog, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
3023
        ChangeLog-2008: Correct dates.
3024
 
3025
2009-04-20  Tobias Burnus  
3026
 
3027
        PR fortran/39811
3028
        * scanner.c (load_line): Fix bogus "&" compile-time diagnostic.
3029
 
3030
2009-04-20  Paul Thomas  
3031
 
3032
        PR fortran/39800
3033
        * resolve.c (is_sym_host_assoc): New function.
3034
        (resolve_fl_derived): Call it when checking PRIVATE components
3035
        of PUBLIC derived types.  Change gfc_error to a gfc_notify_std
3036
        with std=f2003.
3037
        (resolve_fl_namelist): Call it twice to check for host
3038
        association.
3039
 
3040
2009-04-20  Ian Lance Taylor  
3041
 
3042
        * module.c (import_iso_c_binding_module): Add casts to enum type.
3043
        * trans-intrinsic.c (gfc_conv_intrinsic_minmax): Change op to enum
3044
        tree_code.
3045
        (gfc_conv_intrinsic_anyall): Likewise.
3046
        (gfc_conv_intrinsic_arith): Likewise.
3047
        (gfc_conv_intrinsic_minmaxloc): Likewise.
3048
        (gfc_conv_intrinsic_minmaxval): Likewise.
3049
        (gfc_conv_intrinsic_bitop): Likewise.
3050
        (gfc_conv_intrinsic_singlebitop): Likewise.
3051
        (gfc_conv_intrinsic_strcmp): Likewise.
3052
 
3053
2009-04-20  Vasilis Liaskovitis  
3054
            Jakub Jelinek  
3055
 
3056
        PR fortran/35423
3057
        * trans.h (OMPWS_WORKSHARE_FLAG, OMPWS_CURR_SINGLEUNIT,
3058
        OMPWS_SCALARIZER_WS, OMPWS_NOWAIT): Define.
3059
        (ompws_flags): New extern decl.
3060
        * trans-array.c (gfc_trans_scalarized_loop_end): Build OMP_FOR
3061
        for the outer dimension if ompws_flags allow it.
3062
        * trans.c (gfc_generate_code): Clear ompws_flags.
3063
        * trans-expr.c (gfc_trans_assignment_1): Allow worksharing
3064
        array assignments inside of !$omp workshare.
3065
        * trans-stmt.c (gfc_trans_where_3): Similarly for where statements
3066
        and constructs.
3067
        * trans-openmp.c (ompws_flags): New variable.
3068
        (gfc_trans_omp_workshare): Rewritten.
3069
 
3070
2009-04-11  Daniel Kraft  
3071
 
3072
        PR fortran/37746
3073
        * gfortran.h (struct gfc_charlen): New field "passed_length" to store
3074
        the actual passed string length for dummy arguments.
3075
        * trans-decl.c (gfc_create_string_length): Formatting fixes and added
3076
        assertion, moved a local variable into the innermost block it is needed.
3077
        (create_function_arglist): Removed TODO about the check being
3078
        implemented and initialize cl->passed_length here.
3079
        (add_argument_checking): New method.
3080
        (gfc_generate_function_code): Call the argument checking method.
3081
 
3082
2009-04-11  Janus Weil  
3083
 
3084
        PR fortran/39692
3085
        * symbol.c (check_conflict): Reject procedure pointers for -std=f95.
3086
 
3087
2009-04-11  Daniel Franke  
3088
 
3089
        * resolve.c (resolve_global_procedure): Enable whole-file checking for
3090
        procedures that are declared later in the file.
3091
 
3092
2009-04-10  Paolo Bonzini  
3093
 
3094
        PR middle-end/39701
3095
        * trans.c (gfc_allocate_with_status): Fix type mismatches
3096
        on "pstat == 0".
3097
 
3098
2009-04-10  Daniel Franke  
3099
 
3100
        PR fortran/38709
3101
        * expr.c (find_array_section): Leave early on zero-sized arrays.
3102
 
3103
2009-04-09  Janus Weil  
3104
 
3105
        PR fortran/36704
3106
        * decl.c (add_hidden_procptr_result): New function for handling
3107
        procedure pointer return values by adding a hidden result variable.
3108
        (variable_decl,match_procedure_decl,gfc_match_function_decl,
3109
        gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
3110
        return values.
3111
        * parse.c (parse_interface): Add EXTERNAL attribute only after
3112
        FUNCTION/SUBROUTINE declaration is complete.
3113
        * primary.c (replace_hidden_procptr_result): New function for replacing
3114
        function symbol by hidden result variable.
3115
        (gfc_match_rvalue,match_variable): Replace symbol by hidden result
3116
        variable.
3117
        * resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
3118
        resolve_symbol): Allow for procedure pointer function results.
3119
        (resolve_fl_procedure): Conflict detection moved here from
3120
        'check_conflict'.
3121
        * symbol.c (gfc_check_function_type): Allow for procedure pointer
3122
        function results.
3123
        (check_conflict): Move some conflict detection to resolution stage.
3124
        * trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
3125
        result variables.
3126
 
3127
2009-04-08  Jakub Jelinek  
3128
 
3129
        * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
3130
        contain TYPE_STRING_FLAG types.
3131
 
3132
2009-04-08  Janne Blomqvist  
3133
 
3134
        PR fortran/39670
3135
        * invoke.texi (fdollar-ok): Fix typo.
3136
 
3137
2009-04-08  Daniel Franke  
3138
 
3139
        PR fortran/39670
3140
        * invoke.texi (fdollar-ok): Clarify limitations.
3141
 
3142
2009-04-08  Paul Thomas  
3143
 
3144
        PR fortran/38863
3145
        * trans-array.c (gfc_trans_deferred_array): Return if this
3146
        is a result variable.
3147
 
3148
2009-04-07  Janus Weil  
3149
 
3150
        PR fortran/38152
3151
        * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
3152
        procedure pointer decls.
3153
 
3154
2009-04-07  Janus Weil  
3155
 
3156
        PR fortran/38290
3157
        * expr.c (gfc_check_pointer_assign): Enable interface check for
3158
        procedure pointers.
3159
        * gfortran.h: Add copy_formal_args_intr.
3160
        * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
3161
        if second argument is an intrinsic.
3162
        (compare_intr_interfaces): Correctly set attr.function, attr.subroutine
3163
        and ts.
3164
        (compare_parameter): Call gfc_compare_interfaces also for intrinsics.
3165
        * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
3166
        intrinsic interfaces here. Must happen earlier.
3167
        (resolve_symbol): Resolution of intrinsic interfaces moved here from
3168
        resolve_specific_..., and formal args are now copied from intrinsic
3169
        interfaces.
3170
        * symbol.c (copy_formal_args_intr): New function to copy the formal
3171
        arguments from an intinsic procedure.
3172
 
3173
2009-04-06  Paul Thomas  
3174
 
3175
        PR fortran/38863
3176
        * dependency.c (ref_same_as_full_array): New function.
3177
        (gfc_dep_resolver): Call it.
3178
 
3179
2009-04-06  Janus Weil  
3180
 
3181
        PR fortran/39414
3182
        * decl.c (match_procedure_decl): Fix double declaration problems with
3183
        PROCEDURE statements.
3184
        * symbol.c (gfc_add_type): Ditto.
3185
 
3186
2009-04-06  Paul Thomas  
3187
 
3188
        PR fortran/36091
3189
        * trans-array.c (gfc_conv_array_ref): If the symbol has the
3190
        temporary attribute use the array_spec for the bounds.
3191
        * gfortran.h : Add the temporary field to the structure
3192
        'symbol_attribute'.
3193
        * trans-stmt.c (forall_make_variable_temp): Set the symbol's
3194
        temporary attribute.
3195
 
3196
2009-04-05  Daniel Franke  
3197
 
3198
        PR fortran/29458
3199
        * trans-array.c (gfc_trans_array_constructor_value): Shadow
3200
        implied do-loop variable to avoid spurious middle-end warnings.
3201
 
3202
2009-04-04  Tobias Burnus  
3203
 
3204
        PR fortran/39577
3205
        * trans-decl.c (gfc_generate_function_code): Move recursive
3206
        check to the right position.
3207
 
3208
2009-04-04  Paul Thomas  
3209
 
3210
        PR fortran/37614
3211
        * trans-common.c (translate_common): Do not offset the whole
3212
        coomon block.
3213
 
3214
2009-04-03  Tobias Burnus  
3215
 
3216
        PR fortran/39594
3217
        * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
3218
        if it is not a procedure pointer.
3219
        * primary.c (match_actual_arg): Ditto.
3220
 
3221
2009-03-31  Joseph Myers  
3222
 
3223
        PR preprocessor/15638
3224
        * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
3225
 
3226
2009-03-30  Steven G. Kargl  
3227
 
3228
        PR fortran/38389
3229
        * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
3230
        (gfc_trans_deallocate): Add translation of ERRMSG.  Remove stale
3231
        comments.  Minor whitespace cleanup.
3232
        * resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
3233
        (resolve_deallocate_expr (gfc_expr *e): Update error message.
3234
        (resolve_allocate_expr):  Remove dead code.  Update error message.
3235
        Move error checking to ...
3236
        (resolve_allocate_deallocate): ... here.  Add additional error
3237
        checking for STAT, ERRMSG, and allocate-objects.
3238
        * match.c(gfc_match_allocate,gfc_match_deallocate):  Parse ERRMSG.
3239
        Check for redundant uses of STAT and ERRMSG.  Reword error message
3240
        and add checking for pointer, allocatable, and proc_pointer attributes.
3241
 
3242
2009-03-30  Paul Thomas  
3243
 
3244
        PR fortran/22571
3245
        PR fortran/26227
3246
        PR fortran/24886
3247
        * symbol.c : Add gfc_global_ns_list.
3248
        * decl.c (add_global_entry): Set the namespace ('ns') field.
3249
        * gfortran.h : Add the resolved field to gfc_namespace. Add the
3250
        namespace ('ns') field to gfc_gsymbol.  Add flag_whole_file to
3251
        gfc_option_t.  Add the prototype for gfc_free_dt_list.
3252
        * lang.opt : Add the whole-file option.
3253
        * invoke.texi : Document the whole-file option.
3254
        * resolve.c (resolve_global_procedure): If the fwhole-file
3255
        option is set, reorder gsymbols to ensure that translation is
3256
        in the right order.  Resolve the gsymbol's namespace if that
3257
        has not occurred and then check interfaces.
3258
        (resolve_function): Move call to resolve_global_procedure.
3259
        (resolve_call): The same.
3260
        (resolve_codes): Store the current labels_obstack.
3261
        (gfc_resolve) : Return if the namespace is already resolved.
3262
        trans-decl.c (gfc_get_extern_function_decl): If the whole_file
3263
        option is selected, use the backend_decl of a gsymbol, if it is
3264
        available.
3265
        parse.c (add_global_procedure, add_global_program): If the flag
3266
        whole-file is set, add the namespace to the gsymbol.
3267
        (gfc_parse_file): On -fwhole-file, put procedure namespaces on
3268
        the global namespace list.  Rearrange to do resolution of all
3269
        the procedures in a file, followed by their translation.
3270
        * options.c (gfc_init_options): Add -fwhole-file.
3271
        (gfc_handle_option): The same.
3272
 
3273
2009-03-30  Ulrich Weigand  
3274
 
3275
        * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
3276
        family of intrinsics instead of BUILT_IN_INF family.
3277
        * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
3278
        BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
3279
 
3280
2009-03-30  Jakub Jelinek  
3281
 
3282
        * trans-types.c (gfc_sym_type, gfc_return_by_reference): For
3283
        sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
3284
 
3285
2009-03-30  Joseph Myers  
3286
 
3287
        PR rtl-optimization/323
3288
        * options.c (gfc_post_options): Set
3289
        flag_excess_precision_cmdline.  Give an error for
3290
        -fexcess-precision=standard for processors where the option is
3291
        significant.
3292
 
3293
2009-03-29  Joseph Myers  
3294
 
3295
        PR preprocessor/34695
3296
        * cpp.c (cb_cpp_error): New.
3297
        (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
3298
        Don't check cpp_errors (cpp_in).
3299
        (gfc_cpp_init_0): Set cb->error.
3300
 
3301
2009-03-29  Steven G. Kargl  
3302
 
3303
        PR fortran/38823
3304
        * gfortran.h: Add ARITH_PROHIBIT to arith enum.
3305
        expr.c (gfc_match_init_expr): Add global variable init_flag to
3306
        flag matching an initialization expression.
3307
        (check_intrinsic_op): Move no longer reachable error message to ...
3308
        * arith.c (arith_power): ... here.  Remove gfc_ prefix in
3309
        gfc_arith_power.  Use init_flag.  Allow constant folding of x**y
3310
        when y is REAL or COMPLEX.
3311
        (eval_intrinsic): Remove restriction that y in x**y must be INTEGER
3312
        for constant folding.
3313
        * gfc_power: Update gfc_arith_power to arith_power
3314
 
3315
2009-03-29  Daniel Kraft  
3316
 
3317
        PR fortran/37423
3318
        * gfortran.h (struct gfc_typebound_proc): Added new flag "deferred" and
3319
        added a comment explaining DEFERRED binding handling.
3320
        * decl.c (match_binding_attributes): Really match DEFERRED attribute.
3321
        (match_procedure_in_type): Really match PROCEDURE(interface) syntax
3322
        and do some validity checks for DEFERRED and this construct.
3323
        * module.c (binding_overriding): New string constant for DEFERRED.
3324
        (mio_typebound_proc): Module-IO DEFERRED flag.
3325
        * resolve.c (check_typebound_override): Ensure that a non-DEFERRED
3326
        binding is not overridden by a DEFERRED one.
3327
        (resolve_typebound_procedure): Allow abstract interfaces as targets
3328
        for DEFERRED bindings.
3329
        (ensure_not_abstract_walker), (ensure_not_abstract): New methods.
3330
        (resolve_fl_derived): Use new "ensure_not_abstract" method for
3331
        non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
3332
        binding is overridden.
3333
        (check_typebound_baseobject): New method.
3334
        (resolve_compcall), (resolve_typebound_call): Check base-object of
3335
        the type-bound procedure call.
3336
        * gfc-internals.texi (Type-bound procedures): Document a little bit
3337
        about internal handling of DEFERRED bindings.
3338
 
3339
2009-03-29  Tobias Schlüter  
3340
 
3341
        PR fortran/38507
3342
        * gfortran.h (gfc_st_label): Fix comment.
3343
        (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block.
3344
        * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and
3345
        END SELECT with labels.
3346
        (check_do_closure): Fix formatting.
3347
        (parse_do_block): Fix typo in error message.
3348
        * resolve.c (code_stack): Remove tail member.  Update comment to
3349
        new use of reachable_labels.
3350
        (reachable_labels): Rename to ...
3351
        (find_reachable_labels): ... this.  Overhaul.  Update preceding
3352
        comment.
3353
        (resolve_branch): Fix comment preceding function.  Rewrite.
3354
        (resolve_code): Update call to find_reachable_labels.  Add code to
3355
        deal with EXEC_END_BLOCK.
3356
        * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK.
3357
        Add 2009 to copyright years.
3358
        * trans.c (gfc_trans_code): Likewise on both counts.
3359
 
3360
2009-03-31  Paul Thomas  
3361
 
3362
        PR fortran/38917
3363
        * expr.c (gfc_check_assign): Allow pointer components when
3364
        checking for NULL.
3365
 
3366
        PR fortran/38918
3367
        * resolve.c (check_data_variable): Treat pointer arrays with
3368
        scalars.
3369
 
3370
2009-03-31  Paul Thomas  
3371
 
3372
        PR fortran/38915
3373
        * trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
3374
        have a string_length.
3375
 
3376
2009-03-28  Tobias Burnus  
3377
 
3378
        PR fortran/34656
3379
        * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do):
3380
        Add GFC_RTCHECK_DO support.
3381
        * option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO.
3382
        * invoke.texi (-fcheck): Document "do" option.
3383
 
3384
2009-03-28  Paul Thomas  
3385
 
3386
        PR fortran/38538
3387
        * trans-array.c (get_elemental_fcn_charlen): Remove.
3388
        (get_array_charlen): New function to replace previous.
3389
 
3390
2009-03-28  Paul Thomas  
3391
 
3392
        PR fortran/38765
3393
        * parse.c (parse_derived): Do not break on finding pointer,
3394
        allocatable or private components.
3395
 
3396
2009-03-28  Tobias Burnus  
3397
 
3398
        PR fortran/32626
3399
        * option.c (gfc_handle_runtime_check_option): Enable recursion check.
3400
        * trans-decl.c (gfc_generate_function_code): Add recursion check.
3401
        * invoke.texi (-fcheck): Add recursive option.
3402
 
3403
2009-03-28  Tobias Burnus  
3404
 
3405
        PR fortran/38432
3406
        * resolve.c (gfc_resolve_iterator): Add zero-loop warning.
3407
 
3408
2009-03-28  Francois-Xavier Coudert  
3409
            Paul Thomas  
3410
            Tobias Burnus  
3411
 
3412
        * gfortran.h (gfc_option_t): Add rtcheck.
3413
        * lang.opt: New option -fcheck.
3414
        * libgfortran.h: Add GFC_RTCHECK_* constants.
3415
        * invoke.texi: Document -fcheck.
3416
        * options.c (gfc_handle_runtime_check_option): New function.
3417
        (gfc_init_options,gfc_post_options,gfc_handle_option):
3418
        Add -fcheck option.
3419
 
3420
2009-03-27  Richard Guenther  
3421
 
3422
        * trans-array.c (gfc_conv_descriptor_data_addr): Use
3423
        gfc_build_addr_expr instead of build_fold_addr_expr.
3424
        (gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
3425
        gfc_trans_constant_array_constructor, gfc_conv_array_data,
3426
        gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
3427
        * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
3428
        gfc_conv_function_val, gfc_conv_operator_assign,
3429
        gfc_conv_subref_array_arg, gfc_conv_function_call,
3430
        gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
3431
        * trans-intrinsic.c (gfc_conv_intrinsic_exponent,
3432
        gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
3433
        gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
3434
        gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
3435
        gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
3436
        gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
3437
        gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
3438
        * trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
3439
        gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
3440
        build_filepos, gfc_trans_inquire, gfc_trans_wait,
3441
        nml_get_addr_expr, transfer_namelist_element, build_dt,
3442
        gfc_trans_dt_end, transfer_array_component, transfer_expr,
3443
        transfer_array_desc, gfc_trans_transfer): Likewise.
3444
        * trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
3445
        * trans.c (gfc_build_addr_expr): Mark the base of the address
3446
        TREE_ADDRESSABLE.
3447
 
3448
2009-03-27  Tobias Burnus  
3449
 
3450
        * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
3451
        (gfc_expr): Add is_snan.
3452
        * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN.
3453
        (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree.
3454
        * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype.
3455
        * resolve.c (build_default_init_expr): Update call.
3456
        * target-memory.c (encode_float): Ditto.
3457
        * trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod,
3458
 
3459
2009-03-18  Ralf Wildenhues  
3460
 
3461
        * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp,
3462
        and -fpreprocessed.
3463
 
3464
2009-03-06  Alexandre Oliva 
3465
 
3466
        * simplify.c (gfc_simplify_transfer): Zero-initialize the
3467
        buffer.
3468
 
3469
2009-02-27  Tobias Burnus  
3470
 
3471
        PR fortran/39309
3472
        * module.c (read_md5_from_module_file): Add missing quote.
3473
 
3474
2009-02-27  Tobias Burnus  
3475
 
3476
        PR fortran/39309
3477
        * module.c (read_md5_from_module_file): Include mod version
3478
        in had-changed test.
3479
 
3480
2009-02-26  Paul Thomas  
3481
 
3482
        PR fortran/39295
3483
        * interface.c (compare_type_rank_if): Return 1 if the symbols
3484
        are the same and deal with external procedures where one is
3485
        identified to be a function or subroutine by usage but the
3486
        other is not.
3487
 
3488
2009-02-26  Paul Thomas  
3489
 
3490
        PR fortran/39292
3491
        * trans-array.c (gfc_conv_array_initializer): Convert all
3492
        expressions rather than ICEing.
3493
 
3494
2009-02-21  Thomas Koenig  
3495
 
3496
        PR fortran/38914
3497
        * array.c (ref_dimen_size):  Rename to gfc_ref_dimen_size,
3498
        make global.  Change function name in error messages.
3499
        (ref_size):  Change ref_dimen_size to gfc_ref_dimen_size.
3500
        (gfc_array_ref_shape):  Likewise.
3501
        * gfortran.h:  Add prototype for gfc_ref_dimen_size.
3502
        * simplify.c (simplify_bound_dim):  Add ref argument.
3503
        If the reference isn't a full array, return one for
3504
        the lower bound and the extent for the upper bound.
3505
        (simplify_bound):  For array sections, take as from the
3506
        argument.  Add reference to all to simplify_bound_dim.
3507
 
3508
2009-02-19  Daniel Franke  
3509
 
3510
        * scanner.c (load_line): At end of line, skip '\r' without setting
3511
        the truncation flag.
3512
 
3513
2009-02-18  Daniel Kraft  
3514
 
3515
        * gfortran.texi: New chapter about compiler characteristics.
3516
        (Compiler Characteristics): Document KIND type parameters here.
3517
 
3518
2009-02-18  Tobias Burnus  
3519
 
3520
        * intrinsic.texi (MALLOC): Make example more portable.
3521
 
3522
2009-02-13  Mikael Morin  
3523
 
3524
        PR fortran/38259
3525
        * module.c (gfc_dump_module,gfc_use_module): Add module
3526
        version number.
3527
 
3528
2009-02-13  Paul Thomas  
3529
 
3530
        PR fortran/36703
3531
        PR fortran/36528
3532
        * trans-expr.c (gfc_conv_function_val): Stabilize Cray-pointer
3533
        function references to ensure that a valid expression is used.
3534
        (gfc_conv_function_call): Pass Cray pointers to procedures.
3535
 
3536
2009-02-03  Jakub Jelinek  
3537
 
3538
        * gfortranspec.c (lang_specific_driver): Update copyright notice
3539
        dates.
3540
 
3541
2009-01-28  Paul Thomas  
3542
 
3543
        PR fortran/38852
3544
        PR fortran/39006
3545
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use the array
3546
        descriptor ubound for UBOUND, when the array lbound == 1.
3547
 
3548
2009-01-27  Daniel Kraft  
3549
 
3550
        PR fortran/38883
3551
        * trans-stmt.c (gfc_conv_elemental_dependencies):  Create temporary
3552
        for the real type needed to make it work for subcomponent-references.
3553
 
3554
2009-01-21  Daniel Kraft  
3555
 
3556
        * trans-stmt.c (gfc_conv_elemental_dependencies):  Cleaned up comment.
3557
 
3558
2009-01-20  Paul Thomas  
3559
 
3560
        PR fortran/38907
3561
        * resolve.c (check_host_association): Remove the matching to
3562
        correct an incorrect host association and use manipulation of
3563
        the expression instead.
3564
 
3565
2009-01-20  Tobias Burnus  
3566
 
3567
        * invoke.texi (RANGE): RANGE also takes INTEGER arguments.
3568
 
3569
2009-01-19  Mikael Morin  
3570
 
3571
        PR fortran/38859
3572
        * simplify.c (simplify_bound): Don't use array specification
3573
        if variable or component has subsequent references.
3574
 
3575
2009-01-17  Paul Thomas  
3576
 
3577
        PR fortran/38657
3578
        * module.c (write_common_0): Add argument 'this_module' and
3579
        check that non-use associated common blocks are written first.
3580
        (write_common): Call write_common_0 twice, once with true and
3581
        then with false.
3582
 
3583
2009-01-17  Paul Thomas  
3584
 
3585
        PR fortran/34955
3586
        * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Has
3587
        been absorbed into gfc_conv_intrinsic_transfer. All
3588
        references to it in trans-intrinsic.c have been changed
3589
        accordingly.  PR fixed by using a temporary for scalar
3590
        character transfer, when the source is shorter than the
3591
        destination.
3592
 
3593
2009-01-17  Paul Thomas  
3594
 
3595
        PR fortran/38657
3596
        * module.c (write_common_0): Revert patch of 2009-01-05.
3597
 
3598
2009-01-16  Janus Weil  
3599
 
3600
        PR fortran/38152
3601
        * expr.c (gfc_check_pointer_assign): Allow use-associated procedure
3602
        pointers as lvalue.
3603
        * trans-decl.c (get_proc_pointer_decl,gfc_create_module_variable):
3604
        Enable procedure pointers as module variables.
3605
 
3606
2009-01-14  Steven G. Kargl  
3607
 
3608
        * ChangeLog-2007: Clean out svn merge droppings.
3609
 
3610
2009-01-10  Paul Thomas  
3611
 
3612
        PR fortran/38763
3613
        * target-memory.c (encode_derived): Encode NULL.
3614
 
3615
2009-01-10  Paul Thomas  
3616
 
3617
        PR fortran/38765
3618
        * resolve.c (check_host_association): Use the symtree name to
3619
        search for a potential contained procedure, since this is the
3620
        name by which it would be referenced.
3621
 
3622
2009-01-06  Thomas Koenig  
3623
 
3624
        PR fortran/38220
3625
        * interface.c (gfc_procedure_use):  Don't warn about functions
3626
        from ISO_C_BINDING.
3627
        * symbol.c (generate_isocbinding_symbol):  Mark c_loc and
3628
        c_funloc as pure.
3629
 
3630
2009-01-05  Paul Thomas  
3631
 
3632
        PR fortran/38657
3633
        * module.c (write_common_0): Use the name of the symtree rather
3634
        than the common block, to determine if the common has been
3635
        written.
3636
 
3637
2009-01-05  Daniel Franke  
3638
 
3639
        PR fortran/37159
3640
        * check.c (gfc_check_random_seed): Added size check for GET
3641
        dummy argument, reworded error messages to follow common pattern.
3642
 
3643
2009-01-05  Thomas Koenig  
3644
 
3645
        PR fortran/38672
3646
        * trans-types.c (gfc_get_derived_type):  Check for the
3647
        presence of derived->ns->proc_name before
3648
        accessing derived->ns->proc_name->attr.flavor .
3649
        * resolve.c (resolve_symbol):  Likewise.
3650
 
3651
2009-01-05  Paul Thomas  
3652
 
3653
        PR fortran/38665
3654
        * gfortran.h : Add bit to gfc_expr 'user_operator'
3655
        * interface.c (gfc_extend_expr): Set the above if the operator
3656
        is substituted by a function.
3657
        * resolve.c (check_host_association): Return if above is set.
3658
 
3659
2009-01-04  Mikael Morin  
3660
 
3661
        PR fortran/35681
3662
        * ChangeLog-2008: Fix function name.
3663
 
3664
        PR fortran/38487
3665
        * dependency.c (gfc_check_argument_var_dependency):
3666
        Move the check for pointerness inside the if block
3667
        so that it doesn't affect the return value.
3668
 
3669
        PR fortran/38669
3670
        * trans-stmt.c (gfc_trans_call):
3671
        Add the dependency code after the loop bounds calculation one.
3672
 
3673
2009-01-04  Daniel Franke  
3674
 
3675
        * intrinsic.c (do_simplify): Removed already implemented TODO.
3676
 
3677
2009-01-04  Daniel Franke  
3678
 
3679
        PR fortran/38718
3680
        * simplify.c (gfc_simplify_merge): New.
3681
        * intrinsic.h (gfc_simplify_merge): New prototype.
3682
        * intrinsic.c (add_functions): Added simplification for MERGE.
3683
 
3684
2009-01-04  Mikael Morin  
3685
 
3686
        PR fortran/38536
3687
        * gfortran.h (gfc_is_data_pointer): Added prototype
3688
        * resolve.c (gfc_iso_c_func_interface):
3689
        Use gfc_is_data_pointer to test for pointer attribute.
3690
        * dependency.c (gfc_is_data_pointer):
3691
        Support pointer-returning functions.
3692
 
3693
2009-01-03  Daniel Franke  
3694
 
3695
        * symbol.c (save_symbol): Don't SAVE function results.
3696
 
3697
2009-01-03  Paul Thomas  
3698
 
3699
        PR fortran/38594
3700
        * resolve.c (resolve_call): When searching for proper host
3701
        association, use symtree rather than symbol.  For everything
3702
        except generic subroutines, substitute the symtree in the call
3703
        rather than the symbol.
3704
 
3705
 
3706
Copyright (C) 2009 Free Software Foundation, Inc.
3707
 
3708
Copying and distribution of this file, with or without modification,
3709
are permitted in any medium without royalty provided the copyright
3710
notice and this notice are preserved.

powered by: WebSVN 2.1.0

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