[comp.lang.c++] An amusing Zortech C++ bug

nagle@well.sf.ca.us (John Nagle) (05/30/90)

      Try compiling

	#include <signal.h>
	signal(SIGFPE,SIG_IGN);

with Zortech C++.  You get a type error, because SIG_IGN is a null of
"C++" function type, and "signal" wants a "C" function value there.
The Zortech-specific syntax for declaring C and C++ functions 
doesn't, apparently, apply to casts.

bright@Data-IO.COM (Walter Bright) (05/31/90)

In article <18207@well.sf.ca.us> nagle@well.sf.ca.us (John Nagle) writes:
<      Try compiling
<	#include <signal.h>
<	signal(SIGFPE,SIG_IGN);
<with Zortech C++.  You get a type error, because SIG_IGN is a null of
<"C++" function type, and "signal" wants a "C" function value there.
<The Zortech-specific syntax for declaring C and C++ functions 
<doesn't, apparently, apply to casts.

The error is in signal.h, the SIG_IGN must be cast to a cdecl function:
	#define SIG_IGN		(void (cdecl *)(int)) 2
The fixed signal.h has been available on the Zortech BBS for some time.
Zortech BBS: (206) 822-6907