From 65b9316bf58a9b3a4e8e8b886ecaacb19cf52e9c Mon Sep 17 00:00:00 2001 From: fedan Date: Thu, 3 Aug 2017 17:11:02 +0300 Subject: [PATCH] Fixed compilation if GCC LTO enabled. --- Source/JavaScriptCore/dfg/DFGOperations.cpp | 8 ++++---- Source/JavaScriptCore/jit/HostCallReturnValue.h | 4 ++-- Source/JavaScriptCore/jit/JITStubs.h | 2 +- Source/JavaScriptCore/jit/ThunkGenerators.cpp | 2 +- Source/JavaScriptCore/llint/LLIntSlowPaths.h | 2 +- Source/WTF/wtf/Compiler.h | 8 ++++---- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Source/JavaScriptCore/dfg/DFGOperations.cpp b/Source/JavaScriptCore/dfg/DFGOperations.cpp index 1305c0a5d03..19261048d60 100644 --- a/Source/JavaScriptCore/dfg/DFGOperations.cpp +++ b/Source/JavaScriptCore/dfg/DFGOperations.cpp @@ -311,19 +311,19 @@ #endif #define P_FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_E(function) \ -void* DFG_OPERATION function##WithReturnAddress(ExecState*, ReturnAddressPtr) REFERENCED_FROM_ASM WTF_INTERNAL; \ +void* DFG_OPERATION function##WithReturnAddress(ExecState*, ReturnAddressPtr) REFERENCE_KEEP_FOR_LTO WTF_INTERNAL; \ FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_E(function) #define J_FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_ECI(function) \ -EncodedJSValue DFG_OPERATION function##WithReturnAddress(ExecState*, JSCell*, Identifier*, ReturnAddressPtr) REFERENCED_FROM_ASM WTF_INTERNAL; \ +EncodedJSValue DFG_OPERATION function##WithReturnAddress(ExecState*, JSCell*, Identifier*, ReturnAddressPtr) REFERENCE_KEEP_FOR_LTO WTF_INTERNAL; \ FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_ECI(function) #define J_FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_EJI(function) \ -EncodedJSValue DFG_OPERATION function##WithReturnAddress(ExecState*, EncodedJSValue, Identifier*, ReturnAddressPtr) REFERENCED_FROM_ASM WTF_INTERNAL; \ +EncodedJSValue DFG_OPERATION function##WithReturnAddress(ExecState*, EncodedJSValue, Identifier*, ReturnAddressPtr) REFERENCE_KEEP_FOR_LTO WTF_INTERNAL; \ FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_EJI(function) #define V_FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_EJCI(function) \ -void DFG_OPERATION function##WithReturnAddress(ExecState*, EncodedJSValue, JSCell*, Identifier*, ReturnAddressPtr) REFERENCED_FROM_ASM WTF_INTERNAL; \ +void DFG_OPERATION function##WithReturnAddress(ExecState*, EncodedJSValue, JSCell*, Identifier*, ReturnAddressPtr) REFERENCE_KEEP_FOR_LTO WTF_INTERNAL; \ FUNCTION_WRAPPER_WITH_RETURN_ADDRESS_EJCI(function) namespace JSC { namespace DFG { diff --git a/Source/JavaScriptCore/jit/HostCallReturnValue.h b/Source/JavaScriptCore/jit/HostCallReturnValue.h index f4c8bc7039e..492e8a48d20 100644 --- a/Source/JavaScriptCore/jit/HostCallReturnValue.h +++ b/Source/JavaScriptCore/jit/HostCallReturnValue.h @@ -40,12 +40,12 @@ namespace JSC { -extern "C" EncodedJSValue HOST_CALL_RETURN_VALUE_OPTION getHostCallReturnValue() REFERENCED_FROM_ASM WTF_INTERNAL; +extern "C" EncodedJSValue HOST_CALL_RETURN_VALUE_OPTION getHostCallReturnValue() REFERENCE_KEEP_FOR_LTO WTF_INTERNAL; #if COMPILER(GCC) // 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; +extern "C" EncodedJSValue HOST_CALL_RETURN_VALUE_OPTION getHostCallReturnValueWithExecState(ExecState*) REFERENCE_KEEP_FOR_LTO WTF_INTERNAL; inline void initializeHostCallReturnValue() { diff --git a/Source/JavaScriptCore/jit/JITStubs.h b/Source/JavaScriptCore/jit/JITStubs.h index ad7ecc85115..ac7c636153f 100644 --- a/Source/JavaScriptCore/jit/JITStubs.h +++ b/Source/JavaScriptCore/jit/JITStubs.h @@ -444,7 +444,7 @@ void* JIT_STUB cti_stack_check(STUB_ARGS_DECLARATION) WTF_INTERNAL; void* JIT_STUB cti_vm_lazyLinkCall(STUB_ARGS_DECLARATION) WTF_INTERNAL; void* JIT_STUB cti_vm_lazyLinkClosureCall(STUB_ARGS_DECLARATION) WTF_INTERNAL; void* JIT_STUB cti_vm_lazyLinkConstruct(STUB_ARGS_DECLARATION) WTF_INTERNAL; -void* JIT_STUB cti_vm_throw(STUB_ARGS_DECLARATION) REFERENCED_FROM_ASM WTF_INTERNAL; +void* JIT_STUB cti_vm_throw(STUB_ARGS_DECLARATION) REFERENCE_KEEP_FOR_LTO WTF_INTERNAL; } // extern "C" #elif ENABLE(LLINT_C_LOOP) diff --git a/Source/JavaScriptCore/jit/ThunkGenerators.cpp b/Source/JavaScriptCore/jit/ThunkGenerators.cpp index fbf550ba4c4..6e8740f8309 100644 --- a/Source/JavaScriptCore/jit/ThunkGenerators.cpp +++ b/Source/JavaScriptCore/jit/ThunkGenerators.cpp @@ -499,7 +499,7 @@ enum MathThunkCallingConvention { }; typedef MathThunkCallingConvention(*MathThunk)(MathThunkCallingConvention); extern "C" { -double jsRound(double) REFERENCED_FROM_ASM; +double jsRound(double) REFERENCE_KEEP_FOR_LTO; double jsRound(double d) { double integer = ceil(d); diff --git a/Source/JavaScriptCore/llint/LLIntSlowPaths.h b/Source/JavaScriptCore/llint/LLIntSlowPaths.h index dbf68b2f9d6..15349fd6bc4 100644 --- a/Source/JavaScriptCore/llint/LLIntSlowPaths.h +++ b/Source/JavaScriptCore/llint/LLIntSlowPaths.h @@ -96,7 +96,7 @@ extern "C" SlowPathReturnType llint_trace_value(ExecState*, Instruction*, int fr extern "C" SlowPathReturnType llint_##name(ExecState* exec, Instruction* pc) #define LLINT_SLOW_PATH_HIDDEN_DECL(name) \ - LLINT_SLOW_PATH_DECL(name) WTF_INTERNAL + LLINT_SLOW_PATH_DECL(name) REFERENCE_KEEP_FOR_LTO WTF_INTERNAL LLINT_SLOW_PATH_HIDDEN_DECL(trace_prologue); LLINT_SLOW_PATH_HIDDEN_DECL(trace_prologue_function_for_call); diff --git a/Source/WTF/wtf/Compiler.h b/Source/WTF/wtf/Compiler.h index ead844f9e11..70de642ad7a 100644 --- a/Source/WTF/wtf/Compiler.h +++ b/Source/WTF/wtf/Compiler.h @@ -299,13 +299,13 @@ #define WTF_DELETED_FUNCTION #endif -/* REFERENCED_FROM_ASM */ +/* REFERENCE_KEEP_FOR_LTO */ -#ifndef REFERENCED_FROM_ASM +#ifndef REFERENCE_KEEP_FOR_LTO #if COMPILER(GCC) -#define REFERENCED_FROM_ASM __attribute__((used)) +#define REFERENCE_KEEP_FOR_LTO __attribute__((used)) #else -#define REFERENCED_FROM_ASM +#define REFERENCE_KEEP_FOR_LTO #endif #endif