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

Reply via email to