For one thing they are required to disallow all undefined behavior for compile time execution, and some forms of UB only occur when the code is run.