Das avr-Backend definiert momentan keine Promotion-Regeln, d.h. 3-Byte
Typen werden als solche übergeben. Variadische Funktionen müssen also
genau 3 Bytes abholen; ansonsten darf man mit Problemen rechnen.
Für Standard-Funktionen wie prinf find ich es ausreichend, Warnungen zu
beachten wie sie mit -Wformat (ist Teil von -Wall) ausgegeben werden.
Dies bedeutet dann, die 3-Byte Typen per Cast als 4-Byte Typ zu
übergeben und Modifier wie %ld zu verwenden. Die Extension und den einen
PUSH mehr kann man gut verschmerzen bei dem Wust, den die stdio
Funktionen ohnehin bedingen.