Skip to content
Snippets Groups Projects
Commit 78e8a09f authored by Devang Patel's avatar Devang Patel
Browse files

Mark function used by asm block as used, otherwise optimizer may not see the...

Mark function used by asm block as used, otherwise optimizer may not see the use and may delete the function.

llvm-svn: 53692
parent ac310963
No related merge requests found
......@@ -23,6 +23,11 @@
#define VISIBILITY_HIDDEN
#endif
#if (__GNUC__ >= 4)
#define ATTRIBUTE_USED __attribute__((__used__))
#else
#define ATTRIBUTE_USED
#endif
// C++ doesn't support 'extern template' of template specializations. GCC does,
// but requires __extension__ before it. In the header, use this:
......
......@@ -18,6 +18,7 @@
#include "llvm/Function.h"
#include "llvm/CodeGen/MachineCodeEmitter.h"
#include "llvm/Config/alloca.h"
#include "llvm/Support/Compiler.h"
#include <cstdlib>
#include <cstring>
using namespace llvm;
......@@ -315,7 +316,8 @@ extern "C" {
/// function stub when we did not know the real target of a call. This function
/// must locate the start of the stub or call site and pass it into the JIT
/// compiler function.
extern "C" void X86CompilationCallback2(intptr_t *StackPtr, intptr_t RetAddr) {
extern "C" void ATTRIBUTE_USED
X86CompilationCallback2(intptr_t *StackPtr, intptr_t RetAddr) {
intptr_t *RetAddrLoc = &StackPtr[1];
assert(*RetAddrLoc == RetAddr &&
"Could not find return address on the stack!");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment