D364 - A va_list is read as a cursor and never written back

Status: decided Date: 2026-08-29

The v formatting functions read the guest's System V va_list - register save area, then overflow area - through the same render_format as the register forms, which take an argument source trait. The cursor advances on the host side only.

Why: the register forms see only the arguments the trampoline caught and refuse a longer format; a va_list reaches every argument. One renderer keeps both spellings producing the same string. The standard leaves ap indeterminate after the call, so not advancing the guest's copy is unobservable and the safer of two permitted behaviours.

Rejected: