On 7/30/2014 2:21 PM, Timon Gehr wrote:
Because the compiler does not seem know that 'assert' never returns, they shove in an __assume after it.
The critical bit of misunderstanding here is the C standard *requires* that assert be implemented as a macro, and that NDEBUG will totally disable it. Microsoft needed to add a builtin feature so that the correct assert semantics can be reliably obtained by the optimizer.
It's a mistake to infer from that that assert and assume are different.
