https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108348
--- Comment #3 from Kewen Lin <linkw at gcc dot gnu.org> --- There seem to be two alternatives to fix this, one is to raise error in rs6000_pass_by_reference like what we do in rs6000_function_arg, but we need something like mma_return_type_error to avoid re-erroring; the other is to teach the function rs6000_opaque_type_invalid_use_p about function call statement on arguments and return values. For now, the argument and return value checking is against the modes directly rather than the types, maybe to unique them into rs6000_opaque_type_invalid_use_p is better? Hi @Segher and @Peter, what do you think of this?