diff --git a/libtcc.c b/libtcc.c
index 6786ba11..db109886 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -1033,12 +1033,13 @@ ST_FUNC int tcc_add_file_internal(TCCState *s1, const char *filename, int flags)
         case AFF_BINTYPE_DYN:
             if (s1->output_type == TCC_OUTPUT_MEMORY) {
 #ifdef TCC_IS_NATIVE
-                char* soname = filename;
+                void* dl;
+                const char* soname = filename;
 # ifdef TCC_TARGET_MACHO
                 if (!strcmp(tcc_fileextension(filename), ".tbd"))
                     soname = macho_tbd_soname(filename);
 # endif
-                void* dl = dlopen(soname, RTLD_GLOBAL | RTLD_LAZY);
+                dl = dlopen(soname, RTLD_GLOBAL | RTLD_LAZY);
                 if (dl) {
                     tcc_add_dllref(s1, soname)->handle = dl;
                     ret = 0;
diff --git a/tcc.h b/tcc.h
index 4dad5265..5650aee9 100644
--- a/tcc.h
+++ b/tcc.h
@@ -247,7 +247,7 @@ extern long double strtold (const char *__nptr, char **__endptr);
 # define ALSO_TRIPLET(s) s
 #endif
 
-// FIXME: do this at runtime instead; check output of `xcode-select -p`. libxcselect provides this stuff
+/* FIXME: do this at runtime instead; check output of `xcode-select -p`. libxcselect provides this stuff */
 #ifndef CONFIG_OSX_SDK1
 # define CONFIG_OSX_SDK1 "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk"
 # define CONFIG_OSX_SDK2 "/Applications/Xcode.app/Developer/SDKs/MacOSX.sdk"
diff --git a/tccmacho.c b/tccmacho.c
index fe670e8f..bc0b0937 100644
--- a/tccmacho.c
+++ b/tccmacho.c
@@ -841,7 +841,8 @@ ST_FUNC int macho_add_dllref(TCCState* s1, int lev, const char* soname)
 {
      /* if the dll is already loaded, do not load it */
     DLLReference *dllref;
-    for(int i = 0; i < s1->nb_loaded_dlls; i++) {
+    int i;
+    for(i = 0; i < s1->nb_loaded_dlls; i++) {
         dllref = s1->loaded_dlls[i];
         if (!strcmp(soname, dllref->name)) {
             /* but update level if needed */
@@ -866,14 +867,14 @@ ST_FUNC int macho_add_dllref(TCCState* s1, int lev, const char* soname)
 #define tbd_parse_trample *pos++=0
 
 ST_FUNC const char* macho_tbd_soname(const char* filename) {
-    char* soname;
+    char *soname, *data, *pos, *ret;
+    struct stat sb;
     int fd = open(filename,O_RDONLY);
     if (fd<0) return filename;
-    struct stat sb;
     fstat(fd,&sb);
-    char* data = load_data(fd, 0, sb.st_size+1);
+    data = load_data(fd, 0, sb.st_size+1);
     data[sb.st_size]=0;
-    char* pos = data;
+    pos = data;
 
     if (!tbd_parse_movepast("install-name: ")) return filename;
     tbd_parse_skipws;
@@ -881,7 +882,7 @@ ST_FUNC const char* macho_tbd_soname(const char* filename) {
     soname = pos;
     if (!tbd_parse_movetoany("\n \"'")) return filename;
     tbd_parse_trample;
-    char* ret = tcc_mallocz(strlen(soname)+1);
+    ret = tcc_mallocz(strlen(soname)+1);
     strcpy(ret, soname);
     // soname = strdup(soname);
     tcc_free(data);
@@ -890,13 +891,13 @@ ST_FUNC const char* macho_tbd_soname(const char* filename) {
 
 ST_FUNC int macho_load_tbd(TCCState* s1, int fd, const char* filename, int lev)
 {
-    char* soname;
+    char *soname, *data, *pos;
 
     struct stat sb;
     fstat(fd,&sb);
-    char* data = load_data(fd, 0, sb.st_size+1);
+    data = load_data(fd, 0, sb.st_size+1);
     data[sb.st_size]=0;
-    char* pos = data;
+    pos = data;
 
     if (!tbd_parse_movepast("install-name: ")) return -1;
     tbd_parse_skipws;
@@ -908,9 +909,9 @@ ST_FUNC int macho_load_tbd(TCCState* s1, int fd, const char* filename, int lev)
 
     while(pos) {
         char* sym = NULL;
+        int cont = 1;
         if (!tbd_parse_movepast("symbols: ")) break;
         if (!tbd_parse_movepast("[")) break;
-        int cont = 1;
         while (cont) {
             tbd_parse_skipws;
             tbd_parse_tramplequote;