------- Comment #16 from nemet at gcc dot gnu dot org 2008-10-20 03:54 ------- I'm seeing this with mips64octeon-linux-gnu as well.
I think the problem is that in ccp_fold_builtin(): 2502 memset (val, 0, sizeof (val)); 2503 for (i = 0; i < nargs; i++) 2504 { 2505 if ((arg_mask >> i) & 1) arg_mask is an int and in the testcase nargs is 35. Therefore the result of the shift can be undefined. I will start testing a fix soon. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37669