re PR fortran/66044 (ICE on misplaced entry statement)
[official-gcc.git] / gcc / fortran / ChangeLog
blob8f571b40b5505f5800563dafaa9b2046ad751b51
1 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
3         PR fortran/66044
4         * decl.c(gfc_match_entry):  Change a gfc_internal_error() into
5         a gfc_error() 
7 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
9         PR fortran/66043
10         * gfortran.dg/storage_size_6.f90: New tests.
12 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
14         PR fortran/66040
15         * parse.c(verify_st_order): Replace a gfc_internal_error with your
16         generic gfc_error.
18 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
20         PR fortran/66039
21         * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
22         BACKSPACE, and ENDFILE statements
24 2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>
26         PR fortran/64925
27         * symbol.c(check_conflict):  Check for a conflict between a dummy
28         argument and an internal procedure name.
30 2015-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
32         PR fortran/65903
33         * io.c (format_lex): Change to NONSTRING when checking for
34         possible doubled quote.
35         * scanner.c (gfc_next_char_literal): Revert change from 64506
36         and add a check for quotes and return.
38 2015-05-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
40         PR fortran/66113
41         * expr.c (is_parent_of_current_ns):  New function.
42         (check_restricted):  Use it.
44 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
46         PR fortran/44054
48         Replace all calls to gfc_notify_std_1 with gfc_notify_std and
49         gfc_warning_1 with gfc_warning.
50         * decl.c (gfc_verify_c_interop_param): Here.
51         * resolve.c (resolve_branch): Here.
52         (resolve_fl_derived): Here.
53         * dependency.c (gfc_check_argument_var_dependency):
54         * scanner.c (preprocessor_line): Use gfc_warning_now_at. Fix line
55         counter and locations before and after warning.
56         * gfortran.h (gfc_warning_1, gfc_warning_now_1, gfc_notify_std_1):
57         Delete.
58         (gfc_warning_now_at): Declare.
59         * error.c (gfc_warning_1): Delete.
60         (gfc_notify_std_1): Delete.
61         (gfc_warning_now_1): Delete.
62         (gfc_format_decoder): Handle two locations.
63         (gfc_diagnostic_build_prefix): Rename as
64         gfc_diagnostic_build_kind_prefix.
65         (gfc_diagnostic_build_locus_prefix): Take an expanded_location
66         instead of diagnostic_info.
67         (gfc_diagnostic_build_locus_prefix): Add overload that takes two
68         expanded_location.
69         (gfc_diagnostic_starter): Handle two locations.
70         (gfc_warning_now_at): New.
71         (gfc_diagnostics_init): Initialize caret_chars array.
72         (gfc_diagnostics_finish): Reset caret_chars array to default.
74 2015-05-16  Mikael Morin  <mikael@gcc.gnu.org>
75             Paul Thomas  <pault@gcc.gnu.org>
77         PR fortran/65792
78         * trans-expr.c (gfc_trans_subcomponent_assign): Always assign
79         the expression component to the destination. In addition, if
80         the component has allocatable components, copy them and
81         deallocate those of the expression, if it is not a variable.
82         The expression is fixed if not a variable to prevent multiple
83         evaluations.
85 2015-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
87         PR fortran/66111
88         * frontend-passes.c (has_dimen_vector_ref):  New function.
89         (inline_matmul_assign):  Use it to return early in case
90         of unhandled vector subscripts.
92 2015-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
94         PR fortran/66041
95         PR fortran/37131
96         * gfortran.h (gfc_array_spec):  Add field resolved.
97         * array.c (gfc_resolve_array_spec):  Resolve array spec
98         only once.
100 2015-05-11  Mikael Morin  <mikael@gcc.gnu.org>
102         PR fortran/66100
103         * simplify.c (simplify_bound): Fix assert to accept subobject arrays.
105 2015-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
107         PR fortran/66041
108         * frontend-passes.c (scalarized_expr): Set correct dimension and
109         shape for the expression to be passed to lbound. Remove trailing
110         references after array refrence.
111         (inline_matmul_assign):  Remove gfc_copy_expr from calls
112         to scalarized_expr().
114 2015-05-10  Mikael Morin  <mikael@gcc.gnu.org>
116         * simplify.c (simplify_bound_dim): Don't check for emptyness
117         in the case of cobound simplification.  Factor lower/upper
118         bound differenciation before the actual simplification.
119         (simplify_bound): Remove assumed shape specific simplification.
120         Don't give up early for the lbound of an assumed shape.
122 2015-05-09  Mikael Morin  <mikael@gcc.gnu.org>
124         PR fortran/65894
125         * trans-array.h (gfc_scalar_elemental_arg_saved_as_reference):
126         New prototype.
127         * trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
128         New function.
129         (gfc_add_loop_ss_code): Use gfc_scalar_elemental_arg_saved_as_reference
130         as conditional.
131         (gfc_walk_elemental_function_args): Set the dummy_arg field.
132         * trans.h (gfc_ss_info): New subfield dummy_arg.
133         * trans-expr.c (gfc_conv_procedure_call): Revert the change
134         of revision 222361.
135         (gfc_conv_expr): Use gfc_scalar_elemental_arg_saved_as_reference
136         as conditional.
138 2015-05-08  Mikael Morin  <mikael@gcc.gnu.org>
140         * trans-array.c (gfc_walk_elemental_function_args):
141         Don't skip the advance to the next dummy argument when skipping
142         absent optional args.
144 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
146         * expr.c (check_inquiry): Fix indentation so that it reflects the
147         block structure.
148         * interface.c (compare_parameter): Likewise.
149         * parse.c (parse_oacc_structured_block): Likewise.
150         * target-memory.c (expr_to_char): Likewise.
151         * trans-types.c (gfc_init_kinds): Likewise.
153 2015-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>
155         PR fortran/65976
156         * invoke.texi:  Remove 'no-' in '-fno-fixed-form'
158 2015-05-01  Mikael Morin  <mikael@gcc.gnu.org>
160         * simplify.c (simplify_bound_dim): Tighten the check for array fullness
161         by also checking for absence of subreference.
162         (simplify_bound): Don't skip simplification if the array
163         has subreferences.
164         (simplify_cobound): Same.
166 2015-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
168         PR fortran/37131
169         * simplify.c (simplify_bound): Get constant lower bounds of one
170         from array spec for assumed and explicit shape shape arrays if
171         the lower bounds are indeed one.
173 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
175         * options.c (gfc_init_options): Remove spurious second
176         semicolon.
177         * trans-stmt.c (gfc_trans_allocate): Likewise.
179 2015-04-28  Andre Vehreschild  <vehre@gmx.de>
181         * interface.c (gfc_compare_types): Check for unlimited
182         polymorphism flag in the correct position indepent of the _data
183         component being present or not.  This prevents a segfault, when
184         the _data component is not present.
185         * symbol.c (gfc_type_compatible): Same.
187 2015-04-27  Jim Wilson  <jim.wilson@linaro.org>
189         * Make-lang.in (fortran.mostlyclean): Remove gfortran and
190         gfortran-cross.
192 2015-04-27  Andre Vehreschild  <vehre@gmx.de>
194         PR fortran/59678
195         PR fortran/65841
196         * trans-array.c (duplicate_allocatable): Fixed deep copy of
197         allocatable components, which are liable for copy only, when
198         they are allocated.
199         (gfc_duplicate_allocatable): Add deep-copy code into if
200         component allocated block. Needed interface change for that.
201         (gfc_copy_allocatable_data): Supplying NULL_TREE for code to
202         add into if-block for checking whether a component was
203         allocated.
204         (gfc_duplicate_allocatable_nocopy): Likewise.
205         (structure_alloc_comps): Likewise.
206         * trans-array.h: Likewise.
207         * trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
208         * trans-openmp.c (gfc_walk_alloc_comps): Likewise.
210 2015-04-23  Andre Vehreschild  <vehre@gmx.de>
212         PR fortran/60322
213         * expr.c (gfc_lval_expr_from_sym): Code to select the regular
214         or class array added.
215         * gfortran.h: Add IS_CLASS_ARRAY macro.
216         * trans-array.c (gfc_add_loop_ss_code): Treat class objects
217         to be referenced always.
218         (build_class_array_ref): Adapt retrieval of array descriptor.
219         (build_array_ref): Likewise.
220         (gfc_conv_array_ref): Hand the vptr or the descriptor to
221         build_array_ref depending whether the sym is class or not.
222         (gfc_trans_array_cobounds):  Select correct gfc_array_spec for
223         regular and class arrays.
224         (gfc_trans_array_bounds): Likewise.
225         (gfc_trans_dummy_array_bias): Likewise.
226         (gfc_get_dataptr_offset): Correcting call of build_array_ref.
227         (gfc_conv_expr_descriptor): Set the array's offset to -1 when
228         lbound in inner most dim is 1 and symbol non-pointer/assoc.
229         * trans-decl.c (gfc_build_qualified_array): Select correct
230         gfc_array_spec for regular and class arrays.
231         (gfc_build_dummy_array_decl): Likewise.
232         (gfc_get_symbol_decl): Get a dummy array for class arrays.
233         (gfc_trans_deferred_vars): Tell conv_expr that the descriptor
234         is desired.
235         * trans-expr.c (gfc_class_vptr_get): Get the class descriptor
236         from the correct location for class arrays.
237         (gfc_class_len_get): Likewise.
238         (gfc_conv_intrinsic_to_class): Add handling of _len component.
239         (gfc_conv_class_to_class):  Prevent access to unset array data
240         when the array is an optional argument. Add handling of _len
241         component.
242         (gfc_copy_class_to_class): Check that _def_init is non-NULL
243         when used in _vptr->copy()
244         (gfc_trans_class_init_assign): Ensure that the rank of
245         _def_init is zero.
246         (gfc_conv_component_ref): Get the _vptr along with _data refs.
247         (gfc_conv_variable): Make sure the temp array descriptor is
248         returned for class arrays, too, and that class arrays are
249         dereferenced correctly.
250         (gfc_conv_procedure_call): For polymorphic type initialization
251         the initializer has to be a pointer to _def_init stored in a
252         dummy variable, which then needs to be used by value.
253         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
254         temporary array descriptor for class arrays, too.
255         (gfc_conv_intrinsic_storage_size): Likewise.
256         (gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
257         expressions.
258         * trans-stmt.c (trans_associate_var): Use a temporary array for
259         the associate variable of class arrays, too, making the array
260         one-based (lbound == 1).
261         * trans-types.c (gfc_is_nodesc_array): Use the correct
262         array data.
263         * trans.c (gfc_build_array_ref): Use the dummy array descriptor
264         when present.
265         * trans.h: Add class_vptr to gfc_se for storing a class ref's
266         vptr.
268 2015-04-22  Steven G. Kargl  <kargl@gcc.gnu.org>
270         PR fortran/65429
271         * decl.c (add_init_expr_to_sym): Set the length type parameter.
273 2015-04-10  Tobias Burnus  <burnus@net-b.de>
275         * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
276         version; reject not-yet-implemented variants.
277         * trans-types.c (gfc_get_derived_type): For lock_type with
278         -fcoarray=lib, use a void pointer as type.
279         * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
280         Handle lock_type with -fcoarray=lib.
282 2015-04-10  Mikael Morin  <mikael@gcc.gnu.org>
284         PR fortran/56674
285         PR fortran/58813
286         PR fortran/59016
287         PR fortran/59024
288         * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
289         former to the latter and make it non-static.  Update callers.
290         * gfortran.h (gfc_save_symbol_data): New prototype.
291         * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
292         before modifying symbols 'sym' and 'dt_sym'.
294 2013-04-09  Paul Thomas  <pault@gcc.gnu.org>
296         PR fortran/56852
297         * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
298         of the index variables are untyped and errors are present.
300 2015-04-07  Andre Vehreschild  <vehre@gmx.de>
302         PR fortran/65548
303         * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
304         use conv_expr_descriptor() instead of conv_expr_reference().
306 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
308         PR fortran/65597
309         * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
310         linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
311         For implcitly added !simple OMP_CLAUSE_LINEAR set it too.  Use step 1
312         instead of the original step on the new iterator - count.
314 2015-03-25  Mikael Morin  <mikael@gcc.gnu.org>
316         PR fortran/64952
317         PR fortran/65532
318         * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
319         * resolve.c (resolve_types): Return early if field 'types_resolved'
320         is set.  Set 'types_resolved' at the end.
322 2015-03-24  Andre Vehreschild  <vehre@gmx.de>
324         PR fortran/55901
325         * trans-expr.c (gfc_conv_structure): Fixed indendation.
326         Using integer_zero_node now instead of explicitly
327         constructing a integer constant zero node.
328         (gfc_conv_derived_to_class): Add handling of _len component,
329         i.e., when the rhs has a string_length then assign that to
330         class' _len, else assign 0.
331         (gfc_conv_intrinsic_to_class): Likewise.
333 2015-03-24  Andre Vehreschild  <vehre@gmx.de>
335         PR fortran/64787
336         PR fortran/57456
337         PR fortran/63230
338         * class.c (gfc_add_component_ref):  Free no longer needed
339         ref-chains to prevent memory loss.
340         (find_intrinsic_vtab): For deferred length char arrays or
341         unlimited polymorphic objects, store the size in bytes of one
342         character in the size component of the vtab.
343         * gfortran.h: Added gfc_add_len_component () define.
344         * trans-array.c (gfc_trans_create_temp_array): Switched to new
345         function name for getting a class' vtab's field.
346         (build_class_array_ref): Likewise.
347         (gfc_array_init_size): Using the size information from allocate
348         more consequently now, i.e., the typespec of the entity to
349         allocate is no longer needed.  This is to address the last open
350         comment in PR fortran/57456.
351         (gfc_array_allocate): Likewise.
352         (structure_alloc_comps): gfc_copy_class_to_class () needs to
353         know whether the class is unlimited polymorphic.
354         * trans-array.h: Changed interface of gfc_array_allocate () to
355         reflect the no longer needed typespec.
356         * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
357         (gfc_reset_len): New.
358         (gfc_get_class_array_ref): Switch to new function name for
359         getting a class' vtab's field.
360         (gfc_copy_class_to_class):  Added flag to know whether the class
361         to copy is unlimited polymorphic.  Adding _len dependent code
362         then, which calls ->vptr->copy () with four arguments adding
363         the length information ->vptr->copy(from, to, from_len, to_cap).
364         (gfc_conv_procedure_call): Switch to new function name for
365         getting a class' vtab's field.
366         (alloc_scalar_allocatable_for_assignment): Use the string_length
367         as computed by gfc_conv_expr and not the statically backend_decl
368         which may be incorrect when ref-ing.
369         (gfc_trans_assignment_1): Use the string_length variable and
370         not the rse.string_length.  The former has been computed more
371         generally.
372         * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
373         function name for getting a class' vtab's field.
374         (gfc_conv_intrinsic_storage_size): Likewise.
375         (gfc_conv_intrinsic_transfer): Likewise.
376         * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
377         source=expr3 only once before the loop over the objects to
378         allocate, when the objects are not arrays. Doing correct _len
379         initialization and calling of vptr->copy () fixing PR 64787.
380         (gfc_trans_deallocate): Reseting _len to 0, preventing future
381         errors.
382         * trans.c (gfc_build_array_ref): Switch to new function name
383         for getting a class' vtab's field.
384         (gfc_add_comp_finalizer_call): Likewise.
385         * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
386         and gfc_vptr_*_get () functions.
387         Added gfc_find_and_cut_at_last_class_ref () and
388         gfc_reset_len () routine prototype.  Added flag to
389         gfc_copy_class_to_class () prototype to signal an unlimited
390         polymorphic entity to copy.
392 2015-03-24  Iain Sandoe  <iain@codesourcery.com>
393             Tobias Burnus  <burnus@net-b.de>
395         * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
397 2015-03-23  Paul Thomas  <pault@gcc.gnu.org>
398             Mikael Morin  <mikael@gcc.gnu.org>
400         PR fortran/64952
401         * gfortran.h (struct symbol_attribute) : New field
402         'array_outer_dependency'.
403         * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
404         * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
405         (attr_bits): Append same value to initializer.
406         (mio_symbol_attribute): Handle 'array_outer_dependency' attr
407         in module read and write.
408         * resolve.c (update_current_proc_outer_array_dependency): New function.
409         (resolve_function, resolve_call): Add code to update current procedure's
410         'array_outer_dependency' attribute.
411         (resolve_variable): Mark current procedure with attribute
412         array_outer_dependency if the variable is an array coming from outside
413         the current namespace.
414         (resolve_fl_procedure): Mark a procedure without body with attribute
415         'array_outer_dependency'.
416         * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
417         marked as 'array_outer_dependency' generate a temporary.
418         (gfc_walk_function_expr): If the function may reference external arrays,
419         mark the head gfc_ss with flag 'array_outer_dependency'.
421 2015-03-22 Jerry DeLisle  <jvdelisle@gcc.gnu.org>
423         PR libgfortran/59513
424         * gfortran.texi (Read/Write after EOF marker): New information.
426 2015-03-21  H.J. Lu  <hongjiu.lu@intel.com>
428         * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
429         line.
431 2015-03-21  Tobias Burnus  <burnus@net-b.de>
433         * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
434         _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
435         _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
436         _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
437         _gfortran_caf_atomic_op): New sections.
439 2015-03-21  Tobias Burnus  <burnus@net-b.de>
441         * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
442         coindexed coarray accesses.
444 2015-03-17  Paul Thomas  <pault@gcc.gnu.org>
446         PR fortran/59198
447         * trans-types.c (gfc_get_derived_type): If an abstract derived
448         type with procedure pointer components has no other type of
449         component, return the backend_decl. Otherwise build the
450         components if any of the non-procedure pointer components have
451         no backend_decl.
453 2015-03-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
455         PR fortran/64432
456         *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
457         smallest kind passed in user arguments and hardcode tesults for
458         KIND=1 or KIND=2 to indicate no clock available.
460 2015-03-16  Andre Vehreschild  <vehre@gmx.de>
462         * resolve.c: Prevent segfault on illegal input.
464 2015-03-14  Mikael Morin  <mikael@gcc.gnu.org>
466         PR fortran/61138
467         * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
468         field before reusing LSE.
470 2015-03-11  Janne Blomqvist  <jb@gcc.gnu.org>
472         PR libfortran/65200
473         * gfortran.texi: Document behavior when opening files without
474         explicit ACTION= specifier.
476 2015-03-10  Paul Thomas  <pault@gcc.gnu.org>
478         PR fortran/65024
479         * trans-expr.c (gfc_conv_component_ref): If the component
480         backend declaration is missing and the derived type symbol is
481         available in the reference, call gfc_build_derived_type.
483 2015-03-10  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
484             Tobias Burnus  <burnus@net-b.de>
486         * trans.h (caf_sync_memory): New function decl tree.
487         * trans-decl.c (gfc_build_builtin_function_decls): Define it.
488         (create_main_function): Don't call sync_synchronize and leave
489         it to the CAF library.
490         * trans-stmt.c (gfc_trans_stop): Ditto.
491         (gfc_trans_sync): Ditto; add call library call for sync memory.
493 2015-03-08  Mikael Morin  <mikael@gcc.gnu.org>
495         PR fortran/60898
496         * resolve.c (resolve_symbol): Check that the symbol found by
497         name lookup really is the current symbol being resolved.
499 2015-03-02  Tobias Burnus  <burnus@net-b.de>
501         * check.c (gfc_check_atomic): Properly check for coarrayness
502         and for being coindexed.
504 2015-02-26  Martin Liska  <mliska@suse.cz>
506         * resolve.c: Rename enum 'comparison' to 'compare_result' as
507         solution for -Wodr issue.
509 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
511         PR libgomp/64625
512         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
513         Remove macros.
514         (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
515         * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
516         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
517         Remove function types.
518         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
519         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
520         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
521         New function types.
523 2015-02-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
525         PR fortran/64980
526         PR fortran/61960
527         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
528         for component references to class objects.
529         (gfc_conv_procedure_call): Compare the class by name.
531 2015-02-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
533         PR fortran/64506
534         * scanner.c (gfc_next_char_literal): For free form source,
535         check for '!' and if found, clear the comment and go back
536         and get the next character. For fixed form source, skip the
537         rest of the line.
539 2015-02-12  Paul Thomas  <pault@gcc.gnu.org>
541         PR fortran/64932
542         * trans-stmt.c (gfc_trans_deallocate): If a component array
543         expression is not a descriptor type and it is a derived type
544         that has allocatable components and is not finalizable, then
545         deallocate the allocatable components.
547 2015-02-08  Mikael Morin  <mikael@gcc.gnu.org>
549         PR fortran/63744
550         * module.c (check_for_ambiguous): Change argument type
551         from gfc_symbol to gfc_symtree.  Check local (symtree) name
552         instead of original (symbol) name.
553         (read_module): Update caller.
555 2015-02-06  Paul Thomas  <pault@gcc.gnu.org>
557         PR fortran/63205
558         * gfortran.h: Add 'must finalize' field to gfc_expr and
559         prototypes for gfc_is_alloc_class_scalar_function and for
560         gfc_is_alloc_class_array_function.
561         * expr.c (gfc_is_alloc_class_scalar_function,
562         gfc_is_alloc_class_array_function): New functions.
563         * trans-array.c (gfc_add_loop_ss_code): Do not move the
564         expression for allocatable class scalar functions outside the
565         loop.
566         (conv_array_index_offset): Cope with deltas being NULL_TREE.
567         (build_class_array_ref): Do not return with allocatable class
568         array functions. Add code to pick out the returned class array.
569         Dereference if necessary and return if not a class object.
570         (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
571         (gfc_walk_function_expr): Return an array ss for the result of
572         an allocatable class array function.
573         * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
574         that the argument should be a variable. If an allocatable class
575         array function, set the offset to zero and skip the write-out
576         loop in this case.
577         (gfc_conv_procedure_call): Add allocatable class array function
578         to the assert. Call gfc_conv_subref_array_arg for allocatable
579         class array function arguments with derived type formal arg..
580         Add the code for handling allocatable class functions, including
581         finalization calls to prevent memory leaks.
582         (arrayfunc_assign_needs_temporary): Return if an allocatable
583         class array function.
584         (gfc_trans_assignment_1): Set must_finalize to rhs expression
585         for allocatable class functions. Set scalar_to_array as needed
586         for scalar class allocatable functions assigned to an array.
587         Nullify the allocatable components corresponding the the lhs
588         derived type so that the finalization does not free them.
590 2015-01-29  Andre Vehreschild  <vehre@gmx.de>
591             Janus Weil  <janus@gcc.gnu.org>
593         PR fortran/60289
594         Initial patch by Janus Weil
595         * resolve.c (resolve_allocate_expr): Add check for comp. only
596         when target is not unlimited polymorphic.
597         * trans-stmt.c (gfc_trans_allocate): Assign correct value to
598         _len component of unlimited polymorphic entities.
600 2015-02-05  Tobias Burnus  <burnus@net-b.de>
602         PR fortran/64943
603         * resolve.c (resolve_transfer): Also check structure
604         constructors.
606 2015-02-05  Paul Thomas  <pault@gcc.gnu.org>
608         PR fortran/64757
609         * resolve.c (resolve_structure_cons): Obtain the rank of class
610         components.
611         * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
612         assignment to allocatable class array components.
613         (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
614         is a class component, allocate to the _data field.
615         (gfc_trans_subcomponent_assign): If a class component with a
616         derived type expression set the _vptr field and for array
617         components, call gfc_trans_alloc_subarray_assign. For scalars,
618         the assignment is performed here.
620 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
622         * options.c: Include langhooks.h.
623         (gfc_post_options): Change lang_hooks.name based on
624         selected -std= mode.
626 2015-02-03  Steven G. Kargl  <kargl@gcc.gnu.org>
628         * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
630 2015-01-30  Andre Vehreschild  <vehre@gmx.de>
632         * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
633         * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
634         Fixed datatype of charlen to be a 32-bit int.
636 2015-02-01  Joseph Myers  <joseph@codesourcery.com>
638         * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
639         char *, ...)): Remove functions.
640         * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
641         (const char *, ...)): Remove declarations.
642         * arith.c, check.c, data.c, decl.c, frontend-passes.c,
643         interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
644         options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
645         trans-common.c, trans-const.c, trans-stmt.c: All callers of
646         gfc_warning and gfc_warning_now changed to pass 0 or option number
647         as first argument.
649 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
651         * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
652         callers of fatal_error changed to pass input_location as first
653         argument.
655 2015-01-28  Tobias Burnus  <burnus@net-b.de>
657         * intrinsic.texi (CO_BROADCAST): Correct argument description.
659 2015-01-27  Tobias Burnus  <burnus@net-b.de>
661         PR fortran/63861
662         * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
663         Fix handling for scalar coarrays.
664         * trans-types.c (gfc_get_element_type): Add comment.
666 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
668         PR fortran/64771
669         * interface.c: Remove <algorithm>.
670         (check_dummy_characteristics): Use MAX instead of std::max.
672 2015-01-26  Paul Thomas  <pault@gcc.gnu.org>
674         PR fortran/62044
675         * resolve.c (resolve_allocate_expr): If the default initializer
676         is NULL, keep the original MOLD expression so that the correct
677         typespec is available.
679 2015-01-26  Tobias Burnus  <burnus@net-b.de>
681         PR fortran/64771
682         * interface.c (check_dummy_characteristics): Fix coarray handling.
684 2015-01-26  Tobias Burnus  <burnus@net-b.de>
686         * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
688 2015-01-26  Janus Weil  <janus@gcc.gnu.org>
690         PR fortran/64230
691         * class.c (finalize_component): New argument 'sub_ns'. Insert code to
692         check if 'expr' is associated.
693         (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
694         'ptr2'. Pass 'sub_ns' to finalize_component.
696 2015-01-25  Mikael Morin  <mikael@gcc.gnu.org>
698         PR fortran/62044
699         * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
700         * module.c (MOD_VERSION): Bump.
701         (write_module): Don't write list of extensions.
702         (read_module): Don't jump over list of extensions;
703         don't load list of extensions.
704         (load_derived_extensions, write_dt_extensions,
705          write_derived_extensions): Remove.
707 2015-01-24  Tobias Burnus  <burnus@net-b.de>
709         * parse.c (gfc_parse_file): Fix two-location gfc_error call.
711 2015-01-23  Martin Liska  <mliska@suse.cz>
713         * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
714         false positive during profiledbootstrap by initializing them.
715         * matchexp.c (match_mult_operand): Likewise.
716         * module.c (write_atom): Likewise.
717         (read_module): Likewise.
719 2015-01-23  Tom de Vries  <tom@codesourcery.com>
721         PR libgomp/64672
722         * lang.opt (fopenacc): Mark as LTO option.
724 2015-01-23  Tom de Vries  <tom@codesourcery.com>
726         PR libgomp/64707
727         * lang.opt (fopenmp): Mark as LTO option.
729 2015-01-23  Andre Vehreschild  <vehre@gmx.de>
731         * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
732         * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
734 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
736         * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
738 2015-01-23  Janus Weil  <janus@gcc.gnu.org>
740         PR fortran/60922
741         * class.c (finalize_component): Apply the check for 'fini_coarray' only
742         to coarray components.
744 2015-01-23  Tobias Burnus  <burnus@net-b.de>
746         PR fortran/64726
747         * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
748         loop generation.
750 2015-01-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
752         PR fortran/61933
753         * libgfortran.h:
754         * trans-io.c (set_parameter_value): Delete use of has_iostat.
755         Redefine to not generate any runtime error check calls.
756         (set_parameter_value_chk): Rename of the former
757         set_parameter_value with the runtime error checks and fix
758         whitespace. (set_parameter_value_inquire): New function that
759         builds a runtime conditional block to set the INQUIRE
760         common parameter block unit number to -2 when unit numbers
761         exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
762         For unit, use the renamed set_parameter_value_chk.
763         (gfc_trans_close): Likewise use renamed function.
764         (build_filepos): Whitespace and use renamed function.
765         (gfc_trans_inquire): Whitespace and for unit use
766         set_parameter_value and set_parameter_value_inquire.
767         (gfc_trans_wait): Remove p->iostat from call to
768         set_parameter_value. Use new set_parameter_value_chk for unit.
769         (build_dt): Use the new set_parameter_value without p->iostat
770         and fix whitespace. Use set_parameter_value_chk for unit.
772 2015-01-21  Thomas Koenig  <tkoenig@netcologne.de>
774         PR fortran/57023
775         * dependency.c (callback_dummy_intent_not_int):  New function.
776         (dummy_intent_not_in):  New function.
777         (gfc_full_array_ref_p):  Use dummy_intent_not_in.
779 2015-01-18  Andre Vehreschild  <vehre@gmx.de>
780             Janus Weil <janus@gcc.gnu.org>
782         PR fortran/60255
783         * class.c (gfc_get_len_component): New.
784         (gfc_build_class_symbol): Add _len component to unlimited
785         polymorphic entities.
786         (find_intrinsic_vtab): Removed emitting of error message.
787         * gfortran.h: Added prototype for gfc_get_len_component.
788         * simplify.c (gfc_simplify_len): Use _len component where
789         available.
790         * trans-expr.c (gfc_class_len_get): New.
791         (gfc_conv_intrinsic_to_class): Add handling for deferred
792         character arrays.
793         (gfc_conv_structure): Treat _len component correctly.
794         (gfc_conv_expr): Prevent bind_c handling when not required.
795         (gfc_trans_pointer_assignment): Propagate _len component.
796         * trans-stmt.c (class_has_len_component): New.
797         (trans_associate_var): _len component treatment for associate
798         context.
799         (gfc_trans_allocate): Same as for trans_associate_var()
800         * trans.h: Added prototype for gfc_class_len_get.
802 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
804         PR fortran/57959
805         * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
806         for allocatable components, where the source is a variable.
808 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
810         PR fortran/55901
811         * primary.c (gfc_match_varspec): Exclude dangling associate-
812         names with dimension 0 from being counted as arrays.
813         * resolve.c (resolve_assoc_var): Sub-strings are permissible
814         for associate-names, so exclude characters from the test for
815         misuse as arrays.
816         * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
817         the hidden string length variable of their associated target.
818         Signal this by setting 'length' to a constant, if the decl for
819         the string length is a variable.
821 2015-01-17  Paul Thomas  <pault@gcc.gnu.org>
823         PR fortran/64578
824         * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
825         before reinitializing rse, to add the rse.pre to block before
826         creating 'ptrtemp'.
827         * trans-intrinsic.c (gfc_conv_associated): Deal with the class
828         data being a descriptor.
830 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
832         PR fortran/60357
833         * primary.c (build_actual_constructor): Prevent warning.
834         * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
835         assignment): New function encapsulates treatment of allocatable
836         components.
837         (gfc_trans_subcomponent_assign): Needed to distinguish between
838         regular assignment and initilization.
839         (gfc_trans_structure_assign): Same.
840         (gfc_conv_structure): Same.
842         PR fortran/61275
843         * gfortran.h: deferred_parameter is not needed, because
844         it artificial does the trick completely.
845         * primary.c (build_actual_constructor): Same.
846         (gfc_convert_to_structure_constructor): Same.
847         * resolve.c (resolve_fl_derived0): Same.
848         * trans-expr.c (gfc_conv_component_ref): Prevent treating
849         allocatable deferred length char arrays here.
850         (gfc_trans_subcomponent_assign): Same as above.
851         * trans-types.c (gfc_sym_type): This is done in
852         gfc_get_derived_type already.
854 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
856         PR fortran/60334
857         * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
858         length when the symbol is declared to be a result.
859         * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
860         string length when functions are nested and the string length
861         is a reference already.
863 2015-01-16  Janus Weil  <janus@gcc.gnu.org>
865         PR fortran/45290
866         * decl.c (match_pointer_init): Error out if resolution of init expr
867         failed.
869 2015-01-15  Tobias Burnus  <burnus@net-b.de>
871         * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
872         resolve_oacc_deviceptr_clause, resolve_omp_clauses,
873         gfc_resolve_oacc_declare): Replace '%s' by %qs.
875 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
876             Cesar Philippidis  <cesar@codesourcery.com>
877             James Norris  <jnorris@codesourcery.com>
878             Ilmir Usmanov  <i.usmanov@samsung.com>
879             Tobias Burnus  <burnus@net-b.de>
881         * lang.opt (fopenacc): New option.
882         * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
883         * dump-parse-tree.c (show_omp_node): Split part of it into...
884         (show_omp_clauses): ... this new function.
885         (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
886         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
887         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
888         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
889         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
890         (show_namespace): Update for OpenACC.
891         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
892         (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
893         (DEF_GOACC_BUILTIN_COMPILER): New macros.
894         * types.def (BT_FN_VOID_INT_INT_VAR)
895         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
896         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
897         New function types.
898         * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
899         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
900         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
901         ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
902         ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
903         ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
904         ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
905         ST_OACC_ROUTINE.
906         (struct gfc_expr_list): New data type.
907         (gfc_get_expr_list): New macro.
908         (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
909         OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
910         OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
911         (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
912         (OMP_LIST_CACHE): New enumerators.
913         (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
914         vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
915         wait_list, tile_list, async, gang, worker, vector, seq,
916         independent, wait, par_auto, gang_static, and loc members.
917         (struct gfc_namespace): Add oacc_declare_clauses member.
918         (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
919         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
920         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
921         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
922         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
923         (gfc_free_expr_list, gfc_resolve_oacc_directive)
924         (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
925         (gfc_resolve_oacc_blocks): New prototypes.
926         * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
927         EXEC_OACC_PARALLEL_LOOP.
928         * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
929         (gfc_match_oacc_update, gfc_match_oacc_declare)
930         (gfc_match_oacc_loop, gfc_match_oacc_host_data)
931         (gfc_match_oacc_data, gfc_match_oacc_kernels)
932         (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
933         (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
934         (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
935         prototypes.
936         * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
937         (gfc_free_omp_clauses): Update for members added to struct
938         gfc_omp_clauses.
939         (gfc_match_omp_clauses): Change mask paramter to uint64_t.  Add
940         openacc parameter.
941         (resolve_omp_clauses): Add openacc parameter.  Update for OpenACC.
942         (struct fortran_omp_context): Add is_openmp member.
943         (gfc_resolve_omp_parallel_blocks): Initialize it.
944         (gfc_resolve_do_iterator): Update for OpenACC.
945         (gfc_resolve_omp_directive): Call
946         resolve_omp_directive_inside_oacc_region.
947         (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
948         (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
949         (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
950         (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
951         (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
952         (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
953         (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
954         (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
955         (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
956         (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
957         (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
958         (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
959         (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
960         (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
961         (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
962         (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
963         (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
964         (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
965         (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
966         (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
967         (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
968         (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
969         (gfc_match_omp_clauses): Handle those.
970         (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
971         (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
972         (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
973         (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
974         (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
975         (OACC_WAIT_CLAUSES): New macros.
976         (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
977         (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
978         (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
979         (gfc_match_oacc_kernels, gfc_match_oacc_data)
980         (gfc_match_oacc_host_data, gfc_match_oacc_loop)
981         (gfc_match_oacc_declare, gfc_match_oacc_update)
982         (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
983         (gfc_match_oacc_wait, gfc_match_oacc_cache)
984         (gfc_match_oacc_routine, oacc_is_loop)
985         (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
986         (check_symbol_not_pointer, check_array_not_assumed)
987         (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
988         (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
989         (omp_code_to_statement, oacc_code_to_statement)
990         (resolve_oacc_directive_inside_omp_region)
991         (resolve_omp_directive_inside_oacc_region)
992         (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
993         (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
994         (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
995         (gfc_resolve_oacc_directive): New functions.
996         * parse.c (next_free): Update for OpenACC.  Move some code into...
997         (verify_token_free): ... this new function.
998         (next_fixed): Update for OpenACC.  Move some code into...
999         (verify_token_fixed): ... this new function.
1000         (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
1001         ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
1002         (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
1003         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
1004         ST_OACC_KERNELS_LOOP.
1005         (case_decl): Add ST_OACC_ROUTINE.
1006         (push_state, parse_critical_block, parse_progunit): Update for
1007         OpenACC.
1008         (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
1009         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
1010         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
1011         ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
1012         ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
1013         ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
1014         ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
1015         ST_OACC_ROUTINE.
1016         (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
1017         (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
1018         ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
1019         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
1020         (decode_oacc_directive, parse_oacc_structured_block)
1021         (parse_oacc_loop, is_oacc): New functions.
1022         * parse.h (struct gfc_state_data): Add oacc_declare_clauses
1023         member.
1024         (is_oacc): New prototype.
1025         * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
1026         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
1027         EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
1028         EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
1029         EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
1030         EXEC_OACC_EXIT_DATA.
1031         (resolve_codes): Call gfc_resolve_oacc_declare.
1032         * scanner.c (openacc_flag, openacc_locus): New variables.
1033         (skip_free_comments): Update for OpenACC.  Move some code into...
1034         (skip_omp_attribute): ... this new function.
1035         (skip_oacc_attribute): New function.
1036         (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
1037         * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
1038         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
1039         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
1040         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
1041         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
1042         * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
1043         * trans-openmp.c: Include "gomp-constants.h".
1044         (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
1045         instead of OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
1046         (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
1047         OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
1048         OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
1049         OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
1050         OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
1051         independent, wait_list, num_gangs_expr, num_workers_expr,
1052         vector_length_expr, vector, vector_expr, worker, worker_expr,
1053         gang, gang_expr members.
1054         (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
1055         (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
1056         (gfc_trans_oacc_executable_directive)
1057         (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
1058         (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
1059         * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
1060         * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
1061         New prototypes.
1062         * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
1063         EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
1064         EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
1065         EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
1066         EXEC_OACC_EXIT_DATA.
1067         * gfortran.texi: Update for OpenACC.
1068         * intrinsic.texi: Likewise.
1069         * invoke.texi: Likewise.
1071 2015-01-15  Janus Weil  <janus@gcc.gnu.org>
1073         PR fortran/58023
1074         * resolve.c (resolve_fl_derived0): Continue resolving next component
1075         after error.
1077 2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1079         PR fortran/61933
1080         * io.c (gfc_match_inquire): Generate error if unit number in
1081         inquire statement is a constant -1.  All other values allowed.
1082         * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
1083         (create_dummy_iostat): Delete function no longer used.
1085 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
1087         PR fortran/64528
1088         * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
1089         on dummy args with VALUE attribute.
1091 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
1093         PR fortran/63733
1094         * interface.c (gfc_extend_expr): Look for type-bound operators before
1095         non-typebound ones.
1097 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
1099         PR fortran/58023
1100         * resolve.c (resolve_fl_derived0): Set error flag if problems with the
1101         interface of a procedure-pointer component were detected.
1103 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
1105         PR fortran/64508
1106         * interface.c (compare_parameter): Interface check for
1107         procedure-pointer component as actual argument.
1109 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
1111         * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
1112         Runtime Library" to "GNU Offloading and Multi Processing Runtime
1113         Library".
1114         * intrinsic.texi: Likewise.
1116 2015-01-10  Tobias Burnus  <burnus@net-b.de>
1118         PR fortran/64522
1119         * invoke.texi (Wline-truncation): Document new behaviour.
1120         * lang.opt (Wline-truncation): Add Init(-1).
1121         * options.c (gfc_post_options): If -Wline-truncation is unset,
1122         enable it for free-form source files; for the latter, also use
1123         -Werror=line-truncation, unless -Wno-error has been specified.
1125 2015-01-09  Michael Collison  <michael.collison@linaro.org>
1127         * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1128         input.h, alias.h, symtab.h, options.h, fold-const.h,
1129         wide-int.h, and inchash.h due to flattening of tree.h.
1130         * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1131         input.h, alias.h, symtab.h, fold-const.h,
1132         wide-int.h, and inchash.h due to flattening of tree.h.
1133         * decl.c: Ditto.
1134         * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1135         input.h, alias.h, symtab.h, options.h, fold-const.h,
1136         wide-int.h, and inchash.h due to flattening of tree.h.
1137         * iresolve.c: Ditto.
1138         * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1139         input.h, alias.h, symtab.h, fold-const.h,
1140         wide-int.h, and inchash.h due to flattening of tree.h.
1141         * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1142         input.h, alias.h, symtab.h, options.h, fold-const.h,
1143         wide-int.h, and inchash.h due to flattening of tree.h.
1144         * options.c: Ditto.
1145         * target-memory.c: Include hash-set.h, vec.h,
1146         double-int.h, input.h, alias.h, symtab.h, fold-const.h,
1147         wide-int.h, and inchash.h due to flattening of tree.h.
1148         * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1149         input.h, alias.h, symtab.h, options.h, fold-const.h,
1150         wide-int.h, and inchash.h due to flattening of tree.h.
1151         * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1152         input.h, alias.h, symtab.h, options.h, fold-const.h,
1153         wide-int.h, and inchash.h due to flattening of tree.h.
1154         * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1155         input.h, alias.h, symtab.h, fold-const.h,
1156         wide-int.h, and inchash.h due to flattening of tree.h.
1157         * trans-const.c: Ditto.
1158         * trans-decl.c: Ditto.
1159         * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1160         input.h, alias.h, symtab.h, options.h, fold-const.h,
1161         wide-int.h, and inchash.h due to flattening of tree.h.
1162         * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1163         input.h, alias.h, symtab.h, fold-const.h,
1164         wide-int.h, inchash.h and real.h due to flattening of tree.h.
1165         * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1166         input.h, alias.h, symtab.h, options.h, fold-const.h,
1167         wide-int.h, and inchash.h due to flattening of tree.h.
1168         * trans-openmp.c: Ditto.
1169         * trans-stmt.c: Ditto.
1170         * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1171         input.h, alias.h, symtab.h, fold-const.h,
1172         wide-int.h, inchash.h and real.h due to flattening of tree.h.
1174 2015-01-08  Tobias Burnus  <burnus@net-b.de>
1176         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1177         for module coarrays with -fcoarray=lib.
1178         (get_proc_pointer_decl): As module variable, make only public
1179         when not marked as private.
1181 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1183         PR fortran/47674
1184         * dependency.h:  Actually commit changes.
1186 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
1188         PR fortran/47674
1189         * dependency.c:  Update copyright years.
1190         (gfc_discard_nops):  Add prototype.
1191         * dependency.c (discard_nops):  Rename to gfc_discard_nops,
1192         make non-static.
1193         (gfc_discard_nops):  Use gfc_discard_nops.
1194         (gfc_dep_difference):  Likewise.
1195         * frontend-passes.c  Update copyright years.
1196         (realloc_strings):  New function.  Add prototype.
1197         (gfc_run_passes):  Call realloc_strings.
1198         (realloc_string_callback):  New function.
1199         (create_var):  Add prototype.  Handle case of a
1200         scalar character variable.
1201         (optimize_trim):  Do not handle allocatable variables.
1203 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
1205         Update copyright years.
1207         * gfortranspec.c (lang_specific_driver): Update copyright notice
1208         dates.
1209         * gfc-internals.texi: Bump @copying's copyright year.
1210         * gfortran.texi: Ditto.
1211         * intrinsic.texi: Ditto.
1212         * invoke.texi: Ditto.
1214 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
1216         PR fortran/57562
1217         * expr.c (find_component_ref): Deal with extended types.
1219 2015-01-02  Tobias Burnus  <burnus@net-b.de>
1221         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
1222         for module coarrays with -fcoarray=lib.
1224 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
1226         PR fortran/60507
1227         * interface.c (is_procptr_result): New function to check if an
1228         expression is a procedure-pointer result.
1229         (compare_actual_formal): Use it.
1231 Copyright (C) 2015 Free Software Foundation, Inc.
1233 Copying and distribution of this file, with or without modification,
1234 are permitted in any medium without royalty provided the copyright
1235 notice and this notice are preserved.