https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70403
--- Comment #2 from Hadula, Tomasz <thadula at ciena dot com> --- The whole thing is huge (compiles for almost 2 hours). The problem is that when I attempt to make it smaller in form of a simple, standalone app, the problem doesn't happen anymore. I've been searching for something that dereferences pNewSel or some sort of memcpy or memmove, but I can't find it. Those are 2 methods used to obtain pNewSel. Hashlist is based on RogueWave hashset: UniCtp* NewLogicalSwitch::FindCtpFromHashList (McCtpId ctpId) { UniCtp* pDummyCtp = mUniCtpPool.Get(); if (!pDummyCtp) { getSwitchCoreMemoryLog()->PrintRamLog ( "NewLogicalSwitch::FindCtpFromHashList: no more room in the CTP pool"); return NULL; } pDummyCtp->CtpCpBase::Init(ctpId); // call base class method; need CtpCpBase:: qualifier because UniCtp redefines Init(), hiding the base class version UniCtp* pCtp = mCtpHashList.find(pDummyCtp); pDummyCtp->Destroy(); // return to mempool return pCtp; } UniCp* NewLogicalSwitch::FindCpFromHashList (McCpId cpId) { // Note - The prot app is not used in the find process. // Find just compares the ids of the two CPs. // The prot app is not part of the id. // We just needed to pass in a dummy prot app // along with the real id to create the dummyCp. // TcmInfo dummyTcmInfo; UniCp* pDummyCp, *pUniCp; pDummyCp = mUniCpPool.Get(); if (!pDummyCp) { getSwitchCoreMemoryLog()->PrintRamLog ( "NewLogicalSwitch::FindCpFromHashList: no more room in the CP pool"); return NULL; } pDummyCp->Init(cpId, MC_CP_PROTECTION_APP_NONE, MC_CP_PU_TYPE_NONE, 0, dummyTcmInfo, true, true, true, true, McId::InvalidId); pUniCp = mCpHashList.find (pDummyCp); // Return CP to MemPool pDummyCp->Destroy(); return pUniCp; } Just a command line used to compile that particular source goes like this: /usr/local/ciena/powerpc-e500-linux-gnuspe-20160316/bin/powerpc-e500-linux-gnuspe-g++ -Wp,-MD,/simdisk/thadula/oneos/branches/centaur/dev/main/build/centaur-cn5430/libNewLS.a/chassis/powerpc-e500/32/.NewLogicalSwitch.o.d,-MP -g -pipe -O2 -fno-delete-null-pointer-checks -std=gnu++03 -Wall -Wextra -Wno-unused-parameter -Wno-deprecated -Wno-unused-but-set-parameter -Wno-unused-function -Wno-unused-parameter -fPIC -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/core/txn/Switching/NewLS -DCIENA_CTM -DCIENA_CENTAUR -DOSI_STACK_ENABLED -DCENTAUR_5430 -DCENTAUR_SPECIFIC -DWARM_RESTART -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_hdpsm/lib/ -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_hdpsm/ko/ -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_hdsm/lib/ -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_hdsm/ko/ -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_sm/lib/ -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_sm/ko/ -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/elf-utils -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/include -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/linxipc -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/log -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/onesies -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/subsys-elf -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/cad -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/compiler -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/apps/apis -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/apps/include -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/apps/infrastructure -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/apps/notifications -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/apps/utilities -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ntp -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/nonbranched -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/system/map -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/system/shared -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/system/shared/hal -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/ni/system/branding -D_REENTRANT -DRW_MULTI_THREAD -DRW_POSIX_THREADS -DRWDEBUG -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/event_mgr -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/osrp/osrputil -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/driver_common/ko -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/driver_common/lib -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/smFabricMgr -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_sm/lib -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/uio_ciena_sm/ko -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/apis -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/core -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/component -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/core/init -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/core/txn -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/core/txn/component -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/include -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/include/drivers -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/infrastructure -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/nonbranched -DCD -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/hardware/tsx_uio -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/generic/signal_thrower -I/simdisk/thadula/oneos/branches/centaur/dev/main/cache/centaur-cn5430/linx/chassis/powerpc-e500/32/include -I/simdisk/thadula/oneos/branches/centaur/dev/main/cache/centaur-cn5430/linx/chassis/powerpc-e500/32/usr/include -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/build/centaur-cn5430/libFacDbCommon.a/chassis/.db/Facility/FacDbCommon -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/build/centaur-cn5430/libFacDbCommon.a/chassis/.db/Facility -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/build/centaur-cn5430/libFacDbCommon.a/chassis/.db -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/core/txn/Facility/FacDbCommon -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/build/centaur-cn5430/libmof.a/chassis/.mof/MoCommon -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/build/centaur-cn5430/libmof.a/chassis/.mof -iquote/simdisk/thadula/oneos/branches/centaur/dev/main/src/software/centaur/apps/mof/MoDescriptor -c -o /simdisk/thadula/oneos/branches/centaur/dev/main/build/centaur-cn5430/libNewLS.a/chassis/powerpc-e500/32/NewLogicalSwitch.o src/software/centaur/apps/core/txn/Switching/NewLS/NewLogicalSwitch.cpp