If you change MUST_PASS_IN_STACK to look like:
((TYPE) != 0
&& COMPLETE_TYPE_P (TYPE)
&& (TREE_CODE (...)
...)
does that fix it?
It would, but I think it's a bad idea to allow passing incomplete types
to MUST_PASS_IN_STACK.