| @@ -841,7 +841,8 @@ ST_FUNC int macho_add_dllref(TCCState* s1, int lev, const char* soname) · 840 unmodified lines |
| 841 | 841 | { |
| 842 | 842 | /* if the dll is already loaded, do not load it */ |
| 843 | 843 | DLLReference *dllref; |
| 844 | | − for(int i = 0; i < s1->nb_loaded_dlls; i++) { |
| 844 | + int i; |
| 845 | + for(i = 0; i < s1->nb_loaded_dlls; i++) { |
| 845 | 846 | dllref = s1->loaded_dlls[i]; |
| 846 | 847 | if (!strcmp(soname, dllref->name)) { |
| 847 | 848 | /* but update level if needed */ |
| @@ -866,14 +867,14 @@ ST_FUNC int macho_add_dllref(TCCState* s1, int lev, const char* soname) · 18 unmodified lines |
| 866 | 867 | #define tbd_parse_trample *pos++=0 |
| 867 | 868 | |
| 868 | 869 | ST_FUNC const char* macho_tbd_soname(const char* filename) { |
| 869 | | − char* soname; |
| 870 | + char *soname, *data, *pos, *ret; |
| 871 | + struct stat sb; |
| 870 | 872 | int fd = open(filename,O_RDONLY); |
| 871 | 873 | if (fd<0) return filename; |
| 872 | | − struct stat sb; |
| 873 | 874 | fstat(fd,&sb); |
| 874 | | − char* data = load_data(fd, 0, sb.st_size+1); |
| 875 | + data = load_data(fd, 0, sb.st_size+1); |
| 875 | 876 | data[sb.st_size]=0; |
| 876 | | − char* pos = data; |
| 877 | + pos = data; |
| 877 | 878 | |
| 878 | 879 | if (!tbd_parse_movepast("install-name: ")) return filename; |
| 879 | 880 | tbd_parse_skipws; |
| @@ -881,7 +882,7 @@ ST_FUNC const char* macho_tbd_soname(const char* filename) { · 1 unmodified line |
| 881 | 882 | soname = pos; |
| 882 | 883 | if (!tbd_parse_movetoany("\n \"'")) return filename; |
| 883 | 884 | tbd_parse_trample; |
| 884 | | − char* ret = tcc_mallocz(strlen(soname)+1); |
| 885 | + ret = tcc_mallocz(strlen(soname)+1); |
| 885 | 886 | strcpy(ret, soname); |
| 886 | 887 | // soname = strdup(soname); |
| 887 | 888 | tcc_free(data); |
| @@ -890,13 +891,13 @@ ST_FUNC const char* macho_tbd_soname(const char* filename) { · 2 unmodified lines |
| 890 | 891 | |
| 891 | 892 | ST_FUNC int macho_load_tbd(TCCState* s1, int fd, const char* filename, int lev) |
| 892 | 893 | { |
| 893 | | − char* soname; |
| 894 | + char *soname, *data, *pos; |
| 894 | 895 | |
| 895 | 896 | struct stat sb; |
| 896 | 897 | fstat(fd,&sb); |
| 897 | | − char* data = load_data(fd, 0, sb.st_size+1); |
| 898 | + data = load_data(fd, 0, sb.st_size+1); |
| 898 | 899 | data[sb.st_size]=0; |
| 899 | | − char* pos = data; |
| 900 | + pos = data; |
| 900 | 901 | |
| 901 | 902 | if (!tbd_parse_movepast("install-name: ")) return -1; |
| 902 | 903 | tbd_parse_skipws; |
| @@ -908,9 +909,9 @@ ST_FUNC int macho_load_tbd(TCCState* s1, int fd, const char* filename, int lev) · 5 unmodified lines |
| 908 | 909 | |
| 909 | 910 | while(pos) { |
| 910 | 911 | char* sym = NULL; |
| 912 | + int cont = 1; |
| 911 | 913 | if (!tbd_parse_movepast("symbols: ")) break; |
| 912 | 914 | if (!tbd_parse_movepast("[")) break; |
| 913 | | − int cont = 1; |
| 914 | 915 | while (cont) { |
| 915 | 916 | tbd_parse_skipws; |
| 916 | 917 | tbd_parse_tramplequote; |