1 2013-03-25 Tobias Burnus <burnus@net-b.de>
21 * check.c (gfc_var_strlen): Properly handle 0-sized string.
22 (gfc_check_c_sizeof): Use is_c_interoperable, add checks.
23 (is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
24 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
26 * expr.c (check_inquiry): Add c_sizeof, compiler_version and
28 (gfc_check_pointer_assign): Refine function result check.
29 gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
30 GFC_ISYM_C_F_POINTER, GFC_ISYM_C_F_PROCPOINTER, GFC_ISYM_C_FUNLOC,
32 (iso_fortran_env_symbol, iso_c_binding_symbol): Handle
34 (generate_isocbinding_symbol): Update prototype.
35 (get_iso_c_sym): Remove.
36 (gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
37 * intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
38 (gfc_intrinsic_sub_interface): Use it.
39 (add_functions, add_subroutines): Add missing C-binding intrinsics.
40 (gfc_intrinsic_func_interface): Add special case for c_loc.
41 gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
42 (gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
43 * intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
44 gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
45 gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
46 * iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
48 * iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
50 * iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
51 * module.c (create_intrinsic_function): Support subroutines and
53 (use_iso_fortran_env_module): Update calls.
54 (import_iso_c_binding_module): Ditto; update calls to
55 generate_isocbinding_symbol.
56 * resolve.c (find_arglists): Skip for intrinsic symbols.
57 (gfc_resolve_intrinsic): Find intrinsic subs via id.
58 (is_scalar_expr_ptr, gfc_iso_c_func_interface,
59 set_name_and_label, gfc_iso_c_sub_interface): Remove.
60 (resolve_function, resolve_specific_s0): Remove calls to those.
61 (resolve_structure_cons): Fix handling.
62 * symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
64 (gen_cptr_param, gen_fptr_param, gen_shape_param,
65 build_formal_args, get_iso_c_sym): Remove.
66 (std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
67 (generate_isocbinding_symbol): Support hidden symbols and
68 using c_ptr/c_funptr symtrees for nullptr defs.
69 * target-memory.c (gfc_target_encode_expr): Fix handling
71 * trans-expr.c (conv_isocbinding_procedure): Remove.
72 (gfc_conv_procedure_call): Remove call to it.
73 (gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
75 * trans-intrinsic.c (conv_isocbinding_function,
76 conv_isocbinding_subroutine): New.
77 (gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
79 * trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
80 * trans-types.c (gfc_typenode_for_spec,
81 gfc_get_derived_type): Ditto.
82 (gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
84 2013-03-18 Tobias Burnus <burnus@net-b.de>
86 * gfortran.h (gfc_option_t): Remove flag_whole_file.
87 * invoke.texi (-fno-whole-file): Remove.
88 * lang.opt (fwhole-file): Change to Ignore.
89 * options.c (gfc_init_options, gfc_post_options,
90 gfc_handle_option): Remove !flag_whole_file handling
91 * parse.c (resolve_all_program_units, translate_all_program_units,
92 gfc_parse_file): Ditto.
93 * resolve.c (resolve_global_procedure): Ditto.
94 * trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
95 gfc_create_module_variable): Ditto.
96 * trans-types.c (gfc_get_derived_type): Ditto.
98 2013-03-15 Tobias Burnus <burnus@net-b.de>
101 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
102 if they are not simply contiguous.
104 2013-03-11 Tobias Burnus <burnus@net-b.de>
106 * gfortran.texi (STRUCTURE and RECORD): State more clearly how
107 to convert them into derived types.
109 2013-03-10 Paul Thomas <pault@gcc.gnu.org>
112 * expr.c (gfc_default_initializer): Check that a class declared
113 type has any components.
114 * resolve.c (resolve_fl_derived0): On failing the test for C437
115 set the type to BT_UNKNOWN to prevent repeat error messages.
117 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
120 * expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
122 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
125 * array.c (gfc_match_array_constructor): Set a checkpoint before
126 matching a typespec. Drop it on success, restore it otherwise.
128 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
131 * gfortran.h (struct gfc_undo_change_set): New field 'previous'.
132 (gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
133 gfc_restore_last_undo_checkpoint): New prototypes.
134 * symbol.c (default_undo_chgset_var): Update initialization.
135 (single_undo_checkpoint_p, gfc_new_undo_checkpoint,
136 free_undo_change_set_data, pop_undo_change_set,
137 gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
139 (save_symbol_data): Handle multiple change sets. Make sure old_symbol
140 field's previous value is not overwritten. Clear gfc_new field.
141 (restore_old_symbol): Restore previous old_symbol field.
142 (gfc_restore_last_undo_checkpoint): New function, using body renamed
143 from gfc_undo_symbols. Restore the previous change set as current one.
144 (gfc_undo_symbols): New body.
145 (gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
146 Call enforce_single_undo_checkpoint.
147 (gfc_symbol_done_2): Ditto. Free change set data.
149 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
151 * symbol.c (restore_old_symbol): Fix thinko.
153 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
155 * symbol.c (gfc_undo_symbols): Move code...
156 (restore_old_symbol): ... here as a new function.
158 2013-03-03 Mikael Morin <mikael@gcc.gnu.org>
160 * Make-lang.in (F95_PARSER_OBJS): Add dependency to vec.h.
161 * gfortran.h: Include vec.h.
162 (gfc_undo_change_set): New struct.
163 * symbol.c (tentative_tbp): Remove struct.
164 (changed_syms, tentative_tbp_list): Remove variables.
165 (default_undo_chgset_var, latest_undo_chgset): New variables.
166 (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
167 gfc_commit_symbols, gfc_commit_symbol,
168 gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
169 Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
171 2013-03-01 Tobias Burnus <burnus@net-b.de>
174 * iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
175 * symbol.c (free_components): Free proc-pointer components.
177 2013-03-01 Tobias Burnus <burnus@net-b.de>
179 * trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
180 * trans-io.c (build_dt): Ditto.
182 2013-02-24 Joseph Myers <joseph@codesourcery.com>
184 * resolve.c (generate_component_assignments): Don't use UTF-8
185 ligature in diagnostic.
187 2013-02-21 Janus Weil <janus@gcc.gnu.org>
190 * trans-array.c (structure_alloc_comps): Handle procedure-pointer
191 components with allocatable result.
193 2012-02-21 Tobias Burnus <burnus@net-b.de>
196 * gfortran.texi (Part II: Language Reference, Extensions,
197 Non-Fortran Main Program): Sort @menu to match actual section order.
198 * intrinsic.texi (Intrinsic Procedures): Ditto.
199 (C_F_POINTER, PRECISION): Move to the alphabetically correct place.
201 2013-02-15 Tobias Burnus <burnus@net-b.de>
202 Mikael Morin <mikael@gcc.gnu.org>
205 * simplify.c (gfc_simplify_matmul): Fix result shape
208 2013-02-15 Tobias Burnus <burnus@net-b.de>
211 * resolve.c (apply_default_init_local): Don't create an
212 initializer for a result variable.
214 2013-02-14 Thomas Koenig <tkoenig@gcc.gnu.org>
217 * gfortran.h (gfc_add_include_path): Add boolean argument
219 * scanner.c (gfc_add_include_path): Pass along warn argument
221 * options.c (gfc_post_options): Add true warn argument to
222 gfc_add_include_path.
223 (gfc_handle_module_path_options): Likewise.
224 (gfc_handle_option): Also gfc_add_include_path for intrinsic
225 modules, without warning.
227 2013-02-14 Paul Thomas <pault@gcc.gnu.org>
228 Tobias Burnus <burnus@net-b.de>
231 * trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
232 results for functions without extra result variable.
235 2013-01-30 Tobias Burnus <burnus@net-b.de>
238 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
239 results for functions without extra result variable.
241 2013-02-12 Janus Weil <janus@gcc.gnu.org>
244 * resolve.c (resolve_call): Do not check deferred procedures for
247 2013-02-09 Paul Thomas <pault@gcc.gnu.org>
250 * check.c (array_check): It is an error if a procedure is
253 2013-02-08 Mikael Morin <mikael@gcc.gnu.org>
256 * trans-types.c (gfc_get_function_type): Change a NULL backend_decl
257 to error_mark_node on entry. Detect recursive types. Build a variadic
258 procedure type if the type is recursive. Restore the initial
261 2013-02-07 Tobias Burnus <burnus@net-b.de>
264 * gfortran.texi (Standards): Mention TS29113.
265 (Varying Length Character): Mention deferred-length
267 (Fortran 2003 Status): Add unlimited polymorphic.
268 (TS 29113 Status): Add TYPE(*) and DIMENSION(..).
269 (C Interop): Update the section about TS29113.
271 2013-02-06 Paul Thomas <pault@gcc.gnu.org>
274 * trans-array.c (trans_array_constructor): Remove condition
275 'dynamic' = true if the loop ubound is a VAR_DECL.
277 2013-02-04 Paul Thomas <pault@gcc.gnu.org>
281 * trans-array.c (gfc_alloc_allocatable_for_assignment): Save
282 the lhs descriptor before it is modified for reallocation. Use
283 it to deallocate allocatable components in the reallocation
284 block. Nullify allocatable components for newly (re)allocated
287 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
290 * resolve.c (resolve_typebound_procedures): Recurse through
293 2013-02-04 Mikael Morin <mikael@gcc.gnu.org>
297 * gfortran.h (struct gfc_symbol): New field 'resolved'.
298 * resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
299 (resolve_symbol): Skip duplicate calls. Don't check the current
302 2013-02-02 Thomas Koenig <tkoenig@gcc.gnu.org>
306 * decl.c (gfc_match_end): Remove half-ready namespace
307 from parent if the end of a block is missing.
308 * parse.c (parse_module): Do not put namespace into
311 2013-01-30 Tobias Burnus <burnus@net-b.de>
314 * trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
315 results for functions without extra result variable.
317 2013-01-29 Janus Weil <janus@gcc.gnu.org>
318 Mikael Morin <mikael@gcc.gnu.org>
321 * gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
322 (gfc_copy_formal_args,gfc_copy_formal_args_ppc,gfc_expr_replace_symbols,
323 gfc_expr_replace_comp): Delete.
324 (gfc_sym_get_dummy_args): New prototype.
325 * dependency.c (gfc_check_fncall_dependency): Use
326 'gfc_sym_get_dummy_args'.
327 * expr.c (gfc_is_constant_expr): Ditto.
328 (replace_symbol,gfc_expr_replace_symbols,replace_comp,
329 gfc_expr_replace_comp): Deleted.
330 * frontend-passes.c (doloop_code,do_function): Use
331 'gfc_sym_get_dummy_args'.
332 * interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
333 gfc_procedure_use,gfc_ppc_use,gfc_arglist_matches_symbol,
334 gfc_check_typebound_override): Ditto.
335 * module.c (MOD_VERSION): Bump module version.
336 (mio_component): Do not read/write 'formal' and 'formal_ns'.
337 * resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
338 copy formal args, but just keep a pointer to the interface.
339 (resolve_function,resolve_call,resolve_typebound_generic_call,
340 resolve_ppc_call,resolve_expr_ppc,generate_component_assignments,
341 resolve_fl_procedure,gfc_resolve_finalizers,check_generic_tbp_ambiguity,
342 resolve_typebound_procedure,check_uop_procedure): Use
343 'gfc_sym_get_dummy_args'.
344 * symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
345 (gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
346 (gfc_sym_get_dummy_args): New function.
347 * trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
348 Use 'gfc_sym_get_dummy_args'.
349 * trans-decl.c (build_function_decl,create_function_arglist,
350 build_entry_thunks,init_intent_out_dt,gfc_trans_deferred_vars,
351 add_argument_checking): Ditto.
352 * trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
353 gfc_conv_statement_function): Ditto.
354 * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
355 * trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
357 2013-01-28 Tobias Burnus <burnus@net-b.de>
358 Mikael Morin <mikael@gcc.gnu.org>
361 * symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
363 (gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
364 * decl.c (gfc_match_data_decl): Ditto.
365 (variable_decl): Remove undeclared type error.
366 (gfc_match_import): Use renamed instead of original name.
368 2013-01-27 Paul Thomas <pault@gcc.gnu.org>
372 * gfortran.h : Add associate_var to symbol_attr.
373 * resolve.c (resolve_assoc_var): Set associate_var attribute.
374 If the target class_ok is set, set it for the associate
376 * check.c (allocatable_check): Associate variables should not
377 have the allocatable attribute even if their symbols do.
378 * class.c (gfc_build_class_symbol): Symbols with associate_var
379 set will always have a good class container.
381 2013-01-23 Janus Weil <janus@gcc.gnu.org>
384 * resolve.c (resolve_select): Add argument 'select_type', reject
385 non-scalar expressions.
386 (resolve_select_type,resolve_code): Pass new argument to
389 2013-01-23 Jakub Jelinek <jakub@redhat.com>
392 * trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
393 and DECL_IGNORED_P on select_type_temporary and don't set
396 2013-01-21 Thomas Koenig <tkoenig@gcc.gnu.org>
399 * scanner.c (add_path_to_list): Copy path to temporary and strip
400 trailing directory separators before calling stat().
402 2013-01-17 Richard Biener <rguenther@suse.de>
404 * trans-stmt.c (gfc_trans_do): Conditionally compute countm1
405 dependent on sign of step, avoids repeated evaluation of
406 step sign test. Avoid undefined overflow issues by using unsigned
409 2013-01-16 Janus Weil <janus@gcc.gnu.org>
412 * class.c (find_typebound_proc_uop): Check for f2k_derived instead of
415 2013-01-16 Jakub Jelinek <jakub@redhat.com>
416 Tobias Burnus <burnus@net-b.de>
419 * lang.opt (fintrinsic-modules-path): Don't accept Joined.
420 (fintrinsic-modules-path=): New.
421 * options.c (gfc_handle_option, gfc_get_option_string,
422 gfc_get_option_string): Handle the latter.
424 2013-01-16 Jakub Jelinek <jakub@redhat.com>
427 * trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
428 and use value of countm1 before the decrement in the condition.
430 2013-01-15 Paul Thomas <pault@gcc.gnu.org>
433 * expr.c (gfc_check_pointer_assign): Check for presence of
434 's2' before using it.
436 2013-01-14 Thomas Koenig <tkoenig@gcc.gnu.org>
439 * frontend-passes.c (optimize_reduction): New function,
441 (callback_reduction): Likewise.
442 (gfc_run_passes): Also run optimize_reduction.
443 (copy_walk_reduction_arg): New function.
444 (dummy_code_callback): New function.
446 2013-01-13 Jakub Jelinek <jakub@redhat.com>
449 * trans-expr.c (gfc_conv_structure): Call
450 unshare_expr_without_location on the ctor elements.
452 2013-01-13 Paul Thomas <pault@gcc.gnu.org>
455 * expr.c (gfc_check_pointer_assign): Ensure that both lvalue
456 and rvalue interfaces are presented to gfc_compare_interfaces.
457 Simplify references to interface names by using the symbols
458 themselves. Call gfc_compare_interfaces with s1 and s2 inter-
459 changed to overcome the asymmetry of this function. Do not
460 repeat the check for the presence of s1 and s2.
462 2013-01-12 Janus Weil <janus@gcc.gnu.org>
465 * trans-array.c (gfc_conv_array_parameter): No packing was done for
466 full arrays of derived type.
468 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
471 * class.c (get_unique_type_string): Change $tar to STAR and
472 replace sprintf by strcpy where there is no formatting.
473 * decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
475 2013-01-09 Mikael Morin <mikael@gcc.gnu.org>
478 * module.c (check_for_ambiguous): Get the current program unit using
481 2013-01-09 Tobias Burnus <burnus@net-b.de>
484 * resolve.c (resolve_symbol): Reject non-C_Bool logicals
485 in BIND(C) procedures with -std=f*.
487 2013-01-08 Paul Thomas <pault@gcc.gnu.org>
490 * trans-expr.c (gfc_conv_procedure_call): Dereference scalar
491 character function arguments to elemental procedures in
494 2013-01-07 Tobias Burnus <burnus@net-b.de>
497 * gfortran.h (gfc_check_assign_symbol): Update prototype.
498 * decl.c (add_init_expr_to_sym, do_parm): Update call.
499 * expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
500 improve error location; support components.
501 (gfc_check_pointer_assign): Handle component assignments.
502 * resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
503 (resolve_values): Update call.
504 (resolve_structure_cons): Avoid double diagnostic.
506 2013-01-07 Tobias Burnus <burnus@net-b.de>
507 Thomas Koenig <tkoenig@gcc.gnu.org>
510 * expr.c (gfc_build_intrinsic_call): Avoid clashes
511 with user's procedures.
512 * gfortran.h (gfc_build_intrinsic_call): Update prototype.
513 * simplify.c (gfc_simplify_size): Update call.
514 * class.c (finalization_scalarizer, finalization_get_offset,
515 finalizer_insert_packed_call, generate_finalization_wrapper):
516 Clean up by using gfc_build_intrinsic_call.
518 2013-01-07 Tobias Burnus <burnus@net-b.de>
521 * resolve.c (resolve_select_type): Reject intrinsic types for
522 a non-unlimited-polymorphic selector.
524 2013-01-06 Paul Thomas <pault@gcc.gnu.org>
529 * trans-array.c (build_array_ref): Check the TYPE_CANONICAL
530 to see if it is GFC_CLASS_TYPE_P.
531 * trans-expr.c (gfc_get_vptr_from_expr): The same.
532 (gfc_conv_class_to_class): If the types are not the same,
533 cast parmese->expr to the type of ctree.
534 * trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
535 CLASS components must be set.
537 2013-01-06 Mikael Morin <mikael@gcc.gnu.org>
542 * module.c (read_module): Don't reuse local symtree if the associated
543 symbol isn't exactly the one wanted. Don't reuse local symtree if it is
545 * resolve.c (resolve_call): Use symtree's name instead of symbol's to
548 2013-01-05 Steven G. Kargl <kargl@gcc.gnu.org>
549 Mikael Morin <mikael@gcc.gnu.org>
552 * class.c (gfc_fix_class_refs): Adapt ts initialization for the case
554 * trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
556 2013-01-05 Tobias Burnus <burnus@net-b.de>
558 * class.c (finalize_component): Used passed offset expr.
559 (finalization_get_offset): New static function.
560 (finalizer_insert_packed_call, generate_finalization_wrapper): Use it
561 to handle noncontiguous arrays.
563 2013-01-04 Tobias Burnus <burnus@net-b.de>
565 * trans.c (gfc_build_final_call): New function.
566 * trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
567 New function prototypes.
568 * trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
569 conv_scalar_to_descriptor, removed static attribute.
570 (gfc_conv_procedure_call): Honor renaming.
572 2013-01-04 Tobias Burnus <burnus@net-b.de>
574 * intrinsic.c (add_functions): New internal intrinsic
575 function GFC_PREFIX ("stride").
576 * gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
577 * intrinsic.h (gfc_resolve_stride): New prototypes.
578 * iresolve.c (gfc_resolve_stride): New function.
579 * trans-intrinsic.c (conv_intrinsic_stride): New static
581 (gfc_conv_intrinsic_function): Use it.
583 2013-01-04 Tobias Burnus <burnus@net-b.de>
585 * class.c (gfc_find_intrinsic_vtab): Add _final
587 * decl.c (gfc_match_null): Remove superfluous
588 variadic argument to gfc_match.
590 2013-01-04 Paul Thomas <pault@gcc.gnu.org>
593 * match.c (copy_ts_from_selector_to_associate): Remove call to
594 gfc_resolve_expr and replace it with explicit setting of the
595 array reference type.
596 * resolve.c (resolve_select_type): It is an error if the
597 selector is coindexed.
599 2013-01-04 Tobias Burnus <burnus@net-b.de>
602 * decl.c (gfc_match_null): Parse and reject MOLD.
604 2013-01-04 Tobias Burnus <burnus@net-b.de>
608 * class.c (gfc_class_null_initializer): Fix finding the vtab.
609 (gfc_find_intrinsic_vtab): Use BT_VOID for some components.
611 2013-01-03 Janus Weil <janus@gcc.gnu.org>
614 * expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
615 of rvalue. Correct hyphenation in error message.
617 2013-01-03 Jakub Jelinek <jakub@redhat.com>
619 * gfortranspec.c (lang_specific_driver): Update copyright notice
622 Copyright (C) 2013 Free Software Foundation, Inc.
624 Copying and distribution of this file, with or without modification,
625 are permitted in any medium without royalty provided the copyright
626 notice and this notice are preserved.