1 2012-10-08 Jakub Jelinek <jakub@redhat.com>
4 * tree.c (cp_tree_equal): Handle FIELD_DECL.
6 2012-10-03 Jakub Jelinek <jakub@redhat.com>
9 * semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If
10 not ignoring the second operand, pass the original second operand
11 and not one with stripped nops to cxx_eval_constant_expression.
13 2012-09-20 Release Manager
17 2012-09-14 Jason Merrill <jason@redhat.com>
20 * typeck2.c (check_narrowing): Avoid false positives on conversion
23 2012-09-13 Jason Merrill <jason@redhat.com>
26 * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an
27 address, make sure the value is constant.
29 2012-09-13 Jason Merrill <jason@redhat.com>
32 * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P.
34 2012-09-13 Jason Merrill <jason@redhat.com>
37 * pt.c (value_dependent_expression_p): A TREE_LIST initializer must
40 2012-09-10 Jason Merrill <jason@redhat.com>
43 * decl.c (move_signature_fn_p): Split out from move_fn_p.
44 * method.c (process_subob_fn): Use it.
45 * cp-tree.h: Declare it.
49 * semantics.c (sort_constexpr_mem_initializers): New.
50 (build_constexpr_constructor_member_initializers): Use it.
51 (cx_check_missing_mem_inits): Skip artificial fields.
52 * init.c (expand_aggr_init_1): Don't zero out a class
56 * decl.c (grokdeclarator): Allow const and constexpr together.
58 2012-08-31 Ollie Wild <aaw@google.com>
61 * call.c (extend_ref_init_temps_1): Handle COMPOUND_EXPR trees.
63 2012-07-20 Jason Merrill <jason@redhat.com>
66 * tree.c (build_cplus_array_type): Use build_cplus_array_type to build
67 canonical array type rather than mess with its TYPE_*_VARIANT.
69 2012-07-19 Jason Merrill <jason@redhat.com>
72 * typeck.c (cp_apply_type_quals_to_decl): Check COMPLETE_TYPE_P.
74 2012-07-18 Jason Merrill <jason@redhat.com>
76 * method.c (process_subob_fn): Make sure no_implicit_p is non-null
77 before trying to store through it.
79 2012-07-17 Jason Merrill <jason@redhat.com>
82 * decl.c (finish_enum_value_list): Only call
83 insert_late_enum_def_into_classtype_sorted_fields in class scope.
85 2012-07-17 Jason Merrill <jason@redhat.com>
88 * tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
89 to the list of variants.
91 2012-07-17 Jason Merrill <jason@redhat.com>
94 * parser.c (cp_parser_class_head): Call xref_basetypes here.
95 (cp_parser_class_specifier_1): Not here.
96 * pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
97 as well as DECL_DEPENDENT_P.
99 2012-07-13 Jason Merrill <jason@redhat.com>
102 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner.
104 2012-07-10 Jason Merrill <jason@redhat.com>
108 * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
109 (struct lang_decl_fn): Add suppress_implicit_decl field.
110 * method.c (implicitly_declare_fn): Check it.
111 (process_subob_fn): Add no_implicit_p parm.
112 (walk_field_subobs, synthesized_method_walk): Likewise.
113 (maybe_explain_implicit_delete): Adjust.
114 (explain_implicit_non_constexpr): Adjust.
116 * method.c (synthesized_method_walk): Cleanups don't affect the EH
119 2012-07-02 Jason Merrill <jason@redhat.com>
122 * class.c (resolves_to_fixed_type_p): Check uses_template_parms
123 (current_function_decl) instead of processing_template_decl.
126 * semantics.c (maybe_add_lambda_conv_op): Don't set
127 DECL_INTERFACE_KNOWN.
129 2012-06-27 Fabien Chêne <fabien@gcc.gnu.org>
132 * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
134 * class.c (insert_into_classtype_sorted_fields): New.
135 (add_enum_fields_to_record_type): New.
136 (count_fields): Adjust the comment.
137 (add_fields_to_record_type): Likewise.
138 (finish_struct_1): Move the code that inserts the fields for the
139 sorted case, into insert_into_classtype_sorted_fields, and call
141 (insert_late_enum_def_into_classtype_sorted_fields): Define.
142 * decl.c (finish_enum_value_list): Call
143 insert_late_enum_def_into_classtype_sorted_fields if a late enum
144 definition is encountered.
146 2012-06-25 Jason Merrill <jason@redhat.com>
150 * pt.c (tsubst_pack_expansion): Copy before dummy tsubst.
153 * typeck.c (decay_conversion): Don't discard side-effects from
154 expressions of nullptr_t.
157 * semantics.c (build_data_member_initialization): Always keep
158 initializer for empty base.
159 (cxx_eval_bare_aggregate): Discard it here.
161 2012-06-25 Jakub Jelinek <jakub@redhat.com>
164 * class.c (check_bases_and_members): Avoid -Wuninitialized
165 diagnostics for non-static const members or references if they
168 2012-06-19 Jason Merrill <jason@redhat.com>
171 * name-lookup.c (constructor_name_p): Don't try to look at the
172 name of a DECLTYPE_TYPE.
176 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
177 (instantiate_decl): Don't push_to_top_level for local class methods.
178 (instantiate_class_template_1): Or for local classes.
181 * pt.c (lookup_template_class_1): Use ts_global.
183 2012-06-14 Richard Guenther <rguenther@suse.de>
185 Backport from mainline
186 2012-06-11 Richard Guenther <rguenther@suse.de>
189 * mangle.c (write_array_type): Use double-ints for array domain
192 2012-06-14 Richard Guenther <rguenther@suse.de>
194 Backport from mainline
195 2012-06-06 Fabien Chêne <fabien@gcc.gnu.org>
198 * parser.c (cp_parser_alias_declaration): Return earlier
201 2012-06-14 Release Manager
203 * GCC 4.7.1 released.
205 2012-06-12 Jason Merrill <jason@redhat.com>
210 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
211 (instantiate_decl): Don't push_to_top_level for local class methods.
212 (instantiate_class_template_1): Or for local classes.
214 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
217 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
218 to control enumeral mismatch in conditional expression too.
220 2012-06-01 Jason Merrill <jason@redhat.com>
223 * parser.c (cp_parser_class_head): Apply attributes here.
224 * semantics.c (begin_class_definition): Not here.
228 * parser.c (cp_parser_binary_expression): Bail early if we're parsing
229 tentatively and the LHS has a parse error.
231 2012-06-01 Jason Merrill <jason@redhat.com>
234 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
235 (instantiate_decl): Don't push_to_top_level for local class methods.
236 (instantiate_class_template_1): Or for local classes.
239 * pt.c (do_auto_deduction): Don't try to deduce from a
240 type-dependent initializer.
242 2012-05-31 Jason Merrill <jason@redhat.com>
246 * call.c (joust): Handle comparing list and non-list ctors.
248 2012-05-30 Jason Merrill <jason@redhat.com>
251 * tree.c (stabilize_init): Side effects make the init unstable.
253 2012-05-30 Jason Merrill <jason@redhat.com>
256 * call.c (convert_like_real) [ck_list]: Take array address directly.
257 * typeck.c (decay_conversion): Reject decay of an array compound
260 2012-05-29 Paolo Carlini <paolo.carlini@oracle.com>
263 * tree.c (stabilize_expr): Handle exp of void type.
265 2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
268 * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
270 2012-05-15 Alexandre Oliva <aoliva@redhat.com>
273 * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
275 2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
278 * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
279 instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
281 2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
284 * call.c (build_over_call): Handle final member functions
286 (build_new_method_call_1): Do not handle here.
288 2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
291 * parser.c (cp_parser_member_declaration): Check that
292 initializer_token_start is non null before dereferencing it.
294 2012-04-16 Jason Merrill <jason@redhat.com>
297 * pt.c (determine_specialization): Instead of comparing the number
298 of parms, check that tsubst gives the right answer.
301 * pt.c (convert_template_argument): Handle template template
305 * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
308 2012-04-15 Jason Merrill <jason@redhat.com>
312 * pt.c (coerce_template_parms): Even if we aren't converting we
313 want to expand argument packs.
315 2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
318 * parser.c (cp_parser_class_name): Call strip_using_decl and
319 return the target decl.
320 * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
321 to be stripped is NULL_TREE.
322 (qualify_lookup): Call strip_using_decl and perform some checks on
325 2012-04-13 Jason Merrill <jason@redhat.com>
328 * pt.c (any_pack_expanson_args_p): New.
329 (coerce_template_parms): Use it.
331 2012-04-11 Jason Merrill <jason@redhat.com>
334 * decl.c (check_tag_decl): Don't complain about attributes if we
335 don't even have a type.
337 2012-04-05 Jason Merrill <jason@redhat.com>
340 * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
343 2012-04-03 Jason Merrill <jason@redhat.com>
346 * pt.c (tsubst_initializer_list): A pack expansion with no elements
347 means value-initialization.
349 2012-03-29 Meador Inge <meadori@codesourcery.com>
352 * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
353 stripped child trees that are not pointer types.
355 2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
358 * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
359 warn for a zero as null pointer constant default argument.
361 2012-03-29 Jason Merrill <jason@redhat.com>
364 * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
366 2012-03-29 Jakub Jelinek <jakub@redhat.com>
369 * decl.c (start_decl): Don't call maybe_apply_pragma_weak
370 if processing_template_decl.
372 2012-03-29 Jason Merrill <jason@redhat.com>
375 * call.c (compare_ics): Handle ck_aggr like ck_list.
377 2012-03-28 Jason Merrill <jason@redhat.com>
380 * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
381 we didn't get an explicit scope.
382 * pt.c (tsubst_baselink): Likewise.
384 2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
387 * class.c (check_field_decls): Call literal_type_p only
390 2012-03-22 Jakub Jelinek <jakub@redhat.com>
393 * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
394 on CLASS_TYPE_P types.
396 2012-03-22 Jason Merrill <jason@redhat.com>
399 * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
401 2012-03-22 Jakub Jelinek <jakub@redhat.com>
403 Backported from mainline
404 2012-03-14 Jakub Jelinek <jakub@redhat.com>
407 * parser.c (lookup_literal_operator): Return fn only if
408 processed all arguments from args vector and argtypes is
411 2012-03-22 Release Manager
413 * GCC 4.7.0 released.
415 2012-03-20 Jason Merrill <jason@redhat.com>
417 * mangle.c (write_type): Handle 'auto'.
418 * init.c (build_new): Don't do auto deduction where it might
419 affect template mangling.
421 2012-03-07 Jason Merrill <jason@redhat.com>
424 * mangle.c (write_literal_operator_name): The length comes after the
427 2012-02-29 Jason Merrill <jason@redhat.com>
430 * decl.c (check_tag_decl): Move warning for misplaced attributes here.
431 (shadow_tag): From here.
432 * parser.c (cp_parser_explicit_instantiation): Don't warn here.
434 2012-02-21 Jakub Jelinek <jakub@redhat.com>
437 * typeck.c (check_literal_operator_args): Initialize *long_double_p
438 and *long_long_unsigned_p even if processing_template_decl.
440 2012-02-16 Jason Merrill <jason@redhat.com>
443 * decl.c (define_label): Use timevar_cond_start/stop.
445 2012-02-16 Fabien Chêne <fabien@gcc.gnu.org>
448 * decl.c (xref_basetypes): call dependent_scope_p instead of
451 2012-02-16 Jason Merrill <jason@redhat.com>
454 * error.c (dump_expr): Handle lambda closures specifically.
456 2012-02-14 Jason Merrill <jason@redhat.com>
458 * parser.c (cp_parser_explicit_instantiation): Give a warning
459 for ignored attributes on explicit class instantiation.
461 2012-02-14 Jakub Jelinek <jakub@redhat.com>
464 * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
465 lookup_label on label's name and set TREE_USED.
467 2012-02-14 Jason Merrill <jason@redhat.com>
470 * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
472 2012-02-14 Jakub Jelinek <jakub@redhat.com>
475 * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
476 newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
478 2012-02-07 Jason Merrill <jason@redhat.com>
481 * semantics.c (cx_check_missing_mem_inits): Handle unions.
482 Fix constexpr default constructor logic.
485 * pt.c (tsubst): Strip uninstantiated typedef.
487 2012-02-06 Jason Merrill <jason@redhat.com>
490 * cvt.c (build_expr_type_conversion): Check for template conversion.
492 2012-01-31 Jason Merrill <jason@redhat.com>
495 * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
496 * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
497 (tsubst_pack_expansion): Check it.
499 2012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
502 * class.c (explain_non_literal_class): Correctly handle implicitly
503 deleted constructors.
505 2012-01-27 Jakub Jelinek <jakub@redhat.com>
508 * pt.c (tsubst_pack_expansion): Delete and restore
509 local_specialization whenever need_local_specialization, not just
510 when saved_local_specializations is non-NULL.
512 2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
515 * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
516 as TREE_OPERAND (t, 1).
518 2012-01-24 Jason Merrill <jason@redhat.com>
521 * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
524 * tree.c (called_fns_equal): Check template args.
525 (cp_tree_equal): Call it.
527 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
528 Patrick Marlier <patrick.marlier@gmail.com>
531 * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
532 thunk for set_one_vmethod_tm_attributes.
534 2012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
537 * call.c (build_over_call): Check for error_mark_node as
538 TREE_VALUE when default arguments are processed.
540 2012-01-23 Jason Merrill <jason@redhat.com>
543 * decl2.c (determine_visibility): Check for visibility attribute
544 on template specialization.
546 2012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
549 * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
551 2012-01-23 Jason Merrill <jason@redhat.com>
554 * class.c (add_method): Set OVL_USED for using-decls.
555 * tree.c (ovl_scope): New.
556 * cp-tree.h: Declare it.
557 * parser.c (cp_parser_template_name): Use it.
558 * semantics.c (baselink_for_fns): Likewise.
559 * name-lookup.c (set_inherited_value_binding_p): Likewise.
561 2012-01-20 Paolo Carlini <paolo.carlini@oracle.com>
564 * pt.c (lookup_template_class_1): Check context returned by
565 tsubst for error_mark_node.
567 2012-01-19 Kai Tietz <ktietz@redhat.com>
570 * decl2.c (save_template_attributes): Use merge_attributes
571 instead of chaining up via TREE_CHAIN.
573 2012-01-19 Jason Merrill <jason@redhat.com>
576 * class.c (finish_struct): Call add_method here for function usings.
577 * semantics.c (finish_member_declaration): Not here.
579 2012-01-18 Paolo Carlini <paolo.carlini@oracle.com>
582 * typeck2.c (store_init_value): Within a template guard
583 cxx_constant_value with require_potential_constant_expression.
584 * pt.c (convert_nontype_argument): Likewise.
586 2012-01-16 Jakub Jelinek <jakub@redhat.com>
589 * mangle.c (write_template_arg_literal): Handle complex.
591 2012-01-16 Jason Merrill <jason@redhat.com>
594 * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
597 * typeck.c (build_static_cast_1): Handle bit-fields properly.
599 2012-01-13 Ian Lance Taylor <iant@google.com>
602 * typeck.c (enum_cast_to_int): New static function.
603 (cp_build_binary_op): When handling warn_sign_compare, don't test
604 for TREE_NO_WARNING. Do call enum_cast_to_int.
605 * call.c (avoid_sign_compare_warnings): Remove static function.
606 (build_new_op_1): Don't call avoid_sign_compare_warnings.
608 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
610 * decl2.c: Do not include tree-mudflap.h
611 * semantics.c: Likewise.
613 2012-01-13 Jason Merrill <jason@redhat.com>
616 * semantics.c (finish_break_stmt): Avoid adding an unreachable
620 * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
621 when reducing the visibility.
624 * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
626 2012-01-12 Jason Merrill <jason@redhat.com>
629 * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
632 2012-01-13 Dodji Seketeli <dodji@redhat.com>
635 * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
636 Set the pointer to the last block of the constructor to the
638 (build_constexpr_constructor_member_initializers): Get
639 build_data_member_initialization a chance to deal with more
640 statements before we choke.
642 2012-01-12 Jason Merrill <jason@redhat.com>
645 * mangle.c (write_expression): Mangle BASELINK scope if
646 BASELINK_QUALIFIED_P.
647 * search.c (adjust_result_of_qualified_name_lookup): Set
648 BASELINK_QUALIFIED_P.
649 * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
650 * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
651 adjust_result_of_qualified_name_lookup for non-qualified names.
654 * pt.c (unify): Handle error_mark_node.
656 2012-01-11 Jason Merrill <jason@redhat.com>
659 * call.c (standard_conversion): For ptrmemfuncs, compare the
663 * mangle.c (find_substitution): A type is only a substitution
664 match if we're looking for a type.
665 (write_nested_name): Use decl_mangling_context.
667 * decl.c (decls_match): Assert that the arguments are decls.
670 * pt.c (resolve_overloaded_unification): Compare types with
671 same_type_p, not decls_match.
673 2012-01-10 Jason Merrill <jason@redhat.com>
676 * class.c (build_base_path): Diagnose ambiguous base.
679 * semantics.c (cxx_eval_call_expression): Always retry previously
680 non-constant expressions.
682 2012-01-06 Jason Merrill <jason@redhat.com>
686 * parser.c (cp_parser_new_expression): Set
687 type_definition_forbidden_message.
693 * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
694 THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and
696 (write_template_arg): Fix mangling of class-scope functions and
698 (mangle_decl): Update suggested -fabi-version argument.
699 * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
700 DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
701 * tree.c (dependent_name): No longer static.
702 * cp-tree.h: Declare it.
703 * pt.c (unify): Defer handling of unconverted functions.
705 * mangle.c (mangle_decl): Don't generate mangling aliases
706 for maybe-in-charge [cd]tors.
708 * error.c (dump_expr): Print type of CONSTRUCTOR.
710 2012-01-05 Dodji Seketeli <dodji@redhat.com>
713 * parser.c (cp_parser_alias_declaration): Get out early upon
714 errors in the identifier or the attributes.
716 2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
719 * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
720 the tree returned by build_x_binary_op.
722 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
725 * parser.c (cp_parser_postfix_open_square_expression): Handle
726 postfix-expression [ braced-init-list ].
728 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
731 * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
732 call decay_conversion on v.
734 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
737 * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
738 declaration followed by specialization.
740 2012-01-03 Jakub Jelinek <jakub@redhat.com>
743 * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
744 on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
746 2012-01-02 Jason Merrill <jason@redhat.com>
750 * method.c (walk_field_subobs): Don't check for uninitialized
752 (synthesized_method_walk): Check here.
756 * parser.c (cp_parser_cache_defarg): Split out...
757 (cp_parser_parameter_declaration): ...from here.
758 (cp_parser_save_nsdmi): Use it.
759 (cp_parser_cache_group): Remove CPP_COMMA support.
761 2012-01-02 Dodji Seketeli <dodji@redhat.com>
764 * semantics.c (cx_check_missing_mem_inits): Don't assert in case
767 2012-01-02 Paolo Carlini <paolo.carlini@oracle.com>
770 * typeck2.c (digest_init_r): Use copy_init when initializing
773 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
776 * decl.c (build_enumerator): Don't call perform_integral_promotions
779 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
782 * typeck.c (build_reinterpret_cast_1): Implement resolution of
785 2012-01-01 Fabien Chêne <fabien@gcc.gnu.org>
787 * parser.c (cp_parser_using_declaration): Add a warning about
788 deprecated access declarations when no errors were encountered
789 while parsing the access declaration. Save the first token in
790 order to emit the warning at the right place.
792 Copyright (C) 2012 Free Software Foundation, Inc.
794 Copying and distribution of this file, with or without modification,
795 are permitted in any medium without royalty provided the copyright
796 notice and this notice are preserved.