Fix MSVC run-time check after r229391.
authorross.kirsling@sony.com <ross.kirsling@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Mar 2018 23:07:04 +0000 (23:07 +0000)
committerross.kirsling@sony.com <ross.kirsling@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Mar 2018 23:07:04 +0000 (23:07 +0000)
https://bugs.webkit.org/show_bug.cgi?id=183673

Reviewed by Keith Miller.

Replaces attempted fix from r229424/r229432.
Apparently MSVC doesn't like it when a zero-length std::array is defined without explicit braces.

* jit/CCallHelpers.h:
(JSC::CCallHelpers::clampArrayToSize):

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/jit/CCallHelpers.h

index febac89..d0c9783 100644 (file)
@@ -1,3 +1,16 @@
+2018-03-15  Ross Kirsling  <ross.kirsling@sony.com>
+
+        Fix MSVC run-time check after r229391. 
+        https://bugs.webkit.org/show_bug.cgi?id=183673
+
+        Reviewed by Keith Miller.
+
+        Replaces attempted fix from r229424/r229432.
+        Apparently MSVC doesn't like it when a zero-length std::array is defined without explicit braces.
+
+        * jit/CCallHelpers.h:
+        (JSC::CCallHelpers::clampArrayToSize):
+
 2018-03-15  Tim Horton  <timothy_horton@apple.com>
 
         Add and adopt WK_ALTERNATE_FRAMEWORKS_DIR in ANGLE
index c3061b9..7f47a41 100644 (file)
@@ -248,18 +248,13 @@ private:
         std::array<FPRReg, FPRInfo::numberOfRegisters> fprDestinations;
     };
 
-#if COMPILER(MSVC)
-#pragma warning(push)
-#pragma warning(disable: 4701)
-#endif
-
     template<unsigned TargetSize, typename RegType>
     std::array<RegType, TargetSize> clampArrayToSize(std::array<RegType, InfoTypeForReg<RegType>::numberOfRegisters> sourceArray)
     {
         static_assert(TargetSize <= sourceArray.size(), "TargetSize is bigger than source.size()");
         RELEASE_ASSERT(TargetSize <= InfoTypeForReg<RegType>::numberOfRegisters);
 
-        std::array<RegType, TargetSize> result;
+        std::array<RegType, TargetSize> result { };
 
         for (unsigned i = 0; i < TargetSize; i++) {
             ASSERT(sourceArray[i] != InfoTypeForReg<RegType>::InvalidIndex);
@@ -269,10 +264,6 @@ private:
         return result;
     }
 
-#if COMPILER(MSVC)
-#pragma warning(pop)
-#endif
-
     template<typename ArgType>
     ALWAYS_INLINE void pokeForArgument(ArgType arg, unsigned currentGPRArgument, unsigned currentFPRArgument, unsigned extraPoke)
     {