@@ -47,11 +47,11 @@ ckfree((void *) ts); } static int Tcc4tclHandleCmd ( ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST objv[]){ - unsigned long val; + Tcl_WideInt val; void *val_p; int index; int res; struct TclTCCState *ts; TCCState *s; @@ -121,11 +121,14 @@ if (objc != 4) { Tcl_WrongNumArgs(interp, 2, objv, "symbol value"); return TCL_ERROR; } - Tcl_GetLongFromObj(interp, objv[3], &val); + if (Tcl_GetWideIntFromObj(interp, objv[3], &val) != TCL_OK) { + return TCL_ERROR; + } + val_p = (void *) val; tcc_add_symbol(s,Tcl_GetString(objv[2]), val_p); return TCL_OK; case TCC4TCL_COMMAND: