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