Bug 316221 - G_LOCK warns about breaking strict-aliasing rules

* configure.in:
* glib/gthread.h: Prevent the compiler from warning about breaking
strict-aliasing rules when using gcc 4.3 and G_LOCK on C sources.

svn path=/trunk/; revision=6691
This commit is contained in:
Sebastian Dröge 2008-03-12 15:36:38 +00:00
parent 7de2454b08
commit 0dc34bf29a
3 changed files with 20 additions and 0 deletions

View File

@ -1,3 +1,11 @@
2008-03-12 Sebastian Dröge <slomo@circular-chaos.org>
Bug 316221 - G_LOCK warns about breaking strict-aliasing rules
* configure.in:
* glib/gthread.h: Prevent the compiler from warning about breaking
strict-aliasing rules when using gcc 4.3 and G_LOCK on C sources.
2008-03-12 Tor Lillqvist <tml@novell.com>
Bug 520914 - win_iconv doesn't support UCS-2

View File

@ -2820,9 +2820,15 @@ struct _GStaticMutex
} static_mutex;
};
#define G_STATIC_MUTEX_INIT { NULL, { { $g_mutex_contents} } }
#ifdef __cplusplus
#define g_static_mutex_get_mutex(mutex) \\
(g_thread_use_default_impl ? ((GMutex*) ((mutex)->static_mutex.pad)) : \\
g_static_mutex_get_mutex_impl_shortcut (&((mutex)->runtime_mutex)))
#else
#define g_static_mutex_get_mutex(mutex) \\
(g_thread_use_default_impl ? ((GMutex*) (void*) ((mutex)->static_mutex.pad)) : \\
g_static_mutex_get_mutex_impl_shortcut (&((mutex)->runtime_mutex)))
#endif
_______EOF
else
cat >>$outfile <<_______EOF

View File

@ -140,9 +140,15 @@ void g_thread_init_with_errorcheck_mutexes (GThreadFunctions* vtable);
/* internal function for fallback static mutex implementation */
GMutex* g_static_mutex_get_mutex_impl (GMutex **mutex);
#ifdef __cplusplus
#define g_static_mutex_get_mutex_impl_shortcut(mutex) \
(g_atomic_pointer_get ((gpointer*)(void*)mutex) ? *(mutex) : \
g_static_mutex_get_mutex_impl (mutex))
#else
#define g_static_mutex_get_mutex_impl_shortcut(mutex) \
(g_atomic_pointer_get (mutex) ? *(mutex) : \
g_static_mutex_get_mutex_impl (mutex))
#endif
/* shorthands for conditional and unconditional function calls */