mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
8307131: C2: assert(false) failed: malformed control flow
Reviewed-by: kvn, chagedorn, thartmann
(cherry picked from commit d2b3eef0f2)
This commit is contained in:
committed by
Vitaly Provodin
parent
3350208342
commit
832e0936a4
@@ -2014,7 +2014,8 @@ bool PhaseIdealLoop::is_counted_loop(Node* x, IdealLoopTree*&loop, BasicType iv_
|
||||
bool strip_mine_loop = iv_bt == T_INT &&
|
||||
loop->_child == nullptr &&
|
||||
sfpt != nullptr &&
|
||||
!loop->_has_call;
|
||||
!loop->_has_call &&
|
||||
is_deleteable_safept(sfpt);
|
||||
IdealLoopTree* outer_ilt = nullptr;
|
||||
if (strip_mine_loop) {
|
||||
outer_ilt = create_outer_strip_mined_loop(test, cmp, init_control, loop,
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Red Hat, Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8307131
|
||||
* @summary C2: assert(false) failed: malformed control flow
|
||||
* @library /test/lib
|
||||
* @run main/othervm -Xcomp -XX:CompileOnly=TestNondeleteableSafePoint -XX:-TieredCompilation TestNondeleteableSafePoint
|
||||
*/
|
||||
|
||||
import jdk.test.lib.Utils;
|
||||
|
||||
public class TestNondeleteableSafePoint {
|
||||
static int N;
|
||||
|
||||
public static void main(String[] strArr) throws Exception {
|
||||
Thread thread = new Thread() {
|
||||
public void run() {
|
||||
test();
|
||||
}
|
||||
};
|
||||
// Give thread some time to trigger compilation
|
||||
thread.setDaemon(true);
|
||||
thread.start();
|
||||
Thread.sleep(Utils.adjustTimeout(500));
|
||||
}
|
||||
|
||||
static void test() {
|
||||
int i19, i21, iArr1[] = new int[N];
|
||||
while (true) {
|
||||
for (i19 = i21 = 2; i21 > i19; --i21) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user