src/share/vm/opto/superword.cpp

changeset 9740
b290489738b8
parent 8285
535618ab1c04
child 9756
2be326848943
child 9768
eaae2ae06faf
     1.1 --- a/src/share/vm/opto/superword.cpp	Fri Dec 14 11:22:26 2018 +0100
     1.2 +++ b/src/share/vm/opto/superword.cpp	Fri Jun 15 08:28:08 2018 -0700
     1.3 @@ -482,7 +482,9 @@
     1.4    if (init_nd->is_Con() && p.invar() == NULL) {
     1.5      int init = init_nd->bottom_type()->is_int()->get_con();
     1.6      int init_offset = init * p.scale_in_bytes() + offset;
     1.7 -    assert(init_offset >= 0, "positive offset from object start");
     1.8 +    if (init_offset < 0) { // negative offset from object start?
     1.9 +      return false;        // may happen in dead loop
    1.10 +    }
    1.11      if (vw % span == 0) {
    1.12        // If vm is a multiple of span, we use formula (1).
    1.13        if (span > 0) {

mercurial