Or maybe, if it is really too smart (able to compute the result at compile time), we could have not to use a constant argument. Something like 'return finite((double)argv) ? 0 : 1'.