diff options
author | Jakub Jelinek <jakub@redhat.com> | 2022-12-21 09:05:27 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2022-12-21 09:10:03 +0100 |
commit | 1119902b6c7c1c50123ed85ec1def8be4772d68c (patch) | |
tree | 1ba7afc4a41e3bcc01571d5ac240aa1af86cea8f /libffi/src | |
parent | 0d1b5446bf17c14fce3428a005446539292fe27e (diff) | |
download | gcc-1119902b6c7c1c50123ed85ec1def8be4772d68c.zip gcc-1119902b6c7c1c50123ed85ec1def8be4772d68c.tar.gz gcc-1119902b6c7c1c50123ed85ec1def8be4772d68c.tar.bz2 |
openmp: Don't try to destruct DECL_OMP_PRIVATIZED_MEMBER vars [PR108180]
DECL_OMP_PRIVATIZED_MEMBER vars are artificial vars with DECL_VALUE_EXPR
of this->field used just during gimplification and omp lowering/expansion
to privatize individual fields in methods when needed.
As the following testcase shows, when not in templates, they were handled
right, but in templates we actually called cp_finish_decl on them and
that can result in their destruction, which is obviously undesirable,
we should only destruct the privatized copies of them created in omp
lowering.
Fixed thusly.
2022-12-21 Jakub Jelinek <jakub@redhat.com>
PR c++/108180
* pt.cc (tsubst_expr): Don't call cp_finish_decl on
DECL_OMP_PRIVATIZED_MEMBER vars.
* testsuite/libgomp.c++/pr108180.C: New test.
Diffstat (limited to 'libffi/src')
0 files changed, 0 insertions, 0 deletions