com php-src: basic clang compatibility on windows: Zend/zend_ hash.c Zend/zend_portability.h ext/standard/basic_f unctions.h
| From: | Anatol Belski | Date: | Fri, 07 Nov 2014 09:17:59 +0000 |
| Subject: | com php-src: basic clang compatibility on windows: Zend/zend_ hash.c Zend/zend_portability.h ext/standard/basic_f unctions.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-82985@lists.php.net to get a copy of this message | ||
Commit: b9f1daa97608294064e393ed0d15bcceb21d926e
Author: Anatol Belski <ab@php.net> Thu, 6 Nov 2014 20:42:46 +0100
Parents: 2afb5df4da4b27c42444a2ac9523b57c26e31459
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=b9f1daa97608294064e393ed0d15bcceb21d926e
Log:
basic clang compatibility on windows
Changed paths:
M Zend/zend_hash.c
M Zend/zend_portability.h
M ext/standard/basic_functions.h
Diff:
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index 3cd5d6a..5577194 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -100,7 +100,7 @@ static const uint32_t uninitialized_bucket = {INVALID_IDX};
ZEND_API void _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor, zend_bool
persistent ZEND_FILE_LINE_DC)
{
/* Use big enough power of 2 */
-#ifdef PHP_WIN32
+#if defined(PHP_WIN32) && !defined(__clang__)
if (nSize <= 8) {
ht->nTableSize = 8;
} else if (nSize >= 0x80000000) {
diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h
index c159fdc..a6dac42 100644
--- a/Zend/zend_portability.h
+++ b/Zend/zend_portability.h
@@ -74,6 +74,10 @@
# include <alloca.h>
#endif
+#if defined(ZEND_WIN32)
+#include <intrin.h>
+#endif
+
/* Only use this macro if you know for sure that all of the switches values
are covered by its case statements */
#if ZEND_DEBUG
diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h
index ee0e025..5adc9a9 100644
--- a/ext/standard/basic_functions.h
+++ b/ext/standard/basic_functions.h
@@ -34,6 +34,10 @@
#include "url_scanner_ex.h"
+#if defined(_WIN32) && defined(__clang__)
+#include <intrin.h>
+#endif
+
extern zend_module_entry basic_functions_module;
#define basic_functions_module_ptr &basic_functions_module