<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 had seen the clear of eax in the gcc code for printf but didn't find<br>the ABI item you found. I guess that in the case that there is no C<br>prototype, 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 `definitely<br>NOT varargs', and to always set %eax unless that attribute is present.<br>Ugly, but upward compatible. More importantly, it's pretty easy to miss<br>the perhaps even undocumented fact that a function CAN take a variable<br>number of args. YUCK.<br><br>Very quick detective work Wesley, thanks.<br><br></div></body></html>