C's variable-length arrays are one example. They were introduced in C99, and downgraded to 'optional' in C11. So that's one place where a newer C compiler could refuse old C code and still be language compliant.
Also the draft C2x standard does away with K&R declarations, which will be another compatibility break.
Also the draft C2x standard does away with K&R declarations, which will be another compatibility break.