Skip to main content

lists

Function lists 

Source
pub fn lists(func: &mut Func, conv: &CallRegs)
Expand description

Rewrites every va_arg, va_copy and va_end in the function, and leaves va_start alone.

Those three are the ones made only of reads and writes of a list some pointer already reaches, so none of them needs to know anything about the frame and all three can be done here. va_start is the one that does need the frame, and crate::lower has it.

A convention whose list is a plain pointer gets the walk the module doc’s last section describes instead, which is the same three rewrites over a list of one field.