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