https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94313
--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> --- An implementation is free to do whatever it wants when it finds invalid/undefined code. A quality implementation will also let the user know about it so it can be fixed. An even better one will let the user choose what to do in response (as we discussed in Manchester, it could either trap, substitute zero, or simply remove the code and proceed as if it was never there; other alternatives might be possible). This is all perfectly compatible with your preference. As long as the code is diagnosed it also meets my goal.