Title: [291165] trunk/Source
Revision
291165
Author
mikh...@igalia.com
Date
2022-03-11 06:27:16 -0800 (Fri, 11 Mar 2022)

Log Message

Debug build failure after r246172: ASSERT_UNDER_CONSTEXPR_CONTEXT should work in constexpr contexts
https://bugs.webkit.org/show_bug.cgi?id=236728

Reviewed by Michael Catanzaro.

ASSERT_UNDER_CONSTEXPR_CONTEXT is calling a non-constexpr function (WTFReportAssertionFailure)
when it fails, so it cannot be used for an assert not reached.

This patch adds a new RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT() macro
that calls CRASH_UNDER_CONSTEXPR_CONTEXT() instead of WTFReportAssertionFailure.

No functional change.

* wasm/WasmCompilationMode.h:
(JSC::Wasm::isOSREntry):
(JSC::Wasm::isAnyBBQ):
(JSC::Wasm::isAnyOMG):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (291164 => 291165)


--- trunk/Source/_javascript_Core/ChangeLog	2022-03-11 14:27:14 UTC (rev 291164)
+++ trunk/Source/_javascript_Core/ChangeLog	2022-03-11 14:27:16 UTC (rev 291165)
@@ -1,3 +1,23 @@
+2022-03-11  Mikhail R. Gadelha  <mikh...@igalia.com>
+
+        Debug build failure after r246172: ASSERT_UNDER_CONSTEXPR_CONTEXT should work in constexpr contexts
+        https://bugs.webkit.org/show_bug.cgi?id=236728
+
+        Reviewed by Michael Catanzaro.
+
+        ASSERT_UNDER_CONSTEXPR_CONTEXT is calling a non-constexpr function (WTFReportAssertionFailure)
+        when it fails, so it cannot be used for an assert not reached.
+
+        This patch adds a new RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT() macro
+        that calls CRASH_UNDER_CONSTEXPR_CONTEXT() instead of WTFReportAssertionFailure.
+
+        No functional change.
+
+        * wasm/WasmCompilationMode.h:
+        (JSC::Wasm::isOSREntry):
+        (JSC::Wasm::isAnyBBQ):
+        (JSC::Wasm::isAnyOMG):
+
 2022-03-10  Elliott Williams  <e...@apple.com>
 
         [XCBuild] Emit a discovered dependency file from offlineasm

Modified: trunk/Source/_javascript_Core/wasm/WasmCompilationMode.h (291164 => 291165)


--- trunk/Source/_javascript_Core/wasm/WasmCompilationMode.h	2022-03-11 14:27:14 UTC (rev 291164)
+++ trunk/Source/_javascript_Core/wasm/WasmCompilationMode.h	2022-03-11 14:27:16 UTC (rev 291165)
@@ -50,7 +50,7 @@
     case CompilationMode::OMGForOSREntryMode:
         return true;
     }
-    RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT(false);
+    RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT();
 }
 
 constexpr inline bool isAnyBBQ(CompilationMode compilationMode)
@@ -65,7 +65,7 @@
     case CompilationMode::EmbedderEntrypointMode:
         return false;
     }
-    RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT(false);
+    RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT();
 }
 
 constexpr inline bool isAnyOMG(CompilationMode compilationMode)
@@ -80,7 +80,7 @@
     case CompilationMode::EmbedderEntrypointMode:
         return false;
     }
-    RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT(false);
+    RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT();
 }
 
 } } // namespace JSC::Wasm

Modified: trunk/Source/WTF/wtf/Assertions.h (291164 => 291165)


--- trunk/Source/WTF/wtf/Assertions.h	2022-03-11 14:27:14 UTC (rev 291164)
+++ trunk/Source/WTF/wtf/Assertions.h	2022-03-11 14:27:16 UTC (rev 291165)
@@ -331,6 +331,7 @@
 #define ASSERT_UNDER_CONSTEXPR_CONTEXT(assertion) ((void)0)
 #define ASSERT_AT(assertion, file, line, function) ((void)0)
 #define ASSERT_NOT_REACHED(...) ((void)0)
+#define ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT(...) ((void)0)
 #define ASSERT_NOT_IMPLEMENTED_YET() ((void)0)
 #define ASSERT_IMPLIES(condition, assertion) ((void)0)
 #define NO_RETURN_DUE_TO_ASSERT
@@ -378,6 +379,10 @@
     CRASH_WITH_INFO(__VA_ARGS__); \
 } while (0)
 
+#define ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT(...) do { \
+    CRASH_UNDER_CONSTEXPR_CONTEXT(); \
+} while (0)
+
 #define ASSERT_NOT_IMPLEMENTED_YET() do { \
     WTFReportNotImplementedYet(__FILE__, __LINE__, WTF_PRETTY_FUNCTION); \
     CRASH(); \
@@ -655,6 +660,7 @@
 #define RELEASE_ASSERT_WITH_MESSAGE(assertion, ...) RELEASE_ASSERT(assertion)
 #define RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(assertion) RELEASE_ASSERT(assertion)
 #define RELEASE_ASSERT_NOT_REACHED(...) CRASH_WITH_INFO(__VA_ARGS__)
+#define RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT() CRASH_UNDER_CONSTEXPR_CONTEXT();
 #define RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT(assertion) do { \
     if (UNLIKELY(!(assertion))) { \
         CRASH_UNDER_CONSTEXPR_CONTEXT(); \
@@ -667,6 +673,7 @@
 #define RELEASE_ASSERT_WITH_MESSAGE(assertion, ...) ASSERT_WITH_MESSAGE(assertion, __VA_ARGS__)
 #define RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(assertion) ASSERT_WITH_SECURITY_IMPLICATION(assertion)
 #define RELEASE_ASSERT_NOT_REACHED() ASSERT_NOT_REACHED()
+#define RELEASE_ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT() ASSERT_NOT_REACHED_UNDER_CONSTEXPR_CONTEXT()
 #define RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT(assertion) ASSERT_UNDER_CONSTEXPR_CONTEXT(assertion)
 
 #endif /* ASSERT_ENABLED */
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to