On Sun, 28 Feb 1999, Mark A. Heilpern wrote:
> I'm not certain if this will make a difference or not (and, obviously,
> haven't tried it :) but it might help to remove the void parameter declaration?
>
> void (*gen)();
>
> I compiled (using g++ egcs-2.90.27 980315 (egcs-1.0.2 release) )
> a file that had two variables defined, one as you defined your function
> pointer and one as I suggested. Neither produced any complaint from the
> compiler though.
>
> >comm.c: In function int main(int, char **)':
> >comm.c:249: warning: ANSI C++ forbids cast to non-reference type used as
> >lvalue
> >
> > void (*gen)(void);
> >
> > if (!((void*)gen = dlsym(libboot, "boot_world__Fv"))) {
Oky, I think it's my fault for not being clear on exactly which line the
warning is. The warning happens on the dlsym() line, for any function I try
to load with it, be it an ACMD() type function, or whatever (you should see
the number of warnings I get in this one file that loads several different
functions at bootup)... if I remove the void typecast on that line, I get
this:
comm.c:249: non-lvalue in assignment
Unfortunatly, that is an actual error... I'm using:
eddie:~/addict/src$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/egcs-2.90.29/specs
gcc version egcs-2.90.29 980515 (egcs-1.0.3 release)
for compiler... the warnings have been there since I started using c++ a
year ago, they're finally getting to me even though it doesn't seem to hurt
the operation of the mud...
Dan.
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST