<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt">I&nbsp; had&nbsp; seen the clear of eax in the gcc code for printf but didn't find<br>the ABI item you found.&nbsp; I guess that in the case that&nbsp; there&nbsp; is&nbsp; no&nbsp; C<br>prototype,&nbsp; the C compiler has to set that %eax `correctly' just in case<br>the function is varargs.<br><br>Perhaps the safe thing to do is to add an attribute to mean&nbsp; `definitely<br>NOT&nbsp; varargs',&nbsp; and to always set %eax unless that attribute is present.<br>Ugly, but upward compatible.&nbsp; More importantly, it's pretty easy to miss<br>the&nbsp; perhaps&nbsp; even undocumented fact that a function CAN take a variable<br>number of args.&nbsp; YUCK.<br><br>Very quick detective work Wesley, thanks.<br><br></div></body></html>