Package: gforth
Version: 0.7.0+ds1-6

While building the package using our research compiler infrastructure (which
provides link-type type checking) we noticed the following conflicting
declarations that first appear to be consistent:

engine/main.c:ImageHeader *gforth_header;
engine/forth.h:extern ImageHeader *gforth_header;
engine/signals.c:  ImageHeader *h=gforth_header;

When compiling

make gforth-ditc-noll OPT=-noll OPTDEFINES= OPTOBJECTS=dblsub.o

main.c is compiled with -DDOUBLY_INDIRECT, at which point Xt becomes a typedef
name for void** instead of void*, which is the typedef name used at compile time
of signals.c. As ImageHeader is a struct containing entries of type Xt, the type
information seen in signals.c and main.c is no longer consistent, and undefined
behaviour may arise.

Best,
Michael

Attachment: pgptydhDCrtFx.pgp
Description: PGP signature

Reply via email to