https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105023
--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> --- It never even executes rs6000_function_arg for that testcase. What are you doing differently? ... Oh, C++. Duh. It happens because we do return gen_rtx_REG (mode, gregno); which is perfectly valid: garbage in, garbage out. This is arg.mode, a function parameter here. Make the caller do some validation? BLKmode is not a valid mode to pass to function_arg.