We are taking care of this separately, as part of a larger set of changes. So, please don't apply the patch; we're likely to trip over each other.
Thanks! > -----Original Message----- > From: Jakub Jelinek <ja...@redhat.com> > Sent: Friday, June 6, 2025 09:48 > To: Robert Dubner <rdub...@symas.com>; James K. Lowden > <jklow...@cobolworx.com> > Cc: gcc-patches@gcc.gnu.org > Subject: [PATCH] libgcobol: Drop unhelpful constexpr keyword [PR120554] > > Hi! > > As mentioned in the PR, this code is likely only valid in C++23 and > later and not really useful in that case and it might be a GCC bug > that it fails to diagnose the bug in C++14 to C++20 modes (it diagnoses > it in C++11 mode). > > In any case, the class doesn't have any constexpr constructors, so > it isn't a literal type, one can't construct those objects in constant > expressions and so using constexpr keyword for the defaulted copy > assignment > operator can't help because that needs to copy from a constant expression > which isn't possible to construct. > > Bootstrapped/regtested on x86_64-linux, ok for trunk? > > 2025-06-06 Jakub Jelinek <ja...@redhat.com> > > PR cobol/120554 > * common-defs.h (cbl_declarative_t::operator=): Remove constexpr. > > --- libgcobol/common-defs.h.jj 2025-06-04 19:37:23.819423789 +0200 > +++ libgcobol/common-defs.h 2025-06-06 11:50:07.873810554 +0200 > @@ -512,7 +512,7 @@ struct cbl_declarative_t { > std::copy( that.files, that.files + nfile, this->files ); > } > } > - constexpr cbl_declarative_t& operator=(const cbl_declarative_t&) = > default; > + cbl_declarative_t& operator=(const cbl_declarative_t&) = default; > > std::vector<uint64_t> encode() const; > > > Jakub