https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111377
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- As I wrote, the important difference is whether aggregate_value_p is true or false for the called_by_test_5b call (which returns a struct but caller ignores it). If aggregate_value_p returns true, then there is a CLOBBER stmt after it because it fills in memory, while otherwise not. And this CLOBBER stmt has the locus of the end of the scope, in this case the } ending the function definition. So, a workaround could be just move the last } to the previous line.