| ▲ | vbezhenar an hour ago | |
The "code" is `a + b`. The rest is just decorations. Here's example from article:
Compiler can inline `f` but if it removes conditional branch, that's where issue is. I wrote this branch because I expected `b == 0` to be a valid value. Compiler deduced that it can't be a valid value and decided to remove `43`. That's understandable. But let me know, so I'd rewrite my code myself instead. Because I have assumptions and compiler have assumptions and these assumptions do not match. It means that there's a bug. | ||
| ▲ | masklinn an hour ago | parent [-] | |
So you expect the compiler to tell you every time it inlines a function with a null check in a function which already had a null check on the same value? Because as far as it’s concerned that is the same thing. Both clang-tidy and sonar will flag this since it’s broken on its own, but when you’ve fixed it you want the compiler to warn you every time this is inlined in a function where b is known non-zero and the check is redundant? As flo told you, if you want a non-optimizing compiler use a non-optimizing compiler. | ||