News for hackers. Stuff that matters.
Re:The C3 Programming Language by cwillu on Saturday January 03, 2026 @02:21PM (#46480444)
“However, violating either pre- or post-conditions is unspecified behaviour, and a compiler may optimize code as if they are always true – even if a potential bug may cause them to be violated”

This implies that a compiler would be permitted to remove precisely that actual code that checks the condition in non-safe mode.

Seems like a deliberately introduced footgun.

Re:The C3 Programming Language by cloud-oak on Saturday January 03, 2026 @02:30PM (#46480557)
My understanding of this was that the UB starts only after the value is passed/returned. So if foo() has a contract to only return positive integers, the code within foo can check and ensure this, but if the calling code does it, the compiler might optimize it away.
Re:The C3 Programming Language by gku on Saturday January 03, 2026 @02:42PM (#46480713)
Re:The C3 Programming Language by cwillu on Sunday January 04, 2026 @05:27AM (#46486673)
Assuming that is correct, it's still exactly the same footgun. Checks like that are introduced to guard against bugs: you are strictly safer to not declare such a constraint.