Found this while looking for one of the codegen asserts I hit:
union U { unsigned a; float b; };
float get_b(union U *u) { return u->b; }
CookieJar:Desktop keith$ clang -emit-llvm union.c
Function return type does not match operand type of return inst!
Broken module found, compilation aborted!
-Keith