]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/fortran/ChangeLog
PR rtl-optimization/89445
[thirdparty/gcc.git] / gcc / fortran / ChangeLog
CommitLineData
0e8f933e 12019-02-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2
3 PR fortran/84387
4 * trans-io.c (transfer_expr): Do not return if there are no
5 components to the derived type or class.
6
42ae61b1 72019-02-23 Paul Thomas <pault@gcc.gnu.org>
8
9 PR fortran/88117
10 * resolve.c (deferred_op_assign): Return if the lhs expression
11 has the pointer attribute.
12 * trans-expr.c (gfc_trans_assignment_1): Do not fix the string
13 length if the lhs expression has the pointer attribute.
14
889b0295 152019-02-23 Paul Thomas <pault@gcc.gnu.org>
16
17 PR fortran/89385
18 PR fortran/89366
19 * decl.c (gfc_verify_c_interop_param): Restriction on string
20 length being one is lifted for F2018.
21 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): For scalar
22 characters with intent in, make a temporary and copy the result
23 of the expression evaluation into it.
24 (gfc_conv_procedure_call): Set a flag for character formal args
25 having a character length that is not unity. If the procedure
26 is bind C, call gfc_conv_gfc_desc_to_cfi_desc in this case.
27 Also, extend bind C calls to unconditionally convert both
28 pointers and allocatable expressions.
29
8bf99999 302019-02-23 David Malcolm <dmalcolm@redhat.com>
31 Jakub Jelinek <jakub@redhat.com>
32
33 PR middle-end/88074
34 * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
35 mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
36 (norm2_add_squared): Likewise. Use mp_exp_t rather than mpfr_exp_t.
37
93fd04e7 382019-02-22 Harald Anlauf <anlauf@gmx.de>
39
40 PR fortran/83057
41 * io.c (gfc_match_open): Fix logic in checks of OPEN statement
42 when NEWUNIT= is specified.
43
4bfac94e 442019-02-22 Steven G. Kargl <kargl@gcc.gnu.org>
45
46 PR fortran/89431
47 * gfortran.texi: Fix documentation to match the implementation.
48
1d740b07 492019-02-22 Thomas Schwinge <thomas@codesourcery.com>
50 Cesar Philippidis <cesar@codesourcery.com>
51
52 PR fortran/72741
53 * gfortran.h (oacc_routine_lop): New enum.
54 (symbol_attribute): Use it.
55 * openmp.c (gfc_oacc_routine_dims): Replace with...
56 (gfc_oacc_routine_lop): ... this new function.
57 (gfc_match_oacc_routine): Adjust.
58 * trans-decl.c (add_attributes_to_decl): Likewise.
59
9b423754 602019-02-22 Thomas Schwinge <thomas@codesourcery.com>
61
62 * openmp.c (gfc_match_oacc_declare): Revert earlier changes.
63
827e219d 642019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
65
66 * dump-parse-tree.c (debug): Implement for gfc_expr *,
67 gfc_typespec *, gfc_typespec and gfc_symbol *.
68
5132f59f 692019-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
70
71 PR fortran/86119
72 * class.c (gfc_get_len_component): Add argument k for kind.
73 If the kind of the resulting expression is not equal to k,
74 convert it.
75 * gfortran.h (gfc_len_component): Adjust prototype.
76 * simplify.c (gfc_simplify_len): Pass kind to
77 gfc_get_len_component.
78
437f26ff 792019-02-20 Martin Liska <mliska@suse.cz>
80
81 * gfortran.texi: Change singular to plural.
82
f4ed9e9b 832019-02-20 Martin Liska <mliska@suse.cz>
84
85 * gfortran.texi: Document Fortran header directive.
86
4946f3a3 872019-02-19 Thomas Koenig <tkoenig@gcc.gnu.org>
88
89 PR fortran/89384
90 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): If the dummy
91 argument is contiguous and the actual argument may not be,
92 use gfc_conv_subref_array_arg.
93
336ccf28 942019-02-19 Thomas Schwinge <thomas@codesourcery.com>
d572a4c3 95
96 PR c/87924
97 * openmp.c (gfc_match_omp_clauses): Add representation of wait clause
98 without argument as 'wait (GOMP_ASYNC_NOVAL)'.
99
d50eaffb 1002019-02-18 Thomas Koenig <tkoenig@gcc.gnu.org>
101
102 PR fortran/87689
103 * trans-decl.c (gfc_get_extern_function_decl): Add argument
104 actual_args and pass it through to gfc_get_function_type.
105 * trans-expr.c (conv_function_val): Add argument actual_args
106 and pass it on to gfc_get_extern_function_decl.
107 (conv_procedure_call): Pass actual arguments to conv_function_val.
108 * trans-types.c (get_formal_from_actual_arglist): New function.
109 (gfc_get_function_type): Add argument actual_args. Generate
110 formal args from actual args if necessary.
111 * trans-types.h (gfc_get_function_type): Add optional argument.
112 * trans.h (gfc_get_extern_function_decl): Add optional argument.
113
dd2e9d21 1142019-02-18 Martin Liska <mliska@suse.cz>
115
116 * decl.c (gfc_match_gcc_builtin): Add support for filtering
117 of builtin directive based on multilib ABI name.
118
4c6b245a 1192019-02-17 Harald Anlauf <anlauf@gmx.de>
120
121 PR fortran/88299
122 * resolve.c (resolve_common_blocks,resolve_common_vars): Move
123 check for obsolent COMMON feature in F2018 to better place.
124
b6c59db3 1252019-02-17 Harald Anlauf <anlauf@gmx.de>
126
127 PR fortran/89077
128 * decl.c (gfc_set_constant_character_len): Clear original string
129 representation after padding has been performed to target length.
130
d43619f4 1312019-02-16 Jakub Jelinek <jakub@redhat.com>
132
133 PR middle-end/88074
134 * simplify.c (simplify_transformation_to_array): Run post_op
135 immediately after processing corresponding row, rather than at the
136 end.
137 (norm2_scale): New variable.
138 (add_squared): Rename to ...
139 (norm2_add_squared): ... this. Scale down operand and/or result
140 if needed.
141 (do_sqrt): Rename to ...
142 (norm2_do_sqrt): ... this. Handle the result == e case. Scale up
143 result and clear norm2_scale.
144 (gfc_simplify_norm2): Clear norm2_scale. Change add_squared to
145 norm2_add_squared and &do_sqrt to norm2_do_sqrt. Scale up result
146 and clear norm2_scale again.
147
9ad48282 1482019-02-17 Thomas Koenig <tkoenig@gcc.gnu.org>
149
150 PR fortran/71066
151 * trans-decl.c (generate_coarray_sym_init): For an array
152 constructor in a DATA statement of a coarray variable, set the
153 rank to 1 to avoid confusion later on. If the constructor
154 contains only one value, use that for initiailizig.
155
9da40462 1562019-02-14 Janne Blomqvist <jb@gcc.gnu.org>
157
158 PR fortran/81552
159 * gfortran.h (gfc_option_t): Make flag_init_integer_value a long.
160 * options.c (gfc_handle_option): Use strtol instead of atoi.
161 * invoke.texi: Document -finit-integer behavior in more detail.
162
4382a5c9 1632019-02-14 Harald Anlauf <anlauf@gmx.de>
164
165 PR fortran/88248
166 * symbol.c: Move check for labeled DO statement from
167 gfc_define_st_label to gfc_reference_st_label.
168
dac1fbf6 1692019-02-14 Cesar Philippidis <cesar@codesourcery.com>
170
171 PR fortran/72715
172 * openmp.c (resolve_oacc_nested_loops): Error on do concurrent
173 loops.
174
933a5ec7 1752019-02-13 Martin Liska <mliska@suse.cz>
176
177 PR fortran/88649
178 * resolve.c (resolve_operator): Initialize 't' right
179 after function entry. Skip switch (e->value.op.op)
180 for -fdec operands that become function calls.
181
dd686aa9 1822019-02-10 Thomas Koenig <tkoenig@gcc.gnu.org>
183
3c0f9ba3 184 PR fortran/71723
dd686aa9 185 * expr.c (gfc_check_assign): Add argument is_init_expr. If we are
186 looking at an init expression, issue error if the target is not a
187 TARGET and we are not looking at a procedure pointer.
188 * gfortran.h (gfc_check_assign): Add optional argument
189 is_init_expr.
190
517c0439 1912019-02-09 Harald Anlauf <anlauf@gmx.de>
192
193 PR fortran/89077
194 * resolve.c (gfc_resolve_substring_charlen): Check substring
195 length for constantness prior to general calculation of length.
196
7d41610c 1972019-02-09 Paul Thomas <pault@gcc.gnu.org>
198
199 PR fortran/89200
200 * trans-array.c (gfc_trans_create_temp_array): Set the 'span'
201 field for derived types.
202
df378257 2032019-02-04 Harald Anlauf <anlauf@gmx.de>
204
205 PR fortran/89077
206 * decl.c (add_init_expr_to_sym): Copy length of string initializer
207 to declared symbol.
208
6c23b2c4 2092019-02-04 Martin Liska <mliska@suse.cz>
210
211 PR fortran/89185
212 * resolve.c (resolve_ref): Remove breakout variable as
213 we need to prevent prev = &(*prev)->next to happen
214 with *prev == NULL.
215
d7b02225 2162019-02-04 Martin Liska <mliska@suse.cz>
217
218 PR fortran/88912
219 * scanner.c (load_file): Report error for -fpre-include
220 file and do not ICE.
221
8151f617 2222019-02-02 Dominique d'Humieres <dominiq@gcc.gnu.org>
223
224 PR fortran/81344
225 * invoke.texi: Document the behavior of repeated -ffpe-trap
226 and -ffpe-summary.
227
b399769c 2282019-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
229
230 PR fortran/88298
231 * arith.c (gfc_int2int): Do not warn if src->do_not_warn is set.
232 * gfortran.h (gfc_expr): Add flag do_not_warn.
233 * intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if
234 no warning is desired.
235
1834f7a3 2362019-02-02 Paul Thomas <pault@gcc.gnu.org>
237
238 PR fortran/88393
239 * trans-expr.c (gfc_conv_procedure_call): For derived entities,
240 passed in parentheses to class formals, invert the order of
241 copying allocatable components to taking the _data of the
242 class expression.
243
ba3862bc 2442019-02-02 Paul Thomas <pault@gcc.gnu.org>
245
246 PR fortran/88980
247 * trans-array.c (gfc_array_init_size): Add element_size to the
248 arguments.
249 (gfc_array_allocate): Remove the recalculation of the size of
250 the element and use element_size from the call to the above.
251 Unconditionally set the span field of the descriptor.
252
285eb84d 2532019-02-02 Paul Thomas <pault@gcc.gnu.org>
254
255 PR fortran/88685
256 * expr.c (is_subref_array): Move the check for class pointer
257 dummy arrays to after the reference check. If we haven't seen
258 an array reference other than an element and a component is not
259 class or derived, return false.
260
49b830df 2612019-02-01 Jakub Jelinek <jakub@redhat.com>
262
263 PR fortran/83246
264 PR fortran/89084
265 * trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs
266 if sym->ns->construct_entities rather than if
267 sym->ns->parent->code->op == EXEC_BLOCK.
268
a82041dd 2692019-01-31 Thomas Koenig <tkoenig@gcc.gnu.org>
270
271 PR fortran/88669
272 * resolve.c (resolve_component): If the reference is a BT_CLASS,
273 copy the contiguous attribute from the reference and use the
274 correct attributes.
275
a11ed94b 2762019-01-30 Jerry DeLisle <jvdelisle@gcc.gnu.org>
277
278 PR fortran/52564
279 * io.c (match_io): Add check for comma after '*' without subsequent
280 IO list.
281
5851d123 2822019-01-30 Dominique d'Humieres <dominiq@gcc.gnu.org>
283
284 PR fortran/52884
285 * invoke.texi: Document the promotion of double precision
286 constants.
287
659d7fd3 2882019-01-29 Thomas Koenig <tkoenig@gcc.gnu.org>
289
290 PR fortran/57048
291 * interface.c (gfc_compare_types): If a derived type and an
292 integer both have a derived type, and they are identical,
293 this is a C binding type and compares equal.
294
bc3eb257 2952019-01-26 Harald Anlauf <anlauf@gmx.de>
296
297 PR fortran/57553
298 * expr.c (check_inquiry): Add list of inquiry functions allowed in
299 constant expressions for F2008+.
300
2ae44fa6 3012019-01-25 Steven G. Kargl <kargl@gcc.gnu.org>
302
303 PR fortran/85780
304 * decl.c (gfc_match_subroutine): Check for conflict between BIND(C)
305 and alternative return.
306
297fd295 3072019-01-24 Paul Thomas <pault@gcc.gnu.org>
308
309 PR fortran/88929
310 * trans-array.c (gfc_conv_descriptor_elem_len): New function.
311 * trans-array.h : Add prototype for above.
312 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Take account of
313 assumed rank arrays being flagged by rank = -1 in expressions.
314 Intent in arrays need a pointer to a copy of the data to be
315 assigned to the descriptor passed for conversion. This should
316 then be freed, together with the CFI descriptor on return from
317 the C call.
318
4348a41f 3192019-01-22 Harald Anlauf <anlauf@gmx.de>
320
321 PR fortran/88579
322 * trans-expr.c (gfc_conv_power_op): Handle cases of (2**e) ** integer
323 and (- 2**e) ** integer.
324
c81c2702 3252019-01-19 Dominique d'Humieres <dominiq@gcc.gnu.org>
326
327 PR fortran/37835
328 * resolve.c (resolve_types): Add !flag_automatic.
329 * symbol.c (gfc_add_save): Silence warnings.
330
19081b87 3312019-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
332
333 PR fortran/77960
334 * io.c (match_io_element): input-item cannot be an external function.
4348a41f 335
b7e6520a 3362018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
337 Paul Thomas <pault@gcc.gnu.org>
338
339 PR fortran/56789
340 * trans-expr.c (gfc_conv_procedure_call): Call
341 gfc_conv_subref_array_arg if the formal arg is contiguous
342 and the actual arg may not be.
343
66f2cfae 3442019-01-17 Thomas Koenig <tkoenig@gcc.gnu.org>
345
346 PR fortran/88871
347 * resolve.c (resolve_ref): Fix logic for removal of
348 reference.
349
7b60c131 3502019-01-19 Jakub Jelinek <jakub@redhat.com>
351
352 PR fortran/88902
353 * trans-decl.c (gfc_get_symbol_decl): Don't add length to function
354 or parent function if it has been added there already.
355
0b953692 3562019-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
357
a96be852 358 PR fortran/43136
0b953692 359 * resolve.c (resolve_array_ref): Add equal_length argument; set it
360 if the length of the substring equals that of the orignal
361 variable.
362 (resolve_ref): Remove the substring if it is equal in length to
363 the original variable, unless it is an EXPR_SUBSTRING).
364
ef1b2a98 3652019-01-15 Steven G. Kargl <kargl@gcc.gnu.org>
366
367 PR fortran/81849
368 * resolve.c (resolve_symbol): Host associated varaibles can appear
369 in the specification statement of a RESULT array.
370
8f563733 3712019-01-15 Paul Thomas <pault@gcc.gnu.org>
372
373 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs
374 that are indirect references; ie. dummy arguments.
375
0cc7cbe4 3762019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org>
377
378 PR fortran/88803
379 * gfortran.texi: Replace @xref with @ref and adjust the sentence.
380
70409dee 3812019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
382
383 PR fortran/57992
7b60c131 384 * trans-array.c (gfc_conv_array_parameter): Do not pack/unpack
70409dee 385 functions with contiguous results.
386
ae57d8c7 3872019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org>
388
389 PR fortran/59345
390 * trans-array.c (gfc_conv_array_parameter): Remove TODO. Do not
391 pack/unpack results of functions which return an explicit-shaped
392 or allocatable array.
393
c8f3fe68 3942019-01-12 Steven G. Kargl <kargl@gcc.gnu.org>
395
396 PR fortran/61765
397 * resolve.c (gfc_verify_binding_labels): Break if-elseif-elseif
398 structure into independent if's with a return to simplify logic.
399 Avoid a check for ENTRY name with bind(c).
400
77ddff12 4012019-01-12 Paul Thomas <pault@gcc.gnu.org>
402
7b60c131 403 * gfortran.texi: Add description in sections on TS 29113 and
77ddff12 404 further interoperability with C.
405 * trans-array.c (gfc_conv_descriptor_attribute): New function.
406 (gfc_get_dataptr_offset): Remove static function attribute.
7b60c131 407 * trans-array.h: Add prototypes for above functions.
408 * trans-decl.c: Add declarations for the library functions
77ddff12 409 cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc.
410 * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function.
411 (gfc_conv_procedure_call): Call it for scalar and array actual
412 arguments, when the formal arguments are bind_c with assumed
413 shape or assumed rank.
7b60c131 414 * trans.h: External declarations for gfor_fndecl_cfi_to_gfc
77ddff12 415 and gfor_fndecl_gfc_to_cfi.
416
0e8475b7 4172019-01-11 Steven G. Kargl <kargl@gcc.gnu.org>
418
419 PR fortran/35031
420 * decl.c (gfc_match_entry): Check for F2018:C1546. Fix nearby
421 mis-indentation.
422
45b37eaa 4232019-01-11 Jakub Jelinek <jakub@redhat.com>
424
425 PR middle-end/85956
426 PR lto/88733
427 * trans-openmp.c: Include attribs.h.
428 (gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle
429 VAR_DECL max bound with "omp dummy var" attribute like NULL or
430 error_mark_node - recompute number of elts independently.
431
04afaf6a 4322019-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
433
434 PR fortran/59345
45b37eaa 435 * trans-array.c (gfc_conv_parameter_array): Temporary
04afaf6a 436 arrays generated for expressions do not need to be repacked.
437
15cbe83d 4382019-01-10 Steven G. Kargl <kargl@gcc.gnu.org>
439
440 PR fortran/86322
441 * decl.c (top_var_list): Set locus of expr.
442 (gfc_match_data): Detect pointer on non-rightmost part-refs.
443
e66b219e 4442019-01-09 Steven G. Kargl <kargl@gcc.gnu.org>
445
446 PR fortran/88376
447 * resolve.c (is_illegal_recursion): Remove an assert().
448
07c11f2b 4492019-01-09 Sandra Loosemore <sandra@codesourcery.com>
450
451 PR other/16615
07c11f2b 452 * expr.c: Change "can not" to "cannot".
453
f4d3c071 4542019-01-09 Sandra Loosemore <sandra@codesourcery.com>
455
456 PR other/16615
f4d3c071 457 * class.c: Mechanically replace "can not" with "cannot".
458 * decl.c: Likewise.
459 * expr.c: Likewise.
460 * gfc-internals.texi: Likewise.
461 * intrinsic.texi: Likewise.
462 * invoke.texi: Likewise.
463 * io.c: Likewise.
464 * match.c: Likewise.
465 * parse.c: Likewise.
466 * primary.c: Likewise.
467 * resolve.c: Likewise.
468 * symbol.c: Likewise.
469 * trans-array.c: Likewise.
470 * trans-decl.c: Likewise.
471 * trans-intrinsic.c: Likewise.
472 * trans-stmt.c: Likewise.
473
9f096803 4742019-01-09 Thomas Koenig <tkoenig@gcc.gnu.org>
475
476 PR fortran/68426
477 * simplify.c (gfc_simplify_spread): Also simplify if the
478 type of source is an EXPR_STRUCTURE.
479
d56370db 4802019-01-08 Janus Weil <janus@gcc.gnu.org>
481
482 PR fortran/88047
483 * class.c (gfc_find_vtab): For polymorphic typespecs, the components of
484 the class container may not be available (in case of invalid code).
485
ac64cdbe 4862019-01-08 Richard Biener <rguenther@suse.de>
487
488 PR fortran/88611
489 * trans-expr.c (gfc_conv_initializer): For ISOCBINDING_NULL_*
490 directly build the expected GENERIC tree.
491
5f34f219 4922019-01-07 Thomas Koenig <tkoenig@gcc.gnu.org>
493 Harald Anlauf <anlauf@gmx.de>
494 Tobias Burnus <burnus@gcc.gnu.org>
495
496 PR fortran/45424
497 * check.c (gfc_check_is_contiguous): New function.
498 * expr.c (gfc_is_not_contiguous): New function.
499 * gfortran.h (gfc_isym_id): Add GFC_ISYM_IS_CONTIGUOUS.
500 Add prototype for gfc_is_not_contiguous.
501 * intrinsic.c (do_ts29113_check): Add GFC_ISYM_IS_CONTIGUOUS.
502 (add_function): Add is_contiguous.
503 * intrinsic.h: Add prototypes for gfc_check_is_contiguous,
504 gfc_simplify_is_contiguous and gfc_resolve_is_contiguous.
505 * intrinsic.texi: Add IS_CONTIGUOUS.
506 * iresolve.c (gfc_resolve_is_contiguous): New function.
507 * simplify.c (gfc_simplify_is_contiguous): New function.
508 * trans-decl.c (gfor_fncecl_is_contiguous0): New variable.
509 (gfc_build_intrinsic_function_decl): Add it.
510 * trans-intrinsic.c (gfc_conv_intrinsic_is_contiguous): New
511 function.
512 (gfc_conv_intrinsic_function): Handle GFC_ISYM_IS_CONTIGUOUS.
513
2abeea3d 5142019-01-06 Thomas Koenig <tkoenig@gcc.gnu.org>
515
516 PR fortran/88658
517 * gfortran.h: Add macro gfc_real_4_kind
518 * simplify.c (simplify_min_max): Special case for the types of
519 AMAX0, AMIN0, MAX1 and MIN1, which actually change the types of
520 their arguments.
521
f2aba4ef 5222019-01-05 Janus Weil <janus@gcc.gnu.org>
523
524 PR fortran/88009
525 * class.c (gfc_find_derived_vtab): Mark the _final component as
526 artificial.
527 (find_intrinsic_vtab): Ditto. Also add an extra check to avoid
528 dereferencing a null pointer and adjust indentation.
529 * resolve.c (resolve_fl_variable): Add extra check to avoid
530 dereferencing a null pointer. Move variable declarations to local scope.
531 (resolve_fl_procedure): Add extra check to avoid dereferencing a null
532 pointer.
533 * symbol.c (check_conflict): Suppress errors for artificial symbols.
534
5055fc33 5352019-01-01 Steven G. Kargl <kargl@gcc.gnu.org>
536
45b37eaa 537 * parse.c (decode_statement): Suppress "Unclassifiable statement"
5055fc33 538 error if previous error messages were emittes.
539
66aeaf4b 5402019-01-01 Thomas Koenig <tkoenig@gcc.gnu.org>
541
542 PR fortran/82743
543 * primary.c (gfc_convert_to_structure_constructor): If a character
544 in a constructor is too long, add a warning with
545 -Wcharacter-truncation.
546
3d8932fd 5472019-01-01 Jakub Jelinek <jakub@redhat.com>
8e8f6434 548
fbd26352 549 Update copyright years.
550
277184bc 551 * gfortranspec.c (lang_specific_driver): Update copyright notice
552 dates.
553 * gfc-internals.texi: Bump @copying's copyright year.
554 * gfortran.texi: Ditto.
555 * intrinsic.texi: Ditto.
556 * invoke.texi: Ditto.
2355cca7 557\f
3d8932fd 558Copyright (C) 2019 Free Software Foundation, Inc.
7dfbd804 559
560Copying and distribution of this file, with or without modification,
561are permitted in any medium without royalty provided the copyright
562notice and this notice are preserved.