cudcv@warwick.ac.uk (Rob McMahon) (09/25/88)
GCC 1.28 expr.c (expand_call) somewhere around line 3679: /* If the address for a structure value should be in memory, and it would go in memory if treated as an extra parameter, treat it that way. */ if (structure_value_addr && GET_CODE (struct_value_rtx) == MEM) { rtx tem; INIT_CUMULATIVE_ARGS (args_so_far, funtype); tem = FUNCTION_ARG (args_so_far, Pmode, build_pointer_type (TREE_TYPE (funtype)), 1); => if (GET_CODE (tem) == MEM) { If FUNCTION_ARG returns 0, this causes an almost-null pointer dereference (actually the gould assembler gives up on this, but that's another story ...) Make that if (tem != 0 && GET_CODE (tem) == MEM) ? Rob -- UUCP: ...!mcvax!ukc!warwick!cudcv PHONE: +44 203 523037 JANET: cudcv@uk.ac.warwick ARPA: cudcv@warwick.ac.uk Rob McMahon, Computing Services, Warwick University, Coventry CV4 7AL, England