1.1 --- a/src/share/vm/opto/connode.cpp Mon Mar 11 11:42:57 2019 +0100 1.2 +++ b/src/share/vm/opto/connode.cpp Mon Jan 21 13:31:42 2019 +0800 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -1083,7 +1083,11 @@ 1.11 assert(rxlo == (int)rxlo && rxhi == (int)rxhi, "x should not overflow"); 1.12 assert(rylo == (int)rylo && ryhi == (int)ryhi, "y should not overflow"); 1.13 Node* cx = phase->C->constrained_convI2L(phase, x, TypeInt::make(rxlo, rxhi, widen), NULL); 1.14 + Node *hook = new (phase->C) Node(1); 1.15 + hook->init_req(0, cx); // Add a use to cx to prevent him from dying 1.16 Node* cy = phase->C->constrained_convI2L(phase, y, TypeInt::make(rylo, ryhi, widen), NULL); 1.17 + hook->del_req(0); // Just yank bogus edge 1.18 + hook->destruct(); 1.19 switch (op) { 1.20 case Op_AddI: return new (phase->C) AddLNode(cx, cy); 1.21 case Op_SubI: return new (phase->C) SubLNode(cx, cy);