diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2010-10-09 11:44:00 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2010-10-09 11:44:00 +0000 |
commit | 64978ba3f2ba45b89732cc3f70c7efbded95da2a (patch) | |
tree | a302a02b61eec992b31537ace2f76bfebadce537 /gcc | |
parent | 2b3967f08d82b554863f532cc6b524c1f0c48946 (diff) | |
download | gcc-64978ba3f2ba45b89732cc3f70c7efbded95da2a.zip gcc-64978ba3f2ba45b89732cc3f70c7efbded95da2a.tar.gz gcc-64978ba3f2ba45b89732cc3f70c7efbded95da2a.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-sccvn.c | 14 |
2 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 49f7274..b604ec6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-10-09 Nathan Froyd <froydnj@codesourcery.com> + + PR tree-optimization/45950 + * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length + before initializing vno->op. + 2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org> * config.gcc (bfin*-rtems*): Add newlib-stdint.h. 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. */ |