https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77850
--- Comment #1 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Sat Jan 21 03:11:49 2017 New Revision: 244740 URL: https://gcc.gnu.org/viewcvs?rev=244740&root=gcc&view=rev Log: rs6000: Small varargs for BE SVR4 (PR61729, PR77850) The varargs code for SVR4 puts all (integer) arguments in 4-byte slots. When it then reads an item from there as something not a multiple of 4 bytes, it needs to adjust the address if big endian. We didn't yet do that. This fixes the g++.dg/abi/scoped1.C, gcc.dg/compat/scalar-by-value-4, and gcc.dg/compat/scalar-return-4 testcases. PR target/61729 PR target/77850 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to read from, for big endian. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.c