4 ms·
Since you are generating the C code, you can generate the appropriate checks where needed to avoid such undefined behavior too.
by jjnoakes 10y ago
Since you are generating the C code, you can generate the appropriate checks where needed to avoid such undefined behavior too.
- MaulingMonkey 10y agoWhich is the one thing keeping it in the running. The problem is this line of reasoning doesn't generally hold up when applied to C codebases (because in practice statistics catches up with you eventually) and C code generators, in effect, happen to contain an admittedly small but rather obfuscated C codebase. Moreover, you must always include such checks - manually crashing on e.g. null pointers even if you'd be entirely satisfied with a segfault - just to avoid the optimizer potentially going apeshit on your code. Which can have... poor effects on program performance.
- jjnoakes 10y agoIf you are writing a code generator, it all depends on the source language. If, for example, your source language doesn't have NULL pointers, then you don't have to waste cycles checking them in C.