check.c (gfc_check_num_images): New.
[official-gcc.git] / gcc / fortran / ChangeLog
blob88c26ad3986f3d47ee0ecd9309ab763433932ce9
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
8         arguments.
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):
14         Handle new arguments.
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
43         place.
45 2014-05-12  Tobias Burnus  <burnus@net-b.de>
47         PR fortran/60127
48         * openmp.c (resolve_omp_do): Reject do concurrent loops.
50 2014-05-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
52         PR fortran/60834
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
56         assoc lists.
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
65         ST_OMP_DECLARE_SIMD.
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
73         simdlen_expr fields.
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
85         prototypes.
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
90         gfc_free_namelist.
91         (gfc_free_omp_declare_simd, gfc_free_omp_declare_simd_list): New
92         functions.
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
103         depend clauses.
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
115         functions.
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
144         ST_OMP_DECLARE_SIMD.
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
154         needed.
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
167         EXEC_OMP_TASKGROUP.
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.
184         Handle cancel kind.
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
188         functions.
189         (gfc_trans_omp_do): Add op argument, handle simd translation into
190         generic.
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
197         functions.
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
207         gfc_free_namelist.
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>
228         PR fortran/61109
229         * trans-array.c (gfc_conv_array_initializer): Fix wide-int
230         conversion bug.
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
243         resolution.
244         (resolve_ordinary_assign): Prepare call to
245         GFC_ISYM_CAF_SEND.
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
263         and co_sum.
264         (gfc_check_intrinsic_standard): Update text for
265         -std=f2008ts.
266         * intrinsic.texi (CO_MIN, CO_MAX, CO_SUM): Document
267         them.
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>
344         PR fortran/59604
345         PR fortran/58003
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>
364         PR fortran/60881
365         * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
366         of scalar coarrays.
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>
375         PR fortran/58085
376         PR fortran/60717
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>
387         PR fortran/58880
388         PR fortran/60495
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>
403         PR fortran/60191
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>
415         PR fortran/60576
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>
421         PR fortran/60677
422         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Enlarge argument
423         list buffer.
425 2014-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>
427         PR fortran/60522
428         * frontend-passes.c (cfe_code):  Do not walk subtrees
429         for WHERE.
431 2014-03-27  Tobias Burnus  <burnus@net-b.de>
433         PR fortran/58880
434         * trans-expr.c (gfc_conv_scalar_to_descriptor): Fix handling
435         of nonpointers.
437 2014-03-26 Dominique d'Humieres <dominiq@lps.ens.fr>
439         PR fortran/34928
440         * fortran.texi: Document Volatile COMMON as not supported.
442 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
444         PR debug/60603
445         * cpp.c (gfc_cpp_init): Restore cb_change_file call to
446         <built-in>.
448 2014-03-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
450         PR fortran/60148
451         * gfortran.texi: Add description of namelist DELIM= behavior.
453 2014-03-19  Tobias Burnus  <burnus@net-b.>
455         PR fortran/60543
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>
461         PR fortran/60543
462         PR fortran/60283
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>
482         PR fortran/55207
483         PR fortran/60549
484         * decl.c (match_attr_spec): Revert r208590.
486 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
488         PR ipa/58721
489         * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
490         if !optimize.
492 2014-03-18  Tobias Burnus  <burnus@net-b.de>
494         PR ipa/58721
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
504         branch predictor.
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>
511         PR fortran/55207
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>
517         PR fortran/60392
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>
523         PR fortran/60447
524         * f95-lang.c (gfc_init): Return false when only
525         preprocessing.
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>
538         PR fortran/51976
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
546         attribute.
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>
573         PR fortran/60341
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>
579         PR fortran/60359
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>
585         PR fortran/60302
586         * check.c (gfc_check_c_f_pointer): Only clear 'size' if 'gfc_array_size'
587         is successful.
589 2014-02-21  Janus Weil  <janus@gcc.gnu.org>
591         PR fortran/60234
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):
600         Ditto.
601         * symbol.c (gfc_set_default_type): Ditto.
603 2014-02-19  Janus Weil  <janus@gcc.gnu.org>
605         PR fortran/60232
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>
611         PR fortran/49397
612         * expr.c (gfc_check_pointer_assign): Add check for
613         F2008Cor2, C729.
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>
619         PR fortran/60231
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>
625         PR fortran/55907
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>
631         PR fortran/59599
632         * trans-intrinsic.c (gfc_conv_intrinsic_ichar): Calculate the
633         number of arguments.
635 2014-02-11  Jakub Jelinek  <jakub@redhat.com>
637         PR fortran/52370
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>
643         PR fortran/57522
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>
652         PR fortran/59026
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>
660         PR fortran/58470
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
664         gfc_is_finalizable.
666 2014-02-07  Benno Schulenberg  <bensberg@justemail.net>
668         PR translation/52289
669         * fortran/resolve.c (resolve_ordinary_assign): Fix typoed word
670         in an error message.
672 2014-02-02  Mikael Morin  <mikael@gcc.gnu.org>
674         PR fortran/57033
675         * primary.c (gfc_convert_to_structure_constructor): Avoid null pointer
676         dereference.
678 2014-02-01  Paul Thomas  <pault@gcc.gnu.org>
680         PR fortran/59906
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>
690         PR fortran/59414
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>
700         PR fortran/58007
701         * module.c (read_module): Assert for component name correctness.
703 2014-01-18  Mikael Morin  <mikael@gcc.gnu.org>
705         PR fortran/58007
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
713         argument.
714         (read_module): Add forced pointer components association for derived
715         type symbols.
717 2014-01-12  Janus Weil  <janus@gcc.gnu.org>
719         PR fortran/58026
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>
729         PR fortran/58182
730         * resolve.c (gfc_verify_binding_labels): Modify order of checks.
732 2014-01-06  Janus Weil  <janus@gcc.gnu.org>
734         PR fortran/59589
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>
741         PR fortran/59023
742         PR fortran/59662
743         * resolve.c (resolve_global_procedure): Don't apply to c-binding
744         procedures.
745         (gfc_verify_binding_labels): Remove duplicate line.
747 2014-01-04  Janus Weil  <janus@gcc.gnu.org>
749         PR fortran/59547
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
759         dates.
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>
767         PR fortran/59654
768         * resolve.c (resolve_typebound_procedures): No need to create the vtab
769         here.
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.