2015-10-27 Steven G. Kargl <kargl@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
blob37956ce444a567ef81c9db1384cbeff1b469c0a7
1 2015-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>
3         PR fortran/68108
4         * decl.c (char_len_param_value): Check for REF_ARRAY.
6 2015-10-26  Louis Krupp  <louis.krupp@zoho.com>
8         PR fortran/66056
9         * fortran.h: Include namespace pointer in statement label
10         structure.
11         * symbol.c (gfc_get_st_label): Store pointer to namespace
12         that owns the statement label tree in each label.
13         (gfc_free_st_label): Use namespace owning statement label
14         tree when deleting statement label.
15         * io.c: Initialize format_asterisk with NULL namespace pointer.
17 2015-10-26  Steven G. Kargl  <kargl@gcc.gnu.org>
19         PR fortran/36192
20         * array.c (gfc_ref_dimen_size): Check for BT_INTEGER before calling
21         mpz_set.
23 2015-10-26  Andre Vehreschild  <vehre@gcc.gnu.org>
25         PR fortran/66927
26         * trans-array.c (evaluate_bound): For deferred length arrays get the
27         bounds directly from the descriptor, i.e., prevent using constant
28         zero lower bound from the gfc_conv_array_lbound () routine.
29         (gfc_conv_section_startstride): Hand deferred array status to
30         evaluate_bound ().
31         (gfc_conv_expr_descriptor): Same.
33 2015-01-25  Paul Thomas  <pault@gcc.gnu.org>
35         PR fortran/67171
36         * trans-array.c (structure_alloc_comps): On deallocation of
37         class components, reset the vptr to the declared type vtable
38         and reset the _len field of unlimited polymorphic components.
39         *trans-expr.c (gfc_find_and_cut_at_last_class_ref): Bail out on
40         allocatable component references to the right of part reference
41         with non-zero rank and return NULL.
42         (gfc_reset_vptr): Simplify this function by using the function
43         gfc_get_vptr_from_expr. Return if the vptr is NULL_TREE.
44         (gfc_reset_len): If gfc_find_and_cut_at_last_class_ref returns
45         NULL return.
46         * trans-stmt.c (gfc_trans_allocate): Rely on the use of
47         gfc_trans_assignment if expr3 is a variable expression since
48         this deals correctly with array sections.
50 2015-10-25  Andre Vehreschild  <vehre@gcc.gnu.org>
52         PR fortran/66927
53         PR fortran/67044
54         * trans-array.c (build_array_ref): Modified call to
55         gfc_get_class_array_ref to adhere to new interface.
56         (gfc_conv_expr_descriptor): For one-based arrays that
57         are filled by a loop starting at one the start index of the
58         source array has to be mangled into the offset.
59         * trans-expr.c (gfc_get_class_array_ref): When the tree to get
60         the _data component is present already, add a way to supply it.
61         (gfc_copy_class_to_class): Allow to copy to a derived type also.
62         * trans-stmt.c (gfc_trans_allocate): Do not conv_expr_descriptor
63         for functions returning a class or derived object. Get the
64         reference instead.
65         * trans.h: Interface change of gfc_get_class_array_ref.
67 2015-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>
69         PR fortran/68055
70         * decl.c (gfc_match_decl_type_spec): Check for valid kind in old-style
71         declarations.
73 2015-10-24  Steven G. Kargl  <kargl@gcc.gnu.org>
75         PR fortran/67805
76         * array.c (gfc_match_array_constructor): Check for error from type
77         spec matching.
78         * decl.c (char_len_param_value): Check for valid of charlen parameter.
79         Reap dead code dating to 2008.
80         match.c (gfc_match_type_spec): Special case the keyword use in REAL.
82 2015-10-23  Mikhail Maltsev  <maltsevm@gmail.com>
84         * trans-common.c (create_common): Adjust to use flag_checking.
85         * trans.c (gfc_add_modify_loc): Use gcc_checking_assert.
87 2015-10-21  Martin Sebor  <msebor@redhat.com>
89         PR driver/68043
90         * lang.opt: End each sentence that describes an option with a period.
92 2015-10-21  Steven G. Kargl  <kargl@gcc.gnu.org>
94         PR fortran/67939
95         * data.c (create_character_initializer): Deal with zero length string.
97 2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
99         * resolve.c (gfc_verify_binding_labels): Check for NULL pointer.
101 2015-10-19  Steven G. Kargl  <kargl@gcc.gnu.org>
103         PR fortran/68019
104         * decl.c (add_init_expr_to_sym): Remove an assert() to allow an error
105         message to be issued.
107 2015-10-18  Mikael Morin  <mikael@gcc.gnu.org>
109         PR fortran/67758
110         * gfortran.h (gfc_symbol): Expand comment.
111         * match.c (gfc_match_common): Delay adding the symbol to
112         the common_block after the gfc_add_in_common call.
113         * symbol.c (gfc_free_symbol): Move common block memory handling...
114         (gfc_set_symbol_common_block): ... here as a new function.
115         (restore_old_symbol): Restore common block fields.
116         (gfc_restore_last_undo_checkpoint):
117         Check the common_block pointer instead of the in_common attribute.
118         When a symbol has been removed from the common block linked list,
119         clear its common_next pointer.
121 2015-10-18  Paul Thomas  <pault@gcc.gnu.org>
123         PR fortran/67177
124         PR fortran/67977
125         * primary.c (match_substring): Add an argument 'deferred' to
126         flag that a substring reference with null start and end should
127         not be optimized away for deferred length strings.
128         (match_string_constant, gfc_match_rvalue): Set the argument.
129         * trans-expr.c (alloc_scalar_allocatable_for_assignment): If
130         there is a substring reference return.
131         * trans-intrinsic.c (conv_intrinsic_move_alloc): For deferred
132         characters, assign the 'from' string length to the 'to' string
133         length. If the 'from' expression is deferred, set its string
134         length to zero. If the 'to' expression has allocatable
135         components, deallocate them.
137 2015-10-17  Steven G. Kargl  <kargl@gcc.gnu.org>
139         PR fortran/67987
140         * decl.c (char_len_param_value): Unwrap unlong line.  If LEN < 0,
141         force it to zero per the Fortran 90, 95, 2003, and 2008 Standards.
142         * resolve.c (gfc_resolve_substring_charlen): Unwrap unlong line.
143         If 'start' is larger than 'end', length of substring is negative,
144         so explicitly set it to zero.
145         (resolve_charlen): Remove -Wsurprising warning.  Update comment to
146         reflect that the text is from the F2008 standard.
148 2015-10-16  Richard Biener  <rguenther@suse.de>
150         * trans-intrinsic.c (gfc_conv_intrinsic_lib_function): Adjust
151         calls to build_addr.
152         (gfc_conv_intrinsic_mod): Likewise.
153         (gfc_conv_intrinsic_ctime): Likewise.
154         (gfc_conv_intrinsic_fdate): Likewise.
155         (gfc_conv_intrinsic_ttynam): Likewise.
156         (gfc_conv_intrinsic_minmax_char): Likewise.
157         (gfc_conv_intrinsic_index_scan_verify): Likewise.
158         (gfc_conv_intrinsic_trim): Likewise.
160 2015-10-14  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
162         * parse.c (decode_statement): Initialize M to MATCH_NO.
164 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
165             Ilya Verbin  <ilya.verbin@intel.com>
167         * f95-lang.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
168         DEF_FUNCTION_TYPE_11, DEF_FUNCTION_TYPE_VAR_1): Define.
169         * trans-openmp.c (gfc_trans_omp_clauses): Set
170         OMP_CLAUSE_IF_MODIFIER to ERROR_MARK, OMP_CLAUSE_ORDERED_EXPR
171         to NULL.
172         (gfc_trans_omp_critical): Adjust for addition of clauses.
173         (gfc_trans_omp_ordered): Likewise.
174         * types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
175         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
176         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
177         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
178         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
179         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
180         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
181         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
182         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
183         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
184         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
185         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
186         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
188 2015-10-07  Andre Vehreschild  <vehre@gcc.gnu.org>
190         PR fortran/65889
191         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle pointer to and
192         on stack class objects as sizeof parameter.
194 2015-10-06  Louis Krupp <louis.krupp@zoho.com>
195         PR fortran/65766
196         * resolve.c (gfc_resolve_substring_charlen): For derived type,
197         use typespec of string component when resolving substring length.
199 2015-10-04  Mikael Morin  <mikael@gcc.gnu.org>
201         * match.c (gfc_match_common): Remove dead variable old_blank_common.
203 2015-10-04  Mikael Morin  <mikael@gcc.gnu.org>
205         PR fortran/67758
206         * match.c (gfc_match_common): Delay the common_block pointer
207         assignment after error checking.
208         Delay the call to gfc_add_in_common attribute after the handling
209         of array specs.
210         * resolve.c (resolve_common_vars): Call gfc_add_in_common again.
212 2015-10-04  Mikael Morin  <mikael@gcc.gnu.org>
214         * resolve.c (resolve_common_vars): Move access to the common
215         block's head symbol inside the function.
216         (resolve_common_blocks, resolve_types): Update callers.
218 2015-10-01  Louis Krupp <louis.krupp@zoho.com>
220         PR fortran/62242
221         PR fortran/52332
222         * trans-array.c
223         (store_backend_decl): Create new gfc_charlen instance if requested
224         (get_array_ctor_all_strlen): Call store_backend_decl requesting
225         new gfc_charlen
226         (trans_array_constructor): Call store_backend_decl requesting
227         new gfc_charlen if get_array_ctor_strlen was called
228         (gfc_add_loop_ss_code): Don't try to convert non-constant length
230 2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>
232         PR fortran.67802
233         * decl.c (add_init_expr_to_sym): Numeric constant for character
234         length must be an INTEGER.
236 2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>
238         PR fortran/66979
239         * io.c (gfc_resolve_filepos): Check for a UNIT number.  Add a nearby
240         missing 'return false'.
242 2015-10-01  Steven G. Kargl  <kargl@gcc.gnu.org>
244         PR fortran/67616
245         * primary.c (gfc_match_structure_constructor): Use a possibly
246         host-associated symtree to prevent ICE.
248 2015-09-28  Paul Thomas  <pault@gcc.gnu.org>
250         PR fortran/40054
251         PR fortran/63921
252         * decl.c (get_proc_name): Return if statement function is
253         found.
254         * expr.c (gfc_check_vardef_context): Add error return for
255         derived type expression lacking the derived type itself.
256         * match.c (gfc_match_ptr_fcn_assign): New function.
257         * match.h : Add prototype for gfc_match_ptr_fcn_assign.
258         * parse.c : Add static flag 'in_specification_block'.
259         (decode_statement): If in specification block match a statement
260         function, then, if no error arising from statement function
261         matching, try to match pointer function assignment.
262         (parse_interface): Set 'in_specification_block' on exiting from
263         parse_spec.
264         (parse_spec): Set and then reset 'in_specification_block'.
265         (gfc_parse_file): Set 'in_specification_block'.
266         * resolve.c (get_temp_from_expr): Extend to include functions
267         and array constructors as rvalues..
268         (resolve_ptr_fcn_assign): New function.
269         (gfc_resolve_code): Call it on finding a pointer function as an
270         lvalue. If valid or on error, go back to start of resolve_code.
271         * symbol.c (gfc_add_procedure): Add a sentence to the error to
272         flag up the ambiguity between a statement function and pointer
273         function assignment at the end of the specification block.
275 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
277         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_6): New.
278         (DEF_FUNCTION_TYPE_VAR_11): Delete.
279         * types.def (DEF_FUNCTION_TYPE_VAR_6): New.
280         (DEF_FUNCTION_TYPE_VAR_11): Delete.
282 2015-09-26  Mikael Morin  <mikael@gcc.gnu.org>
284         PR fortran/67721
285         * trans-expr.c (gfc_trans_assignment_1): Remove the non-constantness
286         condition guarding deep copy.
288 2013-09-26  Paul Thomas  <pault@gcc.gnu.org>
290         PR fortran/67567
291         * resolve.c (resolve_fl_procedure): For module procedures, take
292         the parent module name and the submodule name from the name of
293         the namespace.
295 2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>
297         PR fortran/67614
298         * resolve.c (gfc_resolve_code): Prevent ICE for invalid EXPR_NULL.
300 2015-09-25  Steven G. Kargl  <kargl@gcc.gnu.org>
302         PR fortran/67525
303         * parse.c (match_deferred_characteristics): Remove an assert, which
304         allows an invalid SELECT TYPE selector to be detected.
306 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
308         PR pretty-print/67567
309         * resolve.c (resolve_fl_procedure): Work-around when iface->module
310         == NULL.
312 2015-09-21  Steven G. Kargl  <kargl@gcc.gnu.org>
314         * resolve.c (nonscalar_typebound_assign): Fix typos in comment.
316 2015-09-21  Steven G. Kargl  <kargl@gcc.gnu.org>
318         PR fortran/67615
319         * resolve.c (gfc_resolve_code): Check for scalar expression in
320         arithmetic-if.
322 2015-09-17  Paul Thomas  <pault@gcc.gnu.org>
324         PR fortran/52846
325         PR fortran/67588
326         * module.c : Add static no_module_procedures.
327         (gfc_match_submodule): Correct memory leakage caused during the
328         freeing of use_lists.
329         (mio_symbol_attribute): Reset above if module procedure is
330         encountered.
331         (gfc_dump_module): Set above and exit without writing smod file
332         if it reset.
333         * gfortran.texi : Add section on submodule support.
335 2015-09-10  Steven G. Kargl  <kargl@gcc.gnu.org>
337         PR fortran/67526
338         * expr.c (gfc_check_init_expr): Do not dereference a NULL pointer.
340 2015-09-10  Paul Thomas  <pault@gcc.gnu.org>
342         PR fortran/66993
343         * module.c (read_module): If a symtree exists and the symbol has
344         been associated in a submodule from a parent (sub)module, attach
345         the symbol to a 'unique symtree' and the new symbol to the
346         existing symtree.
348 2015-09-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
350         * intrinsic.h (gfc_simplify_mvbits): Remove.
351         * simplify.c (gfc_simplify_mvbits): Remove.
352         * intrinsic.c (add_subroutines): Remove reference to
353         gfc_simplify_mvbits.
355 2015-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
357         PR fortran/67429
358         * error.c (gfc_clear_pp_buffer): Reset last_location, otherwise
359         caret lines might be skipped when actually giving a diagnostic.
361 2015-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
363         PR fortran/54833
364         * trans.c (gfc_call_free): Don't check if pointer is NULL.
365         * trans.h (gfc_call_free): Adjust comment.
367 2015-08-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
369         * trans.c (gfc_call_malloc, gfc_allocate_using_malloc,
370         gfc_allocate_using_lib, gfc_allocate_allocatable,
371         gfc_call_realloc): Simplify code.
372         * trans-array.c (gfc_trans_allocate_array_storage,
373         gfc_trans_auto_array_allocation, gfc_conv_array_parameter): Do not
374         convert gfc_call_free() argument.
375         * trans-expr.c (gfc_conv_string_tmp, gfc_conv_procedure_call,
376         fcncall_realloc_result): Likewise.
377         * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Likewise.
379 2015-08-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
381         PR fortran/53668
382         * intrinsic.c (add_functions, add_subroutines): Remove resolution
383         functions for FREE and MALLOC.
384         * intrinsic.h (gfc_resolve_malloc, gfc_resolve_free): Remove.
385         * iresolve.c (gfc_resolve_malloc, gfc_resolve_free): Remove.
386         * trans-intrinsic.c (conv_intrinsic_free,
387         gfc_conv_intrinsic_malloc): New functions.
389 2015-08-24  Louis Krupp <louis.krupp@zoho.com>
391         PR fortran/62536
392         PR fortran/66175
393         * decl.c (gfc_match_end): Clean up nested BLOCKs.
394         * parse.c (parse_block_construct): Deal gracefully with cleaned-up
395         BLOCKs.
397 2015-08-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
399         PR libfortran/54572
400         * config-lang.in: Add libbacktrace to target_libs.
402 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
404         * dependency.c, dependency.h, gfortran.h, io.c, module.c,
405         parse.h, resolve.c, trans-types.h, trans.h: remove useless typedefs.
407 2015-08-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
409         PR fortran/54656
410         * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Add decl
411         for quadruple precision BUILT_IN_SQRT.
413 2015-08-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
415         * trans-intrinsic.c (conv_intrinsic_ieee_is_negative): Use type
416         generic BUILT_IN_SIGNBIT.
417         (conv_intrinsic_ieee_copy_sign): Likewise.
418         * f95-lang.c (gfc_init_builtin_functions): Add BUILT_IN_ISINF,
419         BUILT_IN_ISINF_SIGN, BUILT_IN_SIGNBIT, BUILT_IN_ISLESS,
420         BUILT_IN_ISLESSGREATER, BUILT_IN_ISGREATER. Remove non-type generic
421         variants of BUILT_IN_SIGNBIT.
422         * mathbuiltins.def: Remove SIGNBIT.
424 2015-08-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
426         PR fortran/41387
427         * gfortran.texi: New section "File operations on symbolic links".
429 2015-08-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
431         PR fortran/67059
432         * gfortranspec.c (lang_specific_driver): Adjust --version output.
434 2015-08-08  Bud Davis  <jmdavis@link.com>
435             Mikael Morin  <mikael@gcc.gnu.org>
437         PR fortran/59746
438         * symbol.c (gfc_restore_last_undo_checkpoint): Delete a common block
439         symbol if it was put in the list.
441 2015-08-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
443         PR fortran/64104
444         * expr.c (gfc_check_init_expr): Allow some IEEE functions in
445         constant expressions.
446         (external_spec_function): Allow some IEEE functions in specification
447         expressions.
448         * simplify.c (gfc_simplify_ieee_selected_real_kind): Remove.
449         (simplify_ieee_selected_real_kind, simplify_ieee_support,
450         matches_ieee_function_name, gfc_simplify_ieee_functions): New
451         functions.
452         * gfortran.h (gfc_simplify_ieee_selected_real_kind): Remove
453         prototype.
454         (gfc_simplify_ieee_functions): Add prototype.
456 2015-08-06  Mikael Morin  <mikael@gcc.gnu.org>
458         * trans.h (gfc_trans_scalar_assign): Remove fourth argument.
459         * trans-expr.c (gfc_trans_scalar_assign): Merge fourth into sixth
460         argument.
461         (gfc_conv_subref_array_arg, gfc_trans_subarray_assign,
462          gfc_trans_subcomponent_assign, gfc_trans_assignment_1): Update callers.
463         * trans-array.c (gfc_conv_expr_descriptor): Ditto.
464         * trans-stmt.c (forall_make_variable_temp,
465         generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
466         gfc_trans_where_assign, gfc_trans_where_3): Ditto.
468 2015-08-05  Paul Thomas  <pault@gcc.gnu.org>
470         PR fortran/52846
471         * module.c (check_access): Return true if new static flag
472         'dump_smod' is true..
473         (gfc_dump_module): Rename original 'dump_module' and call from
474         new version. Use 'dump_smod' rather than the stack state to
475         determine if a submodule is being processed. The new version of
476         this procedure sets 'dump_smod' depending on the stack state and
477         then writes both the mod and smod files if a module is being
478         processed or just the smod for a submodule.
479         (gfc_use_module): Eliminate the check for module_name and
480         submodule_name being the same.
481         * trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
482         get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
483         the conditions to set DECL_VISIBILITY as hidden and to set as
484         true DECL_VISIBILITY_SPECIFIED.
486 2015-08-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
488         PR fortran/64022
489         * simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
490         support to all real kinds.
492 2015-08-03  Steven G. Kargl  <kargl@gcc.gnu.org>
494         PR fortran/66942
495         * trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference
497 2015-08-03  Mikael Morin  <mikael@gcc.gnu.org>
499         PR fortran/64921
500         * class.c (generate_finalization_wrapper): Set finalization
501         procedure symbol's always_explicit attribute.
503 2015-08-01  Paul Thomas  <pault@gcc.gnu.org>
505         PR fortran/67091
506         * trans-intrinsic.c (gfc_conv_associated): Add the pre and post
507         blocks for the second argument to se.
509 2015-07-27  Thomas Schwinge  <thomas@codesourcery.com>
511         * parse.c (parse_oacc_structured_block): Fix logic error.
512         Reported by Mikael Morin <mikael.morin@sfr.fr>.
514 2015-07-24  Mikael Morin  <mikael@gcc.gnu.org>
516         PR fortran/64986
517         * trans-expr.c (gfc_trans_assignment_1): Put component deallocation
518         code at the beginning of the block.
520 2015-07-22  Mikael Morin  <mikael@gcc.gnu.org>
522         PR fortran/61831
523         PR fortran/66929
524         * trans-array.c (gfc_get_proc_ifc_for_expr): Use esym as procedure
525         symbol if available.
527 2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
529         PR fortran/52846
530         * decl.c (gfc_match_end): Pick out declared submodule name from
531         the composite identifier.
532         * gfortran.h : Add 'submodule_name' to gfc_use_list structure.
533         * module.c (gfc_match_submodule): Define submodule_name and add
534         static 'submodule_name'.
535         (gfc_match_submodule): Build up submodule filenames, using '@'
536         as a delimiter. Store the output filename in 'submodule_name'.
537         Similarly, the submodule identifier is built using '.' as an
538         identifier.
539         (gfc_dump_module): If current state is COMP_SUBMODULE, write
540         to file 'submodule_name', using SUBMODULE_EXTENSION.
541         (gfc_use_module): Similarly, use the 'submodule_name' field in
542         the gfc_use_list structure and SUBMODULE_EXTENSION to read the
543         implicitly used submodule files.
545 2015-07-17  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
547         * trans-intrinsic.c (conv_co_collective): Remove redundant address
548         operator in the generated code.
550 2015-07-17  Andre Vehreschild  <vehre@gcc.gnu.org>
552         PR fortran/66035
553         * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment):
554         Compute the size to allocate for class and derived type objects
555         correclty.
556         (gfc_trans_subcomponent_assign): Only allocate memory for a
557         component when the object to assign is not an allocatable class
558         object (the memory is already present for allocatable class objects).
559         Furthermore use copy_class_to_class for assigning the rhs to the
560         component (may happen for dummy class objects on the rhs).
562 2015-07-17  Mikael Morin  <mikael@gcc.gnu.org>
563             Dominique d'Humieres  <dominiq@lps.ens.fr>
565         PR fortran/61831
566         * trans-array.c (gfc_conv_array_parameter): Guard allocatable
567         component deallocation code generation with descriptorless
568         calling convention flag.
569         * trans-expr.c (gfc_conv_expr_reference): Remove allocatable
570         component deallocation code generation from revision 212329.
571         (expr_may_alias_variables): New function.
572         (gfc_conv_procedure_call): New boolean elemental_proc to factor
573         check for procedure elemental-ness.  Rename boolean f to nodesc_arg
574         and declare it in the outer scope.  Use expr_may_alias_variables,
575         elemental_proc and nodesc_arg to decide whether generate allocatable
576         component deallocation code.
577         (gfc_trans_subarray_assign): Set deep copy flag.
579 2015-07-16  Steven G. Kargl  <kargl@gcc.gnu.org>
581         PR fortran/66724
582         PR fortran/66724
583         * io.c (is_char_type): Call gfc_resolve_expr ().
584         (match_open_element, match_dt_element, match_inquire_element): Fix
585         ASYNCHRONOUS case.
587 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
589         * trans-types.c: Remove multiline #include comment.
591 2015-07-14  Steven G. Kargl  <kargl@gcc.gnu.org>
593         * simplify.c (gfc_simplify_floor): Set precision of temporary to
594         that of arg.
596 2015-07-13  Andre Vehreschild  <vehre@gcc.gnu.org>
598         PR fortran/64589
599         * class.c (find_intrinsic_vtab): Put/Search vtabs for intrinsic
600         types in the top-level namespace.
602 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
604         * trans-stmt.c: Fix double word typos.
606 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
608         * arith.c: Adjust includes for flags.h changes.
609         * array.c: Likewise.
610         * check.c: Likewise.
611         * decl.c: Likewise.
612         * error.c: Likewise.
613         * expr.c: Likewise.
614         * frontend-passes.c: Likewise.
615         * interface.c: Likewise.
616         * intrinsic.c: Likewise.
617         * io.c: Likewise.
618         * match.c: Likewise.
619         * openmp.c: Likewise.
620         * parse.c: Likewise.
621         * primary.c: Likewise.
622         * resolve.c: Likewise.
623         * scanner.c: Likewise.
624         * simplify.c: Likewise.
625         * symbol.c: Likewise.
626         * target-memory.c: Likewise.
628 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
630         * convert.c: Adjust includes.
631         * cpp.c: Likewise.
632         * decl.c: Likewise.
633         * f95-lang.c: Likewise.
634         * iresolve.c: Likewise.
635         * match.c: Likewise.
636         * module.c: Likewise.
637         * options.c: Likewise.
638         * target-memory.c: Likewise.
639         * trans-array.c: Likewise.
640         * trans-common.c: Likewise.
641         * trans-const.c: Likewise.
642         * trans-decl.c: Likewise.
643         * trans-expr.c: Likewise.
644         * trans-intrinsic.c: Likewise.
645         * trans-io.c: Likewise.
646         * trans-openmp.c: Likewise.
647         * trans-stmt.c: Likewise.
648         * trans-types.c: Likewise.
649         * trans.c: Likewise.
651 2015-07-07  Andre Vehreschild  <vehre@gmx.de>
653         PR fortran/66578
654         * trans-array.c (gfc_conv_expr_descriptor): Ensure array descriptor
655         is one-based for non-full array refs. Correct the offset when a
656         rank_remap occurs.
658 2015-07-06  Steven G. Kargl  <kargl@gcc.gnu.org>
660         * io.c (check_char_variable): New function.
661         (match_open_element, match_close_element, match_file_element,
662         match_dt_element, match_inquire_element, match_wait_element): Use it.
664 2015-07-06  Andre Vehreschild  <vehre@gmx.de>
666         PR fortran/58586
667         * resolve.c (resolve_symbol): Non-private functions in modules
668         with allocatable or pointer components are marked referenced
669         now. Furthermore is the default init especially for those
670         components now done in gfc_conf_procedure_call preventing
671         duplicate code.
672         * trans-decl.c (gfc_generate_function_code): Generate a fake
673         result decl for functions returning an object with allocatable
674         components and initialize them.
675         * trans-expr.c (gfc_conv_procedure_call): For value typed trees
676         use the tree without indirect ref. And for non-decl trees
677         add a temporary variable to prevent evaluating the tree
678         multiple times (prevent multiple function evaluations).
679         * trans.h: Made gfc_trans_structure_assign () protoype
680         available, which is now needed by trans-decl.c:gfc_generate_
681         function_code(), too.
683 2015-07-04  Steven G. Kargl  <kargl@gcc.gnu.org>
685         PR fortran/66725
686         * io.c (is_char_type): New function to test for BT_CHARACTER
687         (gfc_match_open, gfc_match_close, match_dt_element): Use it.
689 2015-07-02  David Edelsohn  <dje.gcc@gmail.com>
691         * trans-common.c: Include <map> after system.h.
693 2015-07-02  Paul Thomas  <pault@gcc.gnu.org>
695         PR fortran/52846
696         * decl.c (get_proc_name): Make a partially populated interface
697         symbol to carry the characteristics of a module procedure and
698         its result.
699         (variable_decl): Declarations of dummies or results in the
700         abreviated form of module procedure is an error.
701         (gfc_match_import): IMPORT is not permitted in the interface
702         declaration of module procedures.
703         (match_attr_spec): Submodule variables have implicit save
704         attribute for F2008 onwards.
705         (gfc_match_prefix): Add 'module' as the a prefix and set the
706         module_procedure attribute.
707         (gfc_match_formal_arglist): For a module procedure keep the
708         interface formal_arglist from the interface, match new the
709         formal arguments and then compare the number and names of each.
710         (gfc_match_procedure): Add case COMP_SUBMODULE.
711         (gfc_match_function_decl, gfc_match_subroutine_decl): Set the
712         module_procedure attribute.
713         (gfc_match_entry, gfc_match_end):  Add case COMP_SUBMODULE. If
714         attr abr_modproc_decl is set, switch the message accordingly
715         for subroutines and functions.
716         (gfc_match_submod_proc): New function to match the abbreviated
717         style of submodule declaration.
718         * gfortran.h : Add ST_SUBMODULE and ST_END_SUBMODULE. Add the
719         attribute bits 'used_in_submodule' and 'module_procedure'. Add
720         the bit field 'abr_modproc_decl' to gfc_symbol. Add prototypes
721         for 'gfc_copy_dummy_sym', 'gfc_check_dummy_characteristics' and
722         'gfc_check_result_characteristics'.
723         * interface.c : Add the prefix 'gfc_' to the names of functions
724         'check_dummy(result)_characteristics' and all their references.
725         * match.h : Add prototype for 'gfc_match_submod_proc' and
726         'gfc_match_submodule'.
727         (check_sym_interfaces): A module procedure is not an error in
728         a module procedure statment in a generic interface.
729         * module.c (gfc_match_submodule): New function. Add handling
730         for the 'module_procedure' attribute bit.
731         (gfc_use_module): Make sure that a submodule cannot use itself.
732         * parse.c (decode_statement): Set attr has_'import_set' for
733         the interface declaration of module procedures. Handle a match
734         occurring in 'gfc_match_submod_proc' and a match for
735         'submodule'.
736         (gfc_enclosing_unit): Include the state COMP_SUBMODULE.
737         (gfc_ascii_statement): Add END SUBMODULE.
738         (accept_statement): Add ST_SUBMODULE.
739         (parse_spec): Disallow statement functions in a submodule
740         specification part.
741         (parse_contained): Add ST_END_SUBMODULE and COMP_SUBMODULE
742         twice each.
743         (get_modproc_result): Copy the result symbol of the interface.
744         (parse_progunit): Call it.
745         (set_syms_host_assoc): Make symbols from the ancestor module
746         and submodules use associated, as required by the standard and
747         set all private components public. Module procedures 'external'
748         attribute bit is reset and the 'used_in_submodule' bit is set.
749         (parse_module): If this is a submodule, use the ancestor module
750         and submodules. Traverse the namespace, calling
751         'set_syms_host_assoc'. Add ST_END_SUBMODULE and COMP_SUBMODULE.
752         * parse.h : Add COMP_SUBMODULE.
753         * primary.c (match_variable): Add COMP_SUBMODULE.
754         * resolve.c (compare_fsyms): New function to compare the dummy
755         characteristics of a module procedure with its interface.
756         (resolve_fl_procedure): Compare the procedure, result and dummy
757         characteristics of a module_procedure with its interface, using
758         'compare_fsyms' for the dummy arguments.
759         * symbol.c (gfc_add_procedure): Suppress the check for existing
760         procedures in the case of a module procedure.
761         (gfc_add_explicit_interface): Skip checks that must fail for
762         module procedures.
763         (gfc_add_type): Allow a new type to be added to module
764         procedures, their results or their dummy arguments.
765         (gfc_copy_dummy_sym): New function to generate new dummy args
766         and copy the characteristics from the interface.
767         * trans-decl.c (gfc_sym_mangled_function_id): Module procedures
768         must always have their names mangled as if they are symbols
769         coming from a declaration in a module.
770         (gfc_get_symbol_decl): Add 'used_in_submodule' to the assert.
771         (gfc_finish_var_decl): Symbols with the 'used_in_submodule' bit
772         set are set DECL_EXTERNAL as if they were use associated.
774 2015-07-02  Steven G. Kargl  <kargl@gcc.gnu.org>
776         PR fortran/56520
777         * match.c (gfc_match_name): Special case unary minus and plus.
779 2015-07-02  Steven G. Kargl   <kargl@gcc.gnu.org>
781         PR fortran/66545
782         * primary.c (match_sym_complex_part): Do not dereference NULL pointer.
784 2015-07-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
786         * arith.c (gfc_arith_divide):  With -Winteger-division,
787         warn about contant integer division if there is a non-zero
788         remainder.
789         * invoke.texi:  Document -Winteger-division.
790         * lang.opt:  Add -Winteger-division.
792 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
794         * f95-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
795         * trans-decl.c: Likewise.
797 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
799         * trans-decl.c (module_hasher): Likewise.
800         * trans.h (module_decl_hasher): Likewise.
802 2015-06-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
804         PR fortran/66528
805         * error.c (gfc_warning_check): Restore the default output_buffer
806         before calling diagnostic_action_after_output.
807         (gfc_error_check): Likewise.
808         (gfc_diagnostics_init): Add comment.
810 2015-06-23  Andre Vehreschild  <vehre@gmx.de>
812         PR fortran/64674
813         * parse.c (parse_associate): Figure the rank and as of a
814         class array in an associate early.
815         * primary.c (gfc_match_varspec): Prevent setting the
816         dimension attribute on the sym for classes.
817         * resolve.c (resolve_variable): Correct the component
818         ref's type for associated variables.  Add a full array ref
819         when class array's are associated.
820         (resolve_assoc_var): Correct the type of the symbol,
821         when in the associate the expression's rank becomes scalar.
822         * trans-expr.c (gfc_conv_variable): Indirect ref needed for
823         allocatable associated objects.
825 2015-06-19  Mikael Morin  <mikael@gcc.gnu.org>
827         PR fortran/66549
828         * resolve.c (resolve_global_procedure): Don't save and restore
829         OpenMP state around the call to gfc_resolve.
830         (gfc_resolve): Save OpenMP state on entry and restore it on return.
832 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
834         * convert.c: Do not include input.h, line-map.h or is-a.h.
835         * cpp.c: Likewise.
836         * decl.c: Likewise.
837         * f95-lang.c: Likewise.
838         * gfortran.h: Likewise.
839         * iresolve.c: Likewise.
840         * match.c: Likewise.
841         * module.c: Likewise.
842         * options.c: Likewise.
843         * target-memory.c: Likewise.
844         * trans-array.c: Likewise.
845         * trans-common.c: Likewise.
846         * trans-const.c: Likewise.
847         * trans-decl.c: Likewise.
848         * trans-expr.c: Likewise.
849         * trans-intrinsic.c: Likewise.
850         * trans-io.c: Likewise.
851         * trans-openmp.c: Likewise.
852         * trans-stmt.c: Likewise.
853         * trans-types.c: Likewise.
854         * trans.c: Likewise.
856 2015-06-15  Andre Vehreschild  <vehre@gmx.de>
858         PR fortran/44672
859         PR fortran/45440
860         PR fortran/57307
861         * gfortran.h: Extend gfc_code.ext.alloc to carry a
862         flag indicating that the array specification has to be
863         taken from expr3.
864         * resolve.c (resolve_allocate_expr): Add F2008 notify
865         and flag indicating source driven array spec.
866         (resolve_allocate_deallocate): Check for source driven
867         array spec, when array to allocate has no explicit
868         array spec.
869         * trans-array.c (gfc_array_init_size): Get lower and
870         upper bound from a tree array descriptor, except when
871         the source expression is an array-constructor which is
872         fixed to be one-based.
873         (retrieve_last_ref): Extracted from gfc_array_allocate().
874         (gfc_array_allocate): Enable allocate(array, source=
875         array_expression) as specified by F2008:C633.
876         (gfc_conv_expr_descriptor): Add class tree expression
877         into the saved descriptor for class arrays.
878         * trans-array.h: Add temporary array descriptor to
879         gfc_array_allocate ().
880         * trans-expr.c (gfc_conv_procedure_call): Special handling
881         for _copy() routine translation, that comes without an
882         interface. Third and fourth argument are now passed by value.
883         * trans-stmt.c (gfc_trans_allocate): Get expr3 array
884         descriptor for temporary arrays to allow allocate(array,
885         source = array_expression) for array without array
886         specification.
888 2015-06-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
890         * intrinsic.texi:  Change \leq to < in descrition of imaginary
891         part in argument to log.
893 2015-06-11  Paul Thomas  <pault@gcc.gnu.org>
895         PR fortran/66079
896         * trans-expr.c (gfc_conv_procedure_call): Allocatable scalar
897         function results must be freed and nullified after use. Create
898         a temporary to hold the result to prevent duplicate calls.
899         * trans-stmt.c (gfc_trans_allocate): Rename temporary variable
900         as 'source'. Deallocate allocatable components of non-variable
901         'source's.
903 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
905         * f95-lang.c (gfc_create_decls): Register the main translation unit
906         through the new debug hook.
908 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
910         * convert.c : Adjust include files.
911         * cpp.c : Likewise.
912         * decl.c : Likewise.
913         * f95-lang.c : Likewise.
914         * gfortran.h : Likewise.
915         * iresolve.c : Likewise.
916         * match.c : Likewise.
917         * module.c : Likewise.
918         * openmp.c : Likewise.
919         * options.c : Likewise.
920         * target-memory.c : Likewise.
921         * trans-array.c : Likewise.
922         * trans-common.c : Likewise.
923         * trans-const.c : Likewise.
924         * trans-decl.c : Likewise.
925         * trans-expr.c : Likewise.
926         * trans-intrinsic.c : Likewise.
927         * trans-io.c : Likewise.
928         * trans-openmp.c : Likewise.
929         * trans-stmt.c : Likewise.
930         * trans-types.c : Likewise.
931         * trans.c : Likewise.
933 2015-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>
935         PR fortran/66245
936         * match.c (gfc_match_type_is, gfc_match_class_is):  Check if the
937         return type spec or derived type spec is validate.
939 2015-06-06  Thomas Koenig  <tkoenig@netcologne.de>
941         PR fortran/47659
942         * arith.c (eval_intrinsic_op): Set warn flag for
943         gfc_type_convert_binary if -Wconversion or -Wconversion-extra
944         are set.
945         (wprecision_real_real): New function.
946         (wprecision_int_real): New function.
947         (gfc_int2int): If -fno-range-check and -Wconversion are specified
948         and it is a narrowing conversion, warn.
949         (gfc_int2real): If there is a change in value for the conversion,
950         warn.
951         (gfc_int2complex):  Likewise.
952         (gfc_real2int): If there is a fractional part to the real number,
953         warn with -Wconversion, otherwise warn with -Wconversion-extra.
954         (gfc_real2real): Emit warning if the constant was changed by
955         conversion with either -Wconversion or -Wconversion-extra.  With
956         -Wconversion-extra, warn if no warning was issued earlier.
957         (gfc_real2complex):  Likewise.
958         (gfc_complex2int): For -Wconversion or -Wconversion-extra, if
959         there was an imaginary part, warn; otherwise, warn for change in
960         value.  Warn with -Wconversion-extra if no other warning was
961         issued.
962         (gfc_complex2real): For -Wconversion or -Wconversion-extra, if
963         there was an imaginary part, warn; otherwise, warn for change in
964         value. Warn with -Wconversion-extra if no other warning was
965         issued.
966         (gfc_complex2complex):  For -Wconversion, warn if the value of
967         either the real or the imaginary part was changed.  Warn for
968         -Wconversion-extra if no prior warning was issued.
969         * expr.c (gfc_check_assign):  Remove check for change in value.
970         * primary.c (match_real_constant): For -Wconversion-extra, check
971         against a number in which the last non-zero digit has been
972         replaced with a zero.  If the number compares equal, warn.
973         * intrinsic.c (gfc_convert_type_warn):  Do not warn about constant
974         conversions.
976 2015-06-05  Steven G. Kargl  <kargl@gcc.gnu.org>
978         PR fortran/66347
979         * resolve.c (apply_default_init_local): Do not dereference a NULL
980         pointer.
982 2015-06-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
984         PR fortran/66385
985         * frontend-passes.c (combine_array_constructor): Return early if
986         inside a FORALL loop.
988 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
990         * f95-lang.c (gfc_write_global_declarations): Remove.
991         (LANG_HOOKS_WRITE_GLOBALS): Remove.
992         (gfc_write_global_declarations): Move code from here to...
993         (gfc_be_parse_file): ...here.
994         Call global_decl_processing.
995         * trans-decl.c (gfc_emit_parameter_debug_info): Rename global_decl
996         to early_global_decl.
998 2015-06-05  Russell Whitesides  <russelldub@gmail.com>
999             Steven G. Kargl  <kargl@gcc.gnu.org>
1001         PR fortran/40958
1002         PR fortran/60780
1003         PR fortran/66377
1004         * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
1005         from different modules.  Eliminate the pruning of unused
1006         equivalence-objects
1008 2015-06-04  Thomas Koenig  <tkoenig@netcologne.de>
1010         PR fortran/58749
1011         * iresolve.c (gfc_resolve_adjustl):  If string has a charlen,
1012         copy it to the function.
1013         (gfc_resolve_adjustr):  Likewise.
1015 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
1017         * convert.c: Adjust includes for restructured coretypes.h.
1018         * cpp.c: Likewise.
1019         * decl.c: Likewise.
1020         * f95-lang.c: Likewise.
1021         * iresolve.c: Likewise.
1022         * match.c: Likewise.
1023         * module.c: Likewise.
1024         * options.c: Likewise.
1025         * target-memory.c: Likewise.
1026         * trans-array.c: Likewise.
1027         * trans-common.c: Likewise.
1028         * trans-const.c: Likewise.
1029         * trans-decl.c: Likewise.
1030         * trans-expr.c: Likewise.
1031         * trans-intrinsic.c: Likewise.
1032         * trans-io.c: Likewise.
1033         * trans-openmp.c: Likewise.
1034         * trans-stmt.c: Likewise.
1035         * trans-types.c: Likewise.
1036         * trans.c: Likewise.
1038 2015-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1040         PR fortran/66380
1041         * simplify.c (gfc_simplify_reshape): Convert assert into returning
1042         NULL, which triggers an error condition.
1044 2015-05-27  Andre Vehreschild  <vehre@gmx.de>
1046         PR fortran/65548
1047         * trans-stmt.c (gfc_trans_allocate): Add missing location
1048         information for e3rhs.
1050 2015-05-26  Paul Thomas  <pault@gcc.gnu.org>
1052         PR fortran/66082
1053         * trans-array.c (gfc_conv_array_parameter): Ensure that all
1054         non-variable arrays with allocatable components have the
1055         components deallocated after the procedure call.
1057 2015-05-24  Mikael Morin  <mikael@gcc.gnu.org>
1059         PR fortran/66257
1060         * resolve.c (resolve_actual_arglist): Don't throw an error
1061         if the argument with procedure pointer component is not a variable.
1063 2015-05-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1065         PR fortran/44054
1066         * gfortran.h (struct gfc_error_buf): Rename as
1067         gfc_error_buffer. Move closer to push, pop and free
1068         methods. Reimplement using an output_buffer.
1069         * error.c (errors, warnings, warning_buffer, cur_error_buffer):
1070         Delete everywhere in this file.
1071         (error_char): Delete all contents.
1072         (gfc_increment_error_count): Delete.
1073         (gfc_error_now): Update comment. Set error_buffer.flag.
1074         (gfc_warning_check): Do not handle warning_buffer.
1075         (gfc_error_1): Delete.
1076         (gfc_error_now_1): Delete.
1077         (gfc_error_check): Simplify.
1078         (gfc_move_error_buffer_from_to): Renamed from
1079         gfc_move_output_buffer_from_to.
1080         (gfc_push_error): Handle only gfc_error_buffer.
1081         (gfc_pop_error): Likewise.
1082         (gfc_free_error): Likewise.
1083         (gfc_get_errors): Remove warnings and errors.
1084         (gfc_diagnostics_init): Use static error_buffer.
1085         (gfc_error_1,gfc_error_now_1): Delete declarations.
1086         * symbol.c, decl.c, trans-common.c, data.c, expr.c, expr.c,
1087         frontend-passes.c, resolve.c, match.c, parse.c: Replace
1088         gfc_error_1 with gfc_error and gfc_error_now_1 with gfc_error_1
1089         everywhere.
1090         * f95-lang.c (gfc_be_parse_file): Do not update errorcount and
1091         warningcount here.
1092         * primary.c (match_complex_constant): Replace gfc_error_buf and
1093         output_buffer with gfc_error_buffer.
1095 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
1097         * Make-lang.in (check_gfortran_parallelize): Update comment.
1099 2015-05-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
1101         PR fortran/66176
1102         * frontend-passes.c (check_conjg_variable):  New function.
1103         (inline_matmul_assign):  Use it to keep track of conjugated
1104         variables.
1106 2015-05-20  Andre Vehreschild  <vehre@gmx.de>
1108         PR fortran/65548
1109         * trans-stmt.c (gfc_trans_allocate): Always retrieve the
1110         descriptor or a reference to a source= expression for
1111         arrays and non-arrays, respectively.  Use a temporary
1112         symbol and gfc_trans_assignment for all source=
1113         assignments to allocated objects besides for class and
1114         derived types.
1116 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
1118         PR middle-end/66199
1119         * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
1120         combined constructs.
1121         (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
1122         BIND_EXPR_BLOCK.
1124 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
1126         * cpp.c (maybe_print_line): Strengthen local "map" from
1127         const line_map * to const line_map_ordinary *.
1128         (cb_file_change): Likewise for param "map" and local "from".
1129         (cb_line_change): Likewise for local "map".
1131 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
1133         * interface.c (compare_actual_formal): Use std::swap instead of
1134         explicit swaps.
1135         * trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
1136         * trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.
1138 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1140         PR fortran/66106
1141         * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
1142         * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
1144 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1146         PR fortran/66057
1147         * decl.c(gfc_match_generic):  Detected a malformed GENERIC statement.
1149 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1151         PR fortran/66043
1152         * gfortran.dg/storage_size_6.f90: New tests.
1154 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1156         PR fortran/66043
1157         * gfortran.dg/storage_size_6.f90: New tests.
1159 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1161         PR fortran/66044
1162         * decl.c(gfc_match_entry):  Change a gfc_internal_error() into
1163         a gfc_error()
1165 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1167         PR fortran/66043
1168         * gfortran.dg/storage_size_6.f90: New tests.
1170 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1172         PR fortran/66040
1173         * parse.c(verify_st_order): Replace a gfc_internal_error with your
1174         generic gfc_error.
1176 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1178         PR fortran/66039
1179         * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
1180         BACKSPACE, and ENDFILE statements
1182 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
1184         PR fortran/64925
1185         * symbol.c(check_conflict):  Check for a conflict between a dummy
1186         argument and an internal procedure name.
1188 2015-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1190         PR fortran/65903
1191         * io.c (format_lex): Change to NONSTRING when checking for
1192         possible doubled quote.
1193         * scanner.c (gfc_next_char_literal): Revert change from 64506
1194         and add a check for quotes and return.
1196 2015-05-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
1198         PR fortran/66113
1199         * expr.c (is_parent_of_current_ns):  New function.
1200         (check_restricted):  Use it.
1202 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1204         PR fortran/44054
1206         Replace all calls to gfc_notify_std_1 with gfc_notify_std and
1207         gfc_warning_1 with gfc_warning.
1208         * decl.c (gfc_verify_c_interop_param): Here.
1209         * resolve.c (resolve_branch): Here.
1210         (resolve_fl_derived): Here.
1211         * dependency.c (gfc_check_argument_var_dependency):
1212         * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
1213         counter and locations before and after warning.
1214         * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
1215         Delete.
1216         (gfc_warning_now_at): Declare.
1217         * error.c (gfc_warning_1): Delete.
1218         (gfc_notify_std_1): Delete.
1219         (gfc_warning_now_1): Delete.
1220         (gfc_format_decoder): Handle two locations.
1221         (gfc_diagnostic_build_prefix): Rename as
1222         gfc_diagnostic_build_kind_prefix.
1223         (gfc_diagnostic_build_locus_prefix): Take an expanded_location
1224         instead of diagnostic_info.
1225         (gfc_diagnostic_build_locus_prefix): Add overload that takes two
1226         expanded_location.
1227         (gfc_diagnostic_starter): Handle two locations.
1228         (gfc_warning_now_at): New.
1229         (gfc_diagnostics_init): Initialize caret_chars array.
1230         (gfc_diagnostics_finish): Reset caret_chars array to default.
1232 2015-05-16  Mikael Morin  <mikael@gcc.gnu.org>
1233             Paul Thomas  <pault@gcc.gnu.org>
1235         PR fortran/65792
1236         * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
1237         the expression component to the destination. In addition, if
1238         the component has allocatable components, copy them and
1239         deallocate those of the expression, if it is not a variable.
1240         The expression is fixed if not a variable to prevent multiple
1241         evaluations.
1243 2015-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1245         PR fortran/66111
1246         * frontend-passes.c (has_dimen_vector_ref):  New function.
1247         (inline_matmul_assign):  Use it to return early in case
1248         of unhandled vector subscripts.
1250 2015-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
1252         PR fortran/66041
1253         PR fortran/37131
1254         * gfortran.h (gfc_array_spec):  Add field resolved.
1255         * array.c (gfc_resolve_array_spec):  Resolve array spec
1256         only once.
1258 2015-05-11  Mikael Morin  <mikael@gcc.gnu.org>
1260         PR fortran/66100
1261         * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
1263 2015-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
1265         PR fortran/66041
1266         * frontend-passes.c (scalarized_expr): Set correct dimension and
1267         shape for the expression to be passed to lbound. Remove trailing
1268         references after array refrence.
1269         (inline_matmul_assign):  Remove gfc_copy_expr from calls
1270         to scalarized_expr().
1272 2015-05-10  Mikael Morin  <mikael@gcc.gnu.org>
1274         * simplify.c (simplify_bound_dim): Don't check for emptyness
1275         in the case of cobound simplification.  Factor lower/upper
1276         bound differenciation before the actual simplification.
1277         (simplify_bound): Remove assumed shape specific simplification.
1278         Don't give up early for the lbound of an assumed shape.
1280 2015-05-09  Mikael Morin  <mikael@gcc.gnu.org>
1282         PR fortran/65894
1283         * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
1284         New prototype.
1285         * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
1286         New function.
1287         (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
1288         as conditional.
1289         (gfc_walk_elemental_function_args): Set the dummy_arg field.
1290         * trans.h (gfc_ss_info): New subfield dummy_arg.
1291         * trans-expr.c (gfc_conv_procedure_call): Revert the change
1292         of revision 222361.
1293         (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
1294         as conditional.
1296 2015-05-08  Mikael Morin  <mikael@gcc.gnu.org>
1298         * trans-array.c (gfc_walk_elemental_function_args):
1299         Don't skip the advance to the next dummy argument when skipping
1300         absent optional args.
1302 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
1304         * expr.c (check_inquiry): Fix indentation so that it reflects the
1305         block structure.
1306         * interface.c (compare_parameter): Likewise.
1307         * parse.c (parse_oacc_structured_block): Likewise.
1308         * target-memory.c (expr_to_char): Likewise.
1309         * trans-types.c (gfc_init_kinds): Likewise.
1311 2015-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
1313         PR fortran/65976
1314         * invoke.texi:  Remove 'no-' in '-fno-fixed-form'
1316 2015-05-01  Mikael Morin  <mikael@gcc.gnu.org>
1318         * simplify.c (simplify_bound_dim): Tighten the check for array fullness
1319         by also checking for absence of subreference.
1320         (simplify_bound): Don't skip simplification if the array
1321         has subreferences.
1322         (simplify_cobound): Same.
1324 2015-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
1326         PR fortran/37131
1327         * simplify.c (simplify_bound): Get constant lower bounds of one
1328         from array spec for assumed and explicit shape shape arrays if
1329         the lower bounds are indeed one.
1331 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
1333         * options.c (gfc_init_options): Remove spurious second
1334         semicolon.
1335         * trans-stmt.c (gfc_trans_allocate): Likewise.
1337 2015-04-28  Andre Vehreschild  <vehre@gmx.de>
1339         * interface.c (gfc_compare_types): Check for unlimited
1340         polymorphism flag in the correct position indepent of the _data
1341         component being present or not.  This prevents a segfault, when
1342         the _data component is not present.
1343         * symbol.c (gfc_type_compatible): Same.
1345 2015-04-27  Jim Wilson  <jim.wilson@linaro.org>
1347         * Make-lang.in (fortran.mostlyclean): Remove gfortran and
1348         gfortran-cross.
1350 2015-04-27  Andre Vehreschild  <vehre@gmx.de>
1352         PR fortran/59678
1353         PR fortran/65841
1354         * trans-array.c (duplicate_allocatable): Fixed deep copy of
1355         allocatable components, which are liable for copy only, when
1356         they are allocated.
1357         (gfc_duplicate_allocatable): Add deep-copy code into if
1358         component allocated block. Needed interface change for that.
1359         (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
1360         add into if-block for checking whether a component was
1361         allocated.
1362         (gfc_duplicate_allocatable_nocopy): Likewise.
1363         (structure_alloc_comps): Likewise.
1364         * trans-array.h: Likewise.
1365         * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
1366         * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
1368 2015-04-23  Andre Vehreschild  <vehre@gmx.de>
1370         PR fortran/60322
1371         * expr.c (gfc_lval_expr_from_sym): Code to select the regular
1372         or class array added.
1373         * gfortran.h: Add IS_CLASS_ARRAY macro.
1374         * trans-array.c (gfc_add_loop_ss_code): Treat class objects
1375         to be referenced always.
1376         (build_class_array_ref): Adapt retrieval of array descriptor.
1377         (build_array_ref): Likewise.
1378         (gfc_conv_array_ref): Hand the vptr or the descriptor to
1379         build_array_ref depending whether the sym is class or not.
1380         (gfc_trans_array_cobounds):  Select correct gfc_array_spec for
1381         regular and class arrays.
1382         (gfc_trans_array_bounds): Likewise.
1383         (gfc_trans_dummy_array_bias): Likewise.
1384         (gfc_get_dataptr_offset): Correcting call of build_array_ref.
1385         (gfc_conv_expr_descriptor): Set the array's offset to -1 when
1386         lbound in inner most dim is 1 and symbol non-pointer/assoc.
1387         * trans-decl.c (gfc_build_qualified_array): Select correct
1388         gfc_array_spec for regular and class arrays.
1389         (gfc_build_dummy_array_decl): Likewise.
1390         (gfc_get_symbol_decl): Get a dummy array for class arrays.
1391         (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
1392         is desired.
1393         * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
1394         from the correct location for class arrays.
1395         (gfc_class_len_get): Likewise.
1396         (gfc_conv_intrinsic_to_class): Add handling of _len component.
1397         (gfc_conv_class_to_class):  Prevent access to unset array data
1398         when the array is an optional argument. Add handling of _len
1399         component.
1400         (gfc_copy_class_to_class): Check that _def_init is non-NULL
1401         when used in _vptr->copy()
1402         (gfc_trans_class_init_assign): Ensure that the rank of
1403         _def_init is zero.
1404         (gfc_conv_component_ref): Get the _vptr along with _data refs.
1405         (gfc_conv_variable): Make sure the temp array descriptor is
1406         returned for class arrays, too, and that class arrays are
1407         dereferenced correctly.
1408         (gfc_conv_procedure_call): For polymorphic type initialization
1409         the initializer has to be a pointer to _def_init stored in a
1410         dummy variable, which then needs to be used by value.
1411         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
1412         temporary array descriptor for class arrays, too.
1413         (gfc_conv_intrinsic_storage_size): Likewise.
1414         (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
1415         expressions.
1416         * trans-stmt.c (trans_associate_var): Use a temporary array for
1417         the associate variable of class arrays, too, making the array
1418         one-based (lbound == 1).
1419         * trans-types.c (gfc_is_nodesc_array): Use the correct
1420         array data.
1421         * trans.c (gfc_build_array_ref): Use the dummy array descriptor
1422         when present.
1423         * trans.h: Add class_vptr to gfc_se for storing a class ref's
1424         vptr.
1426 2015-04-22  Steven G. Kargl  <kargl@gcc.gnu.org>
1428         PR fortran/65429
1429         * decl.c (add_init_expr_to_sym): Set the length type parameter.
1431 2015-04-10  Tobias Burnus  <burnus@net-b.de>
1433         * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
1434         version; reject not-yet-implemented variants.
1435         * trans-types.c (gfc_get_derived_type): For lock_type with
1436         -fcoarray=lib, use a void pointer as type.
1437         * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
1438         Handle lock_type with -fcoarray=lib.
1440 2015-04-10  Mikael Morin  <mikael@gcc.gnu.org>
1442         PR fortran/56674
1443         PR fortran/58813
1444         PR fortran/59016
1445         PR fortran/59024
1446         * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
1447         former to the latter and make it non-static.  Update callers.
1448         * gfortran.h (gfc_save_symbol_data): New prototype.
1449         * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
1450         before modifying symbols 'sym' and 'dt_sym'.
1452 2013-04-09  Paul Thomas  <pault@gcc.gnu.org>
1454         PR fortran/56852
1455         * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
1456         of the index variables are untyped and errors are present.
1458 2015-04-07  Andre Vehreschild  <vehre@gmx.de>
1460         PR fortran/65548
1461         * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
1462         use conv_expr_descriptor() instead of conv_expr_reference().
1464 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
1466         PR fortran/65597
1467         * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
1468         linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
1469         For implcitly added !simple OMP_CLAUSE_LINEAR set it too.  Use step 1
1470         instead of the original step on the new iterator - count.
1472 2015-03-25  Mikael Morin  <mikael@gcc.gnu.org>
1474         PR fortran/64952
1475         PR fortran/65532
1476         * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
1477         * resolve.c (resolve_types): Return early if field 'types_resolved'
1478         is set.  Set 'types_resolved' at the end.
1480 2015-03-24  Andre Vehreschild  <vehre@gmx.de>
1482         PR fortran/55901
1483         * trans-expr.c (gfc_conv_structure): Fixed indendation.
1484         Using integer_zero_node now instead of explicitly
1485         constructing a integer constant zero node.
1486         (gfc_conv_derived_to_class): Add handling of _len component,
1487         i.e., when the rhs has a string_length then assign that to
1488         class' _len, else assign 0.
1489         (gfc_conv_intrinsic_to_class): Likewise.
1491 2015-03-24  Andre Vehreschild  <vehre@gmx.de>
1493         PR fortran/64787
1494         PR fortran/57456
1495         PR fortran/63230
1496         * class.c (gfc_add_component_ref):  Free no longer needed
1497         ref-chains to prevent memory loss.
1498         (find_intrinsic_vtab): For deferred length char arrays or
1499         unlimited polymorphic objects, store the size in bytes of one
1500         character in the size component of the vtab.
1501         * gfortran.h: Added gfc_add_len_component () define.
1502         * trans-array.c (gfc_trans_create_temp_array): Switched to new
1503         function name for getting a class' vtab's field.
1504         (build_class_array_ref): Likewise.
1505         (gfc_array_init_size): Using the size information from allocate
1506         more consequently now, i.e., the typespec of the entity to
1507         allocate is no longer needed.  This is to address the last open
1508         comment in PR fortran/57456.
1509         (gfc_array_allocate): Likewise.
1510         (structure_alloc_comps): gfc_copy_class_to_class () needs to
1511         know whether the class is unlimited polymorphic.
1512         * trans-array.h: Changed interface of gfc_array_allocate () to
1513         reflect the no longer needed typespec.
1514         * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
1515         (gfc_reset_len): New.
1516         (gfc_get_class_array_ref): Switch to new function name for
1517         getting a class' vtab's field.
1518         (gfc_copy_class_to_class):  Added flag to know whether the class
1519         to copy is unlimited polymorphic.  Adding _len dependent code
1520         then, which calls ->vptr->copy () with four arguments adding
1521         the length information ->vptr->copy(from, to, from_len, to_cap).
1522         (gfc_conv_procedure_call): Switch to new function name for
1523         getting a class' vtab's field.
1524         (alloc_scalar_allocatable_for_assignment): Use the string_length
1525         as computed by gfc_conv_expr and not the statically backend_decl
1526         which may be incorrect when ref-ing.
1527         (gfc_trans_assignment_1): Use the string_length variable and
1528         not the rse.string_length.  The former has been computed more
1529         generally.
1530         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
1531         function name for getting a class' vtab's field.
1532         (gfc_conv_intrinsic_storage_size): Likewise.
1533         (gfc_conv_intrinsic_transfer): Likewise.
1534         * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
1535         source=expr3 only once before the loop over the objects to
1536         allocate, when the objects are not arrays. Doing correct _len
1537         initialization and calling of vptr->copy () fixing PR 64787.
1538         (gfc_trans_deallocate): Reseting _len to 0, preventing future
1539         errors.
1540         * trans.c (gfc_build_array_ref): Switch to new function name
1541         for getting a class' vtab's field.
1542         (gfc_add_comp_finalizer_call): Likewise.
1543         * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
1544         and gfc_vptr_*_get () functions.
1545         Added gfc_find_and_cut_at_last_class_ref () and
1546         gfc_reset_len () routine prototype.  Added flag to
1547         gfc_copy_class_to_class () prototype to signal an unlimited
1548         polymorphic entity to copy.
1550 2015-03-24  Iain Sandoe  <iain@codesourcery.com>
1551             Tobias Burnus  <burnus@net-b.de>
1553         * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
1555 2015-03-23  Paul Thomas  <pault@gcc.gnu.org>
1556             Mikael Morin  <mikael@gcc.gnu.org>
1558         PR fortran/64952
1559         * gfortran.h (struct symbol_attribute) : New field
1560         'array_outer_dependency'.
1561         * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
1562         * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
1563         (attr_bits): Append same value to initializer.
1564         (mio_symbol_attribute): Handle 'array_outer_dependency' attr
1565         in module read and write.
1566         * resolve.c (update_current_proc_outer_array_dependency): New function.
1567         (resolve_function, resolve_call): Add code to update current procedure's
1568         'array_outer_dependency' attribute.
1569         (resolve_variable): Mark current procedure with attribute
1570         array_outer_dependency if the variable is an array coming from outside
1571         the current namespace.
1572         (resolve_fl_procedure): Mark a procedure without body with attribute
1573         'array_outer_dependency'.
1574         * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
1575         marked as 'array_outer_dependency' generate a temporary.
1576         (gfc_walk_function_expr): If the function may reference external arrays,
1577         mark the head gfc_ss with flag 'array_outer_dependency'.
1579 2015-03-22 Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1581         PR libgfortran/59513
1582         * gfortran.texi (Read/Write after EOF marker): New information.
1584 2015-03-21  H.J. Lu  <hongjiu.lu@intel.com>
1586         * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
1587         line.
1589 2015-03-21  Tobias Burnus  <burnus@net-b.de>
1591         * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
1592         _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
1593         _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
1594         _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
1595         _gfortran_caf_atomic_op): New sections.
1597 2015-03-21  Tobias Burnus  <burnus@net-b.de>
1599         * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
1600         coindexed coarray accesses.
1602 2015-03-17  Paul Thomas  <pault@gcc.gnu.org>
1604         PR fortran/59198
1605         * trans-types.c (gfc_get_derived_type): If an abstract derived
1606         type with procedure pointer components has no other type of
1607         component, return the backend_decl. Otherwise build the
1608         components if any of the non-procedure pointer components have
1609         no backend_decl.
1611 2015-03-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1613         PR fortran/64432
1614         *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
1615         smallest kind passed in user arguments and hardcode tesults for
1616         KIND=1 or KIND=2 to indicate no clock available.
1618 2015-03-16  Andre Vehreschild  <vehre@gmx.de>
1620         * resolve.c: Prevent segfault on illegal input.
1622 2015-03-14  Mikael Morin  <mikael@gcc.gnu.org>
1624         PR fortran/61138
1625         * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
1626         field before reusing LSE.
1628 2015-03-11  Janne Blomqvist  <jb@gcc.gnu.org>
1630         PR libfortran/65200
1631         * gfortran.texi: Document behavior when opening files without
1632         explicit ACTION= specifier.
1634 2015-03-10  Paul Thomas  <pault@gcc.gnu.org>
1636         PR fortran/65024
1637         * trans-expr.c (gfc_conv_component_ref): If the component
1638         backend declaration is missing and the derived type symbol is
1639         available in the reference, call gfc_build_derived_type.
1641 2015-03-10  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
1642             Tobias Burnus  <burnus@net-b.de>
1644         * trans.h (caf_sync_memory): New function decl tree.
1645         * trans-decl.c (gfc_build_builtin_function_decls): Define it.
1646         (create_main_function): Don't call sync_synchronize and leave
1647         it to the CAF library.
1648         * trans-stmt.c (gfc_trans_stop): Ditto.
1649         (gfc_trans_sync): Ditto; add call library call for sync memory.
1651 2015-03-08  Mikael Morin  <mikael@gcc.gnu.org>
1653         PR fortran/60898
1654         * resolve.c (resolve_symbol): Check that the symbol found by
1655         name lookup really is the current symbol being resolved.
1657 2015-03-02  Tobias Burnus  <burnus@net-b.de>
1659         * check.c (gfc_check_atomic): Properly check for coarrayness
1660         and for being coindexed.
1662 2015-02-26  Martin Liska  <mliska@suse.cz>
1664         * resolve.c: Rename enum 'comparison' to 'compare_result' as
1665         solution for -Wodr issue.
1667 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
1669         PR libgomp/64625
1670         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
1671         Remove macros.
1672         (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
1673         * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
1674         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
1675         Remove function types.
1676         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
1677         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
1678         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
1679         New function types.
1681 2015-02-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1683         PR fortran/64980
1684         PR fortran/61960
1685         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
1686         for component references to class objects.
1687         (gfc_conv_procedure_call): Compare the class by name.
1689 2015-02-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1691         PR fortran/64506
1692         * scanner.c (gfc_next_char_literal): For free form source,
1693         check for '!' and if found, clear the comment and go back
1694         and get the next character. For fixed form source, skip the
1695         rest of the line.
1697 2015-02-12  Paul Thomas  <pault@gcc.gnu.org>
1699         PR fortran/64932
1700         * trans-stmt.c (gfc_trans_deallocate): If a component array
1701         expression is not a descriptor type and it is a derived type
1702         that has allocatable components and is not finalizable, then
1703         deallocate the allocatable components.
1705 2015-02-08  Mikael Morin  <mikael@gcc.gnu.org>
1707         PR fortran/63744
1708         * module.c (check_for_ambiguous): Change argument type
1709         from gfc_symbol to gfc_symtree.  Check local (symtree) name
1710         instead of original (symbol) name.
1711         (read_module): Update caller.
1713 2015-02-06  Paul Thomas  <pault@gcc.gnu.org>
1715         PR fortran/63205
1716         * gfortran.h: Add 'must finalize' field to gfc_expr and
1717         prototypes for gfc_is_alloc_class_scalar_function and for
1718         gfc_is_alloc_class_array_function.
1719         * expr.c (gfc_is_alloc_class_scalar_function,
1720         gfc_is_alloc_class_array_function): New functions.
1721         * trans-array.c (gfc_add_loop_ss_code): Do not move the
1722         expression for allocatable class scalar functions outside the
1723         loop.
1724         (conv_array_index_offset): Cope with deltas being NULL_TREE.
1725         (build_class_array_ref): Do not return with allocatable class
1726         array functions. Add code to pick out the returned class array.
1727         Dereference if necessary and return if not a class object.
1728         (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
1729         (gfc_walk_function_expr): Return an array ss for the result of
1730         an allocatable class array function.
1731         * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
1732         that the argument should be a variable. If an allocatable class
1733         array function, set the offset to zero and skip the write-out
1734         loop in this case.
1735         (gfc_conv_procedure_call): Add allocatable class array function
1736         to the assert. Call gfc_conv_subref_array_arg for allocatable
1737         class array function arguments with derived type formal arg..
1738         Add the code for handling allocatable class functions, including
1739         finalization calls to prevent memory leaks.
1740         (arrayfunc_assign_needs_temporary): Return if an allocatable
1741         class array function.
1742         (gfc_trans_assignment_1): Set must_finalize to rhs expression
1743         for allocatable class functions. Set scalar_to_array as needed
1744         for scalar class allocatable functions assigned to an array.
1745         Nullify the allocatable components corresponding the the lhs
1746         derived type so that the finalization does not free them.
1748 2015-01-29  Andre Vehreschild  <vehre@gmx.de>
1749             Janus Weil  <janus@gcc.gnu.org>
1751         PR fortran/60289
1752         Initial patch by Janus Weil
1753         * resolve.c (resolve_allocate_expr): Add check for comp. only
1754         when target is not unlimited polymorphic.
1755         * trans-stmt.c (gfc_trans_allocate): Assign correct value to
1756         _len component of unlimited polymorphic entities.
1758 2015-02-05  Tobias Burnus  <burnus@net-b.de>
1760         PR fortran/64943
1761         * resolve.c (resolve_transfer): Also check structure
1762         constructors.
1764 2015-02-05  Paul Thomas  <pault@gcc.gnu.org>
1766         PR fortran/64757
1767         * resolve.c (resolve_structure_cons): Obtain the rank of class
1768         components.
1769         * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
1770         assignment to allocatable class array components.
1771         (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
1772         is a class component, allocate to the _data field.
1773         (gfc_trans_subcomponent_assign): If a class component with a
1774         derived type expression set the _vptr field and for array
1775         components, call gfc_trans_alloc_subarray_assign. For scalars,
1776         the assignment is performed here.
1778 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1780         * options.c: Include langhooks.h.
1781         (gfc_post_options): Change lang_hooks.name based on
1782         selected -std= mode.
1784 2015-02-03  Steven G. Kargl  <kargl@gcc.gnu.org>
1786         * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
1788 2015-01-30  Andre Vehreschild  <vehre@gmx.de>
1790         * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
1791         * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
1792         Fixed datatype of charlen to be a 32-bit int.
1794 2015-02-01  Joseph Myers  <joseph@codesourcery.com>
1796         * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
1797         char *, ...)): Remove functions.
1798         * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
1799         (const char *, ...)): Remove declarations.
1800         * arith.c, check.c, data.c, decl.c, frontend-passes.c,
1801         interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
1802         options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
1803         trans-common.c, trans-const.c, trans-stmt.c: All callers of
1804         gfc_warning and gfc_warning_now changed to pass 0 or option number
1805         as first argument.
1807 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
1809         * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
1810         callers of fatal_error changed to pass input_location as first
1811         argument.
1813 2015-01-28  Tobias Burnus  <burnus@net-b.de>
1815         * intrinsic.texi (CO_BROADCAST): Correct argument description.
1817 2015-01-27  Tobias Burnus  <burnus@net-b.de>
1819         PR fortran/63861
1820         * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
1821         Fix handling for scalar coarrays.
1822         * trans-types.c (gfc_get_element_type): Add comment.
1824 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1826         PR fortran/64771
1827         * interface.c: Remove <algorithm>.
1828         (check_dummy_characteristics): Use MAX instead of std::max.
1830 2015-01-26  Paul Thomas  <pault@gcc.gnu.org>
1832         PR fortran/62044
1833         * resolve.c (resolve_allocate_expr): If the default initializer
1834         is NULL, keep the original MOLD expression so that the correct
1835         typespec is available.
1837 2015-01-26  Tobias Burnus  <burnus@net-b.de>
1839         PR fortran/64771
1840         * interface.c (check_dummy_characteristics): Fix coarray handling.
1842 2015-01-26  Tobias Burnus  <burnus@net-b.de>
1844         * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
1846 2015-01-26  Janus Weil  <janus@gcc.gnu.org>
1848         PR fortran/64230
1849         * class.c (finalize_component): New argument 'sub_ns'. Insert code to
1850         check if 'expr' is associated.
1851         (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
1852         'ptr2'. Pass 'sub_ns' to finalize_component.
1854 2015-01-25  Mikael Morin  <mikael@gcc.gnu.org>
1856         PR fortran/62044
1857         * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
1858         * module.c (MOD_VERSION): Bump.
1859         (write_module): Don't write list of extensions.
1860         (read_module): Don't jump over list of extensions;
1861         don't load list of extensions.
1862         (load_derived_extensions, write_dt_extensions,
1863          write_derived_extensions): Remove.
1865 2015-01-24  Tobias Burnus  <burnus@net-b.de>
1867         * parse.c (gfc_parse_file): Fix two-location gfc_error call.
1869 2015-01-23  Martin Liska  <mliska@suse.cz>
1871         * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
1872         false positive during profiledbootstrap by initializing them.
1873         * matchexp.c (match_mult_operand): Likewise.
1874         * module.c (write_atom): Likewise.
1875         (read_module): Likewise.
1877 2015-01-23  Tom de Vries  <tom@codesourcery.com>
1879         PR libgomp/64672
1880         * lang.opt (fopenacc): Mark as LTO option.
1882 2015-01-23  Tom de Vries  <tom@codesourcery.com>
1884         PR libgomp/64707
1885         * lang.opt (fopenmp): Mark as LTO option.
1887 2015-01-23  Andre Vehreschild  <vehre@gmx.de>
1889         * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
1890         * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
1892 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
1894         * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
1896 2015-01-23  Janus Weil  <janus@gcc.gnu.org>
1898         PR fortran/60922
1899         * class.c (finalize_component): Apply the check for 'fini_coarray' only
1900         to coarray components.
1902 2015-01-23  Tobias Burnus  <burnus@net-b.de>
1904         PR fortran/64726
1905         * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
1906         loop generation.
1908 2015-01-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1910         PR fortran/61933
1911         * libgfortran.h:
1912         * trans-io.c (set_parameter_value): Delete use of has_iostat.
1913         Redefine to not generate any runtime error check calls.
1914         (set_parameter_value_chk): Rename of the former
1915         set_parameter_value with the runtime error checks and fix
1916         whitespace. (set_parameter_value_inquire): New function that
1917         builds a runtime conditional block to set the INQUIRE
1918         common parameter block unit number to -2 when unit numbers
1919         exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
1920         For unit, use the renamed set_parameter_value_chk.
1921         (gfc_trans_close): Likewise use renamed function.
1922         (build_filepos): Whitespace and use renamed function.
1923         (gfc_trans_inquire): Whitespace and for unit use
1924         set_parameter_value and set_parameter_value_inquire.
1925         (gfc_trans_wait): Remove p->iostat from call to
1926         set_parameter_value. Use new set_parameter_value_chk for unit.
1927         (build_dt): Use the new set_parameter_value without p->iostat
1928         and fix whitespace. Use set_parameter_value_chk for unit.
1930 2015-01-21  Thomas Koenig  <tkoenig@netcologne.de>
1932         PR fortran/57023
1933         * dependency.c (callback_dummy_intent_not_int):  New function.
1934         (dummy_intent_not_in):  New function.
1935         (gfc_full_array_ref_p):  Use dummy_intent_not_in.
1937 2015-01-18  Andre Vehreschild  <vehre@gmx.de>
1938             Janus Weil <janus@gcc.gnu.org>
1940         PR fortran/60255
1941         * class.c (gfc_get_len_component): New.
1942         (gfc_build_class_symbol): Add _len component to unlimited
1943         polymorphic entities.
1944         (find_intrinsic_vtab): Removed emitting of error message.
1945         * gfortran.h: Added prototype for gfc_get_len_component.
1946         * simplify.c (gfc_simplify_len): Use _len component where
1947         available.
1948         * trans-expr.c (gfc_class_len_get): New.
1949         (gfc_conv_intrinsic_to_class): Add handling for deferred
1950         character arrays.
1951         (gfc_conv_structure): Treat _len component correctly.
1952         (gfc_conv_expr): Prevent bind_c handling when not required.
1953         (gfc_trans_pointer_assignment): Propagate _len component.
1954         * trans-stmt.c (class_has_len_component): New.
1955         (trans_associate_var): _len component treatment for associate
1956         context.
1957         (gfc_trans_allocate): Same as for trans_associate_var()
1958         * trans.h: Added prototype for gfc_class_len_get.
1960 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
1962         PR fortran/57959
1963         * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
1964         for allocatable components, where the source is a variable.
1966 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
1968         PR fortran/55901
1969         * primary.c (gfc_match_varspec): Exclude dangling associate-
1970         names with dimension 0 from being counted as arrays.
1971         * resolve.c (resolve_assoc_var): Sub-strings are permissible
1972         for associate-names, so exclude characters from the test for
1973         misuse as arrays.
1974         * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
1975         the hidden string length variable of their associated target.
1976         Signal this by setting 'length' to a constant, if the decl for
1977         the string length is a variable.
1979 2015-01-17  Paul Thomas  <pault@gcc.gnu.org>
1981         PR fortran/64578
1982         * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
1983         before reinitializing rse, to add the rse.pre to block before
1984         creating 'ptrtemp'.
1985         * trans-intrinsic.c (gfc_conv_associated): Deal with the class
1986         data being a descriptor.
1988 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
1990         PR fortran/60357
1991         * primary.c (build_actual_constructor): Prevent warning.
1992         * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
1993         assignment): New function encapsulates treatment of allocatable
1994         components.
1995         (gfc_trans_subcomponent_assign): Needed to distinguish between
1996         regular assignment and initilization.
1997         (gfc_trans_structure_assign): Same.
1998         (gfc_conv_structure): Same.
2000         PR fortran/61275
2001         * gfortran.h: deferred_parameter is not needed, because
2002         it artificial does the trick completely.
2003         * primary.c (build_actual_constructor): Same.
2004         (gfc_convert_to_structure_constructor): Same.
2005         * resolve.c (resolve_fl_derived0): Same.
2006         * trans-expr.c (gfc_conv_component_ref): Prevent treating
2007         allocatable deferred length char arrays here.
2008         (gfc_trans_subcomponent_assign): Same as above.
2009         * trans-types.c (gfc_sym_type): This is done in
2010         gfc_get_derived_type already.
2012 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
2014         PR fortran/60334
2015         * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
2016         length when the symbol is declared to be a result.
2017         * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
2018         string length when functions are nested and the string length
2019         is a reference already.
2021 2015-01-16  Janus Weil  <janus@gcc.gnu.org>
2023         PR fortran/45290
2024         * decl.c (match_pointer_init): Error out if resolution of init expr
2025         failed.
2027 2015-01-15  Tobias Burnus  <burnus@net-b.de>
2029         * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
2030         resolve_oacc_deviceptr_clause, resolve_omp_clauses,
2031         gfc_resolve_oacc_declare): Replace '%s' by %qs.
2033 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
2034             Cesar Philippidis  <cesar@codesourcery.com>
2035             James Norris  <jnorris@codesourcery.com>
2036             Ilmir Usmanov  <i.usmanov@samsung.com>
2037             Tobias Burnus  <burnus@net-b.de>
2039         * lang.opt (fopenacc): New option.
2040         * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
2041         * dump-parse-tree.c (show_omp_node): Split part of it into...
2042         (show_omp_clauses): ... this new function.
2043         (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
2044         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2045         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2046         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2047         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2048         (show_namespace): Update for OpenACC.
2049         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
2050         (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
2051         (DEF_GOACC_BUILTIN_COMPILER): New macros.
2052         * types.def (BT_FN_VOID_INT_INT_VAR)
2053         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
2054         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
2055         New function types.
2056         * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
2057         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2058         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
2059         ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
2060         ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
2061         ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
2062         ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2063         ST_OACC_ROUTINE.
2064         (struct gfc_expr_list): New data type.
2065         (gfc_get_expr_list): New macro.
2066         (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
2067         OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
2068         OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
2069         (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
2070         (OMP_LIST_CACHE): New enumerators.
2071         (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
2072         vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
2073         wait_list, tile_list, async, gang, worker, vector, seq,
2074         independent, wait, par_auto, gang_static, and loc members.
2075         (struct gfc_namespace): Add oacc_declare_clauses member.
2076         (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
2077         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
2078         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2079         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2080         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2081         (gfc_free_expr_list, gfc_resolve_oacc_directive)
2082         (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
2083         (gfc_resolve_oacc_blocks): New prototypes.
2084         * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
2085         EXEC_OACC_PARALLEL_LOOP.
2086         * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
2087         (gfc_match_oacc_update, gfc_match_oacc_declare)
2088         (gfc_match_oacc_loop, gfc_match_oacc_host_data)
2089         (gfc_match_oacc_data, gfc_match_oacc_kernels)
2090         (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
2091         (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
2092         (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
2093         prototypes.
2094         * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
2095         (gfc_free_omp_clauses): Update for members added to struct
2096         gfc_omp_clauses.
2097         (gfc_match_omp_clauses): Change mask paramter to uint64_t.  Add
2098         openacc parameter.
2099         (resolve_omp_clauses): Add openacc parameter.  Update for OpenACC.
2100         (struct fortran_omp_context): Add is_openmp member.
2101         (gfc_resolve_omp_parallel_blocks): Initialize it.
2102         (gfc_resolve_do_iterator): Update for OpenACC.
2103         (gfc_resolve_omp_directive): Call
2104         resolve_omp_directive_inside_oacc_region.
2105         (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
2106         (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
2107         (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
2108         (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
2109         (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
2110         (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
2111         (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
2112         (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
2113         (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
2114         (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
2115         (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
2116         (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
2117         (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
2118         (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
2119         (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
2120         (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
2121         (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
2122         (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
2123         (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
2124         (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
2125         (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
2126         (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
2127         (gfc_match_omp_clauses): Handle those.
2128         (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
2129         (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
2130         (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
2131         (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
2132         (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
2133         (OACC_WAIT_CLAUSES): New macros.
2134         (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
2135         (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
2136         (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
2137         (gfc_match_oacc_kernels, gfc_match_oacc_data)
2138         (gfc_match_oacc_host_data, gfc_match_oacc_loop)
2139         (gfc_match_oacc_declare, gfc_match_oacc_update)
2140         (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
2141         (gfc_match_oacc_wait, gfc_match_oacc_cache)
2142         (gfc_match_oacc_routine, oacc_is_loop)
2143         (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
2144         (check_symbol_not_pointer, check_array_not_assumed)
2145         (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
2146         (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
2147         (omp_code_to_statement, oacc_code_to_statement)
2148         (resolve_oacc_directive_inside_omp_region)
2149         (resolve_omp_directive_inside_oacc_region)
2150         (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
2151         (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
2152         (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
2153         (gfc_resolve_oacc_directive): New functions.
2154         * parse.c (next_free): Update for OpenACC.  Move some code into...
2155         (verify_token_free): ... this new function.
2156         (next_fixed): Update for OpenACC.  Move some code into...
2157         (verify_token_fixed): ... this new function.
2158         (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
2159         ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
2160         (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
2161         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
2162         ST_OACC_KERNELS_LOOP.
2163         (case_decl): Add ST_OACC_ROUTINE.
2164         (push_state, parse_critical_block, parse_progunit): Update for
2165         OpenACC.
2166         (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
2167         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
2168         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
2169         ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
2170         ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
2171         ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
2172         ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
2173         ST_OACC_ROUTINE.
2174         (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
2175         (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
2176         ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
2177         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
2178         (decode_oacc_directive, parse_oacc_structured_block)
2179         (parse_oacc_loop, is_oacc): New functions.
2180         * parse.h (struct gfc_state_data): Add oacc_declare_clauses
2181         member.
2182         (is_oacc): New prototype.
2183         * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
2184         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
2185         EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
2186         EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
2187         EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
2188         EXEC_OACC_EXIT_DATA.
2189         (resolve_codes): Call gfc_resolve_oacc_declare.
2190         * scanner.c (openacc_flag, openacc_locus): New variables.
2191         (skip_free_comments): Update for OpenACC.  Move some code into...
2192         (skip_omp_attribute): ... this new function.
2193         (skip_oacc_attribute): New function.
2194         (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
2195         * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
2196         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
2197         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
2198         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
2199         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
2200         * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
2201         * trans-openmp.c: Include "gomp-constants.h".
2202         (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
2203         instead of OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
2204         (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
2205         OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
2206         OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
2207         OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
2208         OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
2209         independent, wait_list, num_gangs_expr, num_workers_expr,
2210         vector_length_expr, vector, vector_expr, worker, worker_expr,
2211         gang, gang_expr members.
2212         (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
2213         (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
2214         (gfc_trans_oacc_executable_directive)
2215         (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
2216         (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
2217         * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
2218         * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
2219         New prototypes.
2220         * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
2221         EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
2222         EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
2223         EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
2224         EXEC_OACC_EXIT_DATA.
2225         * gfortran.texi: Update for OpenACC.
2226         * intrinsic.texi: Likewise.
2227         * invoke.texi: Likewise.
2229 2015-01-15  Janus Weil  <janus@gcc.gnu.org>
2231         PR fortran/58023
2232         * resolve.c (resolve_fl_derived0): Continue resolving next component
2233         after error.
2235 2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2237         PR fortran/61933
2238         * io.c (gfc_match_inquire): Generate error if unit number in
2239         inquire statement is a constant -1.  All other values allowed.
2240         * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
2241         (create_dummy_iostat): Delete function no longer used.
2243 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
2245         PR fortran/64528
2246         * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
2247         on dummy args with VALUE attribute.
2249 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
2251         PR fortran/63733
2252         * interface.c (gfc_extend_expr): Look for type-bound operators before
2253         non-typebound ones.
2255 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
2257         PR fortran/58023
2258         * resolve.c (resolve_fl_derived0): Set error flag if problems with the
2259         interface of a procedure-pointer component were detected.
2261 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
2263         PR fortran/64508
2264         * interface.c (compare_parameter): Interface check for
2265         procedure-pointer component as actual argument.
2267 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
2269         * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
2270         Runtime Library" to "GNU Offloading and Multi Processing Runtime
2271         Library".
2272         * intrinsic.texi: Likewise.
2274 2015-01-10  Tobias Burnus  <burnus@net-b.de>
2276         PR fortran/64522
2277         * invoke.texi (Wline-truncation): Document new behaviour.
2278         * lang.opt (Wline-truncation): Add Init(-1).
2279         * options.c (gfc_post_options): If -Wline-truncation is unset,
2280         enable it for free-form source files; for the latter, also use
2281         -Werror=line-truncation, unless -Wno-error has been specified.
2283 2015-01-09  Michael Collison  <michael.collison@linaro.org>
2285         * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2286         input.h, alias.h, symtab.h, options.h, fold-const.h,
2287         wide-int.h, and inchash.h due to flattening of tree.h.
2288         * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2289         input.h, alias.h, symtab.h, fold-const.h,
2290         wide-int.h, and inchash.h due to flattening of tree.h.
2291         * decl.c: Ditto.
2292         * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2293         input.h, alias.h, symtab.h, options.h, fold-const.h,
2294         wide-int.h, and inchash.h due to flattening of tree.h.
2295         * iresolve.c: Ditto.
2296         * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2297         input.h, alias.h, symtab.h, fold-const.h,
2298         wide-int.h, and inchash.h due to flattening of tree.h.
2299         * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2300         input.h, alias.h, symtab.h, options.h, fold-const.h,
2301         wide-int.h, and inchash.h due to flattening of tree.h.
2302         * options.c: Ditto.
2303         * target-memory.c: Include hash-set.h, vec.h,
2304         double-int.h, input.h, alias.h, symtab.h, fold-const.h,
2305         wide-int.h, and inchash.h due to flattening of tree.h.
2306         * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2307         input.h, alias.h, symtab.h, options.h, fold-const.h,
2308         wide-int.h, and inchash.h due to flattening of tree.h.
2309         * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2310         input.h, alias.h, symtab.h, options.h, fold-const.h,
2311         wide-int.h, and inchash.h due to flattening of tree.h.
2312         * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2313         input.h, alias.h, symtab.h, fold-const.h,
2314         wide-int.h, and inchash.h due to flattening of tree.h.
2315         * trans-const.c: Ditto.
2316         * trans-decl.c: Ditto.
2317         * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2318         input.h, alias.h, symtab.h, options.h, fold-const.h,
2319         wide-int.h, and inchash.h due to flattening of tree.h.
2320         * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2321         input.h, alias.h, symtab.h, fold-const.h,
2322         wide-int.h, inchash.h and real.h due to flattening of tree.h.
2323         * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2324         input.h, alias.h, symtab.h, options.h, fold-const.h,
2325         wide-int.h, and inchash.h due to flattening of tree.h.
2326         * trans-openmp.c: Ditto.
2327         * trans-stmt.c: Ditto.
2328         * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
2329         input.h, alias.h, symtab.h, fold-const.h,
2330         wide-int.h, inchash.h and real.h due to flattening of tree.h.
2332 2015-01-08  Tobias Burnus  <burnus@net-b.de>
2334         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
2335         for module coarrays with -fcoarray=lib.
2336         (get_proc_pointer_decl): As module variable, make only public
2337         when not marked as private.
2339 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2341         PR fortran/47674
2342         * dependency.h:  Actually commit changes.
2344 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
2346         PR fortran/47674
2347         * dependency.c:  Update copyright years.
2348         (gfc_discard_nops):  Add prototype.
2349         * dependency.c (discard_nops):  Rename to gfc_discard_nops,
2350         make non-static.
2351         (gfc_discard_nops):  Use gfc_discard_nops.
2352         (gfc_dep_difference):  Likewise.
2353         * frontend-passes.c  Update copyright years.
2354         (realloc_strings):  New function.  Add prototype.
2355         (gfc_run_passes):  Call realloc_strings.
2356         (realloc_string_callback):  New function.
2357         (create_var):  Add prototype.  Handle case of a
2358         scalar character variable.
2359         (optimize_trim):  Do not handle allocatable variables.
2361 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
2363         Update copyright years.
2365         * gfortranspec.c (lang_specific_driver): Update copyright notice
2366         dates.
2367         * gfc-internals.texi: Bump @copying's copyright year.
2368         * gfortran.texi: Ditto.
2369         * intrinsic.texi: Ditto.
2370         * invoke.texi: Ditto.
2372 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
2374         PR fortran/57562
2375         * expr.c (find_component_ref): Deal with extended types.
2377 2015-01-02  Tobias Burnus  <burnus@net-b.de>
2379         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
2380         for module coarrays with -fcoarray=lib.
2382 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
2384         PR fortran/60507
2385         * interface.c (is_procptr_result): New function to check if an
2386         expression is a procedure-pointer result.
2387         (compare_actual_formal): Use it.
2389 Copyright (C) 2015 Free Software Foundation, Inc.
2391 Copying and distribution of this file, with or without modification,
2392 are permitted in any medium without royalty provided the copyright
2393 notice and this notice are preserved.