]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++: Fix ICE with weird copy assignment operator [PR114572]
authorJakub Jelinek <jakub@redhat.com>
Fri, 5 Apr 2024 07:31:28 +0000 (09:31 +0200)
committerJakub Jelinek <jakub@redhat.com>
Fri, 5 Apr 2024 07:31:28 +0000 (09:31 +0200)
commit592536eb3c0a97a55b1019ff0216ef77e6ca847e
tree73d684ddc1ac6db79cc19b77db7a603a16691804
parent12b04452b40d49bb5322653cb5716b1ebf71b73d
c++: Fix ICE with weird copy assignment operator [PR114572]

While ctors/dtors don't return anything (undeclared void or this pointer
on arm) and copy assignment operators normally return a reference to *this,
it isn't invalid to return uselessly some class object which might need
destructing, but the OpenMP clause handling code wasn't expecting that.

The following patch fixes that.

2024-04-05  Jakub Jelinek  <jakub@redhat.com>

PR c++/114572
* cp-gimplify.cc (cxx_omp_clause_apply_fn): Call build_cplus_new
on build_call_a result if it has class type.

* testsuite/libgomp.c++/pr114572.C: New test.
gcc/cp/cp-gimplify.cc
libgomp/testsuite/libgomp.c++/pr114572.C [new file with mode: 0644]