1 2014-05-25 Tobias Burnus <burnus@net-b.de>
3 * check.c (gfc_check_num_images): New.
4 (gfc_check_this_image): Handle distance argument.
5 * intrinsic.c (add_functions): Update this_image and num_images
6 for new distance and failed arguments.
7 * intrinsic.texi (THIS_IMAGE, NUM_IMAGES): Document the new
9 * intrinsic.h (gfc_check_num_images): New.
10 (gfc_check_this_image, gfc_simplify_num_images,
11 gfc_simplify_this_image, gfc_resolve_this_image): Update prototype.
12 * iresolve.c (gfc_resolve_this_image): Handle distance argument.
13 * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
15 * trans-intrinsic.c (trans_this_image, trans_num_images): Ditto.
16 (gfc_conv_intrinsic_function): Update trans_num_images call.
18 2014-05-23 Tobias Burnus <burnus@net-b.de>
20 * gfc-internals.texi: Change URLs to HTTPS; fix broken links.
21 * gfortran.texi: Ditto.
23 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
25 * f95-lang.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6)
26 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8)
27 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes.
28 * types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
30 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
32 * f95-lang.c (pushlevel): Adjust.
33 * trans-decl.c (gfc_allocate_lang_decl): Adjust.
34 (gfc_find_module): Likewise.
35 * trans-types.c (gfc_get_nodesc_array_type): Likewise.
36 (gfc_get_array_type_bounds): Likewise.
37 (gfc_nonrestricted_type): Likewise.
38 * trans.h: Don't use variable_size gty attribute.
40 2014-05-17 Dominique d'Humieres <dominiq@lps.ens.fr>
42 * check.c (gfc_check_fn_rc2008): move "argument" to the right
45 2014-05-12 Tobias Burnus <burnus@net-b.de>
48 * openmp.c (resolve_omp_do): Reject do concurrent loops.
50 2014-05-12 Thomas Koenig <tkoenig@gcc.gnu.org>
53 * frontend-passes.c (in_assoc_list): New variable.
54 (optimize_namespace): Initialize in_assoc_list
55 (combine_array_constructor): Don't try to combine
57 (gfc_code_walker): Keep track of in_assoc_list.
59 2014-05-11 Jakub Jelinek <jakub@redhat.com>
61 * gfortran.h (gfc_statement): Add ST_OMP_CANCEL,
62 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
63 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
64 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
66 (gfc_omp_namelist): New typedef.
67 (gfc_get_omp_namelist): Define.
68 (OMP_LIST_UNIFORM, OMP_LIST_ALIGNED, OMP_LIST_LINEAR,
69 OMP_LIST_DEPEND_IN, OMP_LIST_DEPEND_OUT): New clause list kinds.
70 (gfc_omp_proc_bind_kind, gfc_omp_cancel_kind): New enums.
71 (gfc_omp_clauses): Change type of lists to gfc_omp_namelist *.
72 Add inbranch, notinbranch, cancel, proc_bind, safelen_expr and
74 (gfc_omp_declare_simd): New typedef.
75 (gfc_get_omp_declare_simd): Define.
76 (gfc_namespace): Add omp_declare_simd field.
77 (gfc_exec_op): Add EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
78 EXEC_OMP_TASKGROUP, EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD and
79 EXEC_OMP_PARALLEL_DO_SIMD.
80 (gfc_omp_atomic_op): Add GFC_OMP_ATOMIC_MASK, GFC_OMP_ATOMIC_SEQ_CST
81 and GFC_OMP_ATOMIC_SWAP.
82 (gfc_code): Change type of omp_namelist field to gfc_omp_namelist *.
83 (gfc_free_omp_namelist, gfc_free_omp_declare_simd,
84 gfc_free_omp_declare_simd_list, gfc_resolve_omp_declare_simd): New
86 * trans-stmt.h (gfc_trans_omp_declare_simd): New prototype.
87 * symbol.c (gfc_free_namespace): Call gfc_free_omp_declare_simd.
88 * openmp.c (gfc_free_omp_clauses): Free safelen_expr and
89 simdlen_expr. Use gfc_free_omp_namelist instead of
91 (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
93 (gfc_match_omp_variable_list): Add end_colon, headp and
94 allow_sections arguments. Handle parsing of array sections.
95 Use *omp_namelist* instead of *namelist* data structure and
96 functions/macros. Allow termination at : character.
97 (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH,
98 OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND,
99 OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM): Define.
100 (gfc_match_omp_clauses): Change first and needs_space variables
101 into arguments with default values. Parse inbranch, notinbranch,
102 proc_bind, safelen, simdlen, uniform, linear, aligned and
104 (OMP_PARALLEL_CLAUSES): Add OMP_CLAUSE_PROC_BIND.
105 (OMP_DECLARE_SIMD_CLAUSES, OMP_SIMD_CLAUSES): Define.
106 (OMP_TASK_CLAUSES): Add OMP_CLAUSE_DEPEND.
107 (gfc_match_omp_do_simd): New function.
108 (gfc_match_omp_flush): Use *omp_namelist* instead of *namelist*
109 data structure and functions/macros.
110 (gfc_match_omp_simd, gfc_match_omp_declare_simd,
111 gfc_match_omp_parallel_do_simd): New functions.
112 (gfc_match_omp_atomic): Handle seq_cst clause. Handle atomic swap.
113 (gfc_match_omp_taskgroup, gfc_match_omp_cancel_kind,
114 gfc_match_omp_cancel, gfc_match_omp_cancellation_point): New
116 (resolve_omp_clauses): Add where, omp_clauses and ns arguments.
117 Use *omp_namelist* instead of *namelist* data structure and
118 functions/macros. Resolve uniform, aligned, linear, depend,
119 safelen and simdlen clauses.
120 (resolve_omp_atomic): Adjust for GFC_OMP_ATOMIC_{MASK,SEQ_CST,SWAP}
121 addition, recognize atomic swap.
122 (gfc_resolve_omp_parallel_blocks): Use gfc_omp_namelist instead
123 of gfc_namelist. Handle EXEC_OMP_PARALLEL_DO_SIMD the same as
124 EXEC_OMP_PARALLEL_DO.
125 (gfc_resolve_do_iterator): Use *omp_namelist* instead of *namelist*
126 data structure and functions/macros.
127 (resolve_omp_do): Likewise. Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
128 EXEC_OMP_PARALLEL_DO_SIMD.
129 (gfc_resolve_omp_directive): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD,
130 EXEC_OMP_PARALLEL_DO_SIMD and EXEC_OMP_CANCEL. Adjust
131 resolve_omp_clauses caller.
132 (gfc_resolve_omp_declare_simd): New function.
133 * parse.c (decode_omp_directive): Parse cancellation point, cancel,
134 declare simd, end do simd, end simd, end parallel do simd,
135 end taskgroup, parallel do simd, simd and taskgroup directives.
136 (case_executable): Add ST_OMP_CANCEL and ST_OMP_CANCELLATION_POINT.
137 (case_exec_markers): Add ST_OMP_TASKGROUP, case ST_OMP_SIMD,
138 ST_OMP_DO_SIMD and ST_OMP_PARALLEL_DO_SIMD.
139 (case_decl): Add ST_OMP_DECLARE_SIMD.
140 (gfc_ascii_statement): Handle ST_OMP_CANCEL,
141 ST_OMP_CANCELLATION_POINT, ST_OMP_TASKGROUP, ST_OMP_END_TASKGROUP,
142 ST_OMP_SIMD, ST_OMP_END_SIMD, ST_OMP_DO_SIMD, ST_OMP_END_DO_SIMD,
143 ST_OMP_PARALLEL_DO_SIMD, ST_OMP_END_PARALLEL_DO_SIMD and
145 (parse_omp_do): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD and
146 ST_OMP_PARALLEL_DO_SIMD.
147 (parse_omp_atomic): Adjust for GFC_OMP_ATOMIC_* additions.
148 (parse_omp_structured_block): Handle ST_OMP_TASKGROUP and
149 ST_OMP_PARALLEL_DO_SIMD.
150 (parse_executable): Handle ST_OMP_SIMD, ST_OMP_DO_SIMD,
151 ST_OMP_PARALLEL_DO_SIMD and ST_OMP_TASKGROUP.
152 * trans-decl.c (gfc_get_extern_function_decl,
153 gfc_create_function_decl): Call gfc_trans_omp_declare_simd if
155 * frontend-passes.c (gfc_code_walker): Handle EXEC_OMP_SIMD,
156 EXEC_OMP_DO_SIMD and EXEC_OMP_PARALLEL_DO_SIMD. Walk
157 safelen_expr and simdlen_expr. Walk expressions in gfc_omp_namelist
158 of depend, aligned and linear clauses.
159 * match.c (match_exit_cycle): Handle EXEC_OMP_SIMD, EXEC_OMP_DO_SIMD
160 and EXEC_OMP_PARALLEL_DO_SIMD.
161 (gfc_free_omp_namelist): New function.
162 * dump-parse-tree.c (show_namelist): Removed.
163 (show_omp_namelist): New function.
164 (show_omp_node): Handle OpenMP 4.0 additions.
165 (show_code_node): Handle EXEC_OMP_CANCEL, EXEC_OMP_CANCELLATION_POINT,
166 EXEC_OMP_DO_SIMD, EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and
168 * match.h (gfc_match_omp_cancel, gfc_match_omp_cancellation_point,
169 gfc_match_omp_declare_simd, gfc_match_omp_do_simd,
170 gfc_match_omp_parallel_do_simd, gfc_match_omp_simd,
171 gfc_match_omp_taskgroup): New prototypes.
172 * trans-openmp.c (gfc_trans_omp_variable): Add declare_simd
173 argument, handle it. Allow current_function_decl to be NULL.
174 (gfc_trans_omp_variable_list): Add declare_simd argument, pass
175 it through to gfc_trans_omp_variable and disregard whether
176 sym is referenced if declare_simd is true. Work on gfc_omp_namelist
177 instead of gfc_namelist.
178 (gfc_trans_omp_reduction_list): Work on gfc_omp_namelist instead of
179 gfc_namelist. Adjust gfc_trans_omp_variable caller.
180 (gfc_trans_omp_clauses): Add declare_simd argument, pass it through
181 to gfc_trans_omp_variable{,_list} callers. Work on gfc_omp_namelist
182 instead of gfc_namelist. Handle inbranch, notinbranch, safelen,
183 simdlen, depend, uniform, linear, proc_bind and aligned clauses.
185 (gfc_trans_omp_atomic): Handle seq_cst clause, handle atomic swap,
186 adjust for GFC_OMP_ATOMIC_* changes.
187 (gfc_trans_omp_cancel, gfc_trans_omp_cancellation_point): New
189 (gfc_trans_omp_do): Add op argument, handle simd translation into
191 (GFC_OMP_SPLIT_SIMD, GFC_OMP_SPLIT_DO, GFC_OMP_SPLIT_PARALLEL,
192 GFC_OMP_SPLIT_NUM, GFC_OMP_MASK_SIMD, GFC_OMP_MASK_DO,
193 GFC_OMP_MASK_PARALLEL): New.
194 (gfc_split_omp_clauses, gfc_trans_omp_do_simd): New functions.
195 (gfc_trans_omp_parallel_do): Rework to use gfc_split_omp_clauses.
196 (gfc_trans_omp_parallel_do_simd, gfc_trans_omp_taskgroup): New
198 (gfc_trans_omp_directive): Handle EXEC_OMP_CANCEL,
199 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
200 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
201 Adjust gfc_trans_omp_do caller.
202 (gfc_trans_omp_declare_simd): New function.
203 * st.c (gfc_free_statement): Handle EXEC_OMP_CANCEL,
204 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
205 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
206 For EXEC_OMP_FLUSH call gfc_free_omp_namelist instead of
208 * module.c (omp_declare_simd_clauses): New variable.
209 (mio_omp_declare_simd): New function.
210 (mio_symbol): Call it.
211 * trans.c (trans_code): Handle EXEC_OMP_CANCEL,
212 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
213 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
214 * resolve.c (gfc_resolve_blocks): Handle EXEC_OMP_DO_SIMD,
215 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
216 (resolve_code): Handle EXEC_OMP_CANCEL,
217 EXEC_OMP_CANCELLATION_POINT, EXEC_OMP_DO_SIMD,
218 EXEC_OMP_PARALLEL_DO_SIMD, EXEC_OMP_SIMD and EXEC_OMP_TASKGROUP.
219 (resolve_types): Call gfc_resolve_omp_declare_simd.
221 2014-05-11 Tobias Burnus <burnus@net-b.de>
223 * trans-intrinsic.c (gfc_build_builtin_function_decls):
224 Change type of second argument to int.
226 2014-05-09 Mike Stump <mikestump@comcast.net>
229 * trans-array.c (gfc_conv_array_initializer): Fix wide-int
232 2014-05-08 Tobias Burnus <burnus@net-b.de>
234 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CAF_GET
235 and GFC_ISYM_CAF_SEND.
236 * intrinsic.c (add_functions): Add only internally
237 accessible caf_get and caf_send functions.
238 * resolve.c (add_caf_get_intrinsic,
239 remove_caf_get_intrinsic): New functions.
240 (resolve_variable): Resolve expression rank and
241 prepare for add_caf_get_intrinsic call.
242 (gfc_resolve_expr): For variables, remove rank
244 (resolve_ordinary_assign): Prepare call to
246 (resolve_code): Avoid call to GFC_ISYM_CAF_GET for
247 the LHS of an assignment.
249 2014-05-08 Tobias Burnus <burnus@net-b.de>
251 * trans-intrinsic.c (conv_co_minmaxsum): Change condition style.
253 2014-05-08 Tobias Burnus <burnus@net-b.de>
255 * check.c (check_co_minmaxsum, gfc_check_co_minmax,
256 gfc_check_co_sum): New.
257 * error.c (gfc_notify_std): Update -std=f2008ts.
258 * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_MAX,
259 GFC_ISYM_CO_MIN, GFC_ISYM_CO_SUM.
260 * intrinsic.h (gfc_check_co_minmax,
261 gfc_check_co_sum): Declare.
262 * intrinsic.c (add_subroutines): Add co_min, co_max
264 (gfc_check_intrinsic_standard): Update text for
266 * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
268 * invoke.texi (-std=f2008ts): Update wording.
269 * trans.h (gfor_fndecl_co_max,
270 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
271 * trans-decl.c (gfor_fndecl_co_max,
272 gfor_fndecl_co_min, gfor_fndecl_co_sum): Define.
273 (gfc_build_builtin_function_decls): Assign to it.
274 * trans-intrinsic.c (conv_co_minmaxsum): New.
275 (gfc_conv_intrinsic_subroutine): Call it.
277 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
278 Mike Stump <mikestump@comcast.net>
279 Richard Sandiford <rdsandiford@googlemail.com>
281 * target-memory.c: Include wide-int.h.
282 (gfc_interpret_logical): Use wide-int interfaces.
283 * trans-array.c: Include wide-int.h.
284 (gfc_conv_array_initializer): Use wide-int interfaces.
285 * trans-const.c: Include wide-int.h.
286 (gfc_conv_string_init): Use wide-int interfaces.
287 (gfc_conv_mpz_to_tree): Likewise.
288 (gfc_conv_tree_to_mpz): Likewise.
289 * trans-decl.c (gfc_can_put_var_on_stack): Use tree_fits_uhwi_p.
290 * trans-expr.c: Include wide-int.h.
291 (gfc_conv_cst_int_power): Use wide-int interfaces.
292 (gfc_string_to_single_character): Likewise.
293 (gfc_optimize_len_trim): Likewise.
294 * trans-intrinsic.c: Include wide-int.h.
295 (trans_this_image): Use wide-int interfaces.
296 (gfc_conv_intrinsic_bound): Likewise.
297 (conv_intrinsic_cobound): Likewise.
298 * trans-types.c (gfc_init_types): Likewise.
299 (gfc_get_array_type_bounds): Pass an integer of the correct type
300 instead of using integer_one_node.
302 2014-04-30 Tobias Burnus <burnus@net-b.de>
304 * trans-decl.c (create_function_arglist): Add hidden coarray arguments
305 also for polymorphic coarrays.
306 * trans-expr.c (gfc_conv_procedure_call): Pass hidden coarray arguments
307 also for polymorphic coarrays.
309 2014-04-30 Tobias Burnus <burnus@net-b.de>
311 * resolve.c (resolve_function): Don't do
312 assumed-size check for lcobound/ucobound.
313 * trans-types.c (gfc_build_array_type): Only build an array
314 descriptor with codimensions for allocatable coarrays.
316 2014-04-30 Tobias Burnus <burnus@net-b.de>
318 * gfortran.h (gfc_init_coarray_decl): Remove.
319 * parse.c (translate_all_program_units): Remove call to it.
320 (gfc_parse_file): Update call.
321 * trans.h (gfor_fndecl_caf_this_image,
322 gfor_fndecl_caf_num_images): Add.
323 (gfort_gvar_caf_num_images,
324 gfort_gvar_caf_this_image): Remove.
325 * trans-decl.c (gfor_fndecl_caf_this_image,
326 gfor_fndecl_caf_num_images): Add.
327 (gfort_gvar_caf_num_images,
328 gfort_gvar_caf_this_image): Remove.
329 (gfc_build_builtin_function_decls): Init new decl.
330 (gfc_init_coarray_dec): Remove.
331 (create_main_function): Change calls.
332 * trans-intrinsic.c (trans_this_image, trans_image_index,
333 conv_intrinsic_cobound): Generate call to new library function
334 instead of to a static variable.
335 * trans-stmt.c (gfc_trans_sync): Ditto.
337 2014-04-30 Tobias Burnus <burnus@net-b.de>
339 * trans-expr.c (get_tree_for_caf_expr): Fix handling of polymorphic
340 and derived-type coarrays.
342 2014-04-27 Thomas Koenig <tkoenig@gcc.gnu.org>
346 * gfortran.h (gfc_convert_mpz_to_signed): Add prototype.
347 * arith.c (gfc_int2int): Convert number to signed if
348 arithmetic overflow is not checked.
349 * simplify.c (convert_mpz_to_unsigned): Only trigger assert for
350 size if range checking is in force.
351 (convert_mpz_to_signed): Make non-static, rename to
352 (gfc_convert_mpz_to_signed).
353 (simplify_dshift): Use gfc_convert_mpz_to_signed.
354 (gfc_simplify_ibclr): Likewise.
355 (gfc_simplify_ibits): Likewise.
356 (gfc_simplify_ibset): Likewise.
357 (simplify_shift): Likewise.
358 (gfc_simplify_ishiftc): Likewise.
359 (gfc_simplify_maskr): Likewise.
360 (gfc_simplify_maskl): Likewise.
362 2014-04-22 Tobias Burnus <burnus@net-b.de>
365 * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
368 2014-04-17 Jakub Jelinek <jakub@redhat.com>
370 * trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
371 argument is enum machine_mode.
373 2014-04-13 Paul Thomas <pault@gcc.gnu.org>
377 * trans.h: Add 'use_offset' bitfield to gfc_se.
378 * trans-array.c (gfc_conv_expr_descriptor): Use 'use_offset'
379 as a trigger to unconditionally recalculate the offset for
380 array slices and constant arrays.
381 trans-expr.c (gfc_conv_intrinsic_to_class): Use it.
382 trans-stmt.c (trans_associate_var): Ditto.
383 (gfc_conv_procedure_call): Ditto.
385 2014-04-11 Tobias Burnus <burnus@net-b.de>
389 * resolve.c (gfc_resolve_finalizers): Ensure that vtables
390 and finalization wrappers are generated.
392 2014-04-11 Janne Blomqvist <jb@gcc.gnu.org>
394 * intrinsic.texi (RANDOM_SEED): Improve example.
396 2014-04-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
398 * class.c (gfc_build_class_symbol): Append "_t" to target class
399 names to make the generated type names unique.
401 2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
404 * trans-types.c (gfc_get_function_type): In case of recursion
405 build a variadic function type with empty argument list instead of a
406 stdarg-like function type with incomplete argument list.
408 2014-04-04 Tobias Burnus <burnus@net-b.de>
410 * check.c (gfc_check_cmplx): Fix typo.
412 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
413 Tobias Burnus <burnus@net-b.de>
416 * trans-expr.c (gfc_conv_derived_to_class): Avoid
417 generation of out-of-bounds range expr.
419 2014-03-28 Mikael Morin <mikael@gcc.gnu.org>
422 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
425 2014-03-27 Thomas Koenig <tkoenig@gcc.gnu.org>
428 * frontend-passes.c (cfe_code): Do not walk subtrees
431 2014-03-27 Tobias Burnus <burnus@net-b.de>
434 * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
437 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
440 * fortran.texi: Document Volatile COMMON as not supported.
442 2014-03-22 Jakub Jelinek <jakub@redhat.com>
445 * cpp.c (gfc_cpp_init): Restore cb_change_file call to
448 2014-03-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
451 * gfortran.texi: Add description of namelist DELIM= behavior.
453 2014-03-19 Tobias Burnus <burnus@net-b.>
456 * io.c (check_io_constraints): Use gfc_unset_implicit_pure.
457 * resolve.c (resolve_ordinary_assign): Ditto.
459 2014-03-19 Tobias Burnus <burnus@net-b.de>
463 * gfortran.h (gfc_unset_implicit_pure): New prototype.
464 * resolve.c (gfc_unset_implicit_pure): New.
465 (resolve_structure_cons, resolve_function,
466 pure_subroutine): Use it.
467 * decl.c (match_old_style_init, gfc_match_data,
468 match_pointer_init, variable_decl): Ditto.
469 * expr.c (gfc_check_pointer_assign): Ditto.
470 * intrinsic.c (gfc_intrinsic_sub_interface): Ditto.
471 * io.c (match_vtag, gfc_match_open, gfc_match_close,
472 match_filepos, gfc_match_inquire, gfc_match_print,
473 gfc_match_wait): Ditto.
474 * match.c (gfc_match_critical, gfc_match_stopcode,
475 lock_unlock_statement, sync_statement, gfc_match_allocate,
476 gfc_match_deallocate): Ditto.
477 * parse.c (decode_omp_directive): Ditto.
478 * symbol.c (gfc_add_save): Ditto.
480 2014-03-18 Janus Weil <janus@gcc.gnu.org>
484 * decl.c (match_attr_spec): Revert r208590.
486 2014-03-18 Jakub Jelinek <jakub@redhat.com>
489 * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
492 2014-03-18 Tobias Burnus <burnus@net-b.de>
495 * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
496 (gfc_trans_io_runtime_check): Remove.
497 * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
498 as argument, add predictor to block.
499 (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
500 gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
501 * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
502 (gfc_trans_runtime_check, gfc_allocate_using_malloc,
503 gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
505 * trans-expr.c (gfc_conv_procedure_call): Ditto.
506 * trans-stmt.c (gfc_trans_allocate): Ditto.
507 * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.
509 2014-03-15 Janus Weil <janus@gcc.gnu.org>
512 * decl.c (match_attr_spec): Variables in the main program implicitly
513 get the SAVE attribute in Fortran 2008.
515 2014-03-14 Mikael Morin <mikael@gcc.gnu.org>
518 * trans-array.c (gfc_conv_array_parameter): Don't reuse the descriptor
519 if it has transposed dimensions.
521 2014-03-08 Tobias Burnus <burnus@net-b.de>
524 * f95-lang.c (gfc_init): Return false when only
526 * options.c (gfc_post_options): Ditto.
528 2014-03-08 Tobias Burnus <burnus@net-b.de>
530 * gfortran.texi (Fortran 2003 Status): Mention finalization,
531 deferred-length character support and input rounding.
532 (Fortran 2008 Status): Mention that at termination
533 signalling exceptions are shown.
535 2014-03-06 Paul Thomas <pault@gcc.gnu.org>
536 Janus Weil <janus@gcc.gnu.org>
539 * gfortran.h (symbol_attribute): Add deferred_parameter attribute.
540 * primary.c (build_actual_constructor): It is not an error if
541 a missing component has the deferred_parameter attribute;
542 equally, if one is given a value, it is an error.
543 * resolve.c (resolve_fl_derived0): Remove error for deferred
544 character length components. Add the hidden string length
545 field to the structure. Give it the deferred_parameter
547 * trans-array.c (duplicate_allocatable): Add a strlen field
548 which is used as the element size if it is non-null.
549 (gfc_duplicate_allocatable, gfc_copy_allocatable_data): Pass a
550 NULL to the new argument in duplicate_allocatable.
551 (structure_alloc_comps): Set the hidden string length as
552 appropriate. Use it in calls to duplicate_allocatable.
553 (gfc_alloc_allocatable_for_assignment): When a deferred length
554 backend declaration is variable, use that; otherwise use the
555 string length from the expression evaluation.
556 * trans-expr.c (gfc_conv_component_ref): If this is a deferred
557 character length component, the string length should have the
558 value of the hidden string length field.
559 (gfc_trans_subcomponent_assign): Set the hidden string length
560 field for deferred character length components. Allocate the
561 necessary memory for the string.
562 (alloc_scalar_allocatable_for_assignment): Same change as in
563 gfc_alloc_allocatable_for_assignment above.
564 * trans-stmt.c (gfc_trans_allocate): Likewise.
565 * trans-intrinsic (size_of_string_in_bytes): Make non-static.
566 * trans-types.c (gfc_get_derived_type): Set the tree type for
567 a deferred character length component.
568 * trans.c (gfc_deferred_strlen): New function.
569 * trans.h (size_of_string_in_bytes,gfc_deferred_strlen): New prototypes.
571 2014-03-01 Mikael Morin <mikael@gcc.gnu.org>
574 * frontend-passes.c (optimize_comparison): Guard two union accesses
575 with the corresponding tag checks.
577 2014-02-28 Janus Weil <janus@gcc.gnu.org>
580 * class.c (find_intrinsic_vtab): Prevent duplicate creation of copy
581 procedure for characters.
583 2014-02-21 Janus Weil <janus@gcc.gnu.org>
586 * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
589 2014-02-21 Janus Weil <janus@gcc.gnu.org>
592 * gfortran.h (gfc_build_class_symbol): Removed argument.
593 * class.c (gfc_add_component_ref): Fix up missing vtype if necessary.
594 (gfc_build_class_symbol): Remove argument 'delayed_vtab'. vtab is always
595 delayed now, except for unlimited polymorphics.
596 (comp_is_finalizable): Procedure pointer components are not finalizable.
597 * decl. (build_sym, build_struct, attr_decl1): Removed argument of
598 'gfc_build_class_symbol'.
599 * match.c (copy_ts_from_selector_to_associate, select_type_set_tmp):
601 * symbol.c (gfc_set_default_type): Ditto.
603 2014-02-19 Janus Weil <janus@gcc.gnu.org>
606 * expr.c (gfc_get_variable_expr): Don't add REF_ARRAY for dimensionful
607 functions, which are used as procedure pointer target.
609 2014-02-18 Tobias Burnus <burnus@net-b.de>
612 * expr.c (gfc_check_pointer_assign): Add check for
614 * trans-decl.c (gfc_get_symbol_decl): Correctly generate external
615 decl in a corner case.
617 2014-02-18 Janus Weil <janus@gcc.gnu.org>
620 * resolve.c (check_generic_tbp_ambiguity): Check for presence of dummy
621 arguments to prevent ICE.
623 2014-02-17 Janus Weil <janus@gcc.gnu.org>
626 * resolve.c (build_default_init_expr): Don't initialize character
627 variable if -fno-automatic is given.
629 2014-02-15 Mikael Morin <mikael@gcc.gnu.org>
632 * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
635 2014-02-11 Jakub Jelinek <jakub@redhat.com>
638 * trans-decl.c (gfc_build_dummy_array_decl): Set TREE_NO_WARNING
639 on decl if sym->attr.optional.
641 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
644 * resolve.c (resolve_assoc_var): Set the subref_array_pointer
645 attribute for the 'associate-name' if necessary.
646 * trans-stmt.c (trans_associate_var): If the 'associate-name'
647 is a subref_array_pointer, assign the element size of the
648 associate variable to 'span'.
650 2014-02-09 Paul Thomas <pault@gcc.gnu.org>
653 * trans-expr.c (gfc_conv_procedure_call): Pass the value of the
654 actual argument to a formal argument with the value attribute
655 in an elemental procedure.
657 2014-02-08 Janus Weil <janus@gcc.gnu.org>
658 Mikael Morin <mikael.morin@gcc.gnu.org>
661 * class.c (generate_finalization_wrapper): Assert that proc_tree has
662 been set in gfc_resolve_finalizers.
663 * resolve.c (resolve_fl_derived0): Remove unnecessary call to
666 2014-02-07 Benno Schulenberg <bensberg@justemail.net>
669 * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
672 2014-02-02 Mikael Morin <mikael@gcc.gnu.org>
675 * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
678 2014-02-01 Paul Thomas <pault@gcc.gnu.org>
681 * trans-stmt.c (gfc_add_loop_ss_code): In the case of character
682 SS_REFERENCE, use gfc_conv_string_parameter to ensure that a
683 pointer to the string is stored.
684 * trans-expr.c (gfc_conv_expr_reference): Likewise, use
685 gfc_conv_string_parameter to ensure that a pointer to is passed
686 to the elemental function.
688 2014-01-28 Paul Thomas <pault@gcc.gnu.org>
691 * trans-stmt.c (gfc_trans_allocate): Before the pointer
692 assignment to transfer the source _vptr to a class allocate
693 expression, the final class reference should be exposed. The
694 tail that includes the _data and array references is stored.
695 This reduced expression is transferred to 'lhs' and the _vptr
696 added. Then the tail is restored to the allocate expression.
698 2014-01-26 Mikael Morin <mikael@gcc.gnu.org>
701 * module.c (read_module): Assert for component name correctness.
703 2014-01-18 Mikael Morin <mikael@gcc.gnu.org>
706 * module.c (MOD_VERSION): Bump.
707 (fp2, find_pointer2): Remove.
708 (mio_component_ref): Don't forcedfully set the containing derived type
709 symbol for loading. Remove unused argument.
710 (mio_ref): Update caller
711 (mio_symbol): Dump component list earlier.
712 (skip_list): New argument nest_level. Initialize level with the new
714 (read_module): Add forced pointer components association for derived
717 2014-01-12 Janus Weil <janus@gcc.gnu.org>
720 * decl.c (gfc_match_data_decl): Improve error recovery.
722 2014-01-09 Tobias Burnus <burnus@net-b.de>
724 * cpp.c (gfc_cpp_handle_option): Add missing break.
725 * trans-io.c (transfer_expr): Silence unused value warning.
727 2014-01-08 Janus Weil <janus@gcc.gnu.org>
730 * resolve.c (gfc_verify_binding_labels): Modify order of checks.
732 2014-01-06 Janus Weil <janus@gcc.gnu.org>
735 * class.c (comp_is_finalizable): New function to dermine if a given
736 component is finalizable.
737 (finalize_component, generate_finalization_wrapper): Use it.
739 2014-01-06 Janus Weil <janus@gcc.gnu.org>
743 * resolve.c (resolve_global_procedure): Don't apply to c-binding
745 (gfc_verify_binding_labels): Remove duplicate line.
747 2014-01-04 Janus Weil <janus@gcc.gnu.org>
750 * class.c (add_proc_comp): Copy pure attribute.
752 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
754 Update copyright years
756 2014-01-02 Tobias Burnus <burnus@net-b.de>
758 * gfortranspec.c (lang_specific_driver): Update copyright notice
760 * gfc-internals.texi: Bump @copying's copyright year.
761 * gfortran.texi: Ditto.
762 * intrinsic.texi: Ditto.
763 * invoke.texi: Ditto.
765 2014-01-02 Janus Weil <janus@gcc.gnu.org>
768 * resolve.c (resolve_typebound_procedures): No need to create the vtab
771 Copyright (C) 2014 Free Software Foundation, Inc.
773 Copying and distribution of this file, with or without modification,
774 are permitted in any medium without royalty provided the copyright
775 notice and this notice are preserved.