Problem with gcc 4.0.1

Paolo Bonzini paolo.bonzini@lu.unisi.ch
Wed Sep 21 08:51:00 GMT 2005


Ernest L. Williams Jr. wrote:
> Hi,
> 
> The following code fragment is now causing problems under gcc 4.0.1
> Everything is perfect under "gcc version 3.4.3"
> Any recommended work-arounds?
> ================= code fragment======================================
> #ifndef __LOC_PV_FACTORY_H__
> #define __LOC_PV_FACTORY_H__
> 
> line 10 -->  #include "pv_factory.h"
> line 11 -->
> line 12 -->   class LOC_PV_Factory : public PV_Factory
> line 13 -->   {
> line 14 -->     public:
> line 15 -->       LOC_PV_Factory();
> line 16 -->       ~LOC_PV_Factory();
> line 17 -->       ProcessVariable *create(const char *PV_name);
> line 18 -->     private:
> line 19 -->       friend class LOC_ProcessVariable;
> line 20 -->       static void forget(LOC_ProcessVariable *pv);
> line 21 -->   };

GCC was incorrectly accepting this code.  You should add a declaration 
of class LOC_ProcessVariable outside class LOC_PV_Factory, either 
through its include file or with a forward declaration ("class 
LOC_ProcessVariable;").

By the way, the correct list to ask would have been gcc-help@gcc.gnu.org 
(this one is for development "of" GCC, not "with" GCC).

Paolo



More information about the Gcc mailing list