Title: [261754] trunk/Source/_javascript_Core
Revision
261754
Author
commit-qu...@webkit.org
Date
2020-05-15 12:24:59 -0700 (Fri, 15 May 2020)

Log Message

-Wtype-limits warning spam from CCallHelpers.h
https://bugs.webkit.org/show_bug.cgi?id=211701

Patch by Michael Catanzaro <mcatanz...@gnome.org> on 2020-05-15
Reviewed by Darin Adler.

Skip the problematic loops when TargetSize or NumberOfRegisters is 0 using constexpr if.
Solution suggested by Mark Lam.

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

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (261753 => 261754)


--- trunk/Source/_javascript_Core/ChangeLog	2020-05-15 19:02:03 UTC (rev 261753)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-05-15 19:24:59 UTC (rev 261754)
@@ -1,3 +1,17 @@
+2020-05-15  Michael Catanzaro  <mcatanz...@gnome.org>
+
+        -Wtype-limits warning spam from CCallHelpers.h
+        https://bugs.webkit.org/show_bug.cgi?id=211701
+
+        Reviewed by Darin Adler.
+
+        Skip the problematic loops when TargetSize or NumberOfRegisters is 0 using constexpr if.
+        Solution suggested by Mark Lam.
+
+        * jit/CCallHelpers.h:
+        (JSC::CCallHelpers::setupStubArgs):
+        (JSC::CCallHelpers::clampArrayToSize):
+
 2020-05-15  Mark Lam  <mark....@apple.com>
 
         Remove debugging dataLogs in LinkBuffer::copyCompactAndLinkCode() for release builds.

Modified: trunk/Source/_javascript_Core/jit/CCallHelpers.h (261753 => 261754)


--- trunk/Source/_javascript_Core/jit/CCallHelpers.h	2020-05-15 19:02:03 UTC (rev 261753)
+++ trunk/Source/_javascript_Core/jit/CCallHelpers.h	2020-05-15 19:24:59 UTC (rev 261754)
@@ -99,9 +99,12 @@
         typedef std::pair<RegType, RegType> RegPair;
         Vector<RegPair, NumberOfRegisters> pairs;
 
-        for (unsigned i = 0; i < NumberOfRegisters; ++i) {
-            if (sources[i] != destinations[i])
-                pairs.append(std::make_pair(sources[i], destinations[i]));
+        // if constexpr avoids warnings when NumberOfRegisters is 0.
+        if constexpr (NumberOfRegisters > 0) {
+            for (unsigned i = 0; i < NumberOfRegisters; ++i) {
+                if (sources[i] != destinations[i])
+                    pairs.append(std::make_pair(sources[i], destinations[i]));
+            }
         }
 
 #if ASSERT_ENABLED
@@ -313,9 +316,12 @@
 
         std::array<RegType, TargetSize> result { };
 
-        for (unsigned i = 0; i < TargetSize; i++) {
-            ASSERT(sourceArray[i] != static_cast<int32_t>(InfoTypeForReg<RegType>::InvalidIndex));
-            result[i] = sourceArray[i];
+        // if constexpr avoids warnings when TargetSize is 0.
+        if constexpr (TargetSize > 0) {
+            for (unsigned i = 0; i < TargetSize; i++) {
+                ASSERT(sourceArray[i] != static_cast<int32_t>(InfoTypeForReg<RegType>::InvalidIndex));
+                result[i] = sourceArray[i];
+            }
         }
 
         return result;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to