https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98345
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Old Qt was relying on a GCC bug (as can be seen from the fact that void foo () { for (;; ({ break; })) ; } has been rejected since forever). It wasn't rejected in the for nested in another for, because it was expected to bind in that case to the outer loop, but due to a bug was bound to the inner loop. This has been fixed in GCC9 and newer.