On Wed, 2005-09-21 at 10:51 +0200, Paolo Bonzini wrote:
> 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.  
So is this a bug that is now fixed or is bad coding practices getting
caught with a stricter GCC distribution?

> 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;").
Awesome. Now everything works for me.

> 
> By the way, the correct list to ask would have been [EMAIL PROTECTED] 
> (this one is for development "of" GCC, not "with" GCC).
> 
Sounds good. I will subscribe to [EMAIL PROTECTED]

Thanks for your help and response,
Ernesto



> Paolo

Reply via email to