Your message dated Tue, 25 Feb 2014 13:00:42 +0200
with message-id <[email protected]>
and subject line Gforth - conflicting types of data structure
has caused the Debian Bug report #688591,
regarding Conflicting types of common data structure
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
688591: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=688591
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
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
pgp8fBgHPr9bE.pgp
Description: PGP signature
--- End Message ---
--- Begin Message ---
Hi,
Thanks a lot for your research!
In this particular case, although the situation and the code is indeed
a bit weird, I think that it's not really a problem. As far as the code
in signals.c uses only some of the fields of the ImageHeader structure,
and none of the Xt or Label ones, the only problem that might arise is
a matter of alignment. However, I believe that the size and alignment
of void * should be exactly the same as that of void **, so the order,
size and alignment of the subsequent fields in the structure should not
change.
Yes, it is weird, but it ought to work :)
Once again, thanks for this piece of analysis and for all your Debian
work!
G'luck,
Peter
--
Peter Pentchev [email protected] [email protected] [email protected]
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13
This sentence every third, but it still comprehensible.
signature.asc
Description: Digital signature
--- End Message ---