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