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

Subversion Repositories openrisc_me

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

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

Line No. Rev Author Line
1 285 jeremybenn
2008-12-31  Daniel Franke  
2
 
3
        * check.c (dim_rank_check): Fixed checking of dimension argument
4
        if array is of type EXPR_ARRAY.
5
 
6
2008-12-22  Paul Thomas  
7
 
8
        PR fortran/38602
9
        * trans-decl.c (init_intent_out_dt): Allow for optional args.
10
 
11
2008-12-21  Jerry DeLisle  
12
 
13
        PR fortran/38398
14
        * io.c: Add error checks for g0 formatting and provide adjustment of
15
        error loci for improved error messages.
16
 
17
2008-12-21  Arjen Markus  
18
            Daniel Kraft  
19
 
20
        PR fortran/37605
21
        * gfortran.texi: Fixed some typos and some minor style improvements.
22
        * intrinsic.texi: Some clarifications and typo-fixes.
23
        * invoke.texi: Better documenation of the behaviour of the
24
        -fdefault-*-8 options and some other fixes.
25
 
26
2008-12-18  Daniel Kraft  
27
 
28
        PR fortran/31822
29
        * gfortran.h (gfc_check_same_strlen): Made public.
30
        * trans.h (gfc_trans_same_strlen_check): Made public.
31
        * check.c (gfc_check_same_strlen): Made public and adapted error
32
        message output to be useful not only for intrinsics.
33
        (gfc_check_merge): Adapt to gfc_check_same_strlen change.
34
        * expr.c (gfc_check_pointer_assign): Use gfc_check_same_strlen for
35
        string length compile-time check.
36
        * trans-expr.c (gfc_trans_pointer_assignment): Add runtime-check for
37
        equal string lengths using gfc_trans_same_strlen_check.
38
        * trans-intrinsic.c (gfc_trans_same_strlen_check): Renamed and made
39
        public from conv_same_strlen_check.
40
        (gfc_conv_intrinsic_merge): Adapted accordingly.
41
 
42
2008-12-17  Daniel Kraft  
43
 
44
        PR fortran/38137
45
        * trans-intrinsic.c (conv_same_strlen_check): New method.
46
        (gfc_conv_intrinsic_merge): Call it here to actually do the check.
47
 
48
2008-12-15  Mikael Morin  
49
 
50
        PR fortran/38487
51
        * dependency.c (gfc_is_data_pointer): New function.
52
        (gfc_check_argument_var_dependency): Disable the warning
53
        in the pointer case.
54
        (gfc_check_dependency): Use gfc_is_data_pointer.
55
 
56
2008-12-15  Mikael Morin  
57
 
58
        PR fortran/38113
59
        * error.c (show_locus): Start counting columns at 0.
60
        * primary.c (match_actual_arg): Eat spaces
61
        before copying the current locus.
62
        (match_variable): Copy the locus before matching.
63
 
64
2008-12-14  Paul Thomas  
65
 
66
        PR fortran/35937
67
        * trans-expr.c (gfc_finish_interface_mapping): Fold convert the
68
        character length to gfc_charlen_type_node.
69
 
70
2008-12-12  Daniel Franke  
71
 
72
        PR fortran/36355
73
        * check.c (gfc_check_matmul): Fixed error message for invalid
74
        types to correctly identify the offending argument, added check
75
        for mismatching types.
76
 
77
2008-12-11  Richard Guenther  
78
 
79
        * Make-lang.in (install-finclude-dir): Use correct mode argument
80
        for mkinstalldirs.
81
 
82
2008-12-09  Daniel Franke  
83
 
84
        PR fortran/36376
85
        PR fortran/37468
86
        * lang-specs.h: Pass on -i* options to f951 to (probably) report
87
        them as unknown. Duplicate gcc.c (cpp_options), but omit
88
        -fpch-preprocess on -save-temps.
89
 
90
2008-12-09  Daniel Franke  
91
 
92
        PR fortran/36457
93
        * lang.opt: Added option idirafter.
94
        * cpp.h (gfc_cpp_add_include_path_after): New prototype.
95
        * cpp.c (gfc_cpp_handle_option): Recognize and handle OPT_dirafter.
96
        (gfc_cpp_add_include_path_after): New, adds user-defined search path
97
        after any other paths.
98
        * invoke.texi (idirafter): New.
99
        (no-range-check): Fixed entry in option-index.
100
 
101
2008-12-09  Mikael Morin  
102
 
103
        PR fortran/37469
104
        * expr.c (find_array_element): Simplify array bounds.
105
        Assert that both bounds are constant expressions.
106
 
107
2008-12-09  Mikael Morin  
108
 
109
        PR fortran/35983
110
        * trans-expr.c (gfc_trans_subcomponent_assign):
111
        Add se's pre and post blocks to current block.
112
        (gfc_trans_structure_assign): Remove specific handling
113
        of C_NULL_PTR and C_NULL_FUNPTR.
114
 
115
2008-12-06  Jerry DeLisle  
116
 
117
        PR fortran/38425
118
        * io.c (check_io_constraints): Check constraints on REC=, POS=, and
119
        internal unit with POS=. Fix punctuation on a few error messages.
120
 
121
2008-12-06  Janus Weil  
122
 
123
        PR fortran/38415
124
        * expr.c (gfc_check_pointer_assign): Added a check for abstract
125
        interfaces in procedure pointer assignments, removed check involving
126
        gfc_compare_interfaces until PR38290 is fixed completely.
127
 
128
2008-12-05  Jerry DeLisle  
129
 
130
        PR fortran/38291
131
        * io.c (match_dt_element): Use dt->pos in matcher.
132
        (gfc_free_dt): Free dt->pos after use.
133
        (gfc_resolve_dt): Use dt->pos in resolution of stream position tag.
134
 
135
2008-12-05  Sebastian Pop  
136
 
137
        PR bootstrap/38262
138
        * Make-lang.in (f951): Add BACKENDLIBS, remove GMPLIBS.
139
 
140
2008-12-02  Jakub Jelinek  
141
            Diego Novillo  
142
 
143
        * Make-lang.in (install-finclude-dir): Use mkinstalldirs
144
        and don't remove the finclude directory beforehand.
145
 
146
2008-12-02  Janus Weil  
147
 
148
        PR fortran/36704
149
        PR fortran/38290
150
        * decl.c (match_result): Result may be a standard variable or a
151
        procedure pointer.
152
        * expr.c (gfc_check_pointer_assign): Additional checks for procedure
153
        pointer assignments.
154
        * primary.c (gfc_match_rvalue): Bugfix for procedure pointer
155
        assignments.
156
        * resolve.c (resolve_function): Check for attr.subroutine.
157
        * symbol.c (check_conflict): Addtional checks for RESULT statements.
158
        * trans-types.c (gfc_sym_type,gfc_get_function_type): Support procedure
159
        pointers as function result.
160
 
161
2008-12-01  Mikael Morin  
162
 
163
        PR fortran/38252
164
        * parse.c (parse_spec): Skip statement order check in case
165
        of a CONTAINS statement.
166
 
167
2008-11-30  Daniel Kraft  
168
 
169
        PR fortran/37779
170
        * gfortran.h (struct gfc_entry_list): Fixed typo in comment.
171
        * resolve.c (is_illegal_recursion): New method.
172
        (resolve_procedure_expression): Use new is_illegal_recursion instead of
173
        direct check and handle function symbols correctly.
174
        (resolve_actual_arglist): Removed useless recursion check.
175
        (resolve_function): Use is_illegal_recursion instead of direct check.
176
        (resolve_call): Ditto.
177
 
178
2008-11-29  Eric Botcazou  
179
 
180
        * trans-array.c (gfc_conv_array_parameter): Guard union access.
181
 
182
2008-11-29  Janus Weil  
183
            Mikael Morin 
184
 
185
        PR fortran/38289
186
        PR fortran/38290
187
        * decl.c (match_procedure_decl): Handle whitespaces.
188
        * resolve.c (resolve_specific_s0): Bugfix in check for intrinsic
189
        interface.
190
 
191
2008-11-25  H.J. Lu  
192
 
193
        * module.c (gfc_dump_module): Report error on unlink only if
194
        errno != ENOENT.
195
 
196
2008-11-25  Mikael Morin  
197
 
198
        PR fortran/36463
199
        * expr.c (replace_symbol): Don't replace the symtree
200
        if the expresion is an intrinsic function. Don't create
201
        non-existent symtrees.  Use symbol's name instead of symtree's,
202
        different in case of module procedure dummy arguments.
203
 
204
2008-11-25  Jan Kratochvil  
205
 
206
        PR fortran/38248
207
        * module.c (gfc_dump_module): Check rename/unlink syscalls errors.
208
 
209
2008-11-25  Eric Botcazou  
210
 
211
        PR fortran/37319
212
        * parse.c (match_deferred_characteristics): Make sure 'name' is
213
        initialized before reading it.
214
 
215
2008-11-24  Jerry DeLisle  
216
 
217
        PR fortran/37803
218
        * arith.c (gfc_check_real_range): Add mpfr_check_range.
219
        * simplify.c (gfc_simplify_nearest): Add mpfr_check_range.
220
 
221
2008-11-24  Mikael Morin  
222
 
223
        PR fortran/38184
224
        * simplify.c (is_constant_array_expr): Return true instead of false
225
        if the array constructor is empty.
226
 
227
2008-11-24  Daniel Kraft  
228
 
229
        PR fortran/37779
230
        * resolve.c (resolve_procedure_expression): New method.
231
        (resolve_variable): Call it.
232
        (resolve_actual_arglist): Call gfc_resolve_expr for procedure arguments.
233
 
234
2008-11-24  Paul Thomas  
235
 
236
        PR fortran/34820
237
        * trans-expr.c (gfc_conv_function_call): Remove all code to
238
        deallocate intent out derived types with allocatable
239
        components.
240
        (gfc_trans_assignment_1): An assignment from a scalar to an
241
        array of derived types with allocatable components, requires
242
        a deep copy to each array element and deallocation of the
243
        converted rhs expression afterwards.
244
        * trans-array.c : Minor whitespace.
245
        * trans-decl.c (init_intent_out_dt): Add code to deallocate
246
        allocatable components of derived types with intent out.
247
        (generate_local_decl): If these types are unused, set them
248
        referenced anyway but allow the uninitialized warning.
249
 
250
        PR fortran/34143
251
        * trans-expr.c (gfc_trans_subcomponent_assign): If a conversion
252
        expression has a null data pointer argument, nullify the
253
        allocatable component.
254
 
255
        PR fortran/32795
256
        * trans-expr.c (gfc_trans_subcomponent_assign): Only nullify
257
        the data pointer if the source is not a variable.
258
 
259
2008-11-23  Paul Thomas  
260
 
261
        PR fortran/37735
262
        * trans-array.c (structure_alloc_comps): Do not duplicate the
263
        descriptor if this is a descriptorless array!
264
 
265
2008-11-12  Tobias Burnus  
266
 
267
        PR fortran/38160
268
        * trans-types.c (gfc_validate_c_kind): Remove function.
269
        * decl.c (gfc_match_kind_spec): Add C kind parameter check.
270
        (verify_bind_c_derived_type): Remove gfc_validate_c_kind call.
271
        (verify_c_interop_param): Update call.
272
        * gfortran.h (verify_bind_c_derived_type): Update prototype.
273
        (gfc_validate_c_kind): Remove.
274
        * symbol.c (verify_bind_c_derived_type): Update verify_c_interop call.
275
        * resolve.c (gfc_iso_c_func_interface): Ditto.
276
 
277
2008-11-22  Jakub Jelinek  
278
 
279
        PR libfortran/37839
280
        * trans-io.c (gfc_build_io_library_fndecls): Decrease pad size back
281
        to 16 pointers plus 32 integers.  Don't use max integer kind
282
        alignment, only gfc_intio_kind's alignment.
283
        (gfc_trans_inquire): Only set flags2 if mask2 is non-zero.
284
        * ioparm.def: Fix order, bitmasks and types of inquire round, sign
285
        and pending fields.  Move u in dt before id.
286
        * io.c (gfc_free_inquire): Free decimal and size exprs.
287
        (match_inquire_element): Match size instead of matching blank twice.
288
        (gfc_resolve_inquire): Resolve size.
289
 
290
2008-11-20  Jakub Jelinek  
291
 
292
        PR middle-end/29215
293
        * trans-array.c (trans_array_constructor_value,
294
        gfc_build_constant_array_constructor): Fill in TREE_PURPOSE.
295
 
296
        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use
297
        gfc_index_one_node.
298
        (gfc_conv_intrinsic_size): Use gfc_index_{zero,one}_node.
299
 
300
        PR fortran/38181
301
        * trans-intrinsic.c (gfc_conv_intrinsic_size): Inline 2 argument
302
        size if the second argument is not optional and one argument size
303
        for rank 1 arrays.
304
 
305
2008-11-19  Paul Thomas  
306
 
307
        PR fortran/38171
308
        * module.c (load_equiv): Regression fix; check that equivalence
309
        members come from the same module only.
310
 
311
2008-11-16  Mikael Morin 
312
 
313
        PR fortran/35681
314
        * dependency.c (gfc_check_argument_var_dependency): Add
315
        elemental check flag. Issue a warning if we find a dependency
316
        but don't generate a temporary. Add the case of an elemental
317
        function call as actual argument to an elemental procedure.
318
        Add the case of an operator expression as actual argument
319
        to an elemental procedure.
320
        (gfc_check_argument_dependency): Add elemental check flag.
321
        Update calls to gfc_check_argument_var_dependency.
322
        (gfc_check_fncall_dependency): Add elemental check flag.
323
        Update call to gfc_check_argument_dependency.
324
        * trans-stmt.c (gfc_trans_call): Make call to
325
        gfc_conv_elemental_dependencies unconditional, but with a flag
326
        whether we should check dependencies between variables.
327
        (gfc_conv_elemental_dependencies): Add elemental check flag.
328
        Update call to gfc_check_fncall_dependency.
329
        * trans-expr.c (gfc_trans_arrayfunc_assign): Update call to
330
        gfc_check_fncall_dependency.
331
        * resolve.c (find_noncopying_intrinsics): Update call to
332
        gfc_check_fncall_dependency.
333
        * dependency.h (enum gfc_dep_check): New enum.
334
        (gfc_check_fncall_dependency): Update prototype.
335
 
336
2008-11-16  Mikael Morin  
337
 
338
        PR fortran/37992
339
        * gfortran.h (gfc_namespace): Added member old_cl_list,
340
        backup of cl_list.
341
        (gfc_free_charlen): Added prototype.
342
        * symbol.c (gfc_free_charlen): New function.
343
        (gfc_free_namespace): Use gfc_free_charlen.
344
        * parse.c (next_statement): Backup gfc_current_ns->cl_list.
345
        (reject_statement): Restore gfc_current_ns->cl_list.
346
        Free cl_list's elements before dropping them.
347
 
348
2008-11-16  Tobias Burnus  
349
 
350
        PR fortran/38095
351
        * trans-expr.c (gfc_map_intrinsic_function): Fix pointer access.
352
 
353
2008-11-16  Paul Thomas  
354
 
355
        PR fortran/38119
356
        * trans-array.c (gfc_trans_create_temp_array): Set the
357
        loop->from to zero and the renormalisation of loop->to for all
358
        dimensions.
359
 
360
2008-11-16  Paul Thomas  
361
 
362
        PR fortran/37926
363
        * trans-expr.c (gfc_free_interface_mapping): Null sym->formal
364
        (gfc_add_interface_mapping): Copy the pointer to the formal
365
        arglist, rather than using copy_formal_args - fixes regression.
366
 
367
2008-11-15  Paul Thomas  
368
 
369
        PR fortran/37926
370
        * trans-expr.c (gfc_add_interface_mapping): Transfer the formal
371
        arglist and the always_explicit attribute if the dummy arg is a
372
        procedure.
373
 
374
2008-11-14  Jerry DeLisle  
375
 
376
        PR fortran/37988
377
        * io.c (enum format_token): For readability replace FMT_POS with FMT_T,
378
        FMT_TL, and FMT_TR.  (format_lex): Use new enumerators. (check_format):
379
        Add check for missing positive integer.
380
 
381
2008-10-14  Paul Thomas  
382
 
383
        PR fortran/38033
384
        * trans-array.c (gfc_trans_create_temp_array): Stabilize the
385
        'to' expression.
386
        (gfc_conv_loop_setup): Use the end expression for the loop 'to'
387
        if it is available.
388
 
389
2008-11-12  Jakub Jelinek  
390
 
391
        PR target/35366
392
        PR fortran/33759
393
        * trans-const.c (gfc_conv_constant_to_tree): Warn when
394
        converting an integer outside of LOGICAL's range to
395
        LOGICAL.
396
        * trans-intrinsic.c (gfc_conv_intrinsic_function,
397
        gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer):
398
        Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as
399
        argument of another TRANSFER.
400
 
401
2008-11-12  Tobias Burnus  
402
 
403
        PR fortran/38065
404
        * resolve.c (resolve_fntype): Fix private derived type checking.
405
 
406
2008-11-09  Paul Thomas  
407
 
408
        PR fortran/37836
409
        * intrinsic.c (add_functions): Reference gfc_simplify._minval
410
        and gfc_simplify_maxval.
411
        * intrinsic.h : Add prototypes for gfc_simplify._minval and
412
        gfc_simplify_maxval.
413
        * simplify.c (min_max_choose): New function extracted from
414
        simplify_min_max.
415
        (simplify_min_max): Call it.
416
        (simplify_minval_maxval, gfc_simplify_minval,
417
        gfc_simplify_maxval): New functions.
418
 
419
2008-11-04  Paul Thomas  
420
 
421
        PR fortran/37597
422
        * parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even
423
        when symbol not found.
424
 
425
2008-11-03  Tobias Burnus  
426
 
427
        PR fortran/37821
428
        * cpp.c (gfc_cpp_add_include_path): Use BRACKET.
429
        * scanner.c (add_path_to_list): Argument to add at head.
430
        (gfc_add_include_path): Add new argument.
431
        (gfc_add_intrinsic_modules_path) Update call.
432
        (load_file): Print filename/line in the error message.
433
        * gfortran.h (gfc_add_include_path): Update prototype.
434
        * options.c (gfc_post_options,gfc_handle_module_path_options,
435
        gfc_handle_option): Update call.
436
        * lang-spec.h (F951_OPTIONS): Don't insert include path twice.
437
 
438
        * arith.c (arith_error): Add -fno-range-error to the message.
439
 
440
2008-11-03  Paul Thomas  
441
 
442
        PR fortran/37445
443
        * resolve.c (resolve_actual_arglist ): Correct comparison of
444
        FL_VARIABLE with e->expr_type.
445
        (resolve_call): Check that host association is correct.
446
        (resolve_actual_arglist ): Remove return is old_sym is use
447
        associated.  Only reparse expression if old and new symbols
448
        have different types.
449
 
450
        PR fortran/PR35769
451
        * resolve.c (gfc_resolve_assign_in_forall): Change error to a
452
        warning.
453
 
454
2008-11-01  Janus Weil  
455
 
456
        PR fortran/36426
457
        * expr.c (replace_symbol): Replace all symbols which lie in the
458
        formal namespace of the interface and copy their attributes.
459
        * resolve.c (resolve_symbol): Add charlen to namespace.
460
 
461
2008-11-01  Steven G. Kargl  
462
 
463
        PR fortran/19925
464
        * trans-array.c (gfc_trans_array_constructor_value): Fix comment.
465
        (gfc_conv_array_initializer): Convert internal_error() to gfc_error_now.
466
        * array.c: Remove GFC_MAX_AC_EXPAND macro.
467
        (gfc_expand_constructor): Use gfc_option.flag_max_array_constructor.
468
        * gfortran.h (gfc_option): Add flag_max_array_constructor member.
469
        * lang.opt: Add -fmax-array-constructor option.
470
        * expr.c (gfc_match_init_expr): Fix error message to mention new option.
471
        * invoke.texi: Document new option.
472
        * options.c (gfc_init_options): Set default value for new option.
473
        (gfc_handle_option): Deal with commandline.
474
 
475
2008-11-01  Daniel Kraft  
476
 
477
        PR fortran/35681
478
        * gfortran.h (struct gfc_code): New field `resolved_isym'.
479
        * trans.h (gfc_build_memcpy_call): Made public.
480
        * trans-array.h (gfc_trans_create_temp_array): New argument `initial'.
481
        * intrinsic.c (gfc_intrinsic_sub_interface): Set resolved_isym.
482
        * iresolve.c (create_formal_for_intents): New helper method.
483
        (gfc_resolve_mvbits): Put dummy formal arglist on resolved_sym.
484
        * resolve.c (resolve_call): Initialize resolved_isym to NULL.
485
        * trans-array.c (gfc_trans_allocate_array_storage): New argument
486
        `initial' to allow initializing the allocated storage to some initial
487
        value copied from another array.
488
        (gfc_trans_create_temp_array): Allow initialization of the temporary
489
        with a copy of some other array by using the new extension.
490
        (gfc_trans_array_constructor): Pass NULL_TREE for initial argument.
491
        (gfc_conv_loop_setup): Ditto.
492
        * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Ditto.
493
        * trans-expr.c (gfc_conv_function_call): Ditto.
494
        (gfc_build_memcpy_call): Made public.
495
        * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize created
496
        temporary for INTENT(INOUT) arguments to the value of the mirrored
497
        array and clean up the temporary as very last intructions in the created
498
        block.
499
        * trans.c (gfc_trans_code): For EXEC_CALL, see if we have a MVBITS call
500
        and enable elemental dependency checking if we have.
501
 
502
2008-11-01  Janus Weil  
503
 
504
        PR fortran/36322
505
        PR fortran/36463
506
        * gfortran.h: New function gfc_expr_replace_symbols.
507
        * decl.c (match_procedure_decl): Increase reference count for interface.
508
        * expr.c: New functions replace_symbol and gfc_expr_replace_symbols.
509
        * resolve.c (resolve_symbol): Correctly copy array spec and char len
510
        of PROCEDURE declarations from their interface.
511
        * symbol.c (gfc_get_default_type): Enhanced error message.
512
        (copy_formal_args): Call copy_formal_args recursively for arguments.
513
        * trans-expr.c (gfc_conv_function_call): Bugfix.
514
 
515
2008-11-01  Dennis Wassel  
516
 
517
        PR fortran/37159
518
        * fortran/check.c (gfc_check_random_seed): Check PUT size
519
        at compile time.
520
 
521
2008-10-31  Mikael Morin  
522
 
523
        PR fortran/35840
524
        * expr.c (gfc_reduce_init_expr): New function, containing checking code
525
        from gfc_match_init_expr, so that checking can be deferred.
526
        (gfc_match_init_expr): Use gfc_reduce_init_expr.
527
        * io.c (check_io_constraints): Use gfc_reduce_init_expr instead of
528
        checking that the expression is a constant.
529
        * match.h (gfc_reduce_init_expr): Prototype added.
530
 
531
2008-10-31  Mikael Morin  
532
 
533
        PR fortran/35820
534
        * resolve.c (gfc_count_forall_iterators): New function.
535
        (gfc_resolve_forall): Use gfc_count_forall_iterators to evaluate
536
        the needed memory amount to allocate. Don't forget to free allocated
537
        memory.  Add an assertion to check for memory leaks.
538
 
539
2008-10-30  Steven G. Kargl  
540
 
541
        PR fortran/37930
542
        * fortran/arith.c (gfc_mpfr_to_mpz):  Test for NaN and Inf values.
543
        Remove stale comment and kludge code for MPFR 2.0.1 and older.
544
        (gfc_real2int): Error on conversion of NaN or Inf.
545
        (gfc_complex2int): Ditto.
546
        * fortran/arith.h: Update mpfr_to_mpz prototype.
547
        * fortran/simplify.c (gfc_simplify_ceiling, gfc_simplify_floor,
548
        gfc_simplify_ifix, gfc_simplify_idint, simplify_nint): Update function
549
        calls to include locus.
550
 
551
2008-10-30  Mikael Morin  
552
 
553
        PR fortran/37903
554
        * trans-array.c (gfc_trans_create_temp_array): If n is less
555
        than the temporary dimension, assert that loop->from is
556
        zero (reverts to earlier versions). If there is at least one
557
        null loop->to[n], it is a callee allocated array so set the
558
        size to NULL and break.
559
        (gfc_trans_constant_array_constructor): Set the offset to zero.
560
        (gfc_trans_array_constructor): Remove loop shifting around the
561
        temporary creation.
562
        (gfc_conv_loop_setup): Prefer zero-based descriptors if
563
        possible.  Calculate the translation from loop variables to
564
        array indices if an array constructor.
565
 
566
2008-10-30  Mikael Morin  
567
 
568
        PR fortran/37749
569
        * trans-array.c (gfc_trans_create_temp_array): If size is NULL
570
        use the array bounds for loop->to.
571
 
572
2008-10-28  Tobias Burnus  
573
 
574
        * intrinsic.texi: Update OpenMP section for OMPv3.
575
 
576
2008-10-24  Jakub Jelinek  
577
 
578
        * Make-lang.in (check-f95-subtargets, check-fortran-subtargets): New
579
        aliases for check-gfortran-subtargets.
580
        (lang_checks_parallelized): Add check-gfortran.
581
        (check_gfortran_parallelize): New variable.
582
 
583
2008-10-19  Paul Thomas  
584
 
585
        PR fortran/37723
586
        * dependency.c (gfc_dep_resolver ): If we find equal array
587
        element references, go on to the next reference.
588
 
589
2008-10-16  Daniel Kraft  
590
 
591
        * resolve.c (resolve_elemental_actual): Handle calls to intrinsic
592
        subroutines correctly.
593
 
594
2008-10-13  Kaveh R. Ghazi  
595
 
596
        * simplify.c: Remove MPFR_VERSION_NUM(2,3,0) conditionals.
597
 
598
2008-10-12  Daniel Kraft  
599
 
600
        PR fortran/37688
601
        * expr.c (gfc_expr_check_typed): Extend permission of untyped
602
        expressions to both top-level variable and basic arithmetic expressions.
603
 
604
2008-10-12  Paul Thomas  
605
 
606
        PR fortran/37787
607
        * dependency.c (gfc_are_equivalenced_arrays): Look in symbol
608
        namespace rather than current namespace, if it is available.
609
 
610
2008-10-12  Steven G. Kargl  
611
 
612
        PR fortran/37792
613
        * fortran/resolve.c (resolve_fl_variable): Simplify the
614
        initializer if there is one.
615
 
616
2008-10-11  Paul Thomas  
617
 
618
        PR fortran/37794
619
        * module.c (check_for_ambiguous): Remove redundant code.
620
 
621
2008-10-09  Daniel Kraft  
622
 
623
        PR fortran/35723
624
        * gfortran.h (gfc_suppress_error): Removed from header.
625
        (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
626
        * array.c (gfc_array_size): Use new gfc_push/pop_suppress_errors
627
        instead of directly changing gfc_suppress_error.
628
        * intrinsic.c (gfc_intrinsic_func_interface): Ditto.
629
        (gfc_intrinsic_sub_interface): Ditto.
630
        * error.c (suppress_errors): Made static from `gfc_suppress_error'.
631
        (gfc_push_suppress_errors), (gfc_pop_suppress_errors): New methods.
632
        (gfc_notify_std), (gfc_error): Use new static name of global.
633
        * expr.c (check_arglist), (check_references): New methods.
634
        (check_restricted): Check arglists and references of EXPR_FUNCTIONs
635
        and EXPR_VARAIBALEs, respectively.  Allow PARAMETER symbols.
636
 
637
2008-10-07  Jakub Jelinek  
638
 
639
        * f95-lang.c (poplevel): Don't clear BLOCK_VARS if functionbody.
640
        * trans-decl.c (gfc_build_qualified_array): Build accurate debug type
641
        even if nest.
642
        (build_entry_thunks, gfc_generate_function_code,
643
        gfc_generate_constructors): Ensure DECL_SAVED_TREE is a BIND_EXPR
644
        with DECL_INITIAL as its BLOCK.
645
 
646
2008-10-05  Paul Thomas  
647
 
648
        PR fortran/35680
649
        * gfortran.h : Add 'error' bit field to gfc_expr structure.
650
        * expr.c (check_inquiry): When checking a restricted expression
651
        check that arguments are either variables or restricted.
652
        (check_restricted): Do not emit error if the expression has
653
        'error' set.  Clean up detection of host-associated variable.
654
 
655
2008-10-05  Daniel Kraft  
656
 
657
        PR fortran/37638
658
        * gfortran.h (struct gfc_typebound_proc): New flag `error'.
659
        * resolve.c (update_arglist_pass): Added assertion.
660
        (update_compcall_arglist): Fail early for erraneous procedures to avoid
661
        confusion later.
662
        (resolve_typebound_generic_call): Ignore erraneous specific targets
663
        and added assertions.
664
        (resolve_typebound_procedure): Set new `error' flag.
665
 
666
2008-10-04  Paul Thomas  
667
 
668
        PR fortran/37706
669
        * module.c (load_equiv): Check the module before negating the
670
        unused flag.
671
 
672
2008-10-02  Steven Bosscher  
673
 
674
        PR fortran/37635
675
        * intrinsic.c (add_functions): Add LEADZ and TRAILZ as generics.
676
        * intrinsic.h (gfc_simplify_leadz, gfc_simplify_trailz): New protos.
677
        * gfortran.h : (GFC_ISYM_LEADZ, GFC_ISYM_TRAILZ): New.
678
        * f95-lang (gfc_init_builtin_functions): Add BUILT_IN_CLZ,
679
        BUILT_IN_CLZL, BUILT_IN_CLZLL, BUILT_IN_CTZ, BUILT_IN_CTZL, and
680
        BUILT_IN_CTZLL.
681
        * trans-intrinsic.c (gfc_conv_intrinsic_leadz,
682
        gfc_conv_intrinsic_trails): New code-generation functions for LEADZ
683
        and TRAILZ intrinsics.
684
        (gfc_conv_intrinsic_function): Use them
685
        * intrinsic.texi: Add documentation for LEADZ and TRAILZ.
686
        * simplify.c (gfc_simplify_leadz, gfc_simplify_trailz): New functions.
687
 
688
2008-09-30  Janus Weil  
689
 
690
        PR fortran/36592
691
        * symbol.c (check_conflict): If a symbol in a COMMON block is a
692
        procedure, it must be a procedure pointer.
693
        (gfc_add_in_common): Symbols in COMMON blocks may be variables or
694
        procedure pointers.
695
        * trans-types.c (gfc_sym_type): Make procedure pointers in COMMON
696
        blocks work.
697
 
698
2008-09-25  Jerry DeLisle  
699
 
700
        PR fortran/37498
701
        * trans-io.c (build_dt): Revert previous patch..
702
        * ioparm.def: Delete IOPARM_dt_f2003.
703
 
704
2008-09-25  Tobias Burnus  
705
 
706
        PR fortran/37504
707
        * expr.c (gfc_check_pointer_assign): Allow assignment of
708
        protected pointers.
709
        * match.c (gfc_match_assignment,gfc_match_pointer_assignment):
710
        Remove unreachable code.
711
 
712
2008-09-24  Tobias Burnus  
713
 
714
        * options.c (set_default_std_flags,gfc_init_options):
715
        Add comment: keep in sync with libgfortran.
716
 
717
2008-09-24  Tobias Burnus  
718
 
719
        PR fortran/37626
720
        * trans-array.c (gfc_trans_deferred_array): Don't auto-deallocate
721
        result variables.
722
 
723
2008-09-23  Daniel Kraft  
724
 
725
        PR fortran/37588
726
        * gfortran.h (gfc_compare_actual_formal): Removed, made private.
727
        (gfc_arglist_matches_symbol): New method.
728
        * interface.c (compare_actual_formal): Made static.
729
        (gfc_procedure_use): Use new name of compare_actual_formal.
730
        (gfc_arglist_matches_symbol): New method.
731
        (gfc_search_interface): Moved code partially to new
732
        gfc_arglist_matches_symbol.
733
        * resolve.c (resolve_typebound_generic_call): Resolve actual arglist
734
        before checking against formal and use new gfc_arglist_matches_symbol
735
        for checking.
736
        (resolve_compcall): Set type-spec of generated expression.
737
 
738
2008-09-23  Tobias Burnus  
739
 
740
        PR fortran/37580
741
        * expr.c (gfc_check_pointer_assign): Add checks for pointer
742
        remapping.
743
 
744
2008-09-22  Jerry DeLisle  
745
 
746
        PR fortran/37498
747
        * trans-io.c (gfc_build_io_library_fndecls): Bump pad size.
748
        (build_dt): Set mask bit for IOPARM_dt_f2003.
749
        * ioparm.def: Add IOPARM_dt_f2003.
750
 
751
2008-09-22  Janus Weil  
752
 
753
        PR fortran/37486
754
        * gfortran.h (gfc_option_t): New members flag_align_commons and
755
        warn_align_commons.
756
        * lang.opt: New options falign-commons and Walign-commons.
757
        * invoke.texi: Documentation for new options.
758
        * options.c (gfc_init_options): Initialize new options.
759
        (gfc_handle_options): Handle new options.
760
        * trans-common.c (translate_common): Implement new options.
761
        (gfc_trans_common): Set correct locus.
762
 
763
2008-09-21  Paul Thomas  
764
 
765
        PR fortran/37583
766
        * decl.c (scalarize_intrinsic_call): Both subroutines and
767
        functions can give a true for get_proc_mame's last argument so
768
        remove the &&gfc_current_ns->proc_name->attr.function.
769
        resolve.c (resolve_actual_arglist): Add check for recursion by
770
        reference to procedure as actual argument.
771
 
772
2008-09-21  Daniel Kraft  
773
 
774
        PR fortran/35846
775
        * trans.h (gfc_conv_string_length): New argument `expr'.
776
        * trans-expr.c (flatten_array_ctors_without_strlen): New method.
777
        (gfc_conv_string_length): New argument `expr' that is used in a new
778
        special case handling if cl->length is NULL.
779
        (gfc_conv_subref_array_arg): Pass expr to gfc_conv_string_length.
780
        * trans-array.c (gfc_conv_expr_descriptor): Ditto.
781
        (gfc_trans_auto_array_allocation): Pass NULL as new expr.
782
        (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
783
        (gfc_trans_deferred_array): Ditto.
784
        (gfc_trans_array_constructor): Save and restore old values of globals
785
        used for bounds checking.
786
        * trans-decl.c (gfc_trans_dummy_character): Ditto.
787
        (gfc_trans_auto_character_variable): Ditto.
788
 
789
2008-09-21  Daniel Kraft  
790
 
791
        * decl.c (match_procedure_in_type): Changed misleading error message
792
        for not yet implemented PROCEDURE(interface) syntax.
793
 
794
2008-09-18  Paul Thomas  
795
 
796
       PR fortran/35945
797
       * resolve.c (resolve_fl_variable_derived):  Remove derived type
798
       comparison for use associated derived types.  Host association
799
       of a derived type will not arise if there is a local derived type
800
       whose use name is the same.
801
 
802
       PR fortran/36700
803
       * match.c (gfc_match_call):  Use the existing symbol even if
804
       it is a function.
805
 
806
2008-09-18  Daniel Kraft  
807
 
808
        PR fortran/37507
809
        * trans.h (gfc_trans_runtime_error): New method.
810
        (gfc_trans_runtime_error_vararg): New method.
811
        (gfc_allocate_array_with_status): New argument `expr' for locus/varname.
812
        (gfc_deallocate_array_with_status): Ditto.
813
        * trans-array.h (gfc_array_deallocate): Ditto.
814
        * trans.c (gfc_trans_runtime_error): New method.
815
        (gfc_trans_runtime_error_vararg): New method, moved parts of the code
816
        from gfc_trans_runtime_check here.
817
        (gfc_trans_runtime_error_check): Moved code partly to new method.
818
        (gfc_call_malloc): Fix tab-indentation.
819
        (gfc_allocate_array_with_status): New argument `expr' and call
820
        gfc_trans_runtime_error for error reporting to include locus.
821
        (gfc_deallocate_with_status): Ditto.
822
        * trans-stmt.c (gfc_trans_deallocate): Pass expr as new argument.
823
        * trans-array.c (gfc_array_allocate): Ditto.
824
        (gfc_array_deallocate): New argument `expr', passed on.
825
        (gfc_trans_dealloc_allocated): Pass NULL for expr.
826
        * trans-openmp.c (gfc_omp_clause_default): Ditto.
827
 
828
2008-09-18  Paul Thomas  
829
 
830
        PR fortran/37274
831
        PR fortran/36374
832
        * module.c (check_for_ambiguous): New function to test loaded
833
        symbol for ambiguity with fixup symbol.
834
        (read_module): Call check_for_ambiguous.
835
        (write_symtree): Do not write the symtree for symbols coming
836
        from an interface body.
837
 
838
        PR fortran/36374
839
        * resolve.c (count_specific_procs ): New function to count the
840
        number of specific procedures with the same name as the generic
841
        and emit appropriate errors for and actual argument reference.
842
        (resolve_assumed_size_actual): Add new argument no_formal_args.
843
        Correct logic around passing generic procedures as arguments.
844
        Call count_specific_procs from two locations.
845
        (resolve_function): Evaluate and pass no_formal_args.
846
        (resolve call): The same and clean up a bit by using csym more
847
        widely.
848
 
849
        PR fortran/36454
850
        * symbol.c (gfc_add_access): Access can be updated if use
851
        associated and not private.
852
 
853
2008-09-17  Jakub Jelinek  
854
 
855
        PR fortran/37536
856
        * trans-stmt.c (gfc_trans_do): Optimize integer type non-simple
857
        do loop initialization.
858
 
859
2008-09-14  Jerry DeLisle  
860
            Tobias Burnus  
861
 
862
        PR fortran/35840
863
        * io.c (match_vtag): Add tag name to error message.
864
        (match_out_tag): Cleanup whitespace.
865
        (gfc_resolve_dt): Resolve id and async tags.
866
 
867
2008-09-13  Daniel Kraft  
868
 
869
        PR fortran/35770
870
        * primary.c (gfc_match_varspec): Added missing type-spec clearing
871
        after wrong implicit character typing.
872
 
873
2008-09-12  Richard Guenther  
874
 
875
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
876
        build_fold_addr_expr to properly mark the argument
877
        addressable.
878
 
879
2008-09-11  Daniel Kraft  
880
 
881
        PR fortran/36214
882
        * simplify.c (simplify_cmplx): Added linebreak to long line.
883
        * target-memory.c (gfc_convert_boz): Fix indentation.
884
        (gfc_interpret_float): Set mpfr precision to right value before
885
        calling mpfr_init.
886
 
887
2008-09-10  H.J. Lu  
888
 
889
        * expr.c (find_array_element): Reformat comment.
890
 
891
2008-09-10  H.J. Lu  
892
 
893
        * expr.c (find_array_element): Reformat.
894
 
895
2008-09-10  Tobias Burnus  
896
 
897
        PR fortran/37420
898
        * trans-decl.c (get_proc_pointer_decl): Fix -Wunused-variable.
899
 
900
2008-09-09  Daniel Kraft  
901
 
902
        PR fortran/37429
903
        * resolve.c (expression_rank): Added assertion to guard against
904
        EXPR_COMPCALL expressions.
905
        (resolve_compcall): Set expression's rank from the target procedure's.
906
 
907
2008-09-09  Daniel Kraft  
908
 
909
        PR fortran/37411
910
        * trans-array.c (gfc_conv_array_parameter): Added assertion that the
911
        symbol has an array spec.
912
 
913
2008-09-08  Daniel Kraft  
914
 
915
        PR fortran/37199
916
        * trans-expr.c (gfc_add_interface_mapping): Set new_sym->as.
917
        (gfc_map_intrinsic_function): Added checks against NULL bounds in
918
        array specs.
919
 
920
2008-09-08  Tobias Burnus  
921
 
922
        PR fortran/37400
923
        * symbol.c (gfc_set_default_type): Copy char len.
924
 
925
2008-09-06  Steven G. Kargl  
926
 
927
        PR fortran/36153
928
        * fortran/resolve.c (resolve_function): Shortcircuit for SIZE and
929
        UBOUND if 2nd argument is KIND.
930
 
931
2008-09-06  Steven G. Kargl  
932
 
933
        PR fortran/33229
934
        * resolve.c (resolve_function): An intrinsic subroutine should not be
935
        called as a function.
936
 
937
2008-09-05  Daniel Kraft  
938
 
939
        PR fortran/35837
940
        * resolve.c (resolve_types): Restore gfc_current_ns on exit.
941
        * symbol.c (gfc_save_all): Removed blank line.
942
 
943
2008-09-05  Daniel Kraft  
944
 
945
        PR fortran/36746
946
        * primary.c (gfc_match_rvalue): Removed logic to handle implicit
947
        typing to a derived-type if a component reference is found.
948
        (gfc_match_varspec): Moved it here.
949
 
950
2008-09-04  Richard Guenther  
951
 
952
        * trans-array.c (gfc_conv_array_parameter): Use correct types
953
        in building COND_EXPRs.
954
        * trans-expr.c (gfc_conv_missing_dummy): Likewise.
955
        * trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.
956
 
957
2008-09-04  Daniel Kraft  
958
 
959
        * PR fortran/37099
960
        * expr.c (simplify_const_ref): Update expression's character length
961
        when pulling out a substring reference.
962
 
963
2008-09-04  Ian Lance Taylor  
964
 
965
        * symbol.c (generate_isocbinding_symbol): Compare
966
        gfc_notification_std with ERROR rather than FAILURE.
967
        * resolve.c (check_assumed_size_reference): Compare array type
968
        with AR_FULL rather than DIMEN_ELEMENT.
969
        (resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
970
        FL_VARIABLE.
971
 
972
2008-09-01  Jerry DeLisle  
973
 
974
        PR fortran/37228
975
        * io.c (check_format): Allow specifying precision with g0 format.
976
 
977
2008-09-02  Daniel Kraft  
978
 
979
        * gfortran.h (struct gfc_namespace): New member `implicit_loc'.
980
        (gfc_add_abstract): New method.
981
        * decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
982
        (gfc_match_derived_decl): Copy abstract attribute in derived symbol.
983
        * dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
984
        only to allow for ABSTRACT types.
985
        * parse.c (parse_interface): Use new gfc_add_abstract.
986
        * primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
987
        type is constructed.
988
        * resolve.c (resolve_typespec_used): New method.
989
        (resolve_fl_derived): Check type in respect to ABSTRACT attribute and
990
        check that no component is of an ABSTRACT type.
991
        (resolve_symbol): Check that no symbol is of an ABSTRACT type.
992
        (resolve_types): Check IMPLICIT declarations for ABSTRACT types.
993
        * symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
994
        (gfc_add_abstract): New method.
995
 
996
2008-09-01  Daniel Kraft  
997
 
998
        PR fortran/37193
999
        * module.c (read_module): Initialize use_only flag on used symbols.
1000
 
1001
2008-09-01  Daniel Kraft  
1002
 
1003
        * gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
1004
        and section to document the internals of type-bound procedures.
1005
        (gfc_expr): Document EXPR_COMPCALL.
1006
        * gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
1007
        * dump-parse-tree.c (show_compcall): New method.
1008
        (show_expr): Call it for EXPR_COMPCALL.
1009
        (show_typebound), (show_f2k_derived): New methods.
1010
        (show_symbol): Call show_f2k_derived.
1011
        (show_code_node): Handle EXEC_COMPCALL.
1012
        * primary.c (gfc_match_varspec): Don't initialize removed `derived' in
1013
        primary->value.compcall.
1014
 
1015
2008-08-31  Richard Guenther  
1016
 
1017
        * trans-expr.c (gfc_trans_string_copy): Use the correct types
1018
        to compute slen and dlen.
1019
 
1020
2008-08-31  Daniel Kraft  
1021
 
1022
        * gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
1023
        (struct gfc_tbp_generic): New type.
1024
        (struct gfc_typebound_proc): Removed `target' and added union with
1025
        `specific' and `generic' members; new members `overridden',
1026
        `subroutine', `function' and `is_generic'.
1027
        (struct gfc_expr): New members `derived' and `name' in compcall union
1028
        member and changed type of `tbp' to gfc_typebound_proc.
1029
        (gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
1030
        * match.h (gfc_typebound_default_access): New global.
1031
        (gfc_match_generic): New method.
1032
        * decl.c (gfc_match_generic): New method.
1033
        (match_binding_attributes): New argument `generic' and handle it.
1034
        (match_procedure_in_type): Mark matched binding as non-generic.
1035
        * interface.c (gfc_compare_interfaces): Made public.
1036
        (gfc_compare_actual_formal): Ditto.
1037
        (check_interface_1), (compare_parameter): Use new public names.
1038
        (gfc_procedure_use), (gfc_search_interface): Ditto.
1039
        * match.c (match_typebound_call): Set base-symbol referenced.
1040
        * module.c (binding_generic): New global array.
1041
        (current_f2k_derived): New global.
1042
        (mio_typebound_proc): Handle IO of GENERIC bindings.
1043
        (mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
1044
        * parse.c (decode_statement): Handle GENERIC statement.
1045
        (gfc_ascii_statement): Ditto.
1046
        (typebound_default_access), (set_typebound_default_access): Removed.
1047
        (gfc_typebound_default_access): New global.
1048
        (parse_derived_contains): New default-access implementation and handle
1049
        GENERIC statements encountered.
1050
        * primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
1051
        structure and removed check for SUBROUTINE/FUNCTION from here.
1052
        * resolve.c (extract_compcall_passed_object): New method.
1053
        (update_compcall_arglist): Use it.
1054
        (resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
1055
        (resolve_typebound_generic_call): New method.
1056
        (resolve_typebound_call): Check target is a SUBROUTINE and handle calls
1057
        to GENERIC bindings.
1058
        (resolve_compcall): Ditto (check for target being FUNCTION).
1059
        (check_typebound_override): Handle GENERIC bindings.
1060
        (check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
1061
        (resolve_typebound_procedure): Handle GENERIC bindings and set new
1062
        attributes subroutine, function and overridden in gfc_typebound_proc.
1063
        (resolve_fl_derived): Ensure extended type is resolved before the
1064
        extending one is.
1065
        * st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
1066
        * symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.
1067
 
1068
2008-08-29  Jan Hubicka  
1069
 
1070
        * parse.c (parse_interface): Silence uninitialized var warning.
1071
 
1072
2008-08-29  Jakub Jelinek  
1073
 
1074
        * trans.h (struct lang_type): Add span.
1075
        (GFC_TYPE_ARRAY_SPAN): Define.
1076
        * trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
1077
        copy TREE_STATIC from decl to span instead of setting it
1078
        unconditionally, set DECL_ARTIFICIAL, fix type of initializer
1079
        and set GFC_TYPE_ARRAY_SPAN on decl's type.
1080
        * trans-types.c (gfc_get_array_descr_info): If
1081
        GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.
1082
 
1083
        * trans-decl.c (check_constant_initializer,
1084
        gfc_emit_parameter_debug_info): New functions.
1085
        (gfc_generate_module_vars, gfc_generate_function_code): Emit
1086
        PARAMETERs and unreferenced variables with initializers into
1087
        debug info.
1088
 
1089
        * gfortran.h (gfc_use_list): Add where field.
1090
        * module.c (use_locus): New static variable.
1091
        (gfc_match_use): Set it.
1092
        (gfc_use_module): Copy it to gfc_use_list's where field.
1093
        * trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
1094
        (gfc_trans_use_stmts): Set backend locus before calling the debug
1095
        hook.  Allow non-VAR_DECLs to be created even for non-external
1096
        module.  Don't emit anything so far for renames from different
1097
        modules.
1098
 
1099
        PR fortran/24790
1100
        * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
1101
        PARM_DECLs with pointer or reference type.
1102
 
1103
        * trans-decl.c (gfc_build_qualified_array): Build non-flat
1104
        array type for debug info purposes.
1105
 
1106
        PR fortran/29635
1107
        PR fortran/23057
1108
        * f95-lang.c (gfc_init_ts): New function.
1109
        (LANG_HOOKS_INIT_TS): Define.
1110
        * gfortran.h (gfc_use_rename): New type, moved from module.c.
1111
        (gfc_get_use_rename): New macro, moved from module.c.
1112
        (gfc_use_list): New type.
1113
        (gfc_get_use_list): New macro.
1114
        (gfc_namespace): Add use_stmts field.
1115
        (gfc_free_use_stmts): New prototype.
1116
        * Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
1117
        * module.c (gfc_use_rename, gfc_get_use_rename): Moved to
1118
        gfortran.h.
1119
        (gfc_use_module): Chain the USE statement info to
1120
        ns->use_stmts.
1121
        (gfc_free_use_stmts): New function.
1122
        * symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
1123
        * trans.h (struct module_htab_entry): New type.
1124
        (gfc_find_module, gfc_module_add_decl): New functions.
1125
        * trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
1126
        the module, adjust DECL_CONTEXTs of module procedures and
1127
        call gfc_module_add_decl for them.
1128
        * trans-common.c (build_common_decl): Set DECL_IGNORED_P
1129
        on the common variable.
1130
        (create_common): Set DECL_IGNORED_P for use associated vars.
1131
        * trans-decl.c: Include debug.h.
1132
        (gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
1133
        modules.
1134
        (build_function_decl): Allow current_function_decl's context
1135
        to be a NAMESPACE_DECL.
1136
        (module_htab, cur_module): New variables.
1137
        (module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
1138
        module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
1139
        functions.
1140
        (gfc_create_module_variable): Adjust DECL_CONTEXTs of module
1141
        variables and types and call gfc_module_add_decl for them.
1142
        (gfc_generate_module_vars): Temporarily set cur_module.
1143
        (gfc_trans_use_stmts): New function.
1144
        (gfc_generate_function_code): Call it.
1145
        (gfc_generate_block_data): Set DECL_IGNORED_P on decl.
1146
        * trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
1147
        and TYPE_CONTEXT of module derived types.
1148
 
1149
2008-08-28  Daniel Kraft  
1150
 
1151
        * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
1152
        (gfc_get_typebound_proc): New macro.
1153
        (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
1154
        (enum gfc_exec_op): New value `EXEC_COMPCALL'.
1155
        (gfc_find_typebound_proc): New argument.
1156
        (gfc_copy_ref), (gfc_match_varspec): Made public.
1157
        * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
1158
        * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
1159
        (gfc_copy_ref): Made public and use new name.
1160
        (simplify_const_ref): Use new name of gfc_copy_ref.
1161
        (simplify_parameter_variable): Ditto.
1162
        (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
1163
        * match.c (match_typebound_call): New method.
1164
        (gfc_match_call): Allow for CALL's to typebound procedures.
1165
        * module.c (binding_passing), (binding_overriding): New variables.
1166
        (expr_types): Add EXPR_COMPCALL.
1167
        (mio_expr): gcc_unreachable for EXPR_COMPCALL.
1168
        (mio_typebound_proc), (mio_typebound_symtree): New methods.
1169
        (mio_f2k_derived): Handle type-bound procedures.
1170
        * primary.c (gfc_match_varspec): Made public and parse trailing
1171
        references to type-bound procedures; new argument `sub_flag'.
1172
        (gfc_match_rvalue): New name and argument of gfc_match_varspec.
1173
        (match_variable): Ditto.
1174
        * resolve.c (update_arglist_pass): New method.
1175
        (update_compcall_arglist), (resolve_typebound_static): New methods.
1176
        (resolve_typebound_call), (resolve_compcall): New methods.
1177
        (gfc_resolve_expr): Handle EXPR_COMPCALL.
1178
        (resolve_code): Handle EXEC_COMPCALL.
1179
        (resolve_fl_derived): New argument to gfc_find_typebound_proc.
1180
        (resolve_typebound_procedure): Ditto and removed not-implemented error.
1181
        * st.c (gfc_free_statement): Handle EXEC_COMPCALL.
1182
        * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
1183
        implement access-checking.
1184
        * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
1185
        on EXPR_COMPCALL.
1186
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
1187
        * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
1188
        intialization of ref->type.
1189
 
1190
2008-08-28  Janus Weil  
1191
 
1192
        PR fortran/37253
1193
        * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
1194
        saving attr.procedure and attr.proc_ptr to the module file.
1195
 
1196
2008-08-25  Daniel Kraft  
1197
 
1198
        * gfortran.h (gfc_find_component): Add new arguments.
1199
        * parse.c (parse_derived_contains): Check if the derived-type containing
1200
        the CONTAINS section is SEQUENCE/BIND(C).
1201
        * resolve.c (resolve_typebound_procedure): Check for name collision with
1202
        components.
1203
        (resolve_fl_derived): Check for name collision with inherited
1204
        type-bound procedures.
1205
        * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'.
1206
        (gfc_add_component): Adapt for new arguments.
1207
        * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto.
1208
 
1209
2008-08-24  Tobias Burnus  
1210
 
1211
        PR fortran/37201
1212
        * decl.c (verify_bind_c_sym): Reject array/string returning
1213
        functions.
1214
 
1215
2008-08-24  Tobias Burnus  
1216
 
1217
        PR fortran/37201
1218
        * trans-expr.c (gfc_conv_function_call): Add string_length
1219
        for character-returning bind(C) functions.
1220
 
1221
2008-08-24  Daniel Kraft  
1222
 
1223
        * gfortran.h (gfc_typebound_proc):  New struct.
1224
        (gfc_symtree):  New member typebound.
1225
        (gfc_find_typebound_proc):  Prototype for new method.
1226
        (gfc_get_derived_super_type):  Prototype for new method.
1227
        * parse.h (gfc_compile_state):  New state COMP_DERIVED_CONTAINS.
1228
        * decl.c (gfc_match_procedure):  Handle PROCEDURE inside derived-type
1229
        CONTAINS section.
1230
        (gfc_match_end):  Handle new context COMP_DERIVED_CONTAINS.
1231
        (gfc_match_private):  Ditto.
1232
        (match_binding_attributes), (match_procedure_in_type):  New methods.
1233
        (gfc_match_final_decl):  Rewrote to make use of new
1234
        COMP_DERIVED_CONTAINS parser state.
1235
        * parse.c (typebound_default_access):  New global helper variable.
1236
        (set_typebound_default_access):  New callback method.
1237
        (parse_derived_contains):  New method.
1238
        (parse_derived):  Extracted handling of CONTAINS to new parser state
1239
        and parse_derived_contains.
1240
        * resolve.c (resolve_bindings_derived), (resolve_bindings_result):  New.
1241
        (check_typebound_override), (resolve_typebound_procedure):  New methods.
1242
        (resolve_typebound_procedures):  New method.
1243
        (resolve_fl_derived):  Call new resolving method for typebound procs.
1244
        * symbol.c (gfc_new_symtree):  Initialize new member typebound to NULL.
1245
        (gfc_find_typebound_proc):  New method.
1246
        (gfc_get_derived_super_type):  New method.
1247
 
1248
2008-08-23  Janus Weil  
1249
 
1250
        * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
1251
        fields "pointer", "allocatable", "dimension", "access".
1252
        Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
1253
        * interface.c (gfc_compare_derived_types): Ditto.
1254
        * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
1255
        * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
1256
        gfc_conv_structure): Ditto.
1257
        * symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
1258
        gfc_get_component_attr,verify_bind_c_derived_type,
1259
        generate_isocbinding_symbol): Ditto.
1260
        * decl.c (build_struct): Ditto.
1261
        * dump-parse-tree.c (show_components): Ditto.
1262
        * trans-stmt.c (gfc_trans_deallocate): Ditto.
1263
        * expr.c (gfc_check_assign,gfc_check_pointer_assign,
1264
        gfc_default_initializer): Ditto.
1265
        * module.c (mio_component): Ditto.
1266
        * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
1267
        * resolve.c (has_default_initializer,resolve_structure_cons,
1268
        gfc_iso_c_func_interface,find_array_spec,resolve_ref,
1269
        resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
1270
        resolve_equivalence_derived): Ditto.
1271
        * trans-io.c (transfer_expr): Ditto.
1272
        * parse.c (parse_derived): Ditto.
1273
        * dependency.c (gfc_check_dependency): Ditto.
1274
        * primary.c (gfc_variable_attr): Ditto.
1275
 
1276
2008-08-23  Tobias Burnus  
1277
 
1278
        PR fortran/37076
1279
        * arith.c (gfc_arith_concat): Fix concat of kind=4 strings.
1280
 
1281
2008-08-23  Tobias Burnus  
1282
 
1283
        PR fortran/37025
1284
        * target-memory.c (gfc_interpret_character): Support
1285
        kind=4 characters.
1286
 
1287
2008-08-22  Daniel Kraft  
1288
 
1289
        PR fortran/30239
1290
        * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result
1291
        type is re-declared but neither -pedantic nor -std=f* is given and so
1292
        this is no error.
1293
        * invoke.texi (-Wsurprising): Document this new behaviour.
1294
 
1295
2008-08-22  Daniel Kraft  
1296
 
1297
        * gfortran.h (in_prefix): Removed from this header.
1298
        * match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'.
1299
        * decl.c (in_prefix): Removed from here.
1300
        (gfc_match_prefix): Use new name of `gfc_matching_prefix'.
1301
        * symbol.c (gfc_check_symbol_typed): Ditto.
1302
        * expr.c (check_typed_ns): New helper variable.
1303
        (expr_check_typed_help): New helper method.
1304
        (gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the
1305
        work, fixing a minor problem.
1306
        * match.c (gfc_matching_prefix): New variable.
1307
 
1308
2008-08-22  Daniel Kraft  
1309
 
1310
        PR fortran/32095
1311
        PR fortran/34228
1312
        * gfortran.h (in_prefix): New global.
1313
        (gfc_check_symbol_typed), (gfc_check_expr_typed): New methods.
1314
        * array.c (match_array_element_spec): Check that bounds-expressions
1315
        don't have symbols not-yet-typed in them.
1316
        * decl.c (var_element): Check that variable used is already typed.
1317
        (char_len_param_value): Check that expression does not contain
1318
        not-yet-typed symbols.
1319
        (in_prefix): New global.
1320
        (gfc_match_prefix): Record using `in_prefix' if we're at the moment
1321
        parsing a prefix or not.
1322
        * expr.c (gfc_expr_check_typed): New method.
1323
        * parse.c (verify_st_order): New argument to disable error output.
1324
        (check_function_result_typed): New helper method.
1325
        (parse_spec): Check that the function-result declaration, if given in
1326
        a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are
1327
        parsed.
1328
        * symbol.c (gfc_check_symbol_typed): Check that a symbol already has
1329
        a type associated to it, otherwise use the IMPLICIT rules or signal
1330
        an error.
1331
 
1332
2008-08-21  Manuel Lopez-Ibanez  
1333
 
1334
        * f95-lang.c: Update all calls to pedwarn.
1335
 
1336
2008-08-18  Daniel Franke  
1337
 
1338
        PR fortran/37032
1339
        * gfortran.texi: Document decision on include file handling in
1340
        preprocessed files.
1341
 
1342
2008-08-16  Tobias Burnus  
1343
 
1344
        PR fortran/36825
1345
        * libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7.
1346
 
1347
2008-08-15  Jerry DeLisle  
1348
 
1349
        PR fortran/35863
1350
        * io.c (gfc_match_open): Enable UTF-8 in checks.
1351
        * simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646.
1352
 
1353
2008-08-14  Janus Weil  
1354
 
1355
        PR fortran/36705
1356
        * symbol.c (check_conflict): Move conflict checks for (procedure,save)
1357
        and (procedure,intent) to resolve_fl_procedure.
1358
        * resolve.c (resolve_fl_procedure): Ditto.
1359
 
1360
2008-08-09  Manuel Lopez-Ibanez  
1361
 
1362
        PR 36901
1363
        * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
1364
        'pedwarn0'.
1365
 
1366
2008-08-09  Paul Thomas  
1367
 
1368
        PR fortran/37011
1369
        * symbol.c (gfc_add_extension): New function.
1370
        * decl.c (gfc_get_type_attr_spec): Call it.
1371
        (gfc_match_derived_decl): Set symbol extension attribute from
1372
        attr.extension.
1373
        * gfortran.h : Add prototype for gfc_add_extension.
1374
 
1375
2008-08-08  Manuel Lopez-Ibanez  
1376
 
1377
        PR 28875
1378
        * options.c (set_Wall): Replace set_Wunused by warn_unused.
1379
 
1380
2008-08-08  Daniel Kraft  
1381
 
1382
        * gfortran.h (gfc_finalizer):  Replaced member `procedure' by two
1383
        new members `proc_sym' and `proc_tree' to store the symtree after
1384
        resolution.
1385
        (gfc_find_sym_in_symtree):  Made public.
1386
        * decl.c (gfc_match_final_decl):  Adapted for new member name.
1387
        * interface.c (gfc_find_sym_in_symtree):  Made public.
1388
        (gfc_extend_expr), (gfc_extend_assign):  Changed call accordingly.
1389
        * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
1390
        New methods for module-file IO of f2k_derived.
1391
        (mio_symbol):  Do IO of f2k_derived namespace.
1392
        * resolve.c (gfc_resolve_finalizers):  Adapted for new member name and
1393
        finding the symtree for the symbol here.
1394
        * symbol.c (gfc_free_finalizer):  Adapted for new members.
1395
 
1396
2008-07-30  Ralf Wildenhues  
1397
 
1398
        * gfc-internals.texi: Update to GFDL 1.2.  Do not list GPL as
1399
        Invariant Section.
1400
        * gfortran.texi: Likewise.
1401
        * intrinsic.texi: Do not list GPL as Invariant Section.
1402
        * invoke.texi: Likewise.  Update copyright years.
1403
 
1404
2008-07-29  Paul Thomas  
1405
 
1406
        * trans-expr.c (conv_parent_component_references): New function
1407
        to build missing parent references.
1408
        (gfc_conv_variable): Call it
1409
        * symbol.c (gfc_add_component): Check that component name in a
1410
        derived type extension does not appear in parent.
1411
        (gfc_find_component): For a derived type extension, check if
1412
        the component appears in the parent derived type by calling
1413
        self. Separate errors for private components and private types.
1414
        * decl.c (match_data_constant): Add extra arg to call to
1415
        gfc_match_structure_constructor.
1416
        (check_extended_derived_type): New function to check that a
1417
        parent derived type exists and that it is OK for exension.
1418
        (gfc_get_type_attr_spec): Add extra argument 'name' and return
1419
        it if extends is specified.
1420
        (gfc_match_derived_decl): Match derived type extension and
1421
        build a first component of the parent derived type if OK. Add
1422
        the f2k namespace if not present.
1423
        * gfortran.h : Add the extension attribute.
1424
        * module.c : Handle attribute 'extension'.
1425
        * match.h : Modify prototypes for gfc_get_type_attr_spec and
1426
        gfc_match_structure_constructor.
1427
        * primary.c (build_actual_constructor): New function extracted
1428
        from gfc_match_structure_constructor and modified to call self
1429
        iteratively to build derived type extensions, when f2k named
1430
        components are used.
1431
        (gfc_match_structure_constructor): Do not throw error for too
1432
        many components if a parent type is being handled. Use
1433
        gfc_find_component to generate errors for non-existent or
1434
        private components.  Iteratively call self for derived type
1435
        extensions so that parent constructor is built.  If extension
1436
        and components left over, throw error.
1437
        (gfc_match_rvalue): Add extra arg to call to
1438
        gfc_match_structure_constructor.
1439
 
1440
        * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
1441
        are the same symbol, aliassing does not matter.
1442
 
1443
2008-07-29  Jan Hubicka  
1444
 
1445
        * options.c (gfc_post_options): Do not set flag_no_inline.
1446
 
1447
2008-07-29  Daniel Kraft  
1448
 
1449
        PR fortran/36403
1450
        * trans-intrinsic.c (conv_generic_with_optional_char_arg):  New method
1451
        to append a string-length even if the string argument is missing, e.g.
1452
        for EOSHIFT.
1453
        (gfc_conv_intrinsic_function):  Call the new method for EOSHIFT, PACK
1454
        and RESHAPE.
1455
 
1456
2008-07-28  Kaveh R. Ghazi  
1457
 
1458
        * gfortran.h (try): Remove macro.  Replace try with gfc_try
1459
        throughout.
1460
        * array.c: Likewise.
1461
        * check.c: Likewise.
1462
        * cpp.c: Likewise.
1463
        * cpp.h: Likewise.
1464
        * data.c: Likewise.
1465
        * data.h: Likewise.
1466
        * decl.c: Likewise.
1467
        * error.c: Likewise.
1468
        * expr.c: Likewise.
1469
        * interface.c: Likewise.
1470
        * intrinsic.c: Likewise.
1471
        * intrinsic.h: Likewise.
1472
        * io.c: Likewise.
1473
        * match.h: Likewise.
1474
        * parse.c: Likewise.
1475
        * parse.h: Likewise.
1476
        * resolve.c: Likewise.
1477
        * scanner.c: Likewise.
1478
        * simplify.c: Likewise.
1479
        * symbol.c: Likewise.
1480
        * trans-openmp.c: Likewise.
1481
        * trans-types.c: Likewise.
1482
 
1483
2008-07-28  Tobias Burnus  
1484
 
1485
        * Make-lang.in: Remove -Wno-* from fortran-warn.
1486
 
1487
2008-07-28  Richard Guenther  
1488
 
1489
        Merge from gimple-tuples-branch.
1490
 
1491
        2008-07-18  Aldy Hernandez  
1492
 
1493
        * trans-expr.c: Include gimple.h instead of tree-gimple.h.
1494
        * trans-array.c: Same.
1495
        * trans-openmp.c: Same.
1496
        * trans-stmt.c: Same.
1497
        * f95-lang.c: Same.
1498
        * trans-io.c: Same.
1499
        * trans-decl.c: Same.
1500
        * trans-intrinsic.c: Same.
1501
        * trans.c: Same.  Include tree-iterator.h.
1502
        * Make-lang.in (trans.o): Depend on tree-iterator.h
1503
 
1504
        2008-07-14  Aldy Hernandez  
1505
 
1506
        * trans-array.h (gfc_conv_descriptor_data_set_internal):
1507
        Rename to gfc_conv_descriptor_data_set.
1508
        (gfc_conv_descriptor_data_set_tuples): Remove.
1509
        * trans-array.c (gfc_conv_descriptor_data_get): Rename
1510
        from gfc_conv_descriptor_data_set_internal.
1511
        Remove last argument to gfc_add_modify.
1512
        (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
1513
        gfc_add_modify.
1514
        (gfc_trans_create_temp_array): Same.
1515
        (gfc_conv_array_transpose): Same.
1516
        (gfc_grow_array): Same.
1517
        (gfc_put_offset_into_var): Same.
1518
        (gfc_trans_array_ctor_element): Same.
1519
        (gfc_trans_array_constructor_subarray): Same.
1520
        (gfc_trans_array_constructor_value): Same.
1521
        (gfc_trans_scalarized_loop_end): Same.
1522
        (gfc_array_init_size): Same.
1523
        (gfc_array_allocate): Same.
1524
        (gfc_trans_array_bounds): Same.
1525
        (gfc_trans_auto_array_allocation): Same.
1526
        (gfc_trans_g77_array): Same.
1527
        (gfc_trans_dummy_array_bias): Same.
1528
        (gfc_conv_expr_descriptor): Same.
1529
        (structure_alloc_comps): Same.
1530
        * trans-expr.c: Same.
1531
        * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
1532
        Rename gfc_conv_descriptor_data_set_tuples to
1533
        gfc_conv_descriptor_data_set.
1534
        (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
1535
        build2_v.
1536
        (gfc_omp_clause_assign_op): Same.
1537
        (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
1538
        gfc_add_modify.
1539
        (gfc_trans_omp_atomic): Same.
1540
        (gfc_trans_omp_do): Same.  Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
1541
        Rename gfc_add_modify_stmt to gfc_add_modify.
1542
        * trans-stmt.c: Rename gfc_add_modify_expr to
1543
        gfc_add_modify.
1544
        * trans.c: Rename gfc_add_modify_expr to
1545
        gfc_add_modify.
1546
        (gfc_add_modify): Remove last argument.
1547
        Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
1548
        * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
1549
        Add prototype for gfc_add_modify.
1550
        * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
1551
        * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
1552
        * trans-io.c: Same.
1553
        * trans-intrinsic.c: Same.
1554
 
1555
        2008-02-25  Aldy Hernandez  
1556
 
1557
        * Make-lang.in (fortran-warn): Add -Wno-format.
1558
 
1559
        2008-02-19  Diego Novillo  
1560
 
1561
        http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
1562
 
1563
        * fortran/Make-lang.in (fortran-warn): Remove.
1564
 
1565
        2007-11-22  Aldy Hernandez  
1566
 
1567
        * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
1568
        memset.
1569
 
1570
        2007-11-10  Aldy Hernandez  
1571
 
1572
        * Make-lang.in (fortran-warn): Set to -Wno-format.
1573
        * trans.c (gfc_trans_code): Update comment to say GENERIC.
1574
        Call tree_annotate_all_with_locus instead of annotate_all_with_locus.
1575
 
1576
2008-07-27  Tobias Burnus  
1577
 
1578
        PR fortran/36132
1579
        PR fortran/29952
1580
        PR fortran/36909
1581
        * trans.c (gfc_trans_runtime_check): Allow run-time warning besides
1582
        run-time error.
1583
        * trans.h (gfc_trans_runtime_check): Update declaration.
1584
        * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
1585
        gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
1586
        Updated gfc_trans_runtime_check calls.
1587
        (gfc_conv_array_parameter): Implement flag_check_array_temporaries,
1588
        fix packing/unpacking for nonpresent optional actuals to optional
1589
        formals.
1590
        * trans-array.h (gfc_conv_array_parameter): Update declaration.
1591
        * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
1592
        gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
1593
        (gfc_conv_function_call): Update gfc_conv_array_parameter calls.
1594
        * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
1595
        calls.
1596
        * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
1597
        (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
1598
        gfc_conv_array_parameter.
1599
        * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
1600
        * trans-decl.c (gfc_build_builtin_function_decls): Add
1601
        gfor_fndecl_runtime_warning_at.
1602
        * lang.opt: New option fcheck-array-temporaries.
1603
        * gfortran.h (gfc_options): New flag_check_array_temporaries.
1604
        * options.c (gfc_init_options, gfc_handle_option): Handle flag.
1605
        * invoke.texi: New option fcheck-array-temporaries.
1606
 
1607
2008-07-24  Jan Hubicka  
1608
 
1609
        * fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
1610
 
1611
2008-07-24  Daniel Kraft  
1612
 
1613
        PR fortran/33141
1614
        * lang.opt (Wnonstd-intrinsics):  Removed option.
1615
        (Wintrinsics-std), (Wintrinsic-shadow):  New options.
1616
        * invoke.texi (Option Summary):  Removed -Wnonstd-intrinsics
1617
        from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
1618
        (Error and Warning Options):  Documented the new options and removed
1619
        the documentation for -Wnonstd-intrinsics.
1620
        * gfortran.h (gfc_option_t):  New members warn_intrinsic_shadow and
1621
        warn_intrinsics_std, removed warn_nonstd_intrinsics.
1622
        (gfc_is_intrinsic):  Renamed from gfc_intrinsic_name.
1623
        (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard):  New.
1624
        * decl.c (match_procedure_decl):  Replaced gfc_intrinsic_name by
1625
        the new name gfc_is_intrinsic.
1626
        (warn_intrinsic_shadow):  New helper method.
1627
        (gfc_match_function_decl), (gfc_match_subroutine):  Call the new method
1628
        warn_intrinsic_shadow to check the just-parsed procedure.
1629
        * expr.c (check_init_expr):  Call new gfc_is_intrinsic to check whether
1630
        the function called is really an intrinsic in the selected standard.
1631
        * intrinsic.c (gfc_is_intrinsic):  Renamed from gfc_intrinsic_name and
1632
        extended to take into account the selected standard settings when trying
1633
        to find out whether a symbol is an intrinsic or not.
1634
        (gfc_check_intrinsic_standard):  Made public and extended.
1635
        (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface):  Removed
1636
        the calls to check_intrinsic_standard, this check now happens inside
1637
        gfc_is_intrinsic.
1638
        (gfc_warn_intrinsic_shadow):  New method defined.
1639
        * options.c (gfc_init_options):  Initialize new warning flags to false
1640
        and removed intialization of Wnonstd-intrinsics flag.
1641
        (gfc_post_options):  Removed logic for Wnonstd-intrinsics flag.
1642
        (set_Wall):  Set new warning flags and removed Wnonstd-intrinsics flag.
1643
        (gfc_handle_option):  Handle the new flags and removed handling of the
1644
        old Wnonstd-intrinsics flag.
1645
        * primary.c (gfc_match_rvalue):  Replaced call to gfc_intrinsic_name by
1646
        the new name gfc_is_intrinsic.
1647
        * resolve.c (resolve_actual_arglist):  Ditto.
1648
        (resolve_generic_f), (resolve_unknown_f):  Ditto.
1649
        (is_external_proc):  Ditto.
1650
        (resolve_generic_s), (resolve_unknown_s):  Ditto.
1651
        (resolve_symbol):  Ditto and ensure for symbols declared INTRINSIC that
1652
        they are really available in the selected standard setting.
1653
 
1654
2008-07-24  Daniel Kraft  
1655
 
1656
        * match.c (gfc_match):  Add assertion to catch wrong calls trying to
1657
        match upper-case characters.
1658
 
1659
2008-07-24  Thomas Koenig  
1660
 
1661
        PR fortran/29952
1662
        * gfortran.h:  Add "warn_array_temp" to gfc_option_t.
1663
        * lang.opt:  Add -Warray-temporaries.
1664
        * invoke.texi:  Document -Warray-temporaries
1665
        * trans-array.h (gfc_trans_create_temp_array):  Add argument of
1666
        type *locus.
1667
        (gfc_conv_loop_setup):  Likewise.
1668
        * trans-array.c (gfc_trans_create_temp_array):  If
1669
        -Warray-temporaries is given and locus is present, warn about
1670
        creation of array temporaries.
1671
        (gfc_trans_array_constructor_subarray):  Add locus to call
1672
        of gfc_conv_loop_setup.
1673
        (gfc_trans_array_constructor):  Add where argument.  Pass where
1674
        argument to call of gfc_trans_create_temp_array.
1675
        (gfc_add_loop_ss_code):  Add where argument.  Pass where argument
1676
        to recursive call of gfc_add_loop_ss_code and to call of
1677
        gfc_trans_array_constructor.
1678
        (gfc_conv_loop_setup):  Add where argument.  Pass where argument
1679
        to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
1680
        (gfc_conv_expr_descriptor):  Pass location to call of
1681
        gfc_conv_loop_setup.
1682
        (gfc_conv_array_parameter):  If -Warray-temporaries is given,
1683
        warn about creation of temporary arrays.
1684
        * trans-expr.c (gfc_conv_subref_array_arg):  Add where argument
1685
        to call to gfc_conv_loop_setup.
1686
        (gfc_conv_function_call):  Add where argument to call to
1687
        gfc_trans_creat_temp_array.
1688
        (gfc_trans_subarray_assign):  Likewise.
1689
        (gfc_trans_assignment_1):  Add where argument to call to
1690
        gfc_conv_loop_setup.
1691
        * trans-stmt.c (gfc_conv_elemental_dependencies):  Add where
1692
        argument to call to gfc_trans_create_temp_array.
1693
        (gfc_trans_call):  Add where argument to call to gfc_conv_loop_setup.
1694
        (generate_loop_for_temp_to_lhs):  Likewise.
1695
        (generate_loop_for_rhs_to_temp):  Likewise.
1696
        (compute_inner_temp_size):  Likewise.
1697
        (gfc_trans-pointer_assign_need_temp):  Likewise.
1698
        (gfc_evaluate_where_mask):  Likewise.
1699
        (gfc_trans_where_assign):  Likewise.
1700
        (gfc_trans_where_3):  Likewise.
1701
        * trans-io.c (transfer_srray_component):  Add where argument
1702
        to function. Add where argument to call to gfc_conv_loop_setup.
1703
        (transfer_expr):  Add where argument to call to
1704
        transfer_array_component.
1705
        (gfc_trans_transfer):  Add where expression to call to
1706
        gfc_conv_loop_setup.
1707
        * trans-intrinsic.c (gfc_conv_intrinsic_anyall):  Add
1708
        where argument to call to gfc_conv_loop_setup.
1709
        (gfc_conv_intrinsic_count):  Likewise.
1710
        (gfc_conv_intrinsic_arith):  Likewise.
1711
        (gfc_conv_intrinsic_dot_product):  Likewise.
1712
        (gfc_conv_intrinsic_minmaxloc):  Likewise.
1713
        (gfc_conv_intrinsic_minmaxval):  Likewise.
1714
        (gfc_conv_intrinsic_array_transfer):  Warn about
1715
        creation of temporary array.
1716
        Add where argument to call to gfc_trans_create_temp_array.
1717
        * options.c (gfc_init_options):  Initialize gfc_option.warn_array_temp.
1718
        (gfc_handle_option):  Set gfc_option.warn_array_temp.
1719
 
1720
2008-07-23  Manuel Lopez-Ibanez  
1721
 
1722
        PR 35058
1723
        * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
1724
 
1725
2008-07-22  Daniel Kraft  
1726
 
1727
        PR fortran/29835
1728
        * io.c (error_element), (format_locus):  New static globals.
1729
        (unexpected_element):  Spelled out this message fully.
1730
        (next_char):  Keep track of locus when not MODE_STRING.
1731
        (next_char_not_space):  Remember last parsed element in error_element.
1732
        (format_lex):  Fix two indentation errors.
1733
        (check_format):  Use format_locus and possibly error_element for a
1734
        slightly better error message on invalid format.
1735
        (check_format_string):  Set format_locus to start of the string
1736
        expression used as format.
1737
 
1738
2008-07-21  Ralf Wildenhues  
1739
 
1740
        * expr.c (gfc_check_pointer_assign): Fix typo in string.
1741
        * io.c (check_format): Fix typo in string.  Fix comment typos.
1742
        * parse.c (gfc_global_used): Likewise.
1743
        * resolve.c (resolve_allocate_expr): Likewise.
1744
        * symbol.c (gfc_set_default_type): Likewise.
1745
        * arith.c: Fix typos in comments.
1746
        * array.c: Likewise.
1747
        * data.c: Likewise.
1748
        * decl.c: Likewise.
1749
        * dependency.c: Likewise.
1750
        * f95-lang.c: Likewise.
1751
        * gfortran.h: Likewise.
1752
        * matchexp.c: Likewise.
1753
        * module.c: Likewise.
1754
        * primary.c: Likewise.
1755
        * scanner.c: Likewise.
1756
        * trans-array.c: Likewise.
1757
        * trans-common.c: Likewise.
1758
        * trans-decl.c: Likewise.
1759
        * trans-expr.c: Likewise.
1760
        * trans-intrinsic.c: Likewise.
1761
        * trans-types.c: Likewise.
1762
        * trans.c: Likewise.
1763
        * trans.h: Likewise.
1764
 
1765
2008-07-19  Tobias Burnus  
1766
 
1767
        PR fortran/36795
1768
        * matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
1769
        which caused the generation of wrong code.
1770
 
1771
2008-07-19  Tobias Burnus  
1772
 
1773
        PR fortran/36342
1774
        * scanner.c (load_file): Add argument to destinguish between
1775
        true filename and displayed filename.
1776
        (include_line,gfc_new_file): Adapt accordingly.
1777
 
1778
2008-07-19  Tobias Burnus  
1779
 
1780
        * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
1781
        checks for cshift's shift and eoshift's shift and boundary args.
1782
        (gfc_check_unpack): Add rank and shape tests for unpack.
1783
 
1784
2008-07-19  Kaveh R. Ghazi  
1785
 
1786
        * gfortran.h (new): Remove macro.
1787
        * array.c (gfc_append_constructor, match_array_list,
1788
        gfc_match_array_constructor): Likewise.
1789
        * bbt.c (insert, gfc_insert_bbt): Likewise.
1790
        * decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
1791
        get_proc_name): Likewise.
1792
        * expr.c (gfc_copy_actual_arglist): Likewise.
1793
        * interface.c (compare_actual_formal, check_new_interface,
1794
        gfc_add_interface): Likewise.
1795
        * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
1796
        Likewise.
1797
        * io.c (match_io_iterator, match_io_list): Likewise.
1798
        * match.c (match_forall_header): Likewise.
1799
        * matchexp.c (build_node): Likewise.
1800
        * module.c (gfc_match_use): Likewise.
1801
        * scanner.c (load_file): Likewise.
1802
        * st.c (gfc_append_code): Likewise.
1803
        * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
1804
        gfc_commit_symbols): Likewise.
1805
        * trans-common.c (build_field): Likewise.
1806
        * trans-decl.c (gfc_finish_var_decl): Likewise.
1807
        * trans-expr.c (gfc_free_interface_mapping,
1808
        gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
1809
        gfc_finish_interface_mapping,
1810
        gfc_apply_interface_mapping_to_expr): Likewise.
1811
        * trans.h (gfc_interface_sym_mapping): Likewise.
1812
 
1813
2008-07-19  Kaveh R. Ghazi  
1814
 
1815
        * gfortran.h (operator): Remove macro.
1816
        (gfc_namespace, gfc_expr): Avoid C++ keywords.
1817
        * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
1818
        Likewise.
1819
        * decl.c (access_attr_decl): Likewise.
1820
        * dependency.c (gfc_dep_compare_expr): Likewise.
1821
        * dump-parse-tree.c (show_expr, show_uop, show_namespace):
1822
        Likewise.
1823
        * expr.c (gfc_copy_expr, gfc_type_convert_binary,
1824
        simplify_intrinsic_op, check_intrinsic_op): Likewise.
1825
        * interface.c (fold_unary, gfc_match_generic_spec,
1826
        gfc_match_interface, gfc_match_end_interface,
1827
        check_operator_interface, check_uop_interfaces,
1828
        gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
1829
        gfc_add_interface, gfc_current_interface_head,
1830
        gfc_set_current_interface_head): Likewise.
1831
        * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
1832
        Likewise.
1833
        * matchexp.c (gfc_get_parentheses, build_node): Likewise.
1834
        * module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
1835
        number_use_names, mio_expr, load_operator_interfaces, read_module,
1836
        write_operator, write_module): Likewise.
1837
        * openmp.c (resolve_omp_atomic): Likewise.
1838
        * resolve.c (resolve_operator, gfc_resolve_character_operator,
1839
        gfc_resolve_uops): Likewise.
1840
        * symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
1841
        * trans-expr.c (gfc_conv_expr_op): Likewise.
1842
        * trans-openmp.c (gfc_trans_omp_atomic): Likewise.
1843
 
1844
2008-07-19  Kaveh R. Ghazi  
1845
 
1846
        * gfortran.h (protected): Remove macro.
1847
        * dump-parse-tree.c (show_attr): Avoid C++ keywords.
1848
        * expr.c (gfc_check_pointer_assign): Likewise.
1849
        * interface.c (compare_parameter_protected): Likewise.
1850
        * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
1851
        add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
1852
        add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
1853
        add_sym_5s): Likewise.
1854
        * match.c (gfc_match_assignment, gfc_match_pointer_assignment):
1855
        Likewise.
1856
        * module.c (mio_symbol_attribute): Likewise.
1857
        * primary.c (match_variable): Likewise.
1858
        * resolve.c (resolve_equivalence): Likewise.
1859
        * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
1860
        Likewise.
1861
        * trans-types.c (gfc_get_array_type_bounds): Likewise.
1862
 
1863
2008-07-18  Kaveh R. Ghazi  
1864
 
1865
        * arith.c (eval_type_intrinsic0): Avoid C++ keywords.
1866
        * gfortran.h (try, protected, operator, new): Likewise.
1867
 
1868
2008-07-17  Tobias Burnus  
1869
 
1870
        PR fortran/36825
1871
        PR fortran/36824
1872
        * array.c (gfc_match_array_spec): Fix array-rank check.
1873
        * resolve.c (resolve_fl_derived): Fix constentness check
1874
        for the array dimensions.
1875
 
1876
2008-07-14  Ralf Wildenhues  
1877
 
1878
        * Make-lang.in (gfortranspec.o): Fix dependencies.
1879
 
1880
2008-07-13  Jerry DeLisle  
1881
 
1882
        PR fortran/36725
1883
        * io.c: Add error check for g0 edit descriptor followed by '.'.
1884
 
1885
2008-07-12  Daniel Kraft  
1886
 
1887
        * resolve.c (resolve_fl_derived):  Allow pointer components to empty
1888
        derived types fixing a missing part of PR fortran/33221.
1889
 
1890
2008-07-10  Daniel Kraft  
1891
 
1892
        * gfc-internals.texi (section gfc_expr):  Created documentation about
1893
        the gfc_expr internal data structure.
1894
 
1895
2008-07-07  Thomas Koenig  
1896
 
1897
        PR fortran/36670
1898
        * iresolve.c (gfc_resolve_product):  Set shape of return
1899
        value from array.
1900
        (gfc_resolve_sum):  Likewise.
1901
 
1902
2008-07-07  Jakub Jelinek  
1903
 
1904
        PR middle-end/36726
1905
        * f95-lang.c (poplevel): Don't ever add subblocks to
1906
        global_binding_level.
1907
 
1908
2008-07-02  Janus Weil  
1909
            Tobias Burnus  
1910
            Paul Thomas  
1911
 
1912
        PR fortran/32580
1913
        * gfortran.h (struct gfc_symbol): New member "proc_pointer".
1914
        * check.c (gfc_check_associated,gfc_check_null): Implement
1915
        procedure pointers.
1916
        * decl.c (match_procedure_decl): Ditto.
1917
        * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
1918
        * interface.c (compare_actual_formal): Ditto.
1919
        * match.h: Ditto.
1920
        * match.c (gfc_match_pointer_assignment): Ditto.
1921
        * parse.c (parse_interface): Ditto.
1922
        * primary.c (gfc_match_rvalue,match_variable): Ditto.
1923
        * resolve.c (resolve_fl_procedure): Ditto.
1924
        * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
1925
        gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
1926
        * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
1927
        create_function_arglist): Ditto.
1928
        * trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
1929
        gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.
1930
 
1931
2008-07-02  Thomas Koenig  
1932
 
1933
        PR fortran/36590
1934
        PR fortran/36681
1935
        * iresolve.c (resolve_mask_arg):  Don't convert mask to
1936
        kind=1 logical if it is of that type already.
1937
 
1938
2008-06-29  Thomas Koenig  
1939
 
1940
        PR fortran/36341
1941
        * iresolve.c (gfc_resolve_matmul): Copy shapes
1942
        from arguments.
1943
 
1944
2008-06-29  Jerry DeLisle  
1945
 
1946
        * invoke.texi: Add documentation for runtime behavior of
1947
        -fno-range-check.
1948
 
1949
2008-06-28  Daniel Kraft  
1950
 
1951
        * gfc-internals.texi (section gfc_code):  Extended documentation about
1952
        gfc_code in the internal datastructures chapter including details about
1953
        how IF, DO and SELECT blocks look like and an example for how the
1954
        block-chaining works.
1955
 
1956
2008-06-25  Paul Thomas  
1957
 
1958
        PR fortran/36526
1959
        * interface.c (check_intents):  Correct error where the actual
1960
        arg was checked for a pointer argument, rather than the formal.
1961
 
1962
2008-06-24  Paul Thomas  
1963
 
1964
        PR fortran/34371
1965
        * expr.c (gfc_check_assign):  Change message and locus for
1966
        error when conform == 0.
1967
 
1968
2008-06-23  Jakub Jelinek  
1969
 
1970
        PR fortran/36597
1971
        * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
1972
 
1973
2008-06-20  Laurynas Biveinis  
1974
            Tobias Burnus  
1975
 
1976
        PR fortran/34908
1977
        PR fortran/36276
1978
        * scanner.c (preprocessor_line): do not call gfc_free for
1979
        current_file->filename if it differs from filename.
1980
 
1981
2008-06-20  Kaveh R. Ghazi  
1982
 
1983
        * arith.c (hollerith2representation): Fix for -Wc++-compat.
1984
        * array.c (gfc_get_constructor): Likewise.
1985
        * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
1986
        create_enum_history, gfc_match_final_decl): Likewise.
1987
        * error.c (error_char): Likewise.
1988
        * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
1989
        * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
1990
        gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
1991
        gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
1992
        gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
1993
        gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
1994
        gfc_get_alloc, gfc_get_wide_string): Likewise.
1995
        * interface.c (count_types_test): Likewise.
1996
        * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
1997
        Likewise.
1998
        * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
1999
        gfc_match_inquire, gfc_match_wait): Likewise.
2000
        * match.c (gfc_match, match_forall_iterator): Likewise.
2001
        * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
2002
        add_true_name, parse_string, write_atom, quote_string,
2003
        mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
2004
        * options.c (gfc_post_options): Likewise.
2005
        * primary.c (match_integer_constant, match_hollerith_constant,
2006
        match_boz_constant, match_real_constant,
2007
        gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
2008
        * scanner.c (gfc_widechar_to_char, add_path_to_list,
2009
        add_file_change, load_line, get_file, preprocessor_line,
2010
        load_file, unescape_filename, gfc_read_orig_filename): Likewise.
2011
        * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
2012
        gfc_simplify_ishftc): Likewise.
2013
        * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
2014
        gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
2015
        Likewise.
2016
        * target-memory.c (gfc_target_interpret_expr): Likewise.
2017
        * trans-const.c (gfc_build_wide_string_const): Likewise.
2018
        * trans-expr.c (gfc_add_interface_mapping): Likewise.
2019
        * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
2020
        gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
2021
        gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
2022
        gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
2023
        gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
2024
        gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
2025
        gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
2026
        * trans.c (gfc_get_backend_locus): Likewise.
2027
        * trans.h (gfc_get_ss): Likewise.
2028
 
2029
2008-06-18  Daniel Kraft  
2030
 
2031
        PR fortran/36517, fortran/36492
2032
        * array.c (gfc_resolve_character_array_constructor):  Call
2033
        gfc_set_constant_character_len with changed length-chec argument.
2034
        * decl.c (gfc_set_constant_character_len):  Changed array argument to
2035
        be a generic length-checking argument that can be used for correct
2036
        checking with typespec and in special cases where the should-be length
2037
        is different from the target length.
2038
        (build_struct):  Call gfc_set_constant_character_len with changed length
2039
        checking argument and introduced additional checks for exceptional
2040
        conditions on invalid code.
2041
        (add_init_expr_to_sym), (do_parm):  Call gfc_set_constant_character_len
2042
        with changed argument.
2043
        * match.h (gfc_set_constant_character_len):  Changed third argument to
2044
        int for the should-be length rather than bool.
2045
 
2046
2008-06-17  Daniel Kraft  
2047
 
2048
        PR fortran/36112
2049
        * array.c (gfc_resolve_character_array_constructor):  Check that all
2050
        elements with constant character length have the same one rather than
2051
        fixing it if no typespec is given, emit an error if they don't.  Changed
2052
        return type to "try" and return FAILURE for the case above.
2053
        (gfc_resolve_array_constructor):  Removed unneeded call to
2054
        gfc_resolve_character_array_constructor in this function.
2055
        * gfortran.h (gfc_resolve_character_array_constructor):  Returns try.
2056
        * trans-array.c (get_array_ctor_strlen):  Return length of first element
2057
        rather than last element.
2058
        * resolve.c (gfc_resolve_expr):  Handle FAILURE return from
2059
        gfc_resolve_character_array_constructor.
2060
 
2061
2008-06-17  Paul Thomas  
2062
 
2063
        PR fortran/34396
2064
        * resolve.c (add_dt_to_dt_list):  New function.
2065
        (resolve_fl_derived): Call new function for pointer components
2066
        and when derived type resolved.
2067
 
2068
2008-06-15  Jerry DeLisle  
2069
 
2070
        PR fortran/36515
2071
        * trans-decl.c (gfc_generate_function_code): Add range_check to options
2072
        array.
2073
 
2074
2008-06-15  Ralf Wildenhues  
2075
 
2076
        * gfc-internals.texi: Expand TABs, drop indentation outside examples.
2077
        * gfortran.texi: Likewise.
2078
        * intrinsic.texi: Likewise.
2079
        * invoke.texi: Likewise.
2080
 
2081
2008-06-13  Jerry DeLisle  
2082
 
2083
        PR fortran/35863
2084
        * trans-io.c (gfc_build_io_library_fndecls): Build declaration for
2085
        transfer_character_wide which includes passing in the character kind to
2086
        support wide character IO. (transfer_expr): If the kind == 4, create the
2087
        argument and build the call.
2088
        * gfortran.texi: Fix typo.
2089
 
2090
2008-06-13  Tobias Burnus  
2091
 
2092
        PR fortran/36476
2093
        * decl.c (do_parm): Handle init expression for len=*.
2094
 
2095
2008-06-12  Tobias Burnus  
2096
 
2097
        PR fortran/36462
2098
        * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
2099
        Fix passing of the BACK= argument.
2100
 
2101
2008-06-10  Jerry DeLisle  
2102
 
2103
        * cpp.c: Add copyright notice.
2104
        * cpp.h: Add copyright notice.
2105
 
2106
2008-06-08  Janus Weil  
2107
 
2108
        PR fortran/36459
2109
        * decl.c (match_procedure_decl): Correctly recognize if the interface
2110
        is an intrinsic procedure.
2111
 
2112
2008-06-08  Tobias Burnus  
2113
 
2114
        PR fortran/35830
2115
        * resolve.c (resolve_symbol): Copy more attributes for
2116
        PROCEDUREs with interfaces.
2117
 
2118
2008-06-07  Jerry DeLisle  
2119
 
2120
        PR fortran/36420
2121
        PR fortran/36422
2122
        * io.c (check_format): Add new error message for zero width.
2123
        Use new error message for FMT_A and with READ, FMT_G.  Allow
2124
        FMT_G with WRITE except when -std=F95 and -std=F2003.
2125
 
2126
2008-06-07  Tobias Burnus  
2127
 
2128
        PR fortran/36437
2129
        * intrinsic.c (add_functions): Implement c_sizeof.
2130
        * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
2131
        create unneeded variable in the scalar case.
2132
        * intrinsic.texi: Add C_SIZEOF documentation.
2133
 
2134
2008-06-06  Tobias Burnus  
2135
 
2136
        * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
2137
 
2138
2008-06-06  Jakub Jelinek  
2139
 
2140
        * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
2141
        * parse.c (next_free): Allow tab after !$omp.
2142
        (decode_omp_directive): Handle !$omp task, !$omp taskwait
2143
        and !$omp end task.
2144
        (case_executable): Add ST_OMP_TASKWAIT.
2145
        (case_exec_markers): Add ST_OMP_TASK.
2146
        (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
2147
        ST_OMP_TASKWAIT.
2148
        (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
2149
        * gfortran.h (gfc_find_sym_in_expr): New prototype.
2150
        (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
2151
        (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
2152
        OMP_DEFAULT_FIRSTPRIVATE to default_sharing.  Add collapse and
2153
        untied fields.
2154
        (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
2155
        * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
2156
        LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
2157
        LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
2158
        * trans.h (gfc_omp_clause_default_ctor): Add another argument.
2159
        (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
2160
        gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
2161
        * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
2162
        BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
2163
        BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2164
        BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
2165
        BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
2166
        BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
2167
        (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
2168
        than boolean_type_node.
2169
        * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
2170
        EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
2171
        untied and collapse clauses.
2172
        (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
2173
        * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
2174
        EXEC_OMP_TASKWAIT.
2175
        * st.c (gfc_free_statement): Likewise.
2176
        * resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
2177
        (find_sym_in_expr): Rename to...
2178
        (gfc_find_sym_in_expr): ... this.  No longer static.
2179
        (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
2180
        * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
2181
        prototypes.
2182
        * openmp.c (resolve_omp_clauses): Allow allocatable arrays in
2183
        firstprivate, lastprivate, reduction, copyprivate and copyin
2184
        clauses.
2185
        (omp_current_do_code): Made static.
2186
        (omp_current_do_collapse): New variable.
2187
        (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
2188
        clear omp_current_do_code and omp_current_do_collapse on return.
2189
        (gfc_resolve_do_iterator): Handle collapsed do loops.
2190
        (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
2191
        (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
2192
        (gfc_match_omp_clauses): Handle default (firstprivate),
2193
        schedule (auto), untied and collapse (n) clauses.
2194
        (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
2195
        (OMP_TASK_CLAUSES): Define.
2196
        (gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
2197
        * trans-openmp.c (gfc_omp_private_outer_ref): New function.
2198
        (gfc_omp_clause_default_ctor): Add outer argument.  For allocatable
2199
        arrays allocate them with the bounds of the outer var if outer
2200
        var is allocated.
2201
        (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
2202
        gfc_omp_clause_dtor): New functions.
2203
        (gfc_trans_omp_array_reduction): If decl is allocatable array,
2204
        allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
2205
        and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
2206
        (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
2207
        for assumed-size arrays.
2208
        (gfc_trans_omp_do): Add par_clauses argument.  If dovar is
2209
        present in lastprivate clause and do loop isn't simple,
2210
        set OMP_CLAUSE_LASTPRIVATE_STMT.  If dovar is present in
2211
        parallel's lastprivate clause, change it to shared and add
2212
        lastprivate clause to OMP_FOR_CLAUSES.  Handle collapsed do loops.
2213
        (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
2214
        (gfc_trans_omp_parallel_do): Likewise.  Move collapse clause to
2215
        OMP_FOR from OMP_PARALLEL.
2216
        (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
2217
        OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
2218
        (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
2219
        (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
2220
        EXEC_OMP_TASKWAIT.
2221
 
2222
2008-06-04  Janus Weil  
2223
 
2224
        PR fortran/36322
2225
        PR fortran/36275
2226
        * resolve.c (resolve_symbol): Correctly copy the interface for a
2227
        PROCEDURE declaration.
2228
 
2229
2008-06-02  Janus Weil  
2230
 
2231
        PR fortran/36361
2232
        * symbol.c (gfc_add_allocatable,gfc_add_dimension,
2233
        gfc_add_explicit_interface): Added checks.
2234
        * decl.c (attr_decl1): Added missing "var_locus".
2235
        * parse.c (parse_interface): Checking for errors.
2236
 
2237
2008-06-02  Daniel Kraft  
2238
 
2239
        * gfortran.h:  New statement-type ST_FINAL for FINAL declarations.
2240
        (struct gfc_symbol):  New member f2k_derived.
2241
        (struct gfc_namespace):  New member finalizers, for use in the above
2242
        mentioned f2k_derived namespace.
2243
        (struct gfc_finalizer):  New type defined for finalizers linked list.
2244
        * match.h (gfc_match_final_decl):  New function header.
2245
        * decl.c (gfc_match_derived_decl):  Create f2k_derived namespace on
2246
        constructed symbol node.
2247
        (gfc_match_final_decl):  New function to match a FINAL declaration line.
2248
        * parse.c (decode_statement):  match-call for keyword FINAL.
2249
        (parse_derived):  Parse CONTAINS section and accept FINAL statements.
2250
        * resolve.c (gfc_resolve_finalizers):  New function to resolve (that is
2251
        in this case, check) a list of finalizer procedures.
2252
        (resolve_fl_derived):  Call gfc_resolve_finalizers here.
2253
        * symbol.c (gfc_get_namespace):  Initialize new finalizers to NULL.
2254
        (gfc_free_namespace):  Free finalizers list.
2255
        (gfc_new_symbol):  Initialize new f2k_derived to NULL.
2256
        (gfc_free_symbol):  Free f2k_derived namespace.
2257
        (gfc_free_finalizer):  New function to free a single gfc_finalizer node.
2258
        (gfc_free_finalizer_list):  New function to free a linked list of
2259
        gfc_finalizer nodes.
2260
 
2261
2008-06-02  Daniel Franke  
2262
 
2263
        PR fortran/36375
2264
        PR fortran/36377
2265
        * cpp.c (gfc_cpp_init): Do not initialize builtins if
2266
        processing already preprocessed input.
2267
        (gfc_cpp_preprocess): Finalize output with newline.
2268
 
2269
2008-05-31  Jerry DeLisle  
2270
 
2271
        * intrinsic.texi: Revert wrong commit.
2272
 
2273
2008-05-31  Steven G. Kargl  
2274
 
2275
        * arith.c (gfc_arith_init_1): Remove now unused r and c variables.
2276
        Cleanup numerical inquiry function initialization.
2277
        (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
2278
        a single mpfr_clears().
2279
        (gfc_check_real_range): Re-arrange logic to eliminate multiple
2280
        unnecessary branching and assignments.
2281
        (gfc_arith_times): Use mpfr_clears() in preference to multiple
2282
        mpfr_clear().
2283
        (gfc_arith_divide): Ditto.
2284
        (complex_reciprocal): Eliminate now unused variables a, re, im.
2285
        Cleanup the mpfr abuse.  Use mpfr_clears() in preference to
2286
        multiple mpfr_clear().
2287
        (complex_pow): Fix comment whitespace.  Use mpfr_clears() in
2288
        preference to multiple mpfr_clear().
2289
        * simplify.c (gfc_simplify_and): Remove blank line.
2290
        (gfc_simplify_atan2): Move error checking earlier to eliminate
2291
        a now unnecessay gfc_free_expr().
2292
        (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
2293
        (gfc_simplify_bessel_j1): Ditto.
2294
        (gfc_simplify_bessel_jn): Ditto.
2295
        (gfc_simplify_bessel_y0): Ditto.
2296
        (gfc_simplify_bessel_y1): Ditto.
2297
        (gfc_simplify_bessel_yn): Ditto.
2298
        (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
2299
        combine nested if statement rational expressions.
2300
        (gfc_simplify_cos): Use mpfr_clears() in preference to multiple
2301
        mpfr_clear().
2302
        (gfc_simplify_exp): Ditto.
2303
        (gfc_simplify_fraction): Move gfc_set_model_kind() to after the
2304
        special case of 0.  Use mpfr_clears() in preference to multiple
2305
        mpfr_clear().
2306
        (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
2307
        (gfc_simplify_lgamma): Ditto.
2308
        (gfc_simplify_log10): Ditto.
2309
        (gfc_simplify_log): Move gfc_set_model_kind () inside switch
2310
        statement. Use mpfr_clears() in preference to multiple mpfr_clear().
2311
        (gfc_simplify_mod):  Eliminate now unused variables quot, iquot,
2312
        and term.  Simplify the mpfr magic.
2313
        (gfc_simplify_modulo): Ditto.
2314
        (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
2315
        (gfc_simplify_scale): Use mpfr_clears() in preference to multiple
2316
        mpfr_clear().
2317
        (gfc_simplify_sin): Ditto
2318
        (gfc_simplify_sqrt): Ditto
2319
        (gfc_simplify_set_exponent):  Move gfc_set_model_kind() to after the
2320
        special case of 0.  Use mpfr_clears() in preference to multiple
2321
        mpfr_clear().
2322
 
2323
2008-05-29  Daniel Franke  
2324
 
2325
        PR target/36348
2326
        * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.
2327
 
2328
2008-05-29  Francois-Xavier Coudert  
2329
 
2330
        * scanner.c (load_line): Add first_char argument. Don't call ungetc.
2331
        (gfc_read_orig_filename): Adjust call to load_line. Don't call
2332
        ungetc.
2333
        (load_file): Adjust call to load_line.
2334
 
2335
2008-05-28  Janus Weil  
2336
 
2337
        PR fortran/36325
2338
        PR fortran/35830
2339
        * interface.c (gfc_procedure_use): Enable argument checking for
2340
        external procedures with explicit interface.
2341
        * symbol.c (check_conflict): Fix conflict checking for externals.
2342
        (copy_formal_args): Fix handling of arrays.
2343
        * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
2344
        of intrinsics.
2345
        * parse.c (parse_interface): Non-abstract INTERFACE statement implies
2346
        EXTERNAL attribute.
2347
 
2348
2008-05-28  Francois-Xavier Coudert  
2349
 
2350
        PR fortran/36319
2351
        * intrinsic.c (gfc_convert_chartype): Don't mark conversion
2352
        function as pure.
2353
        * trans-array.c (gfc_trans_array_ctor_element): Divide element
2354
        size by the size of one character to obtain length.
2355
        * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
2356
        appropriate.
2357
        (gfc_resolve_eoshift): Likewise.
2358
        * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
2359
        (gfc_conv_intrinsic_fdate): Minor beautification.
2360
        (gfc_conv_intrinsic_ttynam): Minor beautification.
2361
        (gfc_conv_intrinsic_minmax_char): Allow all character kinds.
2362
        (size_of_string_in_bytes): New function.
2363
        (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
2364
        character expressions.
2365
        (gfc_conv_intrinsic_sizeof): Likewise.
2366
        (gfc_conv_intrinsic_array_transfer): Likewise.
2367
        (gfc_conv_intrinsic_trim): Allow all character kinds. Minor
2368
        beautification.
2369
        (gfc_conv_intrinsic_repeat): Fix comment typo.
2370
        * simplify.c (gfc_convert_char_constant): Take care of conversion
2371
        of array constructors.
2372
 
2373
2008-05-27  Tobias Burnus  
2374
 
2375
        PR fortran/36316
2376
        * trans-array.c (gfc_set_loop_bounds_from_array_spec):
2377
        Add missing fold_convert.
2378
 
2379
2008-05-26  Daniel Franke  
2380
 
2381
        * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
2382
        added FIXME instead.
2383
 
2384
2008-05-26  Daniel Franke  
2385
 
2386
        PR fortran/18428
2387
        * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
2388
        imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
2389
        o, undef, v): New options.
2390
        * options.c (gfc_init_options): Also initialize preprocessor
2391
        options.
2392
        (gfc_post_options): Also handle post-initialization of preprocessor
2393
        options.
2394
        (gfc_handle_option): Check if option is a preprocessor option.
2395
        If yes, let gfc_cpp_handle_option() handle the option.
2396
        * lang-specs.h: Reorganized to handle new options.
2397
        * scanner.c (gfc_new_file): Read temporary file instead of
2398
        input source if preprocessing is enabled.
2399
        * f95-lang.c (gfc_init): Initialize preprocessor.
2400
        (gfc_finish): Clean up preprocessor.
2401
        * cpp.c: New.
2402
        * cpp.h: New.
2403
        * Make-lang.in: Added new objects and dependencies.
2404
        * gfortran.texi: Updated section "Preprocessing and
2405
        conditional compilation".
2406
        * invoke.texi: Added new section "Preprocessing Options",
2407
        listed and documented the preprocessing options handled
2408
        by gfortran.
2409
 
2410
2008-05-25  Tobias Burnus  
2411
 
2412
        PR fortran/32600
2413
        * trans-expr.c (gfc_conv_function_call): Remove library
2414
        call for c_f_pointer with scalar Fortran pointers and for
2415
        c_f_procpointer.
2416
 
2417
2008-05-21  Francois-Xavier Coudert  
2418
 
2419
        PR fortran/36257
2420
        * iresolve.c (check_charlen_present): Don't force the rank to 1.
2421
 
2422
2008-05-19  Francois-Xavier Coudert  
2423
 
2424
        PR fortran/36265
2425
        * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
2426
        the temporary variable.
2427
 
2428
2008-05-19  Francois-Xavier Coudert  
2429
 
2430
        * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
2431
        result variable to avoid warnings.
2432
 
2433
2008-05-18  Francois-Xavier Coudert  
2434
 
2435
        * intrinsic.c (char_conversions, ncharconv): New static variables.
2436
        (find_char_conv): New function.
2437
        (add_functions): Add simplification functions for ADJUSTL and
2438
        ADJUSTR. Don't check the kind of their argument. Add checking for
2439
        LGE, LLE, LGT and LLT.
2440
        (add_subroutines): Fix argument type for SLEEP. Fix argument name
2441
        for SYSTEM.
2442
        (add_char_conversions): New function.
2443
        (gfc_intrinsic_init_1): Call add_char_conversions.
2444
        (gfc_intrinsic_done_1): Free char_conversions.
2445
        (check_arglist): Use kind == 0 as a signal that we don't want
2446
        the kind value to be checked.
2447
        (do_simplify): Also simplify character functions.
2448
        (gfc_convert_chartype): New function
2449
        * trans-array.c (gfc_trans_array_ctor_element): Don't force the
2450
        use of default character type.
2451
        (gfc_trans_array_constructor_value): Likewise.
2452
        (get_array_ctor_var_strlen): Use integer kind to build an integer
2453
        instead of a character kind!
2454
        (gfc_build_constant_array_constructor): Don't force the use of
2455
        default character type.
2456
        (gfc_conv_loop_setup): Likewise.
2457
        * trans-expr.c (gfc_conv_string_tmp): Don't force the use of
2458
        default character type. Allocate enough memory for wide strings.
2459
        (gfc_conv_concat_op): Make sure operand kind are the same.
2460
        (string_to_single_character): Remove gfc_ prefix. Reindent.
2461
        Don't force the use of default character type.
2462
        (gfc_conv_scalar_char_value): Likewise.
2463
        (gfc_build_compare_string): Call string_to_single_character.
2464
        (fill_with_spaces): New function
2465
        (gfc_trans_string_copy): Add kind arguments. Use them to deal
2466
        with wide character kinds.
2467
        (gfc_conv_statement_function): Whitespace fix. Call
2468
        gfc_trans_string_copy with new kind arguments.
2469
        (gfc_conv_substring_expr): Call gfc_build_wide_string_const
2470
        instead of using gfc_widechar_to_char.
2471
        (gfc_conv_string_parameter): Don't force the use of default
2472
        character type.
2473
        (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
2474
        * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
2475
        gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
2476
        * decl.c (gfc_set_constant_character_len): Don't assert the
2477
        existence of a single character kind.
2478
        * trans-array.h (gfc_trans_string_copy): New prototype.
2479
        * gfortran.h (gfc_check_character_range, gfc_convert_chartype):
2480
        New prototypes.
2481
        * error.c (print_wide_char_into_buffer): New function lifting
2482
        code from gfc_print_wide_char. Fix order to output '\x??' instead
2483
        of 'x\??'.
2484
        (gfc_print_wide_char): Call print_wide_char_into_buffer.
2485
        (show_locus): Call print_wide_char_into_buffer with buffer local
2486
        to this function.
2487
        * trans-const.c (gfc_build_wide_string_const): New function.
2488
        (gfc_conv_string_init): Deal with wide characters strings
2489
        constructors.
2490
        (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
2491
        * trans-stmt.c (gfc_trans_label_assign): Likewise.
2492
        (gfc_trans_character_select): Deal with wide strings.
2493
        * expr.c (gfc_check_assign): Allow conversion between character
2494
        kinds on assignment.
2495
        * trans-const.h (gfc_build_wide_string_const): New prototype.
2496
        * trans-types.c (gfc_get_character_type_len_for_eltype,
2497
        gfc_get_character_type_len): Create too variants of the old
2498
        gfc_get_character_type_len, one getting kind argument and the
2499
        other one directly taking a type tree.
2500
        * trans.h (gfor_fndecl_select_string_char4,
2501
        gfor_fndecl_convert_char1_to_char4,
2502
        gfor_fndecl_convert_char4_to_char1): New prototypes.
2503
        * trans-types.h (gfc_get_character_type_len_for_eltype): New
2504
        prototype.
2505
        * resolve.c (resolve_operator): Exit early when kind mismatches
2506
        are detected, because that makes us issue an error message later.
2507
        (validate_case_label_expr): Fix wording of error message.
2508
        * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
2509
        functions.
2510
        (gfc_resolve_pack): Call _char4 variants of library function
2511
        when dealing with wide characters.
2512
        (gfc_resolve_reshape): Likewise.
2513
        (gfc_resolve_spread): Likewise.
2514
        (gfc_resolve_transpose): Likewise.
2515
        (gfc_resolve_unpack): Likewise.
2516
        * target-memory.c (size_character): Take character kind bit size
2517
        correctly into account (not that it changes anything for now, but
2518
        it's more generic).
2519
        (gfc_encode_character): Added gfc_ prefix. Encoding each
2520
        character of a string by calling native_encode_expr for the
2521
        corresponding unsigned integer.
2522
        (gfc_target_encode_expr): Add gfc_ prefix to encode_character.
2523
        * trans-decl.c (gfc_build_intrinsic_function_decls): Build
2524
        gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
2525
        and gfor_fndecl_convert_char4_to_char1.
2526
        * target-memory.h (gfc_encode_character): New prototype.
2527
        * arith.c (gfc_check_character_range): New function.
2528
        (eval_intrinsic): Allow non-default character kinds.
2529
        * check.c (gfc_check_access_func): Only allow default
2530
        character kind arguments.
2531
        (gfc_check_chdir): Likewise.
2532
        (gfc_check_chdir_sub): Likewise.
2533
        (gfc_check_chmod): Likewise.
2534
        (gfc_check_chmod_sub): Likewise.
2535
        (gfc_check_lge_lgt_lle_llt): New function.
2536
        (gfc_check_link): Likewise.
2537
        (gfc_check_link_sub): Likewise.
2538
        (gfc_check_symlnk): Likewise.
2539
        (gfc_check_symlnk_sub): Likewise.
2540
        (gfc_check_rename): Likewise.
2541
        (gfc_check_rename_sub): Likewise.
2542
        (gfc_check_fgetputc_sub): Likewise.
2543
        (gfc_check_fgetput_sub): Likewise.
2544
        (gfc_check_stat): Likewise.
2545
        (gfc_check_stat_sub): Likewise.
2546
        (gfc_check_date_and_time): Likewise.
2547
        (gfc_check_ctime_sub): Likewise.
2548
        (gfc_check_fdate_sub): Likewise.
2549
        (gfc_check_gerror): Likewise.
2550
        (gfc_check_getcwd_sub): Likewise.
2551
        (gfc_check_getarg): Likewise.
2552
        (gfc_check_getlog): Likewise.
2553
        (gfc_check_hostnm): Likewise.
2554
        (gfc_check_hostnm_sub): Likewise.
2555
        (gfc_check_ttynam_sub): Likewise.
2556
        (gfc_check_perror): Likewise.
2557
        (gfc_check_unlink): Likewise.
2558
        (gfc_check_unlink_sub): Likewise.
2559
        (gfc_check_system_sub): Likewise.
2560
        * primary.c (got_delim): Perform correct character range checking
2561
        for all kinds.
2562
        * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
2563
        calls to library functions convert_char4_to_char1 and
2564
        convert_char1_to_char4 for character conversions.
2565
        (gfc_conv_intrinsic_char): Allow all character kings.
2566
        (gfc_conv_intrinsic_strcmp): Fix whitespace.
2567
        (gfc_conv_intrinsic_repeat): Take care of all character kinds.
2568
        * intrinsic.texi: For all GNU intrinsics accepting character
2569
        arguments, mention that they're restricted to the default kind.
2570
        * simplify.c (simplify_achar_char): New function.
2571
        (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
2572
        gfc_simplify_ichar): Don't error out for wide characters.
2573
        (gfc_convert_char_constant): New function.
2574
 
2575
2008-05-18  Steven G. Kargl  
2576
 
2577
        PR fortran/36251
2578
        * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
2579
        and BIND(C).
2580
        * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.
2581
 
2582
2008-05-17  Tobias Burnus  
2583
 
2584
        * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
2585
        and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
2586
        GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
2587
        Move LOG_GAMMA after LOG10.
2588
 
2589
2008-05-17  Tobias Burnus  
2590
 
2591
        * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
2592
        * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
2593
        ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
2594
        CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.
2595
 
2596
2008-05-16  Paul Thomas  
2597
 
2598
        PR fortran/35756
2599
        PR fortran/35759
2600
        * trans-stmt.c (gfc_trans_where): Tighten up the dependency
2601
        check for calling gfc_trans_where_3.
2602
 
2603
        PR fortran/35743
2604
        * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
2605
        if it is calculated to be negative.
2606
 
2607
        PR fortran/35745
2608
        * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
2609
        ss->where for scalar right hand sides.
2610
        * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
2611
        not evaluate scalars outside the loop.  Clean up whitespace.
2612
        * trans.h : Add a bitfield 'where' to gfc_ss.
2613
 
2614
2008-05-16  Tobias Burnus  
2615
 
2616
        * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
2617
        * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.
2618
 
2619
2008-04-16  Daniel Kraft  
2620
 
2621
        PR fortran/27997
2622
        * gfortran.h:  Added field "length_from_typespec" to gfc_charlength.
2623
        * aray.c (gfc_match_array_constructor):  Added code to parse typespec.
2624
        (check_element_type, check_constructor_type, gfc_check_constructor_type):
2625
        Extended to support explicit typespec on constructor.
2626
        (gfc_resolve_character_array_constructor):  Pad strings correctly for
2627
        explicit, constant character length.
2628
        * trans-array.c:  New static global variable "typespec_chararray_ctor"
2629
        (gfc_trans_array_constructor):  New code to support explicit but dynamic
2630
        character lengths.
2631
 
2632
2008-05-16  Jerry DeLisle  
2633
 
2634
        PR fortran/34325
2635
        * decl.c (match_attr_spec): Check for matching pairs of parenthesis.
2636
        * expr.c (gfc_specification_expr): Supplement the error message with the
2637
        type that was found.
2638
        * resolve.c (gfc_resolve_index): Likewise.
2639
        * match.c (gfc_match_parens): Clarify error message with "at or before".
2640
        (gfc_match_do): Check for matching pairs of parenthesis.
2641
 
2642
2008-05-16  Tobias Burnus  
2643
 
2644
        * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
2645
        add missing KIND argument to ACHAR and NINT; and state that
2646
        the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
2647
        ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.
2648
 
2649
2008-05-16  Daniel Kraft  
2650
 
2651
        * primary.c:  New private structure "gfc_structure_ctor_component".
2652
        (gfc_free_structure_ctor_component):  New helper function.
2653
        (gfc_match_structure_constructor):  Extended largely to support named
2654
        arguments and default initialization for structure constructors.
2655
 
2656
2008-05-15  Steven G. Kargl  
2657
 
2658
        * simplify.c (gfc_simplify_dble, gfc_simplify_float,
2659
        simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
2660
        possible memory leaks.
2661
        (gfc_simplify_reshape): Plug possible memory leaks and dereferencing
2662
        of NULL pointers.
2663
 
2664
2008-05-15  Steven G. Kargl  
2665
 
2666
        PR fortran/36239
2667
        * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
2668
        rolled integer conversion with gfc_int2int, gfc_real2int, and
2669
        gfc_complex2int.
2670
        (gfc_simplify_intconv): Renamed to simplify_intconv.
2671
 
2672
2008-05-15  Steven G. Kargl,   
2673
        * gfortran.dg/and_or_xor.f90: New test
2674
 
2675
        * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
2676
        gfc_simplify_xor): Don't range check logical results.
2677
 
2678
2008-05-15  Francois-Xavier Coudert  
2679
 
2680
        * trans-expr.c (gfc_conv_concat_op): Take care of nondefault
2681
        character kinds.
2682
        (gfc_build_compare_string): Add kind argument and use it.
2683
        (gfc_conv_statement_function): Fix indentation.
2684
        * gfortran.h (gfc_character_info): New structure.
2685
        (gfc_character_kinds): New array.
2686
        * trans-types.c (gfc_character_kinds, gfc_character_types,
2687
        gfc_pcharacter_types): New array.
2688
        (gfc_init_kinds): Fill character kinds array.
2689
        (validate_character): Take care of nondefault character kinds.
2690
        (gfc_build_uint_type): New function.
2691
        (gfc_init_types): Take care of nondefault character kinds.
2692
        (gfc_get_char_type, gfc_get_pchar_type): New functions.
2693
        (gfc_get_character_type_len): Use gfc_get_char_type.
2694
        * trans.h (gfc_build_compare_string): Adjust prototype.
2695
        (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
2696
        gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
2697
        gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
2698
        gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
2699
        gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
2700
        prototypes.
2701
        * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
2702
        prototypes.
2703
        * trans-decl.c (gfor_fndecl_compare_string_char4,
2704
        gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
2705
        gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
2706
        gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
2707
        gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
2708
        gfor_fndecl_concat_string_char4): New function decls.
2709
        (gfc_build_intrinsic_function_decls): Define new *_char4 function
2710
        decls.
2711
        * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
2712
        gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
2713
        gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
2714
        gfc_conv_intrinsic_function): Deal with nondefault character kinds.
2715
 
2716
2008-05-15  Sa Liu  
2717
 
2718
        * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
2719
        All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
2720
        c_int128_t, c_int_least128_t and c_int_fast128_t are added as
2721
        GNU extensions.
2722
        * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
2723
        to macro NAMED_INTCST.
2724
        * symbol.c (std_for_isocbinding_symbol): New helper function to
2725
        return the standard that supports this isocbinding symbol.
2726
        (generate_isocbinding_symbol): Do not generate GNU extension symbols
2727
        if std=f2003. Add new parameter to NAMED_INTCST.
2728
        * module.c (use_iso_fortran_env_module): Add new parameter to
2729
        NAMED_INTCST and new field standard to struct intmod_sym.
2730
        * gfortran.h: Add new parameter to NAMED_INTCST.
2731
        * trans-types.c (init_c_interop_kinds): Add new parameter to
2732
        NAMED_INTCST.
2733
        * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
2734
        and C_INT_FAST128_T.
2735
 
2736
2008-05-14  Francois-Xavier Coudert  
2737
 
2738
        PR fortran/36059
2739
        * trans-decl.c (gfc_build_dummy_array_decl): Don't repack
2740
        arrays that have the TARGET attribute.
2741
 
2742
2008-05-14  Francois-Xavier Coudert  
2743
 
2744
        PR fortran/36186
2745
        * simplify.c (only_convert_cmplx_boz): New function.
2746
        (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
2747
        Call only_convert_cmplx_boz.
2748
 
2749
2008-05-14  Paul Thomas  
2750
 
2751
        PR fortran/36233
2752
        * interface.c (compare_actual_formal): Do not check sizes if the
2753
        actual is BT_PROCEDURE.
2754
 
2755
2008-05-14  Francois-Xavier Coudert  
2756
 
2757
        PR fortran/35682
2758
        * trans-array.c (gfc_conv_ss_startstride): Any negative size is
2759
        the same as zero size.
2760
        (gfc_conv_loop_setup): Fix size calculation.
2761
 
2762
2008-05-14  Francois-Xavier Coudert  
2763
 
2764
        PR fortran/35685
2765
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
2766
        handle zero-size sections.
2767
 
2768
2008-05-14  Francois-Xavier Coudert  
2769
 
2770
        PR fortran/36215
2771
        * scanner.c (preprocessor_line): Allocate enough memory for a
2772
        wide string.
2773
 
2774
2008-05-12  Francois-Xavier Coudert  
2775
 
2776
        PR fortran/36176
2777
        * target-memory.c (gfc_target_expr_size): Correctly treat
2778
        substrings.
2779
        (gfc_target_encode_expr): Likewise.
2780
        (gfc_interpret_complex): Whitespace change.
2781
 
2782
2008-05-11  Thomas Koenig  
2783
 
2784
        PR fortran/35719
2785
        * trans.c (gfc_call_malloc): If size equals zero, allocate one
2786
        byte; don't return a null pointer.
2787
 
2788
2008-05-10  Francois-Xavier Coudert  
2789
 
2790
        PR fortran/36197
2791
        * module.c (quote_string): Fix sprintf format.
2792
 
2793
2008-05-09  Francois-Xavier Coudert  
2794
 
2795
        PR fortran/36162
2796
        * module.c (quote_string, unquote_string,
2797
        mio_allocated_wide_string): New functions.
2798
        (mio_expr): Call mio_allocated_wide_string where needed.
2799
 
2800
2008-05-07 Kenneth Zadeck 
2801
 
2802
         * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
2803
         Rename DECL_IS_PURE to DECL_PURE_P.
2804
 
2805
2008-05-06  Francois-Xavier Coudert  
2806
 
2807
        * arith.c: (gfc_arith_concat, gfc_compare_string,
2808
        gfc_compare_with_Cstring, hollerith2representation,
2809
        gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
2810
        gfc_hollerith2character, gfc_hollerith2logical): Use wide
2811
        characters for character constants.
2812
        * data.c (create_character_intializer): Likewise.
2813
        * decl.c (gfc_set_constant_character_len): Likewise.
2814
        * dump-parse-tree.c (show_char_const): Correctly dump wide
2815
        character strings.
2816
        error.c (print_wide_char): Rename into gfc_print_wide_char.
2817
        (show_locus): Adapt to new prototype of gfc_print_wide_char.
2818
        expr.c (free_expr0): Representation is now disjunct from
2819
        character string value, so we always free it.
2820
        (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
2821
        to wide character strings.
2822
        * gfortran.h (gfc_expr): Make value.character.string a wide string.
2823
        (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
2824
        gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
2825
        (gfc_get_wide_string): New macro.
2826
        (gfc_print_wide_char): New prototype.
2827
        * io.c (format_string): Make a wide string.
2828
        (next_char, gfc_match_format, compare_to_allowed_values,
2829
        gfc_match_open): Deal with wide strings.
2830
        * module.c (mio_expr): Convert between wide strings and ASCII ones.
2831
        * primary.c (match_hollerith_constant, match_charkind_name):
2832
        Handle wide strings.
2833
        * resolve.c (build_default_init_expr): Likewise.
2834
        * scanner.c (gfc_wide_toupper, gfc_wide_memset,
2835
        gfc_char_to_widechar): New functions.
2836
        (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
2837
        Changes in prototypes.
2838
        (gfc_define_undef_line, load_line, preprocessor_line,
2839
        include_line, load_file, gfc_read_orig_filename): Handle wide
2840
        strings.
2841
        * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
2842
        gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
2843
        gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
2844
        gfc_simplify_repeat): Handle wide strings.
2845
        (wide_strspn, wide_strcspn): New helper functions.
2846
        (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
2847
        Handle wide strings.
2848
        * symbol.c (generate_isocbinding_symbol): Likewise.
2849
        * target-memory.c (size_character, gfc_target_expr_size,
2850
        encode_character, gfc_target_encode_expr, gfc_interpret_character,
2851
        gfc_target_interpret_expr): Handle wide strings.
2852
        * trans-const.c (gfc_conv_string_init): Lower wide strings to
2853
        narrow ones.
2854
        (gfc_conv_constant_to_tree): Likewise.
2855
        * trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
2856
        * trans-io.c (gfc_new_nml_name_expr): Likewise.
2857
        * trans-stmt.c (gfc_trans_label_assign): Likewise.
2858
 
2859
2008-05-06  Francois-Xavier Coudert  
2860
 
2861
        * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
2862
        gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
2863
        gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
2864
        with ATTRIBUTE_UNUSED.
2865
 
2866
2008-05-06  Francois-Xavier Coudert  
2867
 
2868
        * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
2869
        * simplify.c (gfc_simplify_lgamma): Likewise.
2870
 
2871
2008-05-06  Francois-Xavier Coudert  
2872
 
2873
        * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
2874
        gfc_peek_ascii_char.
2875
        * decl.c (gfc_match_kind_spec, gfc_match_type_spec,
2876
        gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
2877
        match_string_p, match_attr_spec, gfc_match_suffix,
2878
        match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
2879
        Likewise.
2880
        * gfortran.h (gfc_char_t): New type.
2881
        (gfc_linebuf): Make line member a gfc_char_t.
2882
        (locus): Make nextc member a gfc_char_t.
2883
        (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
2884
        gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
2885
        gfc_peek_ascii_char, gfc_check_digit): New prototypes.
2886
        * error.c (print_wide_char): New function.
2887
        (show_locus): Use print_wide_char and gfc_wide_strlen.
2888
        * io.c (next_char): Use gfc_char_t type.
2889
        (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
2890
        * match.c (gfc_match_parens, gfc_match_eos,
2891
        gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
2892
        gfc_match_intrinsic_op, gfc_match_char,  gfc_match_return,
2893
        gfc_match_common): Likewise.
2894
        * match.h (gfc_match_special_char): Change prototype.
2895
        * parse.c (decode_specification_statement, decode_statement,
2896
        decode_omp_directive, next_free, next_fixed): Use
2897
        gfc_peek_ascii_char and gfc_next_ascii_char.
2898
        * primary.c (gfc_check_digit): Change name.
2899
        (match_digits, match_hollerith_constant, match_boz_constant,
2900
        match_real_constant, next_string_char, match_charkind_name,
2901
        match_string_constant, match_logical_constant_string,
2902
        match_complex_constant, match_actual_arg, match_varspec,
2903
        gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
2904
        gfc_next_ascii_char.
2905
        * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
2906
        gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
2907
        gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
2908
        wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
2909
        gfc_next_ascii_char, gfc_peek_ascii_char):
2910
        New functions.
2911
        (next_char, gfc_define_undef_line, skip_free_comments,
2912
        gfc_next_char_literal, gfc_next_char, gfc_peek_char,
2913
        gfc_error_recovery, load_line, preprocessor_line, include_line,
2914
        load_file, gfc_read_orig_filename): Use gfc_char_t for source
2915
        characters and the {gfc_,}wide_* functions to manipulate wide
2916
        strings.
2917
 
2918
2008-05-06  Tobias Burnus  
2919
 
2920
        PR fortran/36117
2921
        * intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
2922
        * intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
2923
        * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
2924
        gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
2925
        gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.
2926
 
2927
2008-05-03  Janus Weil  
2928
 
2929
        * misc.c (gfc_clear_ts): Set interface to NULL.
2930
 
2931
2008-05-03  Jerry DeLisle  
2932
 
2933
        PR fortran/33268
2934
        * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
2935
        gfc_expr value union. Add io_kind enum to here from io.c.
2936
        * io.c (gfc_free_dt): Free extra_comma.
2937
        (gfc_resolve_dt): If an extra comma was encountered and io_unit is type
2938
        BT_CHARACTER, resolve to format_expr and set default unit.  Error if
2939
        io_kind is M_WRITE. (match_io):  Match the extra comma and set new
2940
        pointer, extra_comma.
2941
 
2942
2008-05-01  Bud Davis  
2943
 
2944
        PR35940/Fortran
2945
        * simplify.c (gfc_simplify_index): Check for direction argument
2946
        being a constant.
2947
 
2948
2008-05-01  Janus Weil  
2949
 
2950
        * gfortran.h (struct gfc_symbol): Moving "interface" member to
2951
        gfc_typespec (plus fixing a small docu error).
2952
        * interface.c (gfc_procedure_use): Ditto.
2953
        * decl.c (match_procedure_decl): Ditto.
2954
        * resolve.c (resolve_specific_f0,
2955
        resolve_specific_f0, resolve_symbol): Ditto.
2956
 
2957
2008-04-30  Francois-Xavier Coudert  
2958
 
2959
        * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
2960
        * intrinsic.h (gfc_check_selected_char_kind,
2961
        gfc_simplify_selected_char_kind): New prototypes.
2962
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
2963
        * trans.h (gfor_fndecl_sc_kind): New function decl.
2964
        * trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
2965
        * arith.c (gfc_compare_with_Cstring): New function.
2966
        * arith.h (gfc_compare_with_Cstring): New prototype.
2967
        * check.c (gfc_check_selected_char_kind): New function.
2968
        * primary.c (match_string_constant, match_kind_param): Mark
2969
        symbols used as literal constant kind param as referenced.
2970
        * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
2971
        (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
2972
        * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
2973
        * simplify.c (gfc_simplify_selected_char_kind): New function.
2974
 
2975
2008-04-28  Paul Thomas  
2976
 
2977
        PR fortran/35997
2978
        * module.c (find_symbol): Do not return a result for a symbol
2979
        that has been renamed in another module.
2980
 
2981
2008-04-26  George Helffrich 
2982
 
2983
        PR fortran/35892
2984
        PR fortran/35154
2985
        * trans-common.c (create_common):  Add decl to function
2986
        chain (if inside one) to preserve identifier scope in debug output.
2987
 
2988
2008-04-25  Jan Hubicka  
2989
 
2990
        * trans-decl.c (trans_function_start): Update.
2991
 
2992
2008-04-25  Tobias Burnus  
2993
            Daniel Franke 
2994
 
2995
        PR fortran/35156
2996
        * gfortranspec.c (lang_specific_driver): Deprecate
2997
        -M option; fix ICE when "-M" is last argument and
2998
        make "-M" work.
2999
        * options.c (gfc_handle_module_path_options):
3000
        Use -J instead of -M in error messages.
3001
        * invoke.texi: Mark -M as depecated.
3002
 
3003
2008-04-23  Jerry DeLisle  
3004
            Francois-Xavier Coudert  
3005
 
3006
        PR fortran/35994
3007
        * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
3008
        loop counter offset.
3009
 
3010
2008-04-23  Paolo Bonzini  
3011
 
3012
        * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
3013
        * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
3014
        (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
3015
        (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
3016
        (gfc_conv_array_initializer): Don't set TREE_INVARIANT.
3017
        * trans-common.c (get_init_field): Don't set TREE_INVARIANT.
3018
        (create_common): Don't set TREE_INVARIANT.
3019
        * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
3020
        * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
3021
 
3022
2008-04-21  Steve Ellcey  
3023
 
3024
        * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
3025
 
3026
2008-04-21  Daniel Franke  
3027
 
3028
        PR fortran/35019
3029
        * gfortranspec.c (lookup_option): Properly handle separated arguments
3030
        in -J option, print missing argument message when necessary.
3031
 
3032
2008-04-20  Jerry DeLisle  
3033
 
3034
        PR fortran/35882
3035
        * scanner.c (skip_fixed_comments): Update continue_line when comment is
3036
        detected. (gfc_next_char_literal): Likewise.
3037
 
3038
2008-04-19  Paul Thomas  
3039
 
3040
        PR fortran/35944
3041
        PR fortran/35946
3042
        PR fortran/35947
3043
        * trans_array.c (gfc_trans_array_constructor): Temporarily
3044
        realign loop, if loop->from is not zero, before creating
3045
        the temporary array and provide an offset.
3046
 
3047
        PR fortran/35959
3048
        * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
3049
        and allow for NULL body.  Change all references from
3050
        init_default_dt to gfc_init_default_dt.
3051
        * trans.h : Add prototype for gfc_init_default_dt.
3052
        * trans-array.c (gfc_trans_deferred_vars): After nullification
3053
        call gfc_init_default_dt for derived types with allocatable
3054
        components.
3055
 
3056
2008-04-18  Jerry DeLisle  
3057
 
3058
        PR fortran/35892
3059
        * trans-common.c (create_common): Revert patch causing regression.
3060
 
3061
2008-04-16  Jerry DeLisle  
3062
 
3063
        PR fortran/35724
3064
        * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
3065
        optional argument attribute.
3066
 
3067
2008-04-16  Paul Thomas  
3068
 
3069
        PR fortran/35932
3070
        * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
3071
        is not used, the argument must be converted.
3072
 
3073
2008-04-16  Jakub Jelinek  
3074
 
3075
        PR target/35662
3076
        * f95-lang.c (gfc_init_builtin_functions): Make sure
3077
        BUILT_IN_SINCOS{,F,L} types aren't varargs.
3078
 
3079
2008-04-15  Paul Thomas  
3080
 
3081
        PR fortran/35864
3082
        * expr.c (scalarize_intrinsic_call): Reorder identification of
3083
        array argument so that if one is not found a segfault does not
3084
        occur.  Return FAILURE if all scalar arguments.
3085
 
3086
2008-04-13  Jerry DeLisle  
3087
            Tobias Burnus  
3088
 
3089
        PR fortran/35882
3090
        * options.c (gfc_init_options): Set the default maximum continuation
3091
        lines to 255 for both free and fixed form source for warnings.
3092
        (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
3093
        the -std=f95 free form max continuations to 39 for warnings.
3094
        * scanner.c (gfc_next_char_literal): Adjust the current_line number only
3095
        if it is less than the current locus.
3096
 
3097
2008-04-07  Jerry DeLisle  
3098
 
3099
        PR fortran/25829 28655
3100
        * io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
3101
        round, sign, and id. (match_open_element): Match new tags.
3102
        (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
3103
        for DEFAULT only. Update error messages. (match_dt_element): Fix match
3104
        tag for asynchronous. Update error messages. (gfc_free_inquire): Free
3105
        new expressions. (match_inquire_element): Match new tags.
3106
        (gfc_match_inquire): Add constraint for ID and PENDING.
3107
        (gfc_resolve_inquire): Resolve new tags.
3108
        * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
3109
        mask for ID parameter.
3110
        * ioparm.def: Fix order of parameters for pending, round, and sign.
3111
        NOTE: These must line up with the definitions in libgfortran/io/io.h. or
3112
        things don't work.
3113
 
3114
2008-04-06  Paul Thomas  
3115
 
3116
        PR fortran/35780
3117
        * expr.c (scalarize_intrinsic_call): Identify which argument is
3118
        an array and use that as the template.
3119
        (check_init_expr): Remove tests that first argument is an array
3120
        in the call to scalarize_intrinsic_call.
3121
 
3122
2008-04-06  Tobias Schlüter  
3123
 
3124
        PR fortran/35832
3125
        * io.c (io_tag): Add field 'value'.  Split 'spec' field in
3126
        existing io_tags.
3127
        (match_etag, match_vtag, match_ltag): Split parsing in two steps
3128
        to give better error messages.
3129
 
3130
2008-04-06  Tobias Burnus  
3131
 
3132
        * io.c (check_io_constraints): Add constrains. ID= requires
3133
        asynchronous= and asynchronous= must be init expression.
3134
 
3135
2008-04-06  Francois-Xavier Coudert  
3136
 
3137
        * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
3138
 
3139
2008-04-06  Francois-Xavier Coudert  
3140
 
3141
        * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
3142
        gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
3143
        functions and make them static. Add new gfc_dump_parse_tree
3144
        function.
3145
        * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
3146
        (gfc_status, gfc_status_char): Delete prototypes.
3147
        * error.c (gfc_status, gfc_status_char): Remove functions.
3148
        * scanner.c (gfc_new_file): Use printf instead of gfc_status.
3149
        * options.c (gfc_init_options): Rename verbose into dump_parse_tree.
3150
        (gfc_handle_module_path_options): Use gfc_fatal_error instead of
3151
        gfc_status and exit.
3152
        (gfc_handle_option): Rename verbose into dump_parse_tree.
3153
        * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
3154
 
3155
2008-04-05  Jerry DeLisle  
3156
            Francois-Xavier Coudert  
3157
 
3158
        PR fortran/25829 28655
3159
        * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
3160
        * gfortran.h (gfc_statement): Add ST_WAIT enumerator.
3161
        (gfc_open): Add pointers for decimal, encoding, round, sign,
3162
        asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
3163
        encoding, pending, round, sign, size, id.
3164
        (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
3165
        asynchronous, blank, decimal, delim, pad, round, sign.
3166
        (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
3167
        wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
3168
        * trans-stmt.h (gfc_trans_wait): New function prototype.
3169
        * trans.c (gfc_trans_code): Add case for EXEC_WAIT.
3170
        * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
3171
        ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
3172
        (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
3173
        tags. (gfc_resolve_open): Remove comment around check for allowed
3174
        values and ASYNCHRONOUS, update it.  Likewise for DECIMAL, ENCODING,
3175
        ROUND, and SIGN. (match_dt_element): Add matching for new tags.
3176
        (gfc_free_wait): New function. (gfc_resolve_wait): New function.
3177
        (match_wait_element): New function. (gfc_match_wait): New function.
3178
        * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
3179
        (resolve_code): Add case for EXEC_WAIT.
3180
        * st.c (gfc_free_statement): Add case for EXEC_WAIT.
3181
        * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
3182
        Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
3183
        (gfc_build_io_library_fndecls): Add function declaration for st_wait.
3184
        (gfc_trans_open): Add mask bits for new I/O tags.
3185
        (gfc_trans_inquire): Add mask bits for new I/O tags.
3186
        (gfc_trans_wait): New translation function.
3187
        (build_dt): Add mask bits for new I/O tags.
3188
        * match.c (gfc_match_if) Add matcher for "wait".
3189
        * match.h (gfc_match_wait): Prototype for new function.
3190
        * ioparm.def: Add new I/O parameter definitions.
3191
        * parse.c (decode_statement): Add match for "wait" statement.
3192
        (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
3193
 
3194
2008-04-03  Jakub Jelinek  
3195
 
3196
        PR fortran/35786
3197
        * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
3198
        isn't a variable.
3199
 
3200
2008-04-03  Tom Tromey  
3201
 
3202
        * Make-lang.in (fortran_OBJS): New variable.
3203
 
3204
2008-04-03  Paolo Bonzini  
3205
 
3206
        * f95-lang.c (insert_block): Kill.
3207
 
3208
2008-04-01  George Helffrich 
3209
 
3210
        PR fortran/35154, fortran/23057
3211
        * trans-common.c (create_common):  Add decl to function
3212
        chain to preserve identifier scope in debug output.
3213
 
3214
2008-04-01  Joseph Myers  
3215
 
3216
        * gfortran.texi: Include gpl_v3.texi instead of gpl.texi
3217
        * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
3218
        gpl.texi.
3219
 
3220
2008-03-30  Paul Thomas  
3221
 
3222
        PR fortran/35740
3223
        * resolve.c (resolve_function, resolve_call): If the procedure
3224
        is elemental do not look for noncopying intrinsics.
3225
 
3226
2008-03-29  Paul Thomas  
3227
 
3228
        PR fortran/35698
3229
        * trans-array.c (gfc_array_init_size): Set 'size' zero if
3230
        negative in one dimension.
3231
 
3232
        PR fortran/35702
3233
        * trans-expr.c (gfc_trans_string_copy): Only assign a char
3234
        directly if the lhs and rhs types are the same.
3235
 
3236
2008-03-28  Daniel Franke  
3237
            Paul Richard Thomas 
3238
 
3239
        PR fortran/34714
3240
        * primary.c (match_variable): Improved matching of function
3241
        result variables.
3242
        * resolve.c (resolve_allocate_deallocate): Removed checks if
3243
        the actual argument for STAT is a variable.
3244
 
3245
2008-03-28  Tobias Burnus  
3246
 
3247
        * symbol.c (gfc_get_default_type): Fix error message; option
3248
        -fallow_leading_underscore should be -fallow-leading-underscore
3249
 
3250
2008-03-27  Jerry DeLisle  
3251
 
3252
        PR fortran/35724
3253
        * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
3254
        optional argument attribute.
3255
 
3256
2008-03-27  Tom Tromey  
3257
 
3258
        * Make-lang.in: Revert automatic dependency patch.
3259
 
3260
2008-03-25  Tom Tromey  
3261
 
3262
        * Make-lang.in: Remove .o targets.
3263
        (fortran_OBJS): New variable.
3264
        (fortran/gfortranspec.o): Move to fortran/.  Reduce to variable
3265
        setting.
3266
        (GFORTRAN_D_OBJS): Update.
3267
        (GFORTRAN_TRANS_DEPS): Remove.
3268
 
3269
2008-03-24  Paul Thomas  
3270
 
3271
        PR fortran/34813
3272
        * resolve.c (resolve_structure_cons): It is an error to assign
3273
        NULL to anything other than a pointer or allocatable component.
3274
 
3275
        PR fortran/33295
3276
        * resolve.c (resolve_symbol): If the symbol is a derived type,
3277
        resolve the derived type.  If the symbol is a derived type
3278
        function, ensure that the derived type is visible in the same
3279
        namespace as the function.
3280
 
3281
2008-03-23  Tobias Schlüter  
3282
 
3283
        * trans.h: Use fold_build in build1_v, build2_v and build3_v
3284
        macros.
3285
        * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
3286
        Don't use build2_v macro.
3287
 
3288
2008-03-19  Daniel Franke  
3289
 
3290
        PR fortran/35152
3291
        * interface.c (gfc_procedure_use): Check for keyworded arguments in
3292
        procedures without explicit interfaces.
3293
 
3294
2008-03-16  Paul Thomas  
3295
 
3296
        PR fortran/35470
3297
        * resolve.c (check_assumed_size_reference):  Only visit the
3298
        first reference and look directly at the highest dimension.
3299
 
3300
2008-03-15  Jerry DeLisle  
3301
 
3302
        PR fortran/35184
3303
        * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
3304
        assert.
3305
 
3306
2008-03-15  Daniel Franke  
3307
 
3308
        PR fortran/35584
3309
        * resolve.c (resolve_branch): Less strict and pessimistic warning
3310
        message.
3311
 
3312
2008-03-11  Paolo Bonzini  
3313
 
3314
        * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
3315
        (gfc_be_parse_file): Call clear_binding_stack from here.
3316
        (gfc_clear_binding_stack): Rename to clear_binding_stack.
3317
 
3318
2008-03-09  Paul Thomas  
3319
 
3320
        PR fortran/35474
3321
        * module.c (mio_symtree_ref): After providing a symbol for a
3322
        missing equivalence member, resolve and NULL the fixups.
3323
 
3324
2008-03-09  Ralf Wildenhues  
3325
 
3326
        * invoke.texi (Error and Warning Options): Document
3327
        -Wline-truncation.
3328
 
3329
2008-03-08  Francois-Xavier Coudert  
3330
 
3331
        PR fortran/34956
3332
        * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
3333
        checking bounds of absent optional arguments.
3334
 
3335
2008-03-06  Francois-Xavier Coudert  
3336
 
3337
        PR fortran/33197
3338
        * intrinsic.c (add_functions): Add simplification routines for
3339
        ERF, DERF, ERFC and DERFC.
3340
        * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
3341
        extensions into Fortran 2008 features.
3342
        * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
3343
        prototypes.
3344
        * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.
3345
 
3346
2008-03-03  Francois-Xavier Coudert  
3347
 
3348
        PR fortran/33197
3349
        * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
3350
        ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
3351
        ERFC_SCALED, LOG_GAMMA and HYPOT.
3352
        * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
3353
        gfc_resolve_hypot): New prototypes.
3354
        * mathbuiltins.def: Add HYPOT builtin. Make complex versions of
3355
        ACOSH, ASINH and ATANH available.
3356
        * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
3357
        * lang.opt: Add -std=f2008 option.
3358
        * libgfortran.h: Define GFC_STD_F2008.
3359
        * lang-specs.h: Add .f08 and .F08 file suffixes.
3360
        * iresolve.c (gfc_resolve_hypot): New function.
3361
        * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
3362
        * check.c (gfc_check_hypot): New function.
3363
        * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
3364
        * options.c (set_default_std_flags): Allow Fortran 2008 by default.
3365
        (form_from_filename): Add .f08 suffix.
3366
        (gfc_handle_option): Handle -std=f2008 option.
3367
        * simplify.c (gfc_simplify_hypot): New function.
3368
        * gfortran.texi: Document Fortran 2008 status and file extensions.
3369
        * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
3370
        as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
3371
        ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
3372
        * invoke.texi: Document the new -std=f2008 option.
3373
 
3374
2008-03-02  Jakub Jelinek  
3375
 
3376
        * gfortranspec.c (lang_specific_driver): Update copyright notice
3377
        dates.
3378
 
3379
2008-02-29  Jerry DeLisle  
3380
 
3381
        PR fortran/35059
3382
        * expr.c (find_array_element): Modify traversing the constructor to
3383
        avoid trying to access NULL memory pointed to by next for the
3384
        last element. (find_array_section): Exit while loop if cons->next is
3385
        NULL.
3386
        * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
3387
        (gfc_conv_function_call): Same.
3388
        * decl.c (gfc_match_implicit): Same.
3389
        * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.
3390
 
3391
2008-02-28  Daniel Franke  
3392
 
3393
        PR fortran/31463
3394
        PR fortran/33950
3395
        PR fortran/34296
3396
        * lang.opt: Added -Wreturn-type.
3397
        * options.c (gfc_handle_option): Recognize -Wreturn-type.
3398
        * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
3399
        where the result value is not set.
3400
        (gfc_generate_function_code): Likewise.
3401
        (generate_local_decl): Emit warnings for funtions whose RESULT
3402
        variable is not set.
3403
 
3404
2008-02-28  Francois-Xavier Coudert  
3405
 
3406
        PR fortran/34868
3407
        * trans-expr.c (gfc_conv_variable): Don't build indirect
3408
        references when explicit interface is mandated.
3409
        * resolve.c (resolve_formal_arglist): Set attr.always_explicit
3410
        on the result symbol as well as the procedure symbol.
3411
 
3412
2008-02-27  Francois-Xavier Coudert  
3413
 
3414
        PR fortran/33387
3415
        * trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
3416
        gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
3417
        gfor_fndecl_math_exponent16.
3418
        * f95-lang.c (build_builtin_fntypes): Add new function types.
3419
        (gfc_init_builtin_functions): Add new builtins for nextafter,
3420
        frexp, ldexp, fabs, scalbn and inf.
3421
        * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
3422
        (gfc_resolve_scale): Don't convert type of second argument.
3423
        (gfc_resolve_set_exponent): Likewise.
3424
        (gfc_resolve_size): Don't add hidden arguments.
3425
        * trans-decl.c: Remove gfor_fndecl_math_exponent4,
3426
        gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
3427
        gfor_fndecl_math_exponent16.
3428
        * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
3429
        for scalbn, fraction, nearest, rrspacing, set_exponent and
3430
        spacing.
3431
        (gfc_conv_intrinsic_exponent): Directly call frexp.
3432
        (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
3433
        gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
3434
        gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
3435
        functions.
3436
        (gfc_conv_intrinsic_function): Use the new functions above.
3437
 
3438
2008-02-26  Tobias Burnus  
3439
 
3440
        PR fortran/35033
3441
        * interface.c (check_operator_interface): Show better line for error
3442
        messages; fix constrains for user-defined assignment operators.
3443
        (gfc_extend_assign): Fix constrains for user-defined assignment
3444
        operators.
3445
 
3446
2008-02-26  Tom Tromey  
3447
 
3448
        * trans-io.c (set_error_locus): Remove old location code.
3449
        * trans-decl.c (gfc_set_decl_location): Remove old location code.
3450
        * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
3451
        * scanner.c (gfc_gobble_whitespace): Remove old location code.
3452
        (get_file): Likewise.
3453
        (preprocessor_line): Likewise.
3454
        (load_file): Likewise.
3455
        (gfc_new_file): Likewise.
3456
        * trans.c (gfc_trans_runtime_check): Remove old location code.
3457
        (gfc_get_backend_locus): Likewise.
3458
        (gfc_set_backend_locus): Likewise.
3459
        * data.c (gfc_assign_data_value): Remove old location code.
3460
        * error.c (show_locus): Remove old location code.
3461
        * gfortran.h (gfc_linebuf): Remove old location code.
3462
        (gfc_linebuf_linenum): Remove old-location variant.
3463
 
3464
2008-02-25  Francois-Xavier Coudert  
3465
 
3466
        PR fortran/34729
3467
        * trans-const.c (gfc_build_string_const): Don't call gettext.
3468
        (gfc_build_localized_string_const): New function.
3469
        * trans-const.h (gfc_build_localized_string_const): New prototype.
3470
        * trans.c (gfc_trans_runtime_check): Use
3471
        gfc_build_localized_string_const instead of gfc_build_string_const.
3472
        (gfc_call_malloc): Likewise.
3473
        (gfc_allocate_with_status): Likewise.
3474
        (gfc_allocate_array_with_status): Likewise.
3475
        (gfc_deallocate_with_status): Likewise.
3476
        (gfc_call_realloc): Likewise.
3477
        * trans-io.c (gfc_trans_io_runtime_check): Likewise.
3478
 
3479
2008-02-24  Tobias Schlüter  
3480
 
3481
        * arith.c: Update copyright years.
3482
        * arith.h: Likewise.
3483
        * array.c: Likewise.
3484
        * bbt.c: Likewise.
3485
        * check.c: Likewise.
3486
        * data.c: Likewise.
3487
        * data.h: Likewise.
3488
        * decl.c: Likewise.
3489
        * dependency.c: Likewise.
3490
        * dependency.h: Likewise.
3491
        * dump-parse-tree.c: Likewise.
3492
        * error.c: Likewise.
3493
        * expr.c: Likewise.
3494
        * gfc-internals.texi: Likewise.
3495
        * gfortran.h: Likewise.
3496
        * gfortran.texi: Likewise.
3497
        * gfortranspec.c: Likewise.
3498
        * interface.c: Likewise.
3499
        * intrinsic.c: Likewise.
3500
        * intrinsic.h: Likewise.
3501
        * intrinsic.texi: Likewise.
3502
        * invoke.texi: Likewise.
3503
        * io.c: Likewise.
3504
        * iresolve.c: Likewise.
3505
        * iso-c-binding.def: Likewise.
3506
        * iso-fortran-env.def: Likewise.
3507
        * lang-specs.h: Likewise.
3508
        * lang.opt: Likewise.
3509
        * libgfortran.h: Likewise.
3510
        * match.c: Likewise.
3511
        * match.h: Likewise.
3512
        * matchexp.c: Likewise.
3513
        * misc.c: Likewise.
3514
        * module.c: Likewise.
3515
        * openmp.c: Likewise.
3516
        * options.c: Likewise.
3517
        * parse.c: Likewise.
3518
        * parse.h: Likewise.
3519
        * primary.c: Likewise.
3520
        * resolve.c: Likewise.
3521
        * scanner.c: Likewise.
3522
        * simplify.c: Likewise.
3523
        * st.c: Likewise.
3524
        * symbol.c: Likewise.
3525
        * target-memory.c: Likewise.
3526
        * target-memory.h: Likewise.
3527
        * trans-array.h: Likewise.
3528
        * trans-const.h: Likewise.
3529
        * trans-stmt.h: Likewise.
3530
        * trans-types.c: Likewise.
3531
        * trans-types.h: Likewise.
3532
        * types.def: Likewise.
3533
 
3534
2008-02-24  Jerry DeLisle  
3535
 
3536
        PR fortran/35223
3537
        * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
3538
        (gfc_simplify_ibset): Remove call to range_check.
3539
        (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
3540
        (gfc_simplify_real): Add call gfc_clear_ts to initialize the
3541
        temporary gfc_typspec variable.
3542
 
3543
2008-02-24  Tobias Schlüter  
3544
 
3545
        * trans-array.c (gfc_conv_descriptor_data_get,
3546
        gfc_conv_descriptor_data_set_internal,
3547
        gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
3548
        gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
3549
        gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
3550
        gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
3551
        gfc_conv_array_transpose, gfc_grow_array,
3552
        gfc_trans_array_constructor_subarray,
3553
        gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
3554
        gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
3555
        gfc_conv_array_initializer, gfc_trans_array_bounds,
3556
        gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
3557
        gfc_get_dataptr_offset, gfc_conv_array_parameter,
3558
        gfc_trans_dealloc_allocated, get_full_array_size,
3559
        gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
3560
        instead of buildN.
3561
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
3562
        gfc_conv_component_ref, gfc_conv_cst_int_power,
3563
        gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
3564
        * trans-common.c (create_common): Likewise.
3565
        * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
3566
        Likewise.
3567
        * trans-const.c (gfc_conv_constant_to_tree): Likewise.
3568
        * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
3569
        gfc_trans_integer_select, gfc_trans_character_select,
3570
        gfc_trans_forall_loop, compute_overall_iter_number,
3571
        gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
3572
        gfc_trans_deallocate): Likewise.
3573
        * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
3574
        gfc_allocate_with_status, gfc_allocate_array_with_status,
3575
        gfc_deallocate_with_status): Likewise.
3576
        * f95-lang.c (gfc_truthvalue_conversion): Likewise.
3577
        * trans-io.c (set_parameter_const, set_parameter_value,
3578
        set_parameter_ref, set_string, set_internal_unit, io_result,
3579
        set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
3580
        * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
3581
        gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
3582
        gfc_generate_function_code): Likewise.
3583
        * convert.c (convert): Likewise.
3584
        * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
3585
        build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
3586
        gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
3587
        gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
3588
        gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
3589
        gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
3590
        gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
3591
        gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
3592
        gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
3593
        gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
3594
        gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
3595
        gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
3596
        gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
3597
        gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
3598
        gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
3599
        gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
3600
        gfc_conv_intrinsic_repeat): Likewise.
3601
 
3602
2008-02-23  Francois-Xavier Coudert  
3603
 
3604
        PR target/25477
3605
        * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
3606
        * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
3607
        * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
3608
        gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
3609
        * trans-decl.c: Likewise.
3610
 
3611
2008-02-22  Jerry DeLisle  
3612
 
3613
        PR fortran/35059
3614
        * expr.c (find_array_element): Modify traversing the constructor to
3615
        avoid trying to access NULL memory pointed to by next for the
3616
        last element. (find_array_section): Exit while loop if cons->next is
3617
        NULL.
3618
 
3619
2008-02-22  Jerry DeLisle  
3620
 
3621
        PR fortran/34907
3622
        * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
3623
        structure.
3624
        (gfc_resolve_aint): Likewise.
3625
        (gfc_resolve_anint): Likewise.
3626
        (gfc_resolve_besn): Likewise.
3627
        (gfc_resolve_cshift): Likewise.
3628
        (gfc_resolve_ctime): Likewise.
3629
        (gfc_resolve_eoshift): Likewise.
3630
        (gfc_resolve_index_func): Likewise.
3631
        (gfc_resolve_isatty): Likewise.
3632
        (gfc_resolve_malloc): Likewise.
3633
        (gfc_resolve_rrspacing): Likewise.
3634
        (gfc_resolve_scale): Likewise.
3635
        (gfc_resolve_set_exponent): Likewise.
3636
        (gfc_resolve_spacing): Likewise.
3637
        (gfc_resolve_spacing): Likewise.
3638
        (gfc_resolve_fgetc): Likewise.
3639
        (gfc_resolve_fputc): Likewise.
3640
        (gfc_resolve_ftell): Likewise.
3641
        (gfc_resolve_ttynam): Likewise.
3642
        (gfc_resolve_alarm_sub): Likewise.
3643
        (gfc_resolve_mvbits): Likewise.
3644
        (gfc_resolve_getarg): Likewise.
3645
        (gfc_resolve_signal_sub): Likewise.
3646
        (gfc_resolve_exit): Likewise.
3647
        (gfc_resolve_flush): Likewise.
3648
        (gfc_resolve_free): Likewise.
3649
        (gfc_resolve_ctime_sub): Likewise.
3650
        (gfc_resolve_fgetc_sub): Likewise.
3651
        (gfc_resolve_fputc_sub): Likewise.
3652
        (gfc_resolve_fseek_sub): Likewise.
3653
        (gfc_resolve_ftell_sub): Likewise.
3654
        (gfc_resolve_ttynam_sub): Likewise.
3655
 
3656
2008-02-22  Ralf Wildenhues  
3657
 
3658
        * gfc-internals.texi: Fix typos and markup nits.
3659
        * gfortran.texi: Likewise.
3660
        * intrinsic.texi: Likewise.
3661
 
3662
2008-02-21  Richard Guenther  
3663
 
3664
        * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
3665
        as unary PAREN_EXPR for real and complex typed expressions.
3666
        (gfc_conv_unary_op): Fold the built tree.
3667
 
3668
2008-02-20  Tobias Burnus  
3669
 
3670
        PR fortran/34997
3671
        * match.c (gfc_match_name): Improve error message for '$'.
3672
 
3673
2008-02-19  Daniel Franke  
3674
 
3675
        PR fortran/35030
3676
        * expr.c (gfc_check_pointer_assign): Add type and kind information
3677
        to type-mismatch message.
3678
        (gfc_check_assign): Unify error messages.
3679
 
3680
2008-02-16  Francois-Xavier Coudert  
3681
 
3682
        PR fortran/34952
3683
        * gfortran.texi: Create new section for unimplemented extensions.
3684
        Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
3685
        Remove "smaller projects" list. Fix a few typos.
3686
 
3687
2008-02-15  Francois-Xavier Coudert  
3688
 
3689
        * intrinsic.texi: Rename INDEX node to avoid clashing with
3690
        index.html on case-insensitive systems.
3691
 
3692
2008-02-15  Francois-Xavier Coudert  
3693
 
3694
        PR fortran/35150
3695
        * trans-expr.c (gfc_conv_function_call): Force evaluation of
3696
        se->expr.
3697
 
3698
2008-02-10  Daniel Franke  
3699
 
3700
        PR fortran/35019
3701
        * lang.opt: Allow '-J' next to '-J ',
3702
        likewise '-I ' and '-I'.
3703
 
3704
2008-02-06  Kaveh R. Ghazi  
3705
 
3706
        PR other/35107
3707
        * Make-lang.in (f951): Add $(GMPLIBS).
3708
 
3709
2008-02-05  Francois-Xavier Coudert  
3710
 
3711
        PR fortran/35037
3712
        * trans-common.c (build_field): Mark fields as volatile when needed.
3713
 
3714
2008-02-05  Tobias Burnus  
3715
 
3716
        PR fortran/35093
3717
        * data.c (gfc_assign_data_value): Only free "size" if
3718
        it has not already been freed.
3719
 
3720
2008-02-05  Paul Thomas  
3721
 
3722
        PR fortran/34945
3723
        * array.c (match_array_element_spec): Remove check for negative
3724
        array size.
3725
        (gfc_resolve_array_spec): Add check for negative size.
3726
 
3727
2008-02-05  Paul Thomas  
3728
 
3729
        PR fortran/32315
3730
        * data.c (gfc_assign_data_value): Add bounds check for array
3731
        references.
3732
 
3733
2008-02-04  Daniel Franke  
3734
 
3735
        * resolve.c (resolve_where): Fix typo.
3736
        (gfc_resolve_where_code_in_forall): Likewise.
3737
 
3738
2008-02-03  Paul Thomas  
3739
 
3740
        PR fortran/32760
3741
        * resolve.c (resolve_allocate_deallocate): New function.
3742
        (resolve_code): Call it for allocate and deallocate.
3743
        * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
3744
        the checking of the STAT tag and put in above new function.
3745
        * primary,c (match_variable): Do not fix flavor of host
3746
        associated symbols yet if the type is not known.
3747
 
3748
2008-01-31  Paul Thomas  
3749
 
3750
        PR fortran/34910
3751
        * expr.c (gfc_check_assign): It is an error to assign
3752
        to a sibling procedure.
3753
 
3754
2008-01-30  Paul Thomas  
3755
 
3756
        PR fortran/34975
3757
        * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
3758
        delete_symtree to gfc_delete_symtree.
3759
        * gfortran.h : Add prototype for gfc_delete_symtree.
3760
        * module.c (load_generic_interfaces): Transfer symbol to a
3761
        unique symtree and delete old symtree, instead of renaming.
3762
        (read_module): The rsym and the found symbol are the same, so
3763
        the found symtree can be deleted.
3764
 
3765
        PR fortran/34429
3766
        * decl.c (match_char_spec): Remove the constraint on deferred
3767
        matching of functions and free the length expression.
3768
        delete_symtree to gfc_delete_symtree.
3769
        (gfc_match_type_spec): Whitespace.
3770
        (gfc_match_function_decl): Defer characteristic association for
3771
        all types except BT_UNKNOWN.
3772
        * parse.c (decode_specification_statement): Only derived type
3773
        function matching is delayed to the end of specification.
3774
 
3775
2008-01-28  Tobias Burnus  
3776
 
3777
        PR libfortran/34980
3778
        * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
3779
 
3780
2008-01-27  Jerry DeLisle  
3781
 
3782
        PR fortran/34990
3783
        * array.c (gfc_check_constructor_type): Revert clearing the expression.
3784
 
3785
2008-01-26  Tobias Burnus  
3786
 
3787
        PR fortran/34848
3788
        * trans-expr.c (gfc_conv_function_call): Don't call
3789
        gfc_add_interface_mapping if the expression is NULL.
3790
 
3791
2008-01-26  Jerry DeLisle  
3792
 
3793
        PR fortran/31610
3794
        * trans-array.c (gfc_trans_create_temp_array): Remove call to
3795
        gcc_assert (integer_zerop (loop->from[n])).
3796
 
3797
2008-01-25  Daniel Franke  
3798
 
3799
        PR fortran/34661
3800
        * resolve.c (resolve_where): Added check if user-defined assignment
3801
        operator is an elemental subroutine.
3802
        (gfc_resolve_where_code_in_forall): Likewise.
3803
 
3804
2008-01-24  Daniel Franke  
3805
 
3806
        PR fortran/33375
3807
        PR fortran/34858
3808
        * gfortran.h: Revert changes from 2008-01-17.
3809
        * match.c: Likewise.
3810
        * symbol.c: Likewise.
3811
        (gfc_undo_symbols): Undo namespace changes related to common blocks.
3812
 
3813
2008-01-24  Daniel Franke  
3814
 
3815
        PR fortran/34202
3816
        * data.c (formalize_structure_cons): Skip formalization on
3817
        empty structures.
3818
 
3819
2008-01-24  Daniel Franke  
3820
 
3821
        * gfortran.texi (OpenMP): Extended existing documentation.
3822
        (contributors): Added major contributors of 2008 that were
3823
        not listed yet.
3824
        (proposed extensions): Removed implemented items.
3825
 
3826
2008-01-24  Paul Thomas  
3827
 
3828
        PR fortran/34872
3829
        * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS  is
3830
        seen, check for a statement label and, if present, delete it
3831
        and set the locus to the start of the statement.
3832
 
3833
2008-01-22  Paul Thomas  
3834
 
3835
        PR fortran/34875
3836
        * trans-io.c (gfc_trans_transfer): If the array reference in a
3837
        read has a vector subscript, use gfc_conv_subref_array_arg to
3838
        copy back the temporary.
3839
 
3840
2008-01-22  Tobias Burnus  
3841
 
3842
        PR fortran/34848
3843
        * interface.c (compare_actual_formal): Fix adding type
3844
        to missing_arg_type for absent optional arguments.
3845
 
3846
2008-01-22  Tobias Burnus  
3847
 
3848
        PR fortran/34907
3849
        * parse.c (parse_spec): Change = into ==.
3850
 
3851
2008-01-22  Daniel Franke  
3852
 
3853
        PR fortran/34915
3854
        * expr.c (check_elemental): Fix check for valid data types.
3855
 
3856
2008-01-22  Tobias Burnus  
3857
 
3858
        PR fortran/34899
3859
        * scanner.c (load_line): Support  continuation lines.
3860
        * invoke.texi (-Wtabs): Document this.
3861
 
3862
2008-01-22  Paul Thomas  
3863
 
3864
        PR fortran/34896
3865
        * module.c (read_module): Set use_rename attribute.
3866
 
3867
2008-01-21  Tobias Burnus  
3868
 
3869
        PR fortran/34901
3870
        * interface.c (compare_parameter): Improved error message
3871
        for arguments of same type and mismatched kinds.
3872
 
3873
2008-01-20  Paul Thomas  
3874
 
3875
        PR fortran/34861
3876
        * resolve.c (resolve_entries): Do not do an array bounds check
3877
        if the result symbols are the same.
3878
 
3879
        PR fortran/34854
3880
        * module.c (read_module) : Hide the symtree of the previous
3881
        version of the symbol if this symbol is renamed.
3882
 
3883
2008-01-20  Paul Thomas  
3884
 
3885
        PR fortran/34784
3886
        * array.c (gfc_check_constructor_type): Clear the expression ts
3887
        so that the checking starts from the deepest level of array
3888
        constructor.
3889
        * primary.c (match_varspec): If an unknown type is changed to
3890
        default character and the attempt to match a substring fails,
3891
        change it back to unknown.
3892
 
3893
        PR fortran/34785
3894
        * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
3895
        NULL for an array constructor, use the cl.length expression to
3896
        build it.
3897
        (gfc_conv_array_parameter): Change call to gfc_evaluate_now to
3898
        a tree assignment.
3899
 
3900
2008-01-19  Thomas Koenig  
3901
 
3902
        PR fortran/34817
3903
        PR fortran/34838
3904
        * iresolve.c (gfc_resolve_all):  Remove conversion of mask
3905
        argument to kind=1 by removing call to resolve_mask_arg().
3906
        (gfc_resolve_any):  Likewise.
3907
 
3908
2008-01-19  Tobias Burnus  
3909
 
3910
        PR fortran/34760
3911
        * primary.c (match_variable): Handle FL_UNKNOWN without
3912
        uneducated guessing.
3913
        (match_variable): Improve error message.
3914
 
3915
2008-01-18  Tobias Burnus  
3916
 
3917
        PR fortran/32616
3918
        * interface.c (get_expr_storage_size): Return storage size
3919
        for array element designators.
3920
        (compare_actual_formal): Reject unequal string sizes for
3921
        assumed-shape dummy arguments. And fix error message for
3922
        array-sections with vector subscripts.
3923
 
3924
2008-01-17  Jerry DeLisle  
3925
 
3926
        PR fortran/34556
3927
        * simplify.c (is_constant_array_expr): New static function that returns
3928
        true if the given expression is an array and is constant.
3929
        (gfc_simplify_reshape): Use new function.
3930
 
3931
2008-01-17  H.J. Lu  
3932
 
3933
        PR fortran/33375
3934
        * symbol.c (free_common_tree): Renamed to ...
3935
        (gfc_free_common_tree): This.  Remove static.
3936
        (gfc_free_namespace): Updated.
3937
 
3938
        * gfortran.h (gfc_free_common_tree): New.
3939
 
3940
        * match.c (gfc_match_common): Call gfc_free_common_tree () with
3941
        gfc_current_ns->common_root and set gfc_current_ns->common_root
3942
        to NULL on syntax error.
3943
 
3944
2008-01-18  Richard Sandiford  
3945
 
3946
        PR fortran/34686
3947
        * trans-expr.c (gfc_conv_function_call): Use proper
3948
        type for returned character pointers.
3949
 
3950
2008-01-17  Paul Thomas  
3951
 
3952
        PR fortran/34429
3953
        PR fortran/34431
3954
        PR fortran/34471
3955
        * decl.c : Remove gfc_function_kind_locus and
3956
        gfc_function_type_locus. Add gfc_matching_function.
3957
        (match_char_length): If matching a function and the length
3958
        does not match, return MATCH_YES and try again later.
3959
        (gfc_match_kind_spec): The same.
3960
        (match_char_kind): The same.
3961
        (gfc_match_type_spec): The same for numeric and derived types.
3962
        (match_prefix): Rename as gfc_match_prefix.
3963
        (gfc_match_function_decl): Except for function valued character
3964
        lengths, defer applying kind, type and charlen info until the
3965
        end of specification block.
3966
        gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
3967
        parse.c (decode_specification_statement): New function.
3968
        (decode_statement): Call it when a function has kind = -1. Set
3969
        and reset gfc_matching function, as function statement is being
3970
        matched.
3971
        (match_deferred_characteristics): Simplify with a single call
3972
        to gfc_match_prefix. Do appropriate error handling. In any
3973
        case, make sure that kind = -1 is reset or corrected.
3974
        (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
3975
        Throw an error if kind = -1 after last specification statement.
3976
        parse.h : Prototype for gfc_match_prefix.
3977
 
3978
2008-01-16  Tobias Burnus  
3979
 
3980
        PR fortran/34796
3981
        * interface.c (compare_parameter): Allow AS_DEFERRED array
3982
        elements and reject attr.pointer array elemenents.
3983
        (get_expr_storage_size): Return storage size of elements of
3984
        assumed-shape and pointer arrays.
3985
 
3986
2008-01-15  Sebastian Pop  
3987
 
3988
        * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
3989
        for flag_tree_parallelize_loops.
3990
 
3991
2008-01-15  Thomas Koenig  
3992
 
3993
        PR libfortran/34671
3994
        * iresolve.c (gfc_resolve_all):  Call resolve_mask_arg.
3995
        (gfc_resolve_any):  Likewise.
3996
        (gfc_resolve_count):  Likewise.  Don't append kind of
3997
        argument to function name.
3998
 
3999
2008-01-13  Tobias Burnus  
4000
 
4001
        PR fortran/34665
4002
        * resolve.c (resolve_actual_arglist): For expressions,
4003
        also check for assume-sized arrays.
4004
        * interface.c (compare_parameter): Move F2003 character checks
4005
        here, print error messages here, reject elements of
4006
        assumed-shape array as argument to dummy arrays.
4007
        (compare_actual_formal): Update for the changes above.
4008
 
4009
2008-01-13  Tobias Burnus  
4010
 
4011
        PR fortran/34763
4012
        * decl.c (contained_procedure): Only check directly preceeding state.
4013
 
4014
2008-01-13  Tobias Burnus  
4015
 
4016
        PR fortran/34759
4017
        * check.c (gfc_check_shape): Accept array ranges of
4018
        assumed-size arrays.
4019
 
4020
2008-01-12  Jerry DeLisle  
4021
 
4022
        PR fortran/34432
4023
        * match.c (gfc_match_name): Don't error if leading character is a '(',
4024
        just return MATCH_NO.
4025
 
4026
2008-01-11  Jerry DeLisle  
4027
 
4028
        PR fortran/34722
4029
        * trans-io.c (create_dummy_iostat): Commit the symbol.
4030
 
4031
2008-01-11  Paul Thomas  
4032
 
4033
        PR fortran/34537
4034
        * simplify.c (gfc_simplify_transfer): Return NULL if the size
4035
        of the element is unavailable and only assign character length
4036
        to the result, if 'mold' is constant.
4037
 
4038
2008-01-10  Paul Thomas  
4039
 
4040
        PR fortran/34396
4041
        * trans-array.c (gfc_trans_array_ctor_element):  Use gfc_trans_string_copy
4042
        to assign strings and perform bounds checks on the string length.
4043
        (get_array_ctor_strlen): Remove bounds checking.
4044
        (gfc_trans_array_constructor): Initialize string length checking.
4045
        * trans-array.h : Add prototype for gfc_trans_string_copy.
4046
 
4047
2008-01-08  Richard Guenther  
4048
 
4049
        PR fortran/34706
4050
        PR tree-optimization/34683
4051
        * trans-types.c (gfc_get_array_type_bounds): Use an array type
4052
        with known size for accesses if that is known.
4053
 
4054
2008-01-08  Paul Thomas  
4055
 
4056
        PR fortran/34476
4057
        * expr.c (find_array_element): Check that the array bounds are
4058
        constant before using them.  Use lower, as well as upper bound.
4059
        (check_restricted): Allow implied index variable.
4060
 
4061
2008-01-08  Paul Thomas  
4062
 
4063
        PR fortran/34681
4064
        * trans_array.c (gfc_trans_deferred_array): Do not null the
4065
        data pointer on entering scope, nor deallocate it on leaving
4066
        scope, if the symbol has the 'save' attribute.
4067
 
4068
        PR fortran/34704
4069
        * trans_decl.c (gfc_finish_var_decl): Derived types with
4070
        allocatable components and an initializer must be TREE_STATIC.
4071
 
4072
2008-01-07  Paul Thomas  
4073
 
4074
        PR fortran/34672
4075
        * module.c (write_generic): Rewrite completely.
4076
        (write_module): Change call to write_generic.
4077
 
4078
2008-01-06  Jerry DeLisle  
4079
 
4080
        PR fortran/34659
4081
        * scanner.c (load_line): Do not count ' ' as printable when checking for
4082
        continuations.
4083
 
4084
2008-01-06  Paul Thomas  
4085
 
4086
        PR fortran/34545
4087
        * module.c (load_needed): If the namespace has no proc_name
4088
        give it the module symbol.
4089
 
4090
2008-01-06  Jerry DeLisle  
4091
 
4092
        PR fortran/34387
4093
        * trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert
4094
        the dummy variable expression, test for NULL, and pass the variable
4095
        address to the called function.
4096
 
4097
2008-01-06  Tobias Burnus  
4098
 
4099
        PR fortran/34658
4100
        * match.c (gfc_match_common): Remove blank common in
4101
        DATA BLOCK warning.
4102
        * resolve.c (resolve_common_vars): New function.
4103
        (resolve_common_blocks): Move checks to resolve_common_vars
4104
        and invoke that function.
4105
        (resolve_types): Call resolve_common_vars for blank commons.
4106
 
4107
2008-01-06  Tobias Burnus  
4108
 
4109
        PR fortran/34655
4110
        * resolve.c (resolve_equivalence_derived): Reject derived types with
4111
        default initialization if equivalenced with COMMON variable.
4112
 
4113
2008-01-06  Tobias Burnus  
4114
 
4115
        PR fortran/34654
4116
        * io.c (check_io_constraints): Disallow unformatted I/O for
4117
        internal units.
4118
 
4119
2008-01-06  Tobias Burnus  
4120
 
4121
        PR fortran/34660
4122
        * resolve.c (resolve_formal_arglist): Reject dummy procedure in
4123
        ELEMENTAL functions.
4124
 
4125
2008-01-06  Tobias Burnus  
4126
 
4127
        PR fortran/34662
4128
        * interface.c (compare_actual_formal): Reject parameter
4129
        actual to intent(out) dummy.
4130
 
4131
2008-01-04  Tobias Burnus  
4132
 
4133
        PR fortran/34557
4134
        * primary.c (match_varspec): Gobble whitespace before
4135
        checking for '('.
4136
 
4137
 
4138
Copyright (C) 2008 Free Software Foundation, Inc.
4139
 
4140
Copying and distribution of this file, with or without modification,
4141
are permitted in any medium without royalty provided the copyright
4142
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.