re PR c++/81197 (ICE with structured binding and lifetime-extended temporaries)
authorJakub Jelinek <jakub@redhat.com>
Fri, 15 Dec 2017 21:39:20 +0000 (22:39 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 15 Dec 2017 21:39:20 +0000 (22:39 +0100)
commit70356f771a65b378362b08d5fdb926fbb88e4aa7
treeb5ee5b2b815030b7f06772d64cb74ea7a4a26e7b
parenta8c55cacaf8fa1e90f9e26c467a78081ae152b50
re PR c++/81197 (ICE with structured binding and lifetime-extended temporaries)

PR c++/81197
* cp-tree.h (cp_maybe_mangle_decomp): Declare.
* decl.c (cp_maybe_mangle_decomp): New function.
(cp_finish_decomp): Don't SET_DECL_ASSEMBLER_NAME here.
* parser.c (cp_convert_range_for,
cp_parser_decomposition_declaration): Call cp_maybe_mangle_decomp.
* pt.c (tsubst_expr): Likewise.
* mangle.c (find_decomp_unqualified_name): New function.
(write_unqualified_name): Handle DECL_DECOMPOSITION_P
where DECL_ASSEMBLER_NAME is already set.

* g++.dg/cpp1z/decomp34.C: New test.

From-SVN: r255705
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/mangle.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp1z/decomp34.C [new file with mode: 0644]