Comment by uecker
I would say there is a fair share of cases where programmers were told it is UB when it actually was a compiler bug - or non-conformance.
I would say there is a fair share of cases where programmers were told it is UB when it actually was a compiler bug - or non-conformance.
I am not sure. I saw quite a few of these bugs where programmers were told it is UB but it isn't.
For example, people showed me
extern void g(int x);
int f(int a, int b)
{
g(b ? 42 : 43);
return a / b;
}
as an example on how compilers exploit "time-travelling" UB to optimize code, but it is just a compiler bug that got fixed once I reported it:https://developercommunity.visualstudio.com/t/Invalid-optimi...
Other compilers have similar issues.
That share is a vanishingly small fraction of cases.