Compiler optimization is really annoying sometimes. It's allowed to assume that functions with the same name as standard library functions behave according to standard. They'll swap out printf calls for puts if they don't have a format. The compiler just knows it can do that. Sure, it optimizes things but it gets to the point the code no longer reflects what's written on the source file. Try to hook into printf and i…
Do you also expect `sqrt(a)` to be `call sqrt` and not `sqrtss xmm0`?
Of course. Who else is going to set errno when I pass negative a number?