2015-02-05 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / fortran / ChangeLog
bloba60737f2fff9aa9d8ff2cf81003c28d9a98bf493
1 2015-02-05  Paul Thomas  <pault@gcc.gnu.org>
3         PR fortran/640757
4         * resolve.c (resolve_structure_cons): Obtain the rank of class
5         components.
6         * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
7         assignment to allocatable class array components.
8         (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
9         is a class component, allocate to the _data field.
10         (gfc_trans_subcomponent_assign): If a class component with a
11         derived type expression set the _vptr field and for array
12         components, call gfc_trans_alloc_subarray_assign. For scalars,
13         the assignment is performed here.
15 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
17         * options.c: Include langhooks.h.
18         (gfc_post_options): Change lang_hooks.name based on
19         selected -std= mode.
21 2015-02-03  Steven G. Kargl  <kargl@gcc.gnu.org>
23         * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
25 2015-01-30  Andre Vehreschild  <vehre@gmx.de>
27         * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
28         * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
29         Fixed datatype of charlen to be a 32-bit int.
31 2015-02-01  Joseph Myers  <joseph@codesourcery.com>
33         * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
34         char *, ...)): Remove functions.
35         * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
36         (const char *, ...)): Remove declarations.
37         * arith.c, check.c, data.c, decl.c, frontend-passes.c,
38         interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
39         options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
40         trans-common.c, trans-const.c, trans-stmt.c: All callers of
41         gfc_warning and gfc_warning_now changed to pass 0 or option number
42         as first argument.
44 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
46         * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
47         callers of fatal_error changed to pass input_location as first
48         argument.
50 2015-01-28  Tobias Burnus  <burnus@net-b.de>
52         * intrinsic.texi (CO_BROADCAST): Correct argument description.
54 2015-01-27  Tobias Burnus  <burnus@net-b.de>
56         PR fortran/63861
57         * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
58         Fix handling for scalar coarrays.
59         * trans-types.c (gfc_get_element_type): Add comment.
61 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
63         PR fortran/64771
64         * interface.c: Remove <algorithm>.
65         (check_dummy_characteristics): Use MAX instead of std::max.
67 2015-01-26  Paul Thomas  <pault@gcc.gnu.org>
69         PR fortran/62044
70         * resolve.c (resolve_allocate_expr): If the default initializer
71         is NULL, keep the original MOLD expression so that the correct
72         typespec is available.
74 2015-01-26  Tobias Burnus  <burnus@net-b.de>
76         PR fortran/64771
77         * interface.c (check_dummy_characteristics): Fix coarray handling.
79 2015-01-26  Tobias Burnus  <burnus@net-b.de>
81         * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
83 2015-01-26  Janus Weil  <janus@gcc.gnu.org>
85         PR fortran/64230
86         * class.c (finalize_component): New argument 'sub_ns'. Insert code to
87         check if 'expr' is associated.
88         (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
89         'ptr2'. Pass 'sub_ns' to finalize_component.
91 2015-01-25  Mikael Morin  <mikael@gcc.gnu.org>
93         PR fortran/62044
94         * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
95         * module.c (MOD_VERSION): Bump.
96         (write_module): Don't write list of extensions.
97         (read_module): Don't jump over list of extensions;
98         don't load list of extensions.
99         (load_derived_extensions, write_dt_extensions,
100          write_derived_extensions): Remove.
102 2015-01-24  Tobias Burnus  <burnus@net-b.de>
104         * parse.c (gfc_parse_file): Fix two-location gfc_error call.
106 2015-01-23  Martin Liska  <mliska@suse.cz>
108         * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
109         false positive during profiledbootstrap by initializing them.
110         * matchexp.c (match_mult_operand): Likewise.
111         * module.c (write_atom): Likewise.
112         (read_module): Likewise.
114 2015-01-23  Tom de Vries  <tom@codesourcery.com>
116         PR libgomp/64672
117         * lang.opt (fopenacc): Mark as LTO option.
119 2015-01-23  Tom de Vries  <tom@codesourcery.com>
121         PR libgomp/64707
122         * lang.opt (fopenmp): Mark as LTO option.
124 2015-01-23  Andre Vehreschild  <vehre@gmx.de>
126         * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
127         * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
129 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
131         * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
133 2015-01-23  Janus Weil  <janus@gcc.gnu.org>
135         PR fortran/60922
136         * class.c (finalize_component): Apply the check for 'fini_coarray' only
137         to coarray components.
139 2015-01-23  Tobias Burnus  <burnus@net-b.de>
141         PR fortran/64726
142         * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
143         loop generation.
145 2015-01-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
147         PR fortran/61933
148         * libgfortran.h:
149         * trans-io.c (set_parameter_value): Delete use of has_iostat.
150         Redefine to not generate any runtime error check calls.
151         (set_parameter_value_chk): Rename of the former
152         set_parameter_value with the runtime error checks and fix
153         whitespace. (set_parameter_value_inquire): New function that
154         builds a runtime conditional block to set the INQUIRE
155         common parameter block unit number to -2 when unit numbers
156         exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
157         For unit, use the renamed set_parameter_value_chk.
158         (gfc_trans_close): Likewise use renamed function.
159         (build_filepos): Whitespace and use renamed function.
160         (gfc_trans_inquire): Whitespace and for unit use
161         set_parameter_value and set_parameter_value_inquire.
162         (gfc_trans_wait): Remove p->iostat from call to
163         set_parameter_value. Use new set_parameter_value_chk for unit.
164         (build_dt): Use the new set_parameter_value without p->iostat
165         and fix whitespace. Use set_parameter_value_chk for unit.
167 2015-01-21  Thomas Koenig  <tkoenig@netcologne.de>
169         PR fortran/57023
170         * dependency.c (callback_dummy_intent_not_int):  New function.
171         (dummy_intent_not_in):  New function.
172         (gfc_full_array_ref_p):  Use dummy_intent_not_in.
174 2015-01-18  Andre Vehreschild  <vehre@gmx.de>
175             Janus Weil <janus@gcc.gnu.org>
177         PR fortran/60255
178         * class.c (gfc_get_len_component): New.
179         (gfc_build_class_symbol): Add _len component to unlimited
180         polymorphic entities.
181         (find_intrinsic_vtab): Removed emitting of error message.
182         * gfortran.h: Added prototype for gfc_get_len_component.
183         * simplify.c (gfc_simplify_len): Use _len component where
184         available.
185         * trans-expr.c (gfc_class_len_get): New.
186         (gfc_conv_intrinsic_to_class): Add handling for deferred
187         character arrays.
188         (gfc_conv_structure): Treat _len component correctly.
189         (gfc_conv_expr): Prevent bind_c handling when not required.
190         (gfc_trans_pointer_assignment): Propagate _len component.
191         * trans-stmt.c (class_has_len_component): New.
192         (trans_associate_var): _len component treatment for associate
193         context.
194         (gfc_trans_allocate): Same as for trans_associate_var()
195         * trans.h: Added prototype for gfc_class_len_get.
197 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
199         PR fortran/57959
200         * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
201         for allocatable components, where the source is a variable.
203 2015-01-18  Paul Thomas  <pault@gcc.gnu.org>
205         PR fortran/55901
206         * primary.c (gfc_match_varspec): Exclude dangling associate-
207         names with dimension 0 from being counted as arrays.
208         * resolve.c (resolve_assoc_var): Sub-strings are permissible
209         for associate-names, so exclude characters from the test for
210         misuse as arrays.
211         * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
212         the hidden string length variable of their associated target.
213         Signal this by setting 'length' to a constant, if the decl for
214         the string length is a variable.
216 2015-01-17  Paul Thomas  <pault@gcc.gnu.org>
218         PR fortran/64578
219         * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
220         before reinitializing rse, to add the rse.pre to block before
221         creating 'ptrtemp'.
222         * trans-intrinsic.c (gfc_conv_associated): Deal with the class
223         data being a descriptor.
225 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
227         PR fortran/60357
228         * primary.c (build_actual_constructor): Prevent warning.
229         * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
230         assignment): New function encapsulates treatment of allocatable
231         components.
232         (gfc_trans_subcomponent_assign): Needed to distinguish between
233         regular assignment and initilization.
234         (gfc_trans_structure_assign): Same.
235         (gfc_conv_structure): Same.
237         PR fortran/61275
238         * gfortran.h: deferred_parameter is not needed, because
239         it artificial does the trick completely.
240         * primary.c (build_actual_constructor): Same.
241         (gfc_convert_to_structure_constructor): Same.
242         * resolve.c (resolve_fl_derived0): Same.
243         * trans-expr.c (gfc_conv_component_ref): Prevent treating
244         allocatable deferred length char arrays here.
245         (gfc_trans_subcomponent_assign): Same as above.
246         * trans-types.c (gfc_sym_type): This is done in
247         gfc_get_derived_type already.
249 2015-01-17  Andre Vehreschild  <vehre@gmx.de>
251         PR fortran/60334
252         * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
253         length when the symbol is declared to be a result.
254         * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
255         string length when functions are nested and the string length
256         is a reference already.
258 2015-01-16  Janus Weil  <janus@gcc.gnu.org>
260         PR fortran/45290
261         * decl.c (match_pointer_init): Error out if resolution of init expr
262         failed.
264 2015-01-15  Tobias Burnus  <burnus@net-b.de>
266         * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
267         resolve_oacc_deviceptr_clause, resolve_omp_clauses,
268         gfc_resolve_oacc_declare): Replace '%s' by %qs.
270 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
271             Cesar Philippidis  <cesar@codesourcery.com>
272             James Norris  <jnorris@codesourcery.com>
273             Ilmir Usmanov  <i.usmanov@samsung.com>
274             Tobias Burnus  <burnus@net-b.de>
276         * lang.opt (fopenacc): New option.
277         * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
278         * dump-parse-tree.c (show_omp_node): Split part of it into...
279         (show_omp_clauses): ... this new function.
280         (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
281         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
282         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
283         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
284         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
285         (show_namespace): Update for OpenACC.
286         * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
287         (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
288         (DEF_GOACC_BUILTIN_COMPILER): New macros.
289         * types.def (BT_FN_VOID_INT_INT_VAR)
290         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
291         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
292         New function types.
293         * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
294         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
295         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
296         ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
297         ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
298         ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
299         ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
300         ST_OACC_ROUTINE.
301         (struct gfc_expr_list): New data type.
302         (gfc_get_expr_list): New macro.
303         (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
304         OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
305         OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
306         (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
307         (OMP_LIST_CACHE): New enumerators.
308         (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
309         vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
310         wait_list, tile_list, async, gang, worker, vector, seq,
311         independent, wait, par_auto, gang_static, and loc members.
312         (struct gfc_namespace): Add oacc_declare_clauses member.
313         (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
314         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
315         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
316         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
317         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
318         (gfc_free_expr_list, gfc_resolve_oacc_directive)
319         (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
320         (gfc_resolve_oacc_blocks): New prototypes.
321         * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
322         EXEC_OACC_PARALLEL_LOOP.
323         * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
324         (gfc_match_oacc_update, gfc_match_oacc_declare)
325         (gfc_match_oacc_loop, gfc_match_oacc_host_data)
326         (gfc_match_oacc_data, gfc_match_oacc_kernels)
327         (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
328         (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
329         (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
330         prototypes.
331         * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
332         (gfc_free_omp_clauses): Update for members added to struct
333         gfc_omp_clauses.
334         (gfc_match_omp_clauses): Change mask paramter to uint64_t.  Add
335         openacc parameter.
336         (resolve_omp_clauses): Add openacc parameter.  Update for OpenACC.
337         (struct fortran_omp_context): Add is_openmp member.
338         (gfc_resolve_omp_parallel_blocks): Initialize it.
339         (gfc_resolve_do_iterator): Update for OpenACC.
340         (gfc_resolve_omp_directive): Call
341         resolve_omp_directive_inside_oacc_region.
342         (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
343         (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
344         (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
345         (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
346         (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
347         (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
348         (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
349         (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
350         (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
351         (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
352         (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
353         (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
354         (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
355         (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
356         (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
357         (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
358         (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
359         (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
360         (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
361         (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
362         (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
363         (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
364         (gfc_match_omp_clauses): Handle those.
365         (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
366         (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
367         (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
368         (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
369         (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
370         (OACC_WAIT_CLAUSES): New macros.
371         (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
372         (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
373         (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
374         (gfc_match_oacc_kernels, gfc_match_oacc_data)
375         (gfc_match_oacc_host_data, gfc_match_oacc_loop)
376         (gfc_match_oacc_declare, gfc_match_oacc_update)
377         (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
378         (gfc_match_oacc_wait, gfc_match_oacc_cache)
379         (gfc_match_oacc_routine, oacc_is_loop)
380         (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
381         (check_symbol_not_pointer, check_array_not_assumed)
382         (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
383         (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
384         (omp_code_to_statement, oacc_code_to_statement)
385         (resolve_oacc_directive_inside_omp_region)
386         (resolve_omp_directive_inside_oacc_region)
387         (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
388         (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
389         (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
390         (gfc_resolve_oacc_directive): New functions.
391         * parse.c (next_free): Update for OpenACC.  Move some code into...
392         (verify_token_free): ... this new function.
393         (next_fixed): Update for OpenACC.  Move some code into...
394         (verify_token_fixed): ... this new function.
395         (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
396         ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
397         (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
398         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
399         ST_OACC_KERNELS_LOOP.
400         (case_decl): Add ST_OACC_ROUTINE.
401         (push_state, parse_critical_block, parse_progunit): Update for
402         OpenACC.
403         (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
404         ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
405         ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
406         ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
407         ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
408         ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
409         ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
410         ST_OACC_ROUTINE.
411         (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
412         (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
413         ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
414         ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
415         (decode_oacc_directive, parse_oacc_structured_block)
416         (parse_oacc_loop, is_oacc): New functions.
417         * parse.h (struct gfc_state_data): Add oacc_declare_clauses
418         member.
419         (is_oacc): New prototype.
420         * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
421         EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
422         EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
423         EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
424         EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
425         EXEC_OACC_EXIT_DATA.
426         (resolve_codes): Call gfc_resolve_oacc_declare.
427         * scanner.c (openacc_flag, openacc_locus): New variables.
428         (skip_free_comments): Update for OpenACC.  Move some code into...
429         (skip_omp_attribute): ... this new function.
430         (skip_oacc_attribute): New function.
431         (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
432         * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
433         EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
434         EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
435         EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
436         EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
437         * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
438         * trans-openmp.c: Include "gomp-constants.h".
439         (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
440         instead of OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
441         (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
442         OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
443         OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
444         OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
445         OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
446         independent, wait_list, num_gangs_expr, num_workers_expr,
447         vector_length_expr, vector, vector_expr, worker, worker_expr,
448         gang, gang_expr members.
449         (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
450         (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
451         (gfc_trans_oacc_executable_directive)
452         (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
453         (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
454         * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
455         * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
456         New prototypes.
457         * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
458         EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
459         EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
460         EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
461         EXEC_OACC_EXIT_DATA.
462         * gfortran.texi: Update for OpenACC.
463         * intrinsic.texi: Likewise.
464         * invoke.texi: Likewise.
466 2015-01-15  Janus Weil  <janus@gcc.gnu.org>
468         PR fortran/58023
469         * resolve.c (resolve_fl_derived0): Continue resolving next component
470         after error.
472 2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
474         PR fortran/61933
475         * io.c (gfc_match_inquire): Generate error if unit number in
476         inquire statement is a constant -1.  All other values allowed.
477         * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
478         (create_dummy_iostat): Delete function no longer used.
480 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
482         PR fortran/64528
483         * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
484         on dummy args with VALUE attribute.
486 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
488         PR fortran/63733
489         * interface.c (gfc_extend_expr): Look for type-bound operators before
490         non-typebound ones.
492 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
494         PR fortran/58023
495         * resolve.c (resolve_fl_derived0): Set error flag if problems with the
496         interface of a procedure-pointer component were detected.
498 2015-01-11  Janus Weil  <janus@gcc.gnu.org>
500         PR fortran/64508
501         * interface.c (compare_parameter): Interface check for
502         procedure-pointer component as actual argument.
504 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
506         * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
507         Runtime Library" to "GNU Offloading and Multi Processing Runtime
508         Library".
509         * intrinsic.texi: Likewise.
511 2015-01-10  Tobias Burnus  <burnus@net-b.de>
513         PR fortran/64522
514         * invoke.texi (Wline-truncation): Document new behaviour.
515         * lang.opt (Wline-truncation): Add Init(-1).
516         * options.c (gfc_post_options): If -Wline-truncation is unset,
517         enable it for free-form source files; for the latter, also use
518         -Werror=line-truncation, unless -Wno-error has been specified.
520 2015-01-09  Michael Collison  <michael.collison@linaro.org>
522         * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
523         input.h, alias.h, symtab.h, options.h, fold-const.h,
524         wide-int.h, and inchash.h due to flattening of tree.h.
525         * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
526         input.h, alias.h, symtab.h, fold-const.h,
527         wide-int.h, and inchash.h due to flattening of tree.h.
528         * decl.c: Ditto.
529         * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
530         input.h, alias.h, symtab.h, options.h, fold-const.h,
531         wide-int.h, and inchash.h due to flattening of tree.h.
532         * iresolve.c: Ditto.
533         * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
534         input.h, alias.h, symtab.h, fold-const.h,
535         wide-int.h, and inchash.h due to flattening of tree.h.
536         * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
537         input.h, alias.h, symtab.h, options.h, fold-const.h,
538         wide-int.h, and inchash.h due to flattening of tree.h.
539         * options.c: Ditto.
540         * target-memory.c: Include hash-set.h, vec.h,
541         double-int.h, input.h, alias.h, symtab.h, fold-const.h,
542         wide-int.h, and inchash.h due to flattening of tree.h.
543         * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
544         input.h, alias.h, symtab.h, options.h, fold-const.h,
545         wide-int.h, and inchash.h due to flattening of tree.h.
546         * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
547         input.h, alias.h, symtab.h, options.h, fold-const.h,
548         wide-int.h, and inchash.h due to flattening of tree.h.
549         * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
550         input.h, alias.h, symtab.h, fold-const.h,
551         wide-int.h, and inchash.h due to flattening of tree.h.
552         * trans-const.c: Ditto.
553         * trans-decl.c: Ditto.
554         * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
555         input.h, alias.h, symtab.h, options.h, fold-const.h,
556         wide-int.h, and inchash.h due to flattening of tree.h.
557         * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
558         input.h, alias.h, symtab.h, fold-const.h,
559         wide-int.h, inchash.h and real.h due to flattening of tree.h.
560         * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
561         input.h, alias.h, symtab.h, options.h, fold-const.h,
562         wide-int.h, and inchash.h due to flattening of tree.h.
563         * trans-openmp.c: Ditto.
564         * trans-stmt.c: Ditto.
565         * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
566         input.h, alias.h, symtab.h, fold-const.h,
567         wide-int.h, inchash.h and real.h due to flattening of tree.h.
569 2015-01-08  Tobias Burnus  <burnus@net-b.de>
571         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
572         for module coarrays with -fcoarray=lib.
573         (get_proc_pointer_decl): As module variable, make only public
574         when not marked as private.
576 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
578         PR fortran/47674
579         * dependency.h:  Actually commit changes.
581 2015-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
583         PR fortran/47674
584         * dependency.c:  Update copyright years.
585         (gfc_discard_nops):  Add prototype.
586         * dependency.c (discard_nops):  Rename to gfc_discard_nops,
587         make non-static.
588         (gfc_discard_nops):  Use gfc_discard_nops.
589         (gfc_dep_difference):  Likewise.
590         * frontend-passes.c  Update copyright years.
591         (realloc_strings):  New function.  Add prototype.
592         (gfc_run_passes):  Call realloc_strings.
593         (realloc_string_callback):  New function.
594         (create_var):  Add prototype.  Handle case of a
595         scalar character variable.
596         (optimize_trim):  Do not handle allocatable variables.
598 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
600         Update copyright years.
602         * gfortranspec.c (lang_specific_driver): Update copyright notice
603         dates.
604         * gfc-internals.texi: Bump @copying's copyright year.
605         * gfortran.texi: Ditto.
606         * intrinsic.texi: Ditto.
607         * invoke.texi: Ditto.
609 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
611         PR fortran/57562
612         * expr.c (find_component_ref): Deal with extended types.
614 2015-01-02  Tobias Burnus  <burnus@net-b.de>
616         * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
617         for module coarrays with -fcoarray=lib.
619 2015-01-02  Janus Weil  <janus@gcc.gnu.org>
621         PR fortran/60507
622         * interface.c (is_procptr_result): New function to check if an
623         expression is a procedure-pointer result.
624         (compare_actual_formal): Use it.
626 Copyright (C) 2015 Free Software Foundation, Inc.
628 Copying and distribution of this file, with or without modification,
629 are permitted in any medium without royalty provided the copyright
630 notice and this notice are preserved.