https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63151

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org
            Summary|Accessibility error when    |[5/6/7 regression]
                   |brace-constructing base     |Accessibility error when
                   |class with protected        |brace-constructing base
                   |defaulted constructor and   |class with protected
                   |member variable             |defaulted constructor and
                   |                            |member variable

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
4.9 regression introduced in r203985:

r203985 | jason | 2013-10-23 14:08:56 -0400 (Wed, 23 Oct 2013) | 24 lines

        In C++11 a trivial [cd]tor might not be callable.
        * class.c (user_provided_p): A function deleted on its declation
        in the class is not user-provided.
        (type_build_ctor_call): Also force a ctor call if we
        might have a deleted or private trivial ctor.
        (type_build_dtor_call): New.
        (deduce_noexcept_on_destructors): Remove obsolete code.
        * cp-tree.h: Declare type_build_dtor_call.
        * decl.c (expand_static_init): Make sure trivial dtors are callable.
        (cxx_maybe_build_cleanup): Likewise.
        * except.c (build_throw): Likewise.
        * init.c (build_value_init): Handle trivial but not callable ctors.
        (perform_target_ctor): Make sure trivial dtor is callable.
        (perform_member_init): Likewise.
        (expand_cleanup_for_base): Likewise.
        (build_vec_delete_1): Likewise.
        (build_delete): Likewise.
        (push_base_cleanups): Likewise.
        (build_new_1): Avoid redundant error.
        * method.c (synthesized_method_walk): Can't ever exit early in C++11.
        Always process the subobject destructor.
        * semantics.c (finish_compound_literal): Make sure trivial dtor is
        callable.
        * typeck2.c (split_nonconstant_init): Likewise.

Reply via email to