1 2016-02-25 Jason Merrill <jason@redhat.com>
4 * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
6 2016-02-25 Patrick Palka <ppalka@gcc.gnu.org>
9 * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
10 (maybe_undo_parenthesized_ref): Declare.
11 * semantics.c (maybe_undo_parenthesized_ref): Split out from
13 (finish_call_expr): Use it.
14 * typeck.c (check_return_expr): Use it.
15 * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
16 REF_PARENTHESIZED_P flag.
18 2016-02-24 Jakub Jelinek <jakub@redhat.com>
21 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
23 * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
25 * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
26 unless they are folded into INTEGER_CST, error_mark_node or some
27 comparison with NULL, avoid folding them and use either the original
28 comparison or non-folded comparison of folded arguments.
29 * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
30 comparison, don't fold the comparison right away.
32 2016-02-24 Jason Merrill <jason@redhat.com>
35 * friend.c (make_friend_class): Likewise.
36 * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
38 2016-02-24 Jason Merrill <jason@redhat.com>
41 * pt.c (instantiate_class_template_1): Set
42 processing_template_decl before substituting friend_type.
44 016-02-24 Martin Sebor <msebor@redhat.com>
47 * tree.c (build_ctor_subob_ref): Compare types' main variants
48 instead of the types as they are.
50 2016-02-24 Jason Merrill <jason@redhat.com>
52 * decl.c (start_preparsed_function): Condition ctor clobber on
53 flag_lifetime_dse > 1.
55 * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
57 2016-02-19 Jason Merrill <jason@redhat.com>
60 * call.c (remaining_arguments): No longer static.
61 * cp-tree.h: Declare it.
62 * pt.c (more_specialized_fn): Use it.
64 2016-02-19 Jakub Jelinek <jakub@redhat.com>
65 Bernd Edlinger <bernd.edlinger@hotmail.de>
67 * Make-lang.in: Invoke gperf with -L C++.
68 * cfns.gperf: Remove prototypes for hash and libc_name_p
70 * cfns.h: Regenerated.
71 * except.c (nothrow_libfn_p): Adjust.
73 2016-02-19 Jakub Jelinek <jakub@redhat.com>
76 * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
77 NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
79 2016-02-19 Patrick Palka <ppalka@gcc.gnu.org>
82 * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
84 * semantics.c (finish_call_expr): Don't assume a constructor
85 call is dependent if only the "this" pointer is dependent. When
86 building a constructor call, always use a dummy object.
88 2016-02-19 Jakub Jelinek <jakub@redhat.com>
91 * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
93 * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
94 operators if folding preserved the binop, just with different
98 * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
99 attr_spec is always single element chain, chain all the attributes
100 properly together in the right order.
102 2016-02-18 Jason Merrill <jason@redhat.com>
104 * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call
106 (mangle_decl): Call maybe_check_abi_tags for function scope.
107 (mangle_guard_variable): Call maybe_check_abi_tags here.
108 (write_guarded_var_name): Not here.
110 2016-02-17 Jason Merrill <jason@redhat.com>
113 * constexpr.c (build_constexpr_constructor_member_initializers):
114 Handle an additional STATEMENT_LIST.
117 * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
120 * decl2.c (reset_type_linkage_2): Look through member templates.
122 2016-02-17 Jakub Jelinek <jakub@redhat.com>
125 * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
127 2016-02-17 Jason Merrill <jason@redhat.com>
130 * method.c (forward_parm): Split out from...
131 (add_one_base_init): ...here.
132 * lambda.c (maybe_add_lambda_conv_op): Use it.
134 2016-02-16 Jason Merrill <jason@redhat.com>
138 * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
139 tree.c, typeck2.c: Revert earlier changes.
140 * parser.c (cp_parser_lookup_name): Ignore namespace-scope
141 non-type templates after -> or .
143 2016-02-16 Jakub Jelinek <jakub@redhat.com>
146 * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
148 2016-02-16 Jason Merrill <jason@redhat.com>
151 * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
152 (set_decl_namespace): Pass it. Complain about finding a hidden friend.
153 * name-lookup.h: Adjust.
155 2016-02-16 James Norris <jnorris@codesourcery.com>
157 * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
158 * semantics.c (finish_omp_clauses): Add deviceptr checking.
160 2016-02-15 Jakub Jelinek <jakub@redhat.com>
163 * init.c (expand_default_init): Only call reshape_init
164 in the direct-initialization from an initializer list case.
166 2016-02-15 Jason Merrill <jason@redhat.com>
169 * semantics.c (finish_call_expr): Implicit 'this' does not make
171 * search.c (any_dependent_bases_p): Split out...
172 * name-lookup.c (do_class_using_decl): ...from here.
173 * call.c (build_new_method_call_1): Don't complain about missing object
174 if there are dependent bases. Tweak error.
175 * tree.c (non_static_member_function_p): Remove.
176 * pt.c (type_dependent_expression_p): A member template of a
177 dependent type is dependent.
181 * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
183 2016-02-12 Patrick Palka <ppalka@gcc.gnu.org>
186 * pt.c (lookup_and_finish_template_variable): New function,
188 (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it.
189 (tsubst_qualified_id): Consider that EXPR might be a variable
191 * typeck.c (check_template_keyword): Don't emit an error
192 if DECL is a variable template.
194 2016-02-12 Jakub Jelinek <jakub@redhat.com>
196 * error.c: Spelling fixes - behaviour -> behavior and
197 neighbour -> neighbor.
199 * typeck.c (cp_build_binary_op): Fix up behavior spelling in
201 * init.c (build_delete): Likewise.
203 2016-02-11 Jakub Jelinek <jakub@redhat.com>
206 * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
207 arguments for -Waddress warning. Fix up formatting.
209 2016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
212 * pt.c (lookup_template_class_1): Check tsubst return value for
215 2016-02-10 Jason Merrill <jason@redhat.com>
218 * pt.c (resolve_nondeduced_context): Add complain parm.
219 (do_auto_deduction): Pass it.
220 * cvt.c (convert_to_void): Likewise.
221 * decl.c (cp_finish_decl): Likewise.
222 * init.c (build_new): Likewise.
223 * rtti.c (get_tinfo_decl_dynamic): Likewise.
224 * semantics.c (finish_decltype_type): Likewise.
225 * typeck.c (decay_conversion): Likewise.
226 * cp-tree.h: Adjust declaration.
227 * call.c (standard_conversion): Add complain parm, pass it along.
228 (implicit_conversion): Pass it.
231 * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
232 (lookup_name_real_1): Likewise.
233 (remove_hidden_names): Handle non-functions too.
236 * parser.c (cp_parser_lookup_name): When looking for a template
237 after . or ->, only consider class templates.
238 (cp_parser_postfix_dot_deref_expression): Handle the current
239 instantiation. Remember a dependent object expression.
240 * typeck2.c (build_x_arrow): Handle the current instantiation.
242 * ptree.c (debug_tree): Implement for cp_expr.
244 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
247 * parser.c (cp_parser_simple_type_specifier): Make the check
248 for disambiguating between an 'auto' placeholder and an implicit
249 template parameter more robust.
251 2016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
255 * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
256 setting its TREE_USED flag.
258 2016-02-08 Jason Merrill <jason@redhat.com>
261 * name-lookup.c (do_nonmember_using_decl): Leave anticipated
264 2016-02-08 Jakub Jelinek <jakub@redhat.com>
267 * parser.c (cp_parser_omp_declare_reduction): Set assembler name
268 of the DECL_OMP_DECLARE_REDUCTION_P decls.
270 2016-02-08 Marek Polacek <polacek@redhat.com>
273 * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
274 Call clear_fold_cache.
275 * cp-tree.h: Adjust declaration.
276 * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
277 rather than clear_cv_cache and clear_fold_cache.
278 * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
280 2016-02-08 Jason Merrill <jason@redhat.com>
282 * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
283 * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
284 (ocp_convert): Use *_maybe_fold.
285 (cp_convert_to_pointer): Add dofold parameter.
286 * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
288 2016-02-05 Martin Sebor <msebor@redhat.com>
291 * init.c (find_field_init): New function.
292 (warn_placement_new_too_small): Call it. Handle one-element arrays
293 at ends of structures special.
295 2016-02-05 Jason Merrill <jason@redhat.com>
298 * semantics.c (finish_expr_stmt): If expr is error_mark_node,
299 make sure we've seen_error().
301 2016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
304 * pt.c (tsubst_baselink): Diagnose an invalid constructor call
305 if lookup_fnfields returns NULL_TREE and the name being looked
306 up has the form A::A.
308 2016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
310 * constexpr.c (cxx_eval_binary_expression): Fold equality
311 comparisons involving PTRMEM_CSTs.
313 2016-02-04 Jakub Jelinek <jakub@redhat.com>
315 * class.c (find_flexarrays): Don't declare dom variable.
316 (diagnose_flexarray): Likewise.
318 2016-02-02 Martain Sebor <msebor@redhat.com>
325 * class.c (walk_subobject_offsets): Avoid testing the upper bound
326 of a flexible array member for equality to null.
327 (find_flexarrays): Remove spurious whitespace introduced in r231665.
328 (diagnose_flexarrays): Avoid checking the upper bound of arrays.
329 (check_flexarrays): Same.
330 * decl.c (compute_array_index_type): Avoid special case for flexible
332 (grokdeclarator): Avoid calling compute_array_index_type for flexible
334 * error.c (dump_type_suffix): Revert changes introduced in r231665
335 and rendered unnecessary by the changes above.
336 * pt.c (tsubst): Same.
337 * tree.c (build_ctor_subob_ref): Handle flexible array members.
338 * typeck2.c (digest_init_r): Revert changes introduced in r231665.
339 (process_init_constructor_array): Same.
340 (process_init_constructor_record): Same.
342 2016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
345 * pt.c (try_one_overload): Handle comparing argument packs so
346 that there is no conflict if we deduced more arguments of an
347 argument pack than were explicitly specified.
349 2016-01-31 Jakub Jelinek <jakub@redhat.com>
350 Jason Merrill <jason@redhat.com>
353 * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
354 function type if nothing is changing.
356 2016-01-31 Jason Merrill <jason@redhat.com>
359 * pt.c (partial_specialization_p, impartial_args): New.
360 (instantiate_decl): Call impartial_args.
362 * mangle.c (maybe_check_abi_tags): New.
363 (write_guarded_var_name): Call it.
364 (mangle_ref_init_variable): Call check_abi_tags.
366 * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
367 between template and instantiation.
369 2016-01-29 Jakub Jelinek <jakub@redhat.com>
372 * decl.c (wrapup_globals_for_namespace): Warn about unused static
373 function declarations.
375 2016-01-29 Marek Polacek <polacek@redhat.com>
379 * constexpr.c (cxx_eval_array_reference): Give the "array subscript
380 out of bound" error earlier.
381 * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
384 2016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
386 * name-lookup.c (begin_scope): After reusing a cp_binding_level
387 structure, update free_binding_level before the structure's
388 level_chain field gets cleared, not after.
390 2016-01-28 Jason Merrill <jason@redhat.com>
393 * search.c (dfs_walk_once, dfs_walk_once_r)
394 (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
395 hash_set instead of BINFO_MARKED.
396 (dfs_unmark_r): Remove.
398 2016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
401 * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
402 (cp_lexer_debugging_p): Use it.
403 (cp_lexer_start_debugging): Likewise.
404 (cp_lexer_stop_debugging): Likewise.
406 2016-01-27 Marek Polacek <polacek@redhat.com>
409 * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
410 needed. Add -Wsign-compare warning.
412 2016-01-27 Ryan Burn <contact@rnburn.com>
415 * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
416 superfluous post_p argument in call to
417 cilk_gimplify_call_params_in_spawned_fn.
419 2016-01-27 Marek Polacek <polacek@redhat.com>
422 * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
423 wrapped in NOP_EXPRs.
425 2016-01-27 Martin Sebor <msebor@redhat.com>
428 * mangle.c (mangle_decl): Reference the correct (saved) version
429 of the ABI in -Wabi diagnostics.
431 2016-01-27 Marek Polacek <polacek@redhat.com>
434 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
435 elements of the array.
437 2016-01-26 Jason Merrill <jason@redhat.com>
440 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
441 (cxx_eval_call_expression): Don't look through clones.
442 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
443 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
444 maybe-in-charge *tor.
446 2016-01-26 Jason Merrill <jason@redhat.com>
449 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
450 and TREE_SIDE_EFFECTS.
451 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
452 verify_constructor_flags.
454 2016-01-26 Jakub Jelinek <jakub@redhat.com>
457 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
458 return error_mark_node instead of building trees with error_mark_node
461 2016-01-26 David Malcolm <dmalcolm@redhat.com>
464 * error.c (print_instantiation_partial_context_line): Add missing
465 newlines from output for the t == NULL case.
466 (print_instantiation_partial_context): Remove call to pp_newline.
468 2016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
471 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
476 * decl.c (grokdeclarator): Don't decay array parameter type to
477 a pointer type if it's dependent.
478 (grokparms): Invoke strip_top_quals instead of directly invoking
479 cp_build_qualified_type.
480 * pt.c (decay_dependent_array_parm_type): New static function.
481 (type_unification_real): Call decay_dependent_array_parm_type
482 to decay a dependent array parameter type to its corresponding
483 pointer type before unification.
484 (more_specialized_fn): Likewise.
485 (get_bindings): Likewise.
486 * tree.c (cp_build_qualified_type): Trivial typofix in
489 2016-01-23 Martin Sebor <msebor@redhat.com>
493 * decl2.c (is_late_template_attribute): Handle dependent argument
494 to attribute align and attribute vector_size.
496 2016-01-21 Jason Merrill <jason@redhat.com>
499 * lambda.c (lambda_capture_field_type): Handle 'this' specially
500 for init-capture, too.
503 * decl.c (type_is_deprecated): Don't look into a typedef.
507 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
510 * decl.c (start_enum): Add attributes parameter.
511 * parser.c (cp_parser_enum_specifier): Pass it.
512 * pt.c (lookup_template_class_1): Pass it.
515 2016-01-19 Jason Merrill <jason@redhat.com>
518 * pt.c (convert_template_argument): Handle VAR_DECL properly.
520 2016-01-19 Marek Polacek <polacek@redhat.com>
523 * constexpr.c (clear_cv_cache): New.
524 * cp-gimplify.c (clear_fold_cache): New.
525 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
526 * decl.c (finish_enum_value_list): Call them.
529 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
531 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
536 * decl.c (grokdeclarator): Don't decay array parameter type to
537 a pointer type if it's dependent.
538 (grokparms): Invoke strip_top_quals instead of directly invoking
539 cp_build_qualified_type.
540 * pt.c (decay_dependent_array_parm_type): New static function.
541 (type_unification_real): Call decay_dependent_array_parm_type
542 to decay a dependent array parameter type to its corresponding
543 pointer type before unification.
544 (more_specialized_fn): Likewise.
545 (get_bindings): Likewise.
546 * tree.c (cp_build_qualified_type): Trivial typofix in
549 2016-01-18 Jason Merrill <jason@redhat.com>
551 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
553 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
556 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
557 (contains_label_1, contains_label_p): Remove.
559 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
562 * pt.c (type_dependent_expression_p): For a function template
563 specialization, a type is dependent iff any of its template
566 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
568 * cp-array-notation.c (cp_expand_cond_array_notations): Return
569 error_mark_node only if find_rank failed, not if it was
572 2016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
575 * tree.c (build_min_non_dep_call_vec): Don't retain the
576 KOENIG_LOOKUP_P flag of the non-dependent expression that's
578 (build_min_non_dep_op_overload): Instead, do it here.
580 2016-01-15 Jakub Jelinek <jakub@redhat.com>
583 * parser.h (cp_token): Remove pragma_kind field. Add comment
584 with number of unused bits.
585 * parser.c (eof_token): Remove pragma_kind field initializer.
586 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
587 field, don't clear CPP_PRAGMA u.value.
588 (cp_parser_pragma_kind): New function.
589 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
590 cp_parser_omp_construct, cp_parser_initial_pragma,
591 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
594 2016-01-15 Jason Merrill <jason@redhat.com>
597 * call.c (build_cxx_call): Use fold_non_dependent_expr.
599 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
603 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
604 array/function-to-pointer conversion. Call
605 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
606 * call.c (convert_like_real): Print call context if
607 decay_conversion errors.
609 2016-01-14 Tom de Vries <tom@codesourcery.com>
611 PR tree-optimization/68773
612 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
615 2016-01-14 Jason Merrill <jason@redhat.com>
618 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
620 2016-01-12 Marek Polacek <polacek@redhat.com>
623 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
624 error_at and adjust the return value.
626 2016-01-12 Jakub Jelinek <jakub@redhat.com>
630 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
631 GS_ERROR whenever seen_error (), only if *expr_p contains
632 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
636 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
638 2016-01-11 Jason Merrill <jason@redhat.com>
641 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
642 (process_subob_fn): Likewise. Don't consider triviality if true.
643 (synthesize_method_walk): Pass it.
645 2016-01-11 David Malcolm <dmalcolm@redhat.com>
648 * parser.c (cp_parser_postfix_expression): Initialize
649 close_paren_loc to UNKNOWN_LOCATION; only use it if
650 it has been written to by
651 cp_parser_parenthesized_expression_list.
652 (cp_parser_parenthesized_expression_list): Document the behavior
653 with respect to the CLOSE_PAREN_LOC param.
655 2016-01-11 Jakub Jelinek <jakub@redhat.com>
658 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
659 folded operands have side-effects, but folding changed any of them,
660 build a new tree with the folded operands instead of returning the
663 2016-01-09 Marek Polacek <polacek@redhat.com>
666 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
668 2016-01-09 Jakub Jelinek <jakub@redhat.com>
671 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
673 2016-01-08 Jason Merrill <jason@redhat.com>
676 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
679 2016-01-08 Marek Polacek <polacek@redhat.com>
682 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
684 2016-01-08 Jason Merrill <jason@redhat.com>
686 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
691 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
692 TREE_ADDRESSABLE type.
696 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
698 2016-01-05 Nathan Sidwell <nathan@acm.org>
701 * pt.c (build_non_dependent_expr): Don't try a checking fold when
704 2016-01-04 Jakub Jelinek <jakub@redhat.com>
706 Update copyright years.
708 Copyright (C) 2016 Free Software Foundation, Inc.
710 Copying and distribution of this file, with or without modification,
711 are permitted in any medium without royalty provided the copyright
712 notice and this notice are preserved.