From: Yan Wang <yan.w...@linux.intel.com> "revisit" as vector containber will be pushed more elements in findPointerEsacape() and cause previous interator to introduce possible invalid pointer. When compiling huge kernel like blender, it will cause random segment fault crash. [] operator will be more safe. --- backend/src/llvm/llvm_gen_backend.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp index 8c7a230..e3543ae 100644 --- a/backend/src/llvm/llvm_gen_backend.cpp +++ b/backend/src/llvm/llvm_gen_backend.cpp @@ -1437,8 +1437,8 @@ namespace gbe } } // storing/loading pointer would introduce revisit - for (std::vector<Value *>::iterator iter = revisit.begin(); iter != revisit.end(); ++iter) { - findPointerEscape(*iter, mixedPtr, true, revisit); + for (size_t i = 0; i < revisit.size(); ++i) { + findPointerEscape(revisit[i], mixedPtr, true, revisit); } // the second pass starts from mixed pointer -- 2.7.4 _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/beignet