These macros expect pointers decorated with the "volatile" modifier, but internally, they cast them to "void*", dropping the "volatile" modifier. gcc4.4 doesn't like that, and emits a warning: "cast discards qualifiers from pointer target type" --- glib/gatomic.h | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/glib/gatomic.h b/glib/gatomic.h index 7d9c318..22b28d9 100644 --- a/glib/gatomic.h +++ b/glib/gatomic.h @@ -64,16 +64,16 @@ void g_atomic_pointer_set (volatile gpointer G_GNUC_MAY_ALI #else # define g_atomic_int_get(atomic) \ ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gint) ? 1 : -1]), \ - (g_atomic_int_get) ((volatile gint G_GNUC_MAY_ALIAS *) (void *) (atomic))) + (g_atomic_int_get) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic))) # define g_atomic_int_set(atomic, newval) \ ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gint) ? 1 : -1]), \ - (g_atomic_int_set) ((volatile gint G_GNUC_MAY_ALIAS *) (void *) (atomic), (newval))) + (g_atomic_int_set) ((volatile gint G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (newval))) # define g_atomic_pointer_get(atomic) \ ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gpointer) ? 1 : -1]), \ - (g_atomic_pointer_get) ((volatile gpointer G_GNUC_MAY_ALIAS *) (void *) (atomic))) + (g_atomic_pointer_get) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic))) # define g_atomic_pointer_set(atomic, newval) \ ((void) sizeof (gchar [sizeof (*(atomic)) == sizeof (gpointer) ? 1 : -1]), \ - (g_atomic_pointer_set) ((volatile gpointer G_GNUC_MAY_ALIAS *) (void *) (atomic), (newval))) + (g_atomic_pointer_set) ((volatile gpointer G_GNUC_MAY_ALIAS *) (volatile void *) (atomic), (newval))) #endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ #define g_atomic_int_inc(atomic) (g_atomic_int_add ((atomic), 1)) _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list