https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94134
--- Comment #7 from pkoning at gcc dot gnu.org --- Thanks Jakub. Inspecting the generated assembly language is a sufficient check of the fix in my view. It's interesting that the test case shows the problem only with -O0. When optimizing, things are emitted in a different order (in particular, b then a, I'm not sure why).