https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61240
--- Comment #7 from Marek Polacek <mpolacek at gcc dot gnu.org> --- But C++ has its own pointer_diff version that doesn't do such optimization. With my change the C FE would generate the same expr as the C++ FE. And FEs shouldn't perform such optimizations anyway.