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