From b273a8cbe44cf9ec13c6201c53eb52b9a66cc93b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 6 Mar 2017 17:09:05 +0300 Subject: [PATCH] Ensure pointer alignment. --- ext/opcache/Optimizer/zend_worklist.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/opcache/Optimizer/zend_worklist.h b/ext/opcache/Optimizer/zend_worklist.h index 332dbdeefc..73c0bca854 100644 --- a/ext/opcache/Optimizer/zend_worklist.h +++ b/ext/opcache/Optimizer/zend_worklist.h @@ -77,10 +77,10 @@ typedef struct _zend_worklist { } zend_worklist; #define ZEND_WORKLIST_ALLOCA(w, _len, use_heap) do { \ - (w)->stack.buf = (int*)do_alloca(sizeof(int) * _len + sizeof(zend_ulong) * zend_bitset_len(_len), use_heap); \ + (w)->stack.buf = (int*)do_alloca(ZEND_MM_ALIGNED_SIZE(sizeof(int) * _len) + sizeof(zend_ulong) * zend_bitset_len(_len), use_heap); \ (w)->stack.len = 0; \ (w)->stack.capacity = _len; \ - (w)->visited = (zend_bitset)((w)->stack.buf + _len); \ + (w)->visited = (zend_bitset)((char*)(w)->stack.buf + ZEND_MM_ALIGNED_SIZE(sizeof(int) * _len)); \ memset((w)->visited, 0, sizeof(zend_ulong) * zend_bitset_len(_len)); \ } while (0) -- 2.40.0