[MSVC] X86Assembler.h(108): error C2666: 'WebCore::operator -': 7 overloads have...
authorHironori.Fujii@sony.com <Hironori.Fujii@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Nov 2018 01:37:44 +0000 (01:37 +0000)
committerHironori.Fujii@sony.com <Hironori.Fujii@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 20 Nov 2018 01:37:44 +0000 (01:37 +0000)
https://bugs.webkit.org/show_bug.cgi?id=189467
<rdar://problem/44290945>

Reviewed by Mark Lam.

This issue has happened several times. And, it seems that it will
take more time for Microsoft to fix the MSVC bug. We need a
effective workaround not to repeat this issue until they fix MSVC.

Remove ": int8_t" of RegisterID only for COMPILER(MSVC).

* assembler/X86Assembler.h: Added JSC_X86_ASM_REGISTER_ID_ENUM_BASE_TYPE macro.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238386 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/X86Assembler.h

index a6c4c04..26fe592 100644 (file)
@@ -1,3 +1,19 @@
+2018-11-19  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [MSVC] X86Assembler.h(108): error C2666: 'WebCore::operator -': 7 overloads have similar conversions
+        https://bugs.webkit.org/show_bug.cgi?id=189467
+        <rdar://problem/44290945>
+
+        Reviewed by Mark Lam.
+
+        This issue has happened several times. And, it seems that it will
+        take more time for Microsoft to fix the MSVC bug. We need a
+        effective workaround not to repeat this issue until they fix MSVC.
+
+        Remove ": int8_t" of RegisterID only for COMPILER(MSVC).
+
+        * assembler/X86Assembler.h: Added JSC_X86_ASM_REGISTER_ID_ENUM_BASE_TYPE macro.
+
 2018-11-19  Yusuke Suzuki  <yusukesuzuki@slowstart.org>
 
         [WebAssembly] I64 arguments / return value check should be moved from callWebAssemblyFunction to JSToWasm wrapper
index d080e75..06cb9e1 100644 (file)
@@ -41,7 +41,13 @@ inline bool CAN_SIGN_EXTEND_8_32(int32_t value) { return value == (int32_t)(sign
 
 namespace X86Registers {
 
-typedef enum : int8_t {
+#if COMPILER(MSVC)
+#define JSC_X86_ASM_REGISTER_ID_ENUM_BASE_TYPE
+#else
+#define JSC_X86_ASM_REGISTER_ID_ENUM_BASE_TYPE : int8_t
+#endif
+
+typedef enum JSC_X86_ASM_REGISTER_ID_ENUM_BASE_TYPE {
     eax,
     ecx,
     edx,
@@ -63,12 +69,12 @@ typedef enum : int8_t {
     InvalidGPRReg = -1,
 } RegisterID;
 
-typedef enum : int8_t {
+typedef enum JSC_X86_ASM_REGISTER_ID_ENUM_BASE_TYPE {
     eip,
     eflags
 } SPRegisterID;
 
-typedef enum : int8_t {
+typedef enum JSC_X86_ASM_REGISTER_ID_ENUM_BASE_TYPE {
     xmm0,
     xmm1,
     xmm2,