shut up, gcc!
diff --git a/src/cmd/hoc/code.c b/src/cmd/hoc/code.c
index 7ed3ed1..1b9c351 100644
--- a/src/cmd/hoc/code.c
+++ b/src/cmd/hoc/code.c
@@ -170,7 +170,7 @@
 		execerror(sp->name, "call nested too deeply");
 	fp++;
 	fp->sp = sp;
-	fp->nargs = (int)pc[1];
+	fp->nargs = (int)(uintptr)pc[1];
 	fp->retpc = pc + 2;
 	fp->argn = stackp - 1;	/* last argument */
 	if(fp->nargs != sp->u.defn->nargs)
diff --git a/src/cmd/hoc/hoc.y b/src/cmd/hoc/hoc.y
index 4d35373..9c5a02f 100644
--- a/src/cmd/hoc/hoc.y
+++ b/src/cmd/hoc/hoc.y
@@ -49,7 +49,7 @@
 	| RETURN expr
 	        { defnonly("return"); $$=$2; code(funcret); }
 	| PROCEDURE begin '(' arglist ')'
-		{ $$ = $2; code3(call, (Inst)$1, (Inst)$4); }
+		{ $$ = $2; code3(call, (Inst)$1, (Inst)(uintptr)$4); }
 	| PRINT prlist	{ $$ = $2; }
 	| while '(' cond ')' stmt end {
 		($1)[1] = (Inst)$5;	/* body of loop */
@@ -88,7 +88,7 @@
 	| VAR	 { $$ = code3(varpush, (Inst)$1, eval); }
 	| asgn
 	| FUNCTION begin '(' arglist ')'
-		{ $$ = $2; code3(call,(Inst)$1,(Inst)$4); }
+		{ $$ = $2; code3(call,(Inst)$1,(Inst)(uintptr)$4); }
 	| READ '(' VAR ')' { $$ = code2(varread, (Inst)$3); }
 	| BLTIN '(' expr ')' { $$=$3; code2(bltin, (Inst)$1->u.ptr); }
 	| '(' expr ')'	{ $$ = $2; }