On Sat, 2012-09-22 at 22:18 +0100, Michael Tautschnig wrote: > Package: intercal > Version: 0.29-2 > > While building your package using our research compiler infrastructure we > noticed the following conflicting declarations: > > ./src/perpet.c:bool cdebug; /* AIS: Pass -g to our C compiler, and > leave C code. */ > ./src/feh2.c: extern int cdebug; > > As the storage sizes need not match, this may yield undefined behaviour.
Thanks for reporting this bug! It can be hard to verify whether apparent type mismatches are genuine bugs or not in C-INTERCAL, because the files don't all get linked together at once but rather in various subsets, but feh2.c and perpet.c do indeed get linked together, and can have a C99 _Bool type as bool (which as you mention, indeed might not be the same as int). I've fixed the bug in the development version of the compiler. In case anyone feels this bug is urgent enough to put out a new release on Debian, here's the patch I used: diff --git a/src/feh2.c b/src/feh2.c index 3eb7148..dead0df 100644 --- a/src/feh2.c +++ b/src/feh2.c @@ -1802,7 +1802,7 @@ void emit(tuple *tn, FILE *fp) int dim; int generatecfjump=0; /* AIS */ static int pasttryagain=0; /* AIS */ - extern int cdebug; + extern bool cdebug; /* AIS */ /* grind out label and source dump */ if (yydebug || cdebug || compile_only) (The development version is stored at <https://gitorious.org/intercal>, and can be pulled directly from <git://gitorious.org/intercal/intercal.git>.) -- ais523 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org