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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The regression happened after r180941 and not after r180959. Almost certainly
this one, as it's the only C++ change in the range:

commit b25dd954c41bf75d2bc892c7e9114908eaa7d314
Author: Jason Merrill
Date:   Fri Nov 4 12:54:08 2011

    re PR c++/48370 (G++ fails to extend reference temporary lifetime in some
situations)

            PR c++/48370
            * call.c (extend_ref_init_temps, extend_ref_init_temps_1): New.
            (set_up_extended_ref_temp): Use it.  Change cleanup parm to VEC.
            (initialize_reference): Just call convert_like.
            * decl.c (grok_reference_init): Just call initialize_reference.
            (build_init_list_var_init): Remove.
            (check_initializer): Change cleanup parm to VEC.  Handle references
            like other types.  Call perform_implicit_conversion instead
            of build_init_list_var_init.  Don't use build_aggr_init for
            aggregate initialization of arrays.
            (cp_finish_decl): Change cleanup to VEC.
            * typeck2.c (store_init_value): Call extend_ref_init_temps.
            Use build_vec_init for non-constant arrays.
            * init.c (expand_aggr_init_1): Adjust.
            (build_vec_init): Avoid re-converting an initializer
            that's already digested.
            * mangle.c (mangle_ref_init_variable): Add a discriminator.
            * cp-tree.h: Adjust.
            * typeck.c (convert_for_initialization): Adjust.
            * decl2.c (maybe_emit_vtables): Adjust.

    From-SVN: r180944

Reply via email to