re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
[platform/upstream/gcc.git] / gcc / fortran / ChangeLog
1 2011-03-27  Tobias Burnus  <burnus@net-b.de>
2
3         PR fortran/18918
4         * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
5         GFC_ISYM_NUM_IMAGES.
6         (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
7         * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
8         rename.
9         * invoke.texi (-fcoarray=): Document "lib" argument.
10         * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
11         * libgfortran.h (libgfortran_stat_codes): Add comments.
12         * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
13         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
14         Handle GFC_FCOARRAY_LIB.
15         * trans.h (gfc_init_coarray_decl): New prototype.
16         (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
17         gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
18         gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
19         gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
20         gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
21         New global variables.
22         * trans-decl.c: Declare several CAF functions (cf. above).
23         (gfc_build_builtin_function_decls): Initialize those.
24         (gfc_init_coarray_decl): New function.
25         (create_main_function): Call CAF init/finalize functions.
26         * trans-intrinsic.c (trans_this_image, trans_num_images): New.
27         (gfc_conv_intrinsic_function): Call those.
28         * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
29         Add code for GFC_FCOARRAY_LIB.
30
31 2011-03-26  Janus Weil  <janus@gcc.gnu.org>
32
33         PR fortran/48291
34         * class.c (get_unique_hashed_string): Adjust maximum allowable length
35         for unique type string.
36
37 2011-03-25  Kai Tietz  <ktietz@redhat.com>
38
39         * scanner.c (preprocessor_line): Use filename_cmp
40         instead of strcmp.
41
42 2011-03-25  Tobias Burnus  <burnus@net-b.de>
43
44         PR fortran/48174
45         PR fortran/45304
46         * trans-types.c (gfc_get_function_type): Don't use varargs if the
47         procedure is known to have no arguments.
48
49 2010-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
50
51         PR fortran/22572
52         * gfortran.h (gfc_option_t) : Add
53         flag_aggressive_function_elimination.
54         (gfc_dep_compare_functions):  Add prototype.
55         * lang.opt: Add faggressive-function-elimination.
56         * invoke.texi: Document -faggressive-function-elimination.
57         * frontend_passes (expr_array):  New static variable.
58         (expr_size):  Likewise.
59         (expr_count):  Likewise.
60         (current_code):  Likewise.
61         (current_ns):  Likewise.
62         (gfc_run_passes):  Allocate and free space for expressions.
63         (cfe_register_funcs):  New function.
64         (create_var):  New function.
65         (cfc_expr_0):  New function.
66         (cfe_code):  New function.
67         (optimize_namespace):  Invoke gfc_code_walker with cfe_code
68         and cfe_expr_0.
69         * dependency.c (gfc_dep_compare_functions):  New function.
70         (gfc_dep_compare_expr):  Use it.
71         * options.c (gfc_init_options):  Handle
72         flag_aggressive_function_elimination.
73         (gfc_handle_option):  Likewise.
74
75 2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
76
77         * arith.c (arith_power): Plug memory leak.
78
79 2011-03-12  Janus Weil  <janus@gcc.gnu.org>
80
81         PR fortran/48059
82         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
83         for polymorphic arguments.
84
85 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
86
87         PR fortran/48054
88         * intrinsic.texi: Clarify doc of logarithm functions.
89
90 2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
91
92         PR fortran/47552
93         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
94         the string length variable.
95
96 2011-03-11  Janus Weil  <janus@gcc.gnu.org>
97
98         PR fortran/47768
99         * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
100         (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.
101
102 2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
103             Jerry DeLisle  <jvdelisle@gcc.gnu.org>
104
105         PR fortran/47850
106         * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
107         the expression has an iterator.  Otherwise, iterate through the
108         array, checking for constant expressions for each element.
109
110 2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>
111
112         PR libfortran/47802
113         * intrinsic.texi: Update CTIME and FDATE documentation.
114
115 2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
116
117         * invoke.texi (Option Summary, Fortran Dialect Options)
118         (Preprocessing Options, Runtime Options, Code Gen Options):
119         Fix vertical list spacing by using @itemx for additinoal
120         items, empty line before @table.  Fix typos.
121
122 2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
123
124         PR fortran/47894
125         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
126
127 2011-02-26  Tobias Burnus  <burnus@net-b.de>
128
129         PR fortran/47846
130         * trans-stmt.c (gfc_trans_allocate): Fix allocation with
131         type-spec of deferred-length strings.
132
133 2011-02-26  Tobias Burnus  <burnus@net-b.de>
134
135         PR fortran/47886
136         * openmp.c (gfc_resolve_omp_directive): Resolve if()
137         condition of OpenMP's task.
138
139 2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
140
141         PR fortran/47894
142         * intrinsic.texi: Fix doc of the VERIFY intrinsic.
143
144 2011-02-24  Tobias Burnus  <burnus@net-b.de>
145
146         PR fortran/47872
147         * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
148         multitable for linebreak between different syntax variants.
149
150 2011-02-24  Richard Guenther  <rguenther@suse.de>
151
152         PR fortran/47839
153         * f95-lang.c (pushdecl): For externs in non-global scope push
154         a copy of the decl into the BLOCK.
155
156 2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>
157
158         PR fortran/40850
159         * trans.c (gfc_prepend_expr_to_block): New function.
160         * trans.h (gfc_prepend_expr_to_block): Declare.
161         * trans-array.c (gfc_conv_array_parameter): Replace
162         gfc_add_expr_to_block with gfc_prepend_expr_to_block.
163
164 2011-02-22  Paul Thomas  <pault@gcc.gnu.org>
165
166         PR fortran/45743
167         * trans-decl.c (gfc_get_extern_function_decl): Don't use the
168         gsymbol backend_decl if the procedure has a formal argument
169         that is a procedure.
170
171 2011-02-22  Tobias Burnus  <burnus@net-b.de>
172
173         PR fortran/41359
174         * trans-stmt.c (gfc_trans_if_1): Use correct line for
175         expressions in the if condition.
176
177 2011-02-20  Tobias Burnus  <burnus@net-b.de>
178
179         PR fortran/47797
180         * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
181         gfc_restore_backend_locus to have better debug locations.
182         * trans-array.c (gfc_trans_deferred_array): Ditto.
183
184 2011-02-20  Paul Thomas  <pault@gcc.gnu.org>
185
186         PR fortran/45077
187         PR fortran/44945
188         * trans-types.c (gfc_get_derived_type): Remove code that looks
189         for decls in gsym and add call to gfc_get_module_backend_decl.
190         * trans.h : Add prototype for gfc_get_module_backend_decl.
191         * trans-decl.c (gfc_get_module_backend_decl): New function.
192         (gfc_get_symbol_decl): Call it.
193
194 2011-02-19  Paul Thomas  <pault@gcc.gnu.org>
195
196         PR fortran/47348
197         * trans-array.c (get_array_ctor_all_strlen): Move up in file.
198         (get_array_ctor_var_strlen): Add block dummy and add call to
199         get_array_ctor_all_strlen instead of giving up on substrings.
200         Call gcc_unreachable for default case.
201         (get_array_ctor_strlen): Add extra argument to in call to
202         get_array_ctor_var_strlen.
203
204 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
205
206         PR fortran/47789
207         * primary.c (gfc_match_structure_constructor): Handle empty parent
208         types.
209
210 2011-02-18  Tobias Burnus
211
212         PR fortran/47775
213         * trans-expr.c (arrayfunc_assign_needs_temporary): Use
214         esym to check whether the specific procedure returns an
215         allocatable or pointer.
216
217 2011-02-18  Michael Matz  <matz@suse.de>
218
219         PR fortran/45586
220         * gfortran.h (struct gfc_component): Add norestrict_decl member.
221         * trans.h (struct lang_type): Add nonrestricted_type member.
222         * trans-expr.c (gfc_conv_component_ref): Search fields with correct
223         parent type.
224         * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
225         (gfc_sym_type): Use it.
226
227 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
228
229         PR fortran/47768
230         * resolve.c (resolve_transfer): Reject variables with procedure pointer
231         components.
232
233 2011-02-18  Janus Weil  <janus@gcc.gnu.org>
234
235         PR fortran/47767
236         * gfortran.h (gfc_check_access): Removed prototype.
237         (gfc_check_symbol_access): Added prototype.
238         * module.c (gfc_check_access): Renamed to 'check_access', made static.
239         (gfc_check_symbol_access): New function, basically a shortcut for
240         'check_access'.
241         (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
242         'gfc_check_symbol_access'.
243         (write_operator,write_module): Renamed 'gfc_check_access'.
244         * resolve.c (resolve_fl_procedure,resolve_fl_derived,
245         resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
246         'gfc_check_symbol_access'.
247
248 2011-02-16  Janus Weil  <janus@gcc.gnu.org>
249
250         PR fortran/47745
251         * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
252         * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
253         'gfc_build_class_symbol'.
254         (gfc_match_decl_type_spec): Reject unlimited polymorphism.
255         * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
256         * match.c (select_type_set_tmp): Move setting of 'class_ok' into
257         'gfc_build_class_symbol'.
258         * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.
259
260 2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>
261
262         PR fortran/47633
263         . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.
264
265 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
266
267         PR fortran/47730
268         * parse.c (gfc_build_block_ns): Commit 'block@' symbol.
269
270 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
271
272         PR fortran/47728
273         * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
274         arrays.
275         * primary.c (gfc_match_varspec): Avoid ICE for invalid class
276         declaration.
277
278 2011-02-14  Janus Weil  <janus@gcc.gnu.org>
279
280         PR fortran/47349
281         * interface.c (get_expr_storage_size): Handle derived-type components.
282
283 2011-02-13  Tobias Burnus  <burnus@net-b.de>
284
285         PR fortran/47569
286         * interface.c (compare_parameter): Avoid ICE with
287         character components.
288
289 2011-02-12  Janus Weil  <janus@gcc.gnu.org>
290
291         * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
292         * decl.c (build_sym,build_struct,attr_decl1): Use return value of
293         'gfc_build_class_symbol'.
294
295 2011-02-12  Michael Matz  <matz@suse.de>
296             Janus Weil  <janus@gcc.gnu.org>
297             Tobias Burnus  <burnus@net-b.de>
298
299         PR fortran/45586
300         * trans-expr.c (conv_parent_component_references): Avoid unintendent
301         skipping of parent compounds.
302
303 2011-02-11  Tobias Burnus  <burnus@net-b.de>
304
305         PR fortran/47550
306         * resolve.c (resolve_formal_arglist): PURE with VALUE
307         and no INTENT: Add -std= diagnostics.
308
309 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
310
311         PR fortran/47352
312         * resolve.c (resolve_procedure_interface): If interface has a result
313         variable, copy the typespec and set result pointer to self.
314
315 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
316
317         PR fortran/47463
318         * resolve.c (resolve_typebound_subroutine): Remove erroneous line.
319
320 2011-02-09  Janus Weil  <janus@gcc.gnu.org>
321
322         PR fortran/47637
323         * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.
324
325 2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
326
327         * io.c (match_io_element): Do not set dt if not inquire.
328
329 2011-02-08  Janus Weil  <janus@gcc.gnu.org>
330
331         PR fortran/45290
332         * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
333         initialization target.
334
335 2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
336             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
337
338         * gfortran.texi (Thread-safety): texinfo styling fixes.
339         * intrinsic.texi: Likewise.
340
341 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
342
343         * gfortran.texi (Compiler Characteristics): Add reference to
344         thread-safety section.
345
346 2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>
347
348         * gfortran.texi (Thread-safety): New section.
349         * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
350         (GETENV): Likewise.
351         (GET_ENVIRONMENT_VARIABLE): Likewise.
352         (SYSTEM): Likewise.
353
354 2011-02-06  Paul Thomas  <pault@gcc.gnu.org>
355
356         PR fortran/47592
357         * trans-stmt.c (gfc_trans_allocate): For deferred character
358         length allocations with SOURCE, store to the values and string
359         length to avoid calculating twice.  Replace gfc_start_block
360         with gfc_init_block to avoid unnecessary contexts and to keep
361         declarations of temporaries where they should be. Tidy up the
362         code a bit.
363
364 2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>
365
366         PR fortran/42434
367         * intrinsic.texi (SYSTEM_CLOCK): Update documentation.
368
369 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
370             Paul Thomas  <pault@gcc.gnu.org>
371
372         PR fortran/47082
373         * trans-expr.c (gfc_trans_class_init_assign): Add call to
374         gfc_get_derived_type.
375         * module.c (read_cleanup): Do not use unique_symtrees for vtabs
376         or vtypes.
377
378 2011-02-02  Janus Weil  <janus@gcc.gnu.org>
379
380         PR fortran/47572
381         * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.
382
383 2011-02-01  Janus Weil  <janus@gcc.gnu.org>
384
385         PR fortran/47565
386         * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
387         pointer components with allocatable result.
388
389 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
390
391         PR fortran/47455
392         * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
393         with pointer or allocatable result.
394
395 2011-01-31  Paul Thomas  <pault@gcc.gnu.org>
396
397         PR fortran/47519
398         * trans-stmt.c (gfc_trans_allocate): Improve handling of
399         deferred character lengths with SOURCE.
400         * iresolve.c (gfc_resolve_repeat): Calculate character
401         length from source length and ncopies.
402         * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
403         expressions for ALLOCATE.
404
405 2011-01-31  Janus Weil  <janus@gcc.gnu.org>
406
407         PR fortran/47463
408         * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
409         an argument of a typebound assignment being a component.
410
411 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
412
413         * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
414         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
415
416 2011-01-31  Tobias Burnus  <burnus@net-b.de>
417
418         PR fortran/47042
419         * resolve.c (resolve_fl_procedure): Reject stmt functions
420         with pointer/allocatable attribute.
421
422 2011-01-31  Tobias Burnus  <burnus@net-b.de>
423
424         PR fortran/47042
425         * interface.c (gfc_procedure_use): Add explicit interface check for
426         pointer/allocatable functions.
427
428 2011-01-30  Paul Thomas  <pault@gcc.gnu.org>
429
430         PR fortran/47523
431         * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
432         expr and is assigned to a deferred character length scalar,
433         make sure that the function is called before reallocation,
434         so that the length is available. Include procedure pointer
435         and procedure pointer component rhs as well.
436
437         PR fortran/45170
438         PR fortran/35810
439         PR fortran/47350
440         * gfortran.dg/allocatable_function_5.f90: New test not added by
441         mistake on 2011-01-28.
442
443 2011-01-29  Tobias Burnus  <burnus@net-b.de>
444
445         PR fortran/47531
446         * check.c (gfc_check_shape): Support kind argument in SHAPE.
447         * intrinsic.c (add_functions): Ditto.
448         * resolve.c (gfc_resolve_shape): Ditto.
449         * simplify.c (gfc_simplify_shape): Ditto.
450         * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
451         gfc_simplify_shape): Update prototypes.
452         * intrinisc.text (SHAPE): Document kind argument.
453
454 2011-01-28  Tobias Burnus  <burnus@net-b.de>
455
456         PR fortran/47507
457         * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
458         attribute also without INTENT.
459
460 2011-01-28  Tobias Burnus  <burnus@net-b.de>
461
462         * gfortran.texi (Fortran 2003 status): Mention support for
463         nonconstant namelist variables.
464
465 2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
466             Tobias Burnus  <burnus@gcc.gnu.org>
467
468         PR fortran/45170
469         PR fortran/35810
470         PR fortran/47350
471         * interface.c (compare_actual_formal): An allocatable or pointer
472         deferred length actual is only allowed if the formal argument
473         is also deferred length. Clean up whitespace.
474         * trans-expr.c (gfc_conv_procedure_call): Pass string length for
475         deferred character length formal arguments by reference. Do the
476         same for function results.
477         (gfc_trans_pointer_assignment): Do not do runtime check of lhs
478         and rhs character lengths, if deferred length lhs.  In this case
479         set the lhs character length to that of the rhs.
480         (gfc_conv_string_parameter): Remove assert that string length is
481         an integer type.
482         (is_scalar_reallocatable_lhs): New function.
483         (alloc_scalar_allocatable_for_assignment): New function.
484         (gfc_trans_assignment_1): Call above new function. If the rhs is
485         a deferred character length itself, makes ure that the function
486         is called before reallocation, so that the length is available.
487         (gfc_trans_asssignment): Remove error about assignment to
488         deferred length character variables.
489         * gfortran.texi : Update entry about (re)allocation on
490         assignment.
491         * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
492         length character variables.
493         * module.c (mio_typespec): Transfer deferred characteristic.
494         * trans-types.c (gfc_get_function_type): New code to generate
495         hidden typelist, so that those character lengths that are
496         passed by reference get the right type.
497         * resolve.c (resolve_contained_fntype): Supress error for
498         deferred character length functions.
499         (resolve_function, resolve_fl_procedure) The same.
500         (check_symbols): Remove the error that support for
501         entity with deferred type parameter is not yet implemented.
502         (resolve_fl_derived): The same.
503         match.c (alloc_opt_list): Allow MOLD for deferred length object.
504         * trans-decl.c (gfc_get_symbol_decl): For deferred character
505         length dummies, generate a local variable for string length.
506         (create_function_arglist): Hidden length can be a pointer.
507         (gfc_trans_deferred_vars): For deferred character length
508         results and dummies, assign the string length to the local
509         variable from the hidden argument on entry and the other way
510         round on exit, as appropriate.
511
512 2011-01-27  Tobias Burnus  <burnus@net-b.de>
513
514         PR fortran/47474
515         * trans-decl.c (gfc_generate_function_code): Fix init
516         of allocatable result variable with allocatable components.
517
518 2011-01-27  Tobias Burnus  <burnus@net-b.de>
519
520         PR fortran/47472
521         * options.c (gfc_handle_module_path_options): Save
522         module path without trailing slash as include path.
523
524 2011-01-25  Tobias Burnus  <burnus@net-b.de>
525
526         PR fortran/47448
527         * interface.c (gfc_check_operator_interface): Fix
528         defined-assignment check.
529
530 2011-01-23  Tobias Burnus  <burnus@net-b.de>
531
532         PR fortran/47421
533         * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
534         scalar allocatable dummy arguments.
535
536 2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
537
538         PR fortran/38536
539         * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
540         check for array sections followed by component references
541         which are illegal.  Also check for coindexed arguments.
542
543 2011-01-22  Tobias Burnus  <burnus@net-b.de>
544
545         PR fortran/47399
546         * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
547         PARAMETER TBP.
548
549 2011-01-21  Tobias Burnus  <burnus@net-b.de>
550
551         PR fortran/47394
552         * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
553         Use defined instead of magic number exit status codes.
554         * scanner.c (include_line, gfc_new_file): Ditto.
555
556 2011-01-21  Tobias Burnus  <burnus@net-b.de>
557
558         PR fortran/47377
559         * expr.c (gfc_check_pointer_assign): Reject expr data-targets
560         without pointer attribute.
561
562 2011-01-18  Janus Weil  <janus@gcc.gnu.org>
563
564         PR fortran/47240
565         * resolve.c (expression_rank): Fix rank of procedure poiner components.
566         * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
567         pointer components as actual arguments.
568
569 2011-01-17  Jakub Jelinek  <jakub@redhat.com>
570
571         PR fortran/47331
572         * gfortran.h (struct gfc_omp_saved_state): New type.
573         (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
574         * resolve.c (resolve_global_procedure): Call it around gfc_resolve
575         call.
576         * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
577         functions.
578
579 2011-01-17  Tobias Burnus  <burnus@net-b.de>
580
581         PR fortran/47327
582         * invoke.texi (Options to request or suppress errors
583         and warnings): Fix cross link.
584
585 2011-01-15  Tobias Burnus  <burnus@net-b.de>
586
587         * gfortran.texi: Update Fortran 2003 Status section.
588
589         PR fortran/47177
590         * invoke.texi: Add missing "-E" to the -dM example.
591
592 2011-01-13  Tobias Burnus  <burnus@net-b.de>
593
594         PR fortran/47268
595         * intrinsic.texi (get_command_argument, get_environment_variable):
596         Mark arguments as optional in the Arguments section.
597
598 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
599             Tobias Burnus  <burnus@net-b.de>
600
601         PR fortran/47260
602         * trans-decl.c (gfc_get_extern_function_decl,
603         build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
604         calling decl_attributes.
605
606 2011-01-13  Tobias Burnus  <burnus@net-b.de>
607             Mikael Morin  <mikael@gcc.gnu.org>
608
609         PR fortran/45848
610         PR fortran/47204
611         * gfortran.h (gfc_code): Move union ext's case_list into
612         the struct block.
613         * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
614         by "block.".
615         * frontend-passes.c (gfc_code_walker): Ditto.
616         * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
617         gfc_match_type_is, gfc_match_class_is): Ditto.
618         * resolve.c (resolve_select, resolve_select_type): Ditto.
619         * st.c (gfc_free_statement): Ditto.
620         * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
621         gfc_trans_character_select): Ditto.
622         * parse.c (resolve_all_program_units): For error recovery, avoid
623         segfault is proc_name is NULL.
624
625 2011-01-11  Paul Thomas  <pault@gcc.gnu.org>
626
627         PR fortran/47051
628         * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
629         to be standard compliant by testing for shape rather than size
630         before skipping reallocation. Improve comments.
631
632 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
633
634         PR fortran/47224
635         * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
636         of code.
637
638 2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
639
640         PR fortran/38536
641         * resolve.c (is_scalar_expr_ptr):  For a substring reference,
642         use gfc_dep_compare_expr to compare start and end expession.
643         Add FIXME for using gfc_deb_compare_expr elsewhere.
644
645 2011-01-09  Janus Weil  <janus@gcc.gnu.org>
646
647         PR fortran/46313
648         * class.c (get_unique_type_string): Make type name start with upper
649         case letter.
650
651 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
652
653         PR fortran/46405
654         * invoke.texi:  Mention -ffree-line-length-none and
655         -ffixed-line-length-none for preprocessing.
656
657 2011-01-08  Paul Thomas  <pault@gcc.gnu.org>
658
659         PR fortran/46896
660         * trans-expr.c (gfc_conv_procedure_call): With a non-copying
661         procedure argument (eg TRANSPOSE) use a temporary if there is
662         any chance of aliasing due to host or use association.
663         (arrayfunc_assign_needs_temporary): Correct logic for function
664         results and do not use a temporary for implicitly PURE
665         variables.  Use a temporary for Cray pointees.
666         * symbol.c (gfc_add_save): Explicit SAVE not compatible with
667         implicit pureness of containing procedure.
668         * decl.c (match_old_style_init, gfc_match_data): Where decl
669         would fail in PURE procedure, set implicit_pure to zero.
670         * gfortran.h : Add implicit_pure to structure symbol_attr and
671         add prototype for function gfc_implicit_pure.
672         * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
673         Where decl would fail in PURE procedure, reset implicit_pure.
674         * io.c (match_vtag, gfc_match_open, gfc_match_close,
675         gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
676         * match.c (gfc_match_critical, gfc_match_stopcode,
677         sync_statement, gfc_match_allocate, gfc_match_deallocate): The
678         same.
679         * parse.c (decode_omp_directive): The same.
680         (parse_contained): If not PURE, set implicit pure attribute.
681         * resolve.c (resolve_formal_arglist, resolve_structure_cons,
682         resolve_function, resolve_ordinary_assign) : The same.
683         (gfc_implicit_pure): New function.
684         * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
685         to ab_attribute enum and use it in this function.
686
687 2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
688
689         PR fortran/45777
690         * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
691         make static and move in front of its only caller, to ...
692         * trans-array.c (symbols_could_alias): ... here.
693         Pass information about pointer and target status as
694         arguments.  Allocatable arrays don't alias anything
695         unless they have the POINTER attribute.
696         (gfc_could_be_alias):  Keep track of pointer and target
697         status when following references.  Also check if typespecs
698         of components match those of other components or symbols.
699
700 2011-01-07  Tobias Burnus  <burnus@net-b.de>
701
702         PR fortran/41580
703         * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
704         * intrinsic.c (add_functions): Use simplify functions for
705         EXTENDS_TYPE_OF and SAME_TYPE_AS.
706         * intrinsic.h (gfc_simplify_extends_type_of,
707         gfc_simplify_same_type_as): New prototypes.
708         * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
709         gfc_simplify_same_type_as): New functions.
710
711 2011-01-07  Janus Weil  <janus@gcc.gnu.org>
712
713         PR fortran/47189
714         PR fortran/47194
715         * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
716         * class.c (gfc_class_null_initializer): Initialize _vptr to declared
717         type.
718         * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
719         * resolve.c (resolve_deallocate_expr): _data component will be added
720         at translation stage.
721         * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
722         * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.
723
724 2011-01-06  Daniel Franke  <franke.daniel@gmail.com>
725
726         PR fortran/33117
727         PR fortran/46478
728         * parse.c (parse_interface): Remove check for procedure types.
729         * interface.c (check_interface0): Verify that procedures are
730         either all SUBROUTINEs or all FUNCTIONs.
731
732 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
733
734         PR fortran/47180
735         * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
736         'vtab' is initialized).
737
738 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
739
740         PR fortran/47180
741         * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
742         assignment, set the _vptr component to the declared type.
743
744 2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
745
746         PR fortran/46017
747         * resolve.c (resolve_allocate_deallocate): Follow references to
748         check for duplicate occurence of allocation/deallocation objects.
749
750 2011-01-05  Janus Weil  <janus@gcc.gnu.org>
751
752         PR fortran/47024
753         * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
754         of polymorphic allocatables according to their declared type.
755
756 2011-01-04  Janus Weil  <janus@gcc.gnu.org>
757
758         PR fortran/46448
759         * class.c (gfc_find_derived_vtab): Set the module field for the copying
760         routine to make sure it receives module name mangling.
761
762 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
763
764         * gfortranspec.c (lang_specific_driver): Update copyright notice
765         dates.
766
767 2011-01-03  Janus Weil  <janus@gcc.gnu.org>
768
769         * intrinsic.texi (LEADZ): Fix example.
770
771 2011-01-02  Janus Weil  <janus@gcc.gnu.org>
772
773         PR fortran/46408
774         * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
775         routine.
776
777 \f
778 Copyright (C) 2011 Free Software Foundation, Inc.
779
780 Copying and distribution of this file, with or without modification,
781 are permitted in any medium without royalty provided the copyright
782 notice and this notice are preserved.