PR c++/86342 - -Wdeprecated-copy and system headers.
[official-gcc.git] / gcc / fortran / ChangeLog-2015
blob8864836548dc7aff08d153ae291ffb7bb61debf2
1 2015-12-29  Andre Vehreschild  <vehre@gcc.gnu.org>
3         PR fortran/69011
4         * trans-stmt.c (gfc_trans_allocate): Unwrap a NOP_EXPR to make sure
5         the actual type of the source=-expr is used when it is of class type.
6         Furthermore prevent an ICE.
8 2015-12-18  Paul Thomas  <pault@gcc.gnu.org>
10         PR fortran/68196
11         *expr.c (gfc_has_default_initializer): Prevent infinite recursion
12         through this function for procedure pointer components.
13         * trans-array.c (structure_alloc_comps): Ditto twice.
15 2015-12-15  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
17         * resolve.c (resolve_critical): Committing symbols of
18         lock variables.
20 2014-12-14  Tobias Burnus  <burnus@net-b.de>
22         PR fortran/68850
23         * gfortran.texi (Standards): Mention TS 18508.
24         (Fortran 2003 and 2008 Status): Add section on TS 18508 status.
25         * intrinsic.texi (EVENT_QUERY): Add.
27 2014-12-12  Tobias Burnus  <burnus@net-b.de>
29         PR fortran/45859
30         * expr.c (gfc_is_simply_contiguous): Optionally permit array elements.
31         (gfc_check_pointer_assign): Update call.
32         * interface.c (compare_parameter): Ditto.
33         * trans-array.c (gfc_conv_array_parameter): Ditto.
34         * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
35         conv_isocbinding_function): Ditto.
36         * gfortran.h (gfc_is_simply_contiguous): Update prototype.
38 2014-12-12  Tobias Burnus  <burnus@net-b.de>
40         PR fortran/68815
41         * check.c (gfc_check_reshape): Replace %<%d%> by %qd.
42         * matchexp.c (gfc_match_defined_op_name): Use %qc.
43         * symbol.c (gfc_add_new_implicit_range,
44         gfc_merge_new_implicit): Ditto.
46 2015-12-10  David Malcolm  <dmalcolm@redhat.com>
48         * io.c (gfc_match_open): Fix indentation.
50 2015-12-09  Tobias Burnus  <burnus@net-b.de>
51             Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
53         * trans.c (gfc_allocate_using_lib,gfc_deallocate_with_status):
54         Introducing __asm__ __volatile__ ("":::"memory")
55         after image control statements.
56         * trans-stmt.c  (gfc_trans_sync, gfc_trans_event_post_wait,
57         gfc_trans_lock_unlock, gfc_trans_critical): Ditto.
58         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get,
59         conv_caf_send): Introducing __asm__ __volatile__ ("":::"memory")
60         after send, before get and around sendget.
62 2015-12-09  Tobias Burnus  <burnus@net-b.de>
64         PR fortran/68815
65         * decl.c (gfc_verify_c_interop_param, variable_decl): Use
66         %< ... %> for quoting in diagnostics.
67         * io.c (check_format): Ditto.
68         * resolve.c (resolve_operator): Ditto.
69         * symbol.c (check_conflict): Ditto.
70         * trans-common.c (translate_common): Ditto.
72 2015-12-07  David Malcolm  <dmalcolm@redhat.com>
74         * error.c (gfc_format_decoder): Update for change of
75         text_info::set_range to text_info::set_location.
77 2015-12-05  Paul Thomas  <pault@gcc.gnu.org>
79         PR fortran/68676
80         * decl.c (gfc_match_formal_arglist): Correct error, where 'sym'
81         was used instead of 'progname'.
83 2015-12-02  Tobias Burnus  <burnus@net-b.de>
84             Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
86         * check.c (gfc_check_event_query): New function.
87         * dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST,
88         EXEC_EVENT_WAIT.
89         * expr.c (gfc_check_vardef_context): New check for event variables
90         definition.
91         * gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
92         (gfc_isym_id): GFC_ISYM_EVENT_QUERY.
93         (struct symbol_attribute): New field.
94         (gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT.
95         * gfortran.texi: Document about new events functions and minor
96         changes.
97         * interface.c (compare_parameter): New check.
98         (gfc_procedure_use): New check for explicit procedure interface.
99         (add_subroutines): Add event_query.
100         * intrinsic.h (gfc_check_event_query,gfc_resolve_event_query):
101         New prototypes.
102         * iresolve.c (gfc_resolve_event_query): New function.
103         * iso-fortran-env.def (event_type): New type.
104         * match.c (event_statement,gfc_match_event_post,gfc_match_event_wait):
105         New functions.
106         (gfc_match_name): New event post and event wait.
107         * match.h (gfc_match_event_post,gfc_match_event_wait):
108         New prototypes.
109         * module.c (ab_attribute): Add AB_EVENT_COMP.
110         (attr_bits): Likewise.
111         (mio_symbol_attribute): Handle event_comp attribute.
112         * parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
113         (next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
114         (gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
115         (parse_derived): Check for event_type components.
116         * resolve.c (resolve_allocate_expr): Check for event variable def.
117         (resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It
118         includes logic for locks and events.
119         (gfc_resolve_code): Call it.
120         (gfc_resolve_symbol): New check for event variable to be a corray.
121         * st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and
122         EXEC_EVENT_WAIT.
123         * trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
124         gfor_fndecl_caf_event_query): New global variables.
125         (generate_coarray_sym_init): Checking for event_type.
126         (gfc_conv_procedure_call): Check for C bind attribute.
127         * trans-intrinsic.c (conv_intrinsic_event_query): New function.
128         (conv_intrinsic_move_alloc): Call it.
129         * trans-stmt.c (gfc_trans_lock_unlock): Passing address
130         of actual argument.
131         (gfc_trans_sync): Likewise.
132         (gfc_trans_event_post_wait): New function.
133         * trans-stmt.h (gfc_trans_event_post_wait): New prototype.
134         * trans-types.c (gfc_get_derived_type): Integer_kind as event_type.
135         * trans.c (gfc_allocate_using_lib): New argument and logic for events.
136         (gfc_allocate_allocatable): Passing new argument.
137         (trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT.
138         * trans.h (gfc_coarray_type): New elements.
139         (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
140         gfor_fndecl_caf_event_query): Declare them.
142 2015-12-02  Cesar Philippidis  <cesar@codesourcery.com>
144         PR fortran/63861
145         * openmp.c (gfc_match_omp_clauses): Allow subarrays for acc reductions.
146         (resolve_omp_clauses): Error on any acc reductions on arrays.
148 2015-12-01  Cesar Philippidis  <cesar@codesourcery.com>
150         * dump-parse-tree.c (show_omp_clauses): Handle optional num and static
151         arguments for the gang clause.
152         * gfortran.h (gfc_omp_clauses): Rename gang_expr as gang_num_expr.
153         Add gang_static_expr.
154         * openmp.c (gfc_free_omp_clauses): Update to free gang_num_expr and
155         gang_static_expr.
156         (match_oacc_clause_gang): Update to support both num and static in
157         the same clause.
158         (resolve_omp_clauses): Formatting.  Also handle gang_num_expr and
159         gang_static_expr.
160         (resolve_oacc_params_in_parallel): New const char arg argument.
161         Use it to report more accurate gang, worker and vector clause errors.
162         (resolve_oacc_loop_blocks): Update calls to
163         resolve_oacc_params_in_parallel.
164         * trans-openmp.c (gfc_trans_omp_clauses): Update the gimplification of
165         the gang clause.
166         (gfc_trans_oacc_combined_directive): Make use of gang_num_expr and
167         gang_static_expr.  Remove OMP_LIST_REDUCTION from construct_clauses.
169 2015-11-30  Cesar Philippidis  <cesar@codesourcery.com>
170             James Norris  <jnorris@codesourcery.com>
171             Nathan Sidwell  <nathan@codesourcery.com>
173         * f95-lang.c (gfc_attribute_table): Add an "oacc function"
174         attribute.
175         * gfortran.h (symbol_attribute): Add an oacc_function bit-field.
176         (gfc_oacc_routine_name): New struct;
177         (gfc_get_oacc_routine_name): New macro.
178         (gfc_namespace): Add oacc_routine_clauses, oacc_routine_names and
179         oacc_routine fields.
180         (gfc_exec_op): Add EXEC_OACC_ROUTINE.
181         * openmp.c (OACC_ROUTINE_CLAUSES): New mask.
182         (gfc_oacc_routine_dims): New function.
183         (gfc_match_oacc_routine): Add support for named routines and the
184         gang, worker vector and seq clauses.
185         * parse.c (is_oacc): Add EXEC_OACC_ROUTINE.
186         * resolve.c (gfc_resolve_blocks): Likewise.
187         * st.c (gfc_free_statement): Likewise.
188         * trans-decl.c (add_attributes_to_decl): Attach an 'oacc function'
189         attribute and shape geometry for acc routine.
191 2015-11-30  Paul Thomas  <pault@gcc.gnu.org>
193         PR fortran/68534
194         * decl.c (gfc_match_formal_arglist): Cope with zero formal args
195         either in interface declaration or in procedure declaration in
196         submodule.
198 2015-11-25  Steven G. Kargl  <kargl@gcc.gnu.org>
200         PR fortran/68227
201         * trans-stmt.c (gfc_do_allocate): Convert gcc_assert argument into
202         into part of conditional statement.
204 2015-11-25  Ilmir Usmanov <me@ilmir.us>
205             Cesar Philippidis  <cesar@codesourcery.com>
207         PR fortran/63858
208         * scanner.c (skip_oacc_attribute): Remove continue_flag parameter.
209         Rename as ...
210         (skip_free_oacc_sentinel): ... this.
211         (skip_omp_attribute): Remove continue_flag parameter. Rename as ...
212         (skip_free_omp_sentinel): ... this.
213         (skip_free_comments): Update to call skip_free_oacc_sentinel and
214         skip_free_omp_sentinel.
215         (skip_fixed_omp_sentinel): New function.
216         (skip_fixed_oacc_sentinel): New function.
217         (skip_fixed_comments): Fix mix of OpenACC and OpenMP sentinels in
218         continuation.
220 2015-11-24  Steven G. Kargl  <kargl@gcc.gnu.org>
222         PR fortran/68486
223         * simplify.c (gfc_simplify_cshift): Allow all EXPR_*.
225 2015-11-22  Steven G. Kargl  <kargl@gcc.gnu.org>
227         PR fortran/68486
228         * simplify.c (gfc_simplify_cshift):  Add EXPR_OP to mix.
230 2015-11-22  James Norris  <jnorris@codesourcery.com>
231             Steven G. Kargl  <kargl@gcc.gnu.org>
233         * openmp.c (match_oacc_clause_gang): Fix uninitialized variable.
234         (gfc_resolve_oacc_declare): Fix comparision.
236 2015-11-22  James Norris  <jnorris@codesourcery.com>
237             Cesar Philippidis  <cesar@codesourcery.com>
239         * dump-parse-tree.c (show_namespace): Handle declares.
240         * gfortran.h (struct symbol_attribute): New fields.
241         (enum gfc_omp_map_map): Add OMP_MAP_DEVICE_RESIDENT and OMP_MAP_LINK.
242         (OMP_LIST_LINK): New enum.
243         (struct gfc_oacc_declare): New structure.
244         (gfc_get_oacc_declare): New definition.
245         (struct gfc_namespace): Change type.
246         (enum gfc_exec_op): Add EXEC_OACC_DECLARE.
247         (struct gfc_code): New field.
248         * module.c (enum ab_attribute): Add AB_OACC_DECLARE_CREATE,
249         AB_OACC_DECLARE_COPYIN, AB_OACC_DECLARE_DEVICEPTR,
250         AB_OACC_DECLARE_DEVICE_RESIDENT, AB_OACC_DECLARE_LINK
251         (attr_bits): Add new initializers.
252         (mio_symbol_attribute): Handle new atributes.
253         * openmp.c (gfc_free_oacc_declare_clauses): New function.
254         (gfc_match_oacc_clause_link: Likewise.
255         (OMP_CLAUSE_LINK): New definition.
256         (gfc_match_omp_clauses): Handle OMP_CLAUSE_LINK.
257         (OACC_DECLARE_CLAUSES): Add OMP_CLAUSE_LINK
258         (gfc_match_oacc_declare): Add checking and module handling.
259         (resolve_omp_clauses): Add array initializer.
260         (gfc_resolve_oacc_declare): Reimplement.
261         * parse.c (case_decl): Add ST_OACC_DECLARE.
262         (parse_spec): Remove handling.
263         (parse_progunit): Remove handling.
264         * parse.h (struct gfc_state_data): Change type.
265         * resolve.c (gfc_resolve_blocks): Handle EXEC_OACC_DECLARE.
266         * st.c (gfc_free_statement): Handle EXEC_OACC_DECLARE.
267         * symbol.c (check_conflict): Add conflict checks.
268         (gfc_add_oacc_declare_create, gfc_add_oacc_declare_copyin,
269         gfc_add_oacc_declare_deviceptr, gfc_add_oacc_declare_device_resident):
270         New functions.
271         (gfc_copy_attr): Handle new symbols.
272         * trans-decl.c (add_clause, find_module_oacc_declare_clauses,
273         finish_oacc_declare): New functions.
274         (gfc_generate_function_code): Replace with call.
275         * trans-openmp.c (gfc_trans_oacc_declare): Reimplement.
276         (gfc_trans_oacc_directive): Handle EXEC_OACC_DECLARE.
277         * trans-stmt.c (gfc_trans_block_construct): Replace with call.
278         * trans-stmt.h (gfc_trans_oacc_declare): Remove argument.
279         * trans.c (trans_code): Handle EXEC_OACC_DECLARE.
281 2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>
283         * simplify.c (gfc_simplify_cshift): Work around bootstrap issues
284         due to inappropriate warning options.
286 2015-11-21  Steven G. Kargl  <kargl@gcc.gnu.org>
288         * simplify.c (gfc_simplify_cshift): Implement simplification of
289         CSHIFT for rank=1 arrays.
290         (gfc_simplify_spread): Remove a FIXME and add error condition.
291         * intrinsic.h: Prototype for gfc_simplify_cshift
292         * intrinsic.c (add_functions): Use gfc_simplify_cshift.
294 2015-11-20  Steven G. Kargl  <kargl@gcc.gnu.org>
296         PR fortran/68237
297         * decl.c (gfc_match_submod_proc): Test the interface symbol
298         before accessing its attributes.
300 2015-11-20  Paul Thomas  <pault@gcc.gnu.org>
302         PR fortran/66762
303         (gfc_get_symbol_decl): Test for attr.used_in_submodule as well
304         as attr.use_assoc (twice).
305         (gfc_create_module_variable): Ditto.
307 2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>
309         PR fortran/59910
310         * primary.c (gfc_match_structure_constructor): Reduce a structure
311         constructor in a DATA statement.
313 2015-11-18  Steven G. Kargl  <kargl@gcc.gnu.org>
315         PR fortran/43996
316         * simplify.c (gfc_simplify_spread): Issue error for too large array
317         constructor in a PARAMETER statement.
319 2015-11-17  Steven G. Kargl  <kargl@gcc.gnu.org>
321         * primary.c (gfc_match_structure_constructor): Fix whitespace.
323 2015-11-17  Dominique d'Humieres <dominiq@lps.ens.fr>
325         PR fortran/65751
326         * expr.c (gfc_check_pointer_assign): Fix error message.
328 2015-11-16  Steven G. Kargl  <kargl@gcc.gnu.org>
330         PR fortran/58027
331         PR fortran/60993
332         * expr.c (gfc_check_init_expr): Prevent a redundant check when a
333         __convert_* function was inserted into an array constructor.
334         (gfc_check_assign_symbol): Check for an initialization expression
335         when a __convert_* was inserted.
337 2015-11-15  Paul Thomas  <pault@gcc.gnu.org>
339         PR fortran/50221
340         PR fortran/68216
341         PR fortran/63932
342         PR fortran/66408
343         * trans_array.c (gfc_conv_scalarized_array_ref): Pass the
344         symbol decl for deferred character length array references.
345         * trans-stmt.c (gfc_trans_allocate): Keep the string lengths
346         to update deferred length character string lengths.
347         * trans-types.c (gfc_get_dtype_rank_type); Use the string
348         length of deferred character types for the dtype size.
349         * trans.c (gfc_build_array_ref): For references to deferred
350         character arrays, use the domain max value, if it is a variable
351         to set the 'span' and use pointer arithmetic for acces to the
352         element.
353         (trans_code): Set gfc_current_locus for diagnostic purposes.
355         PR fortran/67674
356         * trans-expr.c (gfc_conv_procedure_call): Do not fix deferred
357         string lengths of components.
359         PR fortran/49954
360         * resolve.c (deferred_op_assign): New function.
361         (gfc_resolve_code): Call it.
362         * trans-array.c (concat_str_length): New function.
363         (gfc_alloc_allocatable_for_assignment): Jump directly to alloc/
364         realloc blocks for deferred character length arrays because the
365         string length might change, even if the shape is the same. Call
366         concat_str_length to obtain the string length for concatenation
367         since it is needed to compute the lhs string length.
368         Set the descriptor dtype appropriately for the new string
369         length.
370         * trans-expr.c (gfc_trans_assignment_1): Use the rse string
371         length for all characters, other than deferred types. For
372         concatenation operators, push the rse.pre block to the inner
373         most loop so that the temporary pointer and the assignments
374         are properly placed.
376 2015-11-14  Steven G. Kargl  <kargl@gcc.gnu.org>
378         PR fortran/67803
379         * array.c (gfc_match_array_constructor): If array constructor included
380         a CHARACTER typespec, check array elements for compatible type.
382 2015-11-13  Steven G. Kargl  <kargl@gccc.gnu.org>
384         PR fortran/68319
385         * decl.c (gfc_match_data, gfc_match_entry): Enforce F2008:C1206.
386         * io.c (gfc_match_format): Ditto.
387         * match.c (gfc_match_st_function): Ditto.
389 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
391         * error.c (gfc_warning): Pass line_table to rich_location ctor.
392         (gfc_warning_now_at): Likewise.
393         (gfc_warning_now): Likewise.
394         (gfc_error_now): Likewise.
395         (gfc_fatal_error): Likewise.
396         (gfc_error): Likewise.
397         (gfc_internal_error): Likewise.
399 2015-11-12  Steven G. Kargl  <kargl@gcc.gnu.org>
401         PR fortran/68318
402         * decl.c (get_proc_name): Increment reference count for ENTRY.
403         While here, fix comment and use postfix ++ for consistency.
405 2015-11-11  Andrew MacLeod  <amacleod@redhat.com>
407         * array.c: Remove unused header files.
408         * convert.c: Likewise.
409         * cpp.c: Likewise.
410         * decl.c: Likewise.
411         * f95-lang.c: Likewise.
412         * frontend-passes.c: Likewise.
413         * iresolve.c: Likewise.
414         * match.c: Likewise.
415         * module.c: Likewise.
416         * options.c: Likewise.
417         * parse.c: Likewise.
418         * target-memory.c: Likewise.
419         * trans-array.c: Likewise.
420         * trans-common.c: Likewise.
421         * trans-const.c: Likewise.
422         * trans-decl.c: Likewise.
423         * trans-expr.c: Likewise.
424         * trans-intrinsic.c: Likewise.
425         * trans-io.c: Likewise.
426         * trans-openmp.c: Likewise.
427         * trans-stmt.c: Likewise.
428         * trans-types.c: Likewise.
429         * trans.c: Likewise.
431 2015-11-11  Dominique d'Humieres <dominiq@lps.ens.fr>
433         PR fortran/67826
434         * openmp.c (gfc_omp_udr_find): Fix typo.
436 2015-11-08  Steven g. Kargl  <kargl@gcc.gnu.org>
438         PR fortran/68053
439         * decl.c (add_init_expr_to_sym):  Try to reduce initialization expression
440         before testing for a constant value.
442 2015-11-08  Andre Vehreschild  <vehre@gcc.gnu.org>
444         PR fortran/68218
445         * trans-array.c (gfc_array_init_size): Add gfc_evaluate_now() when
446         array spec in allocate is a function call.
448 2015-11-08  Steven G. Kargl  <kargl@gc.gnu.org>
450         PR fortran/68224
451         * array.c (match_array_element_spec): Check of invalid NULL().
452         While here, fix nearby comments.
454 2015-11-08  Paul Thomas  <pault@gcc.gnu.org>
456         PR fortran/68196
457         * class.c (has_finalizer_component): Prevent infinite recursion
458         through this function if the derived type and that of its
459         component are the same.
460         * trans-types.c (gfc_get_derived_type): Do the same for proc
461         pointers by ignoring the explicit interface for the component.
463         PR fortran/66465
464         * check.c (same_type_check): If either of the expressions is
465         BT_PROCEDURE, use the typespec from the symbol, rather than the
466         expression.
468 2015-11-07  Steven G. Kargl  <kargl@gcc.gnu.org>
470         PR fortran/68153
471         * check.c (gfc_check_reshape): Improve check for valid SHAPE argument.
473 2015-11-07  Steven G. Kargl  <kargl@gcc.gnu.org>
475         PR fortran/68151
476         * match.c (match_case_selector):  Check for invalid type.
478 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
480         * cpp.c (cb_cpp_error): Convert parameter from location_t to
481         rich_location *.  Eliminate the "column_override" parameter.
482         * error.c (gfc_warning): Update for change in signature of
483         diagnostic_set_info.
484         (gfc_format_decoder): Update handling of %C/%L for changes
485         to struct text_info.
486         (gfc_diagnostic_starter): Use richloc when determining whether to
487         print one locus or two.  When handling a location that will
488         involve a call to diagnostic_show_locus, only attempt to print the
489         locus for the primary location, and don't call into
490         diagnostic_print_caret_line.
491         (gfc_warning_now_at): Update for change in signature of
492         diagnostic_set_info.
493         (gfc_warning_now): Likewise.
494         (gfc_error_now): Likewise.
495         (gfc_fatal_error): Likewise.
496         (gfc_error): Likewise.
497         (gfc_internal_error): Likewise.
499 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
501         * openmp.c (gfc_match_omp_clauses): Update support for the tile
502         and default clauses in OpenACC.
503         (gfc_match_oacc_update): Error when data clauses are supplied.
504         (oacc_compatible_clauses): Delete.
505         (resolve_omp_clauses): Give special care for OpenACC reductions.
506         Also update error reporting for the tile clause.
507         (resolve_oacc_loop_blocks): Update error reporting for the tile clause.
508         * trans-openmp.c (gfc_trans_omp_clauses): Update OMP_CLAUSE_SEQ. Add
509         OMP_CLAUSE_{AUTO,TILE} and add support the the gang static argument.
510         (gfc_trans_oacc_combined_directive): Update the list of clauses which
511         are split to acc loops.
513 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
515         * types.def (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
516         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
518 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
519             Chung-Lin Tang  <cltang@codesourcery.com>
521         * gfortran.h (gfc_statement): Add ST_OACC_ATOMIC,
522         ST_OACC_END_ATOMIC.
523         (gfc_exec_op): Add EXEC_OACC_ATOMIC.
524         * match.h (gfc_match_oacc_atomic): New prototype.
525         * openmp.c (gfc_match_omp_atomic, gfc_match_oacc_atomic): New
526         wrapper functions around...
527         (gfc_match_omp_oacc_atomic): ... this new function.
528         (oacc_code_to_statement, gfc_resolve_oacc_directive): Handle
529         EXEC_OACC_ATOMIC.
530         * parse.c (decode_oacc_directive): Handle "atomic", "end atomic".
531         (case_exec_markers): Add ST_OACC_ATOMIC.
532         (gfc_ascii_statement): Handle ST_OACC_ATOMIC, ST_OACC_END_ATOMIC.
533         (parse_omp_atomic): Rename to...
534         (parse_omp_oacc_atomic): ... this new function.  Add omp_p formal
535         parameter.  Adjust all users.
536         (parse_executable): Handle ST_OACC_ATOMIC.
537         (is_oacc): Handle EXEC_OACC_ATOMIC.
538         * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
539         EXEC_OACC_ATOMIC.
540         * st.c (gfc_free_statement): Handle EXEC_OACC_ATOMIC.
541         * trans-openmp.c (gfc_trans_oacc_directive): Handle
542         EXEC_OACC_ATOMIC.
543         * trans.c (trans_code): Handle EXEC_OACC_ATOMIC.
545 2015-10-31  Cesar Philippidis  <cesar@codesourcery.com>
547         PR Bootstrap/68168
549         * openmp.c (resolve_omp_clauses): Pass &n->where when calling
550         gfc_error.
552 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
554         * gfortran.h (gfc_omp_namespace): Add locus where member.
555         * openmp.c (gfc_match_omp_variable_list): Set where for each list
556         item found.
557         (resolve_omp_clauses): Remove where argument and use the where
558         gfc_omp_namespace member when reporting errors.
559         (resolve_omp_do):  Update call to resolve_omp_clauses.
560         (resolve_oacc_loop): Likewise.
561         (gfc_resolve_oacc_directive): Likewise.
562         (gfc_resolve_omp_directive): Likewise.
563         (gfc_resolve_omp_declare_simd): Likewise.
565 2015-10-15  Steven G. Kargl  <kargl@gcc.gnu.org>
567         PR fortran/51993
568         * decl.c (gfc_set_constant_character_len): Convert gcc_assert into an
569         if-statement causing an early return leads to valid error message.
571 2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>
573         PR fortran/36192
574         * interface.c (get_expr_storage_size):  Check for INTEGER type before
575         calling gmp routines.
577 2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>
579         PR fortran/68154
580         * decl.c (add_init_expr_to_sym): if the char length in the typespec
581         is NULL, check for and use a constructor.
583 2015-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>
585         PR fortran/68054
586         * decl.c (match_attr_spec): PROTECTED can only be a module.
588 2015-10-29  Steven G. Kargl  <kargl@gcc.gnu.org>
590         PR fortran/67885
591         * trans-decl.c (generate_local_decl): Mark PARAMETER entities in
592         BLOCK construct.
594 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
596         * array.c: Reorder #include's and remove duplicates.
597         * convert.c: Likewise.
598         * cpp.c: Likewise.
599         * decl.c: Likewise.
600         * f95-lang.c: Likewise.
601         * frontend-passes.c: Likewise.
602         * iresolve.c: Likewise.
603         * match.c: Likewise.
604         * module.c: Likewise.
605         * options.c: Likewise.
606         * parse.c: Likewise.
607         * resolve.c: Likewise.
608         * simplify.c: Likewise.
609         * target-memory.c: Likewise.
610         * trans-array.c: Likewise.
611         * trans-common.c: Likewise.
612         * trans-const.c: Likewise.
613         * trans-decl.c: Likewise.
614         * trans-expr.c: Likewise.
615         * trans-intrinsic.c: Likewise.
616         * trans-io.c: Likewise.
617         * trans-openmp.c: Likewise.
618         * trans-stmt.c: Likewise.
619         * trans-types.c: Likewise.
620         * trans.c: Likewise.
622 2015-10-29  Richard Biener  <rguenther@suse.de>
624         * f95-lang.c: Properly build variadic types for classification
625         and comparison builtins.
627 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
628             James Norris  <jnorris@codesourcery.com>
630         PR fortran/63865
631         * openmp.c (resolve_oacc_cache): Remove function.
632         (gfc_match_oacc_cache): Enable array sections.
633         (resolve_omp_clauses, gfc_resolve_oacc_directive): Change
634         accordingly.
635         * trans-openmp.c (gfc_trans_omp_clauses): Likewise.
637 2015-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>
639         PR fortran/68108
640         * decl.c (char_len_param_value): Check for REF_ARRAY.
642 2015-10-26  Louis Krupp  <louis.krupp@zoho.com>
644         PR fortran/66056
645         * fortran.h: Include namespace pointer in statement label
646         structure.
647         * symbol.c (gfc_get_st_label): Store pointer to namespace
648         that owns the statement label tree in each label.
649         (gfc_free_st_label): Use namespace owning statement label
650         tree when deleting statement label.
651         * io.c: Initialize format_asterisk with NULL namespace pointer.
653 2015-10-26  Steven G. Kargl  <kargl@gcc.gnu.org>
655         PR fortran/36192
656         * array.c (gfc_ref_dimen_size): Check for BT_INTEGER before calling
657         mpz_set.
659 2015-10-26  Andre Vehreschild  <vehre@gcc.gnu.org>
661         PR fortran/66927
662         * trans-array.c (evaluate_bound): For deferred length arrays get the
663         bounds directly from the descriptor, i.e., prevent using constant
664         zero lower bound from the gfc_conv_array_lbound () routine.
665         (gfc_conv_section_startstride): Hand deferred array status to
666         evaluate_bound ().
667         (gfc_conv_expr_descriptor): Same.
669 2015-01-25  Paul Thomas  <pault@gcc.gnu.org>
671         PR fortran/67171
672         * trans-array.c (structure_alloc_comps): On deallocation of
673         class components, reset the vptr to the declared type vtable
674         and reset the _len field of unlimited polymorphic components.
675         *trans-expr.c (gfc_find_and_cut_at_last_class_ref): Bail out on
676         allocatable component references to the right of part reference
677         with non-zero rank and return NULL.
678         (gfc_reset_vptr): Simplify this function by using the function
679         gfc_get_vptr_from_expr. Return if the vptr is NULL_TREE.
680         (gfc_reset_len): If gfc_find_and_cut_at_last_class_ref returns
681         NULL return.
682         * trans-stmt.c (gfc_trans_allocate): Rely on the use of
683         gfc_trans_assignment if expr3 is a variable expression since
684         this deals correctly with array sections.
686 2015-10-25  Andre Vehreschild  <vehre@gcc.gnu.org>
688         PR fortran/66927
689         PR fortran/67044
690         * trans-array.c (build_array_ref): Modified call to
691         gfc_get_class_array_ref to adhere to new interface.
692         (gfc_conv_expr_descriptor): For one-based arrays that
693         are filled by a loop starting at one the start index of the
694         source array has to be mangled into the offset.
695         * trans-expr.c (gfc_get_class_array_ref): When the tree to get
696         the _data component is present already, add a way to supply it.
697         (gfc_copy_class_to_class): Allow to copy to a derived type also.
698         * trans-stmt.c (gfc_trans_allocate): Do not conv_expr_descriptor
699         for functions returning a class or derived object. Get the
700         reference instead.
701         * trans.h: Interface change of gfc_get_class_array_ref.
703 2015-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>
705         PR fortran/68055
706         * decl.c (gfc_match_decl_type_spec): Check for valid kind in old-style
707         declarations.
709 2015-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>
711         PR fortran/67805
712         * array.c (gfc_match_array_constructor): Check for error from type
713         spec matching.
714         * decl.c (char_len_param_value): Check for valid of charlen parameter.
715         Reap dead code dating to 2008.
716         match.c (gfc_match_type_spec): Special case the keyword use in REAL.
718 2015-10-23  Mikhail Maltsev  <maltsevm@gmail.com>
720         * trans-common.c (create_common): Adjust to use flag_checking.
721         * trans.c (gfc_add_modify_loc): Use gcc_checking_assert.
723 2015-10-21  Martin Sebor  <msebor@redhat.com>
725         PR driver/68043
726         * lang.opt: End each sentence that describes an option with a period.
728 2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
730         PR fortran/67939
731         * data.c (create_character_initializer): Deal with zero length string.
733 2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
735         * resolve.c (gfc_verify_binding_labels): Check for NULL pointer.
737 2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
739         PR fortran/68019
740         * decl.c (add_init_expr_to_sym): Remove an assert() to allow an error
741         message to be issued.
743 2015-10-18  Mikael Morin  <mikael@gcc.gnu.org>
745         PR fortran/67758
746         * gfortran.h (gfc_symbol): Expand comment.
747         * match.c (gfc_match_common): Delay adding the symbol to
748         the common_block after the gfc_add_in_common call.
749         * symbol.c (gfc_free_symbol): Move common block memory handling...
750         (gfc_set_symbol_common_block): ... here as a new function.
751         (restore_old_symbol): Restore common block fields.
752         (gfc_restore_last_undo_checkpoint):
753         Check the common_block pointer instead of the in_common attribute.
754         When a symbol has been removed from the common block linked list,
755         clear its common_next pointer.
757 2015-10-18  Paul Thomas  <pault@gcc.gnu.org>
759         PR fortran/67177
760         PR fortran/67977
761         * primary.c (match_substring): Add an argument 'deferred' to
762         flag that a substring reference with null start and end should
763         not be optimized away for deferred length strings.
764         (match_string_constant, gfc_match_rvalue): Set the argument.
765         * trans-expr.c (alloc_scalar_allocatable_for_assignment): If
766         there is a substring reference return.
767         * trans-intrinsic.c (conv_intrinsic_move_alloc): For deferred
768         characters, assign the 'from' string length to the 'to' string
769         length. If the 'from' expression is deferred, set its string
770         length to zero. If the 'to' expression has allocatable
771         components, deallocate them.
773 2015-10-17  Steven G. Kargl  <kargl@gcc.gnu.org>
775         PR fortran/67987
776         * decl.c (char_len_param_value): Unwrap unlong line.  If LEN < 0,
777         force it to zero per the Fortran 90, 95, 2003, and 2008 Standards.
778         * resolve.c (gfc_resolve_substring_charlen): Unwrap unlong line.
779         If 'start' is larger than 'end', length of substring is negative,
780         so explicitly set it to zero.
781         (resolve_charlen): Remove -Wsurprising warning.  Update comment to
782         reflect that the text is from the F2008 standard.
784 2015-10-16  Richard Biener  <rguenther@suse.de>
786         * trans-intrinsic.c (gfc_conv_intrinsic_lib_function): Adjust
787         calls to build_addr.
788         (gfc_conv_intrinsic_mod): Likewise.
789         (gfc_conv_intrinsic_ctime): Likewise.
790         (gfc_conv_intrinsic_fdate): Likewise.
791         (gfc_conv_intrinsic_ttynam): Likewise.
792         (gfc_conv_intrinsic_minmax_char): Likewise.
793         (gfc_conv_intrinsic_index_scan_verify): Likewise.
794         (gfc_conv_intrinsic_trim): Likewise.
796 2015-10-14  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
798         * parse.c (decode_statement): Initialize M to MATCH_NO.
800 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
801             Ilya Verbin  <ilya.verbin@intel.com>
803         * f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
804         DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
805         * trans-openmp.c (gfc_trans_omp_clauses): Set
806         OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
807         to NULL.
808         (gfc_trans_omp_critical): Adjust for addition of clauses.
809         (gfc_trans_omp_ordered): Likewise.
810         * types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
811         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
812         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
813         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
814         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
815         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
816         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
817         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
818         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
819         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
820         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
821         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
822         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
824 2015-10-07  Andre Vehreschild  <vehre@gcc.gnu.org>
826         PR fortran/65889
827         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle pointer to and
828         on stack class objects as sizeof parameter.
830 2015-10-06  Louis Krupp <louis.krupp@zoho.com>
831         PR fortran/65766
832         * resolve.c (gfc_resolve_substring_charlen): For derived type,
833         use typespec of string component when resolving substring length.
835 2015-10-04  Mikael Morin  <mikael@gcc.gnu.org>
837         * match.c (gfc_match_common): Remove dead variable old_blank_common.
839 2015-10-04  Mikael Morin  <mikael@gcc.gnu.org>
841         PR fortran/67758
842         * match.c (gfc_match_common): Delay the common_block pointer
843         assignment after error checking.
844         Delay the call to gfc_add_in_common attribute after the handling
845         of array specs.
846         * resolve.c (resolve_common_vars): Call gfc_add_in_common again.
848 2015-10-04  Mikael Morin  <mikael@gcc.gnu.org>
850         * resolve.c (resolve_common_vars): Move access to the common
851         block's head symbol inside the function.
852         (resolve_common_blocks, resolve_types): Update callers.
854 2015-10-01  Louis Krupp <louis.krupp@zoho.com>
856         PR fortran/62242
857         PR fortran/52332
858         * trans-array.c
859         (store_backend_decl): Create new gfc_charlen instance if requested
860         (get_array_ctor_all_strlen): Call store_backend_decl requesting
861         new gfc_charlen
862         (trans_array_constructor): Call store_backend_decl requesting
863         new gfc_charlen if get_array_ctor_strlen was called
864         (gfc_add_loop_ss_code): Don't try to convert non-constant length
866 2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>
868         PR fortran.67802
869         * decl.c (add_init_expr_to_sym): Numeric constant for character
870         length must be an INTEGER.
872 2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>
874         PR fortran/66979
875         * io.c (gfc_resolve_filepos): Check for a UNIT number.  Add a nearby
876         missing 'return false'.
878 2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>
880         PR fortran/67616
881         * primary.c (gfc_match_structure_constructor): Use a possibly
882         host-associated symtree to prevent ICE.
884 2015-09-28  Paul Thomas  <pault@gcc.gnu.org>
886         PR fortran/40054
887         PR fortran/63921
888         * decl.c (get_proc_name): Return if statement function is
889         found.
890         * expr.c (gfc_check_vardef_context): Add error return for
891         derived type expression lacking the derived type itself.
892         * match.c (gfc_match_ptr_fcn_assign): New function.
893         * match.h : Add prototype for gfc_match_ptr_fcn_assign.
894         * parse.c : Add static flag 'in_specification_block'.
895         (decode_statement): If in specification block match a statement
896         function, then, if no error arising from statement function
897         matching, try to match pointer function assignment.
898         (parse_interface): Set 'in_specification_block' on exiting from
899         parse_spec.
900         (parse_spec): Set and then reset 'in_specification_block'.
901         (gfc_parse_file): Set 'in_specification_block'.
902         * resolve.c (get_temp_from_expr): Extend to include functions
903         and array constructors as rvalues..
904         (resolve_ptr_fcn_assign): New function.
905         (gfc_resolve_code): Call it on finding a pointer function as an
906         lvalue. If valid or on error, go back to start of resolve_code.
907         * symbol.c (gfc_add_procedure): Add a sentence to the error to
908         flag up the ambiguity between a statement function and pointer
909         function assignment at the end of the specification block.
911 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
913         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
914         (DEF_FUNCTION_TYPE_VAR_11): Delete.
915         * types.def (DEF_FUNCTION_TYPE_VAR_6): New.
916         (DEF_FUNCTION_TYPE_VAR_11): Delete.
918 2015-09-26  Mikael Morin  <mikael@gcc.gnu.org>
920         PR fortran/67721
921         * trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness
922         condition guarding deep copy.
924 2013-09-26  Paul Thomas  <pault@gcc.gnu.org>
926         PR fortran/67567
927         * resolve.c (resolve_fl_procedure): For module procedures, take
928         the parent module name and the submodule name from the name of
929         the namespace.
931 2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>
933         PR fortran/67614
934         * resolve.c (gfc_resolve_code): Prevent ICE for invalid EXPR_NULL.
936 2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>
938         PR fortran/67525
939         * parse.c (match_deferred_characteristics): Remove an assert, which
940         allows an invalid SELECT TYPE selector to be detected.
942 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
944         PR pretty-print/67567
945         * resolve.c (resolve_fl_procedure): Work-around when iface->module
946         == NULL.
948 2015-09-21  Steven G. Kargl  <kargl@gcc.gnu.org>
950         * resolve.c (nonscalar_typebound_assign): Fix typos in comment.
952 2015-09-21  Steven G. Kargl  <kargl@gcc.gnu.org>
954         PR fortran/67615
955         * resolve.c (gfc_resolve_code): Check for scalar expression in
956         arithmetic-if.
958 2015-09-17  Paul Thomas  <pault@gcc.gnu.org>
960         PR fortran/52846
961         PR fortran/67588
962         * module.c : Add static no_module_procedures.
963         (gfc_match_submodule): Correct memory leakage caused during the
964         freeing of use_lists.
965         (mio_symbol_attribute): Reset above if module procedure is
966         encountered.
967         (gfc_dump_module): Set above and exit without writing smod file
968         if it reset.
969         * gfortran.texi : Add section on submodule support.
971 2015-09-10  Steven G. Kargl  <kargl@gcc.gnu.org>
973         PR fortran/67526
974         * expr.c (gfc_check_init_expr): Do not dereference a NULL pointer.
976 2015-09-10  Paul Thomas  <pault@gcc.gnu.org>
978         PR fortran/66993
979         * module.c (read_module): If a symtree exists and the symbol has
980         been associated in a submodule from a parent (sub)module, attach
981         the symbol to a 'unique symtree' and the new symbol to the
982         existing symtree.
984 2015-09-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
986         * intrinsic.h (gfc_simplify_mvbits): Remove.
987         * simplify.c (gfc_simplify_mvbits): Remove.
988         * intrinsic.c (add_subroutines): Remove reference to
989         gfc_simplify_mvbits.
991 2015-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
993         PR fortran/67429
994         * error.c (gfc_clear_pp_buffer): Reset last_location, otherwise
995         caret lines might be skipped when actually giving a diagnostic.
997 2015-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
999         PR fortran/54833
1000         * trans.c (gfc_call_free): Don't check if pointer is NULL.
1001         * trans.h (gfc_call_free): Adjust comment.
1003 2015-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1005         * trans.c (gfc_call_malloc, gfc_allocate_using_malloc,
1006         gfc_allocate_using_lib, gfc_allocate_allocatable,
1007         gfc_call_realloc): Simplify code.
1008         * trans-array.c (gfc_trans_allocate_array_storage,
1009         gfc_trans_auto_array_allocation, gfc_conv_array_parameter): Do not
1010         convert gfc_call_free() argument.
1011         * trans-expr.c (gfc_conv_string_tmp, gfc_conv_procedure_call,
1012         fcncall_realloc_result): Likewise.
1013         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Likewise.
1015 2015-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1017         PR fortran/53668
1018         * intrinsic.c (add_functions, add_subroutines): Remove resolution
1019         functions for FREE and MALLOC.
1020         * intrinsic.h (gfc_resolve_malloc, gfc_resolve_free): Remove.
1021         * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): Remove.
1022         * trans-intrinsic.c (conv_intrinsic_free,
1023         gfc_conv_intrinsic_malloc): New functions.
1025 2015-08-24  Louis Krupp <louis.krupp@zoho.com>
1027         PR fortran/62536
1028         PR fortran/66175
1029         * decl.c (gfc_match_end): Clean up nested BLOCKs.
1030         * parse.c (parse_block_construct): Deal gracefully with cleaned-up
1031         BLOCKs.
1033 2015-08-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1035         PR libfortran/54572
1036         * config-lang.in: Add libbacktrace to target_libs.
1038 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
1040         * dependency.c, dependency.h, gfortran.h, io.c, module.c,
1041         parse.h, resolve.c, trans-types.h, trans.h: remove useless typedefs.
1043 2015-08-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1045         PR fortran/54656
1046         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Add decl
1047         for quadruple precision BUILT_IN_SQRT.
1049 2015-08-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1051         * trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type
1052         generic BUILT_IN_SIGNBIT.
1053         (conv_intrinsic_ieee_copy_sign): Likewise.
1054         * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_ISINF,
1055         BUILT_IN_ISINF_SIGN, BUILT_IN_SIGNBIT, BUILT_IN_ISLESS,
1056         BUILT_IN_ISLESSGREATER, BUILT_IN_ISGREATER. Remove non-type generic
1057         variants of BUILT_IN_SIGNBIT.
1058         * mathbuiltins.def: Remove SIGNBIT.
1060 2015-08-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1062         PR fortran/41387
1063         * gfortran.texi: New section "File operations on symbolic links".
1065 2015-08-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1067         PR fortran/67059
1068         * gfortranspec.c (lang_specific_driver): Adjust --version output.
1070 2015-08-08  Bud Davis  <jmdavis@link.com>
1071             Mikael Morin  <mikael@gcc.gnu.org>
1073         PR fortran/59746
1074         * symbol.c (gfc_restore_last_undo_checkpoint): Delete a common block
1075         symbol if it was put in the list.
1077 2015-08-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1079         PR fortran/64104
1080         * expr.c (gfc_check_init_expr): Allow some IEEE functions in
1081         constant expressions.
1082         (external_spec_function): Allow some IEEE functions in specification
1083         expressions.
1084         * simplify.c (gfc_simplify_ieee_selected_real_kind): Remove.
1085         (simplify_ieee_selected_real_kind, simplify_ieee_support,
1086         matches_ieee_function_name, gfc_simplify_ieee_functions): New
1087         functions.
1088         * gfortran.h (gfc_simplify_ieee_selected_real_kind): Remove
1089         prototype.
1090         (gfc_simplify_ieee_functions): Add prototype.
1092 2015-08-06  Mikael Morin  <mikael@gcc.gnu.org>
1094         * trans.h (gfc_trans_scalar_assign): Remove fourth argument.
1095         * trans-expr.c (gfc_trans_scalar_assign): Merge fourth into sixth
1096         argument.
1097         (gfc_conv_subref_array_arg, gfc_trans_subarray_assign,
1098          gfc_trans_subcomponent_assign, gfc_trans_assignment_1): Update callers.
1099         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
1100         * trans-stmt.c (forall_make_variable_temp,
1101         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
1102         gfc_trans_where_assign, gfc_trans_where_3): Ditto.
1104 2015-08-05  Paul Thomas  <pault@gcc.gnu.org>
1106         PR fortran/52846
1107         * module.c (check_access): Return true if new static flag
1108         'dump_smod' is true..
1109         (gfc_dump_module): Rename original 'dump_module' and call from
1110         new version. Use 'dump_smod' rather than the stack state to
1111         determine if a submodule is being processed. The new version of
1112         this procedure sets 'dump_smod' depending on the stack state and
1113         then writes both the mod and smod files if a module is being
1114         processed or just the smod for a submodule.
1115         (gfc_use_module): Eliminate the check for module_name and
1116         submodule_name being the same.
1117         * trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
1118         get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
1119         the conditions to set DECL_VISIBILITY as hidden and to set as
1120         true DECL_VISIBILITY_SPECIFIED.
1122 2015-08-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1124         PR fortran/64022
1125         * simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
1126         support to all real kinds.
1128 2015-08-03  Steven G. Kargl  <kargl@gcc.gnu.org>
1130         PR fortran/66942
1131         * trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference
1133 2015-08-03  Mikael Morin  <mikael@gcc.gnu.org>
1135         PR fortran/64921
1136         * class.c (generate_finalization_wrapper): Set finalization
1137         procedure symbol's always_explicit attribute.
1139 2015-08-01  Paul Thomas  <pault@gcc.gnu.org>
1141         PR fortran/67091
1142         * trans-intrinsic.c (gfc_conv_associated): Add the pre and post
1143         blocks for the second argument to se.
1145 2015-07-27  Thomas Schwinge  <thomas@codesourcery.com>
1147         * parse.c (parse_oacc_structured_block): Fix logic error.
1148         Reported by Mikael Morin <mikael.morin@sfr.fr>.
1150 2015-07-24  Mikael Morin  <mikael@gcc.gnu.org>
1152         PR fortran/64986
1153         * trans-expr.c (gfc_trans_assignment_1): Put component deallocation
1154         code at the beginning of the block.
1156 2015-07-22  Mikael Morin  <mikael@gcc.gnu.org>
1158         PR fortran/61831
1159         PR fortran/66929
1160         * trans-array.c (gfc_get_proc_ifc_for_expr): Use esym as procedure
1161         symbol if available.
1163 2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
1165         PR fortran/52846
1166         * decl.c (gfc_match_end): Pick out declared submodule name from
1167         the composite identifier.
1168         * gfortran.h : Add 'submodule_name' to gfc_use_list structure.
1169         * module.c (gfc_match_submodule): Define submodule_name and add
1170         static 'submodule_name'.
1171         (gfc_match_submodule): Build up submodule filenames, using '@'
1172         as a delimiter. Store the output filename in 'submodule_name'.
1173         Similarly, the submodule identifier is built using '.' as an
1174         identifier.
1175         (gfc_dump_module): If current state is COMP_SUBMODULE, write
1176         to file 'submodule_name', using SUBMODULE_EXTENSION.
1177         (gfc_use_module): Similarly, use the 'submodule_name' field in
1178         the gfc_use_list structure and SUBMODULE_EXTENSION to read the
1179         implicitly used submodule files.
1181 2015-07-17  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1183         * trans-intrinsic.c (conv_co_collective): Remove redundant address
1184         operator in the generated code.
1186 2015-07-17  Andre Vehreschild  <vehre@gcc.gnu.org>
1188         PR fortran/66035
1189         * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment):
1190         Compute the size to allocate for class and derived type objects
1191         correclty.
1192         (gfc_trans_subcomponent_assign): Only allocate memory for a
1193         component when the object to assign is not an allocatable class
1194         object (the memory is already present for allocatable class objects).
1195         Furthermore use copy_class_to_class for assigning the rhs to the
1196         component (may happen for dummy class objects on the rhs).
1198 2015-07-17  Mikael Morin  <mikael@gcc.gnu.org>
1199             Dominique d'Humieres  <dominiq@lps.ens.fr>
1201         PR fortran/61831
1202         * trans-array.c (gfc_conv_array_parameter): Guard allocatable
1203         component deallocation code generation with descriptorless
1204         calling convention flag.
1205         * trans-expr.c (gfc_conv_expr_reference): Remove allocatable
1206         component deallocation code generation from revision 212329.
1207         (expr_may_alias_variables): New function.
1208         (gfc_conv_procedure_call): New boolean elemental_proc to factor
1209         check for procedure elemental-ness.  Rename boolean f to nodesc_arg
1210         and declare it in the outer scope.  Use expr_may_alias_variables,
1211         elemental_proc and nodesc_arg to decide whether generate allocatable
1212         component deallocation code.
1213         (gfc_trans_subarray_assign): Set deep copy flag.
1215 2015-07-16  Steven G. Kargl  <kargl@gcc.gnu.org>
1217         PR fortran/66724
1218         PR fortran/66724
1219         * io.c (is_char_type): Call gfc_resolve_expr ().
1220         (match_open_element, match_dt_element, match_inquire_element): Fix
1221         ASYNCHRONOUS case.
1223 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
1225         * trans-types.c: Remove multiline #include comment.
1227 2015-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1229         * simplify.c (gfc_simplify_floor): Set precision of temporary to
1230         that of arg.
1232 2015-07-13  Andre Vehreschild  <vehre@gcc.gnu.org>
1234         PR fortran/64589
1235         * class.c (find_intrinsic_vtab): Put/Search vtabs for intrinsic
1236         types in the top-level namespace.
1238 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
1240         * trans-stmt.c: Fix double word typos.
1242 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
1244         * arith.c: Adjust includes for flags.h changes.
1245         * array.c: Likewise.
1246         * check.c: Likewise.
1247         * decl.c: Likewise.
1248         * error.c: Likewise.
1249         * expr.c: Likewise.
1250         * frontend-passes.c: Likewise.
1251         * interface.c: Likewise.
1252         * intrinsic.c: Likewise.
1253         * io.c: Likewise.
1254         * match.c: Likewise.
1255         * openmp.c: Likewise.
1256         * parse.c: Likewise.
1257         * primary.c: Likewise.
1258         * resolve.c: Likewise.
1259         * scanner.c: Likewise.
1260         * simplify.c: Likewise.
1261         * symbol.c: Likewise.
1262         * target-memory.c: Likewise.
1264 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
1266         * convert.c: Adjust includes.
1267         * cpp.c: Likewise.
1268         * decl.c: Likewise.
1269         * f95-lang.c: Likewise.
1270         * iresolve.c: Likewise.
1271         * match.c: Likewise.
1272         * module.c: Likewise.
1273         * options.c: Likewise.
1274         * target-memory.c: Likewise.
1275         * trans-array.c: Likewise.
1276         * trans-common.c: Likewise.
1277         * trans-const.c: Likewise.
1278         * trans-decl.c: Likewise.
1279         * trans-expr.c: Likewise.
1280         * trans-intrinsic.c: Likewise.
1281         * trans-io.c: Likewise.
1282         * trans-openmp.c: Likewise.
1283         * trans-stmt.c: Likewise.
1284         * trans-types.c: Likewise.
1285         * trans.c: Likewise.
1287 2015-07-07  Andre Vehreschild  <vehre@gmx.de>
1289         PR fortran/66578
1290         * trans-array.c (gfc_conv_expr_descriptor): Ensure array descriptor
1291         is one-based for non-full array refs. Correct the offset when a
1292         rank_remap occurs.
1294 2015-07-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1296         * io.c (check_char_variable): New function.
1297         (match_open_element, match_close_element, match_file_element,
1298         match_dt_element, match_inquire_element, match_wait_element): Use it.
1300 2015-07-06  Andre Vehreschild  <vehre@gmx.de>
1302         PR fortran/58586
1303         * resolve.c (resolve_symbol): Non-private functions in modules
1304         with allocatable or pointer components are marked referenced
1305         now. Furthermore is the default init especially for those
1306         components now done in gfc_conf_procedure_call preventing
1307         duplicate code.
1308         * trans-decl.c (gfc_generate_function_code): Generate a fake
1309         result decl for functions returning an object with allocatable
1310         components and initialize them.
1311         * trans-expr.c (gfc_conv_procedure_call): For value typed trees
1312         use the tree without indirect ref. And for non-decl trees
1313         add a temporary variable to prevent evaluating the tree
1314         multiple times (prevent multiple function evaluations).
1315         * trans.h: Made gfc_trans_structure_assign () protoype
1316         available, which is now needed by trans-decl.c:gfc_generate_
1317         function_code(), too.
1319 2015-07-04  Steven G. Kargl  <kargl@gcc.gnu.org>
1321         PR fortran/66725
1322         * io.c (is_char_type): New function to test for BT_CHARACTER
1323         (gfc_match_open, gfc_match_close, match_dt_element): Use it.
1325 2015-07-02  David Edelsohn  <dje.gcc@gmail.com>
1327         * trans-common.c: Include <map> after system.h.
1329 2015-07-02  Paul Thomas  <pault@gcc.gnu.org>
1331         PR fortran/52846
1332         * decl.c (get_proc_name): Make a partially populated interface
1333         symbol to carry the characteristics of a module procedure and
1334         its result.
1335         (variable_decl): Declarations of dummies or results in the
1336         abreviated form of module procedure is an error.
1337         (gfc_match_import): IMPORT is not permitted in the interface
1338         declaration of module procedures.
1339         (match_attr_spec): Submodule variables have implicit save
1340         attribute for F2008 onwards.
1341         (gfc_match_prefix): Add 'module' as the a prefix and set the
1342         module_procedure attribute.
1343         (gfc_match_formal_arglist): For a module procedure keep the
1344         interface formal_arglist from the interface, match new the
1345         formal arguments and then compare the number and names of each.
1346         (gfc_match_procedure): Add case COMP_SUBMODULE.
1347         (gfc_match_function_decl, gfc_match_subroutine_decl): Set the
1348         module_procedure attribute.
1349         (gfc_match_entry, gfc_match_end):  Add case COMP_SUBMODULE. If
1350         attr abr_modproc_decl is set, switch the message accordingly
1351         for subroutines and functions.
1352         (gfc_match_submod_proc): New function to match the abbreviated
1353         style of submodule declaration.
1354         * gfortran.h : Add ST_SUBMODULE and ST_END_SUBMODULE. Add the
1355         attribute bits 'used_in_submodule' and 'module_procedure'. Add
1356         the bit field 'abr_modproc_decl' to gfc_symbol. Add prototypes
1357         for 'gfc_copy_dummy_sym', 'gfc_check_dummy_characteristics' and
1358         'gfc_check_result_characteristics'.
1359         * interface.c : Add the prefix 'gfc_' to the names of functions
1360         'check_dummy(result)_characteristics' and all their references.
1361         * match.h : Add prototype for 'gfc_match_submod_proc' and
1362         'gfc_match_submodule'.
1363         (check_sym_interfaces): A module procedure is not an error in
1364         a module procedure statment in a generic interface.
1365         * module.c (gfc_match_submodule): New function. Add handling
1366         for the 'module_procedure' attribute bit.
1367         (gfc_use_module): Make sure that a submodule cannot use itself.
1368         * parse.c (decode_statement): Set attr has_'import_set' for
1369         the interface declaration of module procedures. Handle a match
1370         occurring in 'gfc_match_submod_proc' and a match for
1371         'submodule'.
1372         (gfc_enclosing_unit): Include the state COMP_SUBMODULE.
1373         (gfc_ascii_statement): Add END SUBMODULE.
1374         (accept_statement): Add ST_SUBMODULE.
1375         (parse_spec): Disallow statement functions in a submodule
1376         specification part.
1377         (parse_contained): Add ST_END_SUBMODULE and COMP_SUBMODULE
1378         twice each.
1379         (get_modproc_result): Copy the result symbol of the interface.
1380         (parse_progunit): Call it.
1381         (set_syms_host_assoc): Make symbols from the ancestor module
1382         and submodules use associated, as required by the standard and
1383         set all private components public. Module procedures 'external'
1384         attribute bit is reset and the 'used_in_submodule' bit is set.
1385         (parse_module): If this is a submodule, use the ancestor module
1386         and submodules. Traverse the namespace, calling
1387         'set_syms_host_assoc'. Add ST_END_SUBMODULE and COMP_SUBMODULE.
1388         * parse.h : Add COMP_SUBMODULE.
1389         * primary.c (match_variable): Add COMP_SUBMODULE.
1390         * resolve.c (compare_fsyms): New function to compare the dummy
1391         characteristics of a module procedure with its interface.
1392         (resolve_fl_procedure): Compare the procedure, result and dummy
1393         characteristics of a module_procedure with its interface, using
1394         'compare_fsyms' for the dummy arguments.
1395         * symbol.c (gfc_add_procedure): Suppress the check for existing
1396         procedures in the case of a module procedure.
1397         (gfc_add_explicit_interface): Skip checks that must fail for
1398         module procedures.
1399         (gfc_add_type): Allow a new type to be added to module
1400         procedures, their results or their dummy arguments.
1401         (gfc_copy_dummy_sym): New function to generate new dummy args
1402         and copy the characteristics from the interface.
1403         * trans-decl.c (gfc_sym_mangled_function_id): Module procedures
1404         must always have their names mangled as if they are symbols
1405         coming from a declaration in a module.
1406         (gfc_get_symbol_decl): Add 'used_in_submodule' to the assert.
1407         (gfc_finish_var_decl): Symbols with the 'used_in_submodule' bit
1408         set are set DECL_EXTERNAL as if they were use associated.
1410 2015-07-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1412         PR fortran/56520
1413         * match.c (gfc_match_name): Special case unary minus and plus.
1415 2015-07-02  Steven G. Kargl   <kargl@gcc.gnu.org>
1417         PR fortran/66545
1418         * primary.c (match_sym_complex_part): Do not dereference NULL pointer.
1420 2015-07-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
1422         * arith.c (gfc_arith_divide):  With -Winteger-division,
1423         warn about contant integer division if there is a non-zero
1424         remainder.
1425         * invoke.texi:  Document -Winteger-division.
1426         * lang.opt:  Add -Winteger-division.
1428 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
1430         * f95-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
1431         * trans-decl.c: Likewise.
1433 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
1435         * trans-decl.c (module_hasher): Likewise.
1436         * trans.h (module_decl_hasher): Likewise.
1438 2015-06-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1440         PR fortran/66528
1441         * error.c (gfc_warning_check): Restore the default output_buffer
1442         before calling diagnostic_action_after_output.
1443         (gfc_error_check): Likewise.
1444         (gfc_diagnostics_init): Add comment.
1446 2015-06-23  Andre Vehreschild  <vehre@gmx.de>
1448         PR fortran/64674
1449         * parse.c (parse_associate): Figure the rank and as of a
1450         class array in an associate early.
1451         * primary.c (gfc_match_varspec): Prevent setting the
1452         dimension attribute on the sym for classes.
1453         * resolve.c (resolve_variable): Correct the component
1454         ref's type for associated variables.  Add a full array ref
1455         when class array's are associated.
1456         (resolve_assoc_var): Correct the type of the symbol,
1457         when in the associate the expression's rank becomes scalar.
1458         * trans-expr.c (gfc_conv_variable): Indirect ref needed for
1459         allocatable associated objects.
1461 2015-06-19  Mikael Morin  <mikael@gcc.gnu.org>
1463         PR fortran/66549
1464         * resolve.c (resolve_global_procedure): Don't save and restore
1465         OpenMP state around the call to gfc_resolve.
1466         (gfc_resolve): Save OpenMP state on entry and restore it on return.
1468 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
1470         * convert.c: Do not include input.h, line-map.h or is-a.h.
1471         * cpp.c: Likewise.
1472         * decl.c: Likewise.
1473         * f95-lang.c: Likewise.
1474         * gfortran.h: Likewise.
1475         * iresolve.c: Likewise.
1476         * match.c: Likewise.
1477         * module.c: Likewise.
1478         * options.c: Likewise.
1479         * target-memory.c: Likewise.
1480         * trans-array.c: Likewise.
1481         * trans-common.c: Likewise.
1482         * trans-const.c: Likewise.
1483         * trans-decl.c: Likewise.
1484         * trans-expr.c: Likewise.
1485         * trans-intrinsic.c: Likewise.
1486         * trans-io.c: Likewise.
1487         * trans-openmp.c: Likewise.
1488         * trans-stmt.c: Likewise.
1489         * trans-types.c: Likewise.
1490         * trans.c: Likewise.
1492 2015-06-15  Andre Vehreschild  <vehre@gmx.de>
1494         PR fortran/44672
1495         PR fortran/45440
1496         PR fortran/57307
1497         * gfortran.h: Extend gfc_code.ext.alloc to carry a
1498         flag indicating that the array specification has to be
1499         taken from expr3.
1500         * resolve.c (resolve_allocate_expr): Add F2008 notify
1501         and flag indicating source driven array spec.
1502         (resolve_allocate_deallocate): Check for source driven
1503         array spec, when array to allocate has no explicit
1504         array spec.
1505         * trans-array.c (gfc_array_init_size): Get lower and
1506         upper bound from a tree array descriptor, except when
1507         the source expression is an array-constructor which is
1508         fixed to be one-based.
1509         (retrieve_last_ref): Extracted from gfc_array_allocate().
1510         (gfc_array_allocate): Enable allocate(array, source=
1511         array_expression) as specified by F2008:C633.
1512         (gfc_conv_expr_descriptor): Add class tree expression
1513         into the saved descriptor for class arrays.
1514         * trans-array.h: Add temporary array descriptor to
1515         gfc_array_allocate ().
1516         * trans-expr.c (gfc_conv_procedure_call): Special handling
1517         for _copy() routine translation, that comes without an
1518         interface. Third and fourth argument are now passed by value.
1519         * trans-stmt.c (gfc_trans_allocate): Get expr3 array
1520         descriptor for temporary arrays to allow allocate(array,
1521         source = array_expression) for array without array
1522         specification.
1524 2015-06-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
1526         * intrinsic.texi:  Change \leq to < in descrition of imaginary
1527         part in argument to log.
1529 2015-06-11  Paul Thomas  <pault@gcc.gnu.org>
1531         PR fortran/66079
1532         * trans-expr.c (gfc_conv_procedure_call): Allocatable scalar
1533         function results must be freed and nullified after use. Create
1534         a temporary to hold the result to prevent duplicate calls.
1535         * trans-stmt.c (gfc_trans_allocate): Rename temporary variable
1536         as 'source'. Deallocate allocatable components of non-variable
1537         'source's.
1539 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
1541         * f95-lang.c (gfc_create_decls): Register the main translation unit
1542         through the new debug hook.
1544 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
1546         * convert.c : Adjust include files.
1547         * cpp.c : Likewise.
1548         * decl.c : Likewise.
1549         * f95-lang.c : Likewise.
1550         * gfortran.h : Likewise.
1551         * iresolve.c : Likewise.
1552         * match.c : Likewise.
1553         * module.c : Likewise.
1554         * openmp.c : Likewise.
1555         * options.c : Likewise.
1556         * target-memory.c : Likewise.
1557         * trans-array.c : Likewise.
1558         * trans-common.c : Likewise.
1559         * trans-const.c : Likewise.
1560         * trans-decl.c : Likewise.
1561         * trans-expr.c : Likewise.
1562         * trans-intrinsic.c : Likewise.
1563         * trans-io.c : Likewise.
1564         * trans-openmp.c : Likewise.
1565         * trans-stmt.c : Likewise.
1566         * trans-types.c : Likewise.
1567         * trans.c : Likewise.
1569 2015-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1571         PR fortran/66245
1572         * match.c (gfc_match_type_is, gfc_match_class_is):  Check if the
1573         return type spec or derived type spec is validate.
1575 2015-06-06  Thomas Koenig  <tkoenig@netcologne.de>
1577         PR fortran/47659
1578         * arith.c (eval_intrinsic_op): Set warn flag for
1579         gfc_type_convert_binary if -Wconversion or -Wconversion-extra
1580         are set.
1581         (wprecision_real_real): New function.
1582         (wprecision_int_real): New function.
1583         (gfc_int2int): If -fno-range-check and -Wconversion are specified
1584         and it is a narrowing conversion, warn.
1585         (gfc_int2real): If there is a change in value for the conversion,
1586         warn.
1587         (gfc_int2complex):  Likewise.
1588         (gfc_real2int): If there is a fractional part to the real number,
1589         warn with -Wconversion, otherwise warn with -Wconversion-extra.
1590         (gfc_real2real): Emit warning if the constant was changed by
1591         conversion with either -Wconversion or -Wconversion-extra.  With
1592         -Wconversion-extra, warn if no warning was issued earlier.
1593         (gfc_real2complex):  Likewise.
1594         (gfc_complex2int): For -Wconversion or -Wconversion-extra, if
1595         there was an imaginary part, warn; otherwise, warn for change in
1596         value.  Warn with -Wconversion-extra if no other warning was
1597         issued.
1598         (gfc_complex2real): For -Wconversion or -Wconversion-extra, if
1599         there was an imaginary part, warn; otherwise, warn for change in
1600         value. Warn with -Wconversion-extra if no other warning was
1601         issued.
1602         (gfc_complex2complex):  For -Wconversion, warn if the value of
1603         either the real or the imaginary part was changed.  Warn for
1604         -Wconversion-extra if no prior warning was issued.
1605         * expr.c (gfc_check_assign):  Remove check for change in value.
1606         * primary.c (match_real_constant): For -Wconversion-extra, check
1607         against a number in which the last non-zero digit has been
1608         replaced with a zero.  If the number compares equal, warn.
1609         * intrinsic.c (gfc_convert_type_warn):  Do not warn about constant
1610         conversions.
1612 2015-06-05  Steven G. Kargl  <kargl@gcc.gnu.org>
1614         PR fortran/66347
1615         * resolve.c (apply_default_init_local): Do not dereference a NULL
1616         pointer.
1618 2015-06-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1620         PR fortran/66385
1621         * frontend-passes.c (combine_array_constructor): Return early if
1622         inside a FORALL loop.
1624 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
1626         * f95-lang.c (gfc_write_global_declarations): Remove.
1627         (LANG_HOOKS_WRITE_GLOBALS): Remove.
1628         (gfc_write_global_declarations): Move code from here to...
1629         (gfc_be_parse_file): ...here.
1630         Call global_decl_processing.
1631         * trans-decl.c (gfc_emit_parameter_debug_info): Rename global_decl
1632         to early_global_decl.
1634 2015-06-05  Russell Whitesides  <russelldub@gmail.com>
1635             Steven G. Kargl  <kargl@gcc.gnu.org>
1637         PR fortran/40958
1638         PR fortran/60780
1639         PR fortran/66377
1640         * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
1641         from different modules.  Eliminate the pruning of unused
1642         equivalence-objects
1644 2015-06-04  Thomas Koenig  <tkoenig@netcologne.de>
1646         PR fortran/58749
1647         * iresolve.c (gfc_resolve_adjustl):  If string has a charlen,
1648         copy it to the function.
1649         (gfc_resolve_adjustr):  Likewise.
1651 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
1653         * convert.c: Adjust includes for restructured coretypes.h.
1654         * cpp.c: Likewise.
1655         * decl.c: Likewise.
1656         * f95-lang.c: Likewise.
1657         * iresolve.c: Likewise.
1658         * match.c: Likewise.
1659         * module.c: Likewise.
1660         * options.c: Likewise.
1661         * target-memory.c: Likewise.
1662         * trans-array.c: Likewise.
1663         * trans-common.c: Likewise.
1664         * trans-const.c: Likewise.
1665         * trans-decl.c: Likewise.
1666         * trans-expr.c: Likewise.
1667         * trans-intrinsic.c: Likewise.
1668         * trans-io.c: Likewise.
1669         * trans-openmp.c: Likewise.
1670         * trans-stmt.c: Likewise.
1671         * trans-types.c: Likewise.
1672         * trans.c: Likewise.
1674 2015-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1676         PR fortran/66380
1677         * simplify.c (gfc_simplify_reshape): Convert assert into returning
1678         NULL, which triggers an error condition.
1680 2015-05-27  Andre Vehreschild  <vehre@gmx.de>
1682         PR fortran/65548
1683         * trans-stmt.c (gfc_trans_allocate): Add missing location
1684         information for e3rhs.
1686 2015-05-26  Paul Thomas  <pault@gcc.gnu.org>
1688         PR fortran/66082
1689         * trans-array.c (gfc_conv_array_parameter): Ensure that all
1690         non-variable arrays with allocatable components have the
1691         components deallocated after the procedure call.
1693 2015-05-24  Mikael Morin  <mikael@gcc.gnu.org>
1695         PR fortran/66257
1696         * resolve.c (resolve_actual_arglist): Don't throw an error
1697         if the argument with procedure pointer component is not a variable.
1699 2015-05-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1701         PR fortran/44054
1702         * gfortran.h (struct gfc_error_buf): Rename as
1703         gfc_error_buffer. Move closer to push, pop and free
1704         methods. Reimplement using an output_buffer.
1705         * error.c (errors, warnings, warning_buffer, cur_error_buffer):
1706         Delete everywhere in this file.
1707         (error_char): Delete all contents.
1708         (gfc_increment_error_count): Delete.
1709         (gfc_error_now): Update comment. Set error_buffer.flag.
1710         (gfc_warning_check): Do not handle warning_buffer.
1711         (gfc_error_1): Delete.
1712         (gfc_error_now_1): Delete.
1713         (gfc_error_check): Simplify.
1714         (gfc_move_error_buffer_from_to): Renamed from
1715         gfc_move_output_buffer_from_to.
1716         (gfc_push_error): Handle only gfc_error_buffer.
1717         (gfc_pop_error): Likewise.
1718         (gfc_free_error): Likewise.
1719         (gfc_get_errors): Remove warnings and errors.
1720         (gfc_diagnostics_init): Use static error_buffer.
1721         (gfc_error_1,gfc_error_now_1): Delete declarations.
1722         * symbol.c, decl.c, trans-common.c, data.c, expr.c, expr.c,
1723         frontend-passes.c, resolve.c, match.c, parse.c: Replace
1724         gfc_error_1 with gfc_error and gfc_error_now_1 with gfc_error_1
1725         everywhere.
1726         * f95-lang.c (gfc_be_parse_file): Do not update errorcount and
1727         warningcount here.
1728         * primary.c (match_complex_constant): Replace gfc_error_buf and
1729         output_buffer with gfc_error_buffer.
1731 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
1733         * Make-lang.in (check_gfortran_parallelize): Update comment.
1735 2015-05-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1737         PR fortran/66176
1738         * frontend-passes.c (check_conjg_variable):  New function.
1739         (inline_matmul_assign):  Use it to keep track of conjugated
1740         variables.
1742 2015-05-20  Andre Vehreschild  <vehre@gmx.de>
1744         PR fortran/65548
1745         * trans-stmt.c (gfc_trans_allocate): Always retrieve the
1746         descriptor or a reference to a source= expression for
1747         arrays and non-arrays, respectively.  Use a temporary
1748         symbol and gfc_trans_assignment for all source=
1749         assignments to allocated objects besides for class and
1750         derived types.
1752 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
1754         PR middle-end/66199
1755         * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
1756         combined constructs.
1757         (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
1758         BIND_EXPR_BLOCK.
1760 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
1762         * cpp.c (maybe_print_line): Strengthen local "map" from
1763         const line_map * to const line_map_ordinary *.
1764         (cb_file_change): Likewise for param "map" and local "from".
1765         (cb_line_change): Likewise for local "map".
1767 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
1769         * interface.c (compare_actual_formal): Use std::swap instead of
1770         explicit swaps.
1771         * trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
1772         * trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.
1774 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1776         PR fortran/66106
1777         * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
1778         * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
1780 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1782         PR fortran/66057
1783         * decl.c(gfc_match_generic):  Detected a malformed GENERIC statement.
1785 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1787         PR fortran/66043
1788         * gfortran.dg/storage_size_6.f90: New tests.
1790 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1792         PR fortran/66043
1793         * gfortran.dg/storage_size_6.f90: New tests.
1795 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1797         PR fortran/66044
1798         * decl.c(gfc_match_entry):  Change a gfc_internal_error() into
1799         a gfc_error()
1801 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1803         PR fortran/66043
1804         * gfortran.dg/storage_size_6.f90: New tests.
1806 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1808         PR fortran/66040
1809         * parse.c(verify_st_order): Replace a gfc_internal_error with your
1810         generic gfc_error.
1812 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1814         PR fortran/66039
1815         * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
1816         BACKSPACE, and ENDFILE statements
1818 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1820         PR fortran/64925
1821         * symbol.c(check_conflict):  Check for a conflict between a dummy
1822         argument and an internal procedure name.
1824 2015-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1826         PR fortran/65903
1827         * io.c (format_lex): Change to NONSTRING when checking for
1828         possible doubled quote.
1829         * scanner.c (gfc_next_char_literal): Revert change from 64506
1830         and add a check for quotes and return.
1832 2015-05-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
1834         PR fortran/66113
1835         * expr.c (is_parent_of_current_ns):  New function.
1836         (check_restricted):  Use it.
1838 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1840         PR fortran/44054
1842         Replace all calls to gfc_notify_std_1 with gfc_notify_std and
1843         gfc_warning_1 with gfc_warning.
1844         * decl.c (gfc_verify_c_interop_param): Here.
1845         * resolve.c (resolve_branch): Here.
1846         (resolve_fl_derived): Here.
1847         * dependency.c (gfc_check_argument_var_dependency):
1848         * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
1849         counter and locations before and after warning.
1850         * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
1851         Delete.
1852         (gfc_warning_now_at): Declare.
1853         * error.c (gfc_warning_1): Delete.
1854         (gfc_notify_std_1): Delete.
1855         (gfc_warning_now_1): Delete.
1856         (gfc_format_decoder): Handle two locations.
1857         (gfc_diagnostic_build_prefix): Rename as
1858         gfc_diagnostic_build_kind_prefix.
1859         (gfc_diagnostic_build_locus_prefix): Take an expanded_location
1860         instead of diagnostic_info.
1861         (gfc_diagnostic_build_locus_prefix): Add overload that takes two
1862         expanded_location.
1863         (gfc_diagnostic_starter): Handle two locations.
1864         (gfc_warning_now_at): New.
1865         (gfc_diagnostics_init): Initialize caret_chars array.
1866         (gfc_diagnostics_finish): Reset caret_chars array to default.
1868 2015-05-16  Mikael Morin  <mikael@gcc.gnu.org>
1869             Paul Thomas  <pault@gcc.gnu.org>
1871         PR fortran/65792
1872         * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
1873         the expression component to the destination. In addition, if
1874         the component has allocatable components, copy them and
1875         deallocate those of the expression, if it is not a variable.
1876         The expression is fixed if not a variable to prevent multiple
1877         evaluations.
1879 2015-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1881         PR fortran/66111
1882         * frontend-passes.c (has_dimen_vector_ref):  New function.
1883         (inline_matmul_assign):  Use it to return early in case
1884         of unhandled vector subscripts.
1886 2015-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1888         PR fortran/66041
1889         PR fortran/37131
1890         * gfortran.h (gfc_array_spec):  Add field resolved.
1891         * array.c (gfc_resolve_array_spec):  Resolve array spec
1892         only once.
1894 2015-05-11  Mikael Morin  <mikael@gcc.gnu.org>
1896         PR fortran/66100
1897         * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
1899 2015-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1901         PR fortran/66041
1902         * frontend-passes.c (scalarized_expr): Set correct dimension and
1903         shape for the expression to be passed to lbound. Remove trailing
1904         references after array refrence.
1905         (inline_matmul_assign):  Remove gfc_copy_expr from calls
1906         to scalarized_expr().
1908 2015-05-10  Mikael Morin  <mikael@gcc.gnu.org>
1910         * simplify.c (simplify_bound_dim): Don't check for emptyness
1911         in the case of cobound simplification.  Factor lower/upper
1912         bound differenciation before the actual simplification.
1913         (simplify_bound): Remove assumed shape specific simplification.
1914         Don't give up early for the lbound of an assumed shape.
1916 2015-05-09  Mikael Morin  <mikael@gcc.gnu.org>
1918         PR fortran/65894
1919         * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
1920         New prototype.
1921         * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
1922         New function.
1923         (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
1924         as conditional.
1925         (gfc_walk_elemental_function_args): Set the dummy_arg field.
1926         * trans.h (gfc_ss_info): New subfield dummy_arg.
1927         * trans-expr.c (gfc_conv_procedure_call): Revert the change
1928         of revision 222361.
1929         (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
1930         as conditional.
1932 2015-05-08  Mikael Morin  <mikael@gcc.gnu.org>
1934         * trans-array.c (gfc_walk_elemental_function_args):
1935         Don't skip the advance to the next dummy argument when skipping
1936         absent optional args.
1938 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
1940         * expr.c (check_inquiry): Fix indentation so that it reflects the
1941         block structure.
1942         * interface.c (compare_parameter): Likewise.
1943         * parse.c (parse_oacc_structured_block): Likewise.
1944         * target-memory.c (expr_to_char): Likewise.
1945         * trans-types.c (gfc_init_kinds): Likewise.
1947 2015-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1949         PR fortran/65976
1950         * invoke.texi:  Remove 'no-' in '-fno-fixed-form'
1952 2015-05-01  Mikael Morin  <mikael@gcc.gnu.org>
1954         * simplify.c (simplify_bound_dim): Tighten the check for array fullness
1955         by also checking for absence of subreference.
1956         (simplify_bound): Don't skip simplification if the array
1957         has subreferences.
1958         (simplify_cobound): Same.
1960 2015-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1962         PR fortran/37131
1963         * simplify.c (simplify_bound): Get constant lower bounds of one
1964         from array spec for assumed and explicit shape shape arrays if
1965         the lower bounds are indeed one.
1967 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
1969         * options.c (gfc_init_options): Remove spurious second
1970         semicolon.
1971         * trans-stmt.c (gfc_trans_allocate): Likewise.
1973 2015-04-28  Andre Vehreschild  <vehre@gmx.de>
1975         * interface.c (gfc_compare_types): Check for unlimited
1976         polymorphism flag in the correct position indepent of the _data
1977         component being present or not.  This prevents a segfault, when
1978         the _data component is not present.
1979         * symbol.c (gfc_type_compatible): Same.
1981 2015-04-27  Jim Wilson  <jim.wilson@linaro.org>
1983         * Make-lang.in (fortran.mostlyclean): Remove gfortran and
1984         gfortran-cross.
1986 2015-04-27  Andre Vehreschild  <vehre@gmx.de>
1988         PR fortran/59678
1989         PR fortran/65841
1990         * trans-array.c (duplicate_allocatable): Fixed deep copy of
1991         allocatable components, which are liable for copy only, when
1992         they are allocated.
1993         (gfc_duplicate_allocatable): Add deep-copy code into if
1994         component allocated block. Needed interface change for that.
1995         (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
1996         add into if-block for checking whether a component was
1997         allocated.
1998         (gfc_duplicate_allocatable_nocopy): Likewise.
1999         (structure_alloc_comps): Likewise.
2000         * trans-array.h: Likewise.
2001         * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
2002         * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
2004 2015-04-23  Andre Vehreschild  <vehre@gmx.de>
2006         PR fortran/60322
2007         * expr.c (gfc_lval_expr_from_sym): Code to select the regular
2008         or class array added.
2009         * gfortran.h: Add IS_CLASS_ARRAY macro.
2010         * trans-array.c (gfc_add_loop_ss_code): Treat class objects
2011         to be referenced always.
2012         (build_class_array_ref): Adapt retrieval of array descriptor.
2013         (build_array_ref): Likewise.
2014         (gfc_conv_array_ref): Hand the vptr or the descriptor to
2015         build_array_ref depending whether the sym is class or not.
2016         (gfc_trans_array_cobounds):  Select correct gfc_array_spec for
2017         regular and class arrays.
2018         (gfc_trans_array_bounds): Likewise.
2019         (gfc_trans_dummy_array_bias): Likewise.
2020         (gfc_get_dataptr_offset): Correcting call of build_array_ref.
2021         (gfc_conv_expr_descriptor): Set the array's offset to -1 when
2022         lbound in inner most dim is 1 and symbol non-pointer/assoc.
2023         * trans-decl.c (gfc_build_qualified_array): Select correct
2024         gfc_array_spec for regular and class arrays.
2025         (gfc_build_dummy_array_decl): Likewise.
2026         (gfc_get_symbol_decl): Get a dummy array for class arrays.
2027         (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
2028         is desired.
2029         * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
2030         from the correct location for class arrays.
2031         (gfc_class_len_get): Likewise.
2032         (gfc_conv_intrinsic_to_class): Add handling of _len component.
2033         (gfc_conv_class_to_class):  Prevent access to unset array data
2034         when the array is an optional argument. Add handling of _len
2035         component.
2036         (gfc_copy_class_to_class): Check that _def_init is non-NULL
2037         when used in _vptr->copy()
2038         (gfc_trans_class_init_assign): Ensure that the rank of
2039         _def_init is zero.
2040         (gfc_conv_component_ref): Get the _vptr along with _data refs.
2041         (gfc_conv_variable): Make sure the temp array descriptor is
2042         returned for class arrays, too, and that class arrays are
2043         dereferenced correctly.
2044         (gfc_conv_procedure_call): For polymorphic type initialization
2045         the initializer has to be a pointer to _def_init stored in a
2046         dummy variable, which then needs to be used by value.
2047         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
2048         temporary array descriptor for class arrays, too.
2049         (gfc_conv_intrinsic_storage_size): Likewise.
2050         (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
2051         expressions.
2052         * trans-stmt.c (trans_associate_var): Use a temporary array for
2053         the associate variable of class arrays, too, making the array
2054         one-based (lbound == 1).
2055         * trans-types.c (gfc_is_nodesc_array): Use the correct
2056         array data.
2057         * trans.c (gfc_build_array_ref): Use the dummy array descriptor
2058         when present.
2059         * trans.h: Add class_vptr to gfc_se for storing a class ref's
2060         vptr.
2062 2015-04-22  Steven G. Kargl  <kargl@gcc.gnu.org>
2064         PR fortran/65429
2065         * decl.c (add_init_expr_to_sym): Set the length type parameter.
2067 2015-04-10  Tobias Burnus  <burnus@net-b.de>
2069         * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
2070         version; reject not-yet-implemented variants.
2071         * trans-types.c (gfc_get_derived_type): For lock_type with
2072         -fcoarray=lib, use a void pointer as type.
2073         * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
2074         Handle lock_type with -fcoarray=lib.
2076 2015-04-10  Mikael Morin  <mikael@gcc.gnu.org>
2078         PR fortran/56674
2079         PR fortran/58813
2080         PR fortran/59016
2081         PR fortran/59024
2082         * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
2083         former to the latter and make it non-static.  Update callers.
2084         * gfortran.h (gfc_save_symbol_data): New prototype.
2085         * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
2086         before modifying symbols 'sym' and 'dt_sym'.
2088 2013-04-09  Paul Thomas  <pault@gcc.gnu.org>
2090         PR fortran/56852
2091         * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
2092         of the index variables are untyped and errors are present.
2094 2015-04-07  Andre Vehreschild  <vehre@gmx.de>
2096         PR fortran/65548
2097         * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
2098         use conv_expr_descriptor() instead of conv_expr_reference().
2100 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
2102         PR fortran/65597
2103         * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
2104         linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
2105         For implcitly added !simple OMP_CLAUSE_LINEAR set it too.  Use step 1
2106         instead of the original step on the new iterator - count.
2108 2015-03-25  Mikael Morin  <mikael@gcc.gnu.org>
2110         PR fortran/64952
2111         PR fortran/65532
2112         * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
2113         * resolve.c (resolve_types): Return early if field 'types_resolved'
2114         is set.  Set 'types_resolved' at the end.
2116 2015-03-24  Andre Vehreschild  <vehre@gmx.de>
2118         PR fortran/55901
2119         * trans-expr.c (gfc_conv_structure): Fixed indendation.
2120         Using integer_zero_node now instead of explicitly
2121         constructing a integer constant zero node.
2122         (gfc_conv_derived_to_class): Add handling of _len component,
2123         i.e., when the rhs has a string_length then assign that to
2124         class' _len, else assign 0.
2125         (gfc_conv_intrinsic_to_class): Likewise.
2127 2015-03-24  Andre Vehreschild  <vehre@gmx.de>
2129         PR fortran/64787
2130         PR fortran/57456
2131         PR fortran/63230
2132         * class.c (gfc_add_component_ref):  Free no longer needed
2133         ref-chains to prevent memory loss.
2134         (find_intrinsic_vtab): For deferred length char arrays or
2135         unlimited polymorphic objects, store the size in bytes of one
2136         character in the size component of the vtab.
2137         * gfortran.h: Added gfc_add_len_component () define.
2138         * trans-array.c (gfc_trans_create_temp_array): Switched to new
2139         function name for getting a class' vtab's field.
2140         (build_class_array_ref): Likewise.
2141         (gfc_array_init_size): Using the size information from allocate
2142         more consequently now, i.e., the typespec of the entity to
2143         allocate is no longer needed.  This is to address the last open
2144         comment in PR fortran/57456.
2145         (gfc_array_allocate): Likewise.
2146         (structure_alloc_comps): gfc_copy_class_to_class () needs to
2147         know whether the class is unlimited polymorphic.
2148         * trans-array.h: Changed interface of gfc_array_allocate () to
2149         reflect the no longer needed typespec.
2150         * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
2151         (gfc_reset_len): New.
2152         (gfc_get_class_array_ref): Switch to new function name for
2153         getting a class' vtab's field.
2154         (gfc_copy_class_to_class):  Added flag to know whether the class
2155         to copy is unlimited polymorphic.  Adding _len dependent code
2156         then, which calls ->vptr->copy () with four arguments adding
2157         the length information ->vptr->copy(from, to, from_len, to_cap).
2158         (gfc_conv_procedure_call): Switch to new function name for
2159         getting a class' vtab's field.
2160         (alloc_scalar_allocatable_for_assignment): Use the string_length
2161         as computed by gfc_conv_expr and not the statically backend_decl
2162         which may be incorrect when ref-ing.
2163         (gfc_trans_assignment_1): Use the string_length variable and
2164         not the rse.string_length.  The former has been computed more
2165         generally.
2166         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
2167         function name for getting a class' vtab's field.
2168         (gfc_conv_intrinsic_storage_size): Likewise.
2169         (gfc_conv_intrinsic_transfer): Likewise.
2170         * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
2171         source=expr3 only once before the loop over the objects to
2172         allocate, when the objects are not arrays. Doing correct _len
2173         initialization and calling of vptr->copy () fixing PR 64787.
2174         (gfc_trans_deallocate): Reseting _len to 0, preventing future
2175         errors.
2176         * trans.c (gfc_build_array_ref): Switch to new function name
2177         for getting a class' vtab's field.
2178         (gfc_add_comp_finalizer_call): Likewise.
2179         * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
2180         and gfc_vptr_*_get () functions.
2181         Added gfc_find_and_cut_at_last_class_ref () and
2182         gfc_reset_len () routine prototype.  Added flag to
2183         gfc_copy_class_to_class () prototype to signal an unlimited
2184         polymorphic entity to copy.
2186 2015-03-24  Iain Sandoe  <iain@codesourcery.com>
2187             Tobias Burnus  <burnus@net-b.de>
2189         * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
2191 2015-03-23  Paul Thomas  <pault@gcc.gnu.org>
2192             Mikael Morin  <mikael@gcc.gnu.org>
2194         PR fortran/64952
2195         * gfortran.h (struct symbol_attribute) : New field
2196         'array_outer_dependency'.
2197         * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
2198         * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
2199         (attr_bits): Append same value to initializer.
2200         (mio_symbol_attribute): Handle 'array_outer_dependency' attr
2201         in module read and write.
2202         * resolve.c (update_current_proc_outer_array_dependency): New function.
2203         (resolve_function, resolve_call): Add code to update current procedure's
2204         'array_outer_dependency' attribute.
2205         (resolve_variable): Mark current procedure with attribute
2206         array_outer_dependency if the variable is an array coming from outside
2207         the current namespace.
2208         (resolve_fl_procedure): Mark a procedure without body with attribute
2209         'array_outer_dependency'.
2210         * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
2211         marked as 'array_outer_dependency' generate a temporary.
2212         (gfc_walk_function_expr): If the function may reference external arrays,
2213         mark the head gfc_ss with flag 'array_outer_dependency'.
2215 2015-03-22 Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2217         PR libgfortran/59513
2218         * gfortran.texi (Read/Write after EOF marker): New information.
2220 2015-03-21  H.J. Lu  <hongjiu.lu@intel.com>
2222         * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
2223         line.
2225 2015-03-21  Tobias Burnus  <burnus@net-b.de>
2227         * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
2228         _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
2229         _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
2230         _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
2231         _gfortran_caf_atomic_op): New sections.
2233 2015-03-21  Tobias Burnus  <burnus@net-b.de>
2235         * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
2236         coindexed coarray accesses.
2238 2015-03-17  Paul Thomas  <pault@gcc.gnu.org>
2240         PR fortran/59198
2241         * trans-types.c (gfc_get_derived_type): If an abstract derived
2242         type with procedure pointer components has no other type of
2243         component, return the backend_decl. Otherwise build the
2244         components if any of the non-procedure pointer components have
2245         no backend_decl.
2247 2015-03-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2249         PR fortran/64432
2250         *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
2251         smallest kind passed in user arguments and hardcode tesults for
2252         KIND=1 or KIND=2 to indicate no clock available.
2254 2015-03-16  Andre Vehreschild  <vehre@gmx.de>
2256         * resolve.c: Prevent segfault on illegal input.
2258 2015-03-14  Mikael Morin  <mikael@gcc.gnu.org>
2260         PR fortran/61138
2261         * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
2262         field before reusing LSE.
2264 2015-03-11  Janne Blomqvist  <jb@gcc.gnu.org>
2266         PR libfortran/65200
2267         * gfortran.texi: Document behavior when opening files without
2268         explicit ACTION= specifier.
2270 2015-03-10  Paul Thomas  <pault@gcc.gnu.org>
2272         PR fortran/65024
2273         * trans-expr.c (gfc_conv_component_ref): If the component
2274         backend declaration is missing and the derived type symbol is
2275         available in the reference, call gfc_build_derived_type.
2277 2015-03-10  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
2278             Tobias Burnus  <burnus@net-b.de>
2280         * trans.h (caf_sync_memory): New function decl tree.
2281         * trans-decl.c (gfc_build_builtin_function_decls): Define it.
2282         (create_main_function): Don't call sync_synchronize and leave
2283         it to the CAF library.
2284         * trans-stmt.c (gfc_trans_stop): Ditto.
2285         (gfc_trans_sync): Ditto; add call library call for sync memory.
2287 2015-03-08  Mikael Morin  <mikael@gcc.gnu.org>
2289         PR fortran/60898
2290         * resolve.c (resolve_symbol): Check that the symbol found by
2291         name lookup really is the current symbol being resolved.
2293 2015-03-02  Tobias Burnus  <burnus@net-b.de>
2295         * check.c (gfc_check_atomic): Properly check for coarrayness
2296         and for being coindexed.
2298 2015-02-26  Martin Liska  <mliska@suse.cz>
2300         * resolve.c: Rename enum 'comparison' to 'compare_result' as
2301         solution for -Wodr issue.
2303 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
2305         PR libgomp/64625
2306         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
2307         Remove macros.
2308         (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
2309         * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2310         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2311         Remove function types.
2312         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
2313         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2314         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2315         New function types.
2317 2015-02-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2319         PR fortran/64980
2320         PR fortran/61960
2321         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
2322         for component references to class objects.
2323         (gfc_conv_procedure_call): Compare the class by name.
2325 2015-02-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2327         PR fortran/64506
2328         * scanner.c (gfc_next_char_literal): For free form source,
2329         check for '!' and if found, clear the comment and go back
2330         and get the next character. For fixed form source, skip the
2331         rest of the line.
2333 2015-02-12  Paul Thomas  <pault@gcc.gnu.org>
2335         PR fortran/64932
2336         * trans-stmt.c (gfc_trans_deallocate): If a component array
2337         expression is not a descriptor type and it is a derived type
2338         that has allocatable components and is not finalizable, then
2339         deallocate the allocatable components.
2341 2015-02-08  Mikael Morin  <mikael@gcc.gnu.org>
2343         PR fortran/63744
2344         * module.c (check_for_ambiguous): Change argument type
2345         from gfc_symbol to gfc_symtree.  Check local (symtree) name
2346         instead of original (symbol) name.
2347         (read_module): Update caller.
2349 2015-02-06  Paul Thomas  <pault@gcc.gnu.org>
2351         PR fortran/63205
2352         * gfortran.h: Add 'must finalize' field to gfc_expr and
2353         prototypes for gfc_is_alloc_class_scalar_function and for
2354         gfc_is_alloc_class_array_function.
2355         * expr.c (gfc_is_alloc_class_scalar_function,
2356         gfc_is_alloc_class_array_function): New functions.
2357         * trans-array.c (gfc_add_loop_ss_code): Do not move the
2358         expression for allocatable class scalar functions outside the
2359         loop.
2360         (conv_array_index_offset): Cope with deltas being NULL_TREE.
2361         (build_class_array_ref): Do not return with allocatable class
2362         array functions. Add code to pick out the returned class array.
2363         Dereference if necessary and return if not a class object.
2364         (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
2365         (gfc_walk_function_expr): Return an array ss for the result of
2366         an allocatable class array function.
2367         * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
2368         that the argument should be a variable. If an allocatable class
2369         array function, set the offset to zero and skip the write-out
2370         loop in this case.
2371         (gfc_conv_procedure_call): Add allocatable class array function
2372         to the assert. Call gfc_conv_subref_array_arg for allocatable
2373         class array function arguments with derived type formal arg..
2374         Add the code for handling allocatable class functions, including
2375         finalization calls to prevent memory leaks.
2376         (arrayfunc_assign_needs_temporary): Return if an allocatable
2377         class array function.
2378         (gfc_trans_assignment_1): Set must_finalize to rhs expression
2379         for allocatable class functions. Set scalar_to_array as needed
2380         for scalar class allocatable functions assigned to an array.
2381         Nullify the allocatable components corresponding the the lhs
2382         derived type so that the finalization does not free them.
2384 2015-01-29  Andre Vehreschild  <vehre@gmx.de>
2385             Janus Weil  <janus@gcc.gnu.org>
2387         PR fortran/60289
2388         Initial patch by Janus Weil
2389         * resolve.c (resolve_allocate_expr): Add check for comp. only
2390         when target is not unlimited polymorphic.
2391         * trans-stmt.c (gfc_trans_allocate): Assign correct value to
2392         _len component of unlimited polymorphic entities.
2394 2015-02-05  Tobias Burnus  <burnus@net-b.de>
2396         PR fortran/64943
2397         * resolve.c (resolve_transfer): Also check structure
2398         constructors.
2400 2015-02-05  Paul Thomas  <pault@gcc.gnu.org>
2402         PR fortran/64757
2403         * resolve.c (resolve_structure_cons): Obtain the rank of class
2404         components.
2405         * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
2406         assignment to allocatable class array components.
2407         (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
2408         is a class component, allocate to the _data field.
2409         (gfc_trans_subcomponent_assign): If a class component with a
2410         derived type expression set the _vptr field and for array
2411         components, call gfc_trans_alloc_subarray_assign. For scalars,
2412         the assignment is performed here.
2414 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
2416         * options.c: Include langhooks.h.
2417         (gfc_post_options): Change lang_hooks.name based on
2418         selected -std= mode.
2420 2015-02-03  Steven G. Kargl  <kargl@gcc.gnu.org>
2422         * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
2424 2015-01-30  Andre Vehreschild  <vehre@gmx.de>
2426         * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
2427         * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
2428         Fixed datatype of charlen to be a 32-bit int.
2430 2015-02-01  Joseph Myers  <joseph@codesourcery.com>
2432         * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
2433         char *, ...)): Remove functions.
2434         * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
2435         (const char *, ...)): Remove declarations.
2436         * arith.c, check.c, data.c, decl.c, frontend-passes.c,
2437         interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
2438         options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
2439         trans-common.c, trans-const.c, trans-stmt.c: All callers of
2440         gfc_warning and gfc_warning_now changed to pass 0 or option number
2441         as first argument.
2443 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
2445         * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
2446         callers of fatal_error changed to pass input_location as first
2447         argument.
2449 2015-01-28  Tobias Burnus  <burnus@net-b.de>
2451         * intrinsic.texi (CO_BROADCAST): Correct argument description.
2453 2015-01-27  Tobias Burnus  <burnus@net-b.de>
2455         PR fortran/63861
2456         * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
2457         Fix handling for scalar coarrays.
2458         * trans-types.c (gfc_get_element_type): Add comment.
2460 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2462         PR fortran/64771
2463         * interface.c: Remove <algorithm>.
2464         (check_dummy_characteristics): Use MAX instead of std::max.
2466 2015-01-26  Paul Thomas  <pault@gcc.gnu.org>
2468         PR fortran/62044
2469         * resolve.c (resolve_allocate_expr): If the default initializer
2470         is NULL, keep the original MOLD expression so that the correct
2471         typespec is available.
2473 2015-01-26  Tobias Burnus  <burnus@net-b.de>
2475         PR fortran/64771
2476         * interface.c (check_dummy_characteristics): Fix coarray handling.
2478 2015-01-26  Tobias Burnus  <burnus@net-b.de>
2480         * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
2482 2015-01-26  Janus Weil  <janus@gcc.gnu.org>
2484         PR fortran/64230
2485         * class.c (finalize_component): New argument 'sub_ns'. Insert code to
2486         check if 'expr' is associated.
2487         (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
2488         'ptr2'. Pass 'sub_ns' to finalize_component.
2490 2015-01-25  Mikael Morin  <mikael@gcc.gnu.org>
2492         PR fortran/62044
2493         * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
2494         * module.c (MOD_VERSION): Bump.
2495         (write_module): Don't write list of extensions.
2496         (read_module): Don't jump over list of extensions;
2497         don't load list of extensions.
2498         (load_derived_extensions, write_dt_extensions,
2499          write_derived_extensions): Remove.
2501 2015-01-24  Tobias Burnus  <burnus@net-b.de>
2503         * parse.c (gfc_parse_file): Fix two-location gfc_error call.
2505 2015-01-23  Martin Liska  <mliska@suse.cz>
2507         * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
2508         false positive during profiledbootstrap by initializing them.
2509         * matchexp.c (match_mult_operand): Likewise.
2510         * module.c (write_atom): Likewise.
2511         (read_module): Likewise.
2513 2015-01-23  Tom de Vries  <tom@codesourcery.com>
2515         PR libgomp/64672
2516         * lang.opt (fopenacc): Mark as LTO option.
2518 2015-01-23  Tom de Vries  <tom@codesourcery.com>
2520         PR libgomp/64707
2521         * lang.opt (fopenmp): Mark as LTO option.
2523 2015-01-23  Andre Vehreschild  <vehre@gmx.de>
2525         * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
2526         * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
2528 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
2530         * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
2532 2015-01-23  Janus Weil  <janus@gcc.gnu.org>
2534         PR fortran/60922
2535         * class.c (finalize_component): Apply the check for 'fini_coarray' only
2536         to coarray components.
2538 2015-01-23  Tobias Burnus  <burnus@net-b.de>
2540         PR fortran/64726
2541         * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
2542         loop generation.
2544 2015-01-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2546         PR fortran/61933
2547         * libgfortran.h:
2548         * trans-io.c (set_parameter_value): Delete use of has_iostat.
2549         Redefine to not generate any runtime error check calls.
2550         (set_parameter_value_chk): Rename of the former
2551         set_parameter_value with the runtime error checks and fix
2552         whitespace. (set_parameter_value_inquire): New function that
2553         builds a runtime conditional block to set the INQUIRE
2554         common parameter block unit number to -2 when unit numbers
2555         exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
2556         For unit, use the renamed set_parameter_value_chk.
2557         (gfc_trans_close): Likewise use renamed function.
2558         (build_filepos): Whitespace and use renamed function.
2559         (gfc_trans_inquire): Whitespace and for unit use
2560         set_parameter_value and set_parameter_value_inquire.
2561         (gfc_trans_wait): Remove p->iostat from call to
2562         set_parameter_value. Use new set_parameter_value_chk for unit.
2563         (build_dt): Use the new set_parameter_value without p->iostat
2564         and fix whitespace. Use set_parameter_value_chk for unit.
2566 2015-01-21  Thomas Koenig  <tkoenig@netcologne.de>
2568         PR fortran/57023
2569         * dependency.c (callback_dummy_intent_not_int):  New function.
2570         (dummy_intent_not_in):  New function.
2571         (gfc_full_array_ref_p):  Use dummy_intent_not_in.
2573 2015-01-18  Andre Vehreschild  <vehre@gmx.de>
2574             Janus Weil <janus@gcc.gnu.org>
2576         PR fortran/60255
2577         * class.c (gfc_get_len_component): New.
2578         (gfc_build_class_symbol): Add _len component to unlimited
2579         polymorphic entities.
2580         (find_intrinsic_vtab): Removed emitting of error message.
2581         * gfortran.h: Added prototype for gfc_get_len_component.
2582         * simplify.c (gfc_simplify_len): Use _len component where
2583         available.
2584         * trans-expr.c (gfc_class_len_get): New.
2585         (gfc_conv_intrinsic_to_class): Add handling for deferred
2586         character arrays.
2587         (gfc_conv_structure): Treat _len component correctly.
2588         (gfc_conv_expr): Prevent bind_c handling when not required.
2589         (gfc_trans_pointer_assignment): Propagate _len component.
2590         * trans-stmt.c (class_has_len_component): New.
2591         (trans_associate_var): _len component treatment for associate
2592         context.
2593         (gfc_trans_allocate): Same as for trans_associate_var()
2594         * trans.h: Added prototype for gfc_class_len_get.
2596 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
2598         PR fortran/57959
2599         * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
2600         for allocatable components, where the source is a variable.
2602 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
2604         PR fortran/55901
2605         * primary.c (gfc_match_varspec): Exclude dangling associate-
2606         names with dimension 0 from being counted as arrays.
2607         * resolve.c (resolve_assoc_var): Sub-strings are permissible
2608         for associate-names, so exclude characters from the test for
2609         misuse as arrays.
2610         * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
2611         the hidden string length variable of their associated target.
2612         Signal this by setting 'length' to a constant, if the decl for
2613         the string length is a variable.
2615 2015-01-17  Paul Thomas  <pault@gcc.gnu.org>
2617         PR fortran/64578
2618         * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
2619         before reinitializing rse, to add the rse.pre to block before
2620         creating 'ptrtemp'.
2621         * trans-intrinsic.c (gfc_conv_associated): Deal with the class
2622         data being a descriptor.
2624 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
2626         PR fortran/60357
2627         * primary.c (build_actual_constructor): Prevent warning.
2628         * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
2629         assignment): New function encapsulates treatment of allocatable
2630         components.
2631         (gfc_trans_subcomponent_assign): Needed to distinguish between
2632         regular assignment and initilization.
2633         (gfc_trans_structure_assign): Same.
2634         (gfc_conv_structure): Same.
2636         PR fortran/61275
2637         * gfortran.h: deferred_parameter is not needed, because
2638         it artificial does the trick completely.
2639         * primary.c (build_actual_constructor): Same.
2640         (gfc_convert_to_structure_constructor): Same.
2641         * resolve.c (resolve_fl_derived0): Same.
2642         * trans-expr.c (gfc_conv_component_ref): Prevent treating
2643         allocatable deferred length char arrays here.
2644         (gfc_trans_subcomponent_assign): Same as above.
2645         * trans-types.c (gfc_sym_type): This is done in
2646         gfc_get_derived_type already.
2648 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
2650         PR fortran/60334
2651         * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
2652         length when the symbol is declared to be a result.
2653         * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
2654         string length when functions are nested and the string length
2655         is a reference already.
2657 2015-01-16  Janus Weil  <janus@gcc.gnu.org>
2659         PR fortran/45290
2660         * decl.c (match_pointer_init): Error out if resolution of init expr
2661         failed.
2663 2015-01-15  Tobias Burnus  <burnus@net-b.de>
2665         * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
2666         resolve_oacc_deviceptr_clause, resolve_omp_clauses,
2667         gfc_resolve_oacc_declare): Replace '%s' by %qs.
2669 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
2670             Cesar Philippidis  <cesar@codesourcery.com>
2671             James Norris  <jnorris@codesourcery.com>
2672             Ilmir Usmanov  <i.usmanov@samsung.com>
2673             Tobias Burnus  <burnus@net-b.de>
2675         * lang.opt (fopenacc): New option.
2676         * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
2677         * dump-parse-tree.c (show_omp_node): Split part of it into...
2678         (show_omp_clauses): ... this new function.
2679         (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
2680         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2681         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2682         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2683         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2684         (show_namespace): Update for OpenACC.
2685         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
2686         (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
2687         (DEF_GOACC_BUILTIN_COMPILER): New macros.
2688         * types.def (BT_FN_VOID_INT_INT_VAR)
2689         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2690         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2691         New function types.
2692         * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
2693         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2694         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
2695         ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
2696         ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
2697         ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
2698         ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2699         ST_OACC_ROUTINE.
2700         (struct gfc_expr_list): New data type.
2701         (gfc_get_expr_list): New macro.
2702         (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
2703         OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
2704         OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
2705         (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
2706         (OMP_LIST_CACHE): New enumerators.
2707         (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
2708         vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
2709         wait_list, tile_list, async, gang, worker, vector, seq,
2710         independent, wait, par_auto, gang_static, and loc members.
2711         (struct gfc_namespace): Add oacc_declare_clauses member.
2712         (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
2713         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
2714         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2715         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2716         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2717         (gfc_free_expr_list, gfc_resolve_oacc_directive)
2718         (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
2719         (gfc_resolve_oacc_blocks): New prototypes.
2720         * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
2721         EXEC_OACC_PARALLEL_LOOP.
2722         * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
2723         (gfc_match_oacc_update, gfc_match_oacc_declare)
2724         (gfc_match_oacc_loop, gfc_match_oacc_host_data)
2725         (gfc_match_oacc_data, gfc_match_oacc_kernels)
2726         (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
2727         (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
2728         (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
2729         prototypes.
2730         * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
2731         (gfc_free_omp_clauses): Update for members added to struct
2732         gfc_omp_clauses.
2733         (gfc_match_omp_clauses): Change mask paramter to uint64_t.  Add
2734         openacc parameter.
2735         (resolve_omp_clauses): Add openacc parameter.  Update for OpenACC.
2736         (struct fortran_omp_context): Add is_openmp member.
2737         (gfc_resolve_omp_parallel_blocks): Initialize it.
2738         (gfc_resolve_do_iterator): Update for OpenACC.
2739         (gfc_resolve_omp_directive): Call
2740         resolve_omp_directive_inside_oacc_region.
2741         (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
2742         (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
2743         (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
2744         (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
2745         (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
2746         (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
2747         (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
2748         (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
2749         (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
2750         (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
2751         (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
2752         (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
2753         (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
2754         (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
2755         (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
2756         (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
2757         (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
2758         (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
2759         (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
2760         (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
2761         (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
2762         (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
2763         (gfc_match_omp_clauses): Handle those.
2764         (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
2765         (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
2766         (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
2767         (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
2768         (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
2769         (OACC_WAIT_CLAUSES): New macros.
2770         (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
2771         (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
2772         (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
2773         (gfc_match_oacc_kernels, gfc_match_oacc_data)
2774         (gfc_match_oacc_host_data, gfc_match_oacc_loop)
2775         (gfc_match_oacc_declare, gfc_match_oacc_update)
2776         (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
2777         (gfc_match_oacc_wait, gfc_match_oacc_cache)
2778         (gfc_match_oacc_routine, oacc_is_loop)
2779         (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
2780         (check_symbol_not_pointer, check_array_not_assumed)
2781         (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
2782         (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
2783         (omp_code_to_statement, oacc_code_to_statement)
2784         (resolve_oacc_directive_inside_omp_region)
2785         (resolve_omp_directive_inside_oacc_region)
2786         (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
2787         (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
2788         (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
2789         (gfc_resolve_oacc_directive): New functions.
2790         * parse.c (next_free): Update for OpenACC.  Move some code into...
2791         (verify_token_free): ... this new function.
2792         (next_fixed): Update for OpenACC.  Move some code into...
2793         (verify_token_fixed): ... this new function.
2794         (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
2795         ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
2796         (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
2797         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
2798         ST_OACC_KERNELS_LOOP.
2799         (case_decl): Add ST_OACC_ROUTINE.
2800         (push_state, parse_critical_block, parse_progunit): Update for
2801         OpenACC.
2802         (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
2803         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2804         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
2805         ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
2806         ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
2807         ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
2808         ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2809         ST_OACC_ROUTINE.
2810         (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
2811         (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
2812         ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
2813         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
2814         (decode_oacc_directive, parse_oacc_structured_block)
2815         (parse_oacc_loop, is_oacc): New functions.
2816         * parse.h (struct gfc_state_data): Add oacc_declare_clauses
2817         member.
2818         (is_oacc): New prototype.
2819         * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
2820         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
2821         EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
2822         EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
2823         EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
2824         EXEC_OACC_EXIT_DATA.
2825         (resolve_codes): Call gfc_resolve_oacc_declare.
2826         * scanner.c (openacc_flag, openacc_locus): New variables.
2827         (skip_free_comments): Update for OpenACC.  Move some code into...
2828         (skip_omp_attribute): ... this new function.
2829         (skip_oacc_attribute): New function.
2830         (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
2831         * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
2832         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2833         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2834         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2835         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2836         * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
2837         * trans-openmp.c: Include "gomp-constants.h".
2838         (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
2839         instead of OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
2840         (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
2841         OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
2842         OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
2843         OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
2844         OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
2845         independent, wait_list, num_gangs_expr, num_workers_expr,
2846         vector_length_expr, vector, vector_expr, worker, worker_expr,
2847         gang, gang_expr members.
2848         (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
2849         (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
2850         (gfc_trans_oacc_executable_directive)
2851         (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
2852         (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
2853         * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
2854         * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
2855         New prototypes.
2856         * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
2857         EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
2858         EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
2859         EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
2860         EXEC_OACC_EXIT_DATA.
2861         * gfortran.texi: Update for OpenACC.
2862         * intrinsic.texi: Likewise.
2863         * invoke.texi: Likewise.
2865 2015-01-15  Janus Weil  <janus@gcc.gnu.org>
2867         PR fortran/58023
2868         * resolve.c (resolve_fl_derived0): Continue resolving next component
2869         after error.
2871 2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2873         PR fortran/61933
2874         * io.c (gfc_match_inquire): Generate error if unit number in
2875         inquire statement is a constant -1.  All other values allowed.
2876         * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
2877         (create_dummy_iostat): Delete function no longer used.
2879 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
2881         PR fortran/64528
2882         * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
2883         on dummy args with VALUE attribute.
2885 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
2887         PR fortran/63733
2888         * interface.c (gfc_extend_expr): Look for type-bound operators before
2889         non-typebound ones.
2891 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
2893         PR fortran/58023
2894         * resolve.c (resolve_fl_derived0): Set error flag if problems with the
2895         interface of a procedure-pointer component were detected.
2897 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
2899         PR fortran/64508
2900         * interface.c (compare_parameter): Interface check for
2901         procedure-pointer component as actual argument.
2903 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
2905         * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
2906         Runtime Library" to "GNU Offloading and Multi Processing Runtime
2907         Library".
2908         * intrinsic.texi: Likewise.
2910 2015-01-10  Tobias Burnus  <burnus@net-b.de>
2912         PR fortran/64522
2913         * invoke.texi (Wline-truncation): Document new behaviour.
2914         * lang.opt (Wline-truncation): Add Init(-1).
2915         * options.c (gfc_post_options): If -Wline-truncation is unset,
2916         enable it for free-form source files; for the latter, also use
2917         -Werror=line-truncation, unless -Wno-error has been specified.
2919 2015-01-09  Michael Collison  <michael.collison@linaro.org>
2921         * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2922         input.h, alias.h, symtab.h, options.h, fold-const.h,
2923         wide-int.h, and inchash.h due to flattening of tree.h.
2924         * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2925         input.h, alias.h, symtab.h, fold-const.h,
2926         wide-int.h, and inchash.h due to flattening of tree.h.
2927         * decl.c: Ditto.
2928         * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2929         input.h, alias.h, symtab.h, options.h, fold-const.h,
2930         wide-int.h, and inchash.h due to flattening of tree.h.
2931         * iresolve.c: Ditto.
2932         * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2933         input.h, alias.h, symtab.h, fold-const.h,
2934         wide-int.h, and inchash.h due to flattening of tree.h.
2935         * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2936         input.h, alias.h, symtab.h, options.h, fold-const.h,
2937         wide-int.h, and inchash.h due to flattening of tree.h.
2938         * options.c: Ditto.
2939         * target-memory.c: Include hash-set.h, vec.h,
2940         double-int.h, input.h, alias.h, symtab.h, fold-const.h,
2941         wide-int.h, and inchash.h due to flattening of tree.h.
2942         * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2943         input.h, alias.h, symtab.h, options.h, fold-const.h,
2944         wide-int.h, and inchash.h due to flattening of tree.h.
2945         * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2946         input.h, alias.h, symtab.h, options.h, fold-const.h,
2947         wide-int.h, and inchash.h due to flattening of tree.h.
2948         * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2949         input.h, alias.h, symtab.h, fold-const.h,
2950         wide-int.h, and inchash.h due to flattening of tree.h.
2951         * trans-const.c: Ditto.
2952         * trans-decl.c: Ditto.
2953         * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2954         input.h, alias.h, symtab.h, options.h, fold-const.h,
2955         wide-int.h, and inchash.h due to flattening of tree.h.
2956         * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2957         input.h, alias.h, symtab.h, fold-const.h,
2958         wide-int.h, inchash.h and real.h due to flattening of tree.h.
2959         * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2960         input.h, alias.h, symtab.h, options.h, fold-const.h,
2961         wide-int.h, and inchash.h due to flattening of tree.h.
2962         * trans-openmp.c: Ditto.
2963         * trans-stmt.c: Ditto.
2964         * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2965         input.h, alias.h, symtab.h, fold-const.h,
2966         wide-int.h, inchash.h and real.h due to flattening of tree.h.
2968 2015-01-08  Tobias Burnus  <burnus@net-b.de>
2970         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
2971         for module coarrays with -fcoarray=lib.
2972         (get_proc_pointer_decl): As module variable, make only public
2973         when not marked as private.
2975 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2977         PR fortran/47674
2978         * dependency.h:  Actually commit changes.
2980 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2982         PR fortran/47674
2983         * dependency.c:  Update copyright years.
2984         (gfc_discard_nops):  Add prototype.
2985         * dependency.c (discard_nops):  Rename to gfc_discard_nops,
2986         make non-static.
2987         (gfc_discard_nops):  Use gfc_discard_nops.
2988         (gfc_dep_difference):  Likewise.
2989         * frontend-passes.c  Update copyright years.
2990         (realloc_strings):  New function.  Add prototype.
2991         (gfc_run_passes):  Call realloc_strings.
2992         (realloc_string_callback):  New function.
2993         (create_var):  Add prototype.  Handle case of a
2994         scalar character variable.
2995         (optimize_trim):  Do not handle allocatable variables.
2997 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2999         Update copyright years.
3001         * gfortranspec.c (lang_specific_driver): Update copyright notice
3002         dates.
3003         * gfc-internals.texi: Bump @copying's copyright year.
3004         * gfortran.texi: Ditto.
3005         * intrinsic.texi: Ditto.
3006         * invoke.texi: Ditto.
3008 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
3010         PR fortran/57562
3011         * expr.c (find_component_ref): Deal with extended types.
3013 2015-01-02  Tobias Burnus  <burnus@net-b.de>
3015         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
3016         for module coarrays with -fcoarray=lib.
3018 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
3020         PR fortran/60507
3021         * interface.c (is_procptr_result): New function to check if an
3022         expression is a procedure-pointer result.
3023         (compare_actual_formal): Use it.
3025 Copyright (C) 2015 Free Software Foundation, Inc.
3027 Copying and distribution of this file, with or without modification,
3028 are permitted in any medium without royalty provided the copyright
3029 notice and this notice are preserved.