Commit 175ca4aa authored by Rusty Russell's avatar Rusty Russell

typesafe_cb: fix up (and test!) cast_if_any.

parent 67a03586
#include <ccan/typesafe_cb/typesafe_cb.h>
#include <stdlib.h>
struct foo {
int x;
};
struct bar {
int x;
};
struct baz {
int x;
};
struct any {
int x;
};
struct other {
int x;
};
static void take_any(struct any *any)
{
}
int main(int argc, char *argv[])
{
#ifdef FAIL
struct other
#else
struct foo
#endif
*arg = NULL;
take_any(cast_if_any(struct any *, arg, arg,
struct foo *, struct bar *, struct baz *));
return 0;
}
#include <ccan/typesafe_cb/typesafe_cb.h>
#include <stdlib.h>
struct foo {
int x;
};
struct bar {
int x;
};
struct baz {
int x;
};
struct any {
int x;
};
static void take_any(struct any *any)
{
}
int main(int argc, char *argv[])
{
struct foo *foo = NULL;
struct bar *bar = NULL;
struct baz *baz = NULL;
struct other *arg = NULL;
take_any(cast_if_any(struct any *, arg, foo,
struct foo *, struct bar *, struct baz *));
take_any(cast_if_any(struct any *, arg, bar,
struct foo *, struct bar *, struct baz *));
take_any(cast_if_any(struct any *, arg, baz,
struct foo *, struct bar *, struct baz *));
return 0;
}
......@@ -61,7 +61,9 @@ __builtin_choose_expr(__builtin_types_compatible_p(typeof(1?(test):0), oktype),
cast_if_type(desttype, \
cast_if_type(desttype, \
cast_if_type(desttype, (expr), (test), ok1), \
(test), \
ok2), \
(test), \
ok3)
/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment