summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimur Iskhodzhanov <timurrrr@google.com>2013-09-23 11:40:58 +0000
committerTimur Iskhodzhanov <timurrrr@google.com>2013-09-23 11:40:58 +0000
commit7f92aa687a90ae8b7ed1f1767ffa401d24d17096 (patch)
treed14a68ad9c21010ca36e0c86f7ef5fd9c5ddcd86
parente2b207cfd216b98c860cb4816b1ddb3a3f37b601 (diff)
downloadbcm5719-llvm-7f92aa687a90ae8b7ed1f1767ffa401d24d17096.tar.gz
bcm5719-llvm-7f92aa687a90ae8b7ed1f1767ffa401d24d17096.zip
[ASan/Win] Slightly optimize the DLL thunk
llvm-svn: 191190
-rw-r--r--compiler-rt/lib/asan/asan_dll_thunk.cc22
1 files changed, 11 insertions, 11 deletions
diff --git a/compiler-rt/lib/asan/asan_dll_thunk.cc b/compiler-rt/lib/asan/asan_dll_thunk.cc
index 56f271f5ab0..cedd60d342f 100644
--- a/compiler-rt/lib/asan/asan_dll_thunk.cc
+++ b/compiler-rt/lib/asan/asan_dll_thunk.cc
@@ -38,63 +38,63 @@ static void *getRealProcAddressOrDie(const char *name) {
#define WRAP_V_V(name) \
extern "C" void name() { \
typedef void (*fntype)(); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
fn(); \
}
#define WRAP_V_W(name) \
extern "C" void name(void *arg) { \
typedef void (*fntype)(void *arg); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
fn(arg); \
}
#define WRAP_V_WW(name) \
extern "C" void name(void *arg1, void *arg2) { \
typedef void (*fntype)(void *, void *); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
fn(arg1, arg2); \
}
#define WRAP_V_WWW(name) \
extern "C" void name(void *arg1, void *arg2, void *arg3) { \
typedef void *(*fntype)(void *, void *, void *); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
fn(arg1, arg2, arg3); \
}
#define WRAP_W_V(name) \
extern "C" void *name() { \
typedef void *(*fntype)(); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
return fn(); \
}
#define WRAP_W_W(name) \
extern "C" void *name(void *arg) { \
typedef void *(*fntype)(void *arg); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
return fn(arg); \
}
#define WRAP_W_WW(name) \
extern "C" void *name(void *arg1, void *arg2) { \
typedef void *(*fntype)(void *, void *); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
return fn(arg1, arg2); \
}
#define WRAP_W_WWW(name) \
extern "C" void *name(void *arg1, void *arg2, void *arg3) { \
typedef void *(*fntype)(void *, void *, void *); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
return fn(arg1, arg2, arg3); \
}
#define WRAP_W_WWWW(name) \
extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4) { \
typedef void *(*fntype)(void *, void *, void *, void *); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
return fn(arg1, arg2, arg3, arg4); \
}
@@ -102,7 +102,7 @@ static void *getRealProcAddressOrDie(const char *name) {
extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4, \
void *arg5) { \
typedef void *(*fntype)(void *, void *, void *, void *, void *); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
return fn(arg1, arg2, arg3, arg4, arg5); \
}
@@ -110,7 +110,7 @@ static void *getRealProcAddressOrDie(const char *name) {
extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4, \
void *arg5, void *arg6) { \
typedef void *(*fntype)(void *, void *, void *, void *, void *, void *); \
- fntype fn = (fntype)getRealProcAddressOrDie(#name); \
+ static fntype fn = (fntype)getRealProcAddressOrDie(#name); \
return fn(arg1, arg2, arg3, arg4, arg5, arg6); \
}
// }}}
OpenPOWER on IntegriCloud