Hacker News new | past | comments | ask | show | jobs | submit login

How can it both have no side effects and have undefined behaviour?



By being declared as that?

Division has no side effects, and division by 0 is UB. UBs only occur in invalid programs, so behaviour in case of UB is not relevant to a discussion of side effects or their lack thereof, in language terms these are not programs at all.


If print statement never completes then it is a well defined program. Because there will be no division by zero.


And if my grandmother had wheels she'd be a bike.


Is your grandmother a bike every time the receiving side of a pipe terminates before the sending side, or only when it happens to interrupt a printf?


Both statements don't need to be true. The compiler just has to prove that at least one of the statements will always be true.


True but it only has no side effects if it's well defined. The compiler can assume it's well defined but only if it's executed.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: