Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

No, the code that does this is always active


Right so strictly speaking C++ could do anything here when passed a null pointer, because even though assert terminates the program, the C++ compiler cannot see that, and there is then undefined behaviour in that case


> because even though assert terminates the program, the C++ compiler cannot see that

I think it should be able to. I'm pretty sure assert is defined to call abort when triggered and abort is tagged with [[noreturn]], so the compiler knows control flow isn't coming back.


Shouldn't control flow diverge if the assert is triggered when NDEBUG is not defined? Pretty sure assert is defined to call abort when triggered and that is tagged [[noreturn]].


Sorry, yes, I misread you




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

Search: