pub enum Missing {
OnX87,
Width,
NoRoom,
TooBig,
}Expand description
Why a parameter could not be brought in.
Variants§
OnX87
It travels on the x87 stack, which is a long double and nothing else. That stack is a
third register file, it is not one the allocator has, and no instruction in the
description touches it.
Width
It is a width no pseudo covers, which is anything a machine register does not hold.
NoRoom
It is a value that comes back in more registers than the convention returns in. A structure of at most sixteen bytes comes back in up to two, which is as many as SysV has, and a convention with fewer of them returns such a structure through a hidden pointer instead. So this is what a signature the classification did not produce would get.
TooBig
It is an object whose bytes travel in the argument area and there are more of them than any count of them can be written down as. A copy too long to unroll is a call to the runtime and not a refusal, so what is left here is an object of two gigabytes or more, which is a size the immediate holding the byte count has nowhere to put and a structure no program passes.