I just faced this issue while trying to compile a branch of Evolution on
Hardy.
Following the path in the respective headers, notice:
#define BONOBO_ARG_GET_BOOLEAN(a) (BONOBO_ARG_GET_GENERAL (a,
TC_CORBA_boolean, CORBA_boolean, NULL))
#define BONOBO_ARG_SET_BOOLEAN(a,v) (BONOBO_ARG_SET_GENERAL (a, v,
TC_CORBA_boolean, CORBA_boolean, NULL))
Note that BONOBO_ARG_*_GENERAL are defined as follows:
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) && !defined(__cplusplus)
# define BONOBO_ARG_GET_GENERAL(a,c,t,e) (g_assert
(bonobo_arg_type_is_equal ((a)->_type, c, e)),\
*((t *)((a)->_value)))
# define BONOBO_ARG_SET_GENERAL(a,v,c,t,e) (g_assert
(bonobo_arg_type_is_equal ((a)->_type, c, e)),\
*((t *)((a)->_value)) =
(t)(v))
#else
# define BONOBO_ARG_GET_GENERAL(a,c,t,e) (*((t *)((a)->_value)))
# define BONOBO_ARG_SET_GENERAL(a,v,c,t,e) (*((t *)((a)->_value)) = (v))
#endif
Without digging further--and based on the sample expansion you quotes--
it seems that g_assert is using common do { ... } while(0) macro
pattern, which is making it illegal where it's ending up in the
expression.
The workaround (until the issue is fixed) is to force the #else clause
definitions (or compile in such a way that defines g_assert into
oblivion). In my situation, I copied the above definitions into the app-
specific headers, deleted all the g_asserts, and #undef'ed all the
original macros before I redefined them.
--
[hardy] gnome-mag trunk fails to compile
https://bugs.launchpad.net/bugs/178945
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs