PR 83975 Associate target with non-constant character length
[official-gcc.git] / gcc / fortran / ChangeLog
blobd5a6e2641de35e83fcb7824868f24b485149eaef
1 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
3         PR 83975
4         PR 83344
5         * resolve.c (resolve_assoc_var): Generate an error if
6         target length unknown.
8 2018-02-01  Janne Blomqvist  <jb@gcc.gnu.org>
10         PR fortran/83705
11         * simplify.c (gfc_simplify_repeat): Increase limit for deferring
12         to runtime, print a warning message.
14 2018-01-31  Jakub Jelinek  <jakub@redhat.com>
16         PR fortran/84116
17         * openmp.c (gfc_match_omp_clauses): If all the linear
18         gfc_match_omp_variable_list calls failed, don't gfc_free_omp_namelist
19         nor set *head = NULL.  Formatting fixes.
21 2018-01-31  Paul Thomas  <pault@gcc.gnu.org>
23         PR fortran/84088
24         * trans-expr.c (gfc_conv_procedure_call): If the parm expr is
25         an address expression passed to an assumed rank dummy, convert
26         to an indirect reference.
28 2018-01-31  Thomas Koenig  <tkoenig@gcc.gnu.org>
30         * dump-parse-tree.c (write_proc): Use sym_name (which may
31         be sym->binding_label) instead of sym->name.
33 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
35         * trans-const.c (gfc_conv_string_init): Use gfc_charlen_t instead
36         of int for slen.
38 2018-01-31  Janne Blomqvist  <jb@gcc.gnu.org>
40         PR fortran/78534
41         * trans-expr.c (fill_with_spaces): Use memset instead of
42         generating loop.
43         (gfc_trans_string_copy): Improve opportunity to use builtins with
44         constant lengths.
46 2018-01-30  Jakub Jelinek  <jakub@redhat.com>
48         PR debug/84131
49         * trans-array.c (gfc_get_descriptor_offsets_for_info): Set *data_off
50         to DATA_FIELD's offset rather than OFFSET_FIELD's offset.
52 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
54         PR fortran/84134
55         * array.c (gfc_ref_dimen_size): Whitespace fixes.  If stride is
56         zero, return false.
58 2018-01-30  Thomas Koenig  <tkoenig@gcc.gnu.org>
60         PR fortran/84133
61         * frontend-passes (matmul_to_var_expr): Return early if
62         in association list.
63         (inline_matmul_assign): Likewise.
65 2017-01-29  Thomas Koenig  <tkoenig@gcc.gnu.org>
67         PR fortran/84073
68         * resolve.c (resolve_component): Ensure BIND(C) character
69         components have length one.
70         (resolve_symbol): Likewise for variables.
72 2018-01-27  Jakub Jelinek  <jakub@redhat.com>
74         PR fortran/84065
75         * decl.c (add_init_expr_to_sym): Ignore initializers for too large
76         lengths.
78 2018-01-26  Damian Rouson  <damian@sourceryinstitute.org>
79             Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
80             Soren Rasmussen  <s.c.rasmussen@gmail.com>
82         Partial support for Fortran 2018 teams features.
84         * array.c (gfc_match_array_ref): add team attribute in coarray
85         transfers.
86         * check.c (gfc_check_get_team, gfc_check_team_number): add new
87         functions for get_team and team_number.
88         * dump-parse-tree.c (show_code_node): add new statements: form team,
89         change team, end team, and sync team.
90         * expr.c (gfc_find_team_co): add new function.
91         * gfortran.h: add new statements.
92         * intrinsic.c (add_functions): add get_team and team_number functions.
93         * intrinsic.h: add get_team and team_number prototypes for check,
94         simplify, and resolve.
95         * iresolve.c (gfc_resolve_get_team, gfc_resolve_team_number): add new
96         functions.
97         * iso-fortran-env.def: add the team_type derived type.
98         * match.c (gfc_match_if, gfc_match_form_team, gfc_match_team_number)
99         (gfc_match_end_team, gfc_match_sync_team, gfc_match_change_team):
100         add change team, end team, form team, sync team match and functions.
101         * match.h: add new prototypes for change team, end team, form team,
102         and sync team.
103         * parse.c (decode_statement): add cases for change team, end team,
104         form team, and sync team.
105         * resolve.c: add cases for exec form team, change team, end team, and
106         sync team.
107         * simplify.c (gfc_simplify_get_team): add new function for get team.
108         * st.c (gfc_free_statement): add cases exec for change team, end team,
109         form team, sync team.
110         * trans-decl.c (gfor_fndecl_caf_form_team)
111         (gfor_fndecl_caf_change_team, gfor_fndecl_caf_end_team)
112         (gfor_fndecl_caf_sync_team, gfor_fndecl_caf_get_team)
113         (gfor_fndecl_caf_team_number): add functions and definitions.
114         * trans-intrinsic.c (conv_caf_send, conv_intrinsic_team_number): add
115         new function and team_type argument support.
116         * trans-stmt.c (gfc_trans_form_team, gfc_trans_change_team)
117         (gfc_trans_end_team, gfc_trans_sync_team): add new functions.
118         * trans-stmt.h: add new prototypes.
119         * trans-types.c (gfc_get_derived_type): check condition for team_type.
120         * trans.c (trans_code): new exec cases for form team, change team, end
121         team, and sync team.
122         * trans.h: add new prototypes.
124 2018-01-26  Steven G. Kargl  <kargl@gcc.gnu.org>
126         PR fortran/83998
127         * simplify.c (compute_dot_product):  Initialize result to INTEGER(1) 0
128         or .false.  The summation does the correct type conversion.
129         (gfc_simplify_dot_product): Special case zero-sized arrays.
131 2018-25-01  Paul Thomas  <pault@gcc.gnu.org>
133         PR fortran/37577
134         * array.c (gfc_match_array_ref): If standard earlier than F2008
135         it is an error if the reference dimension is greater than 7.
136         libgfortran.h : Increase GFC_MAX_DIMENSIONS to 15. Change the
137         dtype masks and shifts accordingly.
138         * trans-array.c (gfc_conv_descriptor_dtype): Use the dtype
139         type node to check the field.
140         (gfc_conv_descriptor_dtype): Access the rank field of dtype.
141         (duplicate_allocatable_coarray): Access the rank field of the
142         dtype descriptor rather than the dtype itself.
143         * trans-expr.c (get_scalar_to_descriptor_type): Store the type
144         of 'scalar' on entry and use its TREE_TYPE if it is ARRAY_TYPE
145         (ie. a character).
146         (gfc_conv_procedure_call): Pass TREE_OPERAND (tmp,0) to
147         get_scalar_to_descriptor_type if the actual expression is a
148         constant.
149         (gfc_trans_structure_assign): Assign the rank directly to the
150         dtype rank field.
151         * trans-intrinsic.c (gfc_conv_intrinsic_rank): Cast the result
152         to default integer kind.
153         (gfc_conv_intrinsic_sizeof): Obtain the element size from the
154         'elem_len' field of the dtype.
155         * trans-io.c (gfc_build_io_library_fndecls): Replace
156         gfc_int4_type_node with dtype_type_node where necessary.
157         (transfer_namelist_element): Use gfc_get_dtype_rank_type for
158         scalars.
159         * trans-types.c : Provide 'get_dtype_type_node' to acces the
160         dtype_type_node and, if necessary, build it.
161         The maximum size of an array element is now determined by the
162         maximum value of size_t.
163         Update the description of the array descriptor, including the
164         type def for the dtype_type.
165         (gfc_get_dtype_rank_type): Build a constructor for the dtype.
166         Distinguish RECORD_TYPEs that are BT_DERIVED or BT_CLASS.
167         (gfc_get_array_descriptor_base): Change the type of the dtype
168         field to dtype_type_node.
169         (gfc_get_array_descr_info): Get the offset to the rank field of
170         the dtype.
171         * trans-types.h : Add a prototype for 'get_dtype_type_node ()'.
172         * trans.h : Define the indices of the dtype fields.
174 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
176         PR fortran/83866
177         * decl.c (gfc_match_derived_decl): If eos not matched, recover
178         and emit error about garbage after declaration.
180 2018-23-01  Paul Thomas  <pault@gcc.gnu.org>
182         PR fortran/83898
183         * trans-stmt.c (trans_associate_var): Do not set cst_array_ctor
184         for characters.
186 2018-01-22  Janne Blomqvist  <jb@gcc.gnu.org>
188         PR 78534
189         PR 83704
190         * arith.c (gfc_arith_concat): Use size_t for string length.
191         (gfc_compare_string): Likewise.
192         (gfc_compare_with_Cstring): Likewise.
193         * array.c (gfc_resolve_character_array_constructor): Use
194         HOST_WIDE_INT, gfc_mpz_get_hwi.
195         * check.c (gfc_check_fe_runtime_error): Use size_t.
196         * data.c (create_character_initializer): Use HOST_WIDE_INT,
197         gfc_extract_hwi.
198         * decl.c (gfc_set_constant_character_len): Use gfc_charlen_t.
199         (add_init_expr_to_sym): Use HOST_WIDE_INT.
200         * expr.c (gfc_build_init_expr): Use HOST_WIDE_INT,
201         gfc_extract_hwi.
202         (gfc_apply_init): Likewise.
203         * match.h (gfc_set_constant_character_len): Update prototype.
204         * primary.c (match_string_constant): Use size_t.
205         * resolve.c (resolve_ordinary_assign): Use HOST_WIDE_INT,
206         gfc_mpz_get_hwi.
207         * simplify.c (init_result_expr): Likewise.
208         (gfc_simplify_len_trim): Use size_t.
209         * target-memory.c (gfc_encode_character): Use size_t.
210         (gfc_target_encode_expr): Use HOST_WIDE_INT, gfc_mpz_get_hwi.
211         (interpret_array): Use size_t.
212         (gfc_interpret_character): Likewise.
213         * target-memory.h (gfc_encode_character): Update prototype.
214         (gfc_interpret_character): Likewise.
215         (gfc_target_interpret_expr): Likewise.
216         * trans-const.c (gfc_build_string_const): Use size_t for length
217         argument.
218         (gfc_build_wide_string_const): Likewise.
219         * trans-const.h (gfc_build_string_const): Likewise.
220         (gfc_build_wide_string_const): Likewise.
222 2018-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
224         PR fortran/83900
225     * simplify.c (gfc_simplify_matmul): Set return type correctly.
227 2018-01-19  Steven G. Kargl  <kargl@gcc.gnu.org>
229         PR fortran/83900
230         * simplify.c (gfc_simplify_matmul): Delete bogus assertion.
232 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
234         PR fortran/83864
235         * expr.c (add_init_expr_to_sym): Do not dereference NULL pointer.
237 2018-01-17  Harald Anlauf  <anlauf@gmx.de>
239         PR fortran/83874
240         * decl.c (add_init_expr_to_sym): Do not dereference NULL pointer.
242 2018-01-15  Louis Krupp  <louis.krupp@zoho.com>
244         PR fortran/82257
245         * interface.c (compare_rank): Don't try to retrieve CLASS_DATA
246         from symbol marked unlimited polymorphic.
247         * resolve.c (resolve_structure_cons): Likewise.
248         * misc.c (gfc_typename): Don't dereference derived->components
249         if it's NULL.
251 2018-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
253         PR fortran/54613
254         * gfortran.h (gfc_check_f): Rename f4ml to f5ml.
255         (gfc_logical_4_kind): New macro
256         * intrinsic.h (gfc_simplify_minloc): Add a gfc_expr *argument.
257         (gfc_simplify_maxloc): Likewise.
258         (gfc_resolve_maxloc): Likewise.
259         (gfc_resolve_minloc): Likewise.
260         * check.c (gfc_check_minloc_maxloc): Add checking for "back"
261         argument; also raise error if it is used (for now). Add it
262         if it isn't present.
263         * intrinsic.c (add_sym_4ml): Rename to
264         (add_sym_5ml), adjust for extra argument.
265         (add_functions): Add "back" constant. Adjust maxloc and minloc
266         for back argument.
267         * iresolve.c (gfc_resolve_maxloc): Add back argument. If back is
268         not of gfc_logical_4_kind, convert.
269         (gfc_resolve_minloc): Likewise.
270         * simplify.c (gfc_simplify_minloc): Add back argument.
271         (gfc_simplify_maxloc): Likewise.
272         * trans-intinsic.c (gfc_conv_intrinsic_minmaxloc): Rename last
273         argument to %VAL to ensure passing by value.
274         (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_minmaxloc
275         also for library calls.
277 2018-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
279         PR fortran/82007
280         * resolve.c (resolve_transfer): Delete code looking for 'DT'
281         format specifiers in format strings. Set formatted to true if a
282         format string or format label is present.
283         * trans-io.c (get_dtio_proc): Likewise. (transfer_expr): Fix
284         whitespace.
286 2018-01-13  Thomas Koenig <tkoenig@gcc.gnu.org>
288         PR fortran/83744
289         * dump-parse-tree.c (get_c_type_name): Remove extra line.
290         Change for loop to use declaration in for loop. Handle BT_LOGICAL
291         and BT_CHARACTER.
292         (write_decl): Add where argument. Fix indentation. Replace
293         assert with error message. Add typename to warning
294         in comment.
295         (write_type): Adjust locus to call of write_decl.
296         (write_variable): Likewise.
297         (write_proc): Likewise. Replace assert with error message.
299 2018-01-13  Paul Thomas  <pault@gcc.gnu.org>
301         PR fortran/52162
302         * trans-expr.c (gfc_trans_scalar_assign): Flag is_alloc_lhs if
303         the rhs expression is neither an elemental nor a conversion
304         function.
306         PR fortran/83622
307         * trans-array.c (is_pointer_array): Remove unconditional return
308         of false for -fopenmp.
310 2018-01-13  Thomas Koenig <tkoenig@gcc.gnu.org>
311         <emsr@gcc.gnu.org>
313         PR fortran/83803
314         * dump-parse-tree.c (write_proc): Always emit closing parenthesis
315         for functions.
317 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
319         PR fortran/82367
320         * resolve.c (resolve_allocate_expr): Check for NULL pointer.
322 2018-01-10  Steven G. Kargl  <kargl@gcc.gnu.org>
324         PR fortran/83093
325         * resolve.c (resolve_charlen): Check the type of cl->length
326         after resolution.
328 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
330         PR fortran/83740
331         * trans-array.c (gfc_trans_array_ctor_element): Fix formatting.
333 2018-01-10  Janne Blomqvist  <jb@gcc.gnu.org>
335         PR fortran/83740
336         * trans-array.c (gfc_trans_array_ctor_element): Convert RHS to the
337         LHS type when assigning.
339 2018-01-09  Steven G. Kargl  <kargl@gcc.gnu.org>
341         PR fortran/83742
342         * expr.c (gfc_is_simply_contiguous): Check for NULL pointer.
344 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
346         * match.c (gfc_match_allocate): Check for NULL pointer.
348 2018-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
350         * expr.c (gfc_check_pointer_assign): Fix typo in comment.
352 2018-01-08  Paul Thomas  <pault@gcc.gnu.org>
354         PR fortran/83611
355         * decl.c (gfc_get_pdt_instance): If parameterized arrays have
356         an initializer, convert the kind parameters and add to the
357         component if the instance.
358         * trans-array.c (structure_alloc_comps): Add 'is_pdt_type' and
359         use it with case COPY_ALLOC_COMP. Call 'duplicate_allocatable'
360         for parameterized arrays. Clean up typos in comments. Convert
361         parameterized array initializers and copy into the array.
362         * trans-expr.c (gfc_trans_scalar_assign): Do a deep copy for
363         parameterized types.
364         *trans-stmt.c (trans_associate_var): Deallocate associate vars
365         as necessary, when they are PDT function results for example.
367         PR fortran/83731
368         * trans-array.c (structure_alloc_comps): Only compare len parms
369         when they are declared explicitly.
371 2018-01-06  Janne Blomqvist  <jb@gcc.gnu.org>
373         PR fortran/50892
374         * trans-expr.c (gfc_trans_pointer_assignment): fold_convert rhs to
375         lhs type.
377 2018-01-05  Janne Blomqvist  <jb@gcc.gnu.org>
379         PR fortran/78534
380         PR fortran/66310
381         * array.c (got_charlen): Use gfc_charlen_int_kind.
382         * class.c (gfc_find_derived_vtab): Use gfc_size_kind instead of
383         hardcoded kind.
384         (find_intrinsic_vtab): Likewise.
385         * decl.c (match_char_length): Use gfc_charlen_int_kind.
386         (add_init_expr_to_sym): Use gfc_charlen_t and gfc_charlen_int_kind.
387         (gfc_match_implicit): Use gfc_charlen_int_kind.
388         * dump-parse-tree.c (show_char_const): Use gfc_charlen_t and size_t.
389         (show_expr): Use HOST_WIDE_INT_PRINT_DEC.
390         * expr.c (gfc_get_character_expr): Length parameter of type
391         gfc_charlen_t.
392         (gfc_get_int_expr): Value argument of type HOST_WIDE_INT.
393         (gfc_extract_hwi): New function.
394         (simplify_const_ref): Make string_len of type gfc_charlen_t.
395         (gfc_simplify_expr): Use HOST_WIDE_INT for substring refs.
396         * frontend-passes.c (optimize_trim): Use gfc_charlen_int_kind.
397         * gfortran.h (gfc_mpz_get_hwi): New prototype.
398         (gfc_mpz_set_hwi): Likewise.
399         (gfc_charlen_t): New typedef.
400         (gfc_expr): Use gfc_charlen_t for character lengths.
401         (gfc_size_kind): New extern variable.
402         (gfc_extract_hwi): New prototype.
403         (gfc_get_character_expr): Use gfc_charlen_t for character length.
404         (gfc_get_int_expr): Use HOST_WIDE_INT type for value argument.
405         * gfortran.texi: Update description of hidden string length argument.
406         * iresolve.c (check_charlen_present): Use gfc_charlen_int_kind.
407         (gfc_resolve_char_achar): Likewise.
408         (gfc_resolve_repeat): Pass string length directly without
409         temporary, use gfc_charlen_int_kind.
410         (gfc_resolve_transfer): Use gfc_charlen_int_kind.
411         * match.c (select_intrinsic_set_tmp): Use HOST_WIDE_INT for charlen.
412         * misc.c (gfc_mpz_get_hwi): New function.
413         (gfc_mpz_set_hwi): New function.
414         * module.c (atom_int): Change type from int to HOST_WIDE_INT.
415         (parse_integer): Don't complain about large integers.
416         (write_atom): Use HOST_WIDE_INT for integers.
417         (mio_integer): Handle integer type mismatch.
418         (mio_hwi): New function.
419         (mio_intrinsic_op): Use HOST_WIDE_INT.
420         (mio_array_ref): Likewise.
421         (mio_expr): Likewise.
422         * primary.c (match_substring): Use gfc_charlen_int_kind.
423         * resolve.c (resolve_substring_charlen): Use gfc_charlen_int_kind.
424         (resolve_character_operator): Likewise.
425         (resolve_assoc_var): Likewise.
426         (resolve_select_type): Use HOST_WIDE_INT for charlen, use snprintf.
427         (resolve_charlen): Use mpz_sgn to determine sign.
428         * simplify.c (gfc_simplify_repeat): Use HOST_WIDE_INT/gfc_charlen_t
429         instead of long.
430         * symbol.c (generate_isocbinding_symbol): Use gfc_charlen_int_kind.
431         * target-memory.c (size_character): Length argument of type
432         gfc_charlen_t.
433         (gfc_encode_character): Likewise.
434         (gfc_interpret_character): Use gfc_charlen_t.
435         * target-memory.h (gfc_encode_character): Modify prototype.
436         * trans-array.c (gfc_trans_array_ctor_element): Use existing type.
437         (get_array_ctor_var_strlen): Use gfc_conv_mpz_to_tree_type.
438         (trans_array_constructor): Use existing type.
439         (get_array_charlen): Likewise.
440         * trans-const.c (gfc_conv_mpz_to_tree_type): New function.
441         * trans-const.h (gfc_conv_mpz_to_tree_type): New prototype.
442         * trans-decl.c (gfc_trans_deferred_vars): Use existing type.
443         (add_argument_checking): Likewise.
444         * trans-expr.c (gfc_class_len_or_zero_get): Build const of type
445         gfc_charlen_type_node.
446         (gfc_conv_intrinsic_to_class): Use gfc_charlen_int_kind instead of
447         4, fold_convert to correct type.
448         (gfc_conv_class_to_class): Build const of type size_type_node for
449         size.
450         (gfc_copy_class_to_class): Likewise.
451         (gfc_conv_string_length): Use same type in expression.
452         (gfc_conv_substring): Likewise, use HOST_WIDE_INT for charlen.
453         (gfc_conv_string_tmp): Make sure len is of the right type.
454         (gfc_conv_concat_op): Use same type in expression.
455         (gfc_conv_procedure_call): Likewise.
456         (fill_with_spaces): Comment out memset() block due to spurious
457         -Wstringop-overflow warnings.
458         (gfc_trans_string_copy): Use gfc_charlen_type_node.
459         (alloc_scalar_allocatable_for_subcomponent_assignment):
460         fold_convert to right type.
461         (gfc_trans_subcomponent_assign): Likewise.
462         (trans_class_vptr_len_assignment): Build const of correct type.
463         (gfc_trans_pointer_assignment): Likewise.
464         (alloc_scalar_allocatable_for_assignment): fold_convert to right
465         type in expr.
466         (trans_class_assignment): Build const of correct type.
467         * trans-intrinsic.c (gfc_conv_associated): Likewise.
468         (gfc_conv_intrinsic_repeat): Do calculation in sizetype.
469         * trans-io.c (gfc_build_io_library_fndecls): Use
470         gfc_charlen_type_node for character lengths.
471         (set_string): Convert to right type in assignment.
472         * trans-stmt.c (gfc_trans_label_assign): Build const of
473         gfc_charlen_type_node.
474         (trans_associate_var): Likewise.
475         (gfc_trans_character_select): Likewise.
476         (gfc_trans_allocate): Likewise, don't typecast strlen result.
477         (gfc_trans_deallocate): Don't typecast strlen result.
478         * trans-types.c (gfc_size_kind): New variable.
479         (gfc_init_types): Determine gfc_charlen_int_kind and gfc_size_kind
480         from size_type_node.
481         * trans-types.h: Fix comment.
483 2018-01-04  Thomas Koenig  <tkoenig@gcc.gnu.org>
485         PR fortran/83683
486         PR fortran/45689
487         * check.c (gfc_check_eoshift): Check for string length and
488         for conformance of boundary.
489         * intrinsic.c (add_functions): Add gfc_simplify_eoshift.
490         * intrinsic.h: Add prototype for gfc_simplify_eoshift.
491         * simplify.c (gfc_simplify_eoshift): New function.
493 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
494             Alan Hayward  <alan.hayward@arm.com>
495             David Sherwood  <david.sherwood@arm.com>
497         * trans-types.c (gfc_type_for_mode): Handle MODE_VECTOR_BOOL.
499 2018-01-03  Richard Sandiford  <richard.sandiford@linaro.org>
500             Alan Hayward  <alan.hayward@arm.com>
501             David Sherwood  <david.sherwood@arm.com>
503         * trans-types.c (gfc_type_for_mode): Check valid_vector_subparts_p.
505 2018-01-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
507         PR fortran/83664
508         * check.c (gfc_check_eoshift): Error for missing boundary if array
509         is not one of the standard types.
511 2018-01-03  Jakub Jelinek  <jakub@redhat.com>
513         Update copyright years.
515         * gfortranspec.c (lang_specific_driver): Update copyright notice
516         dates.
517         * gfc-internals.texi: Bump @copying's copyright year.
518         * gfortran.texi: Ditto.
519         * intrinsic.texi: Ditto.
520         * invoke.texi: Ditto.
522 2017-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
524         PR fortran/45689
525         * intrinsic.c (add_function): Add gfc_simplify_maxloc and
526         gfc_simplify_minloc to maxloc and minloc, respectively.
527         * intrinsic.h: Add prototypes for gfc_simplify_minloc
528         and gfc_simplify_maxloc.
529         * simplify.c (min_max_chose): Adjust prototype.  Modify function
530         to have a return value which indicates if the extremum was found.
531         (is_constant_array_expr): Fix typo in comment.
532         (simplify_minmaxloc_to_scalar): New function.
533         (simplify_minmaxloc_nodim): New function.
534         (new_array): New function.
535         (simplify_minmaxloc_to_array): New function.
536         (gfc_simplify_minmaxloc): New function.
537         (simplify_minloc): New function.
538         (simplify_maxloc): New function.
540 2018-01-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
542         PR fortran/45689
543         PR fortran/83650
544         * simplify.c (gfc_simplify_cshift): Re-implement to allow full
545         range of arguments.
547 2018-01-01  Paul Thomas  <pault@gcc.gnu.org>
549         PR fortran/83076
550         * resolve.c (resolve_fl_derived0): Add caf_token fields for
551         allocatable and pointer scalars, when -fcoarray selected.
552         * trans-types.c (gfc_copy_dt_decls_ifequal): Copy the token
553         field as well as the backend_decl.
554         (gfc_get_derived_type): Flag GFC_FCOARRAY_LIB for module
555         derived types that are not vtypes. Components with caf_token
556         attribute are pvoid types. For a component requiring it, find
557         the caf_token field and have the component token field point to
558         its backend_decl.
560         PR fortran/83319
561         *trans-types.c (gfc_get_array_descriptor_base): Add the token
562         field to the descriptor even when codimen not set.
564 Copyright (C) 2018 Free Software Foundation, Inc.
566 Copying and distribution of this file, with or without modification,
567 are permitted in any medium without royalty provided the copyright
568 notice and this notice are preserved.