Got rid of all warnings. (Yeah, right.)
diff --git a/libacc/acc.c b/libacc/acc.c
index 12af2f8..fcf4df0 100644
--- a/libacc/acc.c
+++ b/libacc/acc.c
@@ -16,14 +16,15 @@
  */
 
 /* Based upon the freeware version of the Obfuscated Tiny C Compiler
- * by Francis Bellard.
+ * by Francis Bellard. <francis@bellard.org>.
  */
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
-int d, z, C, h, P, K, q, G, L, W;
+int d, z, C, h, K, q, G, L, W;
+char* P;
 char* ac;
 char* v;
 char* D;
@@ -38,7 +39,7 @@
     *(char*) D++=e;
 }
 
-o() {
+void o() {
     if (L) {
         h = *(char*) L++;
         if (h == 2) {
@@ -49,11 +50,11 @@
         h = fgetc(Q);
 }
 
-X() {
+int X() {
     return isalnum(h) | h == 95;
 }
 
-Y() {
+void Y() {
     if (h == 92) {
         o();
         if (h == 110)
@@ -100,7 +101,7 @@
             *(char*) D = 0;
             d = d * 8 + 256;
             if (d > 536) {
-                d = P + d;
+                d = ((int) P) + d;
                 if (*(int*) d == 1) {
                     L = *(int*) (d + 4);
                     W = h;
@@ -478,7 +479,8 @@
     D = strcpy(R = calloc(1, 99999),
             " int if else while break return for define main ") + 48;
     v = calloc(1, 99999);
-    q = ac = calloc(1, 99999);
+    ac = calloc(1, 99999);
+    q = (int) ac;
     P = calloc(1, 99999);
     o();
     ad();