Introduce COMPILER(GCC_OR_CLANG) guard and make COMPILER(GCC) true only for GCC
authorossy@webkit.org <ossy@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 4 Aug 2015 06:51:29 +0000 (06:51 +0000)
committerossy@webkit.org <ossy@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 4 Aug 2015 06:51:29 +0000 (06:51 +0000)
https://bugs.webkit.org/show_bug.cgi?id=146833

Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

* assembler/ARM64Assembler.h:
* assembler/ARMAssembler.h:
(JSC::ARMAssembler::cacheFlush):
* assembler/MacroAssemblerARM.cpp:
(JSC::isVFPPresent):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::isSSE2Present):
* heap/MachineStackMarker.h:
* interpreter/StackVisitor.cpp: Removed redundant COMPILER(CLANG) guards.
(JSC::logF):
* jit/HostCallReturnValue.h:
* jit/JIT.h:
* jit/JITOperations.cpp:
* jit/JITStubsARM.h:
* jit/JITStubsARMv7.h:
* jit/JITStubsX86.h:
* jit/JITStubsX86Common.h:
* jit/JITStubsX86_64.h:
* jit/ThunkGenerators.cpp:
* runtime/JSExportMacros.h:
* runtime/MathCommon.h: Removed redundant COMPILER(CLANG) guard.
(JSC::clz32):

Source/WebCore:

* platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
* platform/graphics/cpu/arm/filters/FELightingNEON.h:
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::platformApply):
* platform/network/efl/NetworkStateNotifierEfl.cpp:
(WebCore::NetworkStateNotifier::readSocketCallback):

Source/WTF:

* wtf/Assertions.cpp:
* wtf/Assertions.h: Removed redundant COMPILER(CLANG) guard.
* wtf/Atomics.cpp:
* wtf/Atomics.h:
(WTF::weakCompareAndSwap):
(WTF::compilerFence):
* wtf/Compiler.h:
 - Renamed COMPILER(GCC) to COMPILER(GCC_OR_CLANG), because it is true for both compiler.
 - Added COMPILER(GCC) which is true only for GCC.
 - Moved all GCC related stuff to one block and removed redundant guards accordingly.
 - Removed the unused default false definition of GCC_VERSION_AT_LEAST for non GCC compilers.
* wtf/ExportMacros.h:
* wtf/FastMalloc.h:
* wtf/Platform.h:
* wtf/StdLibExtras.h:
* wtf/Vector.h:
* wtf/text/ASCIIFastPath.h:
(WTF::copyLCharsFromUCharSource):

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

35 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/assembler/ARM64Assembler.h
Source/JavaScriptCore/assembler/ARMAssembler.h
Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp
Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h
Source/JavaScriptCore/heap/MachineStackMarker.h
Source/JavaScriptCore/interpreter/StackVisitor.cpp
Source/JavaScriptCore/jit/HostCallReturnValue.h
Source/JavaScriptCore/jit/JIT.h
Source/JavaScriptCore/jit/JITOperations.cpp
Source/JavaScriptCore/jit/JITStubsARM.h
Source/JavaScriptCore/jit/JITStubsARMv7.h
Source/JavaScriptCore/jit/JITStubsX86.h
Source/JavaScriptCore/jit/JITStubsX86Common.h
Source/JavaScriptCore/jit/JITStubsX86_64.h
Source/JavaScriptCore/jit/ThunkGenerators.cpp
Source/JavaScriptCore/runtime/JSExportMacros.h
Source/JavaScriptCore/runtime/MathCommon.h
Source/WTF/ChangeLog
Source/WTF/wtf/Assertions.cpp
Source/WTF/wtf/Assertions.h
Source/WTF/wtf/Atomics.cpp
Source/WTF/wtf/Atomics.h
Source/WTF/wtf/Compiler.h
Source/WTF/wtf/ExportMacros.h
Source/WTF/wtf/FastMalloc.h
Source/WTF/wtf/Platform.h
Source/WTF/wtf/StdLibExtras.h
Source/WTF/wtf/Vector.h
Source/WTF/wtf/text/ASCIIFastPath.h
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
Source/WebCore/platform/graphics/filters/FELighting.cpp
Source/WebCore/platform/network/efl/NetworkStateNotifierEfl.cpp

index 213e1c7..faff0f3 100644 (file)
@@ -1,3 +1,33 @@
+2015-08-03  Csaba Osztrogonác  <ossy@webkit.org>
+
+        Introduce COMPILER(GCC_OR_CLANG) guard and make COMPILER(GCC) true only for GCC
+        https://bugs.webkit.org/show_bug.cgi?id=146833
+
+        Reviewed by Alexey Proskuryakov.
+
+        * assembler/ARM64Assembler.h:
+        * assembler/ARMAssembler.h:
+        (JSC::ARMAssembler::cacheFlush):
+        * assembler/MacroAssemblerARM.cpp:
+        (JSC::isVFPPresent):
+        * assembler/MacroAssemblerX86Common.h:
+        (JSC::MacroAssemblerX86Common::isSSE2Present):
+        * heap/MachineStackMarker.h:
+        * interpreter/StackVisitor.cpp: Removed redundant COMPILER(CLANG) guards.
+        (JSC::logF):
+        * jit/HostCallReturnValue.h:
+        * jit/JIT.h:
+        * jit/JITOperations.cpp:
+        * jit/JITStubsARM.h:
+        * jit/JITStubsARMv7.h:
+        * jit/JITStubsX86.h:
+        * jit/JITStubsX86Common.h:
+        * jit/JITStubsX86_64.h:
+        * jit/ThunkGenerators.cpp:
+        * runtime/JSExportMacros.h:
+        * runtime/MathCommon.h: Removed redundant COMPILER(CLANG) guard.
+        (JSC::clz32):
+
 2015-08-03  Filip Pizlo  <fpizlo@apple.com>
 
         Unreviewed, fix uninitialized property leading to an assert.
index 68f3ed0..2b5fec6 100644 (file)
@@ -2851,7 +2851,7 @@ public:
 
     unsigned debugOffset() { return m_buffer.debugOffset(); }
 
-#if OS(LINUX) && COMPILER(GCC)
+#if OS(LINUX) && COMPILER(GCC_OR_CLANG)
     static inline void linuxPageFlush(uintptr_t begin, uintptr_t end)
     {
         __builtin___clear_cache(reinterpret_cast<void*>(begin), reinterpret_cast<void*>(end));
index f18f0fe..b314ea6 100644 (file)
@@ -1091,7 +1091,7 @@ namespace JSC {
             return AL | B | (offset & BranchOffsetMask);
         }
 
-#if OS(LINUX) && COMPILER(GCC)
+#if OS(LINUX) && COMPILER(GCC_OR_CLANG)
         static inline void linuxPageFlush(uintptr_t begin, uintptr_t end)
         {
             asm volatile(
@@ -1111,7 +1111,7 @@ namespace JSC {
 
         static void cacheFlush(void* code, size_t size)
         {
-#if OS(LINUX) && COMPILER(GCC)
+#if OS(LINUX) && COMPILER(GCC_OR_CLANG)
             size_t page = pageSize();
             uintptr_t current = reinterpret_cast<uintptr_t>(code);
             uintptr_t end = current + size;
index 2500d84..b0a9bf0 100644 (file)
@@ -58,7 +58,7 @@ static bool isVFPPresent()
     }
 #endif // OS(LINUX)
 
-#if (COMPILER(GCC) && defined(__VFP_FP__))
+#if (COMPILER(GCC_OR_CLANG) && defined(__VFP_FP__))
     return true;
 #else
     return false;
index b3b5074..b6ae6fc 100644 (file)
@@ -1577,7 +1577,7 @@ private:
                 cpuid;
                 mov flags, edx;
             }
-#elif COMPILER(GCC)
+#elif COMPILER(GCC_OR_CLANG)
             asm (
                  "movl $0x1, %%eax;"
                  "pushl %%ebx;"
index 9b6b732..0723ad8 100644 (file)
@@ -69,7 +69,7 @@ namespace JSC {
 
 } // namespace JSC
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #define REGISTER_BUFFER_ALIGNMENT __attribute__ ((aligned (sizeof(void*))))
 #else
 #define REGISTER_BUFFER_ALIGNMENT
index 6496fa4..6fe792b 100644 (file)
@@ -331,7 +331,7 @@ void logF(unsigned indent, const char* format, const Types&... values)
 {
     printIndents(indent);
 
-#if COMPILER(CLANG) || COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wformat-nonliteral"
 #pragma GCC diagnostic ignored "-Wmissing-format-attribute"
@@ -339,7 +339,7 @@ void logF(unsigned indent, const char* format, const Types&... values)
 
     dataLogF(format, values...);
 
-#if COMPILER(CLANG) || COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #pragma GCC diagnostic pop
 #endif
 }
index 83c5875..71ff4e5 100644 (file)
@@ -41,7 +41,7 @@ namespace JSC {
 
 extern "C" EncodedJSValue HOST_CALL_RETURN_VALUE_OPTION getHostCallReturnValue() REFERENCED_FROM_ASM WTF_INTERNAL;
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 
 // This is a public declaration only to convince CLANG not to elide it.
 extern "C" EncodedJSValue HOST_CALL_RETURN_VALUE_OPTION getHostCallReturnValueWithExecState(ExecState*) REFERENCED_FROM_ASM WTF_INTERNAL;
@@ -51,11 +51,11 @@ inline void initializeHostCallReturnValue()
     getHostCallReturnValueWithExecState(0);
 }
 
-#else // COMPILER(GCC)
+#else // COMPILER(GCC_OR_CLANG)
 
 inline void initializeHostCallReturnValue() { }
 
-#endif // COMPILER(GCC)
+#endif // COMPILER(GCC_OR_CLANG)
 
 } // namespace JSC
 
index 0213963..1ade665 100644 (file)
@@ -30,7 +30,7 @@
 
 // We've run into some problems where changing the size of the class JIT leads to
 // performance fluctuations.  Try forcing alignment in an attempt to stabalize this.
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #define JIT_CLASS_ALIGNMENT __attribute__ ((aligned (32)))
 #else
 #define JIT_CLASS_ALIGNMENT
index 8a6975c..9696fce 100644 (file)
@@ -1922,11 +1922,11 @@ void JIT_OPERATION operationVMHandleException(ExecState* exec)
 // testing.
 void JIT_OPERATION operationExceptionFuzz()
 {
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
     ExecState* exec = static_cast<ExecState*>(__builtin_frame_address(1));
     void* returnPC = __builtin_return_address(0);
     doExceptionFuzzing(exec, "JITOperations", returnPC);
-#endif // COMPILER(GCC)
+#endif // COMPILER(GCC_OR_CLANG)
 }
 
 EncodedJSValue JIT_OPERATION operationHasGenericProperty(ExecState* exec, EncodedJSValue encodedBaseValue, JSCell* propertyName)
@@ -1992,7 +1992,7 @@ extern "C" EncodedJSValue HOST_CALL_RETURN_VALUE_OPTION getHostCallReturnValueWi
     return JSValue::encode(exec->vm().hostCallReturnValue);
 }
 
-#if COMPILER(GCC) && CPU(X86_64)
+#if COMPILER(GCC_OR_CLANG) && CPU(X86_64)
 asm (
 ".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
 HIDE_SYMBOL(getHostCallReturnValue) "\n"
@@ -2001,7 +2001,7 @@ SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
     "jmp " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
 );
 
-#elif COMPILER(GCC) && CPU(X86)
+#elif COMPILER(GCC_OR_CLANG) && CPU(X86)
 asm (
 ".text" "\n" \
 ".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
@@ -2016,7 +2016,7 @@ SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
     "ret\n"
 );
 
-#elif COMPILER(GCC) && CPU(ARM_THUMB2)
+#elif COMPILER(GCC_OR_CLANG) && CPU(ARM_THUMB2)
 asm (
 ".text" "\n"
 ".align 2" "\n"
@@ -2029,7 +2029,7 @@ SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
     "b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
 );
 
-#elif COMPILER(GCC) && CPU(ARM_TRADITIONAL)
+#elif COMPILER(GCC_OR_CLANG) && CPU(ARM_TRADITIONAL)
 asm (
 ".text" "\n"
 ".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
@@ -2051,7 +2051,7 @@ SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
      "b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
 );
 
-#elif COMPILER(GCC) && CPU(MIPS)
+#elif COMPILER(GCC_OR_CLANG) && CPU(MIPS)
 
 #if WTF_MIPS_PIC
 #define LOAD_FUNCTION_TO_T9(function) \
@@ -2073,7 +2073,7 @@ SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
     "b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
 );
 
-#elif COMPILER(GCC) && CPU(SH4)
+#elif COMPILER(GCC_OR_CLANG) && CPU(SH4)
 
 #define SH4_SCRATCH_REGISTER "r11"
 
index 19c37b7..38c968f 100644 (file)
@@ -41,7 +41,7 @@
 
 namespace JSC {
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 
 #if ENABLE(MASM_PROBE)
 // The following are offsets for MacroAssembler::ProbeContext fields accessed
@@ -295,7 +295,7 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) ":" "\n"
 
 
 
-#endif // COMPILER(GCC)
+#endif // COMPILER(GCC_OR_CLANG)
 
 } // namespace JSC
 
index cbe9791..9a71b63 100644 (file)
@@ -41,7 +41,7 @@
 
 namespace JSC {
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 
 #if ENABLE(MASM_PROBE)
 // The following are offsets for MacroAssembler::ProbeContext fields accessed
@@ -327,7 +327,7 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) ":" "\n"
 );
 #endif // ENABLE(MASM_PROBE)
 
-#endif // COMPILER(GCC)
+#endif // COMPILER(GCC_OR_CLANG)
 
 } // namespace JSC
 
index ffd1197..d5bdcce 100644 (file)
@@ -43,7 +43,7 @@
 
 namespace JSC {
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 
 #if ENABLE(MASM_PROBE)
 asm (
@@ -198,7 +198,7 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) ":" "\n"
 );
 #endif // ENABLE(MASM_PROBE)
 
-#endif // COMPILER(GCC)
+#endif // COMPILER(GCC_OR_CLANG)
 
 } // namespace JSC
 
index 00b361c..786a30f 100644 (file)
@@ -34,7 +34,7 @@
 
 namespace JSC {
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 
 #if ENABLE(MASM_PROBE)
 // The following are offsets for MacroAssembler::ProbeContext fields accessed
@@ -157,7 +157,7 @@ COMPILE_ASSERT(sizeof(MacroAssembler::ProbeContext) == PROBE_SIZE, ProbeContext_
 
 #endif // ENABLE(MASM_PROBE)
 
-#endif // COMPILER(GCC)
+#endif // COMPILER(GCC_OR_CLANG)
 
 } // namespace JSC
 
index 21fbddb..0617465 100644 (file)
@@ -43,7 +43,7 @@
 
 namespace JSC {
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 
 #if ENABLE(MASM_PROBE)
 asm (
@@ -227,7 +227,7 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) ":" "\n"
 );
 #endif // ENABLE(MASM_PROBE)
 
-#endif // COMPILER(GCC)
+#endif // COMPILER(GCC_OR_CLANG)
 
 } // namespace JSC
 
index a6a78aa..34c6504 100644 (file)
@@ -634,7 +634,7 @@ MacroAssemblerCodeRef sqrtThunkGenerator(VM* vm)
 enum MathThunkCallingConvention { };
 typedef MathThunkCallingConvention(*MathThunk)(MathThunkCallingConvention);
 
-#if CPU(X86_64) && COMPILER(GCC) && (OS(DARWIN) || OS(LINUX))
+#if CPU(X86_64) && COMPILER(GCC_OR_CLANG) && (OS(DARWIN) || OS(LINUX))
 
 #define defineUnaryDoubleOpWrapper(function) \
     asm( \
@@ -652,7 +652,7 @@ typedef MathThunkCallingConvention(*MathThunk)(MathThunkCallingConvention);
     } \
     static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk;
 
-#elif CPU(X86) && COMPILER(GCC) && OS(LINUX) && defined(__PIC__)
+#elif CPU(X86) && COMPILER(GCC_OR_CLANG) && OS(LINUX) && defined(__PIC__)
 #define defineUnaryDoubleOpWrapper(function) \
     asm( \
         ".text\n" \
@@ -676,7 +676,7 @@ typedef MathThunkCallingConvention(*MathThunk)(MathThunkCallingConvention);
     } \
     static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk;
 
-#elif CPU(X86) && COMPILER(GCC) && (OS(DARWIN) || OS(LINUX))
+#elif CPU(X86) && COMPILER(GCC_OR_CLANG) && (OS(DARWIN) || OS(LINUX))
 #define defineUnaryDoubleOpWrapper(function) \
     asm( \
         ".text\n" \
@@ -696,7 +696,7 @@ typedef MathThunkCallingConvention(*MathThunk)(MathThunkCallingConvention);
     } \
     static MathThunk UnaryDoubleOpWrapper(function) = &function##Thunk;
 
-#elif CPU(ARM_THUMB2) && COMPILER(GCC) && PLATFORM(IOS)
+#elif CPU(ARM_THUMB2) && COMPILER(GCC_OR_CLANG) && PLATFORM(IOS)
 
 #define defineUnaryDoubleOpWrapper(function) \
     asm( \
index b50ea2e..bd46591 100644 (file)
@@ -47,7 +47,7 @@
 
 #else // !USE(EXPORT_MACROS)
 
-#if OS(WINDOWS) && !COMPILER(GCC)
+#if OS(WINDOWS) && !COMPILER(GCC_OR_CLANG)
 
 #if defined(BUILDING_JavaScriptCore) || defined(STATICALLY_LINKED_WITH_JavaScriptCore)
 #define JS_EXPORTDATA __declspec(dllexport)
index 840d863..2f84ed7 100644 (file)
@@ -37,7 +37,7 @@ double JIT_OPERATION operationMathPow(double x, double y) WTF_INTERNAL;
 
 inline int clz32(uint32_t number)
 {
-#if COMPILER(GCC) || COMPILER(CLANG)
+#if COMPILER(GCC_OR_CLANG)
     int zeroCount = 32;
     if (number)
         zeroCount = __builtin_clz(number);
index b175b1c..3155080 100644 (file)
@@ -1,3 +1,29 @@
+2015-08-03  Csaba Osztrogonác  <ossy@webkit.org>
+
+        Introduce COMPILER(GCC_OR_CLANG) guard and make COMPILER(GCC) true only for GCC
+        https://bugs.webkit.org/show_bug.cgi?id=146833
+
+        Reviewed by Alexey Proskuryakov.
+
+        * wtf/Assertions.cpp:
+        * wtf/Assertions.h: Removed redundant COMPILER(CLANG) guard.
+        * wtf/Atomics.cpp:
+        * wtf/Atomics.h:
+        (WTF::weakCompareAndSwap):
+        (WTF::compilerFence):
+        * wtf/Compiler.h:
+         - Renamed COMPILER(GCC) to COMPILER(GCC_OR_CLANG), because it is true for both compiler.
+         - Added COMPILER(GCC) which is true only for GCC.
+         - Moved all GCC related stuff to one block and removed redundant guards accordingly.
+         - Removed the unused default false definition of GCC_VERSION_AT_LEAST for non GCC compilers.
+        * wtf/ExportMacros.h:
+        * wtf/FastMalloc.h:
+        * wtf/Platform.h:
+        * wtf/StdLibExtras.h:
+        * wtf/Vector.h:
+        * wtf/text/ASCIIFastPath.h:
+        (WTF::copyLCharsFromUCharSource):
+
 2015-08-03  Zan Dobersek  <zdobersek@igalia.com>
 
         Unreviewed build fix.
index f736f85..8c21c83 100644 (file)
@@ -140,7 +140,7 @@ static void vprintf_stderr_common(const char* format, va_list args)
     vfprintf(stderr, format, args);
 }
 
-#if COMPILER(CLANG) || COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wformat-nonliteral"
 #endif
@@ -173,7 +173,7 @@ static void vprintf_stderr_with_trailing_newline(const char* format, va_list arg
     vprintf_stderr_common(formatWithNewline.get(), args);
 }
 
-#if COMPILER(CLANG) || COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #pragma GCC diagnostic pop
 #endif
 
@@ -320,7 +320,7 @@ void WTFCrash()
     WTFReportBacktrace();
     *(int *)(uintptr_t)0xbbadbeef = 0;
     // More reliable, but doesn't say BBADBEEF.
-#if COMPILER(CLANG) || COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
     __builtin_trap();
 #else
     ((void(*)())0)();
@@ -334,7 +334,7 @@ void WTFCrashWithSecurityImplication()
     WTFReportBacktrace();
     *(int *)(uintptr_t)0xfbadbeef = 0;
     // More reliable, but doesn't say fbadbeef.
-#if COMPILER(CLANG) || COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
     __builtin_trap();
 #else
     ((void(*)())0)();
index 11d6120..b1421d1 100644 (file)
@@ -79,7 +79,7 @@
 #define LOG_DISABLED ASSERTIONS_DISABLED_DEFAULT
 #endif
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #define WTF_PRETTY_FUNCTION __PRETTY_FUNCTION__
 #else
 #define WTF_PRETTY_FUNCTION __FUNCTION__
@@ -88,7 +88,7 @@
 /* WTF logging functions can process %@ in the format string to log a NSObject* but the printf format attribute
    emits a warning when %@ is used in the format string.  Until <rdar://problem/5195437> is resolved we can't include
    the attribute when being used from Objective-C code in case it decides to use %@. */
-#if COMPILER(GCC) && !defined(__OBJC__)
+#if COMPILER(GCC_OR_CLANG) && !defined(__OBJC__)
 #define WTF_ATTRIBUTE_PRINTF(formatStringArgument, extraArguments) __attribute__((__format__(printf, formatStringArgument, extraArguments)))
 #else
 #define WTF_ATTRIBUTE_PRINTF(formatStringArgument, extraArguments)
@@ -115,7 +115,7 @@ extern "C" {
 
    Signals are ignored by the crash reporter on OS X so we must do better.
 */
-#if COMPILER(CLANG) || COMPILER(GCC) || COMPILER(MSVC)
+#if COMPILER(GCC_OR_CLANG) || COMPILER(MSVC)
 #define NO_RETURN_DUE_TO_CRASH NO_RETURN
 #else
 #define NO_RETURN_DUE_TO_CRASH
index a722dae..037ce3f 100644 (file)
@@ -65,7 +65,7 @@
 // (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296). GCC >= 4.8 will support __atomic_* builtin
 // functions for this purpose for all the GCC targets, but for current compilers we have to include
 // our own implementation.
-#if COMPILER(GCC) && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) && USE(PTHREADS)
+#if COMPILER(GCC_OR_CLANG) && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) && USE(PTHREADS)
 
 #include "ThreadingPrimitives.h"
 
index c4d560e..9e3c602 100644 (file)
@@ -63,7 +63,7 @@
 #include <wtf/StdLibExtras.h>
 
 #if OS(WINDOWS)
-#if !COMPILER(GCC)
+#if !COMPILER(GCC_OR_CLANG)
 extern "C" void _ReadWriteBarrier(void);
 #pragma intrinsic(_ReadWriteBarrier)
 #endif
@@ -141,7 +141,7 @@ inline bool weakCompareAndSwap(volatile unsigned* location, unsigned expected, u
         : "r"(expected), "r"(newValue)
         : "memory");
     result = !result;
-#elif CPU(ARM64) && COMPILER(GCC)
+#elif CPU(ARM64) && COMPILER(GCC_OR_CLANG)
     unsigned tmp;
     unsigned result;
     asm volatile(
@@ -195,7 +195,7 @@ inline bool weakCompareAndSwap(void*volatile* location, void* expected, void* ne
         : "memory"
         );
     return result;
-#elif CPU(ARM64) && COMPILER(GCC)
+#elif CPU(ARM64) && COMPILER(GCC_OR_CLANG)
     bool result;
     void* tmp;
     asm volatile(
@@ -251,7 +251,7 @@ inline bool weakCompareAndSwapSize(volatile size_t* location, size_t expected, s
 // to do things like register allocation and code motion over pure operations.
 inline void compilerFence()
 {
-#if OS(WINDOWS) && !COMPILER(GCC)
+#if OS(WINDOWS) && !COMPILER(GCC_OR_CLANG)
     _ReadWriteBarrier();
 #else
     asm volatile("" ::: "memory");
index 7d4accb..9797e6f 100644 (file)
 #define WTF_COMPILER_SUPPORTS_FALLTHROUGH_WARNINGS __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
 #endif
 
-/* COMPILER(GCC) - GNU Compiler Collection */
+/* COMPILER(GCC_OR_CLANG) - GNU Compiler Collection or Clang */
+#if defined(__GNUC__)
+#define WTF_COMPILER_GCC_OR_CLANG 1
+#endif
 
+/* COMPILER(GCC) - GNU Compiler Collection */
 /* Note: This section must come after the Clang section since we check !COMPILER(CLANG) here. */
-
-#if defined(__GNUC__)
+#if COMPILER(GCC_OR_CLANG) && !COMPILER(CLANG)
 #define WTF_COMPILER_GCC 1
+#define WTF_COMPILER_SUPPORTS_CXX_CONSTEXPR 1
+#define WTF_COMPILER_SUPPORTS_CXX_USER_LITERALS 1
+
 #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 #define GCC_VERSION_AT_LEAST(major, minor, patch) (GCC_VERSION >= (major * 10000 + minor * 100 + patch))
-#endif
-
-/* Define GCC_VERSION_AT_LEAST for all compilers, so we can write things like GCC_VERSION_AT_LEAST(4, 1, 0). */
-/* FIXME: Doesn't seem all that valuable. Can we remove this? */
-#if !defined(GCC_VERSION_AT_LEAST)
-#define GCC_VERSION_AT_LEAST(major, minor, patch) 0
-#endif
 
-#if COMPILER(GCC) && !COMPILER(CLANG) && !GCC_VERSION_AT_LEAST(4, 7, 0)
+#if !GCC_VERSION_AT_LEAST(4, 7, 0)
 #error "Please use a newer version of GCC. WebKit requires GCC 4.7.0 or newer to compile."
 #endif
 
-#if COMPILER(GCC) && !COMPILER(CLANG)
-#define WTF_COMPILER_SUPPORTS_CXX_CONSTEXPR 1
-#define WTF_COMPILER_SUPPORTS_CXX_USER_LITERALS 1
-#endif
-
-#if COMPILER(GCC) && !COMPILER(CLANG) && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
 #define WTF_COMPILER_SUPPORTS_C_STATIC_ASSERT 1
 #endif
 
-#if COMPILER(GCC) && !COMPILER(CLANG) && GCC_VERSION_AT_LEAST(4, 8, 0)
+#if GCC_VERSION_AT_LEAST(4, 8, 0)
 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
 #endif
 
-#if COMPILER(GCC) && !COMPILER(CLANG) && (defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(__cplusplus) && __cplusplus >= 201103L))
+#if (defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined(__cplusplus) && __cplusplus >= 201103L))
 #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
 #endif
+#endif /* COMPILER(GCC) */
 
 /* COMPILER(MINGW) - MinGW GCC */
 
 
 /* ALWAYS_INLINE */
 
-#if !defined(ALWAYS_INLINE) && COMPILER(GCC) && defined(NDEBUG) && !COMPILER(MINGW)
+#if !defined(ALWAYS_INLINE) && COMPILER(GCC_OR_CLANG) && defined(NDEBUG) && !COMPILER(MINGW)
 #define ALWAYS_INLINE inline __attribute__((__always_inline__))
 #endif
 
 
 /* LIKELY */
 
-#if !defined(LIKELY) && COMPILER(GCC)
+#if !defined(LIKELY) && COMPILER(GCC_OR_CLANG)
 #define LIKELY(x) __builtin_expect(!!(x), 1)
 #endif
 
 
 /* NEVER_INLINE */
 
-#if !defined(NEVER_INLINE) && COMPILER(GCC)
+#if !defined(NEVER_INLINE) && COMPILER(GCC_OR_CLANG)
 #define NEVER_INLINE __attribute__((__noinline__))
 #endif
 
 
 /* NO_RETURN */
 
-#if !defined(NO_RETURN) && COMPILER(GCC)
+#if !defined(NO_RETURN) && COMPILER(GCC_OR_CLANG)
 #define NO_RETURN __attribute((__noreturn__))
 #endif
 
 
 /* PURE_FUNCTION */
 
-#if !defined(PURE_FUNCTION) && COMPILER(GCC)
+#if !defined(PURE_FUNCTION) && COMPILER(GCC_OR_CLANG)
 #define PURE_FUNCTION __attribute__((__pure__))
 #endif
 
 
 /* REFERENCED_FROM_ASM */
 
-#if !defined(REFERENCED_FROM_ASM) && COMPILER(GCC)
+#if !defined(REFERENCED_FROM_ASM) && COMPILER(GCC_OR_CLANG)
 #define REFERENCED_FROM_ASM __attribute__((__used__))
 #endif
 
 
 /* UNLIKELY */
 
-#if !defined(UNLIKELY) && COMPILER(GCC)
+#if !defined(UNLIKELY) && COMPILER(GCC_OR_CLANG)
 #define UNLIKELY(x) __builtin_expect(!!(x), 0)
 #endif
 
 
 /* WARN_UNUSED_RETURN */
 
-#if !defined(WARN_UNUSED_RETURN) && COMPILER(GCC)
+#if !defined(WARN_UNUSED_RETURN) && COMPILER(GCC_OR_CLANG)
 #define WARN_UNUSED_RETURN __attribute__((__warn_unused_result__))
 #endif
 
index 9c49dd1..5ae87d0 100644 (file)
 
 #else // !USE(EXPORT_MACROS)
 
-#if OS(WINDOWS) && !COMPILER(GCC)
+#if OS(WINDOWS) && !COMPILER(GCC_OR_CLANG)
 #if defined(BUILDING_WTF) || defined(STATICALLY_LINKED_WITH_WTF)
 #define WTF_EXPORTDATA __declspec(dllexport)
 #else
 #define WTF_EXPORTDATA __declspec(dllimport)
 #endif
-#else // !OS(WINDOWS) || COMPILER(GCC)
+#else // !OS(WINDOWS) || COMPILER(GCC_OR_CLANG)
 #define WTF_EXPORTDATA
 #endif
 
index 390c4df..8b4c1fc 100644 (file)
@@ -113,9 +113,9 @@ using WTF::tryFastZeroedMalloc;
 using WTF::fastAlignedMalloc;
 using WTF::fastAlignedFree;
 
-#if COMPILER(GCC) && OS(DARWIN)
+#if COMPILER(GCC_OR_CLANG) && OS(DARWIN)
 #define WTF_PRIVATE_INLINE __private_extern__ inline __attribute__((always_inline))
-#elif COMPILER(GCC)
+#elif COMPILER(GCC_OR_CLANG)
 #define WTF_PRIVATE_INLINE inline __attribute__((always_inline))
 #elif COMPILER(MSVC)
 #define WTF_PRIVATE_INLINE __forceinline
index 45a7541..608f69b 100644 (file)
 /* Configure the JIT */
 #if CPU(X86) && COMPILER(MSVC)
 #define JSC_HOST_CALL __fastcall
-#elif CPU(X86) && COMPILER(GCC)
+#elif CPU(X86) && COMPILER(GCC_OR_CLANG)
 #define JSC_HOST_CALL __attribute__ ((fastcall))
 #else
 #define JSC_HOST_CALL
 #endif
 
 /* Configure the interpreter */
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #define HAVE_COMPUTED_GOTO 1
 #endif
 
 #define USE_IMLANG_FONT_LINK2 1
 #endif
 
-#if !defined(ENABLE_COMPARE_AND_SWAP) && (OS(WINDOWS) || (COMPILER(GCC) && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64))))
+#if !defined(ENABLE_COMPARE_AND_SWAP) && (OS(WINDOWS) || (COMPILER(GCC_OR_CLANG) && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64))))
 #define ENABLE_COMPARE_AND_SWAP 1
 #endif
 
index 12f483c..26725b4 100644 (file)
@@ -38,7 +38,7 @@
 //
 // Newly written code should use static NeverDestroyed<T> instead.
 #ifndef DEPRECATED_DEFINE_STATIC_LOCAL
-#if COMPILER(GCC) && defined(__APPLE_CC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 1
+#if COMPILER(GCC_OR_CLANG) && defined(__APPLE_CC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 1
 #define DEPRECATED_DEFINE_STATIC_LOCAL(type, name, arguments) \
     static type* name##Ptr = new type arguments; \
     type& name = *name##Ptr
@@ -88,7 +88,7 @@
  * - https://bugs.webkit.org/show_bug.cgi?id=38045
  * - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43976
  */
-#if (CPU(ARM) || CPU(MIPS)) && COMPILER(GCC)
+#if (CPU(ARM) || CPU(MIPS)) && COMPILER(GCC_OR_CLANG)
 template<typename Type>
 inline bool isPointerTypeAlignmentOkay(Type* ptr)
 {
@@ -180,7 +180,7 @@ inline size_t bitCount(uint64_t bits)
 // Macro that returns a compile time constant with the length of an array, but gives an error if passed a non-array.
 template<typename T, size_t Size> char (&ArrayLengthHelperFunction(T (&)[Size]))[Size];
 // GCC needs some help to deduce a 0 length array.
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 template<typename T> char (&ArrayLengthHelperFunction(T (&)[0]))[0];
 #endif
 #define WTF_ARRAY_LENGTH(array) sizeof(::WTF::ArrayLengthHelperFunction(array))
index e346172..188d76d 100644 (file)
@@ -185,7 +185,7 @@ struct VectorFiller<true, T>
     static void uninitializedFill(T* dst, T* dstEnd, const T& val) 
     {
         static_assert(sizeof(T) == 1, "Size of type T should be equal to one!");
-#if COMPILER(GCC) && defined(_FORTIFY_SOURCE)
+#if COMPILER(GCC_OR_CLANG) && defined(_FORTIFY_SOURCE)
         if (!__builtin_constant_p(dstEnd - dst) || (!(dstEnd - dst)))
 #endif
             memset(dst, val, dstEnd - dst);
index 4ad1b08..e5b9d3b 100644 (file)
@@ -139,7 +139,7 @@ inline void copyLCharsFromUCharSource(LChar* destination, const UChar* source, s
         ASSERT(!(source[i] & 0xff00));
         destination[i] = static_cast<LChar>(source[i]);
     }
-#elif COMPILER(GCC) && CPU(ARM64) && defined(NDEBUG)
+#elif COMPILER(GCC_OR_CLANG) && CPU(ARM64) && defined(NDEBUG)
     const LChar* const end = destination + length;
     const uintptr_t memoryAccessSize = 16;
 
@@ -160,7 +160,7 @@ inline void copyLCharsFromUCharSource(LChar* destination, const UChar* source, s
 
     while (destination != end)
         *destination++ = static_cast<LChar>(*source++);
-#elif COMPILER(GCC) && CPU(ARM_NEON) && !(CPU(BIG_ENDIAN) || CPU(MIDDLE_ENDIAN)) && defined(NDEBUG)
+#elif COMPILER(GCC_OR_CLANG) && CPU(ARM_NEON) && !(CPU(BIG_ENDIAN) || CPU(MIDDLE_ENDIAN)) && defined(NDEBUG)
     const LChar* const end = destination + length;
     const uintptr_t memoryAccessSize = 8;
 
index 52fa83c..7749e50 100644 (file)
@@ -1,5 +1,19 @@
 2015-08-03  Csaba Osztrogonác  <ossy@webkit.org>
 
+        Introduce COMPILER(GCC_OR_CLANG) guard and make COMPILER(GCC) true only for GCC
+        https://bugs.webkit.org/show_bug.cgi?id=146833
+
+        Reviewed by Alexey Proskuryakov.
+
+        * platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
+        * platform/graphics/cpu/arm/filters/FELightingNEON.h:
+        * platform/graphics/filters/FELighting.cpp:
+        (WebCore::FELighting::platformApply):
+        * platform/network/efl/NetworkStateNotifierEfl.cpp:
+        (WebCore::NetworkStateNotifier::readSocketCallback):
+
+2015-08-03  Csaba Osztrogonác  <ossy@webkit.org>
+
         [CMake] Add an option to build AllInOne files
         https://bugs.webkit.org/show_bug.cgi?id=102647
 
index 789b6aa..fe44c62 100644 (file)
@@ -27,7 +27,7 @@
 #include "config.h"
 #include "FELightingNEON.h"
 
-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC)
+#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_OR_CLANG)
 
 namespace WebCore {
 
@@ -500,4 +500,4 @@ int FELighting::getPowerCoefficients(float exponent)
 
 } // namespace WebCore
 
-#endif // CPU(ARM_NEON) && COMPILER(GCC)
+#endif // CPU(ARM_NEON) && COMPILER(GCC_OR_CLANG)
index 1e71401..41b61e1 100644 (file)
@@ -27,7 +27,7 @@
 #ifndef FELightingNEON_h
 #define FELightingNEON_h
 
-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC)
+#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_OR_CLANG)
 
 #include "FELighting.h"
 #include <wtf/ParallelJobs.h>
@@ -194,6 +194,6 @@ inline void FELighting::platformApplyNeon(LightingData& data, LightSource::Paint
 
 } // namespace WebCore
 
-#endif // CPU(ARM_NEON) && COMPILER(GCC)
+#endif // CPU(ARM_NEON) && COMPILER(GCC_OR_CLANG)
 
 #endif // FELightingNEON_h
index 28a1c54..2925b0e 100644 (file)
@@ -282,7 +282,7 @@ inline void FELighting::platformApplyGeneric(LightingData& data, LightSource::Pa
 inline void FELighting::platformApply(LightingData& data, LightSource::PaintingData& paintingData)
 {
     // The selection here eventually should happen dynamically on some platforms.
-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC)
+#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_OR_CLANG)
     platformApplyNeon(data, paintingData);
 #else
     platformApplyGeneric(data, paintingData);
index 6b3b9e7..03f386d 100644 (file)
@@ -136,12 +136,12 @@ Eina_Bool NetworkStateNotifier::readSocketCallback(void* userData, Ecore_Fd_Hand
             if ((nlh->nlmsg_type == RTM_NEWADDR && !notifier->m_isOnLine) || (nlh->nlmsg_type == RTM_DELADDR && notifier->m_isOnLine))
                 detectedChange = true;
 
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wcast-align"
 #endif
             nlh = NLMSG_NEXT(nlh, length);
-#if COMPILER(GCC)
+#if COMPILER(GCC_OR_CLANG)
 #pragma GCC diagnostic pop
 #endif
         }