diff -ubB a/tcc.h b/tcc.h
--- a/tcc.h	2016-11-07 13:46:28.000000000 +0100
+++ b/tcc.h	2016-11-07 13:47:32.000000000 +0100
@@ -1526,7 +1526,7 @@
 ST_FUNC void *dlopen(const char *filename, int flag);
 ST_FUNC void dlclose(void *p);
 ST_FUNC const char *dlerror(void);
-ST_FUNC void *dlsym(int flag, const char *symbol);
+ST_FUNC void *dlsym(void *handle, const char *symbol);
 #endif
 #ifdef CONFIG_TCC_BACKTRACE
 ST_DATA int rt_num_callers;
diff -ubB a/tccrun.c b/tccrun.c
--- a/tccrun.c	2016-11-07 13:46:28.000000000 +0100
+++ b/tccrun.c	2016-11-07 13:47:54.000000000 +0100
@@ -275,10 +275,9 @@
 static void *win64_add_function_table(TCCState *s1)
 {
     void *p = NULL;
-    int r;
     if (s1->uw_pdata) {
         p = (void*)s1->uw_pdata->sh_addr;
-        r = RtlAddFunctionTable(
+        RtlAddFunctionTable(
             (RUNTIME_FUNCTION*)p,
             s1->uw_pdata->data_offset / sizeof (RUNTIME_FUNCTION),
             text_section->sh_addr
@@ -798,7 +797,7 @@
     { NULL, NULL },
 };
 
-ST_FUNC void *dlsym(int flag, const char *symbol)
+ST_FUNC void *dlsym(void *handle, const char *symbol)
 {
     TCCSyms *p;
     p = tcc_syms;
