comparison src/hotspot/share/opto/superword.cpp @ 48667:e5da6c246176

8194992: Null pointer dereference in MultiNode::proj_out related to loopexit() Reviewed-by: kvn, thartmann
author dlong
date Thu, 18 Jan 2018 10:05:32 -0800
parents cfde2a53d393
children b242a1e3f9cf
comparison
equal deleted inserted replaced
7:b2740896a70d 8:82fb23ab2db2
1 /* 1 /*
2 * Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
188 ResourceMark rm; 188 ResourceMark rm;
189 size_t ignored_size = lpt()->_body.size(); 189 size_t ignored_size = lpt()->_body.size();
190 int *ignored_loop_nodes = NEW_RESOURCE_ARRAY(int, ignored_size); 190 int *ignored_loop_nodes = NEW_RESOURCE_ARRAY(int, ignored_size);
191 Node_Stack nstack((int)ignored_size); 191 Node_Stack nstack((int)ignored_size);
192 CountedLoopNode *cl = lpt()->_head->as_CountedLoop(); 192 CountedLoopNode *cl = lpt()->_head->as_CountedLoop();
193 Node *cl_exit = cl->loopexit(); 193 Node *cl_exit = cl->loopexit_or_null();
194 int rpo_idx = _post_block.length(); 194 int rpo_idx = _post_block.length();
195 195
196 assert(rpo_idx == 0, "post loop block is empty"); 196 assert(rpo_idx == 0, "post loop block is empty");
197 197
198 // First clear the entries 198 // First clear the entries