Path: csiph.com!weretis.net!feeder9.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Martin Ward Newsgroups: comp.compilers Subject: Undefined behaviour in C23 Date: Wed, 20 Aug 2025 14:06:45 +0100 Organization: Compilers Central Sender: johnl%iecc.com Approved: comp.compilers@iecc.com Message-ID: <25-08-002@comp.compilers> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="40152"; mail-complaints-to="abuse@iecc.com" Keywords: C, standards, comment Posted-Date: 20 Aug 2025 14:15:45 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:3676 In the SEI CERT C Soding Standards we read: "According to the C Standard, Annex J, J.2 [ISO/IEC 9899:2024], the behavior of a program is undefined in the circumstances outlined in the following table." The table has 221 numbered cases and can be found here: According to the C Standard Committee (paraphrasing) "You may eat from any tree in the garden of coding, except for any of the 221 trees of undefined behaviour. If you eat from any of the 221 trees of undefined behaviour your program may die, either immediately or at some unspecified time in the future, or may do absolutely anything at any future time. You must study the Book of the Knowledge of Defined and Undefined (the 758 page C23 standard document) to learn exactly how to recognise each of the 221 trees of undefined behaviour. Please pay the cashier $250.00 to purchase a copy of the Book of the Knowledge of Defined and Undefined". \-- Martin Dr Martin Ward | Email: [martin@gkc.org.uk](mailto:martin@gkc.org.uk) | G.K.Chesterton site: | Erdos number: 4 [When a language is 50 years old and there is a mountain of legacy code that they really don't want to break, it accumulates a lot of cruft. If we were starting now we'd get something more like Go. On the other hand, there's the python approach in which they deprecate and remove little used and crufty features, but old python code doesn't work any more unless you go back and update it every year or two. -John]