--- gdbtk_orig/generic/gdbtk-register.c 2012-01-03 13:26:56.000000000 +0100 +++ gdbtk/generic/gdbtk-register.c 2012-03-05 12:04:17.458812300 +0100 @@ -240,7 +240,7 @@ { Tcl_Obj *ar[3], *list; char *buff; - buff = xstrprintf ("%lx", (long)TYPE_FIELD_TYPE (reg_vtype, i)); + buff = xstrprintf ("%lx", (size_t)TYPE_FIELD_TYPE (reg_vtype, i)); ar[0] = Tcl_NewStringObj (TYPE_FIELD_NAME (reg_vtype, i), -1); ar[1] = Tcl_NewStringObj (buff, -1); if (TYPE_CODE (TYPE_FIELD_TYPE (reg_vtype, i)) == TYPE_CODE_FLT) @@ -256,7 +256,7 @@ { Tcl_Obj *ar[3], *list; char *buff; - buff = xstrprintf ("%lx", (long)reg_vtype); + buff = xstrprintf ("%lx", (size_t)reg_vtype); ar[0] = Tcl_NewStringObj (TYPE_NAME(reg_vtype), -1); ar[1] = Tcl_NewStringObj (buff, -1); if (TYPE_CODE (reg_vtype) == TYPE_CODE_FLT) @@ -497,7 +497,11 @@ if (Tcl_GetIntFromObj (interp, objv[0], ®no) != TCL_OK) return TCL_ERROR; + #ifdef _WIN64 + type = (struct type *)strtoll (Tcl_GetStringFromObj (objv[1], NULL), NULL, 16); + #else type = (struct type *)strtol (Tcl_GetStringFromObj (objv[1], NULL), NULL, 16); + #endif fm = (int)*(Tcl_GetStringFromObj (objv[2], NULL)); numregs = (gdbarch_num_regs (get_current_arch ())