Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020 
<== Date ==> <== Thread ==>

Subject: compiler problem in pvData/testApp
From: Dirk Zimoch <dirk.zimoch@psi.ch>
To: EPICS core-talk <core-talk@aps.anl.gov>
Date: Wed, 26 Sep 2018 17:39:32 +0200
Hello,

Since last weekend building EPICS 7 fails in pvData/testApp.

Can please someone fix this or at least tell me which commit to check out so that I can compile again? Unfortunately I failed to find out what exactly the problem is or which old commit to check out to make it compile again.

make[4]: Entering directory `/afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0/modules/pvData/testApp/O.RHEL7-x86_64' /usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -Wall -m64 -I. -I../O.Common -I. -I. -I.. -I../../testApp/misc -I../../testApp/pv -I../../testApp/property -I../../testApp/copy -I/usr/local/epics/base-7.0.1/include/compiler/gcc -I/usr/local/epics/base-7.0.1/include/os/Linux -I/usr/local/epics/base-7.0.1/include -I/usr/local/epics/base-7.0.1/include/compiler/gcc -I/usr/local/epics/base-7.0.1/include/os/Linux -I/usr/local/epics/base-7.0.1/include -c ../../testApp/copy/testPVCopy.cpp ../../testApp/copy/testPVCopy.cpp:38:5: error: ‘PVCopyPtr’ has not been declared
     PVCopyPtr const & pvCopy)
     ^
../../testApp/copy/testPVCopy.cpp: In function ‘void testPVScalar(const string&, const string&, const PVStructurePtr&, const int&)’: ../../testApp/copy/testPVCopy.cpp:48:41: error: base operand of ‘->’ is not a pointer
     StructureConstPtr structure = pvCopy->getStructure();
                                         ^
../../testApp/copy/testPVCopy.cpp:49:29: error: base operand of ‘->’ is not a pointer
     pvStructureCopy = pvCopy->createPVStructure();
                             ^
../../testApp/copy/testPVCopy.cpp:52:11: error: base operand of ‘->’ is not a pointer
     pvCopy->initCopy(pvStructureCopy, bitSet);
           ^
../../testApp/copy/testPVCopy.cpp:56:11: error: base operand of ‘->’ is not a pointer
     pvCopy->updateCopySetBitSet(pvStructureCopy,bitSet);
           ^
../../testApp/copy/testPVCopy.cpp:60:11: error: base operand of ‘->’ is not a pointer
     pvCopy->getCopyOffset(pvValueMaster);
           ^
../../testApp/copy/testPVCopy.cpp:67:11: error: base operand of ‘->’ is not a pointer
     pvCopy->updateCopyFromBitSet(pvStructureCopy,bitSet);
           ^
../../testApp/copy/testPVCopy.cpp:74:11: error: base operand of ‘->’ is not a pointer
     pvCopy->updateMaster(pvStructureCopy,bitSet);
           ^
../../testApp/copy/testPVCopy.cpp: At global scope:
../../testApp/copy/testPVCopy.cpp:83:5: error: ‘PVCopyPtr’ has not been declared
     PVCopyPtr const & pvCopy)
     ^
../../testApp/copy/testPVCopy.cpp: In function ‘void testPVScalarArray(const string&, const string&, const PVStructurePtr&, const int&)’: ../../testApp/copy/testPVCopy.cpp:97:41: error: base operand of ‘->’ is not a pointer
     StructureConstPtr structure = pvCopy->getStructure();
                                         ^
../../testApp/copy/testPVCopy.cpp:99:29: error: base operand of ‘->’ is not a pointer
     pvStructureCopy = pvCopy->createPVStructure();
                             ^
../../testApp/copy/testPVCopy.cpp:102:11: error: base operand of ‘->’ is not a pointer
     pvCopy->initCopy(pvStructureCopy, bitSet);
           ^
../../testApp/copy/testPVCopy.cpp:110:11: error: base operand of ‘->’ is not a pointer
     pvCopy->updateCopySetBitSet(pvStructureCopy,bitSet);
           ^
../../testApp/copy/testPVCopy.cpp:114:11: error: base operand of ‘->’ is not a pointer
     pvCopy->getCopyOffset(pvValueMaster);
           ^
../../testApp/copy/testPVCopy.cpp:125:11: error: base operand of ‘->’ is not a pointer
     pvCopy->updateCopyFromBitSet(pvStructureCopy,bitSet);
           ^
../../testApp/copy/testPVCopy.cpp:137:11: error: base operand of ‘->’ is not a pointer
     pvCopy->updateMaster(pvStructureCopy,bitSet);
           ^
../../testApp/copy/testPVCopy.cpp: In function ‘void scalarTest()’:
../../testApp/copy/testPVCopy.cpp:149:5: error: ‘PVCopyPtr’ was not declared in this scope
     PVCopyPtr pvCopy;
     ^
../../testApp/copy/testPVCopy.cpp:149:5: note: suggested alternative:
In file included from ../../testApp/copy/testPVCopy.cpp:26:0:
/usr/local/epics/base-7.0.1/include/pv/pvCopy.h:45:38: note: ‘epics::pvDatabase::PVCopyPtr’
 typedef std::tr1::shared_ptr<PVCopy> PVCopyPtr;
                                      ^
../../testApp/copy/testPVCopy.cpp:149:15: error: expected ‘;’ before ‘pvCopy’
     PVCopyPtr pvCopy;
               ^
../../testApp/copy/testPVCopy.cpp:159:5: error: ‘pvCopy’ was not declared in this scope
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
     ^
../../testApp/copy/testPVCopy.cpp:159:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp:166:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp:173:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp: In function ‘void arrayTest()’:
../../testApp/copy/testPVCopy.cpp:186:5: error: ‘PVCopyPtr’ was not declared in this scope
     PVCopyPtr pvCopy;
     ^
../../testApp/copy/testPVCopy.cpp:186:5: note: suggested alternative:
In file included from ../../testApp/copy/testPVCopy.cpp:26:0:
/usr/local/epics/base-7.0.1/include/pv/pvCopy.h:45:38: note: ‘epics::pvDatabase::PVCopyPtr’
 typedef std::tr1::shared_ptr<PVCopy> PVCopyPtr;
                                      ^
../../testApp/copy/testPVCopy.cpp:186:15: error: expected ‘;’ before ‘pvCopy’
     PVCopyPtr pvCopy;
               ^
../../testApp/copy/testPVCopy.cpp:196:5: error: ‘pvCopy’ was not declared in this scope
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
     ^
../../testApp/copy/testPVCopy.cpp:196:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp:203:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp:210:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp: In function ‘void powerSupplyTest()’:
../../testApp/copy/testPVCopy.cpp:251:5: error: ‘PVCopyPtr’ was not declared in this scope
     PVCopyPtr pvCopy;
     ^
../../testApp/copy/testPVCopy.cpp:251:5: note: suggested alternative:
In file included from ../../testApp/copy/testPVCopy.cpp:26:0:
/usr/local/epics/base-7.0.1/include/pv/pvCopy.h:45:38: note: ‘epics::pvDatabase::PVCopyPtr’
 typedef std::tr1::shared_ptr<PVCopy> PVCopyPtr;
                                      ^
../../testApp/copy/testPVCopy.cpp:251:15: error: expected ‘;’ before ‘pvCopy’
     PVCopyPtr pvCopy;
               ^
../../testApp/copy/testPVCopy.cpp:261:5: error: ‘pvCopy’ was not declared in this scope
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
     ^
../../testApp/copy/testPVCopy.cpp:261:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp:268:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp:275:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
../../testApp/copy/testPVCopy.cpp:282:14: error: ‘PVCopy’ has not been declared
     pvCopy = PVCopy::create(pvMaster,pvRequest,"");
              ^
make[4]: *** [testPVCopy.o] Error 1
make[4]: Leaving directory `/afs/psi.ch/group/8211/dirk/git/BASE/epics-base-7.0/modules/pvData/testApp/O.RHEL7-x86_64'


In case it matters: I have this problem with several gcc versions, e.g 4.8.5 and 6.2.1. Also with clang, but with better error message:

../../testApp/copy/testPVCopy.cpp:38:5: error: unknown type name 'PVCopyPtr'; did you mean 'epics::pvDatabase::PVCopyPtr'?

Thus the problem seems to be namespace related. However I could not find out how to fix it. Using namespace epics::pvDatabase only seems to make things worse.

Dirk


Replies:
Re: compiler problem in pvData/testApp Johnson, Andrew N.

Navigate by Date:
Prev: Re: Bug: #1790723 and Bug #1790715 Williams Jr., Ernest L.
Next: Re: compiler problem in pvData/testApp Johnson, Andrew N.
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020 
Navigate by Thread:
Prev: Jenkins build is back to normal : epics-7.0-windows » STATIC,win64 #63 APS Jenkins via Core-talk
Next: Re: compiler problem in pvData/testApp Johnson, Andrew N.
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020 
ANJ, 29 Oct 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·