* gcc.dg/atomic/c11-atomic-exec-5.c (dg-additional-options): Use
[official-gcc.git] / gcc / fortran / ChangeLog
blobc33936b36640c753adf73441c9cdf740818200b9
1 2014-06-15  Tobias Burnus  <burnus@net-b.de>
3         * symbol.c (check_conflict): Add codimension conflict with
4         pointer; fix cray-pointee check.
7 2014-06-14  Tobias Burnus  <burnus@net-b.de>
9         * trans-intrinsic.c (conv_intrinsic_atomic_ref): Fix handling
10         for kind mismatch with -fcoarray=lib.
12 2014-07-12  Paul Thomas  <pault@gcc.gnu.org>
14         PR fortran/61780
15         * dependency.c (gfc_dep_resolver): Index the 'reverse' array so
16         that elements are skipped. This then correctly aligns 'reverse'
17         with the scalarizer loops.
19 2014-07-12  Tobias Burnus  <burnus@net-b.de>
21         PR fortran/61628
22         * trans-types.c (gfc_init_types): Fix data-type bug
23         with gfc_max_array_element_size.
25 2014-07-12  Tobias Burnus  <burnus@net-b.de>
27         * libgfortran.h (libcaf_atomic_codes): Add.
28         * trans-decl.c (gfor_fndecl_caf_atomic_def,
29         gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
30         gfor_fndecl_caf_atomic_op): New variables.
31         (gfc_build_builtin_function_decls): Initialize them.
32         * trans.h (gfor_fndecl_caf_atomic_def,
33         gfor_fndecl_caf_atomic_ref, gfor_fndecl_caf_atomic_cas,
34         gfor_fndecl_caf_atomic_op): New variables.
35         * trans-intrinsic.c (conv_intrinsic_atomic_op,
36         conv_intrinsic_atomic_ref, conv_intrinsic_atomic_cas):
37         Add library calls with -fcoarray=lib.
39 2014-07-12  Tobias Burnus  <burnus@net-b.de>
41         * check.c (gfc_check_atomic): Update for STAT=.
42         (gfc_check_atomic_def, gfc_check_atomic_ref): Update call.
43         (gfc_check_atomic_op, gfc_check_atomic_cas,
44         gfc_check_atomic_fetch_op): New.
45         * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, GFC_ISYM_ATOMIC_ADD,
46         GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR,
47         GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND,
48         GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR.
49         * intrinsic.c (add_subroutines): Handle them.
50         * intrinsic.texi: Add documentation for them.
51         (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=.
52         (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE.
53         * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas,
54         gfc_check_atomic_fetch_op): New
55         prototypes.
56         * libgfortran.h (libgfortran_stat_codes): Add GFC_STAT_FAILED_IMAGE.
57         * iso-fortran-env.def: Add it.
58         * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from
59         conv_intrinsic_atomic_ref; handle more atomics.
60         (conv_intrinsic_atomic_def): Handle STAT=.
61         (conv_intrinsic_atomic_cas): New.
62         (gfc_conv_intrinsic_subroutine): Handle new atomics.
64 2014-07-09  Bernd Schmidt  <bernds@codesourcery.com>
66         * trans-array.c (gfc_build_constant_array_constructor): Build a
67         static decl manually.
68         * trans-decl.c (create_main_function): Likewise.
70 2014-07-07  Paul Thomas  <pault@gcc.gnu.org>
72         PR fortran/61459
73         PR fortran/58883
74         * trans-expr.c (fcncall_realloc_result): Use the natural type
75         for the address expression of 'res_desc'.
77 2014-07-07  Gerald Pfeifer  <gerald@pfeifer.com>
79         * gfortran.texi (Fortran 2003 status): Fix grammar.
81 2014-07-04  Tobias Burnus  <burnus@net-b.de>
83         * resolve.c (resolve_assoc_var): Fix corank setting.
84         * trans-array.c (gfc_conv_descriptor_token): Change assert.
85         for select-type temporaries.
86         * trans-decl.c (generate_coarray_sym_init): Skip for
87         attr.select_type_temporary.
88         * trans-expr.c (gfc_conv_procedure_call): Fix for
89         select-type temporaries.
90         * trans-intrinsic.c (get_caf_token_offset): Ditto.
91         (gfc_conv_intrinsic_caf_get, gfc_conv_intrinsic_caf_send): Set
92         the correct dtype.
93         * trans-types.h (gfc_get_dtype_rank_type): New.
94         * trans-types.c (gfc_get_dtype_rank_type): Ditto.
96 2014-07-03  Tobias Burnus  <burnus@net-b.de>
98         * scanner.c (skip_free_comments): Fix indentation.
100 2014-07-02  Jakub Jelinek  <jakub@redhat.com>
101             Fritz Reese  <Reese-Fritz@zai.com>
103         * decl.c (variable_decl): Reject old style initialization
104         for derived type components.
106 2014-06-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
108         PR fortran/36275
109         PR fortran/38839
110         * decl.c (check_bind_name_identifier): New function.
111         (gfc_match_bind_c): Match any constant expression as binding
112         label.
113         * match.c (gfc_match_name_C): Remove.
115 2014-06-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
117         PR fortran/29383
118         * gfortran.h (gfc_simplify_ieee_selected_real_kind): New prototype.
119         * libgfortran.h (GFC_FPE_*): Use simple integer values, valid in
120         both C and Fortran.
121         * expr.c (gfc_check_init_expr): Simplify IEEE_SELECTED_REAL_KIND.
122         * simplify.c (gfc_simplify_ieee_selected_real_kind): New function.
123         * module.c (mio_symbol): Keep track of symbols which came from
124         intrinsic modules.
125         (gfc_use_module): Keep track of the IEEE modules.
126         * trans-decl.c (gfc_get_symbol_decl): Adjust code since
127         we have new intrinsic modules.
128         (gfc_build_builtin_function_decls): Build decls for
129         ieee_procedure_entry and ieee_procedure_exit.
130         (is_from_ieee_module, is_ieee_module_used, save_fp_state,
131         restore_fp_state): New functions.
132         (gfc_generate_function_code): Save and restore floating-point
133         state on procedure entry/exit, when IEEE modules are used.
134         * intrinsic.texi: Document the IEEE modules.
136 2014-06-25  Tobias Burnus  <burnus@net-b.de>
138         * interface.c (check_intents): Fix diagnostic with
139         coindexed coarrays.
141 2014-06-25  Tobias Burnus  <burnus@net-b.de>
143         * resolve.c (resolve_ordinary_assign): Don't invoke caf_send
144         when assigning a coindexed RHS scalar to a noncoindexed LHS
145         array.
146         * trans-intrinsic.c (conv_caf_send): Do numeric type conversion
147         for a noncoindexed scalar RHS.
149 2014-06-25  Tobias Burnus  <burnus@net-b.de>
151         * check.c (check_co_minmaxsum): Add definable check.
152         * expr.c (gfc_check_vardef_context): Fix context == NULL case.
153         * trans-expr.c (get_scalar_to_descriptor_type): Handle pointer
154         arguments.
155         * trans-intrinsic.c (gfc_conv_intrinsic_caf_get): Fix generation of
156         temporary strings.
158 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
160         * trans.h (gfc_omp_clause_linear_ctor): New prototype.
161         * trans-openmp.c (gfc_omp_linear_clause_add_loop,
162         gfc_omp_clause_linear_ctor): New functions.
163         (gfc_trans_omp_clauses): Make sure OMP_CLAUSE_LINEAR_STEP has
164         correct type.  Set OMP_CLAUSE_LINEAR_ARRAY flag if needed.
165         * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Redefine.
167 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
169         * dump-parse-tree.c (show_omp_namelist): Use n->udr->udr instead
170         of n->udr.
171         * f95-lang.c (gfc_init_builtin_functions): Initialize
172         BUILT_IN_ASSUME_ALIGNED.
173         * gfortran.h (gfc_omp_namelist): Change udr field type to
174         struct gfc_omp_namelist_udr.
175         (gfc_omp_namelist_udr): New type.
176         (gfc_get_omp_namelist_udr): Define.
177         (gfc_resolve_code): New prototype.
178         * match.c (gfc_free_omp_namelist): Free name->udr.
179         * module.c (intrinsics): Add INTRINSIC_USER.
180         (fix_mio_expr): Likewise.
181         (mio_expr): Handle INSTRINSIC_USER and non-resolved EXPR_FUNCTION.
182         * openmp.c (gfc_match_omp_clauses): Adjust initialization of n->udr.
183         (gfc_match_omp_declare_reduction): Treat len=: the same as len=*.
184         Set attr.flavor on omp_{out,in,priv,orig} artificial variables.
185         (struct resolve_omp_udr_callback_data): New type.
186         (resolve_omp_udr_callback, resolve_omp_udr_callback2,
187         resolve_omp_udr_clause): New functions.
188         (resolve_omp_clauses): Adjust for n->udr changes, resolve UDR clauses
189         here.
190         (omp_udr_callback): Don't check for implicitly declared functions
191         here.
192         (gfc_resolve_omp_udr): Don't call gfc_resolve.  Don't check for
193         implicitly declared subroutines here.
194         * resolve.c (resolve_function): If value.function.isym is non-NULL,
195         consider it already resolved.
196         (resolve_code): Renamed to ...
197         (gfc_resolve_code): ... this.  No longer static.
198         (gfc_resolve_blocks, generate_component_assignments, resolve_codes):
199         Adjust callers.
200         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
201         by reference type (C_PTR) variables.
202         (gfc_omp_finish_clause): Make sure OMP_CLAUSE_SIZE is non-NULL.
203         (gfc_trans_omp_udr_expr): Remove.
204         (gfc_trans_omp_array_reduction_or_udr): Adjust for n->udr changes.
205         Don't call gfc_trans_omp_udr_expr, even for sym->attr.dimension
206         expand it as assignment or subroutine call.  Don't initialize
207         value.function.isym.
209 2014-06-23  Tobias Burnus  <burnus@net-b.de>
211         * trans-decl.c (gfc_trans_deferred_vars): Fix handling of
212         explicit-size arrays with -fcoarray=lib.
214 2014-06-20  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
216         PR fortran/33363
217         * invoke.texi: Don't mention nonexisting -fcase-lower option.
219 2014-06-19  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
221         PR fortran/61454
222         * expr.c (scalarize_intrinsic_call): Take care of optional
223         arguments.
225 2014-06-19  Tobias Burnus  <burnus@net-b.de>
227         * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
228         passing.
230 2014-06-18  Tobias Burnus  <burnus@net-b.de>
232         * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
233         * intrinsic.texi (OpenMP Modules): Ditto.
235 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
237         * cpp.c (cpp_define_builtins): Change _OPENMP macro to
238         201307.
239         * dump-parse-tree.c (show_omp_namelist): Add list_type
240         argument.  Adjust for rop being u.reduction_op now,
241         handle depend_op or map_op.
242         (show_omp_node): Adjust callers.  Print some new
243         OpenMP 4.0 clauses, adjust for OMP_LIST_DEPEND_{IN,OUT}
244         becoming a single OMP_LIST_DEPEND.
245         * f95-lang.c (gfc_handle_omp_declare_target_attribute): New
246         function.
247         (gfc_attribute_table): New variable.
248         (LANG_HOOKS_OMP_FINISH_CLAUSE, LANG_HOOKS_ATTRIBUTE_TABLE): Redefine.
249         * frontend-passes.c (gfc_code_walker): Handle new OpenMP target
250         EXEC_OMP_* codes and new clauses.
251         * gfortran.h (gfc_statement): Add ST_OMP_TARGET, ST_OMP_END_TARGET,
252         ST_OMP_TARGET_DATA, ST_OMP_END_TARGET_DATA, ST_OMP_TARGET_UPDATE,
253         ST_OMP_DECLARE_TARGET, ST_OMP_TEAMS, ST_OMP_END_TEAMS,
254         ST_OMP_DISTRIBUTE, ST_OMP_END_DISTRIBUTE, ST_OMP_DISTRIBUTE_SIMD,
255         ST_OMP_END_DISTRIBUTE_SIMD, ST_OMP_DISTRIBUTE_PARALLEL_DO,
256         ST_OMP_END_DISTRIBUTE_PARALLEL_DO, ST_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
257         ST_OMP_END_DISTRIBUTE_PARALLEL_DO_SIMD, ST_OMP_TARGET_TEAMS,
258         ST_OMP_END_TARGET_TEAMS, ST_OMP_TEAMS_DISTRIBUTE,
259         ST_OMP_END_TEAMS_DISTRIBUTE, ST_OMP_TEAMS_DISTRIBUTE_SIMD,
260         ST_OMP_END_TEAMS_DISTRIBUTE_SIMD, ST_OMP_TARGET_TEAMS_DISTRIBUTE,
261         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE,
262         ST_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
263         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_SIMD,
264         ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
265         ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO,
266         ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
267         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
268         ST_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
269         ST_OMP_END_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
270         ST_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
271         ST_OMP_END_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD.
272         (symbol_attribute): Add omp_declare_target field.
273         (gfc_omp_depend_op, gfc_omp_map_op): New enums.
274         (gfc_omp_namelist): Replace rop field with union
275         containing reduction_op, depend_op and map_op.
276         (OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): Remove.
277         (OMP_LIST_DEPEND, OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM): New.
278         (gfc_omp_clauses): Add num_teams, device, thread_limit,
279         dist_sched_kind, dist_chunk_size fields.
280         (gfc_common_head): Add omp_declare_target field.
281         (gfc_exec_op): Add EXEC_OMP_TARGET, EXEC_OMP_TARGET_DATA,
282         EXEC_OMP_TEAMS, EXEC_OMP_DISTRIBUTE, EXEC_OMP_DISTRIBUTE_SIMD,
283         EXEC_OMP_DISTRIBUTE_PARALLEL_DO, EXEC_OMP_DISTRIBUTE_PARALLEL_DO_SIMD,
284         EXEC_OMP_TARGET_TEAMS, EXEC_OMP_TEAMS_DISTRIBUTE,
285         EXEC_OMP_TEAMS_DISTRIBUTE_SIMD, EXEC_OMP_TARGET_TEAMS_DISTRIBUTE,
286         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_SIMD,
287         EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO,
288         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO,
289         EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD,
290         EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO_SIMD and
291         EXEC_OMP_TARGET_UPDATE.
292         (gfc_add_omp_declare_target): New prototype.
293         * match.h (gfc_match_omp_declare_target, gfc_match_omp_distribute,
294         gfc_match_omp_distribute_parallel_do,
295         gfc_match_omp_distribute_parallel_do_simd,
296         gfc_match_omp_distribute_simd, gfc_match_omp_target,
297         gfc_match_omp_target_data, gfc_match_omp_target_teams,
298         gfc_match_omp_target_teams_distribute,
299         gfc_match_omp_target_teams_distribute_parallel_do,
300         gfc_match_omp_target_teams_distribute_parallel_do_simd,
301         gfc_match_omp_target_teams_distribute_simd,
302         gfc_match_omp_target_update, gfc_match_omp_teams,
303         gfc_match_omp_teams_distribute,
304         gfc_match_omp_teams_distribute_parallel_do,
305         gfc_match_omp_teams_distribute_parallel_do_simd,
306         gfc_match_omp_teams_distribute_simd): New prototypes.
307         * module.c (ab_attribute): Add AB_OMP_DECLARE_TARGET.
308         (attr_bits): Likewise.
309         (mio_symbol_attribute): Handle omp_declare_target attribute.
310         (gfc_free_omp_clauses): Free num_teams, device, thread_limit
311         and dist_chunk_size expressions.
312         (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
313         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN,
314         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
315         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED,
316         OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL,
317         OMP_CLAUSE_MERGEABLE, OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND,
318         OMP_CLAUSE_INBRANCH, OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH,
319         OMP_CLAUSE_PROC_BIND, OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN,
320         OMP_CLAUSE_UNIFORM): Use 1U instead of 1.
321         (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO, OMP_CLAUSE_FROM,
322         OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT,
323         OMP_CLAUSE_DIST_SCHEDULE): Define.
324         (gfc_match_omp_clauses): Change mask parameter to unsigned int.
325         Adjust for rop becoming u.reduction_op.  Disallow inbranch with
326         notinbranch.  For depend clause, always create OMP_LIST_DEPEND
327         and fill in u.depend_op.  Handle num_teams, device, map,
328         to, from, thread_limit and dist_schedule clauses.
329         (OMP_DECLARE_SIMD_CLAUSES): Or in OMP_CLAUSE_INBRANCH and
330         OMP_CLAUSE_NOTINBRANCH.
331         (OMP_TARGET_CLAUSES, OMP_TARGET_DATA_CLAUSES,
332         OMP_TARGET_UPDATE_CLAUSES, OMP_TEAMS_CLAUSES,
333         OMP_DISTRIBUTE_CLAUSES): Define.
334         (match_omp): New function.
335         (gfc_match_omp_do, gfc_match_omp_do_simd, gfc_match_omp_parallel,
336         gfc_match_omp_parallel_do, gfc_match_omp_parallel_do_simd,
337         gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
338         gfc_match_omp_sections, gfc_match_omp_simd, gfc_match_omp_single,
339         gfc_match_omp_task): Rewritten using match_omp.
340         (gfc_match_omp_threadprivate, gfc_match_omp_declare_reduction):
341         Diagnose if the directives are followed by unexpected junk.
342         (gfc_match_omp_distribute, gfc_match_omp_distribute_parallel_do,
343         gfc_match_omp_distribute_parallel_do_simd,
344         gfc_match_omp_distrbute_simd, gfc_match_omp_declare_target,
345         gfc_match_omp_target, gfc_match_omp_target_data,
346         gfc_match_omp_target_teams, gfc_match_omp_target_teams_distribute,
347         gfc_match_omp_target_teams_distribute_parallel_do,
348         gfc_match_omp_target_teams_distribute_parallel_do_simd,
349         gfc_match_omp_target_teams_distrbute_simd, gfc_match_omp_target_update,
350         gfc_match_omp_teams, gfc_match_omp_teams_distribute,
351         gfc_match_omp_teams_distribute_parallel_do,
352         gfc_match_omp_teams_distribute_parallel_do_simd,
353         gfc_match_omp_teams_distrbute_simd): New functions.
354         * openmp.c (resolve_omp_clauses): Adjust for
355         OMP_LIST_DEPEND_{IN,OUT} being changed to OMP_LIST_DEPEND.  Handle
356         OMP_LIST_MAP, OMP_LIST_FROM, OMP_LIST_TO, num_teams, device,
357         dist_chunk_size and thread_limit.
358         (gfc_resolve_omp_parallel_blocks): Only put sharing clauses into
359         ctx.sharing_clauses.  Call gfc_resolve_omp_do_blocks for various
360         new EXEC_OMP_* codes.
361         (resolve_omp_do): Handle various new EXEC_OMP_* codes.
362         (gfc_resolve_omp_directive): Likewise.
363         (gfc_resolve_omp_declare_simd): Add missing space to diagnostics.
364         * parse.c (decode_omp_directive): Handle parsing of OpenMP 4.0
365         offloading related directives.
366         (case_executable): Add ST_OMP_TARGET_UPDATE.
367         (case_exec_markers): Add ST_OMP_TARGET*, ST_OMP_TEAMS*,
368         ST_OMP_DISTRIBUTE*.
369         (case_decl): Add ST_OMP_DECLARE_TARGET.
370         (gfc_ascii_statement): Handle new ST_OMP_* codes.
371         (parse_omp_do): Handle various new ST_OMP_* codes.
372         (parse_executable): Likewise.
373         * resolve.c (gfc_resolve_blocks): Handle various new EXEC_OMP_*
374         codes.
375         (resolve_code): Likewise.
376         (resolve_symbol): Change that !$OMP DECLARE TARGET variables
377         are saved.
378         * st.c (gfc_free_statement): Handle various new EXEC_OMP_* codes.
379         * symbol.c (check_conflict): Check omp_declare_target conflicts.
380         (gfc_add_omp_declare_target): New function.
381         (gfc_copy_attr): Copy omp_declare_target.
382         * trans.c (trans_code): Handle various new EXEC_OMP_* codes.
383         * trans-common.c (build_common_decl): Add "omp declare target"
384         attribute if needed.
385         * trans-decl.c (add_attributes_to_decl): Likewise.
386         * trans.h (gfc_omp_finish_clause): New prototype.
387         * trans-openmp.c (gfc_omp_finish_clause): New function.
388         (gfc_trans_omp_reduction_list): Adjust for rop being renamed
389         to u.reduction_op.
390         (gfc_trans_omp_clauses): Adjust for OMP_LIST_DEPEND_{IN,OUT}
391         change to OMP_LIST_DEPEND and fix up depend handling.
392         Handle OMP_LIST_MAP, OMP_LIST_TO, OMP_LIST_FROM, num_teams,
393         thread_limit, device, dist_chunk_size and dist_sched_kind.
394         (gfc_trans_omp_do): Handle EXEC_OMP_DISTRIBUTE.
395         (GFC_OMP_SPLIT_DISTRIBUTE, GFC_OMP_SPLIT_TEAMS,
396         GFC_OMP_SPLIT_TARGET, GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_DISTRIBUTE,
397         GFC_OMP_MASK_TEAMS, GFC_OMP_MASK_TARGET, GFC_OMP_MASK_NUM): New.
398         (gfc_split_omp_clauses): Handle splitting of clauses for new
399         EXEC_OMP_* codes.
400         (gfc_trans_omp_do_simd): Add pblock argument, adjust for being
401         callable for combined constructs.
402         (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_do_simd): Likewise.
403         (gfc_trans_omp_distribute, gfc_trans_omp_teams,
404         gfc_trans_omp_target, gfc_trans_omp_target_data,
405         gfc_trans_omp_target_update): New functions.
406         (gfc_trans_omp_directive): Adjust gfc_trans_omp_* callers, handle
407         new EXEC_OMP_* codes.
409 2014-06-18  Tobias Burnus  <burnus@net-b.de>
411         PR fortran/61126
412         * invoke.texi (-Wunused-parameter): Make clearer when
413         -Wextra implies this option.
415 2014-06-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
417         PR fortran/61126
418         * options.c (gfc_handle_option): Remove call to
419         handle_generated_option.
421 2014-06-17  Tobias Burnus  <burnus@net-b.de>
423         * check.c (gfc_check_atomic, gfc_check_atomic_def):
424         Use argument for GFC_ISYM_CAF_GET.
425         * resolve.c (resolve_variable): Enable CAF_GET insertion.
426         (resolve_lock_unlock): Remove GFC_ISYM_CAF_GET.
427         (resolve_ordinary_assign): Enable CAF_SEND insertion.
428         * trans-const.c (gfc_build_string_const,
429         gfc_build_wide_string_const): Set TYPE_STRING_FLAG.
430         * trans-decl.c (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
431         gfor_fndecl_caf_sendget): New global variables.
432         (gfc_build_builtin_function_decls): Initialize them;
433         update co_min/max/sum initialization.
434         * trans-expr.c (gfc_get_tree_for_caf_expr): Renamed from
435         get_tree_for_caf_expr and removed static.
436         (gfc_conv_procedure_call): Update call.
437         * trans-intrinsic.c (caf_get_image_index,
438         conv_caf_vector_subscript_elem, conv_caf_vector_subscript,
439         get_caf_token_offset, gfc_conv_intrinsic_caf_get,
440         conv_caf_send): New.
441         (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine,
442         gfc_walk_intrinsic_function): Handle CAF_GET and CAF_SEND.
443         (conv_co_minmaxsum): Update call for remove unused vector
444         subscript.
445         (conv_intrinsic_atomic_def, conv_intrinsic_atomic_ref):
446         Skip a CAF_GET of the argument.
447         * trans-types.c (gfc_get_caf_vector_type): New.
448         * trans-types.h (gfc_get_caf_vector_type): New.
449         * trans.h (gfor_fndecl_caf_get, gfor_fndecl_caf_send,
450         gfor_fndecl_caf_sendget): New global variables.
451         (gfc_get_tree_for_caf_expr): New prototypes.
453 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
455         * trans-common.c (build_common_decl): Use
456         set_decl_tls_model.
457         * trans-decl.c (gfc_finish_var_decl): Likewise.
458         (get_proc_pointer_decl): Likewise.
460 2014-06-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
462         PR fortran/28484
463         PR fortran/61429
464         * check.c (gfc_check_system_clock): Improve checking of arguments.
465         * intrinsic.texi: Update doc of SYSTEM_CLOCK.
466         * iresolve.c (gfc_resolve_system_clock): Choose library function
467         used depending on argument kinds.
468         * trans-decl.c (gfc_build_intrinsic_function_decls): Build
469         decls for system_clock_4 and system_clock_8.
470         * trans-intrinsic.c (conv_intrinsic_system_clock): New function.
471         (gfc_conv_intrinsic_subroutine): Call conv_intrinsic_system_clock.
472         * trans.h (gfor_fndecl_system_clock4, gfor_fndecl_system_clock8):
473         New variables.
475 2014-06-12  Tobias Burnus  <burnus@net-b.de>
477         * gfortran.h (gfc_copy_formal_args_intr): Update prototype.
478         * symbol.c (gfc_copy_formal_args_intr): Handle the case
479         that absent optional arguments should be ignored.
480         * trans-intrinsic.c (gfc_get_symbol_for_expr): Ditto.
481         (gfc_conv_intrinsic_funcall,
482         conv_generic_with_optional_char_arg): Update call.
483         * resolve.c (gfc_resolve_intrinsic): Ditto.
485 2014-06-10  Dominique d'Humieres <dominiq@lps.ens.fr>
486             Mikael Morin <mikael@gcc.gnu.org>
488         PR fortran/41936
489         * trans-expr.c (gfc_conv_expr_reference): Deallocate array
490         components.
492 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
494         PR fortran/60928
495         * f95-lang.c (gfc_init_builtin_functions): Handle -fopenmp-simd
496         like -fopenmp.
497         * openmp.c (resolve_omp_clauses): Remove allocatable components
498         diagnostics.  Add associate-name and intent(in) pointer
499         diagnostics for various clauses, diagnose procedure pointers in
500         reduction clause.
501         * parse.c (match_word_omp_simd): New function.
502         (matchs, matcho): New macros.
503         (decode_omp_directive): Change match macros to either matchs
504         or matcho.  Handle -fopenmp-simd.
505         (next_free, next_fixed): Handle -fopenmp-simd like -fopenmp.
506         * scanner.c (skip_free_comments, skip_fixed_comments, include_line):
507         Likewise.
508         * trans-array.c (get_full_array_size): Rename to...
509         (gfc_full_array_size): ... this.  No longer static.
510         (duplicate_allocatable): Adjust caller.  Add NO_MEMCPY argument
511         and handle it.
512         (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Adjust
513         duplicate_allocatable callers.
514         (gfc_duplicate_allocatable_nocopy): New function.
515         (structure_alloc_comps): Adjust g*_full_array_size and
516         duplicate_allocatable caller.
517         * trans-array.h (gfc_full_array_size,
518         gfc_duplicate_allocatable_nocopy): New prototypes.
519         * trans-common.c (create_common): Call gfc_finish_decl_attrs.
520         * trans-decl.c (gfc_finish_decl_attrs): New function.
521         (gfc_finish_var_decl, create_function_arglist,
522         gfc_get_fake_result_decl): Call it.
523         (gfc_allocate_lang_decl): If DECL_LANG_SPECIFIC is already allocated,
524         don't allocate it again.
525         (gfc_get_symbol_decl): Set GFC_DECL_ASSOCIATE_VAR_P on
526         associate-names.
527         * trans.h (gfc_finish_decl_attrs): New prototype.
528         (struct lang_decl): Add scalar_allocatable and scalar_pointer
529         bitfields.
530         (GFC_DECL_SCALAR_ALLOCATABLE, GFC_DECL_SCALAR_POINTER,
531         GFC_DECL_GET_SCALAR_ALLOCATABLE, GFC_DECL_GET_SCALAR_POINTER,
532         GFC_DECL_ASSOCIATE_VAR_P): Define.
533         (GFC_POINTER_TYPE_P): Remove.
534         * trans-openmp.c (gfc_omp_privatize_by_reference): Don't check
535         GFC_POINTER_TYPE_P, instead test GFC_DECL_GET_SCALAR_ALLOCATABLE,
536         GFC_DECL_GET_SCALAR_POINTER or GFC_DECL_CRAY_POINTEE on decl.
537         (gfc_omp_predetermined_sharing): Associate-names are predetermined.
538         (enum walk_alloc_comps): New.
539         (gfc_has_alloc_comps, gfc_omp_unshare_expr_r, gfc_omp_unshare_expr,
540         gfc_walk_alloc_comps): New functions.
541         (gfc_omp_private_outer_ref): Return true for scalar allocatables or
542         decls with allocatable components.
543         (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,
544         gfc_omp_clause_assign_op, gfc_omp_clause_dtor): Fix up handling of
545         allocatables, handle also OMP_CLAUSE_REDUCTION, handle scalar
546         allocatables and decls with allocatable components.
547         (gfc_trans_omp_array_reduction_or_udr): Don't handle allocatable
548         arrays here.
549         (gfc_trans_omp_reduction_list): Call
550         gfc_trans_omp_array_reduction_or_udr even for allocatable scalars.
551         (gfc_trans_omp_do_simd): If -fno-openmp, just expand it as OMP_SIMD.
552         (gfc_trans_omp_parallel_do_simd): Likewise.
553         * trans-types.c (gfc_sym_type): Don't set GFC_POINTER_TYPE_P.
554         (gfc_get_derived_type): Call gfc_finish_decl_attrs.
556 2014-06-09  Paul Thomas  <pault@gcc.gnu.org>
558         PR fortran/61406
559         * trans-stmt.c (trans_associate_var): Check that array
560         constructors are constant for direct reference.
562 2014-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
564         PR fortran/36096
565         * intrinsic.texi: Fix documentation of BESSEL_J0, BESSEL_J1,
566         BESSEL_Y0, and BESSEL_Y1.
568 2014-06-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
570         PR fortran/45187
571         * trans-decl.c (gfc_create_module_variable): Don't create
572         Cray-pointee decls twice.
574 2014-06-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
576         * io.c (resolve_tag): Warn on non-default kind for NUMBER,
577         NEXTREC, RECL, NAMED, OPENED and PENDING I/O specifiers.
579 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
581         * dump-parse-tree.c (show_omp_namelist): Dump reduction
582         id in each list item.
583         (show_omp_node): Only handle OMP_LIST_REDUCTION, not
584         OMP_LIST_REDUCTION_FIRST .. OMP_LIST_REDUCTION_LAST.  Don't
585         dump reduction id here.
586         * frontend-passes.c (dummy_code_callback): Renamed to...
587         (gfc_dummy_code_callback): ... this.  No longer static.
588         (optimize_reduction): Use gfc_dummy_code_callback instead of
589         dummy_code_callback.
590         * gfortran.h (gfc_statement): Add ST_OMP_DECLARE_REDUCTION.
591         (symbol_attribute): Add omp_udr_artificial_var bitfield.
592         (gfc_omp_reduction_op): New enum.
593         (gfc_omp_namelist): Add rop and udr fields.
594         (OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
595         OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
596         OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
597         OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST): Removed.
598         (OMP_LIST_REDUCTION): New.
599         (gfc_omp_udr): New type.
600         (gfc_get_omp_udr): Define.
601         (gfc_symtree): Add n.omp_udr field.
602         (gfc_namespace): Add omp_udr_root field, add omp_udr_ns bitfield.
603         (gfc_free_omp_udr, gfc_omp_udr_find, gfc_resolve_omp_udrs,
604         gfc_dummy_code_callback): New prototypes.
605         * match.h (gfc_match_omp_declare_reduction): New prototype.
606         * module.c (MOD_VERSION): Increase to 13.
607         (omp_declare_reduction_stmt): New array.
608         (mio_omp_udr_expr, write_omp_udr, write_omp_udrs, load_omp_udrs):
609         New functions.
610         (read_module): Read OpenMP user defined reductions.
611         (write_module): Write OpenMP user defined reductions.
612         * openmp.c: Include arith.h.
613         (gfc_free_omp_udr, gfc_find_omp_udr): New functions.
614         (gfc_match_omp_clauses): Handle user defined reductions.
615         Store reduction kind into gfc_omp_namelist instead of using
616         several OMP_LIST_* entries.
617         (match_udr_expr, gfc_omp_udr_predef, gfc_omp_udr_find,
618         gfc_match_omp_declare_reduction): New functions.
619         (resolve_omp_clauses): Adjust for reduction clauses being only
620         in OMP_LIST_REDUCTION list.  Diagnose missing UDRs.
621         (struct omp_udr_callback_data): New type.
622         (omp_udr_callback, gfc_resolve_omp_udr, gfc_resolve_omp_udrs): New
623         functions.
624         * parse.c (decode_omp_directive): Handle !$omp declare reduction.
625         (case_decl): Add ST_OMP_DECLARE_REDUCTION.
626         (gfc_ascii_statement): Print ST_OMP_DECLARE_REDUCTION.
627         * resolve.c (resolve_fl_variable): Allow len=: or len=* on
628         sym->attr.omp_udr_artificial_var symbols.
629         (resolve_types): Call gfc_resolve_omp_udrs.
630         * symbol.c (gfc_get_uop): If gfc_current_ns->omp_udr_ns,
631         use parent ns instead of gfc_current_ns.
632         (gfc_get_sym_tree): Don't insert symbols into
633         namespaces with omp_udr_ns set.
634         (free_omp_udr_tree): New function.
635         (gfc_free_namespace): Call it.
636         * trans-openmp.c (struct omp_udr_find_orig_data): New type.
637         (omp_udr_find_orig, gfc_trans_omp_udr_expr): New functions.
638         (gfc_trans_omp_array_reduction): Renamed to...
639         (gfc_trans_omp_array_reduction_or_udr): ... this.  Remove SYM
640         argument, instead pass gfc_omp_namelist pointer N.  Handle
641         user defined reductions.
642         (gfc_trans_omp_reduction_list): Remove REDUCTION_CODE argument.
643         Handle user defined reductions and reduction ops in gfc_omp_namelist.
644         (gfc_trans_omp_clauses): Adjust for just a single OMP_LIST_REDUCTION
645         list.
646         (gfc_split_omp_clauses): Likewise.
648 2014-06-05  Richard Biener  <rguenther@suse.de>
650         PR fortran/61418
651         * gfortranspec.c (spec_file): Remove.
652         (find_spec_file): Likewise.
653         (lang_specific_driver): Do not look for specs file in -L
654         or append -specs command line argument.
655         (lang_specific_pre_link): Always %:include libgfortran.spec.
657 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
659         * fortran/trans.c (trans_runtime_error_vararg): Call
660         fold_build_call_array_loc instead of fold_builtin_call_array.
662 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
664         * trans-decl.c (gfc_build_builtin_function_decls): Correct number of
665         arguments to caf_init.
667 2014-05-26  Tobias Burnus  <burnus@net-b.de>
669         * gfortran.texi (Project Status): Fix broken link.
671 2014-05-26  Janne Blomqvist  <jb@gcc.gnu.org>
673         PR libfortran/61310
674         * intrinsics.texi (CTIME): Remove mention of locale-dependent
675         behavior.
677 2014-05-26  Tobias Burnus  <burnus@net-b.de>
679         PR fortran/55117
680         * trans-io.c (nml_full_name, transfer_namelist_element): Insert
681         a '+' rather then '%' to differentiate namelist variable names
682         that are based on extended derived types.
684 2014-05-25  Tobias Burnus  <burnus@net-b.de>
686         * check.c (gfc_check_num_images): New.
687         (gfc_check_this_image): Handle distance argument.
688         * intrinsic.c (add_functions): Update this_image and num_images
689         for new distance and failed arguments.
690         * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
691         arguments.
692         * intrinsic.h (gfc_check_num_images): New.
693         (gfc_check_this_image, gfc_simplify_num_images,
694         gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
695         * iresolve.c (gfc_resolve_this_image): Handle distance argument.
696         * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
697         Handle new arguments.
698         * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
699         (gfc_conv_intrinsic_function): Update trans_num_images call.
701 2014-05-23  Tobias Burnus  <burnus@net-b.de>
703         * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
704         * gfortran.texi: Ditto.
706 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
708         * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
709         (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
710         (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
711         * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
713 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
715         * f95-lang.c (pushlevel): Adjust.
716         * trans-decl.c (gfc_allocate_lang_decl): Adjust.
717         (gfc_find_module): Likewise.
718         * trans-types.c (gfc_get_nodesc_array_type): Likewise.
719         (gfc_get_array_type_bounds): Likewise.
720         (gfc_nonrestricted_type): Likewise.
721         * trans.h: Don't use variable_size gty attribute.
723 2014-05-17  Dominique d'Humieres <dominiq@lps.ens.fr>
725         * check.c (gfc_check_fn_rc2008): move "argument" to the right
726         place.
728 2014-05-12  Tobias Burnus  <burnus@net-b.de>
730         PR fortran/60127
731         * openmp.c (resolve_omp_do): Reject do concurrent loops.
733 2014-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
735         PR fortran/60834
736         * frontend-passes.c (in_assoc_list):  New variable.
737         (optimize_namespace):  Initialize in_assoc_list
738         (combine_array_constructor): Don't try to combine
739         assoc lists.
740         (gfc_code_walker):  Keep track of in_assoc_list.
742 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
744         * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
745         ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
746         ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
747         ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
748         ST_OMP_DECLARE_SIMD.
749         (gfc_omp_namelist): New typedef.
750         (gfc_get_omp_namelist): Define.
751         (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
752         OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
753         (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
754         (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
755         Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
756         simdlen_expr fields.
757         (gfc_omp_declare_simd): New typedef.
758         (gfc_get_omp_declare_simd): Define.
759         (gfc_namespace): Add omp_declare_simd field.
760         (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
761         EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
762         EXEC_OMP_PARALLEL_DO_SIMD.
763         (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
764         and GFC_OMP_ATOMIC_SWAP.
765         (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
766         (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
767         gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
768         prototypes.
769         * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
770         * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
771         * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
772         simdlen_expr.  Use gfc_free_omp_namelist instead of
773         gfc_free_namelist.
774         (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
775         functions.
776         (gfc_match_omp_variable_list): Add end_colon, headp and
777         allow_sections arguments.  Handle parsing of array sections.
778         Use *omp_namelist* instead of *namelist* data structure and
779         functions/macros.  Allow termination at : character.
780         (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
781         OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
782         OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
783         (gfc_match_omp_clauses): Change first and needs_space variables
784         into arguments with default values.  Parse inbranch, notinbranch,
785         proc_bind, safelen, simdlen, uniform, linear, aligned and
786         depend clauses.
787         (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
788         (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
789         (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
790         (gfc_match_omp_do_simd): New function.
791         (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
792         data structure and functions/macros.
793         (gfc_match_omp_simd, gfc_match_omp_declare_simd,
794         gfc_match_omp_parallel_do_simd): New functions.
795         (gfc_match_omp_atomic): Handle seq_cst clause.  Handle atomic swap.
796         (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
797         gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
798         functions.
799         (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
800         Use *omp_namelist* instead of *namelist* data structure and
801         functions/macros.  Resolve uniform, aligned, linear, depend,
802         safelen and simdlen clauses.
803         (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
804         addition, recognize atomic swap.
805         (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
806         of gfc_namelist.  Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
807         EXEC_OMP_PARALLEL_DO.
808         (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
809         data structure and functions/macros.
810         (resolve_omp_do): Likewise.  Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
811         EXEC_OMP_PARALLEL_DO_SIMD.
812         (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
813         EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL.  Adjust
814         resolve_omp_clauses caller.
815         (gfc_resolve_omp_declare_simd): New function.
816         * parse.c (decode_omp_directive): Parse cancellation point, cancel,
817         declare simd, end do simd, end simd, end parallel do simd,
818         end taskgroup, parallel do simd, simd and taskgroup directives.
819         (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
820         (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
821         ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
822         (case_decl): Add ST_OMP_DECLARE_SIMD.
823         (gfc_ascii_statement): Handle ST_OMP_CANCEL,
824         ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
825         ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
826         ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
827         ST_OMP_DECLARE_SIMD.
828         (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
829         ST_OMP_PARALLEL_DO_SIMD.
830         (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
831         (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
832         ST_OMP_PARALLEL_DO_SIMD.
833         (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
834         ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
835         * trans-decl.c (gfc_get_extern_function_decl,
836         gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
837         needed.
838         * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
839         EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD.  Walk
840         safelen_expr and simdlen_expr.  Walk expressions in gfc_omp_namelist
841         of depend, aligned and linear clauses.
842         * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
843         and EXEC_OMP_PARALLEL_DO_SIMD.
844         (gfc_free_omp_namelist): New function.
845         * dump-parse-tree.c (show_namelist): Removed.
846         (show_omp_namelist): New function.
847         (show_omp_node): Handle OpenMP 4.0 additions.
848         (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
849         EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
850         EXEC_OMP_TASKGROUP.
851         * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
852         gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
853         gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
854         gfc_match_omp_taskgroup): New prototypes.
855         * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
856         argument, handle it.  Allow current_function_decl to be NULL.
857         (gfc_trans_omp_variable_list): Add declare_simd argument, pass
858         it through to gfc_trans_omp_variable and disregard whether
859         sym is referenced if declare_simd is true.  Work on gfc_omp_namelist
860         instead of gfc_namelist.
861         (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
862         gfc_namelist.  Adjust gfc_trans_omp_variable caller.
863         (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
864         to gfc_trans_omp_variable{,_list} callers.  Work on gfc_omp_namelist
865         instead of gfc_namelist.  Handle inbranch, notinbranch, safelen,
866         simdlen, depend, uniform, linear, proc_bind and aligned clauses.
867         Handle cancel kind.
868         (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
869         adjust for GFC_OMP_ATOMIC_* changes.
870         (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
871         functions.
872         (gfc_trans_omp_do): Add op argument, handle simd translation into
873         generic.
874         (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
875         GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
876         GFC_OMP_MASK_PARALLEL): New.
877         (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
878         (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
879         (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
880         functions.
881         (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
882         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
883         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
884         Adjust gfc_trans_omp_do caller.
885         (gfc_trans_omp_declare_simd): New function.
886         * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
887         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
888         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
889         For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
890         gfc_free_namelist.
891         * module.c (omp_declare_simd_clauses): New variable.
892         (mio_omp_declare_simd): New function.
893         (mio_symbol): Call it.
894         * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
895         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
896         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
897         * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
898         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
899         (resolve_code): Handle EXEC_OMP_CANCEL,
900         EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
901         EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
902         (resolve_types): Call gfc_resolve_omp_declare_simd.
904 2014-05-11  Tobias Burnus  <burnus@net-b.de>
906         * trans-intrinsic.c (gfc_build_builtin_function_decls):
907         Change type of second argument to int.
909 2014-05-09  Mike Stump  <mikestump@comcast.net>
911         PR fortran/61109
912         * trans-array.c (gfc_conv_array_initializer): Fix wide-int
913         conversion bug.
915 2014-05-08  Tobias Burnus  <burnus@net-b.de>
917         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
918         and GFC_ISYM_CAF_SEND.
919         * intrinsic.c (add_functions): Add only internally
920         accessible caf_get and caf_send functions.
921         * resolve.c (add_caf_get_intrinsic,
922         remove_caf_get_intrinsic): New functions.
923         (resolve_variable): Resolve expression rank and
924         prepare for add_caf_get_intrinsic call.
925         (gfc_resolve_expr): For variables, remove rank
926         resolution.
927         (resolve_ordinary_assign): Prepare call to
928         GFC_ISYM_CAF_SEND.
929         (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
930         the LHS of an assignment.
932 2014-05-08  Tobias Burnus  <burnus@net-b.de>
934         * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
936 2014-05-08  Tobias Burnus  <burnus@net-b.de>
938         * check.c (check_co_minmaxsum, gfc_check_co_minmax,
939         gfc_check_co_sum): New.
940         * error.c (gfc_notify_std): Update -std=f2008ts.
941         * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
942         GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
943         * intrinsic.h (gfc_check_co_minmax,
944         gfc_check_co_sum): Declare.
945         * intrinsic.c (add_subroutines): Add co_min, co_max
946         and co_sum.
947         (gfc_check_intrinsic_standard): Update text for
948         -std=f2008ts.
949         * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
950         them.
951         * invoke.texi (-std=f2008ts): Update wording.
952         * trans.h (gfor_fndecl_co_max,
953         gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
954         * trans-decl.c (gfor_fndecl_co_max,
955         gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
956         (gfc_build_builtin_function_decls): Assign to it.
957         * trans-intrinsic.c (conv_co_minmaxsum): New.
958         (gfc_conv_intrinsic_subroutine): Call it.
960 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
961             Mike Stump  <mikestump@comcast.net>
962             Richard Sandiford  <rdsandiford@googlemail.com>
964         * target-memory.c: Include wide-int.h.
965         (gfc_interpret_logical): Use wide-int interfaces.
966         * trans-array.c: Include wide-int.h.
967         (gfc_conv_array_initializer): Use wide-int interfaces.
968         * trans-const.c: Include wide-int.h.
969         (gfc_conv_string_init): Use wide-int interfaces.
970         (gfc_conv_mpz_to_tree): Likewise.
971         (gfc_conv_tree_to_mpz): Likewise.
972         * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
973         * trans-expr.c: Include wide-int.h.
974         (gfc_conv_cst_int_power): Use wide-int interfaces.
975         (gfc_string_to_single_character): Likewise.
976         (gfc_optimize_len_trim): Likewise.
977         * trans-intrinsic.c: Include wide-int.h.
978         (trans_this_image): Use wide-int interfaces.
979         (gfc_conv_intrinsic_bound): Likewise.
980         (conv_intrinsic_cobound): Likewise.
981         * trans-types.c (gfc_init_types): Likewise.
982         (gfc_get_array_type_bounds): Pass an integer of the correct type
983         instead of using integer_one_node.
985 2014-04-30  Tobias Burnus  <burnus@net-b.de>
987         * trans-decl.c (create_function_arglist): Add hidden coarray arguments
988         also for polymorphic coarrays.
989         * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
990         also for polymorphic coarrays.
992 2014-04-30  Tobias Burnus  <burnus@net-b.de>
994         * resolve.c (resolve_function): Don't do
995         assumed-size check for lcobound/ucobound.
996         * trans-types.c (gfc_build_array_type): Only build an array
997         descriptor with codimensions for allocatable coarrays.
999 2014-04-30  Tobias Burnus  <burnus@net-b.de>
1001         * gfortran.h (gfc_init_coarray_decl): Remove.
1002         * parse.c (translate_all_program_units): Remove call to it.
1003         (gfc_parse_file): Update call.
1004         * trans.h (gfor_fndecl_caf_this_image,
1005         gfor_fndecl_caf_num_images): Add.
1006         (gfort_gvar_caf_num_images,
1007         gfort_gvar_caf_this_image): Remove.
1008         * trans-decl.c (gfor_fndecl_caf_this_image,
1009         gfor_fndecl_caf_num_images): Add.
1010         (gfort_gvar_caf_num_images,
1011         gfort_gvar_caf_this_image): Remove.
1012         (gfc_build_builtin_function_decls): Init new decl.
1013         (gfc_init_coarray_dec): Remove.
1014         (create_main_function): Change calls.
1015         * trans-intrinsic.c (trans_this_image, trans_image_index,
1016         conv_intrinsic_cobound): Generate call to new library function
1017         instead of to a static variable.
1018         * trans-stmt.c (gfc_trans_sync): Ditto.
1020 2014-04-30  Tobias Burnus  <burnus@net-b.de>
1022         * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
1023         and derived-type coarrays.
1025 2014-04-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1027         PR fortran/59604
1028         PR fortran/58003
1029         * gfortran.h (gfc_convert_mpz_to_signed):  Add prototype.
1030         * arith.c (gfc_int2int):  Convert number to signed if
1031         arithmetic overflow is not checked.
1032         * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
1033         size if range checking is in force.
1034         (convert_mpz_to_signed):  Make non-static, rename to
1035         (gfc_convert_mpz_to_signed).
1036         (simplify_dshift): Use gfc_convert_mpz_to_signed.
1037         (gfc_simplify_ibclr):  Likewise.
1038         (gfc_simplify_ibits):  Likewise.
1039         (gfc_simplify_ibset):  Likewise.
1040         (simplify_shift):  Likewise.
1041         (gfc_simplify_ishiftc):  Likewise.
1042         (gfc_simplify_maskr):  Likewise.
1043         (gfc_simplify_maskl):  Likewise.
1045 2014-04-22  Tobias Burnus  <burnus@net-b.de>
1047         PR fortran/60881
1048         * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
1049         of scalar coarrays.
1051 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
1053         * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
1054         argument is enum machine_mode.
1056 2014-04-13  Paul Thomas  <pault@gcc.gnu.org>
1058         PR fortran/58085
1059         PR fortran/60717
1060         * trans.h: Add 'use_offset' bitfield to gfc_se.
1061         * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
1062         as a trigger to unconditionally recalculate the offset for
1063         array slices and constant arrays.
1064         trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
1065         trans-stmt.c (trans_associate_var): Ditto.
1066         (gfc_conv_procedure_call): Ditto.
1068 2014-04-11  Tobias Burnus  <burnus@net-b.de>
1070         PR fortran/58880
1071         PR fortran/60495
1072         * resolve.c (gfc_resolve_finalizers): Ensure that vtables
1073         and finalization wrappers are generated.
1075 2014-04-11  Janne Blomqvist  <jb@gcc.gnu.org>
1077         * intrinsic.texi (RANDOM_SEED): Improve example.
1079 2014-04-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1081         * class.c (gfc_build_class_symbol): Append "_t" to target class
1082         names to make the generated type names unique.
1084 2014-04-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1086         PR fortran/60191
1087         * trans-types.c (gfc_get_function_type): In case of recursion
1088         build a variadic function type with empty argument list instead of a
1089         stdarg-like function type with incomplete argument list.
1091 2014-04-04  Tobias Burnus  <burnus@net-b.de>
1093         * check.c (gfc_check_cmplx): Fix typo.
1095 2014-03-28  Mikael Morin  <mikael@gcc.gnu.org>
1096             Tobias Burnus  <burnus@net-b.de>
1098         PR fortran/60576
1099         * trans-expr.c (gfc_conv_derived_to_class): Avoid
1100         generation of out-of-bounds range expr.
1102 2014-03-28  Mikael Morin  <mikael@gcc.gnu.org>
1104         PR fortran/60677
1105         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
1106         list buffer.
1108 2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
1110         PR fortran/60522
1111         * frontend-passes.c (cfe_code):  Do not walk subtrees
1112         for WHERE.
1114 2014-03-27  Tobias Burnus  <burnus@net-b.de>
1116         PR fortran/58880
1117         * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
1118         of nonpointers.
1120 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
1122         PR fortran/34928
1123         * fortran.texi: Document Volatile COMMON as not supported.
1125 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
1127         PR debug/60603
1128         * cpp.c (gfc_cpp_init): Restore cb_change_file call to
1129         <built-in>.
1131 2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1133         PR fortran/60148
1134         * gfortran.texi: Add description of namelist DELIM= behavior.
1136 2014-03-19  Tobias Burnus  <burnus@net-b.>
1138         PR fortran/60543
1139         * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
1140         * resolve.c (resolve_ordinary_assign): Ditto.
1142 2014-03-19  Tobias Burnus  <burnus@net-b.de>
1144         PR fortran/60543
1145         PR fortran/60283
1146         * gfortran.h (gfc_unset_implicit_pure): New prototype.
1147         * resolve.c (gfc_unset_implicit_pure): New.
1148         (resolve_structure_cons, resolve_function,
1149         pure_subroutine): Use it.
1150         * decl.c (match_old_style_init, gfc_match_data,
1151         match_pointer_init, variable_decl): Ditto.
1152         * expr.c (gfc_check_pointer_assign): Ditto.
1153         * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
1154         * io.c (match_vtag, gfc_match_open, gfc_match_close,
1155         match_filepos, gfc_match_inquire, gfc_match_print,
1156         gfc_match_wait): Ditto.
1157         * match.c (gfc_match_critical, gfc_match_stopcode,
1158         lock_unlock_statement, sync_statement, gfc_match_allocate,
1159         gfc_match_deallocate): Ditto.
1160         * parse.c (decode_omp_directive): Ditto.
1161         * symbol.c (gfc_add_save): Ditto.
1163 2014-03-18  Janus Weil  <janus@gcc.gnu.org>
1165         PR fortran/55207
1166         PR fortran/60549
1167         * decl.c (match_attr_spec): Revert r208590.
1169 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
1171         PR ipa/58721
1172         * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
1173         if !optimize.
1175 2014-03-18  Tobias Burnus  <burnus@net-b.de>
1177         PR ipa/58721
1178         * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
1179         (gfc_trans_io_runtime_check): Remove.
1180         * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
1181         as argument, add predictor to block.
1182         (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
1183         gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
1184         * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
1185         (gfc_trans_runtime_check, gfc_allocate_using_malloc,
1186         gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
1187         branch predictor.
1188         * trans-expr.c (gfc_conv_procedure_call): Ditto.
1189         * trans-stmt.c (gfc_trans_allocate): Ditto.
1190         * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
1192 2014-03-15  Janus Weil  <janus@gcc.gnu.org>
1194         PR fortran/55207
1195         * decl.c (match_attr_spec): Variables in the main program implicitly
1196         get the SAVE attribute in Fortran 2008.
1198 2014-03-14  Mikael Morin  <mikael@gcc.gnu.org>
1200         PR fortran/60392
1201         * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
1202         if it has transposed dimensions.
1204 2014-03-08  Tobias Burnus  <burnus@net-b.de>
1206         PR fortran/60447
1207         * f95-lang.c (gfc_init): Return false when only
1208         preprocessing.
1209         * options.c (gfc_post_options): Ditto.
1211 2014-03-08  Tobias Burnus  <burnus@net-b.de>
1213         * gfortran.texi (Fortran 2003 Status): Mention finalization,
1214         deferred-length character support and input rounding.
1215         (Fortran 2008 Status): Mention that at termination
1216         signalling exceptions are shown.
1218 2014-03-06  Paul Thomas  <pault@gcc.gnu.org>
1219             Janus Weil  <janus@gcc.gnu.org>
1221         PR fortran/51976
1222         * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
1223         * primary.c (build_actual_constructor): It is not an error if
1224         a missing component has the deferred_parameter attribute;
1225         equally, if one is given a value, it is an error.
1226         * resolve.c (resolve_fl_derived0): Remove error for deferred
1227         character length components.  Add the hidden string length
1228         field to the structure. Give it the deferred_parameter
1229         attribute.
1230         * trans-array.c (duplicate_allocatable): Add a strlen field
1231         which is used as the element size if it is non-null.
1232         (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
1233         NULL to the new argument in duplicate_allocatable.
1234         (structure_alloc_comps): Set the hidden string length as
1235         appropriate. Use it in calls to duplicate_allocatable.
1236         (gfc_alloc_allocatable_for_assignment): When a deferred length
1237         backend declaration is variable, use that; otherwise use the
1238         string length from the expression evaluation.
1239         * trans-expr.c (gfc_conv_component_ref): If this is a deferred
1240         character length component, the string length should have the
1241         value of the hidden string length field.
1242         (gfc_trans_subcomponent_assign): Set the hidden string length
1243         field for deferred character length components.  Allocate the
1244         necessary memory for the string.
1245         (alloc_scalar_allocatable_for_assignment): Same change as in
1246         gfc_alloc_allocatable_for_assignment above.
1247         * trans-stmt.c (gfc_trans_allocate): Likewise.
1248         * trans-intrinsic (size_of_string_in_bytes): Make non-static.
1249         * trans-types.c (gfc_get_derived_type): Set the tree type for
1250         a deferred character length component.
1251         * trans.c (gfc_deferred_strlen): New function.
1252         * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
1254 2014-03-01  Mikael Morin  <mikael@gcc.gnu.org>
1256         PR fortran/60341
1257         * frontend-passes.c (optimize_comparison): Guard two union accesses
1258         with the corresponding tag checks.
1260 2014-02-28  Janus Weil  <janus@gcc.gnu.org>
1262         PR fortran/60359
1263         * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
1264         procedure for characters.
1266 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
1268         PR fortran/60302
1269         * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
1270         is successful.
1272 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
1274         PR fortran/60234
1275         * gfortran.h (gfc_build_class_symbol): Removed argument.
1276         * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
1277         (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
1278         delayed now, except for unlimited polymorphics.
1279         (comp_is_finalizable): Procedure pointer components are not finalizable.
1280         * decl. (build_sym, build_struct, attr_decl1): Removed argument of
1281         'gfc_build_class_symbol'.
1282         * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
1283         Ditto.
1284         * symbol.c (gfc_set_default_type): Ditto.
1286 2014-02-19  Janus Weil  <janus@gcc.gnu.org>
1288         PR fortran/60232
1289         * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
1290         functions, which are used as procedure pointer target.
1292 2014-02-18  Tobias Burnus  <burnus@net-b.de>
1294         PR fortran/49397
1295         * expr.c (gfc_check_pointer_assign): Add check for
1296         F2008Cor2, C729.
1297         * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
1298         decl in a corner case.
1300 2014-02-18  Janus Weil  <janus@gcc.gnu.org>
1302         PR fortran/60231
1303         * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
1304         arguments to prevent ICE.
1306 2014-02-17  Janus Weil  <janus@gcc.gnu.org>
1308         PR fortran/55907
1309         * resolve.c (build_default_init_expr): Don't initialize character
1310         variable if -fno-automatic is given.
1312 2014-02-15  Mikael Morin  <mikael@gcc.gnu.org>
1314         PR fortran/59599
1315         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
1316         number of arguments.
1318 2014-02-11  Jakub Jelinek  <jakub@redhat.com>
1320         PR fortran/52370
1321         * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
1322         on decl if sym->attr.optional.
1324 2014-02-09  Paul Thomas  <pault@gcc.gnu.org>
1326         PR fortran/57522
1327         * resolve.c (resolve_assoc_var): Set the subref_array_pointer
1328         attribute for the 'associate-name' if necessary.
1329         * trans-stmt.c (trans_associate_var): If the 'associate-name'
1330         is a subref_array_pointer, assign the element size of the
1331         associate variable to 'span'.
1333 2014-02-09  Paul Thomas  <pault@gcc.gnu.org>
1335         PR fortran/59026
1336         * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
1337         actual argument to a formal argument with the value attribute
1338         in an elemental procedure.
1340 2014-02-08  Janus Weil  <janus@gcc.gnu.org>
1341             Mikael Morin <mikael.morin@gcc.gnu.org>
1343         PR fortran/58470
1344         * class.c (generate_finalization_wrapper): Assert that proc_tree has
1345         been set in gfc_resolve_finalizers.
1346         * resolve.c (resolve_fl_derived0): Remove unnecessary call to
1347         gfc_is_finalizable.
1349 2014-02-07  Benno Schulenberg  <bensberg@justemail.net>
1351         PR translation/52289
1352         * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
1353         in an error message.
1355 2014-02-02  Mikael Morin  <mikael@gcc.gnu.org>
1357         PR fortran/57033
1358         * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
1359         dereference.
1361 2014-02-01  Paul Thomas  <pault@gcc.gnu.org>
1363         PR fortran/59906
1364         * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
1365         SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
1366         pointer to the string is stored.
1367         * trans-expr.c (gfc_conv_expr_reference): Likewise, use
1368         gfc_conv_string_parameter to ensure that a pointer to is passed
1369         to the elemental function.
1371 2014-01-28  Paul Thomas  <pault@gcc.gnu.org>
1373         PR fortran/59414
1374         * trans-stmt.c (gfc_trans_allocate): Before the pointer
1375         assignment to transfer the source _vptr to a class allocate
1376         expression, the final class reference should be exposed. The
1377         tail that includes the _data and array references is stored.
1378         This reduced expression is transferred to 'lhs' and the _vptr
1379         added. Then the tail is restored to the allocate expression.
1381 2014-01-26  Mikael Morin  <mikael@gcc.gnu.org>
1383         PR fortran/58007
1384         * module.c (read_module): Assert for component name correctness.
1386 2014-01-18  Mikael Morin  <mikael@gcc.gnu.org>
1388         PR fortran/58007
1389         * module.c (MOD_VERSION): Bump.
1390         (fp2, find_pointer2): Remove.
1391         (mio_component_ref): Don't forcedfully set the containing derived type
1392         symbol for loading.  Remove unused argument.
1393         (mio_ref): Update caller
1394         (mio_symbol): Dump component list earlier.
1395         (skip_list): New argument nest_level.  Initialize level with the new
1396         argument.
1397         (read_module): Add forced pointer components association for derived
1398         type symbols.
1400 2014-01-12  Janus Weil  <janus@gcc.gnu.org>
1402         PR fortran/58026
1403         * decl.c (gfc_match_data_decl): Improve error recovery.
1405 2014-01-09  Tobias Burnus  <burnus@net-b.de>
1407         * cpp.c (gfc_cpp_handle_option): Add missing break.
1408         * trans-io.c (transfer_expr): Silence unused value warning.
1410 2014-01-08  Janus Weil  <janus@gcc.gnu.org>
1412         PR fortran/58182
1413         * resolve.c (gfc_verify_binding_labels): Modify order of checks.
1415 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
1417         PR fortran/59589
1418         * class.c (comp_is_finalizable): New function to dermine if a given
1419         component is finalizable.
1420         (finalize_component, generate_finalization_wrapper): Use it.
1422 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
1424         PR fortran/59023
1425         PR fortran/59662
1426         * resolve.c (resolve_global_procedure): Don't apply to c-binding
1427         procedures.
1428         (gfc_verify_binding_labels): Remove duplicate line.
1430 2014-01-04  Janus Weil  <janus@gcc.gnu.org>
1432         PR fortran/59547
1433         * class.c (add_proc_comp): Copy pure attribute.
1435 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
1437         Update copyright years
1439 2014-01-02  Tobias Burnus  <burnus@net-b.de>
1441         * gfortranspec.c (lang_specific_driver): Update copyright notice
1442         dates.
1443         * gfc-internals.texi: Bump @copying's copyright year.
1444         * gfortran.texi: Ditto.
1445         * intrinsic.texi: Ditto.
1446         * invoke.texi: Ditto.
1448 2014-01-02  Janus Weil  <janus@gcc.gnu.org>
1450         PR fortran/59654
1451         * resolve.c (resolve_typebound_procedures): No need to create the vtab
1452         here.
1454 Copyright (C) 2014 Free Software Foundation, Inc.
1456 Copying and distribution of this file, with or without modification,
1457 are permitted in any medium without royalty provided the copyright
1458 notice and this notice are preserved.