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