The native compiler produces the following code at the end of the output file; the only problem here is that main forgets to call main_1419, so the code never works right off the line, but it is easy to fix:
void main_1419 ( ) {
xlint64 rndnum_1420; /* Local */
xlint32 tmp_1421; /* Local */
xlfile curfile_1422; /* Local */
xlfile ret_1440; /* Temp */
rndnum_1420 = (xluint) 5;
tmp_1421 = (xluint) 2;
ret_1440 = fopen("foo.txt", "w");
curfile_1422 = ret_1440;
writeln_1450 ( curfile_1422 , "Hello World" , rndnum_1420 );
fclose(curfile_1422);
exit_main_1419: 0;
}
int main(int Argc, char **Argv)
{
xlfile ret_1405; /* Temp */
xlfile ret_1409; /* Temp */
xlfile ret_1410; /* Temp */
/* Main */
ret_1405 = stdin;
standardinput_1396 = ret_1405;
ret_1409 = stdout;
standardoutput_1397 = ret_1409;
ret_1410 = stderr;
standarderror_1398 = ret_1410;
return 0;