[JSC] Suppress warnings in GCC
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 5 Apr 2017 13:07:09 +0000 (13:07 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 5 Apr 2017 13:07:09 +0000 (13:07 +0000)
https://bugs.webkit.org/show_bug.cgi?id=170501

Reviewed by Keith Miller.

Source/JavaScriptCore:

Should use ASSERT_NOT_REACHED since return-type pragma is only
enabled under ASSERT_DISABLED environment. We shoud use
ASSERT_NOTREACHED to emit assertions in debug build. It effectively
catches bugs while keeping performance in release build.

* b3/B3Opcode.cpp:
(JSC::B3::storeOpcode):
* b3/B3Width.h:
(JSC::B3::mask):
* runtime/Options.cpp:
(JSC::parse):
* wasm/WasmSections.h:
(JSC::Wasm::makeString):
* wasm/WasmSignature.cpp:
(JSC::Wasm::SignatureInformation::tryCleanup):
* wasm/generateWasmValidateInlinesHeader.py:

Source/WTF:

Add a new macro UNUSED_FUNCTION to annotate unused static functions.
#pragma GCC diagnostic ignored "-Wunused-function" does not work.

* wtf/Compiler.h:

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/b3/B3Opcode.cpp
Source/JavaScriptCore/b3/B3Width.h
Source/JavaScriptCore/runtime/Options.cpp
Source/JavaScriptCore/wasm/WasmSections.h
Source/JavaScriptCore/wasm/WasmSignature.cpp
Source/JavaScriptCore/wasm/generateWasmValidateInlinesHeader.py
Source/WTF/ChangeLog
Source/WTF/wtf/Compiler.h

index b069634..d8527e2 100644 (file)
@@ -1,3 +1,27 @@
+2017-04-05  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [JSC] Suppress warnings in GCC
+        https://bugs.webkit.org/show_bug.cgi?id=170501
+
+        Reviewed by Keith Miller.
+
+        Should use ASSERT_NOT_REACHED since return-type pragma is only
+        enabled under ASSERT_DISABLED environment. We shoud use
+        ASSERT_NOTREACHED to emit assertions in debug build. It effectively
+        catches bugs while keeping performance in release build.
+
+        * b3/B3Opcode.cpp:
+        (JSC::B3::storeOpcode):
+        * b3/B3Width.h:
+        (JSC::B3::mask):
+        * runtime/Options.cpp:
+        (JSC::parse):
+        * wasm/WasmSections.h:
+        (JSC::Wasm::makeString):
+        * wasm/WasmSignature.cpp:
+        (JSC::Wasm::SignatureInformation::tryCleanup):
+        * wasm/generateWasmValidateInlinesHeader.py:
+
 2017-04-05  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         Implement PromiseDeferredTimer for non CF based ports
index 0c12c46..8afb2f0 100644 (file)
@@ -88,6 +88,7 @@ Opcode storeOpcode(Bank bank, Width width)
     case FP:
         return Store;
     }
+    ASSERT_NOT_REACHED();
 }
 
 } } // namespace JSC::B3
index b539c6f..e36583f 100644 (file)
@@ -130,6 +130,7 @@ inline uint64_t mask(Width width)
     case Width64:
         return 0xffffffffffffffffllu;
     }
+    ASSERT_NOT_REACHED();
 }
 
 } } // namespace JSC::B3
index 2349cd3..dcc946d 100644 (file)
@@ -89,18 +89,15 @@ static bool parse(const char* string, unsigned& value)
     return sscanf(string, "%u", &value) == 1;
 }
 
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wunused-function"
 static bool parse(const char* string, unsigned long& value)
 {
     return sscanf(string, "%lu", &value);
 }
 
-static bool parse(const char* string, unsigned long long& value)
+static bool UNUSED_FUNCTION parse(const char* string, unsigned long long& value)
 {
     return sscanf(string, "%llu", &value);
 }
-#pragma GCC diagnostic pop
 
 static bool parse(const char* string, double& value)
 {
index 4b29114..f635c81 100644 (file)
@@ -82,6 +82,7 @@ static inline const char* makeString(Section section)
         FOR_EACH_WASM_SECTION(STRINGIFY_SECTION_NAME)
 #undef STRINGIFY_SECTION_NAME
     }
+    ASSERT_NOT_REACHED();
 }
 
 } } // namespace JSC::Wasm
index f12af23..b2298d6 100644 (file)
@@ -152,9 +152,9 @@ void SignatureInformation::tryCleanup()
     }
     for (const auto& pair : toRemove) {
         bool removed = info.m_signatureMap.remove(SignatureHash { pair.second });
-        ASSERT(removed);
+        ASSERT_UNUSED(removed, removed);
         removed = info.m_indexMap.remove(pair.first);
-        ASSERT(removed);
+        ASSERT_UNUSED(removed, removed);
     }
     if (info.m_signatureMap.isEmpty()) {
         ASSERT(info.m_indexMap.isEmpty());
index c3d3712..6c9990b 100755 (executable)
@@ -144,6 +144,7 @@ auto Validate::load(LoadOpType op, ExpressionType pointer, ExpressionType& resul
     switch (op) {
 """ + loadCases + """
     }
+    ASSERT_NOT_REACHED();
 }
 
 auto Validate::store(StoreOpType op, ExpressionType pointer, ExpressionType value, uint32_t) -> Result
@@ -154,6 +155,7 @@ auto Validate::store(StoreOpType op, ExpressionType pointer, ExpressionType valu
     switch (op) {
 """ + storeCases + """
     }
+    ASSERT_NOT_REACHED();
 }
 
 } } // namespace JSC::Wasm
index 41425b8..14e0936 100644 (file)
@@ -1,3 +1,15 @@
+2017-04-05  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [JSC] Suppress warnings in GCC
+        https://bugs.webkit.org/show_bug.cgi?id=170501
+
+        Reviewed by Keith Miller.
+
+        Add a new macro UNUSED_FUNCTION to annotate unused static functions.
+        #pragma GCC diagnostic ignored "-Wunused-function" does not work.
+
+        * wtf/Compiler.h:
+
 2017-04-04  Filip Pizlo  <fpizlo@apple.com>
 
         Air::eliminateDeadCode() should not use a HashSet
index 62883da..d6513a9 100644 (file)
 #define PURE_FUNCTION
 #endif
 
+/* UNUSED_FUNCTION */
+
+#if !defined(UNUSED_FUNCTION) && COMPILER(GCC_OR_CLANG)
+#define UNUSED_FUNCTION __attribute__((unused))
+#endif
+
+#if !defined(UNUSED_FUNCTION)
+#define UNUSED_FUNCTION
+#endif
+
 /* REFERENCED_FROM_ASM */
 
 #if !defined(REFERENCED_FROM_ASM) && COMPILER(GCC_OR_CLANG)