[PATCH] print format does not match argument type

"Patrick Monnerat" <[email protected]> Thu, 5 Apr 2012 18:34:27 +0200
Newsgroups gmane.comp.debugging.insight
Message-ID <AB5E58B87EB73C46A38073D8F459F113D9F883@dataspheresrv01>
In gdb/gdbtk/generic/gdbtk-register.c, 2 statements try to use a print
format of "%lx" for a size_t argument. The correctness of such
statements is architecture dependent. If warnings are treated as errors,
the compilation fails.
 
The attached patch fixes these statements by unconditionally converting
the size_t argument to an unsigned long.
 
Cheers,
Patrick
insight-7.4.50-sizesizet.patch (application/octet-stream, 1 KB)
diff -Naur insight-7.4.50.orig/gdb/gdbtk/generic/gdbtk-register.c insight-7.4.50.new/gdb/gdbtk/generic/gdbtk-register.c
--- insight-7.4.50.orig/gdb/gdbtk/generic/gdbtk-register.c	2012-03-30 09:36:10.000000000 +0200
+++ insight-7.4.50.new/gdb/gdbtk/generic/gdbtk-register.c	2012-04-05 18:03:20.875181085 +0200
@@ -239,7 +239,8 @@
 	{
 	  Tcl_Obj *ar[3], *list;
 	  char *buff;
-	  buff = xstrprintf ("%lx", (size_t)TYPE_FIELD_TYPE (reg_vtype, i));
+	  buff = xstrprintf ("%lx", (unsigned long)
+				    (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)
@@ -255,7 +256,7 @@
     {
       Tcl_Obj *ar[3], *list;
       char *buff;
-      buff = xstrprintf ("%lx", (size_t)reg_vtype);
+      buff = xstrprintf ("%lx", (unsigned long)(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)