Extra qualification errors in gcc 4.1.0


#1

I’m building on FC4 with GCC 4.1.0, and I get a bunch of “extra
qualification” errors in the C++ code where static functions are
declared inside a class with the class name prefixed… for example,
from gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.h, there’s
a class that looks like:

class gri_mmse_fir_interpolator_cc;
float omega() const { return d_omega;}
float gain_mu() const { return d_gain_mu;}
float gain_omega() const { return d_gain_omega;}

void set_gain_mu (float gain_mu) { d_gain_mu = gain_mu; }
void set_gain_omega (float gain_omega) { d_gain_omega = gain_omega; }
void set_mu (float mu) { d_mu = mu; }
void set_omega (float omega) { d_omega = omega; }

protected:
gr_clock_recovery_mm_cc (float omega, float gain_omega, float mu,
float gain_mu);

private:
float d_mu;
float d_omega;
float d_gain_omega;
float d_gain_mu;
gr_complex d_last_sample;
gri_mmse_fir_interpolator_cc *d_interp;
gr_complex gr_clock_recovery_mm_cc::slicer_0deg (gr_complex sample);
gr_complex gr_clock_recovery_mm_cc::slicer_45deg (gr_complex sample);

friend gr_clock_recovery_mm_cc_sptr
gr_make_clock_recovery_mm_cc (float omega, float gain_omega, float
mu, float gain_mu);
};

line 77 and 78 are
gr_complex gr_clock_recovery_mm_cc::slicer_0deg (gr_complex sample);
gr_complex gr_clock_recovery_mm_cc::slicer_45deg (gr_complex sample);

and GCC 4.1 spits out an error for both, because the
gr_clock_recovery_mm_cc:: prefix is apparently an “extra
qualification”. This occurs in various points in the code, and all I
have to do is go in and remove the prefixes, and it compiles fine. Is
there some reason why these files have been left like this, or should
they be changed?


#2

On Wed, Apr 05, 2006 at 12:54:37PM -0700, Erik T. wrote:

I’m building on FC4 with GCC 4.1.0, and I get a bunch of “extra
qualification” errors in the C++ code where static functions are
declared inside a class with the class name prefixed… for example,
from gnuradio-core/src/lib/general/gr_clock_recovery_mm_cc.h, there’s
a class that looks like:

They’re errors and should be fixed.

Can you get me a list of all files that have this problem?
I don’t have gcc 4.1.0 installed.

Thanks,
Eric


#3

On Wed, Apr 05, 2006 at 01:17:06PM -0700, Eric B. wrote:

I don’t have gcc 4.1.0 installed.
gr_clock_recovery_mm_cc.h is fixed in CVS.
Please let me know if you come across any others.

Eric


#4

I guess the gr_clock_recovery_mm_cc.h was the only one - I know I got
3 or 4 other places on an earlier build, but I guess they’ve been
cleaned up in the current one. I haven’t checked the packages I don’t
use, though (gr-audio-portaudio, gr-comedi, gr-mc4020, gr-audio-oss,
or gr-audio-jack) I did have another problem compiling
gr_clock_recovery_mm_cc.cc - there was a “return” that was spelled
“retrn” or something like that.


#5

Can you say a dozen times:

“Bob is not a C++ programmer”
“Bob is not a C++ programmer”

. . . . .

Ooopsy. Basically every function I have written or had a hand in. MEA
CULPA.

Bob

Eric B. wrote:

Can you get me a list of all files that have this problem?
I don’t have gcc 4.1.0 installed.

Thanks,
Eric


AMSAT VP Engineering. Member: ARRL, AMSAT-DL, TAPR, Packrats,
NJQRP/AMQRP, QRP ARCI, QCWA, FRC. ARRL SDR Wrk Grp Chairman
Laziness is the number one inspiration for ingenuity. Guilty as
charged!