[ASan/Win] Slightly optimize the DLL thunk
llvm-svn: 191190
This commit is contained in:
		
							parent
							
								
									e2b207cfd2
								
							
						
					
					
						commit
						7f92aa687a
					
				| 
						 | 
					@ -38,63 +38,63 @@ static void *getRealProcAddressOrDie(const char *name) {
 | 
				
			||||||
#define WRAP_V_V(name)                                                         \
 | 
					#define WRAP_V_V(name)                                                         \
 | 
				
			||||||
  extern "C" void name() {                                                     \
 | 
					  extern "C" void name() {                                                     \
 | 
				
			||||||
    typedef void (*fntype)();                                                  \
 | 
					    typedef void (*fntype)();                                                  \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    fn();                                                                      \
 | 
					    fn();                                                                      \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_V_W(name)                                                         \
 | 
					#define WRAP_V_W(name)                                                         \
 | 
				
			||||||
  extern "C" void name(void *arg) {                                            \
 | 
					  extern "C" void name(void *arg) {                                            \
 | 
				
			||||||
    typedef void (*fntype)(void *arg);                                         \
 | 
					    typedef void (*fntype)(void *arg);                                         \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    fn(arg);                                                                   \
 | 
					    fn(arg);                                                                   \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_V_WW(name)                                                        \
 | 
					#define WRAP_V_WW(name)                                                        \
 | 
				
			||||||
  extern "C" void name(void *arg1, void *arg2) {                               \
 | 
					  extern "C" void name(void *arg1, void *arg2) {                               \
 | 
				
			||||||
    typedef void (*fntype)(void *, void *);                                    \
 | 
					    typedef void (*fntype)(void *, void *);                                    \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    fn(arg1, arg2);                                                            \
 | 
					    fn(arg1, arg2);                                                            \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_V_WWW(name)                                                       \
 | 
					#define WRAP_V_WWW(name)                                                       \
 | 
				
			||||||
  extern "C" void name(void *arg1, void *arg2, void *arg3) {                   \
 | 
					  extern "C" void name(void *arg1, void *arg2, void *arg3) {                   \
 | 
				
			||||||
    typedef void *(*fntype)(void *, void *, void *);                           \
 | 
					    typedef void *(*fntype)(void *, void *, void *);                           \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    fn(arg1, arg2, arg3);                                                      \
 | 
					    fn(arg1, arg2, arg3);                                                      \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_W_V(name)                                                         \
 | 
					#define WRAP_W_V(name)                                                         \
 | 
				
			||||||
  extern "C" void *name() {                                                    \
 | 
					  extern "C" void *name() {                                                    \
 | 
				
			||||||
    typedef void *(*fntype)();                                                 \
 | 
					    typedef void *(*fntype)();                                                 \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    return fn();                                                               \
 | 
					    return fn();                                                               \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_W_W(name)                                                         \
 | 
					#define WRAP_W_W(name)                                                         \
 | 
				
			||||||
  extern "C" void *name(void *arg) {                                           \
 | 
					  extern "C" void *name(void *arg) {                                           \
 | 
				
			||||||
    typedef void *(*fntype)(void *arg);                                        \
 | 
					    typedef void *(*fntype)(void *arg);                                        \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    return fn(arg);                                                            \
 | 
					    return fn(arg);                                                            \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_W_WW(name)                                                        \
 | 
					#define WRAP_W_WW(name)                                                        \
 | 
				
			||||||
  extern "C" void *name(void *arg1, void *arg2) {                              \
 | 
					  extern "C" void *name(void *arg1, void *arg2) {                              \
 | 
				
			||||||
    typedef void *(*fntype)(void *, void *);                                   \
 | 
					    typedef void *(*fntype)(void *, void *);                                   \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    return fn(arg1, arg2);                                                     \
 | 
					    return fn(arg1, arg2);                                                     \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_W_WWW(name)                                                       \
 | 
					#define WRAP_W_WWW(name)                                                       \
 | 
				
			||||||
  extern "C" void *name(void *arg1, void *arg2, void *arg3) {                  \
 | 
					  extern "C" void *name(void *arg1, void *arg2, void *arg3) {                  \
 | 
				
			||||||
    typedef void *(*fntype)(void *, void *, void *);                           \
 | 
					    typedef void *(*fntype)(void *, void *, void *);                           \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    return fn(arg1, arg2, arg3);                                               \
 | 
					    return fn(arg1, arg2, arg3);                                               \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define WRAP_W_WWWW(name)                                                      \
 | 
					#define WRAP_W_WWWW(name)                                                      \
 | 
				
			||||||
  extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4) {      \
 | 
					  extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4) {      \
 | 
				
			||||||
    typedef void *(*fntype)(void *, void *, void *, void *);                   \
 | 
					    typedef void *(*fntype)(void *, void *, void *, void *);                   \
 | 
				
			||||||
    fntype fn = (fntype)getRealProcAddressOrDie(#name);                        \
 | 
					    static fntype fn = (fntype)getRealProcAddressOrDie(#name);                 \
 | 
				
			||||||
    return fn(arg1, arg2, arg3, arg4);                                         \
 | 
					    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,        \
 | 
					  extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4,        \
 | 
				
			||||||
                        void *arg5) {                                          \
 | 
					                        void *arg5) {                                          \
 | 
				
			||||||
    typedef void *(*fntype)(void *, void *, void *, void *, void *);           \
 | 
					    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);                                   \
 | 
					    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,        \
 | 
					  extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4,        \
 | 
				
			||||||
                        void *arg5, void *arg6) {                              \
 | 
					                        void *arg5, void *arg6) {                              \
 | 
				
			||||||
    typedef void *(*fntype)(void *, void *, void *, void *, void *, void *);   \
 | 
					    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);                             \
 | 
					    return fn(arg1, arg2, arg3, arg4, arg5, arg6);                             \
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
// }}}
 | 
					// }}}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue