https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111544
Bug ID: 111544 Summary: [14 regression] assignment of read-only location after r14-4111-g6e92a6a2a72d3b Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other Assignee: unassigned at gcc dot gnu.org Reporter: seurer at gcc dot gnu.org Target Milestone: --- Starting with r14-4111-g6e92a6a2a72d3b I am seeing a whole bunch of errors when compiling some test code like this: /home/seurer/gcc/git/install/gcc-test//bin/g++ -c -o WFXMLScanner.o -DSPEC_CPU -DNDEBUG -DAPP_NO_THREADS -DXALAN_INMEM_MSG_LOADER -I. -Ixercesc -Ixercesc/dom -Ixercesc/dom/impl -Ixercesc/sax -Ixercesc/util/MsgLoaders/InMemory -Ixercesc/util/Transcoders/Iconv -Ixalanc/include -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_SAX2 -DPROJ_DOM -DPROJ_VALIDATORS -DXML_USE_NATIVE_TRANSCODER -DXML_USE_INMEM_MESSAGELOADER -m64 -O3 -mcpu=power8 -fpeel-loops -funroll-loops -ffast-math -mpopcntd -mrecip=all -DSPEC_CPU_LP64 -DSPEC_CPU_LINUX WFXMLScanner.cpp In file included from ./xercesc/util/NameIdPool.hpp:338, from ./xercesc/internal/XMLScanner.hpp:311, from ./xercesc/internal/WFXMLScanner.hpp:93, from WFXMLScanner.cpp:65: ./xercesc/util/NameIdPool.c: In member function 'xercesc_2_5::NameIdPoolEnumerator<TElem>& xercesc_2_5::NameIdPoolEnumerator<TElem>::operator=(const xercesc_2_5::NameIdPoolEnumerator<TElem>&)': ./xercesc/util/NameIdPool.c:416:20: error: assignment of read-only location '((xercesc_2_5::NameIdPoolEnumerator<TElem>*)this)->xercesc_2_5::NameIdPoolEnumerator<TElem>::fMemoryManager' 416 | fMemoryManager = toAssign.fMemoryManager; | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~ This is old, old code (one of the tests in spec 2006) and appears to run just fine. Is there actually something wrong in the code or is the error message in error? commit 6e92a6a2a72d3b7a5e1b29042d8a6a43fe1085aa (HEAD) Author: Patrick Palka <ppa...@redhat.com> Date: Mon Sep 18 14:47:52 2023 -0400 c++: non-dependent assignment checking [PR63198, PR18474]