FunctionTraits: Make cCallArity() constant on 32-bits.
authorguijemont@igalia.com <guijemont@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2018 12:54:48 +0000 (12:54 +0000)
committerguijemont@igalia.com <guijemont@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2018 12:54:48 +0000 (12:54 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187292

Reviewed by Yusuke Suzuki.

On X86, in Source/JavaScriptCore/jit/CCallHelpers.h we have a
static_assert that uses cCallArity(), so it needs to be constant to
avoid a compilation error. This is achieved by changing an ASSERT into
a static_assert.

* wtf/FunctionTraits.h:
(WTF::slotsForCCallArgument):

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

Source/WTF/ChangeLog
Source/WTF/wtf/FunctionTraits.h

index 154771d..54f6b0c 100644 (file)
@@ -1,3 +1,19 @@
+2018-07-04  Guillaume Emont  <guijemont@igalia.com>
+
+        FunctionTraits: Make cCallArity() constant on 32-bits.
+        https://bugs.webkit.org/show_bug.cgi?id=187292
+
+        Reviewed by Yusuke Suzuki.
+
+        On X86, in Source/JavaScriptCore/jit/CCallHelpers.h we have a
+        static_assert that uses cCallArity(), so it needs to be constant to
+        avoid a compilation error. This is achieved by changing an ASSERT into
+        a static_assert.
+
+
+        * wtf/FunctionTraits.h:
+        (WTF::slotsForCCallArgument):
+
 2018-07-04  Tim Horton  <timothy_horton@apple.com>
 
         Introduce PLATFORM(IOSMAC)
index eb5dbed..3533fb2 100644 (file)
@@ -38,11 +38,11 @@ template<typename T>
 static constexpr unsigned slotsForCCallArgument()
 {
     static_assert(!std::is_class<T>::value || sizeof(T) <= sizeof(void*), "This doesn't support complex structs.");
+    static_assert(sizeof(T) == 8 || sizeof(T) <= 4, "");
     // This assumes that all integral values are passed on the stack.
     if (sizeof(T) == 8)
         return 2;
 
-    ASSERT(sizeof(T) <= 4);
     return 1;
 }