--- Begin Message ---
Package: allegro4
Severity: normal
Tags: patch
When building 'allegro4' on amd64 with gcc-4.0,
I get the following error:
./src/fli.c:559: error: invalid lvalue in increment
./src/fli.c:568: error: invalid lvalue in increment
./src/fli.c:575: error: invalid lvalue in assignment
./src/fli.c:584: error: invalid lvalue in assignment
./src/fli.c:586: error: invalid lvalue in increment
./src/fli.c:586: error: invalid lvalue in increment
./src/fli.c:586: error: invalid lvalue in increment
./src/fli.c:586: error: invalid lvalue in increment
./src/fli.c:586: error: invalid lvalue in increment
./src/fli.c:596: error: invalid lvalue in increment
./src/fli.c:603: error: invalid lvalue in assignment
./src/fli.c:612: error: invalid lvalue in assignment
./src/fli.c:614: error: invalid lvalue in increment
./src/fli.c:614: error: invalid lvalue in increment
./src/fli.c:614: error: invalid lvalue in increment
./src/fli.c:614: error: invalid lvalue in increment
./src/fli.c:614: error: invalid lvalue in increment
make[1]: *** [obj/unix/alleg/fli.o] Error 1
make[1]: Leaving directory `/allegro4-4.0.3'
make: *** [build-stamp] Error 2
With the attached patch 'allegro4' can be compiled
on amd64 using gcc-4.0.
Regards
Andreas Jochens
diff -urN ../tmp-orig/allegro4-4.0.3/src/c/cstretch.c ./src/c/cstretch.c
--- ../tmp-orig/allegro4-4.0.3/src/c/cstretch.c 2003-04-19 09:06:47.000000000
+0200
+++ ./src/c/cstretch.c 2004-12-10 15:21:02.000000000 +0100
@@ -37,10 +37,10 @@
type *s = (type*) sptr; \
unsigned long d = dptr; \
unsigned long dend = d + _al_stretch.dw; \
-for (; d < dend; d += (size), (unsigned char*) s += _al_stretch.sinc) { \
+for (; d < dend; d += (size), s = (unsigned char*) s + _al_stretch.sinc) {\
set(d, get(s)); \
if (dd >= 0) \
- (unsigned char*) s += (size), dd += _al_stretch.i2; \
+ s = (unsigned char*) s + (size), dd += _al_stretch.i2; \
else \
dd += _al_stretch.i1; \
}
@@ -130,12 +130,12 @@
type *s = (type*) sptr; \
unsigned long d = dptr; \
unsigned long dend = d + _al_stretch.dw; \
-for (; d < dend; d += (size), (unsigned char*) s += _al_stretch.sinc) { \
+for (; d < dend; d += (size), s = (unsigned char*) s + _al_stretch.sinc) {\
unsigned long color = get(s); \
if (color != (mask)) \
set(d, color); \
if (dd >= 0) \
- (unsigned char*) s += (size), dd += _al_stretch.i2; \
+ s = (unsigned char*) s + (size), dd += _al_stretch.i2; \
else \
dd += _al_stretch.i1; \
}
diff -urN ../tmp-orig/allegro4-4.0.3/src/fli.c ./src/fli.c
--- ../tmp-orig/allegro4-4.0.3/src/fli.c 2003-04-19 09:06:47.000000000
+0200
+++ ./src/fli.c 2004-12-10 15:17:12.000000000 +0100
@@ -184,8 +184,8 @@
/* helpers for reading FLI chunk data */
-#define READ_BYTE_NC(p) (*((unsigned char *)(p))++)
-#define READ_CHAR_NC(p) (*((signed char *)(p))++)
+#define READ_BYTE_NC(p) ((unsigned char)(*p++))
+#define READ_CHAR_NC(p) ((char *)(*p++))
#if (defined ALLEGRO_GCC) && (defined ALLEGRO_I386)
@@ -330,7 +330,7 @@
if (end > PAL_SIZE)
return;
else if ((sz -= length * 3) < 0) {
- FLI_KLUDGE((char *)p, sz, length * 3);
+ FLI_KLUDGE(p, sz, length * 3);
}
fli_pal_dirty_from = MIN(fli_pal_dirty_from, offset);
@@ -396,7 +396,7 @@
if ((curr + size * 2) > bitmap_end)
return;
else if ((sz -= size * 2) < 0) {
- FLI_KLUDGE((char *)p, sz, size * 2);
+ FLI_KLUDGE(p, sz, size * 2);
}
READ_BLOCK_NC(p, curr, size*2);
curr += size*2;
@@ -406,7 +406,7 @@
if ((curr + size * 2) > bitmap_end)
return;
else if ((sz -= 2) < 0) {
- FLI_KLUDGE((char *)p, sz, 2);
+ FLI_KLUDGE(p, sz, 2);
}
READ_RLE_WORD_NC(p, curr, size);
curr += size*2;
@@ -446,7 +446,7 @@
if (end > PAL_SIZE)
return;
else if ((sz -= length * 3) < 0) {
- FLI_KLUDGE((char *)p, sz, length * 3);
+ FLI_KLUDGE(p, sz, length * 3);
}
fli_pal_dirty_from = MIN(fli_pal_dirty_from, offset);
@@ -503,7 +503,7 @@
if ((curr + size) > bitmap_end)
return;
else if ((sz -= size) < 0) {
- FLI_KLUDGE((char *)p, sz, size);
+ FLI_KLUDGE(p, sz, size);
}
READ_BLOCK_NC(p, curr, size);
curr += size;
@@ -513,7 +513,7 @@
if ((curr + size) > bitmap_end)
return;
else if ((sz -= 1) < 0) {
- FLI_KLUDGE((char *)p, sz, 1);
+ FLI_KLUDGE(p, sz, 1);
}
READ_RLE_BYTE_NC(p, curr, size);
curr += size;
@@ -572,7 +572,7 @@
if ((curr + size) > bitmap_end)
return;
else if ((sz -= size) < 0) {
- FLI_KLUDGE((char *)p, sz, size);
+ FLI_KLUDGE(p, sz, size);
}
READ_BLOCK_NC(p, curr, size);
curr += size;
@@ -581,7 +581,7 @@
if ((curr + size) > bitmap_end)
return;
else if ((sz -= 1) < 0) {
- FLI_KLUDGE((char *)p, sz, 1);
+ FLI_KLUDGE(p, sz, 1);
}
READ_RLE_BYTE_NC(p, curr, size);
curr += size;
@@ -600,7 +600,7 @@
if ((curr + size) > bitmap_end)
return;
if ((sz -= size) < 0) {
- FLI_KLUDGE((char *)p, sz, size);
+ FLI_KLUDGE(p, sz, size);
}
READ_BLOCK_NC(p, curr, size);
curr += size;
@@ -609,7 +609,7 @@
if ((curr + size) > bitmap_end)
return;
if ((sz -= 1) < 0) {
- FLI_KLUDGE((char *)p, sz, 1);
+ FLI_KLUDGE(p, sz, 1);
}
READ_RLE_BYTE_NC(p, curr, size);
curr += size;
diff -urN ../tmp-orig/allegro4-4.0.3/src/sound.c ./src/sound.c
--- ../tmp-orig/allegro4-4.0.3/src/sound.c 2003-04-19 09:06:47.000000000
+0200
+++ ./src/sound.c 2004-12-10 15:18:42.000000000 +0100
@@ -25,7 +25,7 @@
-extern DIGI_DRIVER digi_none;
+static DIGI_DRIVER digi_none;
--- End Message ---