diff options
author | Jason Merrill <jason@redhat.com> | 2011-11-04 08:54:08 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-11-04 08:54:08 -0400 |
commit | b25dd954c41bf75d2bc892c7e9114908eaa7d314 (patch) | |
tree | 2aea6e5048d38c60ba565aa04710e5fa10eeeadd /libgcc | |
parent | 5972791c345f8e0a750ab5e5cde189ba5064d118 (diff) | |
download | gcc-b25dd954c41bf75d2bc892c7e9114908eaa7d314.zip gcc-b25dd954c41bf75d2bc892c7e9114908eaa7d314.tar.gz gcc-b25dd954c41bf75d2bc892c7e9114908eaa7d314.tar.bz2 |
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
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions