Description of problem: When using g_param_spec_int() to specify -1 as the minimum value of int, gtk-doc mistakenly substitute -1 with G_MAXULONG in x86_64 machines. Version-Release number of selected component (if applicable): gtk-doc-1.10-2 How reproducible: Always Steps to Reproduce: Use a segment of lib/tomoe-query.c from tomoe (http://tomoe.sourceforge.jp/cgi-bin/en/blog/index.rb) as example: spec = g_param_spec_int ("min_n_strokes", N_("Minimum number of strokes"), N_("Minimum number of strokes of searched " "character."), -1, G_MAXINT32, -1, G_PARAM_READWRITE); 1. Download and extract tomoe-0.6.0.tar.gz 2. cd tomoe-0.6.0 3. autoreconf -vif 4. ./configure --disable-static --enable-gtk-doc 5. make 6. Open the URL doc/reference/html/TomoeQuery.html Actual results: Section "The "max-n-strokes" property" in web page shows: Allowed values: >= G_MAXULONG Default value: -1 Expected results: Section "The "max-n-strokes" property" in web page should show: Allowed values: >= -1 Default value: -1 Additional info: Other negative number such as -2 does not cause this problem, and it seems only affecting 64-bit machines.
G_MAXULONG is not an int value, so that doesn't make much sense to begin with. Also, the param spec you show is for min-n-strokes, but your complaint seems to be about max-n-strokes... Can you clarify ?
I have both i386 and x86_64 machines, and the problem only occur in my x86_64. Following program demonstrate the problem in x86_64: /* Begin of show64.c */ #include <stdlib.h> #include <stdio.h> #include <glib-object.h> static gchar* describe_signed_constant (gint64 value) { gchar *desc; if (value == G_MINLONG) desc = g_strdup ("G_MINLONG"); else if (value == G_MAXULONG) desc = g_strdup ("G_MAXULONG"); else if (value == G_MAXINT64) desc = g_strdup ("G_MAXINT64"); else if (value == G_MININT64) desc = g_strdup ("G_MININT64"); else desc = g_strdup_printf ("%" G_GINT64_FORMAT, value); return desc; } int main(int argc,char *argv[]){ printf("describe_signed_constant (-1):%s\n",describe_signed_constant (-1)); return 0; } /* End of show64.c*/ Compile it using: gcc -o show64 show64.c `pkg-config --cflags --libs glib-2.0` Run it with: ./show64 And the result is: describe_signed_constant (-1):G_MAXULONG Where the result should be: describe_signed_constant (-1):-1 Similar code segement is in code generation part in gtkdoc-scangobj, specifically, search "describe_signed_constant (gint64 value)" in gtkdoc-scangobj to see what I am talking about. Maybe removing unsigned constant in static gchar* describe_signed_constant (gint64 value) fix the problem. Regards, Ding-Yi Chen
Filed upstream: http://bugzilla.gnome.org/show_bug.cgi?id=572612
Fixed upstream, we'll get the fix with the next upstream release.