You're not likely to have something like the concatenation operator mixed with bitshifts. Most of the changes are more likely to be bugs in your code that remain undiscovered rather than things that worked perfectly fine before but are now broken.
These changes reflect how people use the language or what they already believe it to do.
You're talking about hypothetical code, but I am talking about actual code that worked fine but no longer works after an upgrade. Perhaps it was poorly written, but it was not buggy.
I can't think of a single time that I've seen a bug exposed by language changes. I have seen dozens of bugs created by language changes, however. (Mostly crashes).
This is a completely useless discussion if you're going to assume that code depends on "very weird edge cases" with no idea of what the code actually does.
These changes reflect how people use the language or what they already believe it to do.