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