Subject: pkg/35498: emulators/gpsim-devel fails to build with gcc4 on 4.0_BETA2
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <rosenfeld@grumpf.hope-2000.org>
List: pkgsrc-bugs
Date: 01/27/2007 10:10:00
>Number:         35498
>Category:       pkg
>Synopsis:       emulators/gpsim-devel fails to build with gcc4 on 4.0_BETA2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jan 27 10:10:00 +0000 2007
>Originator:     rosenfeld@grumpf.hope-2000.org
>Release:        NetBSD 4.0_BETA2
>Organization:
>Environment:
System: NetBSD panic 4.0_BETA2 NetBSD 4.0_BETA2 (PANIC) #1: Sun Jan 7 15:45:57 CET 2007 woodstoc@panic:/usr/obj/sys/arch/i386/compile.i386/PANIC i386
Architecture: i386
Machine: i386
>Description:
emulators/gpsim-devel causes many "extra qualification" errors when
building it with gcc4:

../src/../src/value.h:293: error: extra qualification 'Boolean::' on member 'typeCheck'
../src/../src/value.h:356: error: extra qualification 'Integer::' on member 'typeCheck'
../src/../src/value.h:357: error: extra qualification 'Integer::' on member 'assertValid'
../src/../src/value.h:358: error: extra qualification 'Integer::' on member 'assertValid'
../src/../src/value.h:501: error: extra qualification 'AbstractRange::' on member 'typeCheck'

>How-To-Repeat:
try to build emulators/gpsim-devel with gcc4 on 4.0_BETA2

>Fix:


--- src/value.h.orig	2005-08-31 16:48:22.000000000 +0200
+++ src/value.h	2007-01-25 23:15:49.000000000 +0100
@@ -290,7 +290,7 @@
 
   bool getVal() { return value; }
 
-  static Boolean* Boolean::typeCheck(Value* val, string valDesc);
+  static Boolean* typeCheck(Value* val, string valDesc);
   virtual bool compare(ComparisonOperator *compOp, Value *rvalue);
 
   virtual Value *copy() { return new Boolean(value); }
@@ -353,9 +353,9 @@
   virtual char *toString(char *, int len);
   virtual char *toBitStr(char *, int len);
 
-  static Integer* Integer::typeCheck(Value* val, string valDesc);
-  static Integer* Integer::assertValid(Value* val, string valDesc, gint64 valMin);
-  static Integer* Integer::assertValid(Value* val, string valDesc, gint64 valMin, gint64 valMax);
+  static Integer* typeCheck(Value* val, string valDesc);
+  static Integer* assertValid(Value* val, string valDesc, gint64 valMin);
+  static Integer* assertValid(Value* val, string valDesc, gint64 valMin, gint64 valMax);
   virtual bool compare(ComparisonOperator *compOp, Value *rvalue);
 
   inline operator gint64() {
@@ -498,7 +498,7 @@
   /// copy the object value to a user char array
   virtual char *toString(char *, int len);
 
-  static AbstractRange* AbstractRange::typeCheck(Value* val, string valDesc);
+  static AbstractRange* typeCheck(Value* val, string valDesc);
   virtual bool compare(ComparisonOperator *compOp, Value *rvalue);
 
 private:

--- src/p12x.h.orig	2005-08-31 16:48:18.000000000 +0200
+++ src/p12x.h	2007-01-25 23:24:09.000000000 +0100
@@ -108,7 +108,7 @@
 
   virtual PROCESSOR_TYPE isa(void){return _P12CE518_;};
   virtual void tris_instruction(unsigned int tris_register);
-  virtual void P12CE518::set_eeprom(I2C_EE *e);
+  virtual void set_eeprom(I2C_EE *e);
 
   P12CE518(void);
   static Processor *construct(void);

--- cli/ui_gpsim.cc.orig	2005-08-30 21:12:00.000000000 +0200
+++ cli/ui_gpsim.cc	2007-01-25 23:20:04.000000000 +0100
@@ -33,7 +33,7 @@
   CGpsimUserInterface(const char *paStrings[]);
   virtual ~CGpsimUserInterface() {}
 
-  void CGpsimUserInterface::SetStreams(FILE *in, FILE *out);
+  void SetStreams(FILE *in, FILE *out);
   virtual ISimConsole &GetConsole();
   virtual void DisplayMessage(unsigned int uStringID, ...);
   virtual void DisplayMessage(FILE * pOut, unsigned int uStringID, ...);