From 64978ba3f2ba45b89732cc3f70c7efbded95da2a Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Sat, 9 Oct 2010 11:44:00 +0000 Subject: re PR tree-optimization/45950 (ICE segmentation fault compiling __udivdi3) PR tree-optimization/45950 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length before initializing vno->op. From-SVN: r165220 --- gcc/tree-ssa-sccvn.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'gcc/tree-ssa-sccvn.c') diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index ed56d1d..33038b3 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -1708,10 +1708,16 @@ init_vn_nary_op_from_pieces (vn_nary_op_t vno, unsigned int length, vno->opcode = code; vno->length = length; vno->type = type; - vno->op[0] = op0; - vno->op[1] = op1; - vno->op[2] = op2; - vno->op[3] = op3; + switch (length) + { + /* The fallthrus here are deliberate. */ + case 4: vno->op[3] = op3; + case 3: vno->op[2] = op2; + case 2: vno->op[1] = op1; + case 1: vno->op[0] = op0; + default: + break; + } } /* Initialize VNO from OP. */ -- cgit v1.1