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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [fortran/] [ChangeLog-2011] - Blame information for rev 867

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

Line No. Rev Author Line
1 712 jeremybenn
2011-12-31  Thomas König  
2
 
3
        PR fortran/51502
4
        * expr.c (gfc_check_vardef_context):  When determining
5
        implicit pure status, also check for variable definition
6
        context.  Walk up namespaces until a procedure is
7
        found to reset the implict pure attribute.
8
        * resolve.c (gfc_implicit_pure):  Walk up namespaces
9
        until a procedure is found.
10
 
11
2011-12-29  Thomas Koenig  
12
 
13
        * dependency.c (gfc_dep_compare_functions):  Document
14
        new behavior for REALs and complex.  Add comment to cases
15
        where only INTEGERs are handled.  Compare REAL and COMPLEX
16
        constants, returning 0 and -2 only.  Add assert to make
17
        sure that only integer constants are compared.
18
 
19
2011-12-19  Tobias Burnus  
20
 
21
        PR fortran/51605
22
        * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as
23
        local symbol.
24
 
25
2011-12-19  Tobias Burnus  
26
 
27
        PR fortran/51605
28
        * match.c (gfc_match_select_type): Handle
29
        scalar polymophic coarrays.
30
        (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok.
31
        * primary.c (gfc_match_rvalue): Avoid segfault if !class_ok.
32
        * resolve.c (resolve_select_type): Ditto.
33
        (resolve_assoc_var): Fix setting the TARGET attribute for
34
        polymorphic selectors which are pointers.
35
 
36
2011-12-19  Tobias Burnus  
37
 
38
        * check.c (coarray_check): Add class ref if needed.
39
        * resolve.c (resolve_fl_var_and_proc,
40
        resolve_fl_derived0, resolve_symbol): Fix checking
41
        for BT_CLASS.
42
 
43
2011-12-15  Paul Thomas  
44
 
45
        * trans-expr.c (gfc_walk_function_expr): Detect elemental
46
        procedure components as well as elemental procedures.
47
        * trans-array.c (gfc_conv_procedure_call): Ditto.
48
        * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous
49
        break for class pointers to continue.
50
 
51
2011-12-15  Toon Moene  
52
 
53
        PR fortran/51310
54
        * resolve.c (build_default_init_expr): Allow non-allocatable,
55
        non-compile-time-constant-shape arrays to have a default
56
        initializer.
57
        * invoke.texi: Delete the restriction on automatic arrays not
58
        being initialized by -finit-=.
59
 
60
2011-12-15  Tobias Burnus  
61
 
62
        PR fortran/51550
63
        PR fortran/47545
64
        PR fortran/49050
65
        PR fortran/51075
66
        * resolve.c (resolve_fl_derived0): Print not-implemented error
67
        for deferred-length character components.
68
 
69
2011-12-15  Tobias Burnus  
70
 
71
        * primary.c (gfc_match_varspec): Match array spec for
72
        polymorphic coarrays.
73
        (gfc_match_rvalue): If a symbol of unknown flavor has a
74
        codimension, mark it as a variable.
75
        * simplify.c (gfc_simplify_image_index): Directly call
76
        simplify_cobound.
77
        * trans-intrinsic.c (trans_this_image): Fix handling of
78
        corank = 1 arrays.
79
 
80
2011-12-15  Jakub Jelinek  
81
 
82
        PR debug/51517
83
        * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span.
84
        (gfc_trans_deferred_vars): Instead add its runtime initialization
85
        here.
86
 
87
2011-12-11  Tobias Burnus  
88
 
89
        PR fortran/50923
90
        * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only
91
        if the front end has printed a warning.
92
        (gfc_generate_function_code): Fix unset-result warning.
93
 
94
2011-12-11  Paul Thomas  
95
        Tobias Burnus  
96
 
97
        PR fortran/41539
98
        PR fortran/43214
99
        PR fortran/43969
100
        PR fortran/44568
101
        PR fortran/46356
102
        PR fortran/46990
103
        PR fortran/49074
104
        * interface.c (symbol_rank): Return the rank of the _data
105
        component of class objects.
106
        (compare_parameter): Also compare the derived type of the class
107
        _data component for type mismatch.  Similarly, return 1 if the
108
        formal and _data ranks match.
109
        (compare_actual_formal): Do not compare storage sizes for class
110
        expressions. It is an error if an actual class array, passed to
111
        a formal class array is not full.
112
        * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get,
113
        gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get,
114
        gfc_vtable_extends_get, gfc_vtable_def_init_get,
115
        gfc_vtable_copy_get): New functions for class API.
116
        (gfc_conv_derived_to_class): For an array reference in an
117
        elemental procedure call retain the ss to provide the
118
        scalarized array reference. Moved in file.
119
        (gfc_conv_class_to_class): New function.
120
        (gfc_conv_subref_array_arg): Use the type of the
121
        class _data component as a basetype.
122
        (gfc_conv_procedure_call): Ensure that class array expressions
123
        have both the _data reference and an array reference. Use
124
        gfc_conv_class_to_class to handle class arrays for elemental
125
        functions in scalarized loops, class array elements and full
126
        class arrays. Use a call to gfc_conv_subref_array_arg in order
127
        that the copy-in/copy-out for passing class arrays to derived
128
        type arrays occurs correctly.
129
        (gfc_conv_expr): If it is missing, add the _data component
130
        between a class object or component and an array reference.
131
        (gfc_trans_class_array_init_assign): New function.
132
        (gfc_trans_class_init_assign): Call it for array expressions.
133
        * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for
134
        class scalars since their size will depend on the dynamic type.
135
        (build_class_array_ref): New function.
136
        (gfc_conv_scalarized_array_ref): Call build_class_array_ref.
137
        (gfc_array_init_size): Add extra argument, expr3, that represents
138
        the SOURCE argument. If present,use this for the element size.
139
        (gfc_array_allocate): Also add argument expr3 and use it when
140
        calling gfc_array_init_size.
141
        (structure_alloc_comps): Enable class arrays.
142
        * class.c (gfc_add_component_ref): Carry over the derived type
143
        of the _data component.
144
        (gfc_add_class_array_ref): New function.
145
        (class_array_ref_detected): New static function.
146
        (gfc_is_class_array_ref): New function that calls previous.
147
        (gfc_is_class_scalar_expr): New function.
148
        (gfc_build_class_symbol): Throw not implemented error for
149
        assumed size class arrays.  Remove error that prevents
150
        CLASS arrays.
151
        (gfc_build_class_symbol): Prevent pointer/allocatable conflict.
152
        Also unset codimension.
153
        (gfc_find_derived_vtab): Make 'copy' elemental and set the
154
        intent of the arguments accordingly.:
155
        * trans-array.h: Update prototype for gfc_array_allocate.
156
        * array.c (gfc_array_dimen_size): Return failure if class expr.
157
        (gfc_array_size): Likewise.
158
        * gfortran.h: New prototypes for gfc_add_class_array_ref,
159
        gfc_is_class_array_ref and gfc_is_class_scalar_expr.
160
        * trans-stmt.c (trans_associate_var): Exclude class targets
161
        from test. Move the allocation of the _vptr to an earlier time
162
        for class objects.
163
        (trans_associate_var): Assign the descriptor directly for class
164
        arrays.
165
        (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments.
166
        Convert array element references into sections. Do not invoke
167
        gfc_conv_procedure_call, use gfc_trans_call instead.
168
        * expr.c (gfc_get_corank): Fix for BT_CLASS.
169
        (gfc_is_simply_contiguous): Exclude class from test.
170
        * trans.c (gfc_build_array_ref): Include class array refs.
171
        * trans.h: Include prototypes for class API functions that are
172
        new in trans-expr. Define GFC_DECL_CLASS(node).
173
        * resolve.c (check_typebound_baseobject ): Remove error for
174
        non-scalar base object.
175
        (resolve_allocate_expr): Ensure that class _data component is
176
        present. If array, call gfc_expr_to_intialize.
177
        (resolve_select): Remove scalar error for SELECT statement as a
178
        temporary measure.
179
        (resolve_assoc_var): Update 'target' (aka 'selector') as
180
        needed. Ensure that the target expression has the right rank.
181
        (resolve_select_type): Ensure that target expressions have a
182
        valid locus.
183
        (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS.
184
        * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where
185
        appropriate.
186
        (gfc_trans_deferred_vars): Get class arrays right.
187
        * match.c(select_type_set_tmp): Add array spec to temporary.
188
        (gfc_match_select_type): Allow class arrays.
189
        * check.c (array_check): Ensure that class arrays have refs.
190
        (dim_corank_check, dim_rank_check): Retrun success if class.
191
        * primary.c (gfc_match_varspec): Fix for class arrays and
192
        co-arrays. Make sure that class _data is present.
193
        (gfc_match_rvalue): Handle class arrays.
194
        *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array
195
        reference.
196
        (gfc_conv_allocated): Add _data component to class expressions.
197
        (gfc_add_intrinsic_ss_code): ditto.
198
        * simplify.c (simplify_cobound): Fix for BT_CLASS.
199
        (simplify_bound): Return NULL for class arrays.
200
        (simplify_cobound): Obtain correct array_spec. Use cotype as
201
        appropriate. Use arrayspec for bounds.
202
 
203
2011-12-11  Thomas Koenig  
204
 
205
        PR fortran/50690
206
        * frontend-passes.c (in_omp_workshare):  New variable.
207
        (cfe_expr_0):  Don't eliminiate common function if it would put
208
        the variable immediately into a WORKSHARE construct.
209
        (optimize_namespace):  Set in_omp_workshare.
210
        (gfc_code_walker):  Keep track of OMP PARALLEL and OMP WORKSHARE
211
        constructs.
212
 
213
2011-12-10  Tobias Burnus  
214
 
215
        * trans-decl.c (add_argument_checking): Fix syntax.
216
 
217
2011-12-10  Tobias Burnus  
218
            Kai Tietz  
219
 
220
        * trans-decl.c (add_argument_checking): Check ts.deferred earlier.
221
        * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long.
222
 
223
2011-12-08  Tobias Burnus  
224
 
225
        PR fortran/50815
226
        * trans-decl.c (add_argument_checking): Skip bound checking
227
        for deferred-length strings.
228
 
229
2011-12-08  Tobias Burnus  
230
 
231
        PR fortran/51378
232
        * symbol.c (gfc_find_component): Fix access check of parent
233
        components.
234
 
235
2011-12-08  Tobias Burnus  
236
 
237
        PR fortran/51407
238
        * io/transfer.c (require_numeric_type): New function.
239
        (formatted_transfer_scalar_read, formatted_transfer_scalar_write):
240
        Use it, allow BOZ edit descriptors with F2008.
241
 
242
2011-12-08  Tobias Burnus  
243
 
244
        PR fortran/51448
245
        * fortran/trans-array.c (get_std_lbound): Fix handling of
246
        conversion functions.
247
 
248
2011-12-08  Toon Moene  
249
 
250
        PR fortran/51310
251
        * invoke.texi: Itemize the cases for which
252
        -finit-= doesn't work.
253
 
254
2011-12-06  Tobias Burnus  
255
 
256
        PR fortran/51435
257
        * expr.c (gfc_has_default_initializer): Fix handling of
258
        DT with initialized pointer components.
259
 
260
2011-12-05  Thomas Koenig  
261
 
262
        PR fortran/51338
263
        * dependency.c (are_identical_variables):  Handle case where
264
        end fields of substring references are NULL.
265
 
266
2011-12-04  Tobias Burnus  
267
 
268
        PR fortran/51383
269
        * resolve.c (find_array_spec): Use ref->u.c.component
270
        directly without starting from ts.u.derived.
271
 
272
2011-12-03  Tobias Burnus  
273
 
274
        PR fortran/48887
275
        * match.c (select_type_set_tmp): Don't set allocatable/pointer
276
        attribute.
277
        * class.c (gfc_build_class_symbol): Handle
278
        attr.select_type_temporary.
279
 
280
2011-12-03  Tobias Burnus  
281
 
282
        PR fortran/50684
283
        * check.c (variable_check): Fix intent(in) check.
284
 
285
2011-12-03  Tobias Burnus  
286
 
287
        * check.c (gfc_check_move_alloc): Allow nonpolymorphic
288
        FROM with polymorphic TO.
289
        * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle
290
        nonpolymorphic FROM with polymorphic TO.
291
 
292
2011-12-01  Janne Blomqvist  
293
 
294
        * module.c (dt_lower_string): Make static.
295
        (dt_upper_string): Likewise.
296
 
297
2011-12-01  Janne Blomqvist  
298
 
299
        PR fortran/25708
300
        * module.c (parse_string): Read string into resizable array
301
        instead of parsing twice and seeking.
302
        (peek_atom): New implementation avoiding seeks.
303
        (require_atom): Save and set column and line explicitly for error
304
        handling.
305
 
306
2011-12-01  Janne Blomqvist  
307
 
308
        * misc.c (gfc_open_file): Don't call stat.
309
 
310
2011-11-29  Thomas Koenig  
311
 
312
        PR fortran/40958
313
        * module.c (prev_module_line):  New variable.
314
        (prev_module_column):  New variable.
315
        (prev_character):  New variable.
316
        (module_char):  Update the new variables.
317
        (module_unget_char):  New function.
318
        (parse_string):  Use module_unget_char.
319
        (parse_integer):  Likewise.
320
        (parse_name):  Likewise.
321
 
322
2011-11-29  Tobias Burnus  
323
 
324
        PR fortran/51306
325
        PR fortran/48700
326
        * check.c (gfc_check_move_alloc): Make sure that from/to
327
        are both polymorphic or neither.
328
        * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup,
329
        generate inline code.
330
 
331
2011-11-28  Tobias Burnus  
332
            Steven G. Kargl  
333
 
334
        PR fortran/51308
335
        * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER
336
        conflicts for ISO_C_BINDING variables.
337
        (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null
338
        as SAVE.
339
 
340
2011-11-25  Mikael Morin  
341
 
342
        * trans-array.c (set_loop_bounds): Remove dead conditions.
343
 
344
2011-11-25  Mikael Morin  
345
 
346
        PR fortran/51250
347
        PR fortran/43829
348
        * trans-array.c (gfc_trans_create_temp_array): Get dimension from
349
        the right gfc_ss struct.
350
 
351
2011-11-25  Tobias Burnus  
352
 
353
        PR fortran/50408
354
        * trans-decl.c (gfc_get_module_backend_decl): Also copy
355
        ts.u.derived from the gsym if the ts.type is BT_CLASS.
356
        (gfc_get_extern_function_decl): Copy also the backend_decl
357
        for the symbol's ts.u.{derived,cl} from the gsym.
358
        * trans-types.c (gfc_copy_dt_decls_ifequal): Directly
359
        return if "from" and "to" are the same.
360
 
361
2011-11-25  Tobias Burnus  
362
 
363
        PR fortran/51302
364
        * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert.
365
 
366
2011-11-24  Tobias Burnus  
367
 
368
        PR fortran/51218
369
        * resolve.c (pure_subroutine): If called subroutine is
370
        impure, unset implicit_pure.
371
        (resolve_function): Move impure check to simplify code.
372
 
373
2011-11-19  Tobias Burnus  
374
 
375
        PR fortran/51207
376
        * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
377
        and hence as TREE_READONLY; add subroutine attribute to
378
        __copy_ procedure.
379
 
380
        PR fortran/50640
381
        * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
382
        * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as
383
        GFC_DECL_PUSH_TOPLEVEL.
384
        (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
385
        (build_function_decl): Push __copy_ procedure to the toplevel.
386
 
387
2011-11-16  Tobias Burnus  
388
 
389
        PR fortran/39427
390
        PR fortran/37829
391
        * decl.c (match_data_constant, match_data_constant, variable_decl,
392
        gfc_match_decl_type_spec, access_attr_decl,
393
        check_extended_derived_type, gfc_match_derived_decl,
394
        gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
395
        with DT constructors.
396
        * gfortran.h (gfc_find_dt_in_generic,
397
        gfc_convert_to_structure_constructor): New function prototypes.
398
        * interface.c (check_interface0, check_interface1,
399
        gfc_search_interface): Ignore DT constructors in generic list.
400
        * match.h (gfc_match_structure_constructor): Update prototype.
401
        * match.c (match_derived_type_spec): Ensure that one uses the DT
402
        not the generic function.
403
        * module.c (MOD_VERSION): Bump.
404
        (dt_lower_string, dt_upper_string): New functions.
405
        (find_use_name_n, find_use_operator, compare_true_names,
406
        find_true_name, add_true_name, fix_mio_expr, load_needed,
407
        read_module, write_dt_extensions, write_symbol): Changes to deal with
408
        different symtree vs. sym names.
409
        (create_derived_type): Create also generic procedure.
410
        * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic
411
        function as the same.
412
        * primary.c (gfc_convert_to_structure_constructor): New function.
413
        (gfc_match_structure_constructor): Restructured; calls
414
        gfc_convert_to_structure_constructor.
415
        (build_actual_constructor, gfc_match_rvalue): Update for DT generic
416
        functions.
417
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
418
        is_illegal_recursion, resolve_generic_f, resolve_variable,
419
        resolve_fl_variable_derived, resolve_fl_derived0,
420
        resolve_symbol): Handle DT and DT generic constructors.
421
        * symbol.c (gfc_use_derived, gfc_undo_symbols,
422
        gen_special_c_interop_ptr, gen_cptr_param,
423
        generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
424
        derived-types, which are hidden in the generic type.
425
        (gfc_find_dt_in_generic): New function
426
        * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER
427
        expr by actual value.
428
        * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts):
429
        Ensure that we use the DT and not the generic function.
430
        * trans-types.c (gfc_get_derived_type): Ensure that we use the DT
431
        and not the generic procedure.
432
 
433
2011-11-14  Tobias Burnus  
434
 
435
        PR fortran/51073
436
        * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays.
437
 
438
2011-11-09  Tobias Burnus  
439
 
440
        * symbol.c (clear_sym_mark, traverse_ns): Remove functions.
441
        (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions.
442
        (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree.
443
 
444
2011-11-09  Janne Blomqvist  
445
 
446
        PR libfortran/50016
447
        * gfortran.texi (Data consistency and durability): New section.
448
 
449
2011-11-09  Francois-Xavier Coudert  
450
 
451
        PR fortran/50540
452
        * resolve.c (resolve_forall_iterators): Transform internal errors
453
        to normal errors.
454
 
455
2011-11-09  Janus Weil  
456
 
457
        PR fortran/50960
458
        * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER.
459
        * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with
460
        their value.
461
        * resolve.c (resolve_values): Use-associated symbols do not need to
462
        be resolved again.
463
        (resolve_fl_parameter): Make sure the symbol has a value.
464
 
465
2011-11-09  Francois-Xavier Coudert  
466
 
467
        PR fortran/38718
468
        * intrinsic.c (add_functions): Allow dreal simplification.
469
        * intrinsic.h (gfc_simplify_dreal): New prototype.
470
        * simplify.c (gfc_simplify_dreal): New function.
471
 
472
2011-11-09  Francois-Xavier Coudert  
473
 
474
        PR fortran/21881
475
        * trans-types.c (gfc_get_dtype): Issue a fatal error instead of
476
        an internal error.
477
 
478
2011-11-08  Francois-Xavier Coudert  
479
 
480
        PR fortran/50404
481
        * io.c (gfc_resolve_close): CLOSE requires a UNIT.
482
 
483
2011-11-08  Francois-Xavier Coudert  
484
 
485
        PR fortran/50409
486
        * expr.c (gfc_simplify_expr): Substrings can't have negative
487
        length.
488
 
489
2011-11-08  Francois-Xavier Coudert  
490
 
491
        PR fortran/50334
492
        * invoke.texi (-finit-*): Document interaction with
493
        -Wuninitialized.
494
 
495
2011-11-07  François-Xavier Coudert  
496
 
497
        PR libfortran/49188
498
        PR libfortran/49336
499
        * invoke.texi: Fix documentation of fsign-zero option. Remove
500
        contractions.
501
        * intrinsic.texi: Fix ATAN2 documentation for signed zeros.
502
        Remove contractions.
503
        * gfortran.texi: Remove contractions.
504
 
505
2011-11-07  Janus Weil  
506
 
507
        PR fortran/50919
508
        * class.c (add_proc_comp): Don't add non-overridable procedures to the
509
        vtable.
510
        * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
511
        Don't generate a dynamic _vptr call for non-overridable procedures.
512
 
513
2011-11-07  Janne Blomqvist  
514
 
515
        * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
516
        and time are part of the C standard library.
517
 
518
2011-11-06  Janus Weil  
519
 
520
        * gfortran.h (gfc_extend_expr): Modified prototype.
521
        * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'.
522
        Remove argument 'real_error'.
523
        * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'.
524
 
525
2011-11-06  Andrew MacLeod  
526
            Aldy Hernandez  
527
 
528
        Merged from cxx-mem-model.
529
 
530
        * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT,
531
        BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
532
        BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
533
        BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
534
        BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
535
        BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT,
536
        BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types.
537
 
538
2011-11-04  Mikael Morin  
539
 
540
        PR fortran/43829
541
        * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic
542
        case in the assertion.
543
        * trans-intrinsic (enter_nested_loop): New function.
544
        (gfc_conv_intrinsic_arith): Support non-scalar cases.
545
        (nest_loop_dimension, walk_inline_intrinsic_arith): New functions.
546
        (walk_inline_intrinsic_function): Handle sum and product.
547
        (gfc_inline_intrinsic_function_p): Ditto.
548
        * trans.h (gfc_get_loopinfo): New macro.
549
 
550
2011-11-04  Mikael Morin  
551
 
552
        * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent
553
        expression variable.  Use it.
554
 
555
2011-11-04  Mikael Morin  
556
 
557
        * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop
558
        pointer.  Use it.
559
 
560
2011-11-04  Mikael Morin  
561
 
562
        * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling
563
        cleanup.
564
 
565
2011-11-04  Mikael Morin  
566
 
567
        * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions.
568
 
569
2011-11-04  Mikael Morin  
570
 
571
        * frontend-passes.c (cfe_register_funcs): Return early in the case
572
        of an inline intrinsic function.
573
        (optimize_binop_array_assignment): Skip optimization in the case of
574
        an inline intrinsic function.
575
 
576
2011-11-04  Mikael Morin  
577
 
578
        * array.c (match_subscript): Skip whitespaces before setting locus.
579
        * matchexp.c (match_level_1): Ditto.
580
 
581
2011-11-04  Mikael Morin  
582
 
583
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's
584
        temporary rank to the loop rank. Mark ss chains for multiple loop
585
        if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
586
        and start another.
587
 
588
2011-11-04  Mikael Morin  
589
 
590
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's
591
        temporary rank to the loop rank. Mark ss chains for multiple loop
592
        if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
593
        and start another.
594
 
595
2011-11-04  Mikael Morin  
596
 
597
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate
598
        offset twice in generated code.
599
 
600
2011-11-04  Mikael Morin  
601
 
602
        * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for
603
        arguments to elemental calls.
604
        * trans-stmt.c (replace_ss): New function.
605
        (gfc_conv_elemental_dependencies): Remove temporary loop handling.
606
        Create a new ss for the temporary and replace the original one with it.
607
        Remove fake array references. Recalculate all offsets.
608
 
609
2011-11-04  Mikael Morin  
610
 
611
        * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes.
612
        * trans-array.c (gfc_free_ss): Remove forward declaration.
613
        Make non-static.
614
        (set_delta, gfc_set_delta): Remove forward declaration.
615
        Make non-static and rename the former to the later. Update uses.
616
 
617
2011-11-03  Mikael Morin  
618
 
619
        * trans.h (gfc_inline_intrinsic_function_p): Move prototype...
620
        * gfortran.h (gfc_inline_intrinsic_function_p): ... here.
621
        * dependency.c (gfc_check_argument_var_dependency): Check dependencies
622
        of inline intrinsics' arguments.
623
 
624
2011-11-03  Mikael Morin  
625
 
626
        * trans-array.c (gfc_trans_preloop_setup): New pointers to outer
627
        dimension's ss and loop. Use them.
628
 
629
2011-11-03  Mikael Morin  
630
 
631
        * trans-array.c (outermost_loop): New function.
632
        (gfc_trans_array_constructor, gfc_set_vector_loop_bounds,
633
        gfc_add_loop_ss_code): Put generated code out of the outermost loop.
634
 
635
2011-11-03  Mikael Morin  
636
 
637
        * trans-array.c (constant_array_constructor_loop_size):
638
        Handle multiple loops.
639
 
640
2011-11-03  Mikael Morin  
641
 
642
        * trans-array.c (get_rank, get_loop_upper_bound_for_array):
643
        New functions.
644
        (gfc_trans_array_constructor): Handle multiple loops.
645
 
646
2011-11-03  Mikael Morin  
647
 
648
        * trans.h (struct gfc_loopinfo): New field parent.
649
        * trans-array.c (gfc_cleanup_loop): Free nested loops.
650
        (gfc_add_ss_to_loop): Set nested_loop's parent loop.
651
        (gfc_trans_array_constructor): Update assertion.
652
        (gfc_conv_loop_setup): Ditto.
653
 
654
2011-11-03  Mikael Morin  
655
 
656
        * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss.
657
        Call recursively gfc_add_loop_ss_code for all the nested loops.
658
        (gfc_conv_ss_startstride): Only get the descriptor for the outermost
659
        ss. Call recursively gfc_conv_ss_startstride for all the nested loops.
660
        (set_loop_bounds): Call recursively for all the nested loops.
661
        (set_delta): Ditto.
662
 
663
2011-11-03  Mikael Morin  
664
 
665
        * trans.h (struct gfc_loopinfo): New fields nested and next.
666
        * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if
667
        ss has non-null nested_ss field.
668
 
669
2011-11-03  Mikael Morin  
670
 
671
        * trans-array.c (gfc_trans_create_temp_array): Loop over the parents.
672
 
673
2011-11-03  Mikael Morin  
674
 
675
        * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim):
676
        Rename the former to the latter and loop over the parents.
677
        (innermost_ss): New function.
678
        (get_array_ref_dim_for_loop_dim): New function.
679
        (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim.
680
        (set_loop_bounds): Use get_array_dim_for_loop_dim).
681
 
682
2011-11-03  Mikael Morin  
683
 
684
        * trans.h (struct gfc_ss): New field nested_ss.
685
        * trans-expr.c (gfc_advance_se_ss_chain): Update assertion.
686
 
687
2011-11-03  Mikael Morin  
688
 
689
        * trans-array.c (set_vector_loop_bounds): Loop over the parents.
690
 
691
2011-11-03  Mikael Morin  
692
 
693
        * trans-array.c (gfc_trans_array_constructor): Loop over the parents.
694
 
695
2011-11-03  Mikael Morin  
696
 
697
        * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the
698
        parents.
699
 
700
2011-11-03  Mikael Morin  
701
 
702
        * trans.h (struct gfc_ss): New field parent.
703
        * trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a
704
        parent exists.
705
        * trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the
706
        end of the chain.
707
 
708
2011-11-03  Mikael Morin  
709
 
710
        * trans-array.h (gfc_trans_create_temp_array): Remove loop argument.
711
        * trans-array.c (gfc_trans_create_temp_array): Ditto.  Get loop from ss.
712
        Update reference to loop.  Remove loop argument.
713
        (gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to
714
        gfc_trans_create_temp_array.
715
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
716
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
717
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
718
        Set loop before calling gfc_trans_create_temp_array.
719
 
720
2011-11-03  Mikael Morin  
721
 
722
        * trans-array.c (gfc_trans_create_temp_array): New variable total_dim.
723
        Set total_dim to loop's rank. Replace usages of loop's rank.
724
 
725
2011-11-03  Mikael Morin  
726
 
727
        * trans-array.c (gfc_trans_array_constructor, trans_array_constructor):
728
        Rename the former to the later.  Get loop from ss.
729
        Remove loop argument.
730
        (gfc_add_loop_ss_code): Update call.
731
 
732
2011-11-03  Mikael Morin  
733
 
734
        * trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss.
735
        Remove loop argument.
736
        (gfc_add_loop_ss_code): Update call.
737
 
738
2011-11-03  Mikael Morin  
739
 
740
        * trans.h (struct gfc_ss): New field loop.
741
        * trans-array.c (set_ss_loop): New function.
742
        (gfc_add_ss_to_loop): Call set_ss_loop.
743
 
744
2011-11-03  Mikael Morin  
745
 
746
        * trans.h (struct gfc_ss_info): New field refcount.
747
        * trans-array.c (free_ss_info): Decrement refcount. Return early if
748
        still non-zero.
749
        (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment
750
        refcount.
751
 
752
2011-11-03  Mikael Morin  
753
 
754
        * trans-array.c (gfc_trans_create_temp_array): Move invariant condition
755
        out of the containing loop.
756
 
757
2011-11-03  Mikael Morin  
758
 
759
        * trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array):
760
        Move specloop arrays clearing from the former to the latter.
761
 
762
2011-11-03  Mikael Morin  
763
 
764
        * trans-array.c (set_loop_bounds): Separate the beginning of
765
        gfc_conv_loop_setup into a function of its own.
766
        (set_delta): Separate the end of gfc_conv_loop_setup into a function
767
        of its own.
768
        (gfc_conv_loop_setup): Call set_loop_bounds and set delta.
769
        (set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a
770
        pointer to the specloop field from the loop struct.
771
 
772
2011-11-03  Tobias Burnus  
773
 
774
        PR fortran/50933
775
        * interface.c (gfc_compare_derived_types): Fix check for BIND(C).
776
 
777
2011-11-03  Tobias Burnus  
778
 
779
        PR fortran/50960
780
        * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY.
781
 
782
2011-11-03  Mikael Morin  
783
 
784
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
785
        gfc_ss::where into gfc_ss_info.
786
        * trans-array.c (gfc_add_loop_ss_code):
787
        Update reference chains.
788
        * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
789
 
790
2011-11-03  Mikael Morin  
791
 
792
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
793
        gfc_ss::useflags into gfc_ss_info.
794
        * trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup,
795
        gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary):
796
        Update reference chains.
797
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
798
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
799
 
800
2011-11-03  Mikael Morin  
801
 
802
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
803
        gfc_ss::data::info into gfc_ss_info::data and remove empty union
804
        gfc_ss::data.
805
        * trans-array.c (gfc_free_ss, gfc_trans_create_temp_array,
806
        gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
807
        gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
808
        gfc_conv_ss_descriptor, gfc_trans_array_bound_check,
809
        gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
810
        add_array_offset, gfc_trans_preloop_setup,
811
        gfc_trans_scalarized_boundary, gfc_conv_section_startstride,
812
        gfc_conv_ss_startstride, gfc_could_be_alias,
813
        gfc_conv_loop_setup, gfc_conv_expr_descriptor,
814
        gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref):
815
        Update reference chains and factor them where possible.
816
        * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
817
        gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference
818
        chains.
819
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
820
        * trans-io.c (transfer_array_component): Ditto.
821
        * trans-stmt.c (gfc_conv_elemental_dependencies,
822
        gfc_trans_pointer_assign_need_temp): Ditto.
823
 
824
2011-11-03  Mikael Morin  
825
 
826
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
827
        gfc_ss::data::temp into gfc_ss_info::data.
828
        * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference
829
        chains.
830
 
831
2011-11-03  Mikael Morin  
832
 
833
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
834
        gfc_ss::data::scalar into newly created union gfc_ss_info::data,
835
        and rename subfield expr to value.
836
        * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset,
837
        gfc_conv_expr_descriptor): Update reference chains.
838
        * trans-const.c (gfc_conv_constant): Ditto.
839
        * trans-expr.c (gfc_conv_expr): Ditto.
840
 
841
2011-11-03  Mikael Morin  
842
 
843
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
844
        string_length from the former struct to the latter.
845
        * trans-array.c
846
        (gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code,
847
        gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref,
848
        gfc_conv_resolve_dependencies, gfc_conv_loop_setup,
849
        gfc_conv_expr_descriptor): Update references to string_length and
850
        factor common reference chains where possible.
851
        * trans-const.c (gfc_conv_constant): Ditto.
852
        * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
853
        gfc_conv_expr): Ditto.
854
 
855
2011-11-03  Mikael Morin  
856
 
857
        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from
858
        the former struct to the latter.
859
        * trans-array.c
860
        (gfc_get_array_ss, gfc_get_scalar_ss,
861
        gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
862
        gfc_add_loop_ss_code, gfc_conv_ss_descriptor,
863
        gfc_trans_array_bound_check, gfc_conv_array_index_offset,
864
        gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride,
865
        gfc_could_be_alias, gfc_conv_resolve_dependencies,
866
        gfc_conv_loop_setup, gfc_conv_expr_descriptor,
867
        gfc_alloc_allocatable_for_assignment): Update references to expr and
868
        factor common reference chains where possible.
869
        * trans-const.c (gfc_conv_constant): Ditto.
870
        * trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call,
871
        gfc_conv_array_constructor_expr, gfc_conv_expr,
872
        gfc_conv_expr_reference): Ditto.
873
        * trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound,
874
        gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall,
875
        gfc_add_intrinsic_ss_code): Ditto.
876
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
877
 
878
2011-11-03  Mikael Morin  
879
 
880
        * trans.h (struct gfc_ss_info): New struct.
881
        (gfc_get_ss_info): New macro.
882
        (struct gfc_ss): Move type field to struct gfc_ss_info.
883
        Add an info field of type gfc_ss_info.
884
        * trans-array.c (free_ss_info): New function.
885
        (gfc_free_ss): Call free_ss_info.
886
        (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss):
887
        Allocate gfc_ss_info field.
888
        (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss,
889
        gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
890
        gfc_conv_array_index_offset, gfc_trans_preloop_setup,
891
        gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
892
        gfc_conv_ss_startstride, gfc_conv_resolve_dependencies,
893
        gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor,
894
        gfc_walk_elemental_function_args): Update references to type.
895
        * trans-const.c (gfc_conv_constant): Factor common reference chains
896
        and update reference to type.
897
        * trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1):
898
        Update reference to type.
899
        (gfc_conv_array_constructor_expr, gfc_conv_expr,
900
        gfc_conv_expr_reference): Ditto. Factor common reference chains.
901
        * trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references
902
        to type
903
        * trans-stmt.c (gfc_trans_where_assign): Ditto.
904
 
905
2011-11-03  Mikael Morin  
906
 
907
        * trans.h (struct gfc_ss, struct gfc_array_info): Move shape field
908
        from the former struct to the latter.
909
        * trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup):
910
        Update field references.
911
        * trans-expr.c (gfc_trans_subarray_assign): Update field references
912
        and factor common reference chains.
913
        * trans-io.c (transfer_array_component): Ditto.
914
 
915
2011-11-03  Mikael Morin  
916
 
917
        * trans.h (struct gfc_array_info): Move dim and dimen fields...
918
        (struct gfc_ss): ... here.  Remove gfc_ss::data::temp::dimen field.
919
        * trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array
920
        initialization.
921
        (gfc_get_temp_ss): Initialize dim and dimen.
922
        (gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss,
923
        gfc_set_loop_bounds_from_array_spec, get_array_ref_dim,
924
        gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
925
        gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref,
926
        gfc_trans_preloop_setup, gfc_conv_ss_startstride,
927
        gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims,
928
        gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment,
929
        gfc_walk_array_ref): Update field references.
930
        * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
931
        Ditto.
932
        * trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto.
933
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
934
 
935
2011-11-03  Mikael Morin  
936
 
937
        * trans.h (struct gfc_ss_info, struct gfc_array_info):
938
        Rename the former to the latter.
939
        * trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage,
940
        get_array_ref_dim, gfc_trans_create_temp_array,
941
        gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds,
942
        gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
943
        add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride,
944
        gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims,
945
        gfc_conv_expr_descriptor): Update all uses.
946
        * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
947
        Ditto.
948
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
949
        walk_inline_intrinsic_transpose): Ditto.
950
        * trans-stmt.c (gfc_conv_elemental_dependencies,
951
        gfc_trans_pointer_assign_need_temp): Ditto.
952
 
953
2011-11-03  Mikael Morin  
954
 
955
        * trans-array.c (dim_ok, transposed_dims): Rename the former to the
956
        latter.  Change argument type.  Invert return value.
957
        (gfc_conv_expr_descriptor): Update calls.
958
 
959
2011-11-03  Mikael Morin  
960
 
961
        * trans-array.c (get_array_ref_dim): Change argument type and name.
962
        Obtain previous argument from the new argument in the body.
963
        (gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls.
964
 
965
2011-11-03  Mikael Morin  
966
 
967
        * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds):
968
        Rename the former to the latter.  Change type and name of argument.
969
        Get previous argument from the new one.
970
        (gfc_add_loop_ss_code): Update call.
971
 
972
2011-11-03  Mikael Morin  
973
 
974
        * trans-array.h (gfc_trans_create_temp_array): Replace info argument
975
        with ss argument.
976
        * trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss.
977
        (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
978
        gfc_trans_create_temp_array.
979
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
980
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
981
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
982
 
983
2011-11-03  Mikael Morin  
984
 
985
        * trans-array.c (gfc_trans_array_bound_check): Use ss argument
986
        to get name.
987
 
988
2011-11-03  Mikael Morin  
989
 
990
        * trans-array.c (gfc_trans_array_bound_check,
991
        trans_array_bound_check): Rename the former to the latter.
992
        Replace descriptor argument with ss argument.  Get descriptor from ss.
993
        (gfc_conv_array_index_offset, conv_array_index_offset): Rename the
994
        former to the latter.  Update call to trans_array_bound_check.
995
        Replace info argument with ss argument.  Get info from ss.
996
        (gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset.
997
        (add_array_offset): Ditto
998
 
999
2011-11-03  Mikael Morin  
1000
 
1001
        * trans-array.c (gfc_trans_constant_array_constructor,
1002
        trans_constant_array_constructor): Rename the former to the latter.
1003
        Don't set the rank of the temporary for the loop.  Remove then unused
1004
        loop argument.
1005
        (gfc_trans_array_constructor): Update call.
1006
 
1007
2011-11-03  Mikael Morin  
1008
 
1009
        * trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end
1010
        marker, not after it.
1011
 
1012
2011-11-03  Mikael Morin  
1013
 
1014
        * trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays.
1015
 
1016
2011-11-03  Mikael Morin  
1017
 
1018
        * trans-array.c (gfc_conv_ss_startstride): Access array bounds along
1019
        array dimensions instead of loop dimensions.
1020
 
1021
2011-11-03  Mikael Morin  
1022
 
1023
        * trans-array.c (gfc_trans_preloop_setup): Assertify one condition.
1024
 
1025
2011-11-03  Mikael Morin  
1026
 
1027
        * trans-array.c (gfc_walk_array_ref): Skip coarray dimensions.
1028
 
1029
2011-11-03  Mikael Morin  
1030
 
1031
        * trans-array.c (get_array_ref_dim): Remove redundant condition.
1032
 
1033
2011-11-03  Mikael Morin  
1034
 
1035
        * trans-array.c (gfc_trans_preloop_setup): Move common code...
1036
        (add_array_offset): ...into that new function.
1037
 
1038
2011-11-03  Mikael Morin  
1039
 
1040
        * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead
1041
        of array's dimention. Check that it is indeed the same.
1042
 
1043
2011-11-03  Mikael Morin  
1044
 
1045
        * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion.
1046
        Special case outermost loop.
1047
 
1048
2011-11-03  Mikael Morin  
1049
 
1050
        * trans-array.c (gfc_trans_preloop_setup): Factor loop index
1051
        initialization.
1052
 
1053
2011-11-03  Mikael Morin  
1054
 
1055
        * trans-array.c (gfc_trans_preloop_setup): Move code earlier.
1056
 
1057
2011-11-03  Mikael Morin  
1058
 
1059
        * trans-array.c (gfc_trans_preloop_setup): Move array reference
1060
        initialisation earlier. Factor subsequent array references.
1061
 
1062
2011-11-02  Rainer Orth  
1063
 
1064
        * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.
1065
 
1066
2011-10-30  Steven G. Kargl  
1067
 
1068
        PR fortran/50573
1069
        * check.c (gfc_check_dshift): Update argument checking for BOZ.
1070
        Update checking SHIFT against BITSIZE of I or J.
1071
        * intrinsic.texi: Update docs for DSHIFTL and DSHIFTR.
1072
 
1073
2011-10-28  Steven G. Kargl  
1074
 
1075
        * check.c (gfc_check_atan_2): Typo in comment.
1076
        (gfc_check_nearest): If 's' is constant, check that it is not 0.
1077
        * simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits,
1078
        gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc,
1079
        gfc_simplify_nearest): Remove dead code.
1080
 
1081
2011-10-23  Steven G. Kargl  
1082
 
1083
        * simplify.c (simplify_transformation_to_array): Fix memory leak.
1084
 
1085
2011-10-20  Steven G. Kargl  
1086
 
1087
        PR fortran/50821
1088
        * check.c (gfc_check_ishftc): Check args are constant before
1089
        extracting the integer.
1090
 
1091
2011-10-20  Steven G. Kargl  
1092
 
1093
        PR fortran/50514
1094
        * check.c (less_than_bitsize1): Check |shift| <= bit_size(i).
1095
        (gfc_check_ishftc):  Check |shift| <= bit_size(i) and check
1096
        that size is positive.
1097
 
1098
2011-10-20  Steven G. Kargl  
1099
 
1100
        PR fortran/50524
1101
        * resolve.c (resolve_ref): Check return value of resolve_substring().
1102
 
1103
2011-10-20  Steven G. Kargl  
1104
 
1105
        * io.c (match_dt_format): Match a user-defined operator or a kind
1106
        type prefixed string.
1107
 
1108
2011-10-19  Janus Weil  
1109
 
1110
        PR fortran/47023
1111
        * check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF.
1112
        * intrinsinc.texi (SIZEOF): Document it.
1113
        (STORAGE_SIZE): Fix special characters. Fix line breaks.
1114
 
1115
2011-10-18  Mikael Morin  
1116
 
1117
        PR fortran/50420
1118
        * trans.c (gfc_build_array_ref): If type is not an array, check that
1119
        there is nothing to do, and do nothing.
1120
 
1121
2011-10-18  Mikael Morin  
1122
 
1123
        PR fortran/50420
1124
        * trans-types.c (gfc_build_array_type): Don't force lower bound to one
1125
        in the deferred case.
1126
 
1127
2011-10-18  Mikael Morin  
1128
 
1129
        PR fortran/50420
1130
        * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
1131
        Don't set already set array ref.
1132
 
1133
2011-10-18  Mikael Morin  
1134
 
1135
        * array.c (gfc_find_array_ref): Remove coarray-specific handling.
1136
 
1137
2011-10-18  Mikael Morin  
1138
 
1139
        PR fortran/50420
1140
        * check.c (dim_corank_check): Use gfc_get_corank to get corank.
1141
 
1142
2011-10-18  Mikael Morin  
1143
 
1144
        PR fortran/50420
1145
        * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.
1146
 
1147
        PR fortran/50420
1148
        * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
1149
        the scalarization chain initialization.
1150
 
1151
2011-10-18  Mikael Morin  
1152
 
1153
        PR fortran/50420
1154
        * trans-intrinsic.c (walk_coarray): Allow subreferences after a
1155
        coarray object reference.
1156
 
1157
2011-10-18  Mikael Morin  
1158
 
1159
        PR fortran/50420
1160
        * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
1161
        if they are coarrays.
1162
 
1163
2011-10-18  Mikael Morin  
1164
 
1165
        * trans-array.h (gfc_walk_array_ref): New prototype.
1166
        * trans-array.c (gfc_walk_array_ref): New function, containing
1167
        all but the beginning of gfc_walk_variable_expr's code.
1168
        (gfc_walk_variable_expr): Use gfc_walk_array_ref.
1169
 
1170
2011-10-18  Mikael Morin  
1171
 
1172
        PR fortran/50420
1173
        * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
1174
        ndim for the descriptor's rank.
1175
 
1176
2011-10-18  Mikael Morin  
1177
 
1178
        PR fortran/50420
1179
        * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
1180
        from zero, and add then the relevant offset (either ndim or loop.dimen)
1181
        depending on context.
1182
 
1183
2011-10-18  Mikael Morin  
1184
 
1185
        * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.
1186
 
1187
2011-10-18  Mikael Morin  
1188
 
1189
        * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
1190
        earlier.
1191
 
1192
2011-10-18  Janus Weil  
1193
 
1194
        PR fortran/47023
1195
        * decl.c (verify_c_interop_param): Renamed to
1196
        'gfc_verify_c_interop_param'. Add error message for polymorphic
1197
        arguments.
1198
        (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
1199
        polymorphic variables.
1200
        (verify_bind_c_sym): Renamed 'verify_c_interop'.
1201
        * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
1202
        * check.c (gfc_check_sizeof): Ditto.
1203
        * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
1204
        * symbol.c (verify_bind_c_derived_type): Ditto.
1205
 
1206
2011-10-15  Tom Tromey  
1207
            Dodji Seketeli  
1208
 
1209
        * cpp.c (print_line, cb_define): Adjust to avoid using internals
1210
        of struct line_map.  Use the public API instead.
1211
 
1212
2011-10-17  Janus Weil  
1213
 
1214
        PR fortran/47023
1215
        PR fortran/50752
1216
        * primary.c (match_kind_param): Avoid segfault.
1217
 
1218
2011-10-16  Thomas Koenig  
1219
 
1220
        * frontend-passes.c (current_ns):  Make static.
1221
        (create_var):  Note parent of newly created namespace.
1222
        (optimize_namespace):  Don't wak sibling namespaces
1223
        if they are EXEC_BLOCK because this is handled...
1224
        (gfc_code_walker):  ... here.  Also walk ASSOCIATE lists.
1225
 
1226
2011-10-16  Janus Weil  
1227
 
1228
        PR fortran/47023
1229
        * primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
1230
        (get_kind): Pass on 'is_iso_c' flag.
1231
        (match_integer_constant,match_real_constant,match_logical_constant):
1232
        Set 'ts.is_c_interop'.
1233
 
1234
2011-10-16  Janus Weil  
1235
 
1236
        PR fortran/50547
1237
        * resolve.c (resolve_formal_arglist): Remove unneeded error message.
1238
        Some reshuffling.
1239
 
1240
2011-10-15  Tobias Burnus  
1241
 
1242
        * gfortran.texi (Fortran 2008 status, TS 29113 status,
1243
        Further Interoperability of Fortran with C): Update implementation
1244
        status, change references from TR 29113 to TS 29113.
1245
        * intrinsic.texi (RANK): Change TR 29113 to TS 29113.
1246
        * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts.
1247
        * lang.opt (std=): Ditto.
1248
        * options.c (gfc_handle_option, set_default_std_flags): Ditto and
1249
        change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
1250
        * libgfortran.h: Ditto.
1251
        * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto.
1252
        * decl.c (verify_c_interop_param): Ditto.
1253
 
1254
2011-10-14  Janus Weil  
1255
 
1256
        PR fortran/50570
1257
        * expr.c (gfc_check_vardef_context): Don't throw an error on
1258
        non-pointer assignments involving an intent(in) pointer dummy.
1259
 
1260
2011-10-14  Tobias Burnus  
1261
 
1262
        PR fortran/50718
1263
        * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
1264
        for dummy arguments with VALUE attribute.
1265
 
1266
2011-10-11  Tobias Burnus  
1267
            Janus Weil  
1268
 
1269
        * invoke.texi (-fwhole-file): Update wording since -fwhole-file
1270
        is now enabled by default.
1271
 
1272
2011-10-11  Michael Meissner  
1273
 
1274
        * trans-expr.c (gfc_conv_power_op): Delete old interface with two
1275
        parallel arrays to hold standard builtin declarations, and replace
1276
        it with a function based interface that can support creating
1277
        builtins on the fly in the future.  Change all uses, and poison
1278
        the old names.  Make sure 0 is not a legitimate builtin index.
1279
        (fill_with_spaces): Ditto.
1280
        (gfc_trans_string_copy): Ditto.
1281
        (gfc_trans_zero_assign): Ditto.
1282
        (gfc_build_memcpy_call): Ditto.
1283
        (alloc_scalar_allocatable_for_assignment): Ditto.
1284
        * trans-array.c (gfc_trans_array_constructor_value): Ditto.
1285
        (duplicate_allocatable): Ditto.
1286
        (gfc_alloc_allocatable_for_assignment): Ditto.
1287
        * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto.
1288
        (gfc_omp_clause_assign_op): Ditto.
1289
        (gfc_trans_omp_atomic): Ditto.
1290
        (gfc_trans_omp_do): Ditto.
1291
        (gfc_trans_omp_task): Ditto.
1292
        * trans-stmt.c (gfc_trans_stop): Ditto.
1293
        (gfc_trans_sync): Ditto.
1294
        (gfc_trans_allocate): Ditto.
1295
        (gfc_trans_deallocate): Ditto.
1296
        * trans.c (gfc_call_malloc): Ditto.
1297
        (gfc_allocate_using_malloc): Ditto.
1298
        (gfc_call_free): Ditto.
1299
        (gfc_deallocate_with_status): Ditto.
1300
        (gfc_deallocate_scalar_with_status): Ditto.
1301
        * f95-lang.c (gfc_define_builtin): Ditto.
1302
        (gfc_init_builtin_functions): Ditto.
1303
        * trans-decl.c (create_main_function): Ditto.
1304
        * trans-intrinsic.c (builtin_decl_for_precision): Ditto.
1305
 
1306
2011-10-10  Thomas Koenig  
1307
 
1308
        PR fortran/50564
1309
        * frontend-passes (forall_level):  New variable.
1310
        (cfe_register_funcs):  Don't register functions if we
1311
        are within a forall loop.
1312
        (optimize_namespace):  Set forall_level to 0 before entry.
1313
        (gfc_code_walker):  Increase/decrease forall_level.
1314
 
1315
2011-10-09  Tobias Burnus  
1316
 
1317
        PR fortran/50273
1318
        * trans-common.c (translate_common): Fix -Walign-commons check.
1319
 
1320
2011-10-09  Mikael Morin  
1321
 
1322
        * interface.c (check_dummy_characteristics): Count dimensions starting
1323
        from one in diagnostic.
1324
 
1325
2011-10-09  Tobias Burnus  
1326
 
1327
        * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
1328
        dependency on iso-c-binding.def and iso-fortran-env.def.
1329
        * module.c (import_iso_c_binding_module): Add error when
1330
        explicitly importing a nonstandard symbol; extend standard-
1331
        depending loading.
1332
        * iso-c-binding.def: Add c_float128 and c_float128_complex
1333
        integer parameters (for -std=gnu).
1334
        * intrinsic.texi (ISO_C_Binding): Document them.
1335
        * symbol.c (generate_isocbinding_symbol): Change macros
1336
        to ignore GFC_STD_* data.
1337
        * trans-types.c (gfc_init_c_interop_kinds): Ditto; make
1338
        nonstatic and renamed from "init_c_interop_kinds".
1339
        (gfc_init_kinds): Don't call it
1340
        * trans-types.h (gfc_init_c_interop_kinds): Add prototype.
1341
        * f95-lang.c (gfc_init_decl_processing): Call it.
1342
 
1343
2011-10-09  Janus Weil  
1344
 
1345
        PR fortran/50659
1346
        * expr.c (replace_symbol): Only do replacement if the symbol is a dummy.
1347
 
1348
2011-10-08  Paul Thomas  
1349
 
1350
        PR fortran/47844
1351
        * trans-array.c (gfc_conv_array_index_offset): Use descriptor
1352
        stride for pointer function results.
1353
 
1354
2011-10-07  Mikael Morin  
1355
 
1356
        * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.
1357
 
1358
2011-10-07  Mikael Morin  
1359
 
1360
        * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases.
1361
 
1362
2011-10-07  Mikael Morin  
1363
 
1364
        * trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
1365
        Remove conditions on coarray.
1366
        (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
1367
        (gfc_conv_expr_descriptor): Ditto. Add assertions before the call.
1368
 
1369
2011-10-07  Mikael Morin  
1370
 
1371
        * trans-array.c (gfc_conv_section_startstride): Remove coarray_last
1372
        argument. Remove condition on coarray_last.
1373
        (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
1374
        (gfc_conv_expr_descriptor): Ditto.
1375
 
1376
2011-10-07  Mikael Morin  
1377
 
1378
        * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray
1379
        handling.  Don't reset array ref's corank and codimensions' types
1380
        in the full array ref case.  Update loop upper limit.
1381
        Remove DIMEN_THIS_IMAGE case.  Remove unnecessary conditions.
1382
 
1383
2011-10-07  Mikael Morin  
1384
 
1385
        * trans.h (gfc_ss_info): Remove codimen field.
1386
        * trans-array.c (gfc_get_array_ss): Don't set codimen field.
1387
        (gfc_trans_create_temp_array): Don't set descriptor's cobounds.
1388
        (gfc_trans_constant_array_constructor): Update loop upper limit.
1389
        (gfc_conv_ss_startstride): Don't set codimen field.
1390
        Don't get descriptor's cobounds.
1391
        (gfc_walk_variable_expr): Update dimension index.
1392
        * trans-intrinsic.c (trans_this_image, trans_image_index,
1393
        conv_intrinsic_cobound): Don't set codimen field
1394
 
1395
2011-10-07  Mikael Morin  
1396
 
1397
        * trans.h (gfc_loopinfo): Remove codimen field.
1398
        * trans-array.c (gfc_set_vector_loop_bounds,
1399
        gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
1400
        limit.
1401
        (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last
1402
        codimension.
1403
        (gfc_start_scalarized_body): Update loop lower limit.
1404
        (gfc_conv_ss_startstride): Don't set loop's codimen field.
1405
        (gfc_conv_loop_setup): Remove unnecessary condition.
1406
        (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank.
1407
 
1408
2011-10-07  Mikael Morin  
1409
 
1410
        * trans.h (gfc_ss): Remove data.temp.codimen field.
1411
        * trans-array.c (gfc_conv_resolve_dependencies,
1412
        gfc_conv_expr_descriptor): Don't set temp's codimen field.
1413
 
1414
2011-10-07  Mikael Morin  
1415
 
1416
        * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the
1417
        associated dimen_type) in the full array ref case.
1418
 
1419
2011-10-07  Mikael Morin  
1420
 
1421
        * trans-intrinsic.c (walk_coarray): New function.
1422
        (convert_element_to_coarray_ref): Move code to walk_coarray. Remove.
1423
        (trans-this_image, trans_image_index, conv_intrinsic_cobound):
1424
        Use walk_coarray.
1425
 
1426
2011-10-07  Mikael Morin  
1427
 
1428
        * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer
1429
        cobounds evaluation.
1430
 
1431
2011-10-07  Mikael Morin  
1432
 
1433
        * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.
1434
 
1435
2011-10-07  Mikael Morin  
1436
 
1437
        * trans-array.c (gfc_conv_section_startstride): Move code to
1438
        evaluate_bound.  Use evaluate_bound.
1439
        (evaluate_bound): New function.
1440
 
1441
2011-10-07  Mikael Morin  
1442
 
1443
        * trans-array.c (gfc_conv_section_startstride): Update assertion to
1444
        also accept coarrays.
1445
 
1446
2011-10-07  Mikael Morin  
1447
 
1448
        * trans-array.c (gfc_conv_section_startstride): Factor common
1449
        array ref references.
1450
 
1451
2011-10-07  Mikael Morin  
1452
 
1453
        * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of
1454
        loop.codimen as argument to gfc_get_array_type_bounds.
1455
 
1456
2011-10-07  Mikael Morin  
1457
 
1458
        * trans-array.h (struct gfc_se): New flag want_coarray.
1459
        * trans-intrinsic.c (trans_this_image, trans_image_index,
1460
        conv_intrinsic_cobound): Set want_coarray.
1461
        * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension
1462
        earlier and without relying on the scalarizer.
1463
 
1464
2011-10-07  Mikael Morin  
1465
 
1466
        * expr.c (gfc_get_corank): Return 0 if input expression is not a
1467
        coarray.
1468
 
1469
2011-10-07  Mikael Morin  
1470
 
1471
        * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
1472
        descriptor setup code.
1473
 
1474
2011-10-07  Mikael Morin  
1475
 
1476
        * resolve.c (compare_spec_to_ref): Move coarray ref initialization
1477
        code...
1478
        (resolve_array_ref): ... here.
1479
 
1480
2011-10-07  Mikael Morin  
1481
 
1482
        * check.c (is_coarray): Remove.
1483
        (coarray_check): Use gfc_is_coarray.
1484
 
1485
2011-10-07  Janus Weil  
1486
 
1487
        PR fortran/50625
1488
        * class.c (gfc_build_class_symbol): Fix whitespace.
1489
        * module.c (mio_symbol): Set 'class_ok' attribute.
1490
        * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
1491
        been built for class symbols.
1492
 
1493
2011-10-04  Janus Weil  
1494
 
1495
        PR fortran/35831
1496
        * interface.c (check_dummy_characteristics): Check the array shape.
1497
 
1498
2011-10-01  Janus Weil  
1499
 
1500
        PR fortran/50585
1501
        * interface.c (get_expr_storage_size): Check if 'length' component is
1502
        associated.
1503
 
1504
2011-09-29  Janus Weil  
1505
 
1506
        PR fortran/50547
1507
        * resolve.c (resolve_formal_arglist): Fix pureness check for dummy
1508
        functions.
1509
 
1510
        PR fortran/50553
1511
        * symbol.c (check_conflict): Forbid TARGET attribute for statement
1512
        functions.
1513
 
1514
2011-09-27  Jakub Jelinek  
1515
 
1516
        * trans-types.c (gfc_type_for_size): Return wider type
1517
        if no suitable narrower type has been found.
1518
        (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
1519
        returned type doesn't have expected TYPE_MODE.
1520
 
1521
2011-09-26  Janus Weil  
1522
 
1523
        PR fortran/50515
1524
        * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute.
1525
 
1526
        PR fortran/50517
1527
        * interface.c (gfc_compare_interfaces): Bugfix in check for result type.
1528
 
1529
2011-09-22  Janus Weil  
1530
 
1531
        PR fortran/41733
1532
        * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental
1533
        procedures.
1534
        * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check
1535
        for PURE and ELEMENTAL attributes.
1536
        (compare_actual_formal): Remove pureness check here.
1537
 
1538
2011-09-20  Steven G. Kargl  
1539
 
1540
        * check.c (gfc_check_c_sizeof): Remove redundant word.
1541
 
1542
2011-09-20  Simon Baldwin  
1543
 
1544
        * module.c (gfc_dump_module): Omit timestamp from output.
1545
 
1546
2011-09-17  Janus Weil  
1547
 
1548
        PR fortran/50403
1549
        * symbol.c (gfc_use_derived): Fix coding style.
1550
 
1551
2011-09-15  Janus Weil  
1552
 
1553
        PR fortran/50401
1554
        * resolve.c (resolve_transfer): Check if component 'ref' is defined.
1555
 
1556
        PR fortran/50403
1557
        * symbol.c (gfc_use_derived): Check if argument 'sym' is defined.
1558
 
1559
2011-09-14  Tobias Burnus  
1560
 
1561
        PR fortran/34547
1562
        PR fortran/50375
1563
        * check.c (gfc_check_null): Allow allocatables as MOLD to NULL.
1564
        * resolve.c (resolve_transfer): Reject NULL without MOLD.
1565
        * interface.c (gfc_procedure_use): Reject NULL without MOLD
1566
        if no explicit interface is known.
1567
        (gfc_search_interface): Reject NULL without MOLD if it would
1568
        lead to ambiguity.
1569
 
1570
2011-09-13  Janus Weil  
1571
 
1572
        PR fortran/50379
1573
        * symbol.c (check_conflict): Check conflict between GENERIC and RESULT
1574
        attributes.
1575
 
1576
2011-09-11  Thomas Koenig  
1577
 
1578
        PR fortran/50327
1579
        * frontend-passes.c (dummy_expr_callback):  New function.
1580
        (convert_do_while):  New function.
1581
        (optimize_namespace):  Call code walker to convert do while loops.
1582
 
1583
2011-09-11  Janus Weil  
1584
 
1585
        PR fortran/35831
1586
        PR fortran/47978
1587
        * interface.c (check_dummy_characteristics): New function to check the
1588
        characteristics of dummy arguments.
1589
        (gfc_compare_interfaces,gfc_check_typebound_override): Call it here.
1590
 
1591
2011-09-08  Mikael Morin  
1592
 
1593
        * trans-array.c (gfc_trans_constant_array_constructor): Remove
1594
        superfluous initialisation of DIM field.
1595
        (gfc_trans_array_constructor): Assert that DIMEN field is properly set.
1596
        (gfc_conv_expr_descriptor): Ditto.
1597
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
1598
 
1599
2011-09-08  Mikael Morin  
1600
 
1601
        * trans-array.h (gfc_get_scalar_ss): New prototype.
1602
        * trans-array.c (gfc_get_scalar_ss): New function.
1603
        (gfc_walk_variable_expr, gfc_walk_op_expr,
1604
        gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
1605
        * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1606
        (gfc_trans_assignment_1): Ditto.
1607
        * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
1608
        gfc_trans_where_3): Ditto.
1609
 
1610
2011-09-08  Mikael Morin  
1611
 
1612
        * trans-array.h (gfc_get_temp_ss): New prototype.
1613
        * trans-array.c (gfc_get_temp_ss): New function.
1614
        (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
1615
        (gfc_conv_expr_descriptor): Ditto.
1616
        * trans-expr.c (gfc_conv_subref_array_arg): Ditto.
1617
 
1618
2011-09-08  Mikael Morin  
1619
 
1620
        * trans-array.h (gfc_get_array_ss): New prototype.
1621
        * trans-array.c (gfc_get_array_ss): New function.
1622
        (gfc_walk_variable_expr, gfc_walk_function_expr,
1623
        gfc_walk_array_constructor): Re-use gfc_get_array_ss.
1624
        * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1625
        * trans-intrinsic.c (gfc_walk_intrinsic_bound,
1626
        gfc_walk_intrinsic_libfunc): Ditto.
1627
        * trans-io.c (transfer_array_component): Ditto.
1628
 
1629
2011-09-08  Tobias Burnus  
1630
 
1631
        PR fortran/44646
1632
        * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT.
1633
        * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT.
1634
        * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT.
1635
        * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode,
1636
        lock_unlock_statement, sync_statement, gfc_match_allocate,
1637
        gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic.
1638
        (gfc_match_do): Match DO CONCURRENT.
1639
        (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator,
1640
        match_forall_iterator, match_forall_header, match_simple_forall,
1641
        gfc_match_forall): Move up in the file.
1642
        * parse.c (check_do_closure, parse_do_block): Handle do concurrent.
1643
        * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT.
1644
        * resolve.c (do_concurrent_flag): New global variable.
1645
        (resolve_function, pure_subroutine, resolve_branch,
1646
        gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent
1647
        diagnostic.
1648
        * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT.
1649
        * trans-stmt.c (gfc_trans_do_concurrent): New function.
1650
        (gfc_trans_forall_1): Handle do concurrent.
1651
        * trans-stmt.h (gfc_trans_do_concurrent): New function prototype.
1652
        * trans.c (trans_code): Call it.
1653
        * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT.
1654
 
1655
2011-09-07  Janus Weil  
1656
 
1657
        PR fortran/48095
1658
        * primary.c (gfc_match_structure_constructor): Handle parsing of
1659
        procedure pointers components in structure constructors.
1660
        * resolve.c (resolve_structure_cons): Check interface of procedure
1661
        pointer components. Changed wording of some error messages.
1662
 
1663
2011-09-04  Janus Weil  
1664
 
1665
        PR fortran/50227
1666
        * trans-types.c (gfc_sym_type): Check for proc_name.
1667
 
1668
2011-08-30  Tobias Burnus  
1669
 
1670
        PR fortran/45044
1671
        * trans-common.c (build_common_decl): Warn if named common
1672
        block's size is not everywhere the same.
1673
 
1674
2011-08-30  Steven G. Kargl  
1675
 
1676
        PR fortran/45170
1677
        * trans-stmt.c (gfc_trans_allocate): Evaluate the substring.
1678
 
1679
2011-08-29  Janus Weil  
1680
 
1681
        PR fortran/50225
1682
        * trans-decl.c (gfc_generate_function_code): Nullify polymorphic
1683
        allocatable function results.
1684
 
1685
2011-08-29  Tobias Burnus  
1686
 
1687
        * trans-decl.c (generate_coarray_sym_init): Use
1688
        GFC_CAF_COARRAY_STATIC for static coarrays.
1689
 
1690
2011-08-28  Dodji Seketeli  
1691
 
1692
        * scanner.c (load_file): Don't abuse LC_RENAME reason while
1693
        (indirectly) calling linemap_add.
1694
 
1695
2011-08-26  Jakub Jelinek  
1696
 
1697
        * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL
1698
        if threadprivate.
1699
        * symbol.c (check_conflict): Allow threadprivate attribute with
1700
        FL_PROCEDURE if proc_pointer.
1701
 
1702
2011-08-25  Mikael Morin  
1703
 
1704
        PR fortran/50050
1705
        * expr.c (gfc_free_shape): Do nothing if shape is NULL.
1706
        (free_expr0): Remove redundant NULL shape check.
1707
        * resolve.c (check_host_association): Ditto.
1708
        * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is
1709
        non-NULL.
1710
        * trans-io.c (transfer_array_component): Ditto.
1711
 
1712
2011-08-25  Tobias Burnus  
1713
 
1714
        * trans-array.c (gfc_conv_descriptor_token): Add assert.
1715
        * trans-decl.c (gfc_build_qualified_array,
1716
        create_function_arglist): Handle assumed-shape arrays.
1717
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
1718
        * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't
1719
        add "caf_token" to assumed-shape descriptors, new akind argument.
1720
        (gfc_get_array_type_bounds): Pass akind.
1721
        * trans.h (lang_decl): New elements caf_offset and token.
1722
        (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros.
1723
 
1724
2011-08-25  Tobias Burnus  
1725
 
1726
        * trans-array.c (structure_alloc_comps): Fix for allocatable
1727
        scalar coarray components.
1728
        * trans-expr.c (gfc_conv_component_ref): Ditto.
1729
        * trans-type.c (gfc_get_derived_type): Ditto.
1730
 
1731
2011-08-24  Tobias Burnus  
1732
 
1733
        PR fortran/50163
1734
        * expr.c (check_init_expr): Return when an error occured.
1735
 
1736
2011-08-24  Joseph Myers  
1737
 
1738
        * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.
1739
 
1740
2011-08-23  Tobias Burnus  
1741
 
1742
        PR fortran/31600
1743
        * symbol.c (gfc_add_type): Better diagnostic if redefining
1744
        use-associated symbol.
1745
        * module.c (gfc_use_module): Use module name as locus.
1746
 
1747
2011-08-22  Gabriel Charette  
1748
 
1749
        * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
1750
        defined in cpp_define_builtins.
1751
 
1752
2011-08-22  Mikael Morin  
1753
 
1754
        PR fortran/50050
1755
        * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
1756
        * expr.c (gfc_clear_shape, gfc_free_shape): New functions.
1757
        (free_expr0): Re-use gfc_free_shape.
1758
        * trans-expr.c (gfc_trans_subarray_assign): Ditto.
1759
        * trans-io.c (transfer_array_component): Ditto.
1760
        * resolve.c (check_host_association): Ditto.
1761
        (gfc_expr_to_initialize): Don't force the rank value and free the shape
1762
        after updating the expression. Recalculate shape and rank.
1763
        (resolve_where_shape): Re-use gfc_clear_shape.
1764
        * array.c (gfc_array_ref_shape): Ditto.
1765
 
1766
2011-08-21  Thomas Koenig  
1767
 
1768
        PR fortran/47659
1769
        * expr.c (gfc_check_assign): Check for type conversions when the
1770
        right-hand side is a constant REAL/COMPLEX contstant the left-hand
1771
        side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
1772
        for REAL does not change the value of the constant.
1773
 
1774
2011-08-21  Thomas Koenig  
1775
 
1776
        PR fortran/50130
1777
        * resolve.c (resolve_array_ref):  Don't calculate upper bound
1778
        if the stride is zero.
1779
 
1780
2011-08-20  Janus Weil  
1781
 
1782
        PR fortran/49638
1783
        * dependency.c (gfc_dep_compare_expr): Add new result value "-3".
1784
        (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
1785
        result value "-3".
1786
        * frontend-passes.c (optimize_comparison): Ditto.
1787
        * interface.c (gfc_check_typebound_override): Ditto.
1788
 
1789
2011-08-19  Mikael Morin  
1790
 
1791
        PR fortran/50129
1792
        * parse.c (parse_where): Undo changes after emitting an error.
1793
 
1794
2011-08-19  Jakub Jelinek  
1795
 
1796
        PR fortran/49792
1797
        * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
1798
        bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
1799
        lhs needs reallocation.
1800
        * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
1801
        code is NULL, emit a barrier if workshare emitted no code at all
1802
        and NOWAIT clause isn't present.
1803
 
1804
2011-08-19  Mikael Morin  
1805
 
1806
        PR fortran/50071
1807
        * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
1808
        * parse.c (check_statement_label): Accept ST_END_BLOCK and
1809
        ST_END_ASSOCIATE as valid branch target.
1810
        (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
1811
        Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
1812
        * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
1813
        EXEC_END_NESTED_BLOCK.
1814
        (resolve_branch): Ditto.
1815
        (resolve_code): Add EXEC_END_NESTED_BLOCK case.
1816
        * st.c (gfc_free_statement): Ditto.
1817
        * trans.c (trans_code): Ditto.
1818
 
1819
2011-08-18  Mikael Morin  
1820
 
1821
        PR fortran/50071
1822
        * symbol.c (gfc_get_st_label): Use the derived type namespace when
1823
        we are parsing a derived type definition.
1824
 
1825
2011-08-18  Tobias Burnus  
1826
 
1827
        PR fortran/18918
1828
        * parse.c (parse_derived): Add lock_type
1829
        checks, improve coarray_comp handling.
1830
        * resolve.c (resolve_allocate_expr,
1831
        resolve_lock_unlock, resolve_symbol): Fix lock_type
1832
        constraint checks.
1833
 
1834
2011-08-17  Tobias Burnus  
1835
 
1836
        PR fortran/31461
1837
        * trans-decl.c (generate_local_decl): Warn about
1838
        unused explicitly imported module variables/parameters.
1839
 
1840
2011-08-17  Janus Weil  
1841
 
1842
        PR fortran/50070
1843
        * resolve.c (resolve_fl_variable): Reject non-constant character lengths
1844
        in COMMON variables.
1845
 
1846
2011-08-16  Tobias Burnus  
1847
            Dominique Dhumieres  
1848
 
1849
        PR fortran/50094
1850
        * resolve.c (resolve_symbol): Fix stupid typo.
1851
 
1852
2011-08-15  Tobias Burnus  
1853
 
1854
        * resolve.c (resolve_symbol): Fix coarray result-var check.
1855
 
1856
2011-08-14  Steven G. Kargl  
1857
 
1858
        * module.c (use_iso_fortran_env_module):  Spell 'referrenced' correctly.
1859
 
1860
2011-08-14  Janus Weil  
1861
 
1862
        PR fortran/50073
1863
        * decl.c (check_function_name): New function, separated off from
1864
        'variable_decl' and slightly extended.
1865
        (variable_decl,attr_decl1): Call it.
1866
 
1867
2011-08-08  Rainer Orth  
1868
 
1869
        * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).
1870
 
1871
2011-08-07  Janus Weil  
1872
            Thomas Koenig  
1873
 
1874
        PR fortran/49638
1875
        * dependency.c (are_identical_variables): For dummy arguments only
1876
        check for equal names, not equal symbols.
1877
        * interface.c (gfc_check_typebound_override): Add checking for rank
1878
        and character length.
1879
 
1880
2011-08-07  Janus Weil  
1881
 
1882
        PR fortran/49638
1883
        * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
1884
        two prototypes.
1885
        * dependency.c (gfc_are_identical_variables,are_identical_variables):
1886
        Renamed the former to the latter and made static.
1887
        (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
1888
        commutativity of multiplication.
1889
        (gfc_is_same_range,is_same_range): Renamed the former to the latter,
1890
        made static and removed argument 'def'.
1891
        (check_section_vs_section): Renamed 'gfc_is_same_range'.
1892
        * gfortran.h (gfc_check_typebound_override): New prototype.
1893
        * interface.c (gfc_check_typebound_override): Moved here from ...
1894
        * resolve.c (check_typebound_override): ... here (and renamed).
1895
        (resolve_typebound_procedure): Renamed 'check_typebound_override'.
1896
 
1897
2011-08-06  Thomas Koenig  
1898
 
1899
        PR fortran/50004
1900
        * target-memory.c (gfc_target_expr-size): Don't clobber typespec
1901
        for derived types.
1902
        * simplify.c (gfc_simplify_transfer): Don't calculate source_size
1903
        twice.
1904
 
1905
2011-08-05  Thomas Koenig  
1906
 
1907
        PR fortran/37211
1908
        * gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
1909
        * target-memory.h (gfc_target_interpret_expr):  Add boolean
1910
        argument wether to convert wide characters.
1911
        * target-memory.c (gfc_target_expr_size):  Also return length
1912
        of characters for non-constant expressions if these can be
1913
        determined from the cl.
1914
        (interpret_array):  Add argument for gfc_target_interpret_expr.
1915
        (gfc_interpret_derived):  Likewise.
1916
        (gfc_target_interpret_expr):  Likewise.
1917
        * check.c:  Include target-memory.h.
1918
        (gfc_calculate_transfer_sizes):  New function.
1919
        (gfc_check_transfer):  When -Wsurprising is in force, calculate
1920
        sizes and warn if result is larger than size (check moved from
1921
        gfc_simplify_transfer).
1922
        * simplify.c (gfc_simplify_transfer):  Use
1923
        gfc_calculate_transfer_sizes.  Remove warning.
1924
 
1925
2011-08-04  Richard Guenther  
1926
 
1927
        PR fortran/49957
1928
        * trans-array.c (add_to_offset): New function.
1929
        (gfc_conv_array_ref): Build the array index expression in optimally
1930
        associated order.
1931
        (gfc_walk_variable_expr): Adjust for the backward walk.
1932
 
1933
2011-08-02  Daniel Kraft  
1934
 
1935
        PR fortran/49885
1936
        * trans-array.c (gfc_trans_auto_array_allocation): Change
1937
        gfc_start_block to gfc_init_block to avoid spurious extra-scope.
1938
 
1939
2011-08-02  Tobias Burnus  
1940
 
1941
        * trans-array.c (gfc_array_allocate): Pass token to
1942
          gfc_allocate_allocatable for -fcoarray=lib.
1943
        * trans-stmt.c (gfc_trans_allocate): Update
1944
        gfc_allocate_allocatable call.
1945
        * trans.h (gfc_allocate_allocatable): Update prototype.
1946
        (gfc_allocate_using_lib): Remove.
1947
        * trans.c (gfc_allocate_using_lib): Make static, handle token.
1948
        (gfc_allocate_allocatable): Ditto.
1949
 
1950
2011-08-02  Jakub Jelinek  
1951
 
1952
        PR fortran/46752
1953
        * cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
1954
        * openmp.c (gfc_free_omp_clauses): Free also final_expr.
1955
        (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
1956
        (gfc_match_omp_clauses): Handle parsing final and mergeable
1957
        clauses.
1958
        (OMP_TASK_CLAUSES): Allow final and mergeable clauses.
1959
        (gfc_match_omp_taskyield): New function.
1960
        (resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
1961
        Cray pointers in clauses other than REDUCTION.
1962
        (gfc_match_omp_atomic): Match optional
1963
        read/write/update/capture keywords after !$omp atomic.
1964
        (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
1965
        * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
1966
        print final and mergeable clauses.
1967
        (show_code_node): Handle EXEC_OMP_TASKYIELD.
1968
        * trans-openmp.c (gfc_trans_omp_clauses): Handle final and
1969
        mergeable clauses.
1970
        (gfc_trans_omp_taskyield): New function.
1971
        (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
1972
        (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
1973
        (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
1974
        (gfc_omp_predetermined_sharing): Adjust comment.
1975
        * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
1976
        ST_OMP_END_ATOMIC.
1977
        (gfc_omp_clauses): Add final_expr and mergeable fields.
1978
        (gfc_exec_op): Add EXEC_OMP_TASKYIELD.
1979
        (gfc_omp_atomic_op): New enum typedef.
1980
        (struct gfc_code): Add ext.omp_atomic.
1981
        * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
1982
        * frontend-passes.c (gfc_code_walker): Also walk final_expr.
1983
        * resolve.c (gfc_resolve_blocks, resolve_code): Handle
1984
        EXEC_OMP_TASKYIELD.
1985
        * st.c (gfc_free_statement): Likewise.
1986
        * match.h (gfc_match_omp_taskyield): New prototype.
1987
        * parse.c (decode_omp_directive): Handle taskyield directive.
1988
        Handle !$omp end atomic.
1989
        (case_executable): Add ST_OMP_TASKYIELD case.
1990
        (gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
1991
        (parse_omp_atomic): Return gfc_statement instead of void.
1992
        For !$omp atomic capture parse two assignments instead of
1993
        just one and require !$omp end atomic afterwards, for
1994
        other !$omp atomic forms just allow !$omp end atomic at the
1995
        end.
1996
        (parse_omp_structured_block, parse_executable): Adjust
1997
        parse_omp_atomic callers.
1998
 
1999
2011-08-02  Tobias Burnus  
2000
 
2001
        * intrinsic.c (OMP_LIB): Updated openmp_version's
2002
        value to 201107.
2003
        * gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
2004
        * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
2005
        remove deleted omp_integer_kind and omp_logical_kind constants.
2006
 
2007
2011-07-31  Janus Weil  
2008
 
2009
        PR fortran/49112
2010
        * resolve.c (resolve_structure_cons): Don't do the full dt resolution,
2011
        only call 'resolve_fl_derived0'.
2012
        (resolve_typebound_procedures): Resolve typebound procedures of
2013
        parent type.
2014
        (resolve_fl_derived0): New function, which does a part of the work
2015
        for 'resolve_fl_derived'.
2016
        (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
2017
        things.
2018
 
2019
2011-07-30  Thomas Koenig  
2020
 
2021
        PR fortran/48876
2022
        * expr.c (gfc_simplify_expr):  If end of a string is less
2023
        than zero, set it to zero.
2024
 
2025
2011-07-28  Jakub Jelinek  
2026
 
2027
        PR fortran/31067
2028
        * frontend-passes.c (optimize_minmaxloc): New function.
2029
        (optimize_expr): Call it.
2030
 
2031
2011-07-27  Tobias Burnus  
2032
 
2033
        PR fortran/45586
2034
        * trans-types.c (gfc_get_derived_type): Ensure that pointer
2035
        component types are marked as nonrestricted.
2036
 
2037
2011-07-27  Daniel Carrera  
2038
 
2039
        PR fortran/49755
2040
        * trans.c (gfc_allocate_using_malloc): Change function signature.
2041
        Return nothing. New parameter "pointer". Eliminate temorary variables.
2042
        (gfc_allocate_using_lib): Ditto.
2043
        (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
2044
        and gfc_allocate_using_malloc. Do not free and then reallocate a
2045
        variable that is already allocated.
2046
        (gfc_likely): New function. Basedon gfc_unlikely.
2047
        * trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
2048
        Instructions to modify the array descriptor are stored in this block
2049
        while other instructions continue to be stored in "pblock".
2050
        (gfc_array_allocate): Update call to gfc_array_init_size. Move the
2051
        descriptor_block so that the array descriptor is only updated if
2052
        the array was allocated successfully.
2053
        Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
2054
        * trans.h (gfc_allocate_allocatable): Change function signature.
2055
        Function now returns void.
2056
        (gfc_allocate_using_lib): Ditto, and new function parameter.
2057
        (gfc_allocate_using_malloc): Ditto.
2058
        * trans-openmp.c (gfc_omp_clause_default_ctor,
2059
        gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
2060
        to gfc_allocate_allocatable with gfc_allocate_using_malloc.
2061
        * trans-stmt.c (gfc_trans_allocate): Update function calls for
2062
        gfc_allocate_allocatable and gfc_allocate_using_malloc.
2063
 
2064
2011-07-26  Tobias Burnus  
2065
 
2066
        * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
2067
        (gfc_conv_descriptor_token): New function.
2068
        * trans-array.h (gfc_conv_descriptor_token): New prototype.
2069
        * trans-types.c (gfc_get_array_descriptor_base): For coarrays
2070
        with -fcoarray=lib, append "void *token" to the array descriptor.
2071
        (gfc_array_descriptor_base_caf): New static variable.
2072
        * trans-expr.c (gfc_conv_procedure_call): Handle token and offset
2073
        when passing a descriptor coarray to a nondescriptor dummy.
2074
 
2075
2011-07-23  Tobias Burnus  
2076
 
2077
        * resolve.c (resolve_symbol): Fix coarray var decl check.
2078
 
2079
2011-07-21  Daniel Carrera  
2080
 
2081
        * trans.c (gfc_allocate_with_status): Split into two functions
2082
        gfc_allocate_using_malloc and gfc_allocate_usig_lib.
2083
        (gfc_allocate_using_malloc): The status parameter is now the
2084
        actual status rather than a pointer. Code cleanup.
2085
        (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
2086
        errlen. Pass these to the coarray lib.
2087
        * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
2088
        gfc_allocate_allocatable.
2089
        (gfc_omp_clause_copy_ctor): Ditto.
2090
        (gfc_trans_omp_array_reduction): Ditto.
2091
        * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
2092
        gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
2093
        fuctions. If using coarray lib, pass errmsg and errlen to the allocate
2094
        functions. Move error checking outside the if (!gfc_array_allocate)
2095
        block so that it also affects trees produced by gfc_array_allocate.
2096
        * trans-array.c (gfc_array_allocate): Add new parameters errmsg
2097
        and errlen. Replace parameter pstat by status. Code cleanup. Update
2098
        calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
2099
        * trans-array.h (gfc_array_allocate): Update signature of
2100
        gfc_array_allocate.
2101
 
2102
2011-07-21  Steven G. Kargl  
2103
 
2104
        * gfortran.texi: Remove a duplicate word.
2105
 
2106
2011-07-21  Tobias Burnus  
2107
 
2108
        * check.c (gfc_check_present): Allow coarrays.
2109
        * trans-array.c (gfc_conv_array_ref): Avoid casting
2110
        when a pointer is wanted.
2111
        * trans-decl.c (create_function_arglist): For -fcoarray=lib,
2112
        handle hidden token and offset arguments for nondescriptor
2113
        coarrays.
2114
        * trans-expr.c (get_tree_for_caf_expr): New function.
2115
        (gfc_conv_procedure_call): For -fcoarray=lib pass the
2116
        token and offset for nondescriptor coarray dummies.
2117
        * trans.h (lang_type): Add caf_offset tree.
2118
        (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.
2119
 
2120
2011-07-19  Tobias Burnus  
2121
 
2122
        * expr.c (gfc_is_coarray): New function.
2123
        * gfortran.h (gfc_is_coarray): New prototype.
2124
        * interface.c (compare_parameter): Use it.
2125
 
2126
2011-07-19  Richard Guenther  
2127
 
2128
        * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
2129
        (gfc_trans_string_copy): Likewise.
2130
        * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
2131
        * trans-types.c (gfc_get_array_descr_info): Likewise.
2132
        * trans.c (gfc_build_array_ref): Likewise.
2133
 
2134
2011-07-19  Janus Weil  
2135
 
2136
        PR fortran/49708
2137
        * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.
2138
 
2139
2011-07-18  Tobias Burnus  
2140
 
2141
        * trans-decl.c (gfc_build_qualified_array): Make coarray's
2142
        token TYPE_QUAL_RESTRICT.
2143
 
2144
2011-07-18  Tobias Burnus  
2145
 
2146
        * resolve.c (resolve_transfer): Mention defined I/O
2147
        in the diagnostic for alloc_comp/pointer_comp.
2148
 
2149
2011-07-17  Tobias Burnus  
2150
 
2151
        PR fortran/34657
2152
        * module.c (check_for_ambiguous): Check whether the name is matches
2153
        the current program unit.
2154
 
2155
2011-07-17  Tobias Burnus  
2156
 
2157
        PR fortran/49624
2158
        * expr.c (gfc_check_pointer_assign): Fix checking for invalid
2159
        pointer bounds.
2160
 
2161
2011-07-16  Tobias Burnus  
2162
 
2163
        * expr.c (gfc_ref_this_image): New function.
2164
        (gfc_is_coindexed): Use it.
2165
        * gfortran.h (gfc_ref_this_image): New prototype.
2166
        * resolve.c (resolve_deallocate_expr,
2167
        resolve_allocate_expr): Support alloc scalar coarrays.
2168
        * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
2169
        gfc_conv_descriptor_cosize, gfc_array_allocate,
2170
        gfc_trans_deferred_array): Ditto.
2171
        * trans-expr.c (gfc_conv_variable) Ditto.:
2172
        * trans-stmt.c (gfc_trans_deallocate): Ditto.
2173
        * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
2174
        gfc_get_array_descr_info): Ditto.
2175
        * trans-decl.c (gfc_get_symbol_decl): Ditto.
2176
 
2177
2011-07-11  Jakub Jelinek  
2178
 
2179
        PR fortran/49698
2180
        * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
2181
        inner_size to gfc_index_one_node instead of integer_one_node.
2182
 
2183
2011-07-10  Tobias Burnus  
2184
 
2185
        PR fortran/49690
2186
        * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.
2187
 
2188
2011-07-09  Uros Bizjak  
2189
 
2190
        PR fortran/48926
2191
        * expr.c (gfc_get_corank): Change return value to int.
2192
        * gfortran.h (gfc_get_corank): Update function prototype.
2193
 
2194
2011-07-07  Mikael Morin  
2195
 
2196
        PR fortran/49648
2197
        * resolve.c (resolve_symbol): Force resolution of function result's
2198
        array specification.
2199
 
2200
2011-07-07  Tobias Burnus  
2201
 
2202
        * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
2203
        with NULL arguments for (new) stat=/errmsg= arguments.
2204
 
2205
2011-07-06  Daniel Carrera  
2206
 
2207
        * trans-array.c (gfc_array_allocate): Rename allocatable_array to
2208
        allocatable. Rename function gfc_allocate_array_with_status to
2209
        gfc_allocate_allocatable_with_status. Update function call for
2210
        gfc_allocate_with_status.
2211
        * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
2212
        gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
2213
        * trans-stmt.c (gfc_trans_allocate): Update function call for
2214
        gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
2215
        to gfc_allocate_allocatable_with_status.
2216
        * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
2217
        so it uses the library for memory allocation when -fcoarray=lib.
2218
        (gfc_allocate_allocatable_with_status): Renamed from
2219
        gfc_allocate_array_with_status.
2220
        (gfc_allocate_allocatable_with_status): Update function call for
2221
        gfc_allocate_with_status.
2222
        * trans.h (gfc_coarray_type): New enum.
2223
        (gfc_allocate_with_status): Update prototype.
2224
        (gfc_allocate_allocatable_with_status): Renamed from
2225
        gfc_allocate_array_with_status.
2226
        * trans-decl.c (generate_coarray_sym_init): Use the new constant
2227
        GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.
2228
 
2229
2011-07-06  Richard Guenther  
2230
 
2231
        * f95-lang.c (gfc_init_decl_processing):
2232
        Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
2233
 
2234
2011-07-04  Jakub Jelinek  
2235
 
2236
        PR fortran/49623
2237
        * gfortranspec.c (lang_specific_driver): Ignore options with
2238
        CL_ERR_MISSING_ARG errors.
2239
 
2240
2011-07-02  Janus Weil  
2241
 
2242
        PR fortran/49562
2243
        * expr.c (gfc_check_vardef_context): Handle type-bound procedures.
2244
 
2245
2011-06-30  Jakub Jelinek  
2246
 
2247
        PR fortran/49540
2248
        * gfortran.h (gfc_constructor): Add repeat field.
2249
        * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
2250
        * array.c (current_expand): Add repeat field.
2251
        (expand_constructor): Copy repeat.
2252
        * constructor.c (node_free, node_copy, gfc_constructor_get,
2253
        gfc_constructor_lookup): Handle repeat field.
2254
        (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
2255
        * data.h (gfc_assign_data_value): Add mpz_t * argument.
2256
        (gfc_assign_data_value_range): Removed.
2257
        * constructor.h (gfc_constructor_advance): Removed.
2258
        (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
2259
        * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
2260
        also handle overwriting a range with a single entry.
2261
        (gfc_assign_data_value_range): Removed.
2262
        * resolve.c (check_data_variable): Adjust gfc_assign_data_value
2263
        call.  Use gfc_assign_data_value instead of
2264
        gfc_assign_data_value_expr.
2265
 
2266
2011-06-27  Janus Weil  
2267
 
2268
        PR fortran/49466
2269
        * trans-array.c (structure_alloc_comps): Make sure sub-components
2270
        and extended types are correctly deallocated.
2271
 
2272
2011-06-21  Andrew MacLeod  
2273
 
2274
        * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
2275
        * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
2276
        * trans-decl.c: Add sync_ or SYNC__ to builtin names.
2277
 
2278
2011-06-21  Janus Weil  
2279
 
2280
        PR fortran/49112
2281
        * class.c (gfc_find_derived_vtab): Make vtab and default initialization
2282
        symbols SAVE_IMPLICIT.
2283
 
2284
2011-06-20  Tobias Burnus  
2285
 
2286
        PR fortran/18918
2287
        * gfortran.h (gfc_check_vardef_context): Update prototype.
2288
        (iso_fortran_env_symbol): Handle derived types.
2289
        (symbol_attribute): Add lock_comp.
2290
        * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
2291
        * interface.c (compare_parameter, gfc_procedure_use): Handle
2292
        LOCK_TYPE.
2293
        (compare_actual_formal): Update
2294
        gfc_check_vardef_context call.
2295
        * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
2296
        * intrinsic.c (check_arglist): Ditto.
2297
        * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
2298
        * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
2299
        * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
2300
        * module.c (mio_symbol_attribute): Handle lock_comp.
2301
        (create_derived_type): New function.
2302
        (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
2303
        * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
2304
        * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
2305
        checks for LOCK_TYPE.
2306
        (gfc_resolve_iterator, resolve_deallocate_expr,
2307
        resolve_allocate_expr, resolve_code, resolve_transfer): Update
2308
        gfc_check_vardef_context call.
2309
        * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
2310
        * trans-stmt.c (gfc_trans_lock_unlock): New function.
2311
        * trans.c (trans_code): Handle LOCK and UNLOCK.
2312
 
2313
2011-06-18  Janus Weil  
2314
 
2315
        PR fortran/49400
2316
        * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
2317
        BLOCK constructs.
2318
 
2319
2011-06-17  Janus Weil  
2320
 
2321
        PR fortran/48699
2322
        * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
2323
        make sure the vtab is present.
2324
 
2325
2011-06-16  Janus Weil  
2326
 
2327
        PR fortran/49074
2328
        * interface.c (gfc_extend_assign): Propagate the locus from the
2329
        assignment to the type-bound procedure call.
2330
 
2331
2011-06-16  Janus Weil  
2332
 
2333
        PR fortran/49417
2334
        * module.c (mio_component): Make sure the 'class_ok' attribute is set
2335
        for use-associated CLASS components.
2336
        * parse.c (parse_derived): Check for 'class_ok' attribute.
2337
        * resolve.c (resolve_fl_derived): Ditto.
2338
 
2339
2011-06-13  Thomas Koenig  
2340
 
2341
        * frontend-passes.c (remove_trim):  New function.
2342
        (optimize_assignment):  Use it.
2343
        (optimize_comparison):  Likewise.  Return correct status
2344
        for previous change.
2345
 
2346
2011-06-12  Tobias Burnus
2347
 
2348
        PR fortran/49324
2349
        * trans-expr.c (gfc_trans_assignment_1): Tell
2350
        gfc_trans_scalar_assign to also deep-copy RHS nonvariables
2351
        with allocatable components.
2352
        * trans-array.c (gfc_conv_expr_descriptor): Ditto.
2353
 
2354
2011-05-11  Thomas Koenig  
2355
 
2356
        * frontend-passes.c (optimize_assignment): Follow chains
2357
        of concatenation operators to the end for removing trailing
2358
        TRIMS for assignments.
2359
 
2360
2011-06-10  Daniel Carrera  
2361
 
2362
        * trans-decl.c (gfc_build_builtin_function_decls):
2363
        Updated declaration of caf_sync_all and caf_sync_images.
2364
        * trans-stmt.c (gfc_trans_sync): Function
2365
        can now handle a "stat" variable that has an integer type
2366
        different from integer_type_node.
2367
 
2368
2011-06-09  Richard Guenther  
2369
 
2370
        * trans.c (gfc_allocate_array_with_status): Mark error path
2371
        as unlikely.
2372
 
2373
2011-06-08  Tobias Burnus  
2374
 
2375
        PR fortran/18918
2376
        * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
2377
        (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
2378
        (gfc_code): Add expr4.
2379
        * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
2380
        * match.c (gfc_match_lock, gfc_match_unlock,
2381
        lock_unlock_statement): New functions.
2382
        (sync_statement): Bug fix, avoiding double freeing.
2383
        (gfc_match_if): Handle LOCK/UNLOCK statement.
2384
        * parse.c (decode_statement, next_statement,
2385
        gfc_ascii_statement): Ditto.
2386
        * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
2387
        * resolve.c (resolve_lock_unlock): New function.
2388
        (resolve_code): Call it.
2389
        * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
2390
 
2391
2011-06-07  Richard Guenther  
2392
 
2393
        * f95-lang.c (gfc_init_decl_processing): Do not set
2394
        size_type_node or call set_sizetype.
2395
 
2396
2011-06-05  Tobias Burnus  
2397
 
2398
        PR fortran/49255
2399
        * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
2400
        for F2008.
2401
 
2402
2011-06-05  Andreas Schmidt  
2403
        Thomas Koenig  
2404
 
2405
        * dump-parse-tree.c (show_symbol):  Don't dump namespace
2406
        for ENTRY to avoid infinite recursion.
2407
 
2408
2011-06-02  Asher Langton  
2409
 
2410
        PR fortran/49268
2411
        * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
2412
        pointees as AS_EXPLICIT.
2413
 
2414
2011-06-02  Asher Langton  
2415
 
2416
        PR fortran/37039
2417
        * decl.c (variable_decl): Merge current_as before copying to cp_as.
2418
 
2419
2011-06-02  Steven G. Kargl  
2420
 
2421
        PR fortran/49265
2422
        * decl.c (gfc_match_modproc):  Allow for a double colon in a module
2423
        procedure statement.
2424
        * parse.c ( decode_statement): Deal with whitespace around :: in
2425
        gfc_match_modproc.
2426
 
2427
2011-05-31  Tobias Burnus  
2428
 
2429
        PR fortran/18918
2430
        * intrinsic.c (klass): Add CLASS_ATOMIC.
2431
        (add_subroutines): Add atomic_ref/atomic_define.
2432
        * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
2433
        * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
2434
        gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
2435
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
2436
        and GFC_ISYM_ATOMIC_REF.
2437
        (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
2438
        * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
2439
        functions.
2440
        * check.c (gfc_check_atomic, gfc_check_atomic_def,
2441
        gfc_check_atomic_ref): New functions.
2442
        * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
2443
        ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
2444
        * trans-intrinsic.c (conv_intrinsic_atomic_def,
2445
        conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
2446
        functions.
2447
        (conv_intrinsic_move_alloc) Renamed from
2448
        gfc_conv_intrinsic_move_alloc - and made static.
2449
        * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
2450
        (gfc_conv_intrinsic_subroutine) Add prototype.
2451
        * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
2452
        * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
2453
        global vars.
2454
        (gfc_init_kinds): Set them.
2455
 
2456
2011-05-31  Tobias Burnus  
2457
 
2458
        PR fortran/18918
2459
        * trans-array.c (gfc_trans_dummy_array_bias): Handle
2460
        cobounds of assumed-shape arrays.
2461
 
2462
2011-05-31  Tobias Burnus  
2463
 
2464
        PR fortran/18918
2465
        * resolve.c (resolve_fl_variable): Handle static coarrays
2466
        with non-constant cobounds.
2467
 
2468
2011-05-29  Janus Weil  
2469
 
2470
        PR fortran/47601
2471
        * module.c (mio_component_ref): Handle components of extended types.
2472
        * symbol.c (gfc_find_component): Return is sym is NULL.
2473
 
2474
2011-05-29  Tobias Burnus  
2475
 
2476
        PR fortran/18918
2477
        * interface.c (compare_parameter): Add check for passing coarray
2478
        to allocatable noncoarray dummy.
2479
 
2480
2011-05-29  Tobias Burnus  
2481
            Richard Guenther  
2482
 
2483
        PR fortran/18918
2484
        * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
2485
        the type's TREE_TYPE.
2486
        * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
2487
        * trans.c (gfc_build_array_ref): Ditto.
2488
 
2489
2011-05-27  Tobias Burnus  
2490
 
2491
        PR fortran/18918
2492
        * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
2493
        * match.c (gfc_match_nullify): Ditto.
2494
        * resolve.c (resolve_deallocate_expr): Ditto.
2495
        * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
2496
        for nonpointers.
2497
 
2498
2011-05-27  Tobias Burnus  
2499
 
2500
        PR fortran/48820
2501
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
2502
        * intrinsic.c (add_functions): Add rank intrinsic.
2503
        (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
2504
        * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
2505
        * simplify.c (gfc_simplify_rank): New function.
2506
        * intrinsic.texi (RANK): Add description for rank intrinsic.
2507
        * check.c (gfc_check_rank): New function.
2508
 
2509
2011-05-26  Paul Thomas  
2510
            Thomas Koenig  
2511
 
2512
        PR fortran/48955
2513
        * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
2514
        changed to GFC_ENABLE_REVERSE.
2515
        * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
2516
        to GFC_INHIBIT_REVERSE.
2517
        * gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE,
2518
        GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
2519
        * dependency.c (gfc_dep_resolver): Change names for elements of
2520
        gfc_reverse as necessary. Change the logic so that forward
2521
        dependences are remembered as well as backward ones. When both
2522
        have appeared, force a temporary.
2523
 
2524
2011-05-26  Tobias Burnus  
2525
 
2526
        PR fortran/18918
2527
        * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
2528
        * trans-decl.c (has_coarray_vars, caf_init_block,
2529
        gfor_fndecl_caf_register): New file-global variables.
2530
        (gfc_finish_var_decl): Make sure that coarrays in main are static.
2531
        (gfc_build_qualified_array): Generate coarray token variable.
2532
        (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
2533
        (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
2534
        (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
2535
        static coarrays.
2536
        (generate_local_decl): Check for local coarrays.
2537
        (create_main_function): SYNC ALL before calling MAIN.
2538
        (generate_coarray_sym_init): Register static coarray.
2539
        (generate_coarray_init): Generate CAF registering constructor
2540
        function.
2541
        (gfc_generate_function_code): Call it, if needed, do not create
2542
        cgraph twice.
2543
        (gfc_generate_module_vars, gfc_process_block_locals): Call
2544
        generate_coarray_init.
2545
        * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
2546
        -fcoarray=lib.
2547
        * trans.h (gfor_fndecl_caf_register): New variable.
2548
        (lang_type): New element caf_token.
2549
        (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.
2550
 
2551
2011-05-24  Joseph Myers  
2552
 
2553
        * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
2554
        (gfortran$(exeext)): Use libcommon-target.a.
2555
 
2556
2011-05-22  Thomas Koenig  
2557
 
2558
        * frontend-passes.c (cfe_register_funcs):  Also register
2559
        character functions if their charlens are known and constant.
2560
        Also register allocatable functions.
2561
 
2562
2011-05-21  Janus Weil  
2563
 
2564
        PR fortran/48699
2565
        * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
2566
        selector is ALLOCATABLE.
2567
 
2568
2011-05-20  Janus Weil  
2569
 
2570
        PR fortran/48706
2571
        * module.c (write_dt_extensions): Do not write extended types which
2572
        are local to a subroutine.
2573
 
2574
2011-05-20  Joseph Myers  
2575
 
2576
        * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.
2577
 
2578
2011-05-20  Janne Blomqvist  
2579
 
2580
        * gfortran.texi (set_fpe): Update documentation.
2581
        * invoke.texi (-ffpe-trap): Likewise.
2582
        * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
2583
        * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
2584
        precision an alias for it.
2585
 
2586
2011-05-19  Tobias Burnus  
2587
 
2588
        PR fortran/18918
2589
        * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
2590
        (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
2591
        coarrays.
2592
        * trans.c (gfc_build_array_ref): Return original type not variant
2593
        copy for scalar coarrays.
2594
        * trans-array.c (gfc_conv_array_ref): Ditto.
2595
 
2596
2011-05-18  Janus Weil  
2597
 
2598
        PR fortran/48700
2599
        * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
2600
        argument to avoid memory leaks.
2601
 
2602
2011-05-16  Tobias Burnus  
2603
 
2604
        * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
2605
        (Fortran 2008 status): Multi-image support for coarrays.
2606
        (TR 19113 status): New section.
2607
 
2608
2011-05-15  Tobias Burnus  
2609
 
2610
        PR fortran/18918
2611
        actual argument is not an array; rank mismatch is diagnosted later.
2612
        * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
2613
        scalar coarrays.
2614
        * trans-types.c (gfc_get_array_type_bounds): Ditto.
2615
 
2616
2011-05-15  Joern Rennecke  
2617
 
2618
        PR middle-end/46500
2619
        * trans-types.c: Include "tm.h".
2620
        [0] (c_size_t_size): Remove.
2621
 
2622
2011-05-15  Janne Blomqvist  
2623
 
2624
        PR libfortran/48915
2625
        * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
2626
        is now the default, the library defaults to backtracing disabled.
2627
 
2628
2011-05-14  Tobias Burnus  
2629
 
2630
        * lang.opt (fdump-core): Re-add as ignored option
2631
        for backward compatibility.
2632
 
2633
2011-05-14  Janne Blomqvist  
2634
 
2635
        PR libfortran/48915
2636
        * gfortran.texi: Update mixed-language programming section
2637
        reflecting the removal of the fdump-core option, and that
2638
        -fbacktrace is now enabled by default.
2639
 
2640
2011-05-14  Thomas Koenig  
2641
 
2642
        PR fortran/22572
2643
        * frontend-passes.c (cfe_register_funcs):  Also register functions
2644
        for potential elimination if the rank is > 0, the shape is unknown
2645
        and reallocate on assignment is active.
2646
        (create_var):  For rank > 0 functions with unknown shape, create
2647
        an allocatable temporary.
2648
 
2649
2011-05-14  Tobias Burnus  
2650
 
2651
        PR fortran/18918
2652
        * interface.c (compare_parameter): Skip diagnostic if
2653
        actual argument is not an array; rank mismatch is diagnosted later.
2654
 
2655
2011-05-14  Tobias Burnus  
2656
 
2657
        * options.c (gfc_init_options, gfc_post_options): Enable
2658
        -fstack-arrays by default if -Ofast is used.
2659
        * invoke.texi (-fstack-arrays): Document this.
2660
 
2661
2011-05-14  Janne Blomqvist  
2662
 
2663
        PR libfortran/48915
2664
        * gfortran.h (gfc_option_t): Remove flag_dump_core.
2665
        * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
2666
        (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
2667
        * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
2668
        * invoke.texi: Remove -fdump-core, document that -fbacktrace is
2669
        enabled by default.
2670
        * lang.opt: Remove -fdump-core.
2671
        * options.c (gfc_init_options): Make backtrace default to enabled,
2672
        remove dump_core.
2673
        (gfc_handle_option): Remove OPT_fdump-core.
2674
        * trans-decl.c: Pass a 0 to preserve ABI.
2675
 
2676
2011-05-14  Janne Blomqvist  
2677
 
2678
        * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.
2679
 
2680
2011-05-13  Tobias Burnus  
2681
 
2682
        PR fortran/48972
2683
        * io.c (resolve_tag_format, resolve_tag): Make sure
2684
        that the string is of default kind.
2685
        (gfc_resolve_inquire): Also resolve decimal tag.
2686
 
2687
2011-05-12  Tobias Burnus  
2688
 
2689
        PR fortran/48972
2690
        * resolve.c (resolve_intrinsic): Don't resolve module
2691
        intrinsics multiple times.
2692
 
2693
2011-05-11  Tobias Burnus  
2694
 
2695
        PR fortran/48889
2696
        * expr.c (gfc_is_constant_expr): Use e->value.function.esym
2697
        instead of e->symtree->n.sym, if available.
2698
 
2699
2011-05-07  Eric Botcazou  
2700
 
2701
        * f95-lang.c (global_bindings_p): Return bool and simplify.
2702
 
2703
2011-05-07  Tobias Burnus  
2704
 
2705
        PR fortran/18918
2706
        PR fortran/48919
2707
        * trans.h: Move gfc_init_coarray_decl prototype ...
2708
        * gfortran.h: ... to here.
2709
        * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
2710
        (gfc_parse_file): Update translate_all_program_units call.
2711
        * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
2712
        new argument whether DECL_EXTERNAL should be used.
2713
        (create_main_function): Update gfc_init_coarray_decl call.
2714
        * trans-intrinsic.c (trans_this_image, trans_image_index,
2715
        conv_intrinsic_cobound): Ditto.
2716
 
2717
2011-05-06  Tobias Burnus  
2718
 
2719
        PR fortran/18918
2720
        * trans-array.c (gfc_walk_variable_expr): Continue walking
2721
        for scalar coarrays.
2722
        * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
2723
        (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
2724
        (trans_this_image): Fix algorithm.
2725
        * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
2726
        gfc_sym_type): Handle scalar coarrays.
2727
 
2728
2011-05-06  Tobias Burnus  
2729
 
2730
        PR fortran/48858
2731
        PR fortran/48820
2732
        * lang.opt (std=f2008tr): New.
2733
        * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
2734
        * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
2735
        procedures for -std=f2008tr/gnu/legacy.
2736
        (gfc_match_import): Set sym to NULL.
2737
        * options.c (set_default_std_flags,gfc_handle_option): Handle
2738
        -std=f2008tr.
2739
        * invoke.texi (-std=): Document -std=f2008tr.
2740
 
2741
2011-05-05  Nathan Froyd  
2742
 
2743
        * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
2744
        * trans-io.c (add_case): Likewise.
2745
        * trans-stmt.c (gfc_trans_integer_select): Likewise.
2746
        (gfc_trans_character_select): Likewise.
2747
 
2748
2011-05-05  Eric Botcazou  
2749
 
2750
        * trans-decl.c (trans_function_start): Do not set
2751
        dont_save_pending_sizes_p.
2752
 
2753
2011-05-04  Nathan Froyd  
2754
 
2755
        * trans.h (gfc_chainon_list): Delete.
2756
        * trans.c (gfc_chainon_list): Delete.
2757
 
2758
2011-05-04  Tobias Burnus  
2759
 
2760
        PR fortran/48864
2761
        * invoke.texi (fno-protect-parens): Document
2762
        that -Ofast implies -fno-protect-parens.
2763
        * options.c (gfc_init_options, gfc_post_options):
2764
        Make -Ofast imply -fno-protect-parens.
2765
 
2766
2011-05-04  Nathan Froyd  
2767
 
2768
        * trans-decl.c (build_library_function_decl_1): Call
2769
        build_function_type_vec.  Adjust argument list building accordingly.
2770
        * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
2771
        * trans-types.c (gfc_get_function_type): Likewise.
2772
 
2773
2011-05-04  Richard Guenther  
2774
 
2775
        * trans-array.c (gfc_trans_array_constructor_value): Use
2776
        size_int for bounds of range types.
2777
        (gfc_trans_array_constructor_value): Use size_type_node
2778
        for memcpy argument.
2779
        * trans-common.c (build_field): Use gfc_charlen_type_node
2780
        for lengths.
2781
        * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
2782
        as type to build_int_cst.
2783
        * trans-const.c (gfc_build_string_const): Use size_int
2784
        for bounds of range types.
2785
        (gfc_build_wide_string_const): Likewise.
2786
        * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
2787
        for lengths.
2788
        (gfc_trans_character_select): Likewise.
2789
        (gfc_trans_character_select): Do not pass NULL
2790
        as type to build_int_cst.
2791
        (gfc_trans_character_select): Use size_int for bounds of range types.
2792
        * trans-io.c (gfc_build_io_library_fndecls): Likewise.
2793
        (add_case): Do not pass NULL as type to build_int_cst.
2794
        (transfer_expr): Likewise.
2795
        (transfer_array_desc): Likewise.
2796
        * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
2797
        for lengths.
2798
        (gfc_trans_assign_aux_var): Likewise.
2799
        (create_main_function): Use size_int for bounds of range types.
2800
        * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
2801
        NULL as type to build_int_cst.
2802
        (gfc_conv_intrinsic_spacing): Likewise.
2803
        (gfc_conv_intrinsic_rrspacing): Likewise.
2804
        (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.
2805
 
2806
2011-05-04  Richard Guenther  
2807
 
2808
        * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
2809
        argument to int_const_binop.
2810
 
2811
2011-05-03  Tobias Burnus  
2812
 
2813
        PR fortran/18918
2814
        * trans-intrinsic.c (trans_this_image): Implement version with
2815
        coarray argument.
2816
        (conv_intrinsic_cobound): Simplify code.
2817
        (gfc_conv_intrinsic_function): Call trans_this_image for
2818
        this_image(coarray) except for -fcoarray=single.
2819
 
2820
2011-05-02  Steven G. Kargl  
2821
 
2822
        PR fortran/48720
2823
        * gfortran.texi: Document the 'Q' exponent-letter extension.
2824
        * invoke.texi: Document -Wreal-q-constant.
2825
        * lang.opt: Add -Wreal-q-constant option.
2826
        * gfortran.h: Add warn_real_q_constant to option struct.
2827
        * primary.c (match_real_constant):  Use it.  Accept 'Q' as
2828
        exponent-letter for REAL(16) real-literal-constant with a
2829
        fallback to REAL(10) or error if REAL(10) is not available.
2830
        * options.c (gfc_init_options, set_Wall) Set it.
2831
        (gfc_handle_option): Handle new option.
2832
 
2833
2011-04-30  Thomas Koenig  
2834
 
2835
        * dump-prase-tree.c (show_code_node):  Set the current
2836
        namespace to the BLOCK before displaying it; restore
2837
        afterwards.
2838
 
2839
2011-04-30  Tobias Burnus  
2840
 
2841
        PR fortran/48821
2842
        * decl.c (gfc_match_import): Don't try to find the
2843
        symbol if already found.
2844
 
2845
2011-04-30  Paul Thomas  
2846
 
2847
        PR fortran/48746
2848
        * trans-expr.c (fcncall_realloc_result): Set the bounds and the
2849
        offset so that the lbounds are one.
2850
        (gfc_trans_arrayfunc_assign): Add rank to arguments of above.
2851
 
2852
2011-04-29  Paul Thomas  
2853
 
2854
        PR fortran/48462
2855
        * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
2856
        automatic reallocation when the lhs is a target.
2857
 
2858
        PR fortran/48746
2859
        * trans-expr.c (fcncall_realloc_result): Make sure that the
2860
        result dtype field is set before the function call.
2861
 
2862
2011-04-29  Tobias Burnus  
2863
 
2864
        PR fortran/48810
2865
        * resolve.c (resolve_typebound_generic_call): Don't check access
2866
        flags of the specific function.
2867
 
2868
        PR fortran/48800
2869
        * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
2870
        to AS_ASSUMED_SHAPE for function results.
2871
        (resolve_fl_var_and_proc): Print also for function results with
2872
        AS_DEFERRED an error, if they are not a pointer or allocatable.
2873
        (resolve_types): Make sure arguments of procedures in interface
2874
        blocks are resolved.
2875
 
2876
2011-04-29  Michael Matz  
2877
 
2878
        * options.c (options.c): Set warn_maybe_uninitialized.
2879
 
2880
2011-04-28  Tobias Burnus  
2881
 
2882
        PR fortran/48112
2883
        * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
2884
        function results only once.
2885
        (resolve_symbol): Always resolve function results.
2886
 
2887
        PR fortran/48279
2888
        * expr.c (gfc_check_vardef_context): Fix handling of generic
2889
        EXPR_FUNCTION.
2890
        * interface.c (check_interface0): Reject internal functions
2891
        in generic interfaces, unless -std=gnu.
2892
 
2893
2011-04-27  Tobias Burnus  
2894
 
2895
        PR fortran/48788
2896
        * resolve.c (resolve_global_procedure): Error recovery -
2897
        avoid segfault for (non)character-returning functions.
2898
 
2899
2011-04-26  Thomas Koenig  
2900
 
2901
        * decl.c (gfc_match_end):  Check that the block name starts
2902
        with "block@".
2903
        * parse.c (gfc_build_block_ns):  Make block names unique by
2904
        numbering them.
2905
 
2906
2011-04-26  Thomas Koenig  
2907
 
2908
        * frontend-passes.c (inserted_block):  New variable.
2909
        (changed_statement):  Likewise.
2910
        (create_var):  Encase statement to be operated on in a BLOCK.
2911
        Adjust code insertion for BLOCK.
2912
        (cfe_code):  Set inserted_block and changed_statement to NULL.
2913
 
2914
2011-04-23  Tobias Burnus  
2915
 
2916
        PR fortran/18918
2917
        * module.c (mio_array_spec): Set as->cotype on reading.
2918
        * resolve.c (resolve_allocate_expr): Fix allocating coarray
2919
        components.
2920
 
2921
2011-04-21  Thomas Koenig  
2922
 
2923
        PR fortran/48405
2924
        * frontend_passes (cfe_register_funcs): Remove workaround for DO
2925
        loops.
2926
        (gfc_code_walker):  Make sure the pointer to the current
2927
        statement doen't change when other statements are inserted.
2928
 
2929
2011-04-21  Tobias Burnus  
2930
 
2931
        PR fortran/18918
2932
        * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.
2933
 
2934
2011-04-20  Jim Meyering  
2935
 
2936
        * expr.c (free_expr0): Remove useless if-before-free.
2937
        * gfortranspec.c (lang_specific_pre_link): Likewise.
2938
        * interface.c (gfc_extend_expr): Likewise.
2939
        * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
2940
 
2941
2011-04-19  Tobias Burnus  
2942
 
2943
        PR fortran/48588
2944
        PR fortran/48692
2945
 
2946
        * module.c (fix_mio_expr): Commit created symbol.
2947
 
2948
2011-04-19  Janne Blomqvist  
2949
 
2950
        * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.
2951
 
2952
2011-04-19  Janne Blomqvist  
2953
 
2954
        * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
2955
        free.
2956
 
2957
2011-04-19  Janne Blomqvist  
2958
 
2959
        * misc.c (gfc_getmem): Remove function.
2960
        * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
2961
        usage with XCNEW or XCNEWVEC.
2962
        * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
2963
        XCNEW or XCNEWVEC.
2964
        * options.c (gfc_handle_module_path_options)
2965
        (gfc_get_option_string): Likewise.
2966
        * resolve.c (gfc_resolve_forall): Likewise.
2967
        * simplify.c (simplify_transformation_to_array): Likewise.
2968
        * target-memory.c (gfc_target_interpret_expr): Likewise.
2969
        * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
2970
        (get_init_field): Likewise.
2971
        * trans-expr.c (gfc_conv_statement_function): Likewise.
2972
        * trans-io.c (nml_full_name): Likewise.
2973
        * trans-stmt.c (gfc_trans_forall_1): Likewise.
2974
        * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.
2975
 
2976
2011-04-19  Tobias Burnus  
2977
 
2978
        PR fortran/48588
2979
        * parse.c (resolve_all_program_units): Skip modules.
2980
        (translate_all_program_units): Handle modules.
2981
        (gfc_parse_file): Defer code generation for modules.
2982
 
2983
2011-04-19  Martin Jambor  
2984
 
2985
        * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
2986
        instead of cgraph_get_create_node.
2987
 
2988
2011-04-18  Jim Meyering  
2989
 
2990
        remove now-unused definition of gfc_free
2991
        * misc.c (gfc_free): Remove function.
2992
        * gfortran.h (gfc_free): Remove its prototype.
2993
 
2994
2011-04-18  Jim Meyering  
2995
 
2996
        convert each use of gfc_free (p) to free (p)
2997
        Do that by running this command:
2998
          perl -pi -e    's/\bgfc_free ?\(/free (/' \
2999
            $(git grep -El '\bgfc_free ?\(')
3000
        which also corrects the few uses that lacked a space between
3001
        the function name and the open parenthesis.
3002
        Manually undo the change to the function definition itself
3003
        and its prototype.  They'll be removed next.
3004
        * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
3005
        * constructor.c (node_free): Likewise.
3006
        * cpp.c (dump_queued_macros): Likewise.
3007
        * data.c (gfc_assign_data_value): Likewise.
3008
        * decl.c (free_variable, free_value, gfc_free_data): Likewise.
3009
        (gfc_free_data_all, match_old_style_init): Likewise.
3010
        (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
3011
        Likewise.
3012
        (gfc_match_modproc): Likewise.
3013
        * dependency.c (check_section_vs_section): Likewise.
3014
        * error.c (gfc_pop_error, gfc_free_error): Likewise.
3015
        * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
3016
        (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
3017
        (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
3018
        Likewise.
3019
        * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
3020
        (strip_function_call, optimize_comparison): Likewise.
3021
        * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
3022
        (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
3023
        Likewise.
3024
        * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
3025
        (gfc_convert_chartype): Likewise.
3026
        * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
3027
        Likewise.
3028
        (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
3029
        * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
3030
        (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
3031
        Likewise.
3032
        (free_case, gfc_free_forall_iterator): Likewise.
3033
        * misc.c: Likewise.
3034
        * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
3035
        (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
3036
        (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
3037
        (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
3038
        (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
3039
        (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
3040
        * openmp.c (gfc_free_omp_clauses): Likewise.
3041
        * options.c (gfc_post_options): Likewise.
3042
        * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
3043
        * primary.c (gfc_free_structure_ctor_component): Likewise.
3044
        * resolve.c (resolve_structure_cons, check_host_association): Likewise.
3045
        (gfc_resolve_forall, resolve_equivalence): Likewise.
3046
        * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
3047
        (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
3048
        (load_file, gfc_read_orig_filename): Likewise.
3049
        * simplify.c (simplify_transformation_to_array): Likewise.
3050
        (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
3051
        Likewise.
3052
        (gfc_simplify_compiler_options): Likewise.
3053
        * st.c (gfc_free_statement, gfc_free_statements): Likewise.
3054
        (gfc_free_association_list): Likewise.
3055
        * symbol.c (free_components, gfc_free_st_label, free_st_labels):
3056
        Likewise.
3057
        (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
3058
        (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
3059
        (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
3060
        (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
3061
        Likewise.
3062
        (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
3063
        (gfc_free_namespace): Likewise.
3064
        * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
3065
        (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
3066
        (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
3067
        * trans-common.c (get_init_field, create_common): Likewise.
3068
        * trans-const.c (gfc_build_wide_string_const): Likewise.
3069
        (gfc_conv_string_init): Likewise.
3070
        * trans-decl.c (gfc_generate_function_code): Likewise.
3071
        * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
3072
        Likewise.
3073
        (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
3074
        (gfc_trans_subarray_assign): Likewise.
3075
        * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
3076
        * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
3077
        (transfer_namelist_element, transfer_array_component): Likewise.
3078
        * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
3079
        * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
3080
        * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
3081
        Likewise.
3082
 
3083
2011-04-15  Jim Meyering  
3084
 
3085
        gfortran: remove cpp definition of free, ...
3086
        in preparation for the s/gfc_free/free/ transformation.
3087
        * gfortran.h (free): Remove macro definition that would otherwise
3088
        prevent direct use of the function.
3089
 
3090
2011-04-18  Tobias Burnus  
3091
 
3092
        PR fortran/18918
3093
        * array.c (gfc_match_array_ref): Check for too many codimensions.
3094
        * check.c (gfc_check_image_index): Check number of elements
3095
        in SUB argument.
3096
        * simplify.c (gfc_simplify_image_index): Remove unreachable checks.
3097
 
3098
2011-04-18  Tobias Burnus  
3099
 
3100
        PR fortran/18918
3101
        * iresolve.c (gfc_resolve_image_index): Set ts.type.
3102
        * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
3103
        are not known at compile time and handle -fcoarray=lib.
3104
        * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
3105
        IMAGE_INDEX.
3106
        (conv_intrinsic_cobound): Fix comment typo.
3107
        (trans_this_image): New function.
3108
        * trans-array.c (gfc_unlikely): Move to trans.c.
3109
        * trans.c (gfc_unlikely): Function moved from trans-array.c.
3110
        (gfc_trans_runtime_check): Use it.
3111
        * trans-io.c (gfc_trans_io_runtime_check): Ditto.
3112
        * trans.h (gfc_unlikely): Add prototype.
3113
 
3114
2011-04-18  Paul Thomas  
3115
 
3116
        PR fortran/48462
3117
        * trans-expr.c (fcncall_realloc_result): Renamed version of
3118
        realloc_lhs_bounds_for_intrinsic_call that does not touch the
3119
        descriptor bounds anymore but makes a temporary descriptor to
3120
        hold the result.
3121
        (gfc_trans_arrayfunc_assign): Modify the reference to above
3122
        renamed function.
3123
 
3124
2011-05-17  Tobias Burnus  
3125
 
3126
        PR fortran/48624
3127
        * trans-decl.c (gfc_get_extern_function_decl): Fix decl
3128
        for external procedures with proc arguments.
3129
 
3130
2011-04-15  Michael Matz  
3131
 
3132
        * trans-array.c (toplevel): Include gimple.h.
3133
        (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
3134
        properly expand variable length arrays.
3135
        (gfc_trans_auto_array_allocation): If flag_stack_arrays create
3136
        variable length decls and associate them with their scope.
3137
        * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
3138
        * options.c (gfc_init_options): Handle -fstack_arrays option.
3139
        * lang.opt (fstack-arrays): Add option.
3140
        * invoke.texi (Code Gen Options): Document it.
3141
        * Make-lang.in (trans-array.o): Depend on GIMPLE_H.
3142
 
3143
2011-04-15  Tobias Burnus  
3144
 
3145
        PR fortran/18918
3146
        * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
3147
        code which is also causing an ICE.
3148
 
3149
2011-04-14  Nathan Froyd  
3150
 
3151
        * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.
3152
 
3153
2011-04-12  Nathan Froyd  
3154
 
3155
        * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
3156
        calling TREE_CHAIN.
3157
 
3158
2011-04-12  Paul Thomas  
3159
 
3160
        PR fortran/48360
3161
        PR fortran/48456
3162
        * trans-array.c (get_std_lbound): For derived type variables
3163
        return array valued component lbound.
3164
 
3165
2011-04-12  Martin Jambor  
3166
 
3167
        * trans-decl.c (gfc_generate_function_code): Call
3168
        cgraph_get_create_node instead of cgraph_node.
3169
 
3170
2011-04-11  Tobias Burnus  
3171
 
3172
        PR fortran/18918
3173
        * simplify.c (simplify_bound_dim): Exit for
3174
        ucobound's last dimension unless -fcoarray=single.
3175
        * trans-array (gfc_conv_descriptor_size_1): Renamed from
3176
        gfc_conv_descriptor_size, made static, has now from_dim and
3177
        to_dim arguments.
3178
        (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
3179
        (gfc_conv_descriptor_cosize): New function.
3180
        * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
3181
        * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
3182
        and handle last codim of ucobound for when -fcoarray is not "single".
3183
 
3184
2011-04-08  Thomas Koenig  
3185
 
3186
        PR fortran/48448
3187
        * gfortran.h (gfc_option_t):  Add warn_function_elimination and
3188
        flag_frontend_optimize.
3189
        * lang.opt (Wfunction-elimination):  Add.
3190
        (ffrontend-optimize):  Add.
3191
        * invoke.texi:  Add documentation for -Wfunction-elimination
3192
        and -ffrontend-optimize.  Add -faggressive-function-elimination
3193
        to list of code generation options.
3194
        * frontend-passes.c (gfc_run_passes):  Run optimizations if
3195
        flag_frontend_optimize is set.
3196
        (warn_function_elimination):  New function.
3197
        (cfe_expr_0):  Call it if requested to do so.
3198
        * options.c (gfc_init_options):  Initiate warn_function_elimination
3199
        and flag_frontend_optimize.
3200
        (gfc_post_options):  Set flag_frontend_optimize if not specified
3201
        by user, depending on the optimization level.
3202
        (gfc_handle_option):  Handle -Wfunction-elimination and
3203
        -ffrontend-optimize.
3204
 
3205
2011-04-06  Tobias Burnus  
3206
 
3207
        PR fortran/18918
3208
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
3209
        call for this_image.
3210
 
3211
2011-04-05  Nathan Froyd  
3212
 
3213
        * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
3214
        build_function_type_list instead of build_function_type.  Correct
3215
        argument order for func_frexp and func_scalbn.
3216
 
3217
2011-04-05  Duncan Sands  
3218
 
3219
        * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.
3220
 
3221
2011-04-04  Thomas Koenig  
3222
 
3223
        * frontend-passes: (optimize_lexical_comparison): New function.
3224
        (optimize_expr): Call it.
3225
        (optimize_comparison): Also handle lexical comparison functions.
3226
        Return false instad of -2 for unequal comparison.
3227
 
3228
2011-04-04  Thomas Koenig  
3229
 
3230
        PR fortran/48412
3231
        * frontend-passes (cfe_expr_0):  Reverse the order of going
3232
        through the loops.
3233
 
3234
2011-04-04  Tobias Burnus  
3235
            Mikael Morin  
3236
 
3237
        PR fortran/18918
3238
        * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
3239
        * expr.c (gfc_is_coindexed): Ditto.
3240
        * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
3241
        * interface.c (compare_parameter): Use gfc_expr_attr and
3242
        gfc_is_coindexed.
3243
        * resolve.c (check_dimension, compare_spec_to_ref,
3244
        resolve_allocate_expr, check_data_variable): Update for
3245
        DIMEN_THIS_IMAGE.
3246
        * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
3247
        gfc_simplify_ucobound): Allow non-constant bounds.
3248
        * trans-array.c (gfc_set_loop_bounds_from_array_spec,
3249
        gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
3250
        gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
3251
        gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
3252
        gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
3253
        gfc_conv_ss_startstride, gfc_conv_loop_setup,
3254
        gfc_trans_array_bounds, gfc_conv_expr_descriptor,
3255
        gfc_walk_variable_expr): Handle codimen.
3256
        * trans-decl.c (gfc_build_qualified_array): Save cobounds.
3257
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
3258
        (conv_intrinsic_cobound): New function.
3259
        (gfc_conv_intrinsic_function): Call it.
3260
        (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
3261
        ucobound, lcobound, this_image.
3262
        * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
3263
        (gfc_get_dtype): Honour corank.
3264
        (gfc_get_nodesc_array_type): Save corank and codimensions.
3265
        (gfc_get_array_type_bounds): Save cobound.
3266
        * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
3267
        (gfc_array_kind): Add corank item.
3268
        (GFC_TYPE_ARRAY_CORANK): New macro.
3269
 
3270
2011-04-03  Kai Tietz  
3271
 
3272
        PR middle-end/48422
3273
        * Make-lang.in (f95-lang.o): Add some missing dependencies.
3274
 
3275
2011-04-01  Thomas Koenig  
3276
 
3277
        PR fortran/48352
3278
        * frontend-passes (cfe_register_funcs):  Don't
3279
        register functions if they appear as iterators in DO loops.
3280
 
3281
2011-03-30  Michael Matz  
3282
 
3283
        PR fortran/47516
3284
        * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
3285
        don't use local variable.
3286
        (gfc_trans_arrayfunc_assign): Adjust caller.
3287
 
3288
2011-03-29  Janus Weil  
3289
 
3290
        PR fortran/48095
3291
        * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
3292
        * module.c (MOD_VERSION): Bump.
3293
        (mio_typespec): Read/write 'interface' field.
3294
        * primary.c (match_string_constant,match_logical_constant): Remove
3295
        unneeded code.
3296
        (match_complex_constant): Make sure to clear the typespec.
3297
 
3298
2011-03-29  Thomas Koenig  
3299
 
3300
        * frontend-passes.c (create_var):  Warn about creating an
3301
        array temporary if requested.
3302
 
3303
2011-03-27  Thomas Koenig  
3304
 
3305
        PR fortran/47065
3306
        * frontend-passes.c (optimize_trim): Also follow references, except
3307
        when they are substring references or array references.
3308
 
3309
2011-03-27  Tobias Burnus  
3310
 
3311
        PR fortran/18918
3312
        * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
3313
        GFC_ISYM_NUM_IMAGES.
3314
        (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
3315
        * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
3316
        rename.
3317
        * invoke.texi (-fcoarray=): Document "lib" argument.
3318
        * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
3319
        * libgfortran.h (libgfortran_stat_codes): Add comments.
3320
        * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
3321
        * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
3322
        Handle GFC_FCOARRAY_LIB.
3323
        * trans.h (gfc_init_coarray_decl): New prototype.
3324
        (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
3325
        gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
3326
        gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
3327
        gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
3328
        gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
3329
        New global variables.
3330
        * trans-decl.c: Declare several CAF functions (cf. above).
3331
        (gfc_build_builtin_function_decls): Initialize those.
3332
        (gfc_init_coarray_decl): New function.
3333
        (create_main_function): Call CAF init/finalize functions.
3334
        * trans-intrinsic.c (trans_this_image, trans_num_images): New.
3335
        (gfc_conv_intrinsic_function): Call those.
3336
        * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
3337
        Add code for GFC_FCOARRAY_LIB.
3338
 
3339
2011-03-26  Janus Weil  
3340
 
3341
        PR fortran/48291
3342
        * class.c (get_unique_hashed_string): Adjust maximum allowable length
3343
        for unique type string.
3344
 
3345
2011-03-25  Kai Tietz  
3346
 
3347
        * scanner.c (preprocessor_line): Use filename_cmp
3348
        instead of strcmp.
3349
 
3350
2011-03-25  Tobias Burnus  
3351
 
3352
        PR fortran/48174
3353
        PR fortran/45304
3354
        * trans-types.c (gfc_get_function_type): Don't use varargs if the
3355
        procedure is known to have no arguments.
3356
 
3357
2011-03-21  Thomas Koenig  
3358
 
3359
        PR fortran/22572
3360
        * gfortran.h (gfc_option_t): Add
3361
        flag_aggressive_function_elimination.
3362
        (gfc_dep_compare_functions):  Add prototype.
3363
        * lang.opt: Add faggressive-function-elimination.
3364
        * invoke.texi: Document -faggressive-function-elimination.
3365
        * frontend_passes (expr_array):  New static variable.
3366
        (expr_size):  Likewise.
3367
        (expr_count):  Likewise.
3368
        (current_code):  Likewise.
3369
        (current_ns):  Likewise.
3370
        (gfc_run_passes):  Allocate and free space for expressions.
3371
        (cfe_register_funcs):  New function.
3372
        (create_var):  New function.
3373
        (cfc_expr_0):  New function.
3374
        (cfe_code):  New function.
3375
        (optimize_namespace):  Invoke gfc_code_walker with cfe_code
3376
        and cfe_expr_0.
3377
        * dependency.c (gfc_dep_compare_functions):  New function.
3378
        (gfc_dep_compare_expr):  Use it.
3379
        * options.c (gfc_init_options):  Handle
3380
        flag_aggressive_function_elimination.
3381
        (gfc_handle_option):  Likewise.
3382
 
3383
2011-03-15  Francois-Xavier Coudert  
3384
 
3385
        * arith.c (arith_power): Plug memory leak.
3386
 
3387
2011-03-12  Janus Weil  
3388
 
3389
        PR fortran/48059
3390
        * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
3391
        for polymorphic arguments.
3392
 
3393
2011-03-12  Francois-Xavier Coudert  
3394
 
3395
        PR fortran/48054
3396
        * intrinsic.texi: Clarify doc of logarithm functions.
3397
 
3398
2011-03-12  Francois-Xavier Coudert  
3399
 
3400
        PR fortran/47552
3401
        * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
3402
        the string length variable.
3403
 
3404
2011-03-11  Janus Weil  
3405
 
3406
        PR fortran/47768
3407
        * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
3408
        (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
3409
 
3410
2011-03-06  Paul Thomas  
3411
            Jerry DeLisle  
3412
 
3413
        PR fortran/47850
3414
        * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
3415
        the expression has an iterator.  Otherwise, iterate through the
3416
        array, checking for constant expressions for each element.
3417
 
3418
2011-03-04  Janne Blomqvist  
3419
 
3420
        PR libfortran/47802
3421
        * intrinsic.texi: Update CTIME and FDATE documentation.
3422
 
3423
2011-03-03  Ralf Wildenhues  
3424
 
3425
        * invoke.texi (Option Summary, Fortran Dialect Options)
3426
        (Preprocessing Options, Runtime Options, Code Gen Options):
3427
        Fix vertical list spacing by using @itemx for additinoal
3428
        items, empty line before @table.  Fix typos.
3429
 
3430
2011-02-28  Francois-Xavier Coudert  
3431
 
3432
        PR fortran/47894
3433
        * intrinsic.texi: Fix doc of the VERIFY intrinsic.
3434
 
3435
2011-02-26  Tobias Burnus  
3436
 
3437
        PR fortran/47846
3438
        * trans-stmt.c (gfc_trans_allocate): Fix allocation with
3439
        type-spec of deferred-length strings.
3440
 
3441
2011-02-26  Tobias Burnus  
3442
 
3443
        PR fortran/47886
3444
        * openmp.c (gfc_resolve_omp_directive): Resolve if()
3445
        condition of OpenMP's task.
3446
 
3447
2011-02-26  Francois-Xavier Coudert  
3448
 
3449
        PR fortran/47894
3450
        * intrinsic.texi: Fix doc of the VERIFY intrinsic.
3451
 
3452
2011-02-24  Tobias Burnus  
3453
 
3454
        PR fortran/47872
3455
        * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
3456
        multitable for linebreak between different syntax variants.
3457
 
3458
2011-02-24  Richard Guenther  
3459
 
3460
        PR fortran/47839
3461
        * f95-lang.c (pushdecl): For externs in non-global scope push
3462
        a copy of the decl into the BLOCK.
3463
 
3464
2011-02-23  Mikael Morin  
3465
 
3466
        PR fortran/40850
3467
        * trans.c (gfc_prepend_expr_to_block): New function.
3468
        * trans.h (gfc_prepend_expr_to_block): Declare.
3469
        * trans-array.c (gfc_conv_array_parameter): Replace
3470
        gfc_add_expr_to_block with gfc_prepend_expr_to_block.
3471
 
3472
2011-02-22  Paul Thomas  
3473
 
3474
        PR fortran/45743
3475
        * trans-decl.c (gfc_get_extern_function_decl): Don't use the
3476
        gsymbol backend_decl if the procedure has a formal argument
3477
        that is a procedure.
3478
 
3479
2011-02-22  Tobias Burnus  
3480
 
3481
        PR fortran/41359
3482
        * trans-stmt.c (gfc_trans_if_1): Use correct line for
3483
        expressions in the if condition.
3484
 
3485
2011-02-20  Tobias Burnus  
3486
 
3487
        PR fortran/47797
3488
        * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
3489
        gfc_restore_backend_locus to have better debug locations.
3490
        * trans-array.c (gfc_trans_deferred_array): Ditto.
3491
 
3492
2011-02-20  Paul Thomas  
3493
 
3494
        PR fortran/45077
3495
        PR fortran/44945
3496
        * trans-types.c (gfc_get_derived_type): Remove code that looks
3497
        for decls in gsym and add call to gfc_get_module_backend_decl.
3498
        * trans.h: Add prototype for gfc_get_module_backend_decl.
3499
        * trans-decl.c (gfc_get_module_backend_decl): New function.
3500
        (gfc_get_symbol_decl): Call it.
3501
 
3502
2011-02-19  Paul Thomas  
3503
 
3504
        PR fortran/47348
3505
        * trans-array.c (get_array_ctor_all_strlen): Move up in file.
3506
        (get_array_ctor_var_strlen): Add block dummy and add call to
3507
        get_array_ctor_all_strlen instead of giving up on substrings.
3508
        Call gcc_unreachable for default case.
3509
        (get_array_ctor_strlen): Add extra argument to in call to
3510
        get_array_ctor_var_strlen.
3511
 
3512
2011-02-18  Janus Weil  
3513
 
3514
        PR fortran/47789
3515
        * primary.c (gfc_match_structure_constructor): Handle empty parent
3516
        types.
3517
 
3518
2011-02-18  Tobias Burnus
3519
 
3520
        PR fortran/47775
3521
        * trans-expr.c (arrayfunc_assign_needs_temporary): Use
3522
        esym to check whether the specific procedure returns an
3523
        allocatable or pointer.
3524
 
3525
2011-02-18  Michael Matz  
3526
 
3527
        PR fortran/45586
3528
        * gfortran.h (struct gfc_component): Add norestrict_decl member.
3529
        * trans.h (struct lang_type): Add nonrestricted_type member.
3530
        * trans-expr.c (gfc_conv_component_ref): Search fields with correct
3531
        parent type.
3532
        * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
3533
        (gfc_sym_type): Use it.
3534
 
3535
2011-02-18  Janus Weil  
3536
 
3537
        PR fortran/47768
3538
        * resolve.c (resolve_transfer): Reject variables with procedure pointer
3539
        components.
3540
 
3541
2011-02-18  Janus Weil  
3542
 
3543
        PR fortran/47767
3544
        * gfortran.h (gfc_check_access): Removed prototype.
3545
        (gfc_check_symbol_access): Added prototype.
3546
        * module.c (gfc_check_access): Renamed to 'check_access', made static.
3547
        (gfc_check_symbol_access): New function, basically a shortcut for
3548
        'check_access'.
3549
        (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
3550
        'gfc_check_symbol_access'.
3551
        (write_operator,write_module): Renamed 'gfc_check_access'.
3552
        * resolve.c (resolve_fl_procedure,resolve_fl_derived,
3553
        resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
3554
        'gfc_check_symbol_access'.
3555
 
3556
2011-02-16  Janus Weil  
3557
 
3558
        PR fortran/47745
3559
        * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
3560
        * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
3561
        'gfc_build_class_symbol'.
3562
        (gfc_match_decl_type_spec): Reject unlimited polymorphism.
3563
        * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
3564
        * match.c (select_type_set_tmp): Move setting of 'class_ok' into
3565
        'gfc_build_class_symbol'.
3566
        * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
3567
 
3568
2011-02-15  Steven G. Kargl  
3569
 
3570
        PR fortran/47633
3571
        . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
3572
 
3573
2011-02-14  Janus Weil  
3574
 
3575
        PR fortran/47730
3576
        * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
3577
 
3578
2011-02-14  Janus Weil  
3579
 
3580
        PR fortran/47728
3581
        * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
3582
        arrays.
3583
        * primary.c (gfc_match_varspec): Avoid ICE for invalid class
3584
        declaration.
3585
 
3586
2011-02-14  Janus Weil  
3587
 
3588
        PR fortran/47349
3589
        * interface.c (get_expr_storage_size): Handle derived-type components.
3590
 
3591
2011-02-13  Tobias Burnus  
3592
 
3593
        PR fortran/47569
3594
        * interface.c (compare_parameter): Avoid ICE with
3595
        character components.
3596
 
3597
2011-02-12  Janus Weil  
3598
 
3599
        * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
3600
        * decl.c (build_sym,build_struct,attr_decl1): Use return value of
3601
        'gfc_build_class_symbol'.
3602
 
3603
2011-02-12  Michael Matz  
3604
            Janus Weil  
3605
            Tobias Burnus  
3606
 
3607
        PR fortran/45586
3608
        * trans-expr.c (conv_parent_component_references): Avoid unintendent
3609
        skipping of parent compounds.
3610
 
3611
2011-02-11  Tobias Burnus  
3612
 
3613
        PR fortran/47550
3614
        * resolve.c (resolve_formal_arglist): PURE with VALUE
3615
        and no INTENT: Add -std= diagnostics.
3616
 
3617
2011-02-09  Janus Weil  
3618
 
3619
        PR fortran/47352
3620
        * resolve.c (resolve_procedure_interface): If interface has a result
3621
        variable, copy the typespec and set result pointer to self.
3622
 
3623
2011-02-09  Janus Weil  
3624
 
3625
        PR fortran/47463
3626
        * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
3627
 
3628
2011-02-09  Janus Weil  
3629
 
3630
        PR fortran/47637
3631
        * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
3632
 
3633
2011-02-08  Jerry DeLisle  
3634
 
3635
        * io.c (match_io_element): Do not set dt if not inquire.
3636
 
3637
2011-02-08  Janus Weil  
3638
 
3639
        PR fortran/45290
3640
        * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
3641
        initialization target.
3642
 
3643
2011-02-07  Janne Blomqvist  
3644
            Ralf Wildenhues  
3645
 
3646
        * gfortran.texi (Thread-safety): texinfo styling fixes.
3647
        * intrinsic.texi: Likewise.
3648
 
3649
2011-02-06  Janne Blomqvist  
3650
 
3651
        * gfortran.texi (Compiler Characteristics): Add reference to
3652
        thread-safety section.
3653
 
3654
2011-02-06  Janne Blomqvist  
3655
 
3656
        * gfortran.texi (Thread-safety): New section.
3657
        * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
3658
        (GETENV): Likewise.
3659
        (GET_ENVIRONMENT_VARIABLE): Likewise.
3660
        (SYSTEM): Likewise.
3661
 
3662
2011-02-06  Paul Thomas  
3663
 
3664
        PR fortran/47592
3665
        * trans-stmt.c (gfc_trans_allocate): For deferred character
3666
        length allocations with SOURCE, store to the values and string
3667
        length to avoid calculating twice.  Replace gfc_start_block
3668
        with gfc_init_block to avoid unnecessary contexts and to keep
3669
        declarations of temporaries where they should be. Tidy up the
3670
        code a bit.
3671
 
3672
2011-02-05  Janne Blomqvist  
3673
 
3674
        PR fortran/42434
3675
        * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
3676
 
3677
2011-02-02  Janus Weil  
3678
            Paul Thomas  
3679
 
3680
        PR fortran/47082
3681
        * trans-expr.c (gfc_trans_class_init_assign): Add call to
3682
        gfc_get_derived_type.
3683
        * module.c (read_cleanup): Do not use unique_symtrees for vtabs
3684
        or vtypes.
3685
 
3686
2011-02-02  Janus Weil  
3687
 
3688
        PR fortran/47572
3689
        * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
3690
 
3691
2011-02-01  Janus Weil  
3692
 
3693
        PR fortran/47565
3694
        * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
3695
        pointer components with allocatable result.
3696
 
3697
2011-01-31  Janus Weil  
3698
 
3699
        PR fortran/47455
3700
        * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
3701
        with pointer or allocatable result.
3702
 
3703
2011-01-31  Paul Thomas  
3704
 
3705
        PR fortran/47519
3706
        * trans-stmt.c (gfc_trans_allocate): Improve handling of
3707
        deferred character lengths with SOURCE.
3708
        * iresolve.c (gfc_resolve_repeat): Calculate character
3709
        length from source length and ncopies.
3710
        * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
3711
        expressions for ALLOCATE.
3712
 
3713
2011-01-31  Janus Weil  
3714
 
3715
        PR fortran/47463
3716
        * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
3717
        an argument of a typebound assignment being a component.
3718
 
3719
2011-01-31  Rainer Orth  
3720
 
3721
        * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
3722
        LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
3723
 
3724
2011-01-31  Tobias Burnus  
3725
 
3726
        PR fortran/47042
3727
        * resolve.c (resolve_fl_procedure): Reject stmt functions
3728
        with pointer/allocatable attribute.
3729
 
3730
2011-01-31  Tobias Burnus  
3731
 
3732
        PR fortran/47042
3733
        * interface.c (gfc_procedure_use): Add explicit interface check for
3734
        pointer/allocatable functions.
3735
 
3736
2011-01-30  Paul Thomas  
3737
 
3738
        PR fortran/47523
3739
        * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
3740
        expr and is assigned to a deferred character length scalar,
3741
        make sure that the function is called before reallocation,
3742
        so that the length is available. Include procedure pointer
3743
        and procedure pointer component rhs as well.
3744
 
3745
        PR fortran/45170
3746
        PR fortran/35810
3747
        PR fortran/47350
3748
        * gfortran.dg/allocatable_function_5.f90: New test not added by
3749
        mistake on 2011-01-28.
3750
 
3751
2011-01-29  Tobias Burnus  
3752
 
3753
        PR fortran/47531
3754
        * check.c (gfc_check_shape): Support kind argument in SHAPE.
3755
        * intrinsic.c (add_functions): Ditto.
3756
        * resolve.c (gfc_resolve_shape): Ditto.
3757
        * simplify.c (gfc_simplify_shape): Ditto.
3758
        * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
3759
        gfc_simplify_shape): Update prototypes.
3760
        * intrinisc.text (SHAPE): Document kind argument.
3761
 
3762
2011-01-28  Tobias Burnus  
3763
 
3764
        PR fortran/47507
3765
        * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
3766
        attribute also without INTENT.
3767
 
3768
2011-01-28  Tobias Burnus  
3769
 
3770
        * gfortran.texi (Fortran 2003 status): Mention support for
3771
        nonconstant namelist variables.
3772
 
3773
2011-01-28  Paul Thomas  
3774
            Tobias Burnus  
3775
 
3776
        PR fortran/45170
3777
        PR fortran/35810
3778
        PR fortran/47350
3779
        * interface.c (compare_actual_formal): An allocatable or pointer
3780
        deferred length actual is only allowed if the formal argument
3781
        is also deferred length. Clean up whitespace.
3782
        * trans-expr.c (gfc_conv_procedure_call): Pass string length for
3783
        deferred character length formal arguments by reference. Do the
3784
        same for function results.
3785
        (gfc_trans_pointer_assignment): Do not do runtime check of lhs
3786
        and rhs character lengths, if deferred length lhs.  In this case
3787
        set the lhs character length to that of the rhs.
3788
        (gfc_conv_string_parameter): Remove assert that string length is
3789
        an integer type.
3790
        (is_scalar_reallocatable_lhs): New function.
3791
        (alloc_scalar_allocatable_for_assignment): New function.
3792
        (gfc_trans_assignment_1): Call above new function. If the rhs is
3793
        a deferred character length itself, makes ure that the function
3794
        is called before reallocation, so that the length is available.
3795
        (gfc_trans_asssignment): Remove error about assignment to
3796
        deferred length character variables.
3797
        * gfortran.texi: Update entry about (re)allocation on
3798
        assignment.
3799
        * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
3800
        length character variables.
3801
        * module.c (mio_typespec): Transfer deferred characteristic.
3802
        * trans-types.c (gfc_get_function_type): New code to generate
3803
        hidden typelist, so that those character lengths that are
3804
        passed by reference get the right type.
3805
        * resolve.c (resolve_contained_fntype): Supress error for
3806
        deferred character length functions.
3807
        (resolve_function, resolve_fl_procedure) The same.
3808
        (check_symbols): Remove the error that support for
3809
        entity with deferred type parameter is not yet implemented.
3810
        (resolve_fl_derived): The same.
3811
        match.c (alloc_opt_list): Allow MOLD for deferred length object.
3812
        * trans-decl.c (gfc_get_symbol_decl): For deferred character
3813
        length dummies, generate a local variable for string length.
3814
        (create_function_arglist): Hidden length can be a pointer.
3815
        (gfc_trans_deferred_vars): For deferred character length
3816
        results and dummies, assign the string length to the local
3817
        variable from the hidden argument on entry and the other way
3818
        round on exit, as appropriate.
3819
 
3820
2011-01-27  Tobias Burnus  
3821
 
3822
        PR fortran/47474
3823
        * trans-decl.c (gfc_generate_function_code): Fix init
3824
        of allocatable result variable with allocatable components.
3825
 
3826
2011-01-27  Tobias Burnus  
3827
 
3828
        PR fortran/47472
3829
        * options.c (gfc_handle_module_path_options): Save
3830
        module path without trailing slash as include path.
3831
 
3832
2011-01-25  Tobias Burnus  
3833
 
3834
        PR fortran/47448
3835
        * interface.c (gfc_check_operator_interface): Fix
3836
        defined-assignment check.
3837
 
3838
2011-01-23  Tobias Burnus  
3839
 
3840
        PR fortran/47421
3841
        * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
3842
        scalar allocatable dummy arguments.
3843
 
3844
2011-01-22  Thomas Koenig  
3845
 
3846
        PR fortran/38536
3847
        * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
3848
        check for array sections followed by component references
3849
        which are illegal.  Also check for coindexed arguments.
3850
 
3851
2011-01-22  Tobias Burnus  
3852
 
3853
        PR fortran/47399
3854
        * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
3855
        PARAMETER TBP.
3856
 
3857
2011-01-21  Tobias Burnus  
3858
 
3859
        PR fortran/47394
3860
        * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
3861
        Use defined instead of magic number exit status codes.
3862
        * scanner.c (include_line, gfc_new_file): Ditto.
3863
 
3864
2011-01-21  Tobias Burnus  
3865
 
3866
        PR fortran/47377
3867
        * expr.c (gfc_check_pointer_assign): Reject expr data-targets
3868
        without pointer attribute.
3869
 
3870
2011-01-18  Janus Weil  
3871
 
3872
        PR fortran/47240
3873
        * resolve.c (expression_rank): Fix rank of procedure poiner components.
3874
        * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
3875
        pointer components as actual arguments.
3876
 
3877
2011-01-17  Jakub Jelinek  
3878
 
3879
        PR fortran/47331
3880
        * gfortran.h (struct gfc_omp_saved_state): New type.
3881
        (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
3882
        * resolve.c (resolve_global_procedure): Call it around gfc_resolve
3883
        call.
3884
        * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
3885
        functions.
3886
 
3887
2011-01-17  Tobias Burnus  
3888
 
3889
        PR fortran/47327
3890
        * invoke.texi (Options to request or suppress errors
3891
        and warnings): Fix cross link.
3892
 
3893
2011-01-15  Tobias Burnus  
3894
 
3895
        * gfortran.texi: Update Fortran 2003 Status section.
3896
 
3897
        PR fortran/47177
3898
        * invoke.texi: Add missing "-E" to the -dM example.
3899
 
3900
2011-01-13  Tobias Burnus  
3901
 
3902
        PR fortran/47268
3903
        * intrinsic.texi (get_command_argument, get_environment_variable):
3904
        Mark arguments as optional in the Arguments section.
3905
 
3906
2011-01-13  Kai Tietz  
3907
            Tobias Burnus  
3908
 
3909
        PR fortran/47260
3910
        * trans-decl.c (gfc_get_extern_function_decl,
3911
        build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
3912
        calling decl_attributes.
3913
 
3914
2011-01-13  Tobias Burnus  
3915
            Mikael Morin  
3916
 
3917
        PR fortran/45848
3918
        PR fortran/47204
3919
        * gfortran.h (gfc_code): Move union ext's case_list into
3920
        the struct block.
3921
        * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
3922
        by "block.".
3923
        * frontend-passes.c (gfc_code_walker): Ditto.
3924
        * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
3925
        gfc_match_type_is, gfc_match_class_is): Ditto.
3926
        * resolve.c (resolve_select, resolve_select_type): Ditto.
3927
        * st.c (gfc_free_statement): Ditto.
3928
        * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
3929
        gfc_trans_character_select): Ditto.
3930
        * parse.c (resolve_all_program_units): For error recovery, avoid
3931
        segfault is proc_name is NULL.
3932
 
3933
2011-01-11  Paul Thomas  
3934
 
3935
        PR fortran/47051
3936
        * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
3937
        to be standard compliant by testing for shape rather than size
3938
        before skipping reallocation. Improve comments.
3939
 
3940
2011-01-09  Janus Weil  
3941
 
3942
        PR fortran/47224
3943
        * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
3944
        of code.
3945
 
3946
2011-01-09  Thomas Koenig  
3947
 
3948
        PR fortran/38536
3949
        * resolve.c (is_scalar_expr_ptr):  For a substring reference,
3950
        use gfc_dep_compare_expr to compare start and end expession.
3951
        Add FIXME for using gfc_deb_compare_expr elsewhere.
3952
 
3953
2011-01-09  Janus Weil  
3954
 
3955
        PR fortran/46313
3956
        * class.c (get_unique_type_string): Make type name start with upper
3957
        case letter.
3958
 
3959
2011-01-08  Thomas Koenig  
3960
 
3961
        PR fortran/46405
3962
        * invoke.texi:  Mention -ffree-line-length-none and
3963
        -ffixed-line-length-none for preprocessing.
3964
 
3965
2011-01-08  Paul Thomas  
3966
 
3967
        PR fortran/46896
3968
        * trans-expr.c (gfc_conv_procedure_call): With a non-copying
3969
        procedure argument (eg TRANSPOSE) use a temporary if there is
3970
        any chance of aliasing due to host or use association.
3971
        (arrayfunc_assign_needs_temporary): Correct logic for function
3972
        results and do not use a temporary for implicitly PURE
3973
        variables.  Use a temporary for Cray pointees.
3974
        * symbol.c (gfc_add_save): Explicit SAVE not compatible with
3975
        implicit pureness of containing procedure.
3976
        * decl.c (match_old_style_init, gfc_match_data): Where decl
3977
        would fail in PURE procedure, set implicit_pure to zero.
3978
        * gfortran.h: Add implicit_pure to structure symbol_attr and
3979
        add prototype for function gfc_implicit_pure.
3980
        * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
3981
        Where decl would fail in PURE procedure, reset implicit_pure.
3982
        * io.c (match_vtag, gfc_match_open, gfc_match_close,
3983
        gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
3984
        * match.c (gfc_match_critical, gfc_match_stopcode,
3985
        sync_statement, gfc_match_allocate, gfc_match_deallocate): The
3986
        same.
3987
        * parse.c (decode_omp_directive): The same.
3988
        (parse_contained): If not PURE, set implicit pure attribute.
3989
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
3990
        resolve_function, resolve_ordinary_assign): The same.
3991
        (gfc_implicit_pure): New function.
3992
        * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
3993
        to ab_attribute enum and use it in this function.
3994
 
3995
2011-01-08  Thomas Koenig  
3996
 
3997
        PR fortran/45777
3998
        * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
3999
        make static and move in front of its only caller, to ...
4000
        * trans-array.c (symbols_could_alias): ... here.
4001
        Pass information about pointer and target status as
4002
        arguments.  Allocatable arrays don't alias anything
4003
        unless they have the POINTER attribute.
4004
        (gfc_could_be_alias):  Keep track of pointer and target
4005
        status when following references.  Also check if typespecs
4006
        of components match those of other components or symbols.
4007
 
4008
2011-01-07  Tobias Burnus  
4009
 
4010
        PR fortran/41580
4011
        * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
4012
        * intrinsic.c (add_functions): Use simplify functions for
4013
        EXTENDS_TYPE_OF and SAME_TYPE_AS.
4014
        * intrinsic.h (gfc_simplify_extends_type_of,
4015
        gfc_simplify_same_type_as): New prototypes.
4016
        * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
4017
        gfc_simplify_same_type_as): New functions.
4018
 
4019
2011-01-07  Janus Weil  
4020
 
4021
        PR fortran/47189
4022
        PR fortran/47194
4023
        * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
4024
        * class.c (gfc_class_null_initializer): Initialize _vptr to declared
4025
        type.
4026
        * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
4027
        * resolve.c (resolve_deallocate_expr): _data component will be added
4028
        at translation stage.
4029
        * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
4030
        * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
4031
 
4032
2011-01-06  Daniel Franke  
4033
 
4034
        PR fortran/33117
4035
        PR fortran/46478
4036
        * parse.c (parse_interface): Remove check for procedure types.
4037
        * interface.c (check_interface0): Verify that procedures are
4038
        either all SUBROUTINEs or all FUNCTIONs.
4039
 
4040
2011-01-05  Janus Weil  
4041
 
4042
        PR fortran/47180
4043
        * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
4044
        'vtab' is initialized).
4045
 
4046
2011-01-05  Janus Weil  
4047
 
4048
        PR fortran/47180
4049
        * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
4050
        assignment, set the _vptr component to the declared type.
4051
 
4052
2011-01-05  Thomas Koenig  
4053
 
4054
        PR fortran/46017
4055
        * resolve.c (resolve_allocate_deallocate): Follow references to
4056
        check for duplicate occurence of allocation/deallocation objects.
4057
 
4058
2011-01-05  Janus Weil  
4059
 
4060
        PR fortran/47024
4061
        * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
4062
        of polymorphic allocatables according to their declared type.
4063
 
4064
2011-01-04  Janus Weil  
4065
 
4066
        PR fortran/46448
4067
        * class.c (gfc_find_derived_vtab): Set the module field for the copying
4068
        routine to make sure it receives module name mangling.
4069
 
4070
2011-01-03  Jakub Jelinek  
4071
 
4072
        * gfortranspec.c (lang_specific_driver): Update copyright notice
4073
        dates.
4074
 
4075
2011-01-03  Janus Weil  
4076
 
4077
        * intrinsic.texi (LEADZ): Fix example.
4078
 
4079
2011-01-02  Janus Weil  
4080
 
4081
        PR fortran/46408
4082
        * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
4083
        routine.
4084
 
4085
 
4086
Copyright (C) 2011 Free Software Foundation, Inc.
4087
 
4088
Copying and distribution of this file, with or without modification,
4089
are permitted in any medium without royalty provided the copyright
4090
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.