#include <ccan/container_of/container_of.h>
#include <stdlib.h>

struct foo {
	int a;
	char b;
};

int main(int argc, char *argv[])
{
	struct foo foo = { .a = 1, .b = 2 }, *foop;
	int *intp = &foo.a;

#ifdef FAIL
	/* b is a char, but intp is an int * */
	foop = container_of(intp, struct foo, b);
#else
	foop = NULL;
#endif
	(void) foop; /* Suppress unused-but-set-variable warning. */
	return intp == NULL;
}
