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