diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-02-05 23:28:25 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-02-05 23:28:25 +0100 |
commit | d397e3948ec945c8c3b4dc695e1b0b5820365a39 (patch) | |
tree | d28c490bd10459d8af9c855f87d56d907710a30b /gcc/cp/optimize.c | |
parent | 216090cc0fb7dc4de5fa9176860c845d5646c6b7 (diff) | |
download | gcc-d397e3948ec945c8c3b4dc695e1b0b5820365a39.zip gcc-d397e3948ec945c8c3b4dc695e1b0b5820365a39.tar.gz gcc-d397e3948ec945c8c3b4dc695e1b0b5820365a39.tar.bz2 |
re PR c++/89187 (ICE in initialize_argument_information, at calls.c:2023)
PR c++/89187
* optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
PARM_DECLs of the thunk.
* lambda.c (maybe_add_lambda_conv_op): Likewise.
* g++.dg/opt/pr89187.C: New test.
From-SVN: r268564
Diffstat (limited to 'gcc/cp/optimize.c')
-rw-r--r-- | gcc/cp/optimize.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c index 7b6edfc..aace7de 100644 --- a/gcc/cp/optimize.c +++ b/gcc/cp/optimize.c @@ -417,6 +417,8 @@ maybe_thunk_body (tree fn, bool force) gcc_assert (clone_parm); DECL_ABSTRACT_ORIGIN (clone_parm) = NULL; args[parmno] = clone_parm; + /* Clear TREE_ADDRESSABLE on thunk arguments. */ + TREE_ADDRESSABLE (clone_parm) = 0; clone_parm = TREE_CHAIN (clone_parm); } if (fn_parm_typelist) |