https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111377
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:d2f53a601a23925b795ac162f7936163c3461b2c commit r14-4143-gd2f53a601a23925b795ac162f7936163c3461b2c Author: Jakub Jelinek <ja...@redhat.com> Date: Tue Sep 19 17:48:42 2023 +0200 testsuite work-around compound-assignment-1.c C++ failures on various targets [PR111377] On Mon, Sep 11, 2023 at 11:11:30PM +0200, Jakub Jelinek via Gcc-patches wrote: > I think the divergence is whether called_by_test_5b returns the struct > in registers or in memory. If in memory (like in the x86_64 -m32 case), we have > [compound-assignment-1.c:71:21] D.3191 = called_by_test_5b (); [return slot optimization] > [compound-assignment-1.c:71:21 discrim 1] D.3191 ={v} {CLOBBER(eol)}; > [compound-assignment-1.c:72:1] return; > in the IL, while if in registers (like x86_64 -m64 case), just > [compound-assignment-1.c:71:21] D.3591 = called_by_test_5b (); > [compound-assignment-1.c:72:1] return; > > If you just want to avoid the differences, putting } on the same line as the > call might be a usable workaround for that. Here is the workaround in patch form. 2023-09-19 Jakub Jelinek <ja...@redhat.com> PR testsuite/111377 * c-c++-common/analyzer/compound-assignment-1.c (test_5b): Move closing } to the same line as the call to work-around differences in diagnostics line.