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