It seems that someone half-implemented sensible ABI support for message sending with the GNU runtime. Unfortunately, only half implementing it means that you get assertion failures form LLVM caused by function type mismatches.
This patch fixes it so that we use the same type for the method pointer in both of the cases where it's used.
P.S. It includes the not-yet-committed tidy up that I sent yesterday for IdTy, since this fix depends on it.
clang.diff (6.36 KB)